【问题标题】:Connect USB device to Android Emulator?将 USB 设备连接到 Android 模拟器?
【发布时间】:2011-12-14 01:46:59
【问题描述】:

我们一直在研究 Android 3.1+ 及其读取/写入连接到 OTG/主机端口的 USB 设备的能力。

我找到了一些代码示例,可让我检测和读取/写入 USB HID 设备,但目前,我根本没有可部署和远程调试的物理 3.1+ 兼容设备。

有谁知道我可以如何通过 PC/Eclipse 将我的 HID 设备连接到模拟器,以便应用程序可以检测设备并读取/写入设备?

我已经尝试列出当前连接的 USB 设备,但它没有显示,正如您无疑猜到的那样。

有什么想法吗?

干杯

【问题讨论】:

    标签: android android-emulator usb android-3.0-honeycomb


    【解决方案1】:

    Android 模拟器基于 QEMU。即使模拟器版本如此古老,似乎也支持从主机传递 USB 设备。不过,它似乎不适用于 ARM 设备,模拟的 ARM 机器没有 USB 控制器。 (我已经尝试为基于 Linux 3.4 的 goldfish_armv7 内核启用所有 USB 主机控制器,但运气不好。默认的模拟器 goldfish_armv7 内核甚至没有启用 Host USB。)

    如果你不限于ARM并且可以使用x86,那么我建议查看http://www.android-x86.org/,它的图像可以与标准QEMU i386(或x86_64)机器一起使用。通过在 Linux 上使用 KVM 扩展,这也会产生更好的性能。

    要通过供应商 ID 1234 和设备 ID abcd 的 USB 设备,您可以运行模拟器命令:

    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 设备。这是针对使用 Android x86 4.3 映像的 Linux 安装进行测试的。

    【讨论】:

    • 命令qemu-system-x86_64 -device help列出了所有可能的虚拟设备的名称;当我加载它们时-usb -readconfig .android/avd/intel-pch-xhci.cfg.
    • 我认为最好明确说明 -usbdevice 主机选项仅适用于 Linux。来源:-qemu.weilnetz.de/doc/qemu-doc.html-2.3.3 USB 选项
    • @Tom USB 主机功能依赖于libusb,Windows 也支持该功能。过去 QEMU 有一个 Linux 依赖项,但在 QEMU 1.5 中使用this commit (changelog) 进行了更改。我认为文档已经过时了。
    • 这可能需要 Android 来宾中的其他驱动程序,这些驱动程序可能可用也可能不可用。
    • 正如@Lekensteyn 所说,它确实需要额外的驱动程序,我必须重建内核并启用 USB API:gist.github.com/Alabate/200f021e644baed84993dd6109811ba2
    【解决方案2】:

    AFAIK 这是不可能的。 Android 模拟器不能模拟真实设备中存在的许多东西……但这让我想起了attempt to run ADB over Bluetooth

    这不是对您问题的直接肯定答案,但也许它可以帮助您找到解决方法,就像我所做的那样:在物理 x86 上网本(双启动)上安装“模拟器”并使用中提到的链接my posts 通过 WiFi 或蓝牙完成您尝试做的事情。

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      使用this image在virtualBox或vm player上创建android虚拟机。

      使用 ADB 连接(您的设备 IP)连接 USB 并与 Eclipse 连接。

      【讨论】:

        【解决方案4】:

        使用来自here 的图像android-x86-4.0-r1-eeepc.iso 在带有Windows 7 主机的virtualbox 中安装了android guest(因为我公司的计算机锁定了bios,我无法启用我必须启用的vt-x 仿真安装 4.4 之前的版本)。然后插入USB驱动器,在Virtualbox Manager中打开VM-设置-USB,单击右侧带有加号的第二个图标,选择USB驱动器。 Virtualbox 然后为 USB 驱动器安装驱动程序。完成后,启动android VM。启动OpenManager,进入mnt/USB,U盘的文件都在了!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-15
          • 1970-01-01
          • 2020-12-19
          • 2017-08-25
          • 2018-07-17
          相关资源
          最近更新 更多