[Poradnik] Jak zainstalować i korzystać z ADB (Android Debug Bridge)

Kamil Piotrowski Artykuły 2015-03-20

logo adb

W niemalże każdym poradniku związanym z rootowaniem oraz modowaniem autor niejednokrotnie używa frazy ADB. Weterani Androida oraz deweloperzy niemal na co dzień korzystają z ADB (Android Debug Bridge), jednak dla początkującego konsola kojarzy się z czymś złym. Ale czy musi tak być?  Czym tak naprawdę jest ADB i dlaczego warto poznać jego podstawy?

Android Debug Bridge (w skrócie ADB) to nic innego interfejs służący do komunikacji i zarządzania urządzeniem z Androidem na pokładzie z dowolnego komputera przez kabel USB. Pozwala na wykonanie wielu operacji, na przykład kopiowanie plików z, oraz do pamięci urządzenia, instalowanie oraz odinstalowywanie aplikacji, zarządzanie procesami czy też wykonywanie kopii zapasowych, a także wiele innych, zaawansowanych „sztuczek”. W tym wpisie postaram się pokrótce przedstawić podstawy tego wszechstronnego narzędzia.

1. Instalacja środowiska Java oraz Android SDK

Pierwszym zadaniem przed uruchomieniem Android SDK (Software Development Kit – zestawu narzędzi dla deweloperów) jest instalacja środowiska Java. W tym celu musimy udać się na stronę producenta gdzie możemy pobrać plik instalacyjny Java JDK w wersji zgodnej z naszym systemem operacyjnym (x86 – 32 bitowa lub x64 – 64 bitowa).

Java JDK-2

Po przejściu procesu instalacji jesteśmy gotowi do instalacji paczki narzędzi od Google’a. Po przejściu na stronę developer.android.com wybieramy „stand-alone SDK Tools”, co powinno skutkować przeniesieniem na stronę z plikami – w formie instalatora lub też paczki .zip. Niezależnie którą wersję wybierzemy proponuję umieścić folder na głównej partycji C:\.

android-sdk-2

Po udanym procesie instalacji udajemy się do głównego folderu android-sdk i uruchamiamy plik o nazwie SDK Manager.exe. W razie, gdyby po podwójnym kliknięciu program nie chciał się uruchomić (nawet w trybie administratora), należy przejść do folderu \android-sdk\tools i uruchomić skrypt android.bat. Finalnie naszym oczom powinien ukazać się taki oto program:

android-sdk-3

Z listy wybieramy Android SDK Platform-tools oraz instalujemy „paczkę” klikając w prawym dolnym rogu.

2. Włączenie trybu Debugowania

Do podłączenia wymagane jest włączenie trybu debugowania. Opcja ta znajduje się w ustawieniach urządzenia, w sekcji „Opcje deweloperskie” (Developer options), które domyślnie są ukryte. Jednak w bardzo łatwy sposób można je odblokować wykonując poniższe kroki:

1. Przejdź do ustawień telefonu i znajdź pozycję „Informacje o telefonie”,
2. Tapnij 7 razy na ‘Numer kompilacji’ dopóki nie otrzymasz powiadomienia, że jesteś deweloperem,
3. Wróć do ustawień, pojawi się pozycja „Opcje programistyczne” ,
4. W „Opcje programistyczne” zaznacz pozycję „Debugowanie USB”

debugging usb

3. Uruchomienie ADB

Aby uruchomić ADB musimy odnaleźć ścieżkę, gdzie znajduje się plik adb.exe. Jeśli wybrałeś domyślną instalację, to najprawdopodobniej jest on pod adresem:

C:\Users\<nazwa użytkownika>\AppData\Local\Android\android-sdk\platform-tools 

Zawsze można sprawdzić lokalizację folderu android-sdk w Android SDK Manager:

android-sdk-path

