Wskazówki i sztuczki ADB: Polecenia, o których powinien wiedzieć każdy zaawansowany użytkownik

click fraud protection

Android Debug Bridge ma wiele funkcji, o których możesz nie wiedzieć. Kliknij tutaj, aby uzyskać przydatne porady i wskazówki dotyczące korzystania z ADB!

Szybkie linki

  • Dostęp do powłoki
  • Łączenie z wieloma urządzeniami
  • Przesyłanie plików
  • Logowanie
  • Lista zainstalowanych aplikacji przez ADB
  • Instalowanie i odinstalowywanie aplikacji przez ADB
  • Wyodrębnianie plików APK za pomocą ADB
  • Tworzenie kopii zapasowych i przywracanie danych aplikacji
  • Wyświetlanie listy składników aplikacji
  • Uruchomienie działalności, usług i odbiorników
  • Wyłączanie i włączanie prawie każdej aplikacji
  • Przechwytywanie zrzutów ekranu
  • Przesyłanie danych binarnych między komputerem a urządzeniem z systemem Android

Jeśli byłeś entuzjastą Androida czającym się na scenie modowania lub programistą aplikacji przez dowolny czas prędzej czy później natkniesz się na zgrabne narzędzie o nazwie Android Debug Bridge lub ADB for krótki. Jest szeroko stosowany w Android Studio jako narzędzie pomocnicze wiersza poleceń. Programiści Androida używają go również jako samodzielnego rozwiązania do ręcznego instalowania i testowania aplikacji

smartfony z Androidem a także emulowane urządzenia z Androidem.

Ale ADB może wiele zrobić, a większość z nich jest przydatna nie tylko dla programistów. Nawet jeśli nie jesteś programistą i czytasz ten artykuł, istnieje duża szansa, że ​​prawdopodobnie użyłeś ADB raz lub dwa razy, aby sideload aplikacji lub zmień uprawnienia. Ale to nie wszystko, do czego można wykorzystać ADB. Czytaj dalej, aby poznać porady i wskazówki dotyczące korzystania z ADB, o których mogłeś nie wiedzieć.

Musisz mieć uruchomione ADB na swoim komputerze. Koniecznie sprawdź nasz artykuł nt Jak zainstalować ADB Jeśli potrzebujesz pomocy. Jeśli używasz systemu Windows, musisz to zrobić zainstaluj odpowiednie sterowniki OEM USB dla Twojego urządzenia z Androidem.

Dostęp do powłoki

Jeśli korzystałeś wcześniej z ADB, możesz być przyzwyczajony do uruchamiania poleceń w jednym wierszu. Ale możesz także użyć ADB, aby otworzyć powłokę terminala na swoim urządzeniu i bezpośrednio uruchamiać polecenia. I to jest łatwe!

W terminalu lub oknie wiersza polecenia:

powłoka adb

Zostaniesz powitany przez a $ symbol, w którym możesz uruchamiać polecenia bezpośrednio na swoim urządzeniu.

Łączenie z wieloma urządzeniami

ADB może komunikować się z wieloma urządzeniami jednocześnie. Należy jednak określić urządzenie docelowe podczas wydawania poleceń ADB w takich scenariuszach.

Aby to zrobić, musisz znać numer seryjny urządzenia docelowego. Możesz uzyskać numer seryjny za pomocą polecenia urządzeń:

urządzenia adb

Teraz skorzystaj z -S możliwość określenia numeru seryjnego urządzenia docelowego. Przykład:

przyimek -s <seryjnynumer> powłoka

Przesyłanie plików

Dla miłośników wiersza poleceń ADB zapewnia bardzo łatwy sposób przesyłania plików do iz urządzenia z systemem Android. Po prostu użyj ciągnąć polecenie kopiowania plików i katalogów z urządzenia i naciskać polecenie kopiowania plików i katalogów na urządzenie:

Jeśli chcesz skopiować plik lub katalog wraz z podkatalogami na urządzenie z systemem Android:

