adb no hay permisos en Ubuntu 17.04

24

Cuando intento:

$ adb devices

obtengo el resultado:

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

¿cuál es el problema?

probado en una máquina Ubuntu 16.04 y funcionó perfectamente. intenté un dispositivo 7.1.1 y también funcionó perfectamente.

    
pregunta Nadav Tasher 24.04.2017 - 10:10

10 respuestas

27

Intenta reiniciar el servidor Adb.

sudo adb kill-server

y luego

sudo adb start-server

luego conecta tu dispositivo activa Debugging on y escribe

adb devices
    
respondido por el Sumeet Deshmukh 26.04.2017 - 17:13
25

Tenía el mismo problema. Asegurar que el modo USB del dispositivo NO solo carga lo ha resuelto.

    
respondido por el Ivan Klass 13.05.2017 - 12:35
17

Es muy probable que udev agregue incorrectamente su dispositivo. Yo también tuve este problema y amp; 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.

Mira el archivo de dispositivo correspondiente

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

Probablemente veas 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 creando una nueva regla de udev, utilicé /etc/udev/rules.d/51-android.rules , para agregar el dispositivo al grupo plugdev , del cual adb ya supone que eres miembro (deberías ver, usa 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 el id del vendedor con el que está antes de los dos puntos en lsusb).

Ahora solo desenchufa tu dispositivo y vuelve a enchufarlo (udev debería responder automáticamente al nuevo archivo) y tadaa:

$ adb devices
List of devices attached 
YC873P0G    device

Fuente: Cómo agregar reglas de udev para la depuración USB de dispositivos Android - Janos Gyerik

    
respondido por el Paul 08.09.2017 - 20:40
2

Debes otorgar permiso en tu dispositivo Android. Ve a Configuración & gt; Opciones de desarrollador. Intenta desactivar Usb Debugging y luego vuelve a encenderlo. Retire el cable y vuelva a conectarlo. También intente eliminar todas las autorizaciones guardadas de las opciones de desarrollador. Ahora debería solicitar permiso de depuración mediante un aviso en su teléfono. Acéptalo.

    
respondido por el Droidzone 24.04.2017 - 10:13
2

Para expandir la respuesta de Sumeet Deshmukh, su enfoque funciona en general, si solo quiere usar el comando adb de la consola.

Android Studio, sin embargo, aparentemente inicia su propio servidor adb, matando al nuestro. Esto significa que después de haber matado / iniciado el servidor con sudo, Studio lo reinicia, lo que lleva a la situación de inicio, sin permisos.

La solución es primero iniciar Studio, luego realizar el inicio / parada del servidor. Al hacer eso, logré que mi Nexus 5X apareciera como un objetivo de ejecución válido en Studio.

Esta no es la mejor situación (tener que ejecutar comandos cada vez que se inicia Studio), pero hace el truco de una manera rápida y sucia. Si encuentro una solución más permanente, actualizaré esta respuesta.

    
respondido por el Shade 17.08.2017 - 19:56
1

Cambiar el modo USB de Phone me hizo gracia. (Lo configuré para Transferencia de archivos ).

    
respondido por el NuttLoose 11.10.2017 - 14:36
0

Ve a Ajustes & gt; & gt; Mantenimiento & gt; & gt; Almacenamiento. Luego, verifique el menú superior izquierdo y haga clic en Conexión de la computadora USB y luego cambie a Dispositivo multimedia (MTP).

    
respondido por el Charloh Maguri Jnr 09.04.2018 - 07:50
0

Por favor, NO sigas soluciones que sugieran usar sudo ( sudo adb start-server )! Esta ejecución adb como root (administrador) y NO debe ejecutarse así !!! ¡Es una MALA solución alternativa !

Todo lo que se ejecuta como root puede hacer cualquier cosa en su sistema, si crea o modifica un archivo puede cambiar su permiso para que solo sea utilizado por root. De nuevo, ¡NO!

La acción correcta es configurar su sistema para que el USUARIO tenga el permiso, revise esta guía escribí sobre cómo hacerlo correctamente.

    
respondido por el Daniele Segato 03.05.2018 - 08:25
0

La comunidad de GitHub mantuvo las reglas de udev

enlace

Esta es la lista de reglas de udev más completa que he visto hasta ahora, incluso más que el% recomendado sudo apt-get install android-tools-adb en la documentación oficial , pruébelo.

    
0

No tengo idea de por qué funciona, pero esta fue la única solución que funcionó para mí

Encuentre dónde se ejecuta adb (si es como yo, tiene varias versiones instaladas). Tenga en cuenta que las herramientas como reaccionar nativas pueden decidir usar otras versiones aleatorias para hacer su vida más difícil. Para mí es ~/Android/Sdk/platform-tools/adb . Entonces correré:

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

Las herramientas de Android son súper molestas.

    
respondido por el Bufke 06.09.2017 - 21:09

Lea otras preguntas en las etiquetas