configurar el dispositivo para el desarrollo (???????????? sin permisos)

282

Estoy usando un teléfono Samsung galaxy nexus ( plataforma Android 4.0 ).

Estoy desarrollando la aplicación de Android en Ubuntu Linux OS. Me gustaría ejecutar mi aplicación directamente en el dispositivo Samsung, así que realicé los siguientes pasos de configuración:

  1. en mi AndroidManifest.xmlarchivo de proyecto , agregado android:debuggable="true"al <application>elemento

  2. En el dispositivo, en Configuración> Seguridad habilitada Fuentes desconocidas

  3. En el dispositivo, en Configuración> Opciones de desarrollador habilitó la depuración de USB

  4. En mi computadora, creé el /etc/udev/rules.d/51-android.rulesarchivo con el siguiente contenido:

    SUBSYSTEM=="usb", ATTR{idVendor}=="04E8", MODE="0666", GROUP="plugdev" 
  5. En mi computadora, ejecuta el chmod a+r /etc/udev/rules.d/51-android.rulescomando

Luego, en mi computadora abrí una terminal y ejecuté el adb devicescomando, obtuve:

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

Como no vi mi dispositivo, sino solo ???????????? no permissions, ejecuté los siguientes comandos:

 adb kill-server
 adb start-server
 adb devices

Pero aún tengo:

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

¿Por qué? ¿Qué me estoy perdiendo?

Leem.fin
fuente
después de ejecutar adb kill-server recibiste el mensaje de que * daemon no se está ejecutando. comenzando ahora en el puerto 5037 * * el demonio comenzó con éxito * --- si no lo intentas hasta que obtengas este mensaje
Andro Selva
2
Intente verificar que su usuario esté en plugdevgrupo.
Sergey Glotov
2
Ejecutar => sudo adb start-server (Usar acceso raíz para ejecutar adb)
Confundido el
finalmente encontré la solución que funcionó para mí en este enlace github.com/snowdream/51-android
Abdulrahman Gamal

Respuestas:

451

Lo que funciona para mí es matar e iniciar el servidor adb nuevamente. En Linux: sudo adb kill-servery luego sudo adb start-server. Luego detectará casi todos los dispositivos fuera de la caja.

WarrenFe
fuente
1
Uso root para ejecutar el comando "dispositivos adb" en <android-SDK> / platform-tool /, obtuve "No se encontró el comando 'adb'", ¿por qué?
Leem.fin
8
asegúrese de que su adb tenga + x -rwxrwxr-x 1 martin martin 156K 2011-11-09 15:40 adb. Intente moverse directamente al directorio y comience por "sudo ./adb devices". Si puede ejecutar sin que sudo, usted debería ser capaz de ejecutarlo con sudo ... No estoy seguro de lo que su problema podría ser ...
WarrenFaith
8
No debería necesitar ejecutar adb como root si sus permisos de udev están configurados correctamente. Consulte la respuesta de grebulones a continuación o consulte la documentación de Android: developer.android.com/tools/device.html
gnac
44
Una sugerencia importante es desconectar el cable usb, por lo que reinicia adb, conecta el cable y funciona. En mi situación, mientras hice el procedimiento con el cable conectado, no me funciona.
androidevil
66
Y los comandos son: adb kill-server sudo adb start-serververificar:adb devices
Asim
350

Nada funcionó para mí hasta que finalmente encontré la respuesta aquí: http://ptspts.blogspot.co.il/2011/10/how-to-fix-adb-no-permissions-error-on.html

Estoy copiando el texto aquí en caso de que desaparezca en el futuro.

Cree un archivo llamado /tmp/android.rules con el siguiente contenido (los números de proveedores hexadecimales se tomaron de la página de la lista de proveedores):

SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0e79", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0502", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="413c", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0489", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="091e", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="24e3", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2116", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0482", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="17ef", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0409", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2080", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2257", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="10a9", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1d4d", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0471", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04da", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1f53", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04dd", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fce", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0930", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1bbb", MODE="0666"

