varios usar studio riesgosos puedo permisos pedir para multiples dar camara aplicaciones administrador android linux ubuntu adb fastboot

riesgosos - permisos para usar camara android studio



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

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 de teléfono Samsung, así que realicé los siguientes pasos de configuración:

  1. en el archivo AndroidManifest.xml mi proyecto, se agregó android:debuggable="true" al elemento <application>

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

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

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

    SUBSYSTEM=="usb", ATTR{idVendor}=="04E8", MODE="0666", GROUP="plugdev"

  5. En mi computadora, ejecute el comando chmod a+r /etc/udev/rules.d/51-android.rules

Luego, en mi computadora abrí una terminal y adb devices comando adb devices , obtuve:

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

Ya que no vi mi dispositivo pero solo ???????????? no permissions ???????????? no permissions , luego ejecuto los siguientes comandos:

adb kill-server adb start-server adb devices

Pero todavía tengo:

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

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


Sin desconectar

Todas las respuestas proporcionadas asumen que usted puede desconectar y volver a conectar el cable USB. En situaciones donde esto no es posible (por ejemplo, cuando está alejado), puede hacer lo siguiente para hacer esencialmente lo que harían las reglas sugeridas de udev 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 está encendido y luego ejecútelo, por ejemplo, para el bus 003 :

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

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


  1. Siga las instrucciones en http://developer.android.com/guide/developing/device.html
  2. Reemplace el ID de proveedor de "0bb4" con "18d1" en /etc/udev/rules.d/51-android.rules. O agregue otra línea que diga: SUBSYSTEM == "usb", SYSFS {idVendor} == "18d1", MODE = "0666"
  3. reinicie la computadora o simplemente reinicie el servicio udev.

Cuando reinicie udev, elimine el servidor adb e inicie el servidor adb para ir a la ruta de instalación de Android sdk y haga todo en sudo. A continuación, ejecute dispositivos ADB que resolverá el problema de permisos.


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 la que puedes grabar el lanzamiento de estos comandos. Pero estos comandos se activarán cuando bash comando bash 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.sh en 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 .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

  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

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

$ sudo -s # adb kill-server # adb start-server


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


Hay muchas respuestas incorrectas publicadas en esta pregunta que van desde insistir en ejecutar adb como root (que no debe considerarse como la única solución, ni siquiera la recomendada), a resolver problemas completamente no relacionados.

Aquí está la receta más corta y universal para cuidar de todos los dispositivos adb y fastboot 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ías usar una versión un poco más larga que publiqué en esta lista.

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

Además, OP no dijo qué compilación de Android (también conocida como ROM) tenía en su teléfono. El valor de idVendor se establece en el software y, por lo tanto, depende de la ROM. Por lo tanto, el valor de 04E8 que usó en su regla original habría funcionado solo para dispositivos con stock ROM de Samsung. Pero esto no es un problema para esta regla de udev : coincide con todos los dispositivos con interfaces adb o fastboot , independientemente de su fastboot .


Ingrese los siguientes comandos:

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

El problema es que tu servidor adb no se ejecuta como root.


Intenté todo lo anterior, ninguno funcionó ... finalmente funcionó cuando cambié la conexión desde MTP a la cámara (PTP).


Lo que me funciona es matar e iniciar de nuevo el servidor adb. En linux: sudo adb kill-server y luego sudo adb start-server . Entonces detectará casi todos los dispositivos de la caja.


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

Creo el archivo /etc/udev/rules.d/51-android.rules y coloco 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 de nuevo y

$ adb devices List of devices attached 1A883XB1K device


NO debe adb servidor adb como root, como sugieren otras respuestas. En su lugar, si está utilizando Arch Linux, haga lo siguiente:

  1. Instale el paquete android-udev con Pacman
  2. Recargar las reglas de udev:

    # udevadm control --reload-rules

  3. adbusers grupo de adbusers y luego cierre la sesión e inicie sesión:

    # usermod -aG adbusers $LOGNAME

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


Nada me funcionó 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 los siguientes contenidos (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"

Ejecuta 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 devices para confirmar que ahora tiene permiso para acceder al teléfono.

Tenga en cuenta que es posible utilizar , USER="$LOGINNAME" lugar de , MODE="0666" en el archivo .rules , sustituyendo a $LOGINNAME por su nombre de inicio de sesión, es decir, qué id -nu imprime.

En algunos casos, puede ser necesario z51-android.rules un nombre al archivo de reglas de udev que esté cerca del final, como z51-android.rules .


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 here . Poniendo el mismo aquí para referencia.

Editar 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 cambia el modo a 0666 como abajo

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

Esto permite que ADB funcione, sin embargo, todavía necesitamos configurar el dispositivo para que pueda ser reconocido. Necesitamos crear este archivo como superusuario,

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

y entrar

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

la línea anterior es para HTC, sigue 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 debe detectarse cuando compila y ejecuta un proyecto.


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


Sé que esto puede 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 ADB de Android en Ubuntu 14.04 LTS

Editado para agregar contenido de enlace

Pasos

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

Abra el 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 este 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 )

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

Nota Edite los valores de idVendor y idProduct 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 - otorgar permiso de lectura / ejecución
sudo service udev restart - reinicia el servicio udev

Ahora tenemos que agregar el idVendor a 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 (valor idVendor ). Así que reemplace el valor con. respecto al valor de su dispositivo Guarde y cierre el archivo.

Ahora ingrese el siguiente comando:
sudo service udev restart

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

¡Ahí tienes! Su dispositivo debe estar listado.

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

Trabajó para mi.


Si alguien se enfrenta al siguiente mensaje de error cuando usa adb devices

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

Ejecuta lo siguiente

sudo -s adb kill-server adb start-server

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


También puede intentar editar el archivo adb_usb.ini , ubicado en /home/username/.android/ . Este archivo contiene la lista de proveedores de identificación 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.

Me funcionó en Ubuntu 12.10.


Tuve el mismo problema con mi Galaxy S3. Mi problema fue que el valor 04E8 no era el correcto. Para encontrar el correcto, conecte su teléfono inteligente a la computadora y ejecute lsusb en la terminal. Listará su teléfono inteligente de esta manera:

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

Así que el valor idVendor correcto es 18d1 . Y la línea en el /etc/udev/rules.d/51-android.rules tiene que ser:

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

Luego ejecuto sudo udevadm control --reload-rules y ¡todo funcionó!


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

  1. Escriba "su" para cambiar a superusuario.
  2. su-ruta / adb kill-server.
  3. su-ruta / 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 puedes realizar "dispositivos adb" en tu cuenta.

Disfrutar.


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

Estoy usando Ubuntu 13.04 y Jetbrains 12.1.4


¡NO siga las soluciones que sugieran utilizar sudo ( sudo adb start-server )! ¡Esto ejecuta adb como root (administrador) y NO se supone que se ejecute así! ¡Es una mala solución !

Todo lo que se ejecute como root puede hacer cualquier cosa en su sistema, si crea o modifica un archivo puede cambiar su permiso para que solo lo use el root. Una vez más, ¡NO!

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