Vai al contenuto

Android Debug Bridge

Da Wikipedia, l'enciclopedia libera.
Sistema Android connesso attraverso un cavo USB ad un computer

Android Debug Bridge (ADB) è uno strumento compreso all'interno del software SDK(Software Develompent Kit)[1], serve per mettere in comunicazione un dispositivo Android ed un computer.

Caratteristiche

Viene utilizzato per eseguire comandi in riga-comando, con questi comandi gli sviluppatori possono modificare le proprie applicazioni in sviluppo o le ROM, mentre gli utenti possono 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 dispositivo sono necessari un cavo USB o una connessione wireless.

Per motivi di sicurezza nella fase preliminare abilitando le funzionalità aggiuntive di Android ovvero le "Opzioni sviluppatore"[3] bisognerà abilitare la voce "Debug USB"[4], che 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 dispositivo, per esempio la scheda SD o una directory multimediale appositamente formattata.

Componenti

ADB è un programma client-server composto da tre elementi[5]

  • Daemon (ADBD): Processo che permette l'esecuzione dei comandi, installato sia sul computer che sul dispositivo Android, viene eseguito in background e consente al dispositivo di accettare ed eseguire i comandi inviati dal client.
  • Server: Servizio che 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 componenti non sono attivi non potrà avvenire questo processo.

PowerShell

Installazione

Esistono tre metodi principali per l'installazione:

  • Il metodo più semplice è installare un tool completo dal forum di XDA, Il Tool include un prompt di comando e driver ADB per eseguire i comandi.
  • Scaricare il tool per Windows SDK(software development kit) dal sito ufficiale di Google. Questo tool è dotato di un compilatore per tradurre il codice sorgente. Il Tool è utile per chi vuole analizzare o eliminare bug.
  • Google dal 2017 permette di scaricare separatamente i driver di ADB[6] 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;

  • 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 comando per ascoltare, una connessione TCP / IP su una porta. Scollegare il cavo USB dal dispositivo di destinazione. Connessione effettuata.

  • 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 nell'uso di Android debug bridge:

  • 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[7]: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 dispositivo.
  • Comando non trovato: Errore frequente può capitare per distrazione oppure non si ha l'ultima versione del software, con il comando "ADB help"[8] 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 dispositivo.

Come si utilizza

Un esempio di come funziona teoricamente, saltando i codici.

Come installare una ROM Sul mio dispositivo poiché troppo datato e lento.

  1. Installare ADB dal sito ufficiale di SDK[9].
  2. Installare Il pacchetto .zip della Rom(firmware si intende il sistema operativo).
  3. Avviare ADB o Prompt dei comandi.
  4. Mettere in comunicazione lo smartphone e il computer(Connessione via cavo USB oppure Connessione wireless).
  5. Con un codice specifico inoltriamo il pacchetto zip precedentemente scaricato sul computer allo smartphone.
  6. Lo smartphone in ascolto riceve il pacchetto e lo installa in automatico.
  7. Al termine del processo si può scollegare lo smartphone dal computer.

Codice

Alcuni esempi di comandi[10] 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 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.

Equivalenti su Ios

Sono presenti due soluzioni differenti per utilizzare Ios[11] per il debug bridge.

  • Per Ios e Mac purtroppo non esiste un vero e proprio fratello di ADB, ma la situazione è più complicata[12]:

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.

  • 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[13], 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.

Collegamenti esterni

Note