ADB en Ubuntu no reconoce Nexus 4

8

No puedo hacer que ADB reconozca mi teléfono Nexus 4 en Ubuntu (12.04 con un kernel más nuevo instalado: 3.8.0-30-generic). El modo desarrollador está habilitado en el teléfono.

El dispositivo aparece en lsusb :

$ lsusb
...
Bus 003 Dispositivo 034: ID 18d1: 4ee5 Google Inc. 
...

Pero cuando ejecuto dispositivos adb obtengo una lista vacía. Encontré muchas publicaciones en Internet sobre este problema, pero ninguna de ellas resuelve el problema. Hay dos soluciones

  • Agregue una regla a /etc/udev/rules.d/51-android.rules . Encontré varias variaciones para el contenido de este archivo. En la mayoría de los casos, un valor idVendor e idProduct debe establecerse en función de la salida de lsusb . A continuación hay algunos ejemplos que probé
SUBSISTEMA == "usb", ATTRS {idVendor} == "18d1", ATTRS {idProduct} == "4ee5", MODE = "0666" GROUP = "androiddev", SYMLINK + = "android% n"
SUBSISTEMA == "usb", ATTR {idVendor} == "18d1", MODE = "0666", GROUP = "plugdev"
SUBSISTEMA == "usb", ATTRS {idVendor} == "18d1", SYMLINK + = "android_adb", MODE = "0666"
SUBSISTEMA == "usb", ATTR {idVendor} == "18d1", ATTR {idProduct} == "4ee5", MODE = "0666", OWNER = "my-login" 

Después de agregar esto, configuré los permisos para el archivo de reglas en 644 y reinicié PC / reinicié udev, reinicié el teléfono y conecté mi Nexus 4.

  • Agregue la identificación del proveedor a ~ / .android / adb_usb.ini.
echo 0x18d1 >> ~ / .android / adb_usb.ini

Corrí adb dispositivos como raíz y el usuario normal, pero solo me dan una lista vacía:

$ dispositivos adb
* Daemon no se está ejecutando. comenzando ahora en el puerto 5037 *
* daemon comenzó con éxito *
Lista de dispositivos conectados 

¿Alguna idea sobre cómo resolver este problema? Cualquier ayuda de sugerencias sería muy apreciada.

Lespaul86
fuente

Respuestas:

7

No es suficiente hacer que la página de opciones del desarrollador aparezca en el menú de configuración (tocando repetidamente el número de compilación). En esa página, hay una opción de depuración USB , que por defecto está desactivada.

Cuando la depuración USB está habilitada, al conectar su dispositivo a una PC mediante USB, aparece la notificación "USB depuración conectada", independientemente de si adbse está ejecutando actualmente en la PC.

Dan Hulme
fuente
¿Podría por favor detallar su respuesta? ¿Dónde puede encontrar esta "página"?
Luís de Sousa
@ LuísdeSousa android.stackexchange.com/q/33496/12442
Dan Hulme
Estoy intentando conectar adbporque la pantalla táctil está rota. No tengo medios para acceder a ninguno de sus menús y aplicaciones. ¿Habría alguna otra forma de activar esta función de depuración USB?
Luís de Sousa
1

Para obtener un conjunto de instrucciones más completo sobre cómo configurar las reglas de Nexus 4 udev en ubuntu configurado, siga estas instrucciones:

Cómo encontrar su ID de proveedor de dispositivo

Puede encontrar una ID de proveedor para dispositivos conectados por USB con el siguiente comando de Linux:

lsusb

Esto generará una lista de todos los dispositivos USB conectados, así que asegúrese de que su dispositivo esté conectado antes de hacerlo.

Bus 001 Device 004: ID 18d1:4ee2 Google Inc.

La primera parte del campo después de la ID es la ID del proveedor (18d1) y la segunda parte corresponde al modo en el que está conectado el dispositivo. En este caso, 4ee2 equivale al modo MTP con la depuración activada.

CREAR REGLA UDEV PARA NEXUS 4

