Ответ 1
Эмулятор Android основан на QEMU. Даже если версия эмулятора настолько древняя, кажется, есть поддержка для передачи USB-устройств с хоста. По-видимому, он не доступен для устройств ARM, но на эмулированной машине ARM нет контроллера USB. (Я уже попробовал включить все USB-контроллеры хоста для ядра goldfish_armv7 на базе Linux 3.4 без ведома. Ядро goldfish_armv7 по умолчанию для эмулятора даже не поддерживает Host USB.)
Если вы не ограничены ARM и можете использовать x86, я предлагаю проверить http://www.android-x86.org/, его изображения можно использовать с стандартный QEMU i386 (или x86_64). Это также дает лучшую производительность с использованием расширения KVM на Linux.
Чтобы перейти через USB-устройство с идентификатором поставщика 1234 и идентификатором устройства abcd, вы можете запустить команду эмулятора:
emulator -avd x86-machine -qemu -usb -usbdevice host:1234:abcd
Или, используя QEMU:
qemu-system-i386 -m 1G -cdrom android-x86.iso -usb -usbdevice host:1234:abcd
Вам потребуются разрешения на чтение и запись для /dev/bus/usb/XXX/YYY
, для чего вы можете создать правило udev, например:
SUBSYSTEM!="usb", GOTO="end_skip_usb"
ATTRS{idVendor}=="1234", ATTRS{idProduct}=="abcd", TAG+="uaccess"
LABEL="end_skip_usb"
Теперь, после установки USB-устройства, ваш эмулятор должен распознать USB-устройство. Это проверено на установку Linux с изображением Android x86 4.3.