adb push ścieżka_lokalna ścieżka_urządzenia
  • Przykład: adb push D:\image.png /sdcard

Następujące polecenie skopiuje plik lub katalog wraz z jego podkatalogami z urządzenia z systemem Android na komputer hosta:

adb pull ścieżka_urządzenia ścieżka_lokalna
  • Przykład: adb pull /sdcard/backup_April.tar D:\Backup

Logowanie

Android Studio zapewnia Okno Logcata, która obsługuje wyświetlanie logów z Twojego urządzenia w czasie rzeczywistym. Jednak nie jest to dokładnie przydatne do przetwarzania wsadowego. Na szczęście urządzenia z Androidem są dostarczane z poleceniem logcat dostępnym przez ADB, które może służyć do zrzucania komunikatów dziennika systemu i aplikacji oraz drukowania ich na ekranie.

Podstawowa składnia jest następująca:

adb logcat

Aby dowiedzieć się więcej, zapoznaj się z naszym samouczkiem jak pobierać logcaty systemowe, dzienniki jądra i dmesg na Androida.

pisanki

Google oferuje dwa sprytne pisanki związane z poleceniem logcat.

  1. Pierwszym z nich jest lolcat, ukłon w stronę LOLkot mem. Daje to takie samo wyjście jak zwykłe polecenie logcat.
    adb lolcat
  2. Drugi to longcat, który jest odpowiednikiem polecenia logcat -v long. Wyświetla wszystkie pola metadanych i oddzielne komunikaty z pustą linią.
    adb długi kot

Lista zainstalowanych aplikacji przez ADB

Aby zobaczyć zainstalowane aplikacje na swoim urządzeniu, możesz użyć następującego polecenia:

adb powłoka pm lista paczki

Spowoduje to zwrócenie listy nazw pakietów zainstalowanych aplikacji, z każdą z nich w osobnym wierszu poprzedzonym pakiet:.

Opcje

Istnieje również kilka opcji, których można użyć do pobrania bardziej szczegółowych list.

  • -F będzie zawierać ścieżkę do podstawowego pliku APK dla każdej aplikacji wraz z nazwą pakietu.
  • -A upewni się, że wszystkie znane pakiety inne niż APEX zostaną zwrócone.
  • -D spowoduje, że polecenie zwróci tylko wyłączone pakiety.
  • -mi spowoduje, że polecenie zwróci tylko włączone pakiety.
  • -S spowoduje, że polecenie zwróci tylko pakiety systemowe.
  • -3 spowoduje, że polecenie zwróci tylko pakiety innych firm.
  • -I będzie zawierać nazwę pakietu instalatora dla każdego pakietu.
  • -U będzie zawierać UID pakietu dla każdego pakietu.
  • -u będzie zawierać odinstalowane pakiety.
  • --show-kod-wersji będzie zawierać kod wersji dla każdego pakietu.
  • --tylko wierzchołek zwróci tylko pakiety APEX.
  • --uid pokaże tylko pakiety z podanym UID.
  • --użytkownik pokaże tylko pakiety należące do podanego identyfikatora użytkownika.

Instalowanie i odinstalowywanie aplikacji przez ADB

Jest to stosunkowo powszechne użycie ADB, ale i tak warto o tym wspomnieć. Między innymi możesz również skorzystać z ADB do instalować i odinstalowywać aplikacje na Androida na Twoje urządzenie z Androidem.

Instalowanie pliku APK

Jeśli masz plik APK na swoim komputerze, możesz zainstalować go na swoim urządzeniu, wykonując następujące czynności:

przysłzainstalować-Rjakiśapk.apk

Pamiętaj o wymianie jakaśapk.apk z pełną ścieżką do pliku APK, który chcesz zainstalować.

Opcje

