Es muy probable que udev esté agregando incorrectamente su dispositivo. Yo también tuve este problema y encontré una solución relativamente simple.
Encuentra tu dispositivo en 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 de interés en este caso:
Bus 001 Device 006: ID 18d1:4ee7 Google Inc.
Consulte el archivo del dispositivo correspondiente
$ ls -l /dev/bus/usb/001/006
Probablemente verás algo como
crw-rw-r-- 1 root root 189, 5 Sep 8 21:47 /dev/bus/usb/001/006
Esto significa que el archivo del dispositivo será propiedad de la raíz del usuario y la raíz del grupo, por lo que adb puede acceder a él como root pero no como su usuario estándar.
Esto se puede resolver mediante la creación de una nueva regla udev, que solía /etc/udev/rules.d/51-android.rules
, para agregar el dispositivo al grupo plugdev
, que adb ya asume que eres miembro (deberías hacerlo, verifica usando id
)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0660",
GROUP="plugdev", SYMLINK+="android%n"
** Recuerde reemplazar el ATTR {idProduct} == "4ee7" con su propia identificación de producto que descubrió en el paso uno. ** (Si su proveedor no es Google Inc., también reemplace la identificación del proveedor por la anterior a los dos puntos en lsusb).
Ahora solo desconecte su dispositivo y vuelva a enchufarlo (udev debería responder automáticamente al nuevo archivo) y tadaa:
$ adb devices
List of devices attached
YC873P0G device
Fuente: Agregar reglas udev para depuración de dispositivos Android con Android - Janos Gyerik
sudo adb devices
. Si eso funciona muy bien pero de memoria no he tenido que ser root para verificar si hay dispositivos conectados.