- Rakesh
- March 15, 2020
ADB lub Android Debug Bridge jest narzędziem wiersza poleceń opracowanym w celu ułatwienia komunikacji między komputerem a podłączonym emulatorem lub urządzeniem z systemem Android. Używając ADB i poleceń ADB Shell, możemy wykonywać różne czynności na urządzeniu. Aby móc wykonywać polecenia ADB i Fastboot, pakiet Android SDK Platform-tools musi być zainstalowany na komputerze z systemem Windows, Linux lub macOS. W tym artykule poznamy ogromną listę komend ADB Shell wraz z arkuszem pomocniczym.
Nie zapomnij sprawdzić szczegółowej listy komend ADB z wyjaśnieniem funkcji każdej z nich.
Czym jest ADB Shell?
Komendy ADB mogą być używane do debugowania urządzeń z systemem Android, instalowania lub odinstalowywania aplikacji oraz uzyskiwania informacji o podłączonym urządzeniu. ADB działa z pomocą trzech komponentów zwanych Klientem, Demonem i Serwerem. Jeśli jesteś ciekawy jak te 3 komponenty współpracują ze sobą aby ADB i polecenia powłoki ADB działały, zobacz poniżej:
- Klient: Jest to sam komputer, na którym używasz terminala wiersza poleceń, aby wydać polecenie ADB. który wysyła polecenia.
- Daemon: Lub, ADBD jest procesem w tle, który działa na obu podłączonych urządzeniach. Jest on odpowiedzialny za uruchamianie poleceń na podłączonym emulatorze lub urządzeniu z systemem Android.
- Serwer: Działa w tle i działa jako most między klientem a demonem i zarządza komunikacją. który zarządza komunikacją między klientem a demonem.
ADB Polecenia powłoki zapewniają dostęp do powłoki uniksowej, która uruchamia polecenie bezpośrednio na urządzeniu z systemem Android. Jak tylko wykonasz polecenie 'adb shell' na terminalu poleceń, wysyła ono sygnał do Twojego urządzenia z Androidem i uruchamia konsolę poleceń zdalnej powłoki. Tak więc komendy powłoki ADB pozwalają kontrolować urządzenie z Androidem.
Używając komend ADB, możesz zrestartować urządzenie, pchać i ciągnąć pliki, tworzyć kopie zapasowe i przywracać je, sideload pakiet zip aktualizacji lub APK. Komendy ADB Shell działają jednak na znacznie głębszym poziomie. Za ich pomocą można zmienić rozdzielczość wyświetlacza urządzenia, odinstalować bloatware lub aplikacje systemowe, włączyć i wyłączyć funkcje, zmodyfikować pliki systemowe i zmienić ich konfigurację bezpośrednio za pomocą poleceń z komputera.
Właściwie jest więcej zadań, które można wykonać za pomocą tych poleceń, a poniżej sprawdzimy je wszystkie na przykładach. Należy pamiętać, że istnieją trzy warunki wstępne zanim będzie można skorzystać z ADB, Fastboot i komend powłoki ADB.
- Android SDK Platform-tools
- Sterowniki USB dla Twojego urządzenia z Androidem
- Włącz debugowanie USB
Teraz możesz użyć Web ADB w oknie przeglądarki internetowej, aby uruchomić polecenia ADB na urządzeniu z Androidem lub komputerze bez instalowania narzędzi ADB i Fastboot oraz sterowników USB.
Wreszcie, bez dalszych ceregieli, przejdźmy do naszej listy poleceń ADB Shell.
Ostrzeżenie: Nie używaj komend wymienionych na tej stronie, chyba że wiesz jak ich używać i masz jakąś wcześniejszą wiedzę lub doświadczenie.
Lista komend powłoki ADB & Cheat Sheet
W tym arkuszu poleceń powłoki ADB, postaram się wyjaśnić funkcję wszystkich komend w prostym języku.
adb shell
To polecenie aktywuje zdalną konsolę poleceń powłoki na podłączonym smartfonie lub tablecie z systemem Android.
adb shell pm uninstall
To jest naprawdę bardzo przydatne polecenie powłoki ADB. Używając go, możesz łatwo odinstalować niechciane aplikacje systemowe. Aby móc ją wykonać, musisz najpierw wydać polecenie 'adb shell'. Następnie możesz użyć pm uninstall -k --user 0
lub pm uninstall --user 0
, a następnie nazwę pakietu aplikacji Android, jak pokazano poniżej.
pm uninstall -k --user 0 com.facebook.appmanager
-k
: Zachowaj dane aplikacji i pamięć podręczną po usunięciu pakietu. Jeśli chcesz, aby dane aplikacji również zostały wyczyszczone, użyj następujących
pm uninstall --user 0 com.android.chrome
Jeśli nie znasz nazwy pakietu aplikacji dla aplikacji, które chcesz usunąć, możesz użyć adb shell pm list packages
, aby go znaleźć.
To polecenie może ci pomóc, jeśli chcesz usunąć wszystkie bloatware ze swojego telefonu z Androidem. Należy pamiętać, że większość aplikacji systemowych nie ma opcji „Odinstaluj” na urządzeniu, ale to polecenie działa magicznie.
adb shell cmd package install-existing
Używając powyższego polecenia, możesz ponownie zainstalować odinstalowaną aplikację systemową.
cmd package install-existing com.facebook.appmanager
adb shell pm disable-user -user 0
Jeśli chcesz wyłączyć aplikację systemową na swoim urządzeniu z Androidem, możesz wykonać powyższe polecenie, a następnie nazwę pakietu aplikacji
pm disable-user --user 0 com.google.ar.core
adb shell pm clear -user 0
Używając tego polecenia, możesz usunąć wszystkie dane związane z aplikacją.
adb shell pm clear -user 0 com.facebook.appmanager
adb shell pm hide -user 0
W przypadku, gdy chcesz ukryć zainstalowaną aplikację na urządzeniu z systemem Android, możesz wykonać tę linię poleceń, a następnie nazwę pakietu aplikacji.
adb shell pm hide --user 0 com.whatsapp
adb shell pm list packages
Używając powyższej komendy ADB Shell, możesz wydrukować listę nazw pakietów aplikacji dla wszystkich aplikacji zainstalowanych na Twoim urządzeniu z Androidem. Możesz użyć tego polecenia z różnymi parametrami, aby uzyskać bardziej szczegółową listę pakietów aplikacji.
Na przykład, jeśli chcesz wyświetlić listę tylko aplikacji systemowych, użyj
adb shell pm list packages -s
Aby wyświetlić listę wszystkich aplikacji innych firm zainstalowanych na telefonie lub tablecie z Androidem, wydaj następujące polecenie.
adb shell pm list packages -3
Jeśli chcesz, aby ADB Shell wyświetlił listę wszystkich włączonych lub wyłączonych aplikacji na Twoim urządzeniu, spróbuj wydać polecenie z parametrami takimi jak '-d' (dla wyłączonych aplikacji), '-e' (dla włączonych aplikacji) i '-u' (dla odinstalowanych aplikacji).
adb shell pm list packages -d
adb shell pm list packages -e
adb shell pm list packages -u
Aby wyświetlić listę pakietów aplikacji z określonym filtrem słów kluczowych.
adb shell pm list packages <keywords>
Aby znaleźć listę aplikacji wraz z powiązanymi z nimi pakietami, wykonaj następujące polecenie
adb shell pm list packages -f
Możesz łatwo uzyskać listę pakietów grup według określonego producenta, lub przyjść wspólnego terminu. Na przykład, jeśli chcesz wyświetlić listę wszystkich aplikacji Google, możesz użyć następującego polecenia.
adb shell pm list packages | grep 'google'
Możesz zastąpić „google” przez „samsung”, „huawei”, „xiaomi”, „miui”, „evenwell”, „android”, „facebook”, etc., aby uzyskać żądaną listę pakietów.
adb shell pm path <package-name>
To polecenie wyświetla ścieżkę APK w systemie plików urządzenia.
adb shell pm create-user
Możesz użyć tego polecenia, aby utworzyć nowego użytkownika na urządzeniu z Androidem.
adb shell pm create-user username
adb shell pm remove-user
Na wypadek, gdybyś chciał usunąć użytkownika ze swojego urządzenia, możesz użyć powyższego polecenia z następującym po nim user_id
jak pokazano poniżej.
adb shell pm remove-user user 1
adb shell pm get-max-users
Używając tego polecenia, możesz wydrukować maksymalną liczbę użytkowników obsługiwanych na urządzeniu z systemem Android.
adb shell pm list features
Użyj powyższego polecenia, aby wydrukować wszystkie obsługiwane funkcje systemu.
adb shell pm list permissions
To polecenie drukuje listę wszystkich znanych uprawnień, opcjonalnie tylko tych w group
. Możesz go użyć z następującymi parametrami.
-
-g
: Uporządkuj uprawnienia według grup -
-f
: Drukuj wszystkie informacje -
-s
: Krótkie podsumowanie uprawnień -
-d
: Lista tylko niebezpiecznych uprawnień -
-u
: Lista uprawnień widzianych tylko przez użytkowników
adb shell pm list permissions -d group
adb shell settings
Możesz użyć tego polecenia, aby uzyskać informacje o pewnych ustawieniach na urządzeniu z Androidem. Dodając różne parametry, możesz dowiedzieć się o dostawcy ustawień Androida, aktualnym poziomie głośności systemu, dźwięku powiadomienia, identyfikatorze urządzenia, adresie MAC Bluetooth, aktualnym statusie danych mobilnych, aktualnym statusie WiFi itp.
-
adb shell settings list system
-
adb shell settings get system volume_system
-
adb shell settings get system notification_sound
-
adb shell settings list secure
-
adb shell settings get secure android_id
-
adb shell settings get secure bluetooth_address
-
adb shell settings list global
-
adb shell settings get global mobile_data
-
adb shell settings get global wifi_on
adb shell dumpsys
Jest to bardzo elastyczne polecenie, które może być używane samodzielnie lub z różnymi parametrami, aby uzyskać dane związane z baterią, wyświetlaczem, procesorem, pamięcią RAM, pamięcią masową, itp. Wykonanie tej komendy dostarczy Ci szczegółowych informacji na temat konfiguracji oprogramowania i sprzętu urządzenia z systemem Android.
Uwaga: W celu użycia tego narzędzia nie zapomnij dodać uprawnienia do manifestu Androida automatycznie android.permission.DUMP
adb shell dumpsys
Inne warianty polecenia są następujące:
-
adb shell dumpsys input
-
adb shell dumpsys display
-
adb shell dumpsys battery
-
adb shell dumpsys batterystats
-
adb shell dumpsys activity
-
adb shell dumpsys cpuinfo
-
adb shell dumpsys battery
Wykonanie polecenia 'adb shell dumpsys cpuinfo', na przykład, wydrukuje listę użycia procesora przez uruchomione procesy i aplikacje na twoim urządzeniu z Androidem, jak pokazano poniżej:
PS C:\Users\Technastic\Desktop> adb devices List of devices attached RZ8M810BARJ device PS C:\Users\Technastic\Desktop> adb shell dumpsys cpuinfo Load: 12.48 / 12.76 / 12.82 CPU usage from 138400ms to 89027ms ago: 8.1% 5954/system_server: 5.5% user + 2.5% kernel / faults: 9802 minor 5 major 3.1% 6485/com.android.phone: 2.2% user + 0.9% kernel / faults: 6575 minor 1 major 2.7% 6596/com.android.systemui: 2.1% user + 0.6% kernel / faults: 3178 minor 1 major 2.6% 26484/com.netflix.mediaclient: 1.3% user + 1.3% kernel / faults: 109 minor 2% 2231/sugov:0: 0% user + 2% kernel 1% 24100/kworker/u18:2: 0% user + 1% kernel 1% 5706/statsd: 0.9% user + 0.1% kernel 0.5% 3752/ueventd: 0.4% user + 0.1% kernel / faults: 25 minor 0.5% 5721/rild: 0.3% user + 0.2% kernel / faults: 20 minor 0.5% 5169/logd: 0.3% user + 0.2% kernel / faults: 43 minor 0.5% 5558/surfaceflinger: 0.3% user + 0.2% kernel / faults: 1 minor 0.4% 5170/servicemanager: 0.2% user + 0.2% kernel 0.4% 1/init: 0.3% user + 0% kernel 0.4% 19725/kworker/u17:3: 0% user + 0.4% kernel 0.3% 5546/lmkd: 0% user + 0.3% kernel 0.3% 5456/kworker/u17:1: 0% user + 0.3% kernel 0.3% 5715/argosd: 0.1% user + 0.1% kernel 0.3% 2233/sugov:4: 0% user + 0.3% kernel 0.2% 23487/kworker/u18:0: 0% user + 0.2% kernel 0.1% 23896/kworker/u16:3: 0% user + 0.1% kernel / faults: 6 minor 0.1% 8/rcu_preempt: 0% user + 0.1% kernel 0.1% 5718/lhd: 0% user + 0.1% kernel 0.1% 23489/kworker/0:2: 0% user + 0.1% kernel
adb shell wm density
Powyższe polecenie może być użyte do poznania gęstości pikseli wyświetlacza Twojego urządzenia z systemem Android.
adb shell dumpsys window displays
W oknie komendy otrzymasz bardzo szczegółowe dane wyjściowe z informacjami takimi jak rozdzielczość pikseli, FPS, i DPI wyświetlacza Twojego telefonu.
Display: mDisplayId=0 init=1440x3040 560dpi base=1080x2280 420dpi cur=1080x2280 app=1080x2069 rng=1080x1017-2069x2069 deferred=false mLayoutNeeded=false mTouchExcludeRegion=SkRegion((0,0,1080,2280)) mDisplayInfo=DisplayInfo{"Built-in Screen, displayId 0", uniqueId "local:0", app 1080 x 2069, real 1080 x 2280, largest app 2069 x 2069, smallest app 1080 x 1017, mode 1, defaultMode 1, modes [{id=1, width=1440, height=3040, fps=60.000004}
adb shell wm size
Możesz dowiedzieć się o rozdzielczości wyświetlacza twojego telefonu za pomocą tego polecenia.
PS C:\Users\Technastic\Desktop> adb shell wm size Physical size: 1440x3040 Override size: 1080x2280
Jeśli chcesz zmienić rozdzielczość ekranu i gęstość pikseli wyświetlacza twojego Androida. Jeśli nie jesteś pewien rozdzielczości wyświetlacza swojego urządzenia, wykonaj polecenie podane poniżej. Załóżmy, że rozdzielczość wyświetlacza Twojego telefonu to QHD+, możesz ją łatwo zmienić na Full HD+ lub HD+.
- FHD
adb shell wm size 1080x2220
adb shell wm density 420
- HD
adb shell wm size 720x1560
adb shell wm density 360
ADB Shell command to Send SMS screen
Jeśli chcesz wysłać wiadomość tekstową za pomocą komendy, spróbuj wykonać następujący kod.
adb shell am start -a android.intent.action.SENDTO -d sms:+918052000222 --es sms_body "Test --ez exit_on_sent false
adb shell screencap
Używając tego polecenia, możesz przechwycić zrzut ekranu i pobrać go na swój komputer za pomocą polecenia 'adb pull', jak opisano powyżej.
adb shell screencap /sdcard/screenshot-01.png
adb shell screenrecord
Na urządzeniach z systemem Android z systemem Android 4.4 KitKat i nowszym, możesz nawet nagrać ekran telefonu lub tabletu i pobrać nagrane wideo na komputer. Poza tym możesz również ustawić warunki, takie jak czas trwania wideo, rozdzielczość w pikselach i bitrate wideo itp.
adb shell screenrecord /sdcard/screenrecord-01.mp4
adb pull screenrecord /sdcard/screenrecord.mp4
Możesz zatrzymać nagrywanie ekranu za pomocą Ctrl+C. W przypadku, gdy chcesz nagrywać ekran w określonej rozdzielczości, poniższe polecenie pozwala ustawić niestandardową szerokość i wysokość w pikselach.
adb shell screenrecord --size 1920x1080 /sdcard/screenrecord-01.mp4
Domyślnie czas trwania nagrywania ekranu w Androidzie jest ustawiony na 180 sekund (3 minuty). Możesz zmniejszyć ten limit czasu w zależności od swoich potrzeb (180 sekund to maksymalny limit).
adb shell screenrecord --time-limit 120 /sdcard/screenrecord-01.mp4
Podobnie, możesz również określić bitrate wyjścia wideo. Aby ustawić bitrate na 4MBPS, na przykład, można użyć następującej wartości:
adb shell screenrecord --bit-rate 6000000 /sdcard/screenrecord-01.mp4
adb shell getprop & adb shell setprop
Komendy 'getprop' i 'setprop' mogą być używane do przeglądania i ustawiania lub zmiany konfiguracji pliku 'build.prop' na urządzeniach z systemem Android. Poniższe polecenie, dla przykładu, wyświetla informacje o właściwościach systemu Android.
adb shell getprop
Poniżej znajduje się jeszcze kilka przykładów:
getprop ro.build.version.sdk
getprop ro.chipname
W przypadku, gdy chcesz zmienić wartość wpisu w pliku build.prop, możesz użyć polecenia 'adb shell setprop'. Zobacz przykłady poniżej:
getprop net.dns1 1.2.3.4
setprop net.dns1 1.3.4.5
getprop net.dns2 1.1.2.3
setprop net.dns2 1.2.3.4
W ten sam sposób, jeśli chcesz zmienić konfigurację rozmiaru VMHeap na urządzeniu z Androidem, możesz użyć następującego polecenia.
setprop dalvik.vm.heapsize 60m
Istnieją jeszcze inne warianty polecenia 'adb shell getprop', które pozwalają zobaczyć informacje o właściwościach systemu Android, poziomie API SDK, wersji poprawek bezpieczeństwa Androida, Soc, wersji Androida, modelu urządzenia, producencie urządzenia, numerze seryjnym ADB, statusie odblokowania OEM, odcisku palca budowy urządzenia Android, adresie MAC WiFi itp.
-
adb shell getprop
-
adb shell getprop ro.build.version.sdk
-
adb shell getprop ro.build.version.security_patch
-
adb shell getprop ro.board.platform
-
adb shell getprop ro.build.version.release
-
adb shell getprop ro.vendor.product.model
-
adb shell getprop ro.product.manufacturer
-
adb shell getprop ro.serialno
-
adb shell getprop ro.oem_unlock_supported
-
adb shell getprop ro.bootimage.build.fingerprint
-
adb shell getprop ro.boot.wifimacaddr
adb -.s shell getprop
Jeśli chcesz sprawdzić pełną konfigurację, działające usługi i informacje o Twoim telefonie lub tablecie z Androidem, możesz użyć powyższego polecenia. Po pierwsze, uruchom polecenie adb devices
i skopiuj alfanumeryczną wartość identyfikatora urządzenia z wyjścia.
PS C:\Users\Technastic\Desktop> adb devices List of devices attached RZ8M810BARJ device
Następnie wykonaj następujące polecenie. Nie zapomnij zastąpić identyfikatora urządzenia zaznaczonego na niebiesko identyfikatorem swojego urządzenia.
adb -s RZ8M810BARJ shell getprop
adb shell cat /proc/cpuinfo
Użyj powyższego polecenia, aby uzyskać pełne informacje o procesorze w telefonie lub tablecie.
Uzyskaj właściwości urządzenia z systemem Android
Uruchamiając poniższe polecenie, możesz zobaczyć właściwości systemu.
adb shell getprop | grep -e 'model' -e 'version.sdk' -e 'manufacturer' -e 'hardware' -e 'platform' -e 'revision' -e 'serialno' -e 'product.name' -e 'brand'
Powłoka ADB cd
Zmień katalog powłoki ADB używając 'cd <directory>'
adb shell
Następnie wykonaj następujące polecenie:
cd /system
adb shell rm
To polecenie pozwala łatwo usunąć plik lub folder z pamięci masowej urządzenia z systemem Android. Uruchom okno poleceń, wykonaj polecenie 'adb shell', a następnie spróbuj wykonać następujące polecenie z parametrami '-f' (aby usunąć plik) i '-d' (aby usunąć katalog).
rm -f /sdcard/com.whatsapp.apk
rm -d /sdcard/WhatsApp
Uwaga: Zamiast 'rm-d', możesz również użyć 'rmdir'.
adb shell mkdir
Poza usuwaniem istniejącego katalogu lub folderu, ADB Shell pozwala również na tworzenie nowego katalogu lub podkatalogu. Nie tylko to, można ustawić uprawnienia dla nowo utworzonego folderu.
mkdir /sdcard/NewFolder mkdir -p /sdcard/NewFolder/NewFolder1 mkdir -m 644 /sdcard/NewFolder
adb shell cp
’cp' oznacza 'kopiuj'. Możesz użyć tego polecenia do skopiowania plików i katalogów znajdujących się na twoim urządzeniu z Androidem. Ponownie, musisz najpierw zacząć od polecenia 'adb shell'.
Aby skopiować pliki, a następnie wkleić je, podając lokalizację źródłową i docelową, jak pokazano poniżej:
cp /sdcard/OPWallpaperResources.apk /sdcard/DCIM/Camera
adb shell mv
’mv' oznacza 'przenieś'. To polecenie może być użyte do przeniesienia pliku przechowywanego na urządzeniu z lokalizacji źródłowej do lokalizacji docelowej.
mv /sdcard/livewallpapers.apk /system/app
Następujące polecenie pozwoli Ci przenieść plik z nową nazwą.
mv /sdcard/livewallpapers.apk /sdcard/Wallpapers
adb shell top
Aby wyświetlić listę najlepszych procesów CPU na telefonie lub tablecie z systemem Android, możesz użyć powyższego polecenia. Monitor procesów CPU może być zatrzymany przy użyciu Ctrl+C.
adb shell ip
Odkryj adres IP WiFi telefonu lub tabletu z Androidem.
ip -f inet addr show wlan0
adb shell netstat
Wyświetla statystyki sieciowe telefonów z Androidem.
adb shell netstat
KeyEvent commands
Urządzenia z systemem Android obsługują polecenia KeyEvent, które pozwalają na wykonywanie pewnych czynności wymagających naciśnięcia przycisku sprzętowego lub dotknięcia aplikacji lub opcji UI. Możesz kontrolować swój telefon lub tablet z systemem Android po prostu za pomocą tych poleceń KeyEvent. Polecenia te mogą się przydać, jeśli klawisze sprzętowe w urządzeniu nie działają poprawnie z powodu jakiegoś uszkodzenia.
-
Turn Android device ON or OFF: adb shell input keyevent 2
-
Press Home button: adb shell input keyevent 3
-
Press Back button: adb shell input keyevent 4
-
Press Call button: adb shell input keyevent 5
-
End a call: adb shell input keyevent 6
-
Turn ON the camera: adb shell input keyevent 27
-
Open wen browser: adb shell input keyevent 64
-
Press the Enter key: adb shell input keyevent 66
-
Press Backspace button: adb shell input keyevent 67
-
Open Contacts app: adb shell input keyevent 207
-
Decrease display brightness: adb shell input keyevent 220
-
Increase Display brightness: adb shell input keyevent 221
-
Cut text: adb shell input keyevent 277
-
Copy text: adb shell input keyevent 278
-
Paste text: adb shell input keyevent 279
Więcej informacji na temat poleceń KeyEvent można znaleźć na portalu dla programistów Google.