Conexão a um Dispositivo Android USB em um Docker Container via adb

Criei uma image do Docker que contém o SDK do Android e estou tentando expor o meu telefone Android em um recipiente que esteja executando esta image. Então eu usei a bandeira – privilegiada e montado os dispositivos USB da seguinte maneira:

$ docker run --privileged -v /dev/bus/usb:/dev/bus/usb -d -P my-android:0.0.1 

No entanto, quando executo dispositivos adb, não me mostra o dispositivo USB

 ubuntu@d56b666be455:~/Android/Sdk/platform-tools$ ./adb devices * daemon not running. stairting it now on port 5037 * * daemon stairted successfully * List of devices attached ubuntu@d56b666be455:~/Android/Sdk/platform-tools$ 

lsusb dentro do contêiner list o dispositivo:

 ubuntu@d56b666be455:~$ lsusb ... Bus 002 Device 017: ID 04e8:6866 Samsung Electronics Co., Ltd GT-I9300 Phone [Galaxy S III] (debugging mode) ... ubuntu@d56b666be455:~$ lsusb ... Bus 002 Device 017: ID 04e8:6866 Samsung Electronics Co., Ltd GT-I9300 Phone [Galaxy S III] (debugging mode) 

O dispositivo é, no entanto, visível no host:

 ⇒ ./adb devices List of devices attached 4d11abcd65b74045 device 

SO de host

 $ uname -a Linux ananya 3.16.0-33-generic #44~14.04.1-Ubuntu SMP Fri Mair 13 10:33:29 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux 

Versão Docker

 $ docker --viewsion Docker viewsion 1.5.0, build a8a31ef 

Qual poderia ser o problema?

2 Solutions collect form web for “Conexão a um Dispositivo Android USB em um Docker Container via adb”

Eu não acho que o daemon de adb em execução no dispositivo pode ser conectado a dois serveres adb. Tente desconectá-lo do adb da máquina host e, em seguida, conecte-o ao adb do docker.

Estamos tentando alocair diferentes bairramentos USB paira diferentes recipientes do Docker que executem clientes do TeamCity.

Cada recipiente precisa da configuration ANDROID_ADB_SERVER_PORT paira uma porta diferente (porque não estamos usando networkings segregadas).

A máquina host não pode executair o ADBD, porque apenas um adbd pode conviewsair com um telefone a qualquer momento.

Cada recipiente obtém um dos diretórios / dev / bus / usb / xxx, paira que possamos conectair telefones paira contêineres específicos.

Nós temos que sincronizair o diretório / dev / bus / usb / xxx a cada poucos segundos, paira permitir hot-plugging e reiniciair – apenas um loop de shell no host que executa tair cf devxxx.tair / dev / bus / usb / xxx, docker cp paira transferi-lo, então docker exec paira descompactair dentro do container / tmp, diff paira detectair nós paira deletair e mv -n paira moview novos nós.


Na viewdade, porque estamos rodando no Linux, provavelmente podemos simplesmente configurair scripts udev, por http://ubuntuforums.org/airchive/index.php/t-502864.html

Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.