ADB su Ubuntu non riconosce Nexus 4


8

Non riesco a far riconoscere il mio telefono Nexus 4 da ADB su Ubuntu (12.04 con un kernel più recente installato: 3.8.0-30-generico). La modalità sviluppatore è abilitata sul telefono.

Il dispositivo si presenta in lsusb :

$ lsusb
...
Bus 003 Dispositivo 034: ID 18d1: 4ee5 Google Inc. 
...

Ma quando eseguo i dispositivi adb ottengo un elenco vuoto. Ho trovato molti post su Internet su questo problema, ma nessuno di essi risolve il problema. Esistono due soluzioni.

  • Aggiungi una regola a /etc/udev/rules.d/51-android.rules . Ho trovato varie varianti per il contenuto di questo file. Nella maggior parte dei casi un valore idVendor e idProduct dovrebbe essere impostato in base all'output di lsusb . Di seguito sono riportati alcuni esempi che ho provato
SOTTOSISTEMA == "usb", ATTRS {idVendor} == "18d1", ATTRS {idProduct} == "4ee5", MODE = "0666" GROUP = "androiddev", SYMLINK + = "android% n"
SOTTOSISTEMA == "usb", ATTR {idVendor} == "18d1", MODE = "0666", GROUP = "plugdev"
SOTTOSISTEMA == "usb", ATTRS {idVendor} == "18d1", SYMLINK + = "android_adb", MODE = "0666"
SOTTOSISTEMA == "usb", ATTR {idVendor} == "18d1", ATTR {idProduct} == "4ee5", MODE = "0666", OWNER = "my-login" 

Dopo aver aggiunto questo ho impostato le autorizzazioni per il file della regola su 644 e ho riavviato PC / riavviato udev, riavviato il telefono e collegato il mio Nexus 4.

  • Aggiungi l'id fornitore a ~ / .android / adb_usb.ini.
echo 0x18d1 >> ~ / .android / adb_usb.ini

Ho eseguito dispositivi adb come utente root e normale ma ho solo un elenco vuoto:

$ dispositivi adb
* demone non in esecuzione. avviandolo ora sulla porta 5037 *
* demone avviato correttamente *
Lista dei dispositivi collegati 

Qualche idea su come risolvere questo problema? Qualsiasi aiuto di suggerimenti sarebbe molto apprezzato.

Risposte:


7

Non è sufficiente far apparire la pagina Opzioni sviluppatore nel menu delle impostazioni (toccando ripetutamente il numero di build). In quella pagina, c'è un'opzione di debug USB , che per impostazione predefinita è disattivata.

Quando il debug USB è abilitato, il collegamento del dispositivo a un PC tramite USB fa apparire la notifica "Debug USB collegato", indipendentemente dal fatto che adbsia attualmente in esecuzione sul PC.


Potresti per favore dettagliare la tua risposta? Dove posso trovare questa "pagina"?
Luís de Sousa,


Sto cercando di collegarmi adbperché il touchscreen è rotto. Non ho modo di accedere a nessuno dei suoi menu e applicazioni. Ci sarebbe un altro modo per attivare questa funzione di debug USB?
Luís de Sousa,

1

Per un set di istruzioni più completo su come ottenere le regole udev Nexus 4 su Ubuntu configurate segui queste istruzioni:

Come trovare l'ID fornitore del dispositivo

È possibile trovare un ID fornitore per dispositivi USB collegati con il seguente comando linux:

lsusb

Questo genererà un elenco di tutti i dispositivi USB collegati, quindi assicurati che il dispositivo sia collegato prima di farlo.

Bus 001 Device 004: ID 18d1:4ee2 Google Inc.

La prima parte del campo dopo l'ID è l'ID fornitore (18d1) e la seconda parte corrisponde alla modalità in cui è collegato il dispositivo. In questo caso 4ee2 è uguale alla modalità MTP con debug attivo.

CREA REGOLA UDEV PER NEXUS 4