Ejecute los siguientes comandos:

sudo cp /tmp/android.rules /etc/udev/rules.d/51-android.rules
sudo chmod 644   /etc/udev/rules.d/51-android.rules
sudo chown root. /etc/udev/rules.d/51-android.rules
sudo service udev restart
sudo killall adb

Desconecte el cable USB entre el teléfono y la computadora.

Vuelva a conectar el teléfono.

Ejecute adb devicespara confirmar que ahora tiene permiso para acceder al teléfono.

Tenga en cuenta que es posible usarlo en , USER="$LOGINNAME"lugar de , MODE="0666"en el .rulesarchivo, sustituyendo $LOGINNAMEsu nombre de usuario, es decir, lo que se id -nuimprime.

En algunos casos, puede ser necesario asignar al archivo de reglas udev un nombre que se acerque al final, como z51-android.rules.

grebulon
fuente
77
Nota: para Ubuntu Precise el nombre del archivo es 70-android.rulessegún esta publicación: esausilva.com/2010/05/13/… . También felicitaciones por informarnos que debe reiniciar udevy eliminar todos los procesos de adb. ¡Trabajado como un encanto!
Eduard Luca
Un enfoque similar se documenta oficialmente en developer.android.com/tools/device.html
bjunix el
44
Esto funcionó bien pero, como señaló @luciana en otra respuesta, es posible que deba llamar sudo udevadm control --reload-rulespara actualizar las reglas de udev si reiniciar el servidor no es suficiente.
serjlee
44
Esto debería marcarse como la respuesta correcta, ya que sudo adb no debería ser un requisito para Linux
Zac
1
Esta es la única respuesta correcta aquí. ¡Gracias por eso! Además, podemos ver la salida de lsusb para asegurarnos de que el proveedor requerido esté incluido. Lo más extraño es que solo uno de mis dispositivos (OnePlus One) dejó de funcionar repentinamente después de actualizar a Android 7.1.2 (incluso cuando ejecuta adb como root), después de agregar las reglas de udev como se describió anteriormente, funciona de nuevo.
user1209216
77

Ingrese los siguientes comandos:

adb kill-server sudo ./adb start-server adb devices

El problema es que no está ejecutando el servidor adb como root.

iancrowther
fuente
44
Aunque la idea es la misma que en la respuesta aceptada, esta solo me ayudó, debido al ejemplo proporcionado. Gracias
user907860
1
@ user907860 en realidad es mejor que la respuesta aceptada porque explica por qué debería escribir sudo :) (lo que no hice cuando vi la respuesta aceptada)
stan0
Por cierto, ¿por qué adb debería ejecutarse como root?
stan0
lo siento, no lo recuerdo
iancrowther
2
adb NO debería ejecutarse como root. Si esto es necesario, su sistema está mal configurado. Deja de tirar "sudo" frente a todo, tiene enormes implicaciones de seguridad.
hackel
55

Intenté todo lo anterior, ninguno funcionó ... finalmente funcionó cuando cambié conectado de MTP a Cámara (PTP).

Sabeer Mohammed
fuente
3
Para aquellos que se preguntan cómo hacer esto ... Configuración del sistema> Almacenamiento> Botón superior derecho: conexión de computadora USB> Conectar como cámara selecta (PTP) en lugar de dispositivo multimedia (MTP)
Thaddeus Albers
3
hombre, estaba buscando la solución como dos horas, esto me funciona en ubuntu 16.04, gracias
Jorius
Esto debería ser lo primero que debe verificar. Funciona para mí
m50
32

Hay muchas respuestas negativas publicadas a esta pregunta que van desde insistir en ejecutarse adbcomo root(que no debe promocionarse como la única o incluso la solución recomendada) hasta resolver problemas completamente no relacionados.

Aquí está la receta más corta y universal para cuidar los permisos de todos adby los fastbootdispositivos a la vez:

