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:
en mi
AndroidManifest.xml
archivo de proyecto , agregadoandroid:debuggable="true"
al<application>
elementoEn el dispositivo, en Configuración> Seguridad habilitada Fuentes desconocidas
En el dispositivo, en Configuración> Opciones de desarrollador habilitó la depuración de USB
En mi computadora, creé el
/etc/udev/rules.d/51-android.rules
archivo con el siguiente contenido:SUBSYSTEM=="usb", ATTR{idVendor}=="04E8", MODE="0666", GROUP="plugdev"
En mi computadora, ejecuta el
chmod a+r /etc/udev/rules.d/51-android.rules
comando
Luego, en mi computadora abrí una terminal y ejecuté el adb devices
comando, 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?
plugdev
grupo.Respuestas:
Lo que funciona para mí es matar e iniciar el servidor adb nuevamente. En Linux:
sudo adb kill-server
y luegosudo adb start-server
. Luego detectará casi todos los dispositivos fuera de la caja.fuente
-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 ...adb kill-server
sudo adb start-server
verificar:adb devices
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):
Ejecute los siguientes comandos:
Desconecte el cable USB entre el teléfono y la computadora.
Vuelva a conectar el teléfono.
Ejecute
adb devices
para 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.rules
archivo, sustituyendo$LOGINNAME
su nombre de usuario, es decir, lo que seid -nu
imprime.En algunos casos, puede ser necesario asignar al archivo de reglas udev un nombre que se acerque al final, como
z51-android.rules
.fuente
70-android.rules
según esta publicación: esausilva.com/2010/05/13/… . También felicitaciones por informarnos que debe reiniciarudev
y eliminar todos los procesos de adb. ¡Trabajado como un encanto!sudo udevadm control --reload-rules
para actualizar las reglas de udev si reiniciar el servidor no es suficiente.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.
fuente
Intenté todo lo anterior, ninguno funcionó ... finalmente funcionó cuando cambié conectado de MTP a Cámara (PTP).
fuente
Hay muchas respuestas negativas publicadas a esta pregunta que van desde insistir en ejecutarse
adb
comoroot
(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
adb
y losfastboot
dispositivos a la vez: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
udev
reglas después de editar el.rules
archivo.Además, OP no dijo qué versión de Android (también conocida como ROM) tenía en su teléfono. El
idVendor
valor se establece en el software y, por lo tanto, depende de la ROM. Por lo tanto, el valor04E8
que utilizó en su regla original habría funcionado solo para dispositivos con ROM de stock de Samsung. Pero esto no es un problema para estaudev
regla: coincide con todos los dispositivosadb
ofastboot
interfaces, independientemente de su VendorID .fuente
En Archlinux esto puede suceder ocasionalmente. La solución:
fuente
sudo adb kill-server; sudo adb start-server
no funcionó, pero este sí.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
Encuentra el texto similar a este
Luego cambie el modo a 0666 como a continuación
Esto permite que adb funcione, sin embargo, aún necesitamos configurar el dispositivo para que pueda reconocerse. Necesitamos crear este archivo como superusuario,
y entra
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
Conecte el teléfono a través de USB y se debe detectar cuando compila y ejecuta un proyecto.
fuente
Tuve el mismo problema, la solución es como compañero: (por cierto, no tienes que rootear tu dispositivo).
Disfrutar.
fuente
su
, usesudo su
. Yo hice. Y también, si no sabe cómo abandonar al usuario, úseloexit
.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 esto
Bus 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
idVendor
yidProduct
valores 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ónsudo service udev restart
- Reinicie eludev
servicioAhora tenemos que agregar el
idVendor
aadb_usb.ini
. Ingrese los siguientes comandos:cd ~/.android
gedit adb_usb.ini
Agregue el siguiente valor
0x283b
Esto no es más que 0x (
idVendor
valor). 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.
fuente
Tuve el mismo problema con mi Galaxy S3. Mi problema fue que el
idVendor
valor04E8
no era el correcto. Para encontrar el correcto, conecte su teléfono inteligente a la computadora y ejecútelolsusb
en la terminal. Enumerará su teléfono inteligente de esta manera:Entonces el
idVendor
valor correcto es18d1
. Y la línea en el/etc/udev/rules.d/51-android.rules
tiene que ser:¡Entonces corrí
sudo udevadm control --reload-rules
y todo funcionó!fuente
ATTR{idVendor}=="18d1"
Utilice la
M0Rf30/android-udev-rules
comunidad GitHub mantenida udev-ruleshttps://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í.fuente
Sustituir el ID del proveedor de
0bb4
la18d1
de/etc/udev/rules.d/51-android.rules
O agregue otra línea que lea:
fuente
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.
fuente
Mi dispositivo es POSITIVO y mi sistema operativo es
Ubuntu 14.04 LTS
Entonces, mi problema estaba en el nombre de la variableCreo el archivo /etc/udev/rules.d/51-android.rules y pongo
SUBSYSTEM=="usb", SYSFS{idVendor}=="1662", MODE="0666"
Desconecté el dispositivo y ejecuté:
después de esto, conecté el dispositivo Android en modo desarrollador nuevamente y
fuente
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:
Encuentre el dispositivo que le interesa, por ejemplo:
Tome nota del número de bus en el que se encuentra y luego ejecute, por ejemplo, para bus
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.
fuente
udev
regla sin volver a conectar el dispositivo, solo use eludevadm trigger --verbose --action=add --subsystem-match=usb
comando.NO debe ejecutar el
adb
servidor como root como sugieren otras respuestas. En cambio, si está utilizando Arch Linux, haga lo siguiente:android-udev
paquete con PacmanActualizar las reglas de udev:
Agréguese al
adbusers
grupo y luego cierre sesión e inicie sesión:Fuente: https://wiki.archlinux.org/index.php/android#Configuring_adb
fuente
Pruebe en lugar de
GROUP="plugdev"
usar el grupo principal de su usuario.fuente
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.
fuente
Por favor, no sigue las soluciones que sugieren que el uso
sudo
(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.
fuente
Tuve el mismo problema y seguí estos pasos:
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.
fuente
Este comando me funcionó
fuente
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
fuente
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.
fuente
De todos modos, lo que hice para resolver este problema (en Ubuntu ).
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
bash
comando en la consola.Como tengo un shell .zshrc, hice lo siguiente:
consola abierta:
gedit .zshrc
Cuando se abra el archivo, agregue la siguiente línea:
Después o antes, necesitamos crear este archivo:
.add_device_permissions.sh
en el que escribimos lo siguiente:También necesitamos crear .permissions_redmi_note donde necesitamos codificar nuestra contraseña.
.zshrc
innecesario, podemos especificar la ruta al iniciar el sistema:Startup Applications Preferences
Donde presionamos "Agregar" y escribimos nuestro comando:
/home/vadimm/.add_device_permissions.sh
./adb devices ./adb kill-server sudo ./adb devices ./adb kill-server ./adb devices
fuente
Si alguien enfrenta el siguiente mensaje de error cuando usa
adb devices
Ejecute lo siguiente
Eso solucionó el problema para mí en un dispositivo Android de compilación personalizada
fuente