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
sudo adb devices
. Se funziona alla grande, ma dalla memoria non ho dovuto essere root per controllare i dispositivi collegati.