echo 'ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="*:ff420?:*", MODE="0666"' | sudo tee /etc/udev/rules.d/99-android.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --verbose --action=add --subsystem-match=usb

O podría usar una versión un poco más larga que publiqué en esta esencia .

En cuanto a lo específico que OP hizo mal en su pregunta, no fue volver a cargar las udevreglas después de editar el .rulesarchivo.

Además, OP no dijo qué versión de Android (también conocida como ROM) tenía en su teléfono. El idVendorvalor se establece en el software y, por lo tanto, depende de la ROM. Por lo tanto, el valor 04E8que utilizó en su regla original habría funcionado solo para dispositivos con ROM de stock de Samsung. Pero esto no es un problema para esta udevregla: coincide con todos los dispositivos adbo fastbootinterfaces, independientemente de su VendorID .

Alex P.
fuente
El único paso que falta para verlo funcionar es adb kill-server antes que los dispositivos adb.
mstrange
1
Esto ya no parece funcionar en Android 8.1. ¿Cómo descubriste qué adb informa como ID de dispositivo?
Cachapa
Trabajó para mí en Android 7.1.2
Amerzilla
@Cachapa, funciona con todas las versiones de Android. Incluso el último (en el momento en que escribí esto) Android P Preview 4 utiliza los mismos ID de interfaz adb - android.googlesource.com/platform/system/core/+/…
Alex P.
todavía funciona con Android 11 android.googlesource.com/platform/system/core/+/…
Alex P.
16

En Archlinux esto puede suceder ocasionalmente. La solución:

$ sudo -s
# adb kill-server
# adb start-server
Keenan Verbrugge
fuente
No estoy seguro de si eso fue lo único que lo hizo funcionar ... Probé las cosas anteriores. Pero sin esta publicación ubuntu en VBox no autorizó mi LG G3. Gracias Keenan
lastboy
No sé por qué, pero sudo adb kill-server; sudo adb start-serverno funcionó, pero este sí.
Hritik
9

Para aquellos que usan debian, la guía para configurar un dispositivo en Ubuntu para crear el archivo "/etc/udev/rules.d/51-android.rules" no funciona. Seguí las instrucciones desde aquí . Poniendo lo mismo aquí como referencia.

Edite este archivo como superusuario

sudo nano /lib/udev/rules.d/91-permissions.rules

Encuentra el texto similar a este

# usbfs-like devices 
SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, \ MODE=”0664

Luego cambie el modo a 0666 como a continuación

# usbfs-like devices 
SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, \ MODE=”0666

Esto permite que adb funcione, sin embargo, aún necesitamos configurar el dispositivo para que pueda reconocerse. Necesitamos crear este archivo como superusuario,

sudo nano /lib/udev/rules.d/99-android.rules

y entra

SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, ATTRS{idVendor}==”0bb4″, MODE=”0666

la línea anterior es para HTC, siga la publicación de @ grebulon para obtener una lista completa.

Guarde el archivo y luego reinicie udev como superusuario

sudo /etc/init.d/udev restart

Conecte el teléfono a través de USB y se debe detectar cuando compila y ejecuta un proyecto.

jaga
fuente
5

Tuve el mismo problema, la solución es como compañero: (por cierto, no tienes que rootear tu dispositivo).

  1. Escriba "su" para cambiar a superusuario.
  2. your-path / adb kill-server.
  3. your-path / adb start-server.
  4. Si no se produce ningún error, puede ver la lista de dispositivos con "your-path / adb devices" en la cuenta raíz.
  5. Salir de superusuario.
  6. Ahora puede realizar "dispositivos adb" en su cuenta.

Disfrutar.

Jeffrey Yang
fuente
1
En caso de que no pueda iniciar sesión usando su, use sudo su. Yo hice. Y también, si no sabe cómo abandonar al usuario, úselo exit.
Pijusn
4

