Android Debug Bridge

Android Debug Bridge è uno è strumento compreso all'interno del software SDK(Software Develompent Kit)[1], funziona in riga-comando, serve per poter mettere in comunicazione un dispositivo Android ed un computer.
Android Debug Bridge(ADB)
Viene utilizzato per eseguire comandi sul telefono con i quali è possibile modificare, per i sviluppatori, le proprie applicazioni in sviluppo o le ROM, mentre per gli utenti permette di personalizzare determinati aspetti del dispositivo, eseguire debug di applicazioni, accedere a funzionalità nascoste e recuperare dati dal dispositivo quando è in modalità recupero[2].
Per permettere la comunicazione fra computer e il device si necessita di un cavo USB o una connessione wireless.
Per motivi di sicurezza nella fase preliminare bisogna attivare le funzionalità aggiuntive di Android ovvero le "Opzioni sviluppatore" bisognerà abilitare la voce "Debug USB", il quale consente di accedere direttamente al file system di un dispositivo Android da un computer desktop.
Senza il debug abilitato, è possibile interagire solo con l'archivio multimediale del telefono, come la scheda SD o una directory multimediale appositamente formattata.
Come funziona Android Debug Bridge
ADB è un programma client-server composto da tre elementi[3]
- Client: Il computer, attraverso un prompt di comandi come il CMD proprietario di Windows e dopo l'installazione dei driver ADB può inviare i comandi.
- Daemon(ADBD): È un processo che permette l'esecuzione dei comandi, è installato sia sul computer che sul device Android, viene eseguito in background e consente al device di accettare ed eseguire i comandi precedentemente inoltrati dal client.
- Server: Gestisce la comunicazione fra il client e il Daemon. Si attiva dopo aver eseguito il comando sul prompt del client e permette la comunicazione e
l'esecuzione di tutto il processo.
Se questi tre servizi non sono attivi non potrà avvenire questo processo.
Esempio:
- Avviare il computer
- Connettere il computer al device attraverso un cavo USB o connessione wireless
- eseguire Il Daemon altrimenti comparirà questa schermata
- Se tutto sarà eseguito correttamente il programma sarà pronto all'utilizzo.
Installazione
Esistono tre metodi principali per l'installazione:
- Il metodo più semplice è di installare un tool completo dal forum di XDA, è già compreso di un prompt di comando e dei driver ADB per poter eseguire i vari comandi.
- Scaricare il tool per windows SDK(software development kit) dal sito ufficiale di Google. Questo tool è completo di un compilatore per tradurre il codice sorgente. Può essere utile per chi vuole analizzare o eliminare bug.
- Google dal 2017 permette di scaricare separatamente i driver di ADB[4] a differenza di tempo fa quando bisognava obbligatoriamente scaricare tutto il pacchetto SDK completo, si trova tutto sul sito ufficiale SDK.
Connessione wireless
L'evoluzione tecnologica ha permesso di utilizzare non solo il cavo USB per la connessione ADB ma anche una connessione wireless grazie al protocollo TCP/IP, esistono due metodi principali, Differenziati dal ROOT del dispositivo android, ovvero;
1. Se il dispositivo non ha i permessi di ROOT:
- Necessita di essere connessi alla stessa rete, sia il computer che il dispositivo Android.
- Collegare dispositivo Android tramite cavo USB(la prima volta).
- Mentre il dispositivo è connesso ad ADB via USB, eseguire il seguente comando per ascoltare una connessione TCP / IP su una porta (predefinito 5555):
- Digitare 'adb tcp-ip <port>'(passare alla modalità TCP / IP).
- Scollegare il cavo USB dal dispositivo di destinazione.
- Digitare: 'adb connect <ip address>:<port>' (predefinita 5555).
- Connessione effettuata.
2. Se il dispositivo ha i permessi di root :
I dispositivi che sono rootati possono utilizzare un'applicazione dal Google Play per abilitarla in modo semplice.
Problemi comuni
Alcuni problemi che si riscontrano più frequentemente:
- Le connessioni ADB non riuscite: Per problemi fisici ad esempio la porta USB del computer danneggiata o il connettore USB del dispositivo android danneggiato.
- USB Android difettosi Driver[5]:Driver non aggiornati oppure driver difettosi, ci sono varie guide dove poter scaricare dei driver adeguati, di solito si scaricano i driver Universali, si possono anche ricercare driver rilasciati dal produttore del device.
- Comando non trovato: Errore frequente può capitare per distrazione oppure non si ha l'ultima versione del software, con il comando "ADB help" nel prompt dei comandi comparirà la lista completa dei comandi.
- Server is out of date: le versioni presenti di ADB sul computer non è compatibile con la versione del device.
Come si utilizza
Un esempio di come funziona teoricamente, saltando i codici.
Come installare una Rom Sul mio device poiché troppo datato e lento.
- Installare ADB dal sito ufficiale di SDK.
- Installare Il pacchetto .zip della Rom(firmware si intende il sistema operativo).
- Avviare ADB o Prompt dei comandi.
- Mettere in comunicazione lo smartphone e il computer(Connessione via cavo USB oppure Connessione wireless).
- Con un codice specifico inoltriamo il pacchetto zip precedentemente scaricato sul computer allo smartphone .
- Lo smartphone in ascolto riceve il pacchetto e lo installa in automatico.
- Al termine del processo si può scollegare lo smartphone dal computer.
Codice
Alcuni esempi di codice[6] utilizzabile con ADB attraverso un prompt o la Shell:
- adb reboot → Per riavviare normalmente il dispositivo.
- adb devices → Mostra i dispositivi android connessi con il PC.
- adb install → Per installare un'applicazione .apk. Va inserito alla fine del comando il nome dell'applicazione
- adb pull → Per copiare un file dal dispositivo al pc.
- adb push → Per copiare un file dal pc al dispositivo.
- adb get-serialno → Mostra il numero di serie del dispositivo.
- adb logcat > Per visualizzare il file di registro.
- adb get-state → Visualizza lo stato del dispositivo.
- adb start-server → Avvia il processo del server ADB.
- adb kill-server → Arresta il server ADB.
- adb shell → Impartisce comandi Linux al dispositivo Android. Quando appare il prompt $, vuol dire che tutto quello che andremo a fare e i comandi che digiteremo verranno eseguiti all'interno del dispositivo.
- adb reboot bootloader → Riavvia il dispositivo in modalità fastboot o modalità bootloader.
- adb reboot recovery → Riavvia il dispositivo in in recovery mode.
Android Debug Bridge su Ios
Sono presenti due soluzioni differenti per utilizzare Ios[7] per il debug bridge.
- Per Ios e Mac purtroppo non esiste un vero e proprio fratello di ADB, ma la situazione è più complicata [8]:
Non esiste una funzione integrata, ma bisogna eseguire il jailbreak, si possono trasferire applicazioni (ad esempio, il Mac viene fornito con Xcode), si può utilizzare un'applicazione per eseguire le impostazioni dal terminale proprietario, la quale però non è disponibile nell'App Store.
Una volta in esecuzione sul dispositivo, è possibile connettersi al dispositivo tramite USB e utilizzare alcuni comandi.
Si stabilirà una connessione USB per inoltrare i pacchetti TCP dal server SSH al dispositivo.
Per funzionare si utilizza un programma, il quale inoltra TCP tramite il bus USB per consentire lo scambio dei dati.
Molto meno complicata è la seconda soluzione :
- Utilizzare uno strumento per Ios, il quale sfrutta Xcode , un IDE per IOS SDK, utilizzato per sviluppare le applicazioni IOS su computer Mac.
La parte fondamentale è XCRUN, quest'ultimo è un file binario disponibile nello strumento Xcode in cui è possibile controllare il dispositivo.
Qualche esempio di comando per IOS a differenza di Android:
- $xcrun simctl list → Lista dei dispositivi connessi.
- $xcrun simctl list device types → Lista dei tipi di dispositivi.
- $xcrun simctl io<space><device id><space>screenshot<space><filename.png> → Eseguire uno screenshot dello schermo del device.
- $ xcrun simctl install<space><device id><space><path of the .app build file> → Installare un .IPA file.
Altre funzionalità di ADB
Sono presenti vari tutorial su internet per migliorare le prestazioni dello smartphone o per personalizzarlo.
Tutto questo grazie ad Android Debug Bridge.
Qualche esempio:
- Come attivare wi-fi automaticamente quando si entra in casa
- Come sincronizzare modalità "Non disturbare" tra android Wear e lo Smartphone
- Come Bloccare le notifiche di Avviso durante il gioco o la visione di un video
- Come eseguire il downgrade di un'app su Android
- Come ottenere i permessi Root
Collegamenti esterni
note
- ^ SDK: https://developer.android.com/studio
- ^ modalità recupero: https://www.notizietecnologia.it/come-avviare-e-utilizzare-la-recovery-mode-su-android/#:~:text=A%20condizione%20che%20il%20toolkit,l'%20opzione%20di%20debug%20USB.
- ^ Composizione di ADB dal sito ufficiale:https://developer.android.com/studio/command-line/adb
- ^ Scaricare ADB separatamente : https://www.androidpolice.com/2017/01/05/google-makes-adb-fastboot-platform-tools-available-without-full-sdk-android-studio-download/
- ^ Driver ADB: https://www.nextpit.it/adb-driver-android-cosa-sono-come-installarli
- ^ codice preso da: https://helpmanual.io/help/adb/
- ^ ADB Su IOS: https://forum.xda-developers.com/t/adb-for-ios.3258943/
- ^ Guida completa su xcode: https://stackoverflow.com/questions/23430181/adb-equivalent-for-ios-device