Udajemy się pod wskazany adres i przytrzymując klawisz [Shift] wybieramy z menu kontekstowego „Otwórz okno polecenia tutaj”:

android-adb-1

Aby sprawdzić poprawność połączenia USB w okienku konsoli wpisujemy:

ADB devices

Jeśli wszystko działa jak powinno, na ekranie zobaczymy komunikat z listą podłączonych urządzeń (w formie liter i cyfr, nie jako nazwę producenta i model):

android-adb-3

W tym momencie należy zwrócić uwagę na stan. Otóż po „kodzie urządzenia” otrzymamy zawsze ciąg znaków (stan). Jeśli widnieje tam „device„, oznacza to, że urządzenie jest w pełni funkcjonalne i możemy przystąpić do dalszych czynności. W razie stanu „unauthorized” nasz smartfon lub tablet wymaga autoryzacji (należy go odblokować i zaakceptować połączenie, bądź użyć dwóch dodatkowych komend służących do restartowania serwera adb wpisując kolejno „adb killserver” oraz „adb start-server” i ponownie sprawdzić stan, który powinien być tym razem „device„).

Najgorszym przypadkiem jest uzyskanie „offline” bądź „no device„. Pierwszy oznacza problemy z urządzeniem (sterownikiem, kablem USB, ogólnie z łącznością), drugi natomiast sugeruje, że urządzenie nie jest podłączone. W obu tych przypadkach po sprawdzeniu czy faktycznie dobrze podłączyliśmy urządzenie najprawdopodobniej problemem jest sterownik, o instalacji którego traktuje następny „rozdział”.

4. Sterowniki USB dla ADB

Jeśli lista urządzeń okazała się pusta, oznaczać to może, że nasze urządzenie potrzebuje dodatkowych sterowników. Na szczęście Google dostarcza własne sterowniki, które można pobrać bezpośrednio ze strony producenta, lub za pomocą Android SDK Manager (obrazek niżej).

android-usb-driver0

Aby zainstalować brakujące sterowniki należy udać się do „Menedżera urządzeń” (klikając prawym klawiszem myszy na ikonkę „Mój komputer”, bądź w nowszych systemach na znaczek „Windows” i  z menu kontekstowego wybrać odpowiednią pozycję) oraz odnaleźć nasze urządzenie. W zależności od modelu smartfona lub tableta oraz systemu operacyjnego może to różnie wyglądać. W naszym przypadku brakuje sterownika ADB, choć może się zdarzyć, że system nie pokaże nam tego i będziemy musieli odnaleźć nasze urządzenie na liście. Jednak w obu przypadkach procedura instalacji sterownika wygląda tak samo.

1. Z menu kontekstowego wybieramy opcję „Aktualizuj sterownik”

ADB driver1

2. Chcemy ręcznie wskazać miejsce plików, więc wybieramy drugą opcję…

ADB driver2

… a następnie:

ADB driver4

3.  Wskazujemy nasze urządzenie oraz klikamy na „Z dysku”, gdzie wybieramy folder z pobranymi wcześniej plikami, wskazując na „android_winusb.inf”. Jeśli zdecydowałeś się na użycie do tego celu Android SDK Manager, paczka znajduje się w „\android-sdk\extras\google\usb_driver„.

ADB driver5

ADB driver3

4. W ostatnim kroku wybieramy z listy odpowiedni wpis i kończymy cały proces.

ADB driver6

 5. Przykładowe komendy ADB

Po przebrnięciu poprzednich punktów możemy wreszcie przejść do części praktycznej. Pokażę tutaj jedynie kilka przykładów i wyjaśnię co robią najpopularniejsze komendy.

Instalacja aplikacji

Czasami mamy ochotę zainstalować aplikacje w formie plików .apk z zewnętrznych źródeł. Możemy to zrobić tradycyjnie, przekopiowując plik do pamięci telefonu, odblokowanie funkcji zezwalającej na instalację aplikacji z zewnętrznych źródeł oraz w dowolnym (no prawie) eksploratorze plików zainstalować aplikację.