Sé que esto podría ser un poco tarde, pero aquí hay un muy buen artículo sobre cómo agregar manualmente el controlador USB ADB de Android. Agregar manualmente el controlador USB Android ADB en Ubuntu 14.04 LTS

Editado para agregar contenido de enlace

Pasos

Nota: asegúrese de haber conectado su dispositivo Android en modo de depuración USB

Abra la terminal ( CTRL + ALT + T) e ingrese el comando: lsusb

Ahora puede obtener una respuesta similar a esto:
Bus 002 Device 013: ID 283b:1024

Nota: con referencia a estoBus 002 Device 008: ID 283b:1024
{idVendor}==”283b” {idProduct}==”1024″

Ahora ingrese el siguiente comando: sudo gedit /etc/udev/rules.d/51-android.rules
Esto crea el archivo de reglas de Android ( 51-android.rules) o abre el existente en la ubicación especificada ( /etc/udev/rules.d)

Agregue una nueva línea a este archivo:
SUBSYSTEM==”usb”, ATTRS{idVendor}==”283b”, ATTRS{idProduct}==”1024″, MODE=”0666″

Nota Editar idVendory idProductvalores con los valores de su dispositivo. Guardar y cerrar.

Ahora ingrese el siguiente comando:
sudo chmod a+rx /etc/udev/rules.d/51-android.rules- otorgue permiso de lectura / ejecución
sudo service udev restart- Reinicie el udevservicio

Ahora tenemos que agregar el idVendora adb_usb.ini. Ingrese los siguientes comandos:
cd ~/.android
gedit adb_usb.ini

Agregue el siguiente valor 0x283b

Esto no es más que 0x ( idVendorvalor). Entonces reemplace el valor con. respecto al valor de su dispositivo Guarde y cierre el archivo.

Ahora ingrese el siguiente comando:
sudo service udev restart

Enchufe el dispositivo Android y vuelva a conectarlo.
Ahora ingrese el siguiente comando:
adb kill-server
adb devices

Ahí tienes! Su dispositivo debe estar en la lista.

Copiado de agregar manualmente el controlador USB ADB de Android en Ubuntu 14.04 LTS

Trabajó para mi.

dc-aoxn
fuente
4

Tuve el mismo problema con mi Galaxy S3. Mi problema fue que el idVendorvalor 04E8no era el correcto. Para encontrar el correcto, conecte su teléfono inteligente a la computadora y ejecútelo lsusben la terminal. Enumerará su teléfono inteligente de esta manera:

Bus 002 Device 010: ID 18d1:d002 Google Inc.

Entonces el idVendorvalor correcto es 18d1. Y la línea en el /etc/udev/rules.d/51-android.rulestiene que ser:

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev" 

¡Entonces corrí sudo udevadm control --reload-rulesy todo funcionó!

Ulli
fuente
1
Quizás quiso decir:ATTR{idVendor}=="18d1"
Tanasis
3

Utilice la M0Rf30/android-udev-rulescomunidad GitHub mantenida udev-rules

https://github.com/M0Rf30/android-udev-rules/blob/master/51-android.rules

Esta es la lista de reglas de udev más completa que he visto hasta ahora, incluso más que la recomendada actualmente sudo apt-get install android-tools-adb en la documentación oficial , y resolvió ese problema para mí.

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
fuente
1
¿Por qué molestarse en "mantener la lista" cuando una sola regla funciona para todos? stackoverflow.com/a/45006231/1778421
Alex P.
@AlexP. gracias no sabía sobre ese método. ¿Alguna idea de por qué la guía oficial no lo recomienda?
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
Debido a la pereza y la inercia del conocimiento en su mayoría. Los desarrolladores originales de Android usaron dispositivos con la misma ID de proveedor, por lo que adoptaron el enfoque más fácil que se les ocurrió. Cuando más proveedores crearon más dispositivos, los desarrolladores seguían agregando más ID al archivo de reglas.
Alex P.
2
  1. Siga las instrucciones en http://developer.android.com/guide/developing/device.html (Enlace archivado)
  2. Sustituir el ID del proveedor de 0bb4la 18d1de/etc/udev/rules.d/51-android.rules

    O agregue otra línea que lea:

    SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"
  3. Reinicie la computadora o simplemente reinicie el servicio udev.
