adb nessuna autorizzazione su Ubuntu 17.04


48

Quando provo:

$ adb devices

ottengo il risultato:

List of devices attached 
????????????    no permissions

qual è il problema?

provato su una macchina Ubuntu 16.04 e ha funzionato perfettamente. provato un dispositivo 7.1.1 e ha funzionato perfettamente.


Prova sudo adb devices. Se funziona alla grande, ma dalla memoria non ho dovuto essere root per controllare i dispositivi collegati.
shmink

1
non funzionerà con sudo ma con il login root funzionerà. il problema è che Android Studio preforma solo adb da una sessione non root, e eseguendolo con jksudo non riconoscerà i miei file.
Nadav Tasher,

Ho trovato lo stesso con Android Studio e in genere qualsiasi cosa fatta da jetbrains. Quando hai installato Android Studio lo hai fatto come root?
shmink

installato come root su / usr / local / e chmoded su 777 -R, non eseguito come root in modo da riconoscere le impostazioni e sdk.
Nadav Tasher,

Che ne dici di eseguirlo come root e semplicemente modificare le impostazioni e sdk in modo appropriato.
shmink

Risposte:


64

Prova a riavviare il server Adb.

sudo adb kill-server

e poi

sudo adb start-server

quindi connetti il ​​dispositivo, attiva il debug e digita

adb devices

2
Questo funziona ... in un certo senso. Dopo averlo fatto, infatti, l'esecuzione adb devicesora mostra il dispositivo (e ottengo la finestra di dialogo delle impronte digitali). Tuttavia, non funziona ancora con Android Studio. Inoltre, quando eseguo Android Studio e quindi eseguo adb devicesda una console, ottengo un "server adb non aggiornato" e il server adb si riavvia. Successivamente, arrivo nuovamente alla situazione "nessuna autorizzazione".
Ombra

Questo non funziona. i dispositivi adb non mostrano nulla e l'auricolare non chiede mai più l'autorizzazione.
Tyguy7,

62

Ha avuto lo stesso problema. Assicurarsi che la modalità USB del dispositivo NON si stia caricando ha risolto solo.


5
Lo stesso qui, avevo modificato le regole Udev senza risultati, ho cambiato USB in condivisione file e presto. Il dispositivo non richiedeva regole udev o specifiche modalità USB nella precedente versione di Ubuntu.
Fco P.

3
Questa dovrebbe essere la risposta corretta (non adb restart server)
RumburaK

1
Risposta corretta per me
Alvaro Gutierrez Perez,

1
non dovrebbe essere la risposta corretta ma ha funzionato.
Uzumaki D. Ichigo,

1
Sì, questa è la risposta corretta.

39

Molto probabilmente udev aggiunge erroneamente il tuo dispositivo. Anch'io ho avuto questo problema e ho trovato una soluzione relativamente semplice.

Trova il tuo dispositivo in lsusb

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2b Intel Corp. 
Bus 001 Device 002: ID 05c8:03a2 Cheng Uei Precision Industry Co., Ltd (Foxlink) 
Bus 001 Device 006: ID 18d1:4ee7 Google Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Punto di interesse in questo caso:

Bus 001 Device 006: ID 18d1:4ee7 Google Inc.

Controlla il file del dispositivo corrispondente

$ ls -l /dev/bus/usb/001/006

Probabilmente vedrai qualcosa di simile

crw-rw-r-- 1 root root 189, 5 Sep  8 21:47 /dev/bus/usb/001/006

Ciò significa che il file del dispositivo sarà di proprietà dell'utente root e del gruppo root, motivo per cui adb può accedervi come root ma non come utente standard.

Questo può essere risolto creando una nuova regola udev - ho usato /etc/udev/rules.d/51-android.rules- per aggiungere il dispositivo al gruppo plugdev, di cui adb presuppone già di essere un membro (dovresti essere, controlla usando id)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0660", 
GROUP="plugdev", SYMLINK+="android%n"

** Ricorda di sostituire l'ATTR {idProduct} == "4ee7" con il tuo ID prodotto che hai scoperto nel passaggio uno. ** (Se il tuo fornitore non è Google Inc., sostituisci anche l'ID fornitore con quello precedente ai due punti in lsusb).

Ora basta scollegare il dispositivo e ricollegarlo (udev dovrebbe rispondere automaticamente al nuovo file) e tadaa:

$ adb devices
List of devices attached 
YC873P0G    device

Fonte: aggiunta di regole udev per il debug USB di dispositivi Android - Janos Gyerik


1
Questa risposta ha risolto il mio problema. Perfetto grazie.
alexmeia,

1
Grazie @Paul Mi ha aiutato. Ben spiegato con la ragione. Penso che sia necessario anche il riavvio del servizio udev.
Gagan,

