adb senza autorizzazioni su Ubuntu 17.04

28

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. ho provato un dispositivo 7.1.1 e ha funzionato perfettamente.

    
posta Nadav Tasher 24.04.2017 - 12:10

11 risposte

36

Prova a riavviare il server Adb.

sudo adb kill-server

e poi

sudo adb start-server

quindi collega il dispositivo attiva Debug e digita

adb devices
    
risposta data Sumeet Deshmukh 26.04.2017 - 19:13
31

Aveva lo stesso problema. Garantire che la modalità USB del dispositivo sia NON solo carica l'ha risolta.

    
risposta data Ivan Klass 13.05.2017 - 14:35
24

Molto probabilmente udev sta aggiungendo il tuo dispositivo in modo errato. Anch'io ho avuto questo problema & amp; 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

Questo 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 , che adb già presuppone di essere un membro di (devi essere, controlla usando id )

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

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

Ora scollega il tuo dispositivo e ricollegalo (udev dovrebbe rispondere automaticamente al nuovo file) e tadaa:

$ adb devices
List of devices attached 
YC873P0G    device

Fonte: Aggiunta di regole udev per il debugging USB dei dispositivi Android - Janos Gyerik

    
risposta data Paul 08.09.2017 - 22:40
2

Devi fornire l'autorizzazione sul tuo dispositivo Android. Vai a Impostazioni & gt; Opzioni sviluppatore. Prova a disattivare Debug USB e poi riaccenderlo. Rimuovere il cavo e ricollegarlo. Prova anche a eliminare tutte le autorizzazioni salvate dalle opzioni dello sviluppatore. Dovrebbe ora chiedere il permesso di debug tramite un prompt sul telefono. Accettalo.

    
risposta data Droidzone 24.04.2017 - 12:13
2

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

Android Studio, tuttavia, avvia apparentemente 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 iniziale, senza autorizzazioni.

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

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

    
risposta data Shade 17.08.2017 - 21:56
1

Non ha funzionato per me dopo che mi sono aggiunto al gruppo plugdev e ho riavviato la macchina solo per assicurarmi che la modifica abbia effetto in tutte le mie sessioni di shell. Ho poi scoperto che non esiste un file 51-android.rules in /etc/udev/rules.d e ho dovuto eseguire le seguenti operazioni 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.

    
risposta data 29.09.2018 - 03:48
1

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

    
risposta data NuttLoose 11.10.2017 - 16:36
1

Per favore NON seguire le soluzioni che suggeriscono di usare sudo ( sudo adb start-server )! Questo esegue adb come root (amministratore) e NON dovrebbe funzionare così !!! È una soluzione errata !

Tutto ciò che viene eseguito come root può fare qualsiasi cosa nel tuo sistema, se crea o modifica un file può cambiare il suo permesso di essere usato solo da root. Ancora una volta, NON!

La cosa giusta da fare è impostare il tuo sistema in modo che l'UTENTE abbia il permesso, controlla questa guida ho scritto su come farlo correttamente.

    
risposta data Daniele Segato 03.05.2018 - 10:25
0

La community GitHub ha mantenuto le regole di udev

link

Questa è la lista di regole udev più completa che ho visto fino ad ora, anche più del% consigliato al momento co_de% sulla documentazione ufficiale , provalo.

    
0

Non ho idea del perché funzioni, ma questa era l'unica soluzione che funzionava per me

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

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

Gli strumenti Android sono super fastidiosi.

    
risposta data Bufke 06.09.2017 - 23:09
0

Vai a Impostazioni & gt; & gt; Manutenzione & gt; & gt; Conservazione. Quindi selezionare il menu in alto a sinistra e fare clic su Connessione USB del computer, quindi passare a Media device (MTP).

    
risposta data Charloh Maguri Jnr 09.04.2018 - 09:50

Leggi altre domande sui tag