GNU/Linux >> Linux Esercitazione >  >> Linux

Android - Tablet Android i.onik senza nome non riconosciuto da adb - dispositivi adb vuoti

La risposta di Izzy è fuorviante. Sono state confuse due cose non correlate (l'elenco degli ID fornitore in adb da un lato e l'impostazione dei permessi in Linux dall'altro).

1) dispositivi considerati da adb:

Adb ha un elenco codificato di ID fornitore USB che prova. Per esempio. I telefoni cellulari HTC utilizzano 0xbb4, che è elencato (file sorgente usb_vendors.c), mentre 0x2207 non lo è.

L'unico un modo per aggiungere a questo elenco (senza applicare patch alla fonte) è inserire gli ID fornitore nel file $HOME/.android/adb_usb.ini , linea per linea. (HOME è impostato correttamente?)

Non è necessario alcun cavo speciale.

2) configurazione delle autorizzazioni per l'accesso non root:

Il giocherellare con udev consiste nel fornire all'utente l'accesso ad es. /dev/bus/usb/002/009 (cambio numero bus/numero dispositivo; vedi lsusb per i valori correnti).

I dettagli di questo non sono rilevanti per la domanda del poster originale, poiché ha eseguito adb come root.


Come descritto in Configurazione di ADB per Nexus 4 su Ubuntu 11.10, sotto Linux è importante essere elencati in ~/.android/adb_usb.ini (basato sull'utente) o /etc/udev/rules.d/51-android.rules . La sintassi per entrambi i file è diversa:mentre nel primo caso è sufficiente aggiungere semplicemente il vendor id (echo 0x18d1 >> ~/.android/adb_usb.ini per un Nexus 4), la voce per la regola UDEV è un po' più complessa. I dettagli possono essere trovati nella domanda collegata (o meglio nelle sue risposte).

Nel caso di krlmlr, non era un "o-o", ma apparentemente erano necessarie entrambe le parti (non l'avevo mai avuto prima, e non ho mai nemmeno usato il adb_usb.ini -- ma questo non significa che non ci siano tali eccezioni). Aggiungendo il dispositivo in entrambi i punti (il che comunque non può far male), il dispositivo è finalmente apparso.

Due osservazioni aggiuntive:dopo aver modificato le regole UDEV, il servizio UDEV deve essere riavviato per accettare le modifiche. Su Ubuntu, questo può essere fatto tramite sudo service udev restart (in alternativa, puoi semplicemente forzare UDEV a ricaricare le sue regole usando udevadm control --reload-rules ). Se il tuo dispositivo non viene ancora rilevato, molto probabilmente è stato collegato mentre hai apportato le modifiche; è necessario scollegare e ricollegare il cavo USB quindi. Naturalmente, debug USB deve essere abilitato nel tuo dispositivo :)

Esempio

In base al seguente output di lsusb per il dispositivo Android in questione:

Bus 002 Device 009: ID 2207:0010  

è stato necessario creare /etc/udev/rules.d/51-android.rules come root con i seguenti contenuti:

SUBSYSTEM=="usb", ATTR{idVendor}=="2207", ATTR{idProduct}=="0010", MODE="0660", GROUP="plugdev"

e per creare ~/.android/adb_usb.ini con i seguenti contenuti:

0x2207

Il primo è necessario per consentire agli utenti regolari (che appartengono al gruppo plugdev ) per accedere al dispositivo. Nota la maschera di autorizzazione 0660 invece del frequente 0666 che è più debole dal punto di vista della sicurezza (quest'ultimo consente l'accesso "mondo", mentre il primo consente solo l'accesso "utente e gruppo"). Il secondo è richiesto affinché adb tenta di parlare con il dispositivo in primo luogo. Successivamente:

sudo chmod a+r /etc/udev/rules.d/51-android.rules
sudo udevadm control --reload-rules
adb kill-server

e scollega e collega il tuo dispositivo Android. Poi,

adb devices

finalmente ha mostrato il dispositivo Android.

Per il mio LG Optimus 4X HD , era sufficiente aggiungere una riga a /etc/udev/rules.d/51-android.rules :

SUBSYSTEMS=="usb", ATTRS{idVendor}=="1004", ATTRS{idProduct}=="61a6", MODE="0666" GROUP="androiddev", SYMLINK+="android%n"

Forse il SYMLINK fa la differenza che non avevo bisogno della voce extra in ~/.android/adb_usb.ini .


Linux
  1. Android adb non trovato

  2. Dispositivo Android Debug Bridge (adb) - nessuna autorizzazione

  3. sshpass non è riconosciuto su Windows

  4. eseguire dispositivi adb che mostrano un dispositivo non autorizzato?

  5. Tabella delle partizioni non riconosciuta dal kernel Linux

Comando Lsblk in Linux (Elenca dispositivi a blocchi)

Termux:esegui Linux su dispositivi Android, nessun rooting richiesto!

Come rilevare e gestire i dispositivi su Linux

Come avviare un emulatore Android in Ubuntu 16.04?

Android - Come posso far rilevare il mio dispositivo da ADB su Linux?

dd su tutto il disco, ma non voglio una parte vuota