Abilita il debug USB sul dispositivo
Questo viene fatto in Impostazioni ›Sviluppo . Se non hai quella voce nel menu delle impostazioni, vai su Impostazioni ›Informazioni , scorri fino a" Numero build "e martellalo come una scimmia fino a quando il tuo dispositivo si congratula con te per essere diventato uno sviluppatore. Torna alla pagina principale del menu Impostazioni e vicino al fondo dovresti vedere ora le impostazioni "Sviluppo" (o "Sviluppatori"). Inseriscilo e abilita il debug USB qui.
Identifica il dispositivo
Innanzitutto dobbiamo sapere come si identifica il dispositivo sul bus USB. Per questo, con il dispositivo Android NON connesso, prendi una shell ed esegui il comando lsusb
. Quindi collegare il dispositivo ed eseguire nuovamente il comando. Trova la nuova linea. Per Wileyfox Swift questo è un "dispositivo senza nome":
Bus 004 Device 003: ID 2970:2282
Impostazione delle regole per ADB
Abbiamo ora bisogno i numeri alla fine della riga sopra: 2970:2282
. Questi specificano il fornitore (2970) e il dispositivo stesso (2282). Avendo questi dettagli, abbiamo bisogno di una shell di root sulla nostra macchina Linux per modificare (o creare, se non esiste ancora) il /etc/udev/rules.d/51-android.rules
file. Lì, aggiungi una linea per il tuo dispositivo. La seguente riga di esempio mostra come appare Wileyfox Swift: ¹
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2970", ATTRS{idProduct}=="2282", MODE="0666" GROUP="androiddev", SYMLINK+="android%n"
Se hai un dispositivo diverso, sostituisci il fornitore e gli ID prodotto con quello che hai trovato sopra durante l'esecuzione lsusb
. Una breve spiegazione della linea:
SUBSYSTEMS=="usb"
: ovviamente questa regola è solo per USB;)
ATTRS{idVendor}=="2970"
: l'ID fornitore del dispositivo per cui questa regola è valida
ATTRS{idProduct}=="2282"
: l'ID del dispositivo
MODE="0666"
: autorizzazioni che devono ottenere il nodo del dispositivo. 0666
è piuttosto lassista, dare a tutti gli utenti del tuo sistema i permessi di lettura e scrittura - quindi se sei preoccupato, potresti provare a sostituirlo con un 0660
(dare solo il proprietario e il gruppo a leggere e scrivere e negare tutto agli altri).
GROUP="androiddev"
: a quale gruppo deve appartenere il nodo del dispositivo. Questo dovrebbe essere un gruppo a cui gli utenti intendono lavorare con il dispositivo.
SYMLINK+="android%n"
: solo per dare al nodo un bel nome, così puoi trovarlo più facilmente in /dev
(nel mio caso, in seguito è apparso lì come /dev/android5
)
Quella regola è entrata /etc/udev/rules.d/51-android.rules
, dobbiamo dire udev
di farne uso. Il modo più sicuro (accanto al riavvio;) è il riavvio del udev
servizio. A seconda della distribuzione Linux, questo può essere fatto tramite service udev restart
o /etc/init.d/udev restart
.
Fatto ciò, lascia la shell di root. Disconnetti e riconnetti il tuo dispositivo Android, riprova adb devices
. La maggior parte dei dispositivi è ora disponibile, ma non il Wileyfox Swift - che ovviamente vuole delle coccole extra. Se ti trovi in quella situazione, apri (o crea se non esiste) il file ~/.android/adb_usb.ini
e aggiungi una sola riga, nominando il fornitore che hai scoperto lsusb
sopra; per lo Swift che sarebbe 0x2970
(yupp, qui devi prefissarlo indicando 0x
che è un numero esadecimale). Quindi riavviare il server ADB: adb kill-server && adb start-server
. Scollegare e ricollegare il dispositivo. Adesso adb devices
dovrebbe vederlo.
Connessione del dispositivo
Potresti aver notato adb devices
che ti ha detto qualcosa del genere 0123456789ABCDEF unauthorized
. Va bene e per la tua (dispositivi) sicurezza: il tuo computer deve prima essere autorizzato per poter accedere al dispositivo. Quindi semplicemente emetti adb shell
ora - che verrà chiuso con un error: device unauthorized. Please check the confirmation dialog on your device.
Segui questo consiglio (facoltativamente selezionare la casella di controllo per autorizzare permanentemente il tuo computer), e il gioco è fatto: ora puoi usare adb per accedere al tuo dispositivo.
aggiornamenti:
¹ Si noti che nelle versioni successive di Linux, la sintassi delle regole UDEV è leggermente cambiata, come ad esempio jcomeau_ictx ha sottolineato nel suo commento. Per i valori che abbiamo trovato sopra sarebbero:
SUBSYSTEM=="usb", ATTR{idVendor}=="2970", ATTR{idProduct}=="2282", MODE="0666", GROUP="plugdev", SYMLINK+="android%n"
Due differenze: è ora SUBSYSTEM
(nessun plurale) e il gruppo è cambiato da androiddev
a plugdev
(il primo non esiste su sistemi recenti, il secondo sì e di solito è assegnato almeno al primo utente).
Inoltre, potresti dover aggiungere il vendorID al tuo ~/.android/adb_usb.ini
(un ID per riga, in notazione esadecimale):
# ANDROID 3RD PARTY USB VENDOR ID LIST
# 1 USB VENDOR ID PER LINE.
0x2970