Très probablement, udev ajoute de manière incorrecte votre appareil. Moi aussi j'ai eu ce problème et je suis tombé sur une solution relativement simple.
Trouvez votre appareil dans 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
Point d'intérêt dans ce cas:
Bus 001 Device 006: ID 18d1:4ee7 Google Inc.
Extraire le fichier de périphérique correspondant
$ ls -l /dev/bus/usb/001/006
Vous verrez probablement quelque chose comme
crw-rw-r-- 1 root root 189, 5 Sep 8 21:47 /dev/bus/usb/001/006
Cela signifie que le fichier de périphérique appartiendra à l'utilisateur root et au groupe root. C'est pourquoi adb peut y accéder en tant que root mais pas en tant qu'utilisateur standard.
Cela peut être résolu en créant une nouvelle règle udev - j'ai déjà utilisé /etc/udev/rules.d/51-android.rules
- pour ajouter le périphérique au groupe plugdev
, lequel adb suppose déjà que vous êtes membre de (vous devriez le faire, vérifiez avec id
).
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0660",
GROUP="plugdev", SYMLINK+="android%n"
** N'oubliez pas de remplacer l'ATTR {idProduct} == "4ee7" par votre propre identifiant de produit que vous avez découvert à la première étape. ** (Si votre fournisseur n'est pas Google Inc., remplacez également l'identifiant du fournisseur par celui qui précède les deux points dans lsusb).
Il suffit maintenant de débrancher votre appareil et de le rebrancher (udev devrait répondre automatiquement au nouveau fichier) et tadaa:
$ adb devices
List of devices attached
YC873P0G device
Source: Ajout de règles udev pour le débogage USB de périphériques Android - Janos Gyerik
sudo adb devices
. Si cela fonctionne très bien, mais de mémoire, je n'ai pas eu à être root pour vérifier les périphériques connectés.