L'emulatore di Android è basato su QEMU . Anche se la versione dell'emulatore è così antica, sembra che ci sia il supporto per passare i dispositivi USB dall'host. Tuttavia, non sembra disponibile per i dispositivi ARM, la macchina ARM emulata non ha un controller USB. (Ho già provato a abilitare tutti i controller host USB per il kernel goldfish_armv7 basato su Linux 3.4, senza fortuna.Il kernel dell'emulatore goldfish_armv7 non ha nemmeno USB Host abilitato.)
Se non sei limitato ad ARM e puoi usare x86, quindi suggerisco di controllare http://www.android-x86.org/, le sue immagini possono essere utilizzate con una macchina standard i386 (o x86_64) QEMU. Ciò offre anche prestazioni migliori utilizzando l'estensione KVM su Linux.
Per passthrough un dispositivo USB con dei vendor ID 1234 ID e dispositivo abcd, è possibile eseguire il comando dell'emulatore:
emulator -avd x86-machine -qemu -usb -usbdevice host:1234:abcd
Oppure, quando si utilizza QEMU:
qemu-system-i386 -m 1G -cdrom android-x86.iso -usb -usbdevice host:1234:abcd
Avrai bisogno delle autorizzazioni di lettura/scrittura per /dev/bus/usb/XXX/YYY
, per questo puoi creare una regola udev come:
SUBSYSTEM!="usb", GOTO="end_skip_usb"
ATTRS{idVendor}=="1234", ATTRS{idProduct}=="abcd", TAG+="uaccess"
LABEL="end_skip_usb"
Ora, al momento dell'inserimento del dispositivo USB, l'emulatore dovrebbe riconoscere un dispositivo USB. Questo è testato per un'installazione Linux con Android x86 4.3 immagine.
Ovviamente è possibile. – rolls