Per poter rilevare il telefono Nexus 4 su Ubuntu, la prima cosa è creare le regole udev appropriate che consentano al sistema di rilevare il telefono.

Queste regole udev dovrebbero essere in grado di gestire 4 casi diversi:

  • telefono collegato in modalità MTP (debug USB attivato o disattivato)
  • telefono collegato in modalità PTP (debug USB attivato o disattivato)
  • telefono collegato in modalità Fastboot
  • telefono collegato in modalità di recupero

Saranno dichiarati in /etc/udev/rules.d/99-android.rules. Se il file esiste già, basta aggiungere il contenuto alla fine di esso.

# sudo gedit /etc/udev/rules.d/99-android.rules

Di seguito è necessario aggiungere i contenuti. Assicurati di sostituire il campo your-login con il nome utente corretto con cui hai effettuato l'accesso.

# Google Nexus 4 16 Gb
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee1", MODE="0666", OWNER="your-login" # MTP media (multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0666", OWNER="your-login" # MTP media with USB debug on(multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee5", MODE="0666", OWNER="your-login" # PTP media (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee6", MODE="0666", OWNER="your-login" # PTP media with USB debug on (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0666", OWNER="your-login" # Bootloader
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0666", OWNER="your-login" # Recovery

Riavvia i servizi

Una volta fatto, il servizio udev deve essere riavviato.

# sudo service udev restart

Nota che in alcuni casi è anche necessario riavviare adb con:

adb kill-server
adb start-server

O riavvia completamente il sistema con:

sudo reboot -n

Anche il ricollegamento del cavo USB (anziché un riavvio) potrebbe funzionare.

Autorizza la connessione ADB

Se hai appena abilitato l'opzione di debug ADB sul tuo telefono e hai creato questa nuova connessione, il comando ADB potrebbe elencare il tuo dispositivo come unauthorized. Basta controllare lo schermo del telefono quindi autorizzare la nuova connessione.

Crediti

La maggior parte di queste informazioni è stata trovata su http://bernaerts.dyndns.org/android/267-android-nexus4-root-twrp-ubuntu . Questa è una guida al rooting per Nexus 4 su Ubuntu. Ho usato solo il primo passo di questa guida.


Ho appena provato questa soluzione da Ubuntu 14.04 e anche dopo il riavvio del sistema il Nexus 4 non viene riconosciuto.
Luís de Sousa,

Hai provato ad avviare adb con i permessi di root? Vedi una delle altre risposte su Ubuntu 14.04 + hai controllato la modalità di connessione USB sul dispositivo?
hpl

Sì, l'ho provato con sudo. Il telefono viene collegato in modalità MTP con il debug disattivato.
Luís de Sousa,

1

Sto eseguendo Ubuntu 14.04 LTS e ho scoperto che devo eseguire adb con i permessi di root per poter rilevare il mio telefono. Proprio ora ho eseguito (dalla directory platform-tools) ./adb devicese ho trovato un elenco vuoto. Ho riavviato adb come root eseguendo ./adb kill-servere poi sudo ./adb start-server. Ora adb devicesritorna:

List of devices attached 
01d17087d29dec60    device

Considerando che prima sembrava così:

Lista dei dispositivi collegati


uccidere, quindi iniziare come root ha funzionato per me. Usando un Nexus 5
Russ Wheeler il

1
Ho appena provato questa soluzione su Ubuntu 14.04 e ho ancora un elenco di dispositivi vuoto.
Luís de Sousa,

0

Cordiali saluti: Di ​​recente ho aggiornato la versione Android da 4.4 a 5.0 sul mio telefono e ADB non avrebbe più mostrato il dispositivo come connesso. Sembra che il metodo di connessione USB MTP sia stato corretto prima che ora debba essere PTP .


Potresti per favore dettagliare la tua risposta? Dove dovrebbe essere modificato esattamente questo metodo?
Luís de Sousa,

Come ho affermato, l'MTP era corretto PRIMA, DOPO che l'aggiornamento PTP era corretto.
Flowtron,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.