Istnieje kilka opcji instalowania plików APK za pośrednictwem ADB.

  • The -R opcja umożliwia ADB instalację na istniejącej aplikacji (tj. aktualizację). W systemie Android Pie i nowszych nie trzeba określać tej opcji.
  • The -R opcja dla systemu Android Pie i nowszych spowoduje niepowodzenie instalacji, jeśli aplikacja jest już zainstalowana.
  • The -I opcja pozwala określić nazwę pakietu instalatora. To jest zwracane, jeśli Android chce wiedzieć, co zainstalowało plik APK.
  • The -T opcja zezwala na plik APK z android: testOnly="true" w swoim manifeście do zainstalowania.
  • The -D opcja umożliwia przejście określonego pliku APK na starszą wersję już zainstalowanej aplikacji. Działa to tylko wtedy, gdy obie wersje aplikacji można debugować.
  • The -G opcja dla Androida Marshmallow, a później automatycznie przyznaje wszystkie uprawnienia uruchomieniowe zainstalowanej aplikacji.

To nie wszystkie. Jeśli chcesz uzyskać pełną listę, możesz sprawdzić wbudowaną dokumentację.

Wiele plików APK i pakietów

Jeśli masz kilka plików APK, które chcesz zainstalować jednocześnie, albo z wielu aplikacji, albo z powodu instalowania pakietu aplikacji, możesz użyć ADB zainstaluj wiele I pakiet instalacyjny cechy.

Jeśli wszystkie pliki APK dotyczą jednej aplikacji, użyj zainstaluj wiele:

przysłzainstaluj wieleapk1.apkapk2.apk ...

W przeciwnym razie użyj pakiet instalacyjny:

przysłpakiet instalacyjnyaplikacja1.apkaplikacja2.apk ...

Opcje tych poleceń są podobne do zainstalować, ale z pewnymi ograniczeniami. Sprawdź wbudowaną dokumentację ADB dla dostępnych opcji.

Odinstalowywanie aplikacji

Aby odinstalować za pomocą ADB, potrzebujesz nazwy pakietu aplikacji, którą chcesz odinstalować. Sprawdź sekcję pt Lista zainstalowanych aplikacji jeśli jeszcze tego nie zrobiłeś.

Po uzyskaniu nazwy pakietu odinstalowanie jest tak proste, jak:

adb odinstalować <nazwapakietu>

Zwykle nie można odinstalować systemu ani preinstalowanych aplikacji za pomocą tego polecenia. Jednak możesz je wyłączyć za pomocą ADB. Sprawdź sekcję Wyłączanie i włączanie prawie każdej aplikacji dla szczegółów.

Wyodrębnianie plików APK za pomocą ADB

Istnieje wiele powodów, dla których możesz chcieć wyodrębnić pliki APK dla aplikacji. Może chcesz utworzyć jego kopię zapasową do wykorzystania w przyszłości, a może nie jest już dostępny online i chcesz przenieść go na inne urządzenie.

Wyodrębnianie aplikacji za pomocą ADB jest dość proste. Najpierw musisz znaleźć nazwę pakietu aplikacji, którą chcesz wyodrębnić. Można to zrobić na wiele sposobów, ale najłatwiej jest zwykle użyć aplikacji Ustawienia na urządzeniu, aby wyświetlić plik listę wszystkich zainstalowanych aplikacji, wybierz tę, którą chcesz i przewiń w dół, aż znajdziesz nazwę pakietu lub aplikację ID.

Po uzyskaniu nazwy pakietu uruchom następujące polecenie:

Ścieżka pm powłoki adb <nazwapakietu>

To polecenie zwróci ścieżkę wszystkich plików APK dla tej nazwy pakietu.

Następnie możesz użyć następującego polecenia, aby pobrać każdy plik APK na swój komputer:

adb pull /ścieżka/do/apk.apk

Tworzenie kopii zapasowych i przywracanie danych aplikacji

Chociaż Google nie wymyślił jeszcze metodologii tworzenia kopii zapasowych jednym kliknięciem w stylu iOS, możesz użyć ADB do tworzenia kopii zapasowych i przywracania zainstalowanych aplikacji wraz z ich danymi. Jednak funkcjonalność jest daleka od doskonałości, a Google już to zrobił oznaczono tę funkcję jako przestarzałą.

Kopia zapasowa

