El uso de ADB localmente en el dispositivo (loopback) no muestra ningún dispositivo

Estoy tratando de utilizar ADB en un dispositivo Android en sí, por lo que sin ningún ordenador host. Esto funcionaba perfectamente hace un par de días, pero de repente dejó de funcionar. Por lo que sé nada ha cambiado desde entonces (por ejemplo, no aplicaciones (un) instalado). Podría usar la adb backup -f /sdcard/backup.ab <package-name> en un emulador de terminal y empezaría a copiar ese paquete. Cuando lo intento ahora, devuelve adb: unable to connect for backup . Investigar utilizando adb devices devuelve una lista vacía. Nunca me molesté en comprobar los dispositivos anteriormente, simplemente fui directo a mi comando adb, porque todo estaba funcionando.

Esto fue en un HTC Desire con Android 4.4.2, ADB versión 1.0.31. El uso de ADB desde mi PC con este teléfono funciona perfectamente, pero esto no es lo que quiero.

Lo que he intentado

  • He intentado realizar las mismas acciones en diferentes dispositivos (Asus PadFone 2 en 4.4.2, Samsung Galaxy Nota GT-N7000 en 4.4.2, Sony Xperia S en 4.1.2.) Pero los adb devices devuelve una lista vacía en todos los ellos. Estoy empezando a preguntarme por qué esto ha funcionado en mi HTC Desire en el primer lugar.
  • Búsqueda de Google y desbordamiento de pila, pero la mayoría (si no todos) los resultados se refieren a un problema de controlador o cualquier otro problema que afecta a un equipo host.
  • adb kill-server + adb start-server alrededor de un centenar de veces, así como stop adbd + start adbd .
  • Activar y desactivar la "Depuración USB" en la configuración, así como revocar el acceso a los equipos previamente autorizados. (Sin embargo, en la situación de trabajo, nunca recibí ninguna confirmación de clave RSA.)
  • adb -a devices -> lista vacía.
  • adb usb -> error: device not found .
  • Intentar reiniciar adb (d) en modo TCP no tiene éxito (aunque esto no era necesario en la situación de trabajo). adb tcpip 5555 devuelve error: device not found .
  • getprop no devuelve ninguna entrada denominada service.adb.tcp.port y setprop service.adb.tcp.port 5555 falla silenciosamente. (Comprobar después usando getprop service.adb.tcp.port devuelve nada. ¿No necesita raíz?)
  • adb connect localhost devuelve unable to connect to localhost:5555 .
  • Cuando el demonio se inicia, se inicia en el puerto 5038 (cuando se utiliza ADB desde mi PC se inicia en 5037). adb connect localhost:5038 devuelve connected to localhost:5038 . Sin embargo, los adb devices devuelven una lista vacía, y la adb backup adb: unable to connect for backup devuelve adb: unable to connect for backup . Además, el adb shell devuelve un error: device not found y el adb get-state unknown . Así que tampoco hay éxito aquí.
  • Encontrar mi ip local usando getprop dhcp.wlan0.ipaddress (devuelve 192.168.1.xx) y luego adb connect 192.168.1.xx devuelve unable to connect to :5555 . adb connect 192.168.1.xx:5038 -> unable to connect to :5038 . El uso de ADBHOST=192.168.1.xx adb start-server no tiene ningún efecto sobre estos resultados.
  • Uno de los pocos resultados de búsqueda que en realidad era algo relevante es este hilo en el AOSP Issue Tracker. Sin embargo, describe un problema en el que, después de usar setprop service.adb.tcp.port 5555 , los adb devices por lo menos muestran un dispositivo, sin embargo offline (es decir, localhost:5555 offline ). Algo cerca del final del hilo se alcanza una solución, lo que implica cambiar el directorio $ HOME para cambiar donde se guardan las claves RSA, por ejemplo, HOME=/sdcard . Entonces es necesario agregar la clave pública a / data / misc / adb / adb_keys usando cat /sdcard/.android/adbkey.pub >> /data/misc/adb/adb_keys . Sin embargo, supongo que esto necesita raíz? Además, todo esto no era necesario en la situación de trabajo, así que dudo que la solución a mi problema se encuentre en esta dirección. Este artículo , derivado del hilo conductor de AOSP Issue Tracker, no habla de añadir la clave pública. Sin embargo, el enfoque mencionado no tiene éxito.
  • netstat devuelve (entre otros):

    • Proto: tcp
    • Recv-Q: 0
    • Send-Q: 0
    • Local Address: 127.0.0.1:5038
    • Foreign Address: 0.0.0.0:*
    • State: LISTEN
  • ps muestra un proceso /sbin/adbd así como un proceso adb :

    • USER: shell PID: 92 PPID: 1 VSIZE: 3624 RSS: 264 WCHAN: ffffffff PC: 00000000 S NOMBRE: / sbin / adbd
    • USER: u0_a57 PID: 9754 PPID: 1 VSIZE: 3016 RSS: 988 WCHAN: ffffffff PC: 4014f768 S NOMBRE: adb
    • (Los comandos ejecutados desde el terminal se ejecutan como USER: u0_a57.)

Supongo que eso es más o menos.

Estoy buscando una solución donde no se necesita una raíz, ya que no era necesario cuando tenía que trabajar antes. Espero que mi situación y mi pregunta sean claras. Por favor, hágamelo saber si mi pregunta necesita mejorar, ya que esta es la primera vez que publico en Stack Overflow. Espero que alguien me ayude con esto. ¡Gracias por adelantado!

One Solution collect form web for “El uso de ADB localmente en el dispositivo (loopback) no muestra ningún dispositivo”

Creo que tu dispositivo podría haberse reiniciado. Para conseguir inicialmente su teléfono en tcp, usted debe haber funcionado adb tcpip 5555 de una computadora. Pero eso no dura para siempre. Si tu teléfono se reinicia, entonces tendrás que adb tcpip 5555 de adb tcpip 5555 desde una computadora de nuevo.

No estoy seguro de lo que querías decir cuando dijiste:

Intentar reiniciar adb (d) en modo TCP no tiene éxito (aunque esto no era necesario en la situación de trabajo). Adb tcpip 5555 devuelve error: dispositivo no encontrado.

¿Ejecutó eso desde una computadora? Si se trataba de una computadora, entonces no estoy seguro de cuál es el problema. Pero si fue desde el teléfono, entonces no puede encontrar el dispositivo para cambiar a tcp.

Para solucionar esto, adb tcpip 5555 de un equipo debería funcionar.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.