Jednak z poziomu ADB cała ta operacja sprowadza się do jednego wiersza:

adb install <ścieżka_do_pliku>

lub jeśli plik znajduje się w folderze /android-sdk/platform-tools 

adb install <nazwa_pliku>

adb-install-apk

Kopiowanie plików

ADB umożliwia również kopiowanie plików lub też całych folderów w dowolne miejsce w telefonie lub komputerze. Jest to przydatna funkcja, ponieważ po podłączeniu telefonu pod komputer nie widzimy całej zawartości pamięci urządzenia. Przykładowo pokażę jak można przekopiować plik build.prop, który znajduje się w lokalizacji /system/.

W tym celu musimy skorzystać z komendy pull w następujący sposób:

adb pull <lokalizacja_w_telefonie> <lokalizacja_w_komputerze>

adb-pull-build-prop

Niestety lokalizacja ta jest tylko do odczytu, więc bez posiadania uprawnień root nie możemy zmienić uprawnień, a tym samym przywrócić poprawionego pliku na swoje miejsce.

W zamian pokażę jak możemy przekopiować folder z muzyką do pamięci telefonu. Użyjemy komendy push w następujący sposób:

adb push <lokalizacja_w_komputerze> <lokalizacja_w_telefonie>

adb-push-folder

Restart oraz przejście do recovery oraz bootloadera

Z poziomu ADB możemy w dowolnym momencie zrestartować urządzenie, przejść do trybu recovery. Jest to o tyle przydatna funkcja, że możemy skorzystać z tego w każdym momencie, co oznacza, że jeżeli nasz telefon zawiesił się, utknął w tzw. bootloopie czy na logu producenta. Aby skorzystać z tych funkcji używamy jednej z trzech komend:

adb reboot

adb reboot recovery

adb reboot bootloader

adb-reboot

Uruchomienie trybu powłoki (shell)

W trybie ADB możliwe jest zarządzenie urządzeniem oraz systemem Android z poziomu powłoki systemowej (ang. shell). Dzięki shellowi możemy wykonywać wiele zaawansowanych operacji, jednak w tym miejscu jest to raczej w wersji informacyjnej, niż w dydaktycznej. Aby przejść w tryb shell musimy wpisać:

adb shell

lub w wersji:

adb shell <komendy_do_wykonania>

adb-shell

Aby wyjść z shella używamy komendy exit lub kombinacji klawiszy [Ctrl]+[C].

Jeśli jesteś ciekaw co więcej można zrobić przy użyciu ADB oraz powłoki Shell, odsyłam na stronę Google.