Para poder detectar el teléfono Nexus 4 en Ubuntu, lo primero es crear las reglas udev adecuadas que permitirán que el sistema detecte el teléfono.

Estas reglas de udev deberían poder manejar 4 casos diferentes:

  • teléfono conectado en modo MTP (depuración USB activada o desactivada)
  • teléfono conectado en modo PTP (depuración USB activada o desactivada)
  • teléfono conectado en modo Fastboot
  • teléfono conectado en modo de recuperación

Serán declarados en /etc/udev/rules.d/99-android.rules. Si el archivo ya existe, solo agregue el contenido al final.

# sudo gedit /etc/udev/rules.d/99-android.rules

A continuación se debe agregar el contenido. Asegúrese de reemplazar el campo de inicio de sesión con su nombre de usuario adecuado con el que inició sesión.

# Google Nexus 4 16 Gb
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee1", MODE="0666", OWNER="your-login" # MTP media (multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0666", OWNER="your-login" # MTP media with USB debug on(multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee5", MODE="0666", OWNER="your-login" # PTP media (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee6", MODE="0666", OWNER="your-login" # PTP media with USB debug on (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0666", OWNER="your-login" # Bootloader
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0666", OWNER="your-login" # Recovery

Reiniciar servicios

Una vez hecho esto, el servicio udev debe reiniciarse.

# sudo service udev restart

Tenga en cuenta que en algunos casos también es necesario reiniciar adb con:

adb kill-server
adb start-server

O reinicie completamente el sistema con:

sudo reboot -n

Volver a conectar el cable USB (en lugar de reiniciar) también podría funcionar.

Autorizar conexión ADB

Si acaba de habilitar la opción de depuración ADB en su teléfono y creó esta nueva conexión, el comando ADB podría enumerar su dispositivo como unauthorized. Simplemente verifique la pantalla de su teléfono para autorizar la nueva conexión.

Créditos

La mayor parte de esta información se encontró en http://bernaerts.dyndns.org/android/267-android-nexus4-root-twrp-ubuntu . Esta es una guía de rooteo para nexus 4 en ubuntu. Solo utilicé el primer paso de esta guía.

hcpl
fuente
Acabo de probar esta solución de Ubuntu 14.04 e incluso después de reiniciar el sistema, el Nexus 4 no es reconocido.
Luís de Sousa
¿Intentaste iniciar adb con permisos de root? Vea una de las otras respuestas sobre Ubuntu 14.04 + ¿comprobó el modo de conexión USB en el dispositivo?
hcpl
Sí, lo probé con sudo. El teléfono se conecta en modo MTP con la depuración desactivada.
Luís de Sousa
1

Estoy ejecutando Ubuntu 14.04 LTS y descubrí que tengo que ejecutar adb con permisos de root para detectar mi teléfono. Justo ahora corrí (desde el directorio de herramientas de plataforma) ./adb devicesy se me ocurrió una lista vacía. Reinicié adb como root ejecutando ./adb kill-servery luego sudo ./adb start-server. Ahora adb devicesvuelve:

List of devices attached 
01d17087d29dec60    device

Mientras que antes se veía así:

Lista de dispositivos conectados

la.laurence
fuente
matar, luego comenzar como root funcionó para mí. Usando un Nexus 5
Russ Wheeler
1
Acabo de probar esta solución en Ubuntu 14.04 y todavía obtengo una lista de dispositivos vacía.
Luís de Sousa
0

FYI: Recientemente actualicé la versión de Android de 4.4 a 5.0 en mi teléfono y ADB ya no mostraría el dispositivo como conectado. Parece que el método de conexión USB MTP era correcto antes de que ahora tenga que ser PTP .

Flowtron
fuente
¿Podría por favor detallar su respuesta? ¿Dónde exactamente se debe ajustar este método?
Luís de Sousa
Como dije, MTP era correcto ANTES, DESPUÉS de que la actualización PTP fuera correcta.
flowtron