Saltar al contenido

Depuración USB de Android en VirtualBox

Contamos con el hallazgo a esta contrariedad, al menos eso pensamos. Si continuas con alguna inquietud dínoslo, que con placer te responderemos

Solución:

Brian, una solución alternativa que podría considerar es hacer que su host de VM también sea un host ADB. Luego, puede conectar su cliente VM a través de TCP / IP. Aquí está la idea general para esa configuración:

  1. Instale el SDK de Android en la máquina host. Solo debe requerir el paquete de herramientas de plataforma que incluye adb.
  2. No permita que su cliente VM tome posesión del dispositivo Android, así que deshabilite cualquier regla de filtro USB de VirtualBox que tenga y tampoco estaría de más desconectar y volver a conectar el dispositivo.
  3. Desde su cliente VM, ejecute adb kill-server. hazlo un tskill adb por certeza Si tiene instancias de Eclipse en ejecución, querrá cerrarlas primero porque en realidad se iniciará adb en el fondo. No te saltes este paso.
  4. Desde el host, ejecute adb devices. Si todo va bien (y debería), verá su dispositivo en la lista. Debería verse así (tenga en cuenta el número de puerto y perdón por la manipulación):

    * daemon not running. starting it now on port 5037 *
    * daemon started successfully *
    List of devices attached
    015d2994ed200409    device
    

En este punto, su host debería tener un servidor ADB ejecutándose en el puerto 5037. Puede verificar esto desde el cliente VM ejecutando telnet 10.0.2.2 5037donde 10.0.2.2 es la IP predeterminada para los hosts de VirtualBox y 5037 es el puerto ADB predeterminado mencionado anteriormente.

  1. Ahora debe reenviar los puertos de su host a su cliente VM o, de lo contrario, conectar ADB directamente a su host IP: puerto. Si es como yo, encontrará que las variables ADBHOST y ANDROID_ADB_SERVER_PORT están mal documentadas y son fáciles de estropear. Por esta razón, considere el reenvío de puertos simple sobre ssh (tal vez a través de Cygwin) así desde el cliente VM:

    autossh -nNL5037:localhost:5037 -oExitOnForwardFailure=yes 10.0.2.2
    
  2. Finalmente, ejecuta adb devices desde su cliente VM. Si ve “el demonio no se está ejecutando”, significa que su reenvío de puertos está jodido. De lo contrario, debería ver su dispositivo y poder hacer logcat todo el día. Un punto digno de mención es que usted no tendrá un adb daemon que se ejecuta en su cliente VM, excepto cuando en realidad está usando el puente de depuración, por supuesto.

Usé un mecanismo similar para depurar dispositivos a través de la red que están conectados a máquinas remotas y funcionó bien.

No estoy seguro de qué ha cambiado en VirtualBox desde que se publicó la pregunta, pero seleccionando el dispositivo USB del menú de VirtualBox Dispositivos -> USB -> Nombre del dispositivo funcionó a la perfección. Estoy trabajando en VirtualBox 5.1.2 r108956.

También estaba teniendo problemas con ADB ejecutándose sobre VM. Tenía un host de Windows 10 y un cliente de Ubuntu 14.04. Él autossh el metodo no me funciono. Encontré una solución más fácil de otra pregunta de StackOverflow. Requiere que tanto su PC como su dispositivo estén en la misma red WiFi.

  1. En su cliente VM, ejecute lo siguiente: adb tcpip 5555

    El dispositivo se desconectará de la VM porque ADB ahora está en modo TCP en lugar de USB.

  2. Para la siguiente parte, necesita la dirección IP de su dispositivo. Para encontrarlo, simplemente ejecute adb shell ip -f inet addr show wlan0

  3. Ahora puede conectarse a su dispositivo. En su cliente VM, ejecute:

    adb connect :5555

¡Desde aquí, todas mis sesiones de adb shell, logcat y monkey se ejecutaron sin interrupción!

Recuerda que tienes la capacidad de glosar si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *