Temat tego poradnika obejmuje wykorzystanie ADB (Android Debug Bridge) do podstawowych czynności związanych z kontrolą naszego telefonu z poziomu PC. ADB wykorzystamy m.in. do:
- instalacji aplikacji
- kopiowania plików do i z telefonu
- restartu telefonu do recovery/bootloadera w każdym momencie
- wykonania logcata
- operacji na plikach: zmiana nazwy i uprawnień
- przeglądania zawartości pamięci telefonu: adb shell
ADB jest narzędziem z pakietu Android SDK służącym do komunikacji z emulatorem Androida lub telefonem z tym systemem. Po połączeniu naszego telefonu do PC przez USB będziemy mogli wykonać wiele przydatnych nam czynności. Poradnik ten polecam przeczytać każdemu, nawet początkującym.
Instalacja ADB
Instalacja odbywa się przez pobranie i uruchomienie na naszym komputerze SDK Androida. Wcześniej warto zaopatrzyć się w Java JDK.
Aktywacja debugowania USB w telefonie
By nasz komputer zobaczył podłączony telefon z działającym trybem ADB należy włączyć Debugowanie USB:
1 | Ustawienia > Opcje programistyczne > Debugowanie USB |
Uruchomienie konsoli ADB
Po instalacji Android SDK Platform-tools w katalogu C:\android-sdk-windows\platform-tools powinno się znaleźć narzędzie .exe to uruchomienia ADB.
ADB można uruchomić klasycznie tzn. włączając w Windows konsolę CMD:
1 | Uruchom > CMD |
Nawigować do katalogu z platform-tools:
1 | cd C:\android-sdk-windows\platform-tools |
ADB uruchamiamy poleceniami poprzedzonymi prefixem “ADB”
Sprawdzamy poprawność działania ADB:
1 | adb devices |
Zwrócenie nam ID podłączonego telefonu potwierdza prawidłowe połączenie:
1 2 | List of devices attached 303347BA7A9F00EC device |
ADB – funkcje
Restart do recovery/bootloadera
ADB umożliwia restart urządzenia do recovery w dowolnym momencie – podczas pracy systemu lub nawet podczas uruchamiania. Możemy także zrestartować telefon gdy po instalacji pliku w recovery dostajemy bootloop, a telefon stoi na logu producenta lub animacji startowej.
Ponowne uruchomienie telefonu:
1 | adb reboot |
Uruchomienie w recovery:
1 | adb reboot recovery |
Uruchomienie w booloaderze:
1 | adb reboot bootloader |
Instalacja aplikacji
Jeśli chcemy zainstalować aplikację możemy plik .apk umieścić w katalogu z adb, w przeciwnym razie będziemy wpisywać dodatkowo ścieżkę do aplikacji na naszym dysku:
Instalacja .apk
1 2 | adb install aplikacja.apk adb install C:\sciezka_do_pliku\aplikacja.apk |
Kopiowanie plików telefon komputer
Za pomocą ADB możemy w prosty sposób skopiować zawartość telefonu na komputer lub wgrać na telefon pliki:
Kopiowanie z telefonu:
1 2 | adb pull /system/app/Browser.apk C:\temp adb pull /sdcard/plik.txt |
Kopiowanie na telefon:
1 2 | adb push C:\temp\plik.apk /data/local adb push plik.apk /sdcard |
W przypadku kopiowania do /system/app wymagane będzie zamontowanie partycji system do zapisu:
1 | adb remount |
Logcat
O logcacie napisałem obszerny poradnik: Poradnik: Jak zrobić logcat? także nie ma sensu opisywać tutaj wszystkiego.
Logcat z zapisem do pliku:
1 | adb logcat > log.txt |
1 | Ctrl+C |
by powrócić
[title-1]ADB – Shell[/title-1]
Uruchamiając ADB Shell mamy dostęp do pamięci telefonu z poziomu tekstowego (konsoli). Może nam to posłużyć do wykonania prostych operacji na plikach czy uruchomienie funkcji powłoki linuxa na Androidzie.
Uruchomienie powłoki shell:
1 | adb shell |
W wyniku dostajemy się do pamięci urządzenia. Standardowo do katalogu root:
1 | root@android:/ # |
Znak zachęty “#” informuje nas o dostępie z prawami root. W przypadku pojawienia się znaku zachęty “$” wpisujemy jeszcze komendę “su” by dostać prawa root (ale tylko dla zrootowanych urządzeń!)
Shell
Będąc w powłoce shell możemy wykonywać inne polecenia do operacji na plikach
ls – listowanie plików
1 | ls /system/app |
Zwraca zawartość katalogu /system/app (lista plików). Prametr “-l” listuje ze szczegółami.
cp – kopiowanie, rm – usuwanie, mv – zmiana nazwy/przeniesienie
1 2 3 4 5 6 | cp plik sciezka cp -r katalog sciezka rm plik rm -r katalog mv plik1 plik2 mv /data/local/plik /sdcard/plik |
Parametr “-r” kopiuje/usuwa z katalogami
chmod – zmiana uprawnień do plików
1 | chmod 0644 /system/lib/jakisplik.so |
df – użycie dysku (pamięci w telefonie)
1 | df |
Dzięki temu sprawdzimy jakie mamy punkty montowania na telefonie, jaką mają pojemność i ilość wolnej przestrzeni.
proc/meminfo – użycie pamięc
1 | cat /proc/meminfo |
Pokazuje m.in ilość przydzielonej/dostępnej pamięci RAM
Np:
1 2 | MemTotal: 411244 kB MemFree: 11664 kB |
Wyjście z shell
1 | exit |
Praktyczne przykładu
Będę tutaj uzupełniał przykłady na działania w ADB, które zbieram ze strony czy forum. Może komuś się przyda.
Podmiana aplikacji Camera.apk z /system/app na inną
Zakładam, że dysponujemy plikiem Camera.apk do podmiany w katalogu z ADB (nie muszę wpisywać ścieżki w windows)
Komendy jedna po drugiej:
1 2 3 4 5 6 | adb remount adb push Camera.apk /system/app adb shell cd /system/app chmod 0644 Camera.apk exit |
Edycja pliku build.prop
Skopiowanie pliku na komputer, edycja i ponowne skopiowanie na właściwe miejsce.
Najlepiej jest zrobić to będąc w recovery – wtedy zmiany zastosują się przy ponownym uruchmieniu.
Gdyby nie działało polecenie montowania systemu z adb to można zawsze wybrać stosowną opcję w ustawieniach recovery (Menu > Mounts)
1 2 3 | adb reboot recovery adb shell mount /system adb pull /system/build.prop |
Edycja pliku…
1 2 3 4 5 | adb push build.prop /system/build.prop adb shell cd system chmod 0644 build.prop exit |
cdn…