Remote ADB Shell este o aplicație de terminal care vă permite să vă conectați la serviciul shell ADB al altor dispozitive Android prin rețea și să executați comenzile terminalului. Acest lucru poate fi util pentru depanarea de la distanță a dispozitivelor Android (rulând instrumente precum top, logcat sau dumpsys). Acceptă mai multe conexiuni simultane la diferite dispozitive și menține aceste conexiuni vii chiar și atunci când aplicația este în fundal. Această aplicație nu necesită root pe niciun dispozitiv, dar root poate fi util pentru a configura dispozitivele țintă. Dacă dispozitivele țintă nu sunt rootate, trebuie să utilizați un computer cu Android SDK și drivere Google USB pentru a le configura (detaliat mai jos).
Această aplicație este un înveliș în jurul carcasei care este expusă peste ADB. Menține un istoric de 15 comenzi care este accesibil prin apăsarea lungă a casetei de comandă. Apăsarea lungă a afișajului terminalului va oferi opțiunea de a trimite un Ctrl+C, de a comuta derularea automată sau de a ieși din sesiunea terminalului.
Acest lucru funcționează exact în același mod în care comanda „adb shell” funcționează pe un computer. Deoarece această aplicație folosește o implementare nativă a protocolului ADB în Java, nu necesită root pe niciun dispozitiv sau pe orice aplicație terță de pe dispozitivul țintă. Dispozitivele vorbesc pur și simplu același protocol unul cu celălalt pe care l-ar folosi unui computer care rulează clientul ADB de la Android SDK.
IMPORTANT: Dispozitivele care rulează Android 4.2.2 și versiuni ulterioare folosesc chei RSA pentru a autentifica conexiunea ADB. În testarea mea, dispozitivele care rulează 4.2.2 vor trebui conectate la un computer prima dată când vă conectați la ele (de pe fiecare dispozitiv cu această aplicație instalată). Acest lucru le permite să afișeze dialogul de acceptare a cheii publice, pe care trebuie să îl acceptați (și să bifați „Permiteți întotdeauna de pe acest computer”). Dispozitivele care rulează Android 4.3 și 4.4 par să nu aibă nicio problemă la afișarea dialogului fără o conexiune la un computer, așa că se pare că aceasta este o soluție specifică Android 4.2.2.
Pentru a configura o țintă stoc nerădăcinată, conectați dispozitivul țintă la un computer care are instalat Android SDK și rulați „adb tcpip 5555” din folderul platform-tools al SDK-ului Android. Aceasta va începe să asculte ADB pe portul 5555 de pe dispozitivul țintă. Dispozitivul poate fi apoi deconectat și va rămâne configurat corect până la repornire.
Pentru dispozitivele care sunt rootate (deși nu este necesar), puteți instala una dintre cele mai multe aplicații „ADB WiFi” pentru a permite serverului ADB să asculte prin rețea. Dispozitivele cu un ROM personalizat pot avea o opțiune de a activa ADB în rețea în panoul Opțiuni pentru dezvoltatori din Setări. Utilizarea oricăreia dintre aceste metode va configura corect ADB pentru accesul la rețea cu această aplicație. Pasul suplimentar pentru 4.2.2 este încă necesar pentru conexiunea inițială.
Pentru a vă conecta la dispozitivul Android la distanță, introduceți adresa IP a dispozitivului și numărul portului (5555 din exemplul de mai sus) în Remote ADB Shell. Atingeți Conectare și va încerca să se conecteze la dispozitiv și să pornească terminalul.
Dezvoltatori: biblioteca personalizată Java ADB pe care am scris-o pentru această aplicație este open-source sub licența BSD la https://github.com/cgutman/AdbLib
Sursa pentru această aplicație este disponibilă sub licența Apache: https://github.com/cgutman/RemoteAdbShell