Alla fine, mi sono dovuto convertire pure io ad uno smartphone. I miei vecchi Nokia con suoneria polifonica funzionano ancora benissimo, ma questi benedetti telefonini hanno effettivamente una marcia in più. La mia scelta è caduta, ovviamente, su un device che supportasse Android come sistema operativo, proprio perché mi piace molto smanettare 🙂
Dopo essermi fatto una bella ripassata di Java, ed aver creato le mie prime app, è arrivato ora il momento di fare le cose serie: impadronirsi completamente del dispositivo! Ma come posso impadronirmi del mio telefono, se non ne conosco il sistema che lo fa funzionare? Arriva in nostro aiuto ADB, acronimo di Android Debug Bridge, un utile insieme di tool e driver che ci permettono di prendere familiarità con il nostro device.
In questo articolo, vedremo di capire cos’è questo ADB, a cosa ci serve, come funziona e come installarlo su Debian.
ADB a livello teorico:
Su ogni dispositivo Android è presente la modalità di Debug. Questa ci permette di comandare il nostro dispositivo, collegato via USB, direttamente dal nostro computer, tramite una riga di comando. Si tratta di una grande possibilità per chiunque voglia capire il funzionamento del proprio SO, oltre che per fare innumerevoli prove e test.
ADB è un tool presente nell’SDK di Android. Questo non fa altro che “compiere la magia” di far riconoscere al proprio PC il device Android collegato via USB. Senza questo particolare tool, il dispositivo verrebbe riconosciuto come una semplice memoria esterna. Ma non è solo questa l’opzione che ci offre ADB. Grazie ad esso, abbiamo a disposizione una serie di comandi (da lanciare dal nostro terminale o dal prompt) per interagire con il nostro dispositivo.
Sicuramente, la caratteristica più importante è la possibilità di accedere al nostro dispositivo come root, e quindi di potercene impadronire, come dicevo poco sopra 🙂
A livello teorico, è un software client-server, composto da un client che è il nostro dispositivo con Android, un server che è il nostro PC con un sistema operativo Win/Lin, ed un demone che si esegue in background sul dispositivo. I client comunicano tutti tramite la porta TCP 5037, e quando avviamo il tool sul nostro PC (server), questo si metterà all’ascolto su quella porta, in attesa di trovare ed identificare dei device.
ADB a livello pratico:
Una volta scaricato l’insieme di tool, questi ci permettono di collegare il nostro device in modalità Debug e di poterci collegare ad esso come root tramite riga di comando.
Cosa ci serve?
In realtà, molto poco. Essenziale, per prima cosa, è la presenza di Java sulla nostra macchina. Non importa che sia Sun o JDK, bisogna avere installato Java. Senza, non si può andare avanti.
In secondo luogo, avremo bisogno dell’SDK Android. In realtà, non è necessario scaricare tutto l’ambiente di sviluppo (ossia l’ADT Bundle, comprendente anche del software Eclipse), ma basta scaricare solo gli SDK Tools. La scelta sta a voi, in ogni caso potete scaricare tutto gratuitamente dalla pagina “Get the Android SDK“.
Nient’altro. Ovviamente, un dispositivo con Android installato, ed il relativo cavo USB per collegarlo al PC!
Abilitare la modalità Debug sul proprio dispositivo:
Anche questo è molto semplice da fare. Ci basta muoverci in Applicazioni -> Impostazioni -> Applicazioni -> Sviluppo, e da li spuntare l’opzione Debug USB. Ci verrà chiesta la conferma della scelta, e noi diremo di si. A questo punto possiamo collegare il dispositivo al PC via USB.
Installazione dei pacchetti necessari:
Scaricato il pacchetto, non dobbiamo far altro che estrarlo, ottenendo così una cartella con il nome dell’archivio. Io, ad esempio, utilizzo una versione di Debian a 64 bit, ed ho scaricato l’ADT Bundle (nome completo: adt-bundle-linux-x86_64-20130219). Fatte queste premesse, avviamo il terminale e spostiamoci nella cartella appena estratta, che nel mio caso è:
cd Scaricati/adt-bundle-linux-x86_64-20130219
Se avete scaricato anche voi l’ADT Bundle, come detto sopra, non avrete a disposizione solo i tool. Quindi, dovete spostarvi nella cartella:
cd sdk/tools
Una volta dentro, bisogna dare questo comando:
./android update sdk
Si avvierà una finestra (è tutto in Java, abbiate pazienza) dalla quale potremo selezionare che versione dell’SDK (dell’ambiente di sviluppo) scaricare ed installare. La versione da installare dovrebbe essere verosimilmente la stessa che avete installato sul vostro device. Ad es., se sul mio telefonino c’è Android 2.3, io posso installare la stessa versione dell’SDK, o una versione superiore. Per avere una piena compatibilità, si può decidere anche di installare sempre la versione più recente disponibile.
Adesso, abbiate pazienza. Ci vorrà un po’ di tempo per scaricare ed installare tutto.
Primo test di connessione:
Una volta finito il download e l’installazione dei pacchetti necessari, possiamo già provare a vedere se il nostro dispositivo viene riconosciuto dal tool. Per eseguire qualunque comando che ADB ci mette a disposizione, dobbiamo farlo dalla cartella platform-tools, quindi se non avete chiuso il terminale ci basta fare:
cd .. cd platform-tools
Da qui, possiamo avviare il comando:
./adb devices
A questo punto, molto probabilmente il dispositivo ci risponderà in ogni caso, ma dobbiamo aspettarci due possibili opzioni. Se siamo stati fortunati, otterremo subito sotto al nostro comando la scritta “List of devices attached“, e ancora sotto il numero del nostro dispositivo. In questo caso, non c’è altro da fare!
Nella maggiore delle ipotesi però, andremo incontro ad un errore. Dopo aver dato il comando, prima della lista dei dispositivi, ci troveremo di fronte ad un errore che ci dice “* daemon not running. starting it now on port 5037 * * daemon started successfully *“. Vuol dire che non abbiamo sufficenti permessi, e che quindi li dobbiamo guadagnare.
Ottenere i permessi in caso di errore:
Ottenere il permesso di lettura del device è molto semplice. Dobbiamo creare un file ed assegnarli determinati permessi. In parole povere, sempre da terminale, accediamo come root:
su
Ed inseriamo la password. Adesso, creiamo il file digitando:
gedit /etc/udev/rules.d/99-android.rules
Il file sarà vuoto (a meno che non lo abbiate già creato in passato). Incolliamoci dentro:
SUBSYSTEM==”usb”, ATTRS{idVendor}==”XXXX“, SYMLINK+=”android_adb”, MODE=”0666″ GROUP=”plugdev”
Dove al posto delle XXXX dobbiamo inserire l’ID del nostro vendor, ossia di chi ha prodotto il nostro device. Ad esempio, se avete un cellulare della Samsung, vi basta sostituire le X con 04e8. Potete trovare la lista completa in questa pagina.
Fatta la modifica, salviamo il file e chiudiamolo.
Ritornati nel nostro bel terminale, diamo i permessi al file appena creato, digitando:
chmod a+rx /etc/udev/rules.d/99-android.rules
E quindi, riavviamo il servizio udev (che gestisce i dispositivi) con:
/etc/init.d/udev restart
Et voillà! Ridando il comando ./adb devices, non dovreste più visualizzare alcun messaggio di errore. Usciamo da root (basta dare exit) e se non viualizziamo più il messaggio di errore… Non c’è altro da fare 🙂
La mia prima connessione via ADB:
In un altro articolo tratterò i vari comandi da dare per muoversi ed ambientarsi, ma nel frattempo, perché non farsi un bel giretto all’interno del nostro dispositivo? Per farlo, da terminale (senza permessi di root) posizioniamoci in:
cd ...tuo_percorso.../sdk/platform-tools
Quindi diamo il comando:
./adb shell
E vedremo cambiare “qualcosa”. Siamo all’interno del nostro dispositivo, diamo un bel ls per ambientarci ed iniziamo un po’ a vagare come delle anime in pena 🙂
Questa è la procedura per installare i moduli ADB su Debian, ma ovviamente questi sono disponibili, più generalmente, per Linux e per Windows. Nel prossimo articolo, vedremo i comandi che abbiamo a disposizione.
Lascia un commento Annulla risposta