Aby utworzyć kopię zapasową pojedynczej aplikacji wraz z jej pakietem APK:

przysł kopia zapasowa -apk <pakietnazwa> -f nazwa_pakietu_kopia zapasowa.ab

Jeśli chcesz wykonać kopię zapasową wszystkich danych aplikacji jednocześnie:

przysł kopia zapasowa -F Wszystko -Wszystko -apk -brak systemu

Ponieważ moduł przywracania nie może wykonać przywracania dla poszczególnych aplikacji, lepiej jest tworzyć kopie zapasowe dla poszczególnych pakietów. Poniższy fragment polecenia (kompatybilny z systemami Linux/macOS i Windows Subsystem for Linux) może to zrobić za Ciebie:

Do APLIKACJA W $(adb powłoka pm lista pakietów -3)
Do
APLIKACJA=$( Echo${APLIKACJA} | sed "s/^pakiet://")
kopia zapasowa adb -f ${APLIKACJA}.kopia zapasowa ${APLIKACJA}
zrobione

Przywrócić

Najpierw musisz zainstalować zapisany plik APK;

przysł zainstalować <pakietnazwa>.apk

Następnie możesz przywrócić jego dane:

przysłprzywrócićnazwa_pakietu_kopia zapasowa.ab

Aby powtórzyć, funkcje tworzenia kopii zapasowych i przywracania ADB mają wiele zastrzeżeń, w tym zmienne wyniki w zależności od pamięci ROM

Wyświetlanie listy składników aplikacji

Komponenty aplikacji to takie elementy, jak działania, odbiorniki rozgłaszania, usługi i tak dalej. Czasami warto znać nazwy tych komponentów w konkretnej aplikacji, zwłaszcza jeśli chcesz uruchomić ukryte działania lub wysłać transmisję z określonymi danymi.

Niestety, ADB nie ma bardzo przejrzystego sposobu wyświetlania listy komponentów aplikacji. Ale to możliwe. Uruchom następujące polecenie:

adb shell dumpsys pakiet

Zostanie zwrócona cała masa tekstu.

  • Przewiń, aż znajdziesz Tabela rozwiązywania działań tytuł, aby zobaczyć Działania.
  • Spojrzeć pod Tabela resolwerów odbiorników dla odbiorników nadawczych.
  • Sprawdź Tabela rozwiązywania usług dla usług.
  • I tak dalej.

Każdy składnik pokaże akcję potrzebną do jego uruchomienia, nazwę składnika i ewentualnie dodatkowe informacje.

Alternatywnie, jeśli chcesz łatwiej zobaczyć Działania, Usługi i Odbiorców, możesz użyć aplikacji Root Activity Launcher od XDA Recognized Developer Zacharee1. Pokaże ci te komponenty dla każdej aplikacji, wraz z wieloma innymi przydatnymi funkcjami.

Główny program uruchamiający aktywnośćDeweloper: Zachary Wander

Cena: 0,99.

Pobierać

Uruchomienie działalności, usług i odbiorników

ADB może być również używany do uruchamiania działań, uruchamiania usług i powiadamiania odbiorców transmisji. W razie potrzeby możesz nawet określić identyfikatory URI danych i dodatki intencji.

Aby uruchomić komponenty, będziesz potrzebować nazwy komponentu, który chcesz uruchomić. Możesz zobaczyć, jak to uzyskać z Wyświetlanie listy składników aplikacji Sekcja.

Składnia polecenia do uruchamiania działania wygląda mniej więcej tak:

zaczynam -a <działanie> -N <część>

Składnia polecenia do uruchamiania usługi wygląda mniej więcej tak:

rozpoczynam usługę -a <działanie> -N <część>

Składnia polecenia do powiadamiania BroadcastReceiver wygląda mniej więcej tak:

nadaję -a <działanie> -N <część>

W większości przypadków w przypadku działań i usług nie trzeba jawnie określać akcji. Zwykle będziesz go potrzebować tylko wtedy, gdy komponent używa innego niż android.zamiar.akcja. GŁÓWNY.

