Podul de depanare Android | |
---|---|
Tip de | utilitar de linie de comandă [d] |
Scris in | C++ |
Sistem de operare | Microsoft Windows , Linux și macOS |
Licență | Licență Apache 2.0 |
Site-ul web | developer.android.com/st… |
Fișiere media la Wikimedia Commons |
Android Debug Bridge (prescurtat în mod obișnuit ca adb ) este un instrument de programare folosit pentru a depana dispozitivele Android . Daemon pe un dispozitiv Android se conectează la un server de pe mașina gazdă prin USB sau TCP , care se conectează la clientul utilizat de utilizatorul final prin TCP. Disponibil ca software open source sub licența Google Apache din 2007, caracteristicile includ un wrapper și capacitatea de a face copii de rezervă. software adb compatibil cu Windows , Linuxși macOS . A fost folosit greșit de rețele botnet și alte programe malware pentru care au fost dezvoltate protecții precum autentificarea RSA și lista albă a dispozitivelor.
Capacitățile adb includ copierea fișierelor de pe computerul gazdă, instalarea aplicațiilor, vizualizarea ieșirii logcat, obținerea unui shell Unix și repornirea în modul Qualcomm EDL [1] [2] [3] . De exemplu, aplicațiile Android pot fi salvate folosind comanda de rezervă în fișier [4] . De asemenea, include suport pentru Java Debug Wire Protocol [5] .
Sunt disponibile mai multe interfețe grafice. Monitorul grafic al dispozitivului Android din Android Studio poate fi folosit pentru a obține informații de la un dispozitiv Android [6] .
Android Software Development Kit (SDK) a fost lansat pentru prima dată în 2007. Începând cu 2017, Google vă permite să descărcați adb separat de Android SDK [7] .
În 2015, Microsoft a lansat un emulator Android care se poate conecta la clientul adb. În 2016, pentru Android Studio 2.0 , performanța instalării aplicațiilor și a descărcarii fișierelor prin adb a fost crescută de 5 ori. Pentru a simplifica utilizarea Android Things, a fost creat un wrapper pentru comenzi adb manuale în 2017. Pentru Android 11 în 2020, Google a adăugat instalarea incrementală adb. În 2020, adb Wi-Fi a fost integrat în Android Studio pentru macOS [8] . În 2021, pentru Android 12 , comanda de backup adb a fost limitată, astfel încât datele utilizatorilor din aplicații au fost salvate folosind o configurație manifest per aplicație [9] .
Protocolul adb poate fi transferat prin USB sau prin WiFi prin TCP. Utilizează o arhitectură client-server. Sunt utilizate două protocoale diferite. Primul este între client și server, iar al doilea este între server și demon. Daemonul adb este implementat în C și rezidă în spațiul utilizatorului Android. Daemonul este acceptat de framework-ul Android USB , UsbDeviceManager și UsbDebuggingManager [5] .
Modul de comunicare între client și server este socket TCP . Serverul ascultă pe portul pe care clientul ar trebui să trimită cererea. Solicitarea conține un câmp inițial ASCII de 4 octeți și o sarcină utilă. Sarcina utilă începe cu cuvântul gazdă pentru a indica faptul că ar trebui trimisă la server. Serverul poate răspunde apoi cu OK sau FAIL pentru a indica starea în combinație cu încărcătura și lungimea suplimentară.
Mesajele trimise de pe server constau dintr-un antet de 24 de octeți cu următoarele câmpuri:
Înainte de Android 2.2 , Android era vulnerabil la exploitul RageAgainstTheCage. Daemonul adb nu a verificat valoarea returnată a apelului de sistem setuid când a renunțat la privilegii. Exploatarea furcă procesele până când eșuează din cauza epuizării ID-urilor de proces. Când un demon se blochează și repornește, nu poate începe un nou proces cu privilegii pierdute și continuă să ruleze ca root. adb a furnizat apoi un shell rădăcină [10] .
În 2017, a fost descoperită o vulnerabilitate de securitate care a folosit ADB pentru a deturna modemul încorporat. Atacul a necesitat ca adb să fie deja activat și autorizat, deși erau disponibile unele soluții [11] . Diverse familii de malware, cum ar fi ADB. Miner, Ares, IPStorm, Fbot și Trinity au scanat internetul pentru interfața publică adb și au instalat malware pe acele dispozitive. adb poate fi folosit și pentru a elimina programele malware pornind în modul sigur și rulând comanda adb [12] uninstall .