Jest to pierwszy (mam nadzieję, że nie ostatni) poradnik z cyklu więc chętnie dowiemy się waszych opinii na ten temat. Mamy nadzieję, że powyższy wpis przyda się początkującym „majsterkowiczom”. Jeśli macie pomysły, sugestie czy uwagi zachęcam do kontaktu mailowego pod adresem kamil.piotrowski[at]android.com.pl



  • Wolny Strzelec

    To najbardziej przejrzysty, jasny i logiczny artykuł o tych skomplikowanych dla laika sprawach, jaki kiedykolwiek przeczytałem.
    Mam kłopot z moim androidem, chcę zrobić upgrade, bo nie nadchodzi od 2 lat obiecana aktualizacja. No i postanowiłem po tej lekturze zostać deweloperem! Dzięki

  • Zbyszek Iwanicki

    Witam, czy da sie w ten sposob zainstalowac cokolwiek w telewizorze Philips 55PUK7100 ? Po ostatniej aktualizacji prawdopodobnie Philips zablkowal mozliwosc instalowania plikow APK z nieznanych zrodel. NIe mozna wgrac starszego softu a na tym aktualnym czyli Android 5.1.1 opcja INSTALUJ jest nieaktywna. Dokladnie chodzi mi o aplikacje DeltaMediaPlayer ktorej nie ma w Google Play. Czy ktos wie co z tym zrobic?

  • Kamil Wojnar

    Witam! Proszę o pomoc. Korzystałem z tego poradnika i natknąłem na problem z instalacją sterowników. Posiadam windowa 10, wszedłem w menadżer urządzeń i na tym etapie powiązania się skończyly. Nie mogę znaleźć pozycji „inne urządzenia”, a próba instalacji nowego od 0 się nie powiodła. Jakieś pomysły? Jest sens się w to jeszcze bawić? Bo wszystkie posty maja minimum 2 lata (na innych stronach też), a ja po prostu chce automatycznie instalować aplikacje ze sklepu na kartę SD 🙁

  • Piotr

    a ja mam pytanie co zrobić jeśli nie mam włączonej opcji debugowania usb bo zapomniałem wzoru do odblokowania telefonu ? Szukam sposobu na złamanie jej i niestety nic nie wychodzi

  • kamil

    Mam htc one m7.Nie mogę włączyć telefonu, zawiesza się na logo. Cały czas pisze mi unauthorized. w jaki sposób mogę się polączyć z telefonem.

  • Kshys13k

    W końcu coś ciekawego i sensownego 🙂 BRAWO!!

  • darkanzali

    sudo apt-get install android-tools-adb, łatwo przyjemnie i szybko, windows ssie polecam ~Informatyk

    • Łukasz

      Dokładnie. Jeszcze do tego się przyda sudo apt-get install android-tools-fastboot
      I nic więcej do szczęścia nie potrzeba 🙂

  • stark2991

    Co to za ikonka od lewej w tym HTC?
    Dobry tekst.

    • Lux Lite? 🙂

      • stark2991

        Dzięki 🙂

  • szymon

    Co do tego sdk to się nie zgodze. Sciąga się adb/fastboot z xda. Zajmuje z 2-3 mb. Wchodzimy w cmd oraz w folder gdzie mamy tego adb i normalnie wszystko smiga. 😉

    • subs

      witam,
      czy uzywajac ww, bylaby opcja ingerencji w (zablokowany) galaxy note 4 tak, by po restarcie urzadzenia mozna byloby odblokowac przy uzyciu odciska palca?
      tel zablokowal mi sie podczas dluzszego spaceru z lapa w kieszeni…
      teraz chce tylko kod zapasowy, ktorego nie pamietam

  • Adam Bartniak

    WIĘCEJ TAKICH PORADNIKÓW !!! Po takim serwisie właśnie takich porad oczekuję, co prawda już wcześniej ogarnąłem ADB ale chętnie zobaczę takie poradniki na Waszym portalu.

    • Jeśli macie jakieś pomysły to śmiało piszcie na mojego maila 🙂 Następne poradniki planuję trochę bardziej ogólne 😉

      • Wojak

        Może coś o Xposed? 😛 Ostatnio się bardzo popularny zrobił.

        • Myślałem o czym mniej zaawansowanym, a równie pożytecznym 🙂

          • Lukas

            Spoko ale jakby były też inne zaawansowane rzeczy to było by bardzo fajnie 🙂 Ogólnie dzięki za poradnik akurat teraz mi się przydał i mam wszystko w jednym miejscu. Dobra robota 😛

  • Grzesiek260500

    Naprawdę piszemy razem. 😀

  • Cymoniasty

    Poradnik czytelny i zrozumiały dla mnie 10/10 🙂
    Czekam na więcej 😀

  • AndropaX

    A po co ściągać cały pakiet sdk i javę jak potrzebne są nam tak naprawdę 4 pliki ?

    • Z założenia ten poradnik ma być na dłuższy okres czasu, a stosowne aktualizacje zapewnia SDK. Poza tym, moim zdaniem prościej jest przez SDK 🙂



x