Oprócz podstawowej składni, oto jak określić więcej danych do przekazania. Ogólnie rzecz biorąc, wszystkie wartości danych powinny być ujęte w podwójne cudzysłowy.

  • -D pozwala określić identyfikator URI danych.
  • -mi Lub --es pozwala określić dodatkowy ciąg znaków.
  • --esn pozwala określić dodatkowy łańcuch o wartości null.
  • --ez służy do określenia dodatkowej wartości logicznej.
  • --ei służy do określenia dodatkowej liczby całkowitej.
  • -- el służy do określania długiego dodatku.
  • --ef przepuści dodatkowy pływak.
  • --eu przekazuje dodatkowy identyfikator URI.
  • --ecn można użyć do określenia dodatkowej nazwy komponentu.
  • --eia ,,... przekaże wartości jako dodatkową liczbę całkowitą [].
  • --eial ,,... przekaże wartości jako listę.
  • Te same argumenty typu tablica i lista działają również dla długich, zmiennoprzecinkowych i łańcuchów. Po prostu wymień I z odpowiednią literą.
  • -F pozwala określić flagę.

Istnieje jeszcze więcej opcji zachowania, których możesz użyć, więc sprawdź wbudowaną dokumentację, aby uzyskać szczegółowe informacje.

Wyłączanie i włączanie prawie każdej aplikacji

Aplikacji systemowych na Androida nie można odinstalować, a niestety wielu z nich nie można również wyłączyć w Ustawieniach. Chociaż ADB nie pozwoli ci ich odinstalować, może pomóc ci je wyłączyć.

Najpierw upewnij się, że otrzymałeś nazwę pakietu aplikacji, którą chcesz wyłączyć. Następnie wypróbuj te polecenia. Jeśli jedna się nie powiedzie, wypróbuj następną opcję.

  • wieczorem wyłącz
    • Aby ponownie włączyć, użyj pm włącz
  • pm wyłącz użytkownika --użytkownik 0
    • Aby ponownie włączyć, użyj pm włącz
  • po południu schowaj się
    • Aby ponownie włączyć, użyj po południu odkryj
  • po południu zawiesić
    • Aby ponownie włączyć, użyj pm anulowanie zawieszenia
  • pm odinstaluj -k --użytkownik 0
    • Aby ponownie włączyć, użyj pm instalacja-istniejąca
      • Ten skutecznie odinstalowuje aplikację z twojego profilu użytkownika. Podczas gdy polecenie ponownego włączenia powinien zadziała, nie ma gwarancji, że tak będzie. Aby przywrócić aplikację, może być konieczne przywrócenie ustawień fabrycznych.
      • Jeśli używasz wielu profili użytkowników na swoim urządzeniu, pamiętaj, aby zastąpić 0 w powyższych poleceniach rzeczywistym identyfikatorem użytkownika, który posiadasz.

Aby dowiedzieć się więcej, zapoznaj się z naszym samouczkiem jak odinstalować bloatware przewoźnika i OEM bez dostępu do roota.

Przechwytywanie zrzutów ekranu

Większość ROM-ów z Androidem oferuje dwa przydatne narzędzia powłoki - screencap i screenrecord - odpowiednio do robienia zrzutów ekranu i nagrywania działań na ekranie. Możesz zadzwonić do nich bezpośrednio z powłoki ADB, aby przechwycić statyczny zrzut ekranu lub fragment wideo ekranu telefonu i zapisać go bezpośrednio w pamięci wewnętrznej urządzenia.

Składnia przechwytywania zrzutu ekranu jest dość prosta:

zrzut ekranu powłoki adb /sdcard/screenshot.png

Podobnie, jeśli chcesz pobrać dynamiczny zrzut ekranu, wykonaj następujące czynności:

adb shell screenrecord /sdcard/recording.mp4