krishnendu
fuente
1

Cuando reinicie udev, elimine el servidor adb e inicie el servidor adb vaya a la ruta de instalación de android sdk y haga todo en sudo. luego ejecute dispositivos adb resolverá el problema de permisos.

Chinthaka Senanayaka
fuente
1

Mi dispositivo es POSITIVO y mi sistema operativo es Ubuntu 14.04 LTS Entonces, mi problema estaba en el nombre de la variable

Creo el archivo /etc/udev/rules.d/51-android.rules y pongo SUBSYSTEM=="usb", SYSFS{idVendor}=="1662", MODE="0666"

Desconecté el dispositivo y ejecuté:

$ sudo udevadm control --reload-rules
$ sudo service udev restart

después de esto, conecté el dispositivo Android en modo desarrollador nuevamente y

$ adb devices

List of devices attached 
1A883XB1K   device
luciana
fuente
1

Sin desconectar

Todas las respuestas proporcionadas suponen que puede desconectar y volver a conectar el cable USB. En situaciones en las que esto no es posible (por ejemplo, cuando está alejado), puede hacer lo siguiente para hacer esencialmente lo que las reglas udev sugeridas harían al volver a enchufar:

lsusb

Encuentre el dispositivo que le interesa, por ejemplo:

Bus 003 Device 005: ID 18d1:4ee4 Google Inc. Nexus

Tome nota del número de bus en el que se encuentra y luego ejecute, por ejemplo, para bus 003:

