so I learned two things with usb on virtualbox (OS X):
-
- it sucks, 2) it sucks less if you enable the extension pack for ehci:
- w/ out ehci I could not install a 28 MB APK from within boot2docker. maybe if I was willing to wait long enough but AFAICT it would not complete.
± % docker run --privileged -v=/dev/bus/usb:/dev/bus/usb --rm -t -i -v pwd:/provision analysis /bin/bash
- w/out EHCI
root@ff7ef3c21f64:/provision/device_provision# dd if=/dev/urandom of=rand bs=1M count=1
± %
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.0547376 s, 19.2 MB/s
root@ff7ef3c21f64:/provision/device_provision# adb push rand /sdcard/
76 KB/s (1048576 bytes in 13.453s)
- w/ ehci USB 2.0 extension pack:
root@4b8897324ec4:/provision/device_provision# adb push rand /sdcard/
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
514 KB/s (1048576 bytes in 1.990s)
- w/ ehci enabled the gms apk will now install:
root@4b8897324ec4:/provision/device_provision# adb install -r com.google.android.gms-6.7.74_1723905-036-6774036-minAPI9.apk
534 KB/s (29280700 bytes in 53.525s)
pkg: /data/local/tmp/com.google.android.gms-6.7.74_1723905-036-6774036-minAPI9.apk
Success
w/ out ehci I could not install a 28 MB APK from within boot2docker. maybe if I was willing to wait long enough but AFAICT it would not complete.
In my experience with Linux host and VMware, you must have usb2 support or else "adb push" just hangs. The "adb install" uses "adb push" internally. So neither command works without usb2 enabled.