Jak można się spodziewać, narzędzie do tworzenia zrzutów ekranu jest dość proste, podczas gdy narzędzie do nagrywania ekranu oferuje kilka parametrów. Opcje dla tego ostatniego są następujące:

  • --rozmiar SZEROKOŚĆ x WYSOKOŚĆ
    • Ustaw rozdzielczość pliku wideo (np. „1280x720”). Domyślnie próbuje przyjąć rozdzielczość ekranu głównego urządzenia docelowego (jeśli jest obsługiwana), a jeśli nie, powraca do rozdzielczości 1280x720.
  • --szybkość transmisji bitów
    • Ustaw szybkość transmisji wideo w bitach na sekundę. Wartość może być określona w bitach lub megabitach, np. „4000000” odpowiada „4M”.
  • --Zgłoszenie błędu
    • Możesz dodać dodatkowe informacje, takie jak nakładka z sygnaturą czasową, która może być przydatna do zilustrowania błędów.
  • --limit czasu CZAS
    • Ustaw maksymalny czas nagrywania w sekundach. Wartość domyślna/maksymalna to 180.
  • --identyfikator identyfikatora wyświetlacza
    • Określ fizyczny identyfikator wyświetlacza do zarejestrowania. Domyślny jest ustawiony na główny wyświetlacz. Zobacz „dumpsys SurfaceFlinger --display-id”, aby uzyskać prawidłowe identyfikatory wyświetlania.
  • --gadatliwy
    • Wyświetl szczegółowe informacje dotyczące sesji nagrywania.

Możliwości wbudowanych w Androida narzędzi do przechwytywania ekranu można jeszcze bardziej rozszerzyć scrcpy. Jest to rozwiązanie do tworzenia kopii lustrzanych ekranu typu open source, które wykorzystuje moc ADB.

Przesyłanie danych binarnych między komputerem a urządzeniem z systemem Android

Jeśli nie chcesz odradzać pełnoprawnej powłoki ADB, ale chcesz włączyć usprawnione przekazywanie danych binarnych między komputerem hosta a docelowym urządzeniem z Androidem, możesz skorzystać z wykonawczy I wyk polecenia.

Pomimo ich przedłużone istnienie, polecenia exec-in i exec-out są nadal nieudokumentowane. Mogą one prowadzić do uszkodzenia plików ze względu na sposób, w jaki różne powłoki obsługują dane wejściowe i wyjściowe. Używaj ostrożnie.

Pierwszy pomaga wykonać polecenie na Androidzie i podać niefiltrowane wejście konsoli jako jego parametr, podczas gdy drugi robi dokładnie odwrotnie, tj. uruchamia polecenie na Androidzie i przechwytuje jego niefiltrowane wyjście binarne przez system operacyjny hosta.

Przykład:

przysł egzekutor-na zewnątrz "zrzut ekranu -p" > "D:\zrzut ekranu.png"

To użyje zrzut ekranu polecenie Androida, aby przechwycić zrzut ekranu wyświetlacza telefonu, ale bezpośrednio zapisuje go jako screenshot.png na partycji D: komputera hosta (pod warunkiem, że działa na nim system Windows). Z drugiej strony,

przysł egzekutor-W"cd /sdcard && tar -xf -" < "D:\backup.tar"

Spowoduje to wyodrębnienie zawartości pliku backup.tar przechowywanego na partycji D: komputera hosta (z systemem Windows) w katalogu głównym pamięci wewnętrznej urządzenia z systemem Android.


ADB to niezwykle potężne narzędzie, które może zrobić o wiele więcej niż tylko to, co powyżej. Polecenia w tym artykule to tylko przydatny punkt wyjścia. Aby uzyskać bardziej zaawansowane użycie, sprawdź polecenia takie jak cmd -l aby zobaczyć różne usługi, z którymi możesz wchodzić w interakcje i ls -l /system/bin aby zobaczyć różne pliki wykonywalne poleceń dostępne w pamięci ROM systemu Android.

Aby zapoznać się z innymi podróżami i kleszczami na Androida, zapoznaj się z naszymi przewodnikami jak zrootować smartfon z Androidem, jak zainstalować odzyskiwanie TWRP, I jak zainstalować niestandardową pamięć ROM na urządzeniu z Androidem.