sudo chmod a+w /dev/bus/usb/003/*

Claramente, esto puede ser más permisivo de lo que deseas (puede haber más dispositivos conectados que solo este), pero entiendes la idea.

Christian Fritz
fuente
para aplicar la nueva udevregla sin volver a conectar el dispositivo, solo use el udevadm trigger --verbose --action=add --subsystem-match=usbcomando.
Alex P.
1

NO debe ejecutar el adbservidor como root como sugieren otras respuestas. En cambio, si está utilizando Arch Linux, haga lo siguiente:

  1. Instala el android-udev paquete con Pacman
  2. Actualizar las reglas de udev:

    # udevadm control --reload-rules
  3. Agréguese al adbusersgrupo y luego cierre sesión e inicie sesión:

    # usermod -aG adbusers $LOGNAME

Fuente: https://wiki.archlinux.org/index.php/android#Configuring_adb

Babken Vardanyan
fuente
0

Pruebe en lugar de GROUP="plugdev"usar el grupo principal de su usuario.

Yury
fuente
Estoy usando mi nombre de usuario, no ayuda
Leem.fin
0

En mi caso en ubuntu 12.04 LTS, tuve que cambiar mi modo usb HTC Incredible de carga a medios y luego el dispositivo apareció bajo adb. Por supuesto, la depuración ya estaba activada en ambos casos.

Alan
fuente
0

Por favor, no sigue las soluciones que sugieren que el usosudo ( sudo adb start-server)! ¡Esto ejecuta adb como root (administrador) y NO se supone que debe ejecutarse así! Es una solución MALA !

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 lo use root. De nuevo, ¡NO!

Lo correcto es configurar su sistema para que el USUARIO tenga permiso, consulte esta guía que escribí sobre cómo hacerlo correctamente.

Daniele Segato
fuente
0

Tuve el mismo problema y seguí estos pasos:

# Clone this repository
git clone https://github.com/M0Rf30/android-udev-rules.git
cd android-udev-rules
# Copy rules file
sudo cp -v 51-android.rules /etc/udev/rules.d/51-android.rules
# OR create a sym-link to the rules file - choose this option if you'd like to update your udev rules using git.
sudo ln -sf "$PWD"/51-android.rules /etc/udev/rules.d/51-android.rules
# Change file permissions
sudo chmod a+r /etc/udev/rules.d/51-android.rules
# If adbusers group already exists remove old adbusers group
groupdel adbusers
# add the adbusers group if it's doesn't already exist
sudo mkdir -p /usr/lib/sysusers.d/ && sudo cp android-udev.conf /usr/lib/sysusers.d/
sudo systemd-sysusers # (1)
# OR on Fedora:
groupadd adbusers
# Add your user to the adbusers group
sudo usermod -a -G adbusers $(whoami)
# Restart UDEV
sudo udevadm control --reload-rules
sudo service udev restart
# OR on Fedora:
sudo systemctl restart systemd-udevd.service
# Restart the ADB server
adb kill-server
# Replug your Android device and verify that USB debugging is enabled in developer options
adb devices
# You should now see your device

Los pasos anteriores se describen en android-udev-rules . Funcionó para mi.

Solo asegúrese de confirmar el cuadro de diálogo que aparecerá en la pantalla de su teléfono después de volver a conectarlo.

leosbrf
fuente
0
sudo usermod -aG plugdev $LOGNAME

Este comando me funcionó

Fayaz
fuente
-1

Solía ​​su y comenzó a funcionar. Cuando uso Jetbrains con un usuario normal, veo este problema, pero después de reiniciar Jetbrains en modo su, puedo ver mi dispositivo sin hacer nada.

Estoy usando Ubuntu 13.04 y Jetbrains 12.1.4

Deepti Kohli
fuente
-1

También puede intentar editar el archivo adb_usb.ini , ubicado en /home/username/.android/ . Este archivo contiene la lista de proveedores de id de los dispositivos que desea conectar. Simplemente agregue el proveedor de identificación de su dispositivo en una nueva línea (es una identificación por línea). Luego reinicie el servidor adb y vuelva a conectar su dispositivo.

Funcionó para mí en Ubuntu 12.10.

10101101
fuente
-1

De todos modos, lo que hice para resolver este problema (en Ubuntu ).

  1. Definido en qué casos necesito ejecutar estos comandos. Para la mayoría de los usuarios de ubuntu hay una carpeta de inicio (archivo oculto .bashrc).

    En el que puede grabar el lanzamiento de estos comandos. Pero estos comandos se activarán cuando ingrese el bashcomando en la consola.

  2. Como tengo un shell .zshrc, hice lo siguiente:

    consola abierta: gedit .zshrc

Cuando se abra el archivo, agregue la siguiente línea:

./.add_device_permissions.sh

Después o antes, necesitamos crear este archivo: .add_device_permissions.shen el que escribimos lo siguiente:

#!/bin/bash
# Add permissions
ADB="/home/vadimm/Android/Sdk/platform-tools/adb"
$ADB devices
$ADB kill-server
cat .permissions_redmi_note | sudo -S $ADB devices
$ADB kill-server
cat .permissions_redmi_note | sudo -S $ADB devices

También necesitamos crear .permissions_redmi_note donde necesitamos codificar nuestra contraseña.

  1. Para no agregar al archivo .zshrcinnecesario, podemos especificar la ruta al iniciar el sistema:Startup Applications Preferences

Donde presionamos "Agregar" y escribimos nuestro comando: /home/vadimm/.add_device_permissions.sh

  1. También puede intentar usar en la línea de comandos los siguientes comandos: ./adb devices ./adb kill-server sudo ./adb devices ./adb kill-server ./adb devices
Morozov
fuente
-2

Si alguien enfrenta el siguiente mensaje de error cuando usa adb devices

no permissions (verify udev rules); see [http://developer.android.com/tools/device.html]

Ejecute lo siguiente

sudo -s 
adb kill-server
adb start-server

Eso solucionó el problema para mí en un dispositivo Android de compilación personalizada

Ismail Iqbal
fuente