questa è sicuramente la soluzione corretta se non vuoi usare sudo per cose per le quali non dovresti aver bisogno di usare sudo
aholt

Questa dovrebbe essere la risposta accettata, in quanto è la risposta corretta . La risposta più votata è davvero solo una soluzione alternativa.
Joel Cross,

Questo mi ha risolto. Ha funzionato ieri senza le regole, ma dopo aver installato gli aggiornamenti su Ubuntu ha smesso di funzionare e ho dovuto farlo.
simernes,

2

Per espandere la risposta di Sumeet Deshmukh, il suo approccio funziona in generale, se si desidera utilizzare solo il adbcomando dalla console.

Android Studio, tuttavia, a quanto pare avvia il proprio server adb, uccidendo il nostro. Ciò significa che dopo aver ucciso / avviato il server con sudo, Studio lo riavvia, il che porta alla situazione di partenza - nessuna autorizzazione.

La soluzione è innanzitutto avviare Studio, quindi eseguire l'avvio / arresto del server. In questo modo, sono riuscito a far apparire il mio Nexus 5X come obiettivo di corsa valido in Studio.

Questa non è la situazione migliore (dover eseguire i comandi ogni volta che avvii Studio), ma fa il trucco in modo rapido e sporco. Se trovo una soluzione più permanente, aggiornerò questa risposta.


grazie mille, anche se si trattava di un bug risolto da un aggiornamento del sistema (al telefono) e da un aggiornamento di Studio.
Nadav Tasher,

2

Cambiare la modalità USB dal telefono ha fatto il trucco per me. (L'ho impostato su Trasferimento file .)


2

Si prega di NON seguire le soluzioni che suggeriscono l'usosudo ( sudo adb start-server)! Questo adb funziona come root (amministratore) e NON dovrebbe funzionare così !!! È una BAD soluzione alternativa !

Tutto ciò che funziona come root può fare qualsiasi cosa nel tuo sistema, se crea o modifica un file può cambiare la sua autorizzazione per essere utilizzato solo da root. Ancora una volta, NON FARE!

La cosa giusta da fare è configurare il sistema in modo che l'utente sia autorizzato, consulta questa guida che ho scritto su come farlo correttamente.


2

Non ha funzionato per me dopo che mi sono aggiunto al plugdevgruppo e riavviato la macchina solo per assicurarmi che la modifica abbia effetto in tutte le mie sessioni di shell. Ho quindi scoperto che non è presente alcun 51-android.rulesfile /etc/udev/rules.de ho dovuto fare quanto segue per risolvere il problema:

# Here the vendor ID is of Google
$ echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0660", GROUP="plugdev"' | sudo tee —append /etc/udev/rules.d/51-android.rules
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
$ sudo udevadm control --reload-rules
$ sudo service udev restart

Ho anche dovuto scollegare e ricollegare il mio dispositivo Android.



1

Devi fornire l'autorizzazione sul tuo dispositivo Android. Vai su Impostazioni> Opzioni sviluppatore. Prova a disattivare e riaccendere il debug USB. Rimuovere il cavo e ricollegarlo. Prova anche a eliminare tutte le autorizzazioni salvate dalle opzioni per gli sviluppatori. Ora dovrebbe richiedere l'autorizzazione al debug tramite un prompt sul telefono. Accettarlo.


non funziona, l'ho già provato, se è importante, sto usando Android 7.1.2 e su un altro dispositivo che esegue 7.1.1 ha funzionato.
Nadav Tasher,

Hai provato a eliminare tutte le autorizzazioni dell'host? Riavviato dopo?
Joel G Mathew,

non si è riavviato. lo proverò e ti dirò se ha funzionato.
Nadav Tasher,

Se ha funzionato, puoi accettare la risposta.
Joel G Mathew,

controllo male più tardi oggi
Nadav Tasher


0

Non ho idea del perché funzioni, ma questa è stata l'unica soluzione che ha funzionato per me

Trova dove adb è in esecuzione (se sei come me hai più versioni installate). Tieni presente che strumenti come la reazione nativa possono decidere di utilizzare altre versioni casuali per rendere la vita più difficile. Per me lo è ~/Android/Sdk/platform-tools/adb. Quindi corro:

sudo chown root:YOUR_USERNAME ~/Android/Sdk/platform-tools/adb
sudo chmod 4550 ~/Android/Sdk/platform-tools/adb

Gli strumenti Android sono super fastidiosi.


0

Vai su Impostazioni >> Manutenzione >> Memoria. Quindi controlla il menu in alto a sinistra e fai clic su Connessione computer USB, quindi passa a Dispositivo multimediale (MTP).

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.