无法在 android 模拟器上安装 USB 记忆棒
Failed to mount usb stick on android emulator
我有一个带 USB 端口的 android 设备。我正在尝试做一个 android 应用程序,将文件存储到 USB 记忆棒。首先,我需要先在模拟器上验证它,然后才能将它部署到设备中。我的问题是模拟器不能很好地安装 USB 记忆棒。到目前为止,我可以检测到 USB 连接(在应用程序中和使用 lsusb)但是我找不到保存文件的路径,因为 USB 棒似乎没有安装。重现:
将 USB 连接到电脑:
$ lsusb
Bus 001 Device 016: ID ffff:5678
在 /etc/udev/rules.d/99-usb-android.rules
中为这个特定的 usb 创建开发规则:
SUBSYSTEM=="usb", ATTRS{idVendor}=="ffff", ATTRS{idProduct}=="5678", MODE="0666"
SUBSYSTEM=="usb_device", ATTRS{idVendor}=="ffff", ATTRS{idProduct}=="5678", MODE="0666"
重新加载 udev 规则:
sudo udevadm control --reload-rules
运行 支持 USB 的模拟器:
emulator -avd x86-machine -qemu -usb -device usb-host,vendorid=0xffff,productid=0x5678
启动后,我在 dmesg 上看到一些重复的错误
[ 36.300218] usb 1-1: reset full-speed USB device number 2 using uhci_hcd
[ 37.240093] usb 1-1: reset full-speed USB device number 2 using uhci_hcd
[ 38.180262] usb 1-1: reset full-speed USB device number 2 using uhci_hcd
[ 38.652826] sd 2:0:0:0: [sda] Unaligned partial completion (resid=4095, sector_sz=512)
[ 38.659008] sd 2:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
[ 38.664371] sd 2:0:0:0: [sda] tag#0 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
[ 38.668527] print_req_error: I/O error, dev sda, sector 0
[ 38.671306] Buffer I/O error on dev sda, logical block 0, async page read
[ 38.674756] Dev sda: unable to read RDB block 0
[ 39.100212] usb 1-1: reset full-speed USB device number 2 using uhci_hcd
[ 40.040269] usb 1-1: reset full-speed USB device number 2 using uhci_hcd
但是,如果我连接到 shell
,我可以看到 USB
$ adb root
$ adb shell
emulator:# lsusb
Bus 001 Device 001: ID 1d6b:0001
Bus 001 Device 002: ID ffff:5678
我有一个应用程序可以识别 USB 密钥何时连接并显示一条消息及其信息。我在一些问题中读到 USB 记忆棒安装在 /mnt/media_rw/[HEX-NUM]
中,但我在那个文件夹中什么也没有
emulator:/mnt/media_rw # ls
emulator:/mnt/media_rw #
U盘真的挂载了吗?如果没有,我该怎么做?
谢谢
我运行模拟器是这样的,现在可以用了
./emulator @AVD_NAME -no-snapshot -qemu -device usb-ehci,id=ehci -device usb-host,bus=ehci.0,vendorid=0xffff,productid=0x5678
我有一个带 USB 端口的 android 设备。我正在尝试做一个 android 应用程序,将文件存储到 USB 记忆棒。首先,我需要先在模拟器上验证它,然后才能将它部署到设备中。我的问题是模拟器不能很好地安装 USB 记忆棒。到目前为止,我可以检测到 USB 连接(在应用程序中和使用 lsusb)但是我找不到保存文件的路径,因为 USB 棒似乎没有安装。重现:
将 USB 连接到电脑:
$ lsusb
Bus 001 Device 016: ID ffff:5678
在 /etc/udev/rules.d/99-usb-android.rules
中为这个特定的 usb 创建开发规则:
SUBSYSTEM=="usb", ATTRS{idVendor}=="ffff", ATTRS{idProduct}=="5678", MODE="0666"
SUBSYSTEM=="usb_device", ATTRS{idVendor}=="ffff", ATTRS{idProduct}=="5678", MODE="0666"
重新加载 udev 规则:
sudo udevadm control --reload-rules
运行 支持 USB 的模拟器:
emulator -avd x86-machine -qemu -usb -device usb-host,vendorid=0xffff,productid=0x5678
启动后,我在 dmesg 上看到一些重复的错误
[ 36.300218] usb 1-1: reset full-speed USB device number 2 using uhci_hcd
[ 37.240093] usb 1-1: reset full-speed USB device number 2 using uhci_hcd
[ 38.180262] usb 1-1: reset full-speed USB device number 2 using uhci_hcd
[ 38.652826] sd 2:0:0:0: [sda] Unaligned partial completion (resid=4095, sector_sz=512)
[ 38.659008] sd 2:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
[ 38.664371] sd 2:0:0:0: [sda] tag#0 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
[ 38.668527] print_req_error: I/O error, dev sda, sector 0
[ 38.671306] Buffer I/O error on dev sda, logical block 0, async page read
[ 38.674756] Dev sda: unable to read RDB block 0
[ 39.100212] usb 1-1: reset full-speed USB device number 2 using uhci_hcd
[ 40.040269] usb 1-1: reset full-speed USB device number 2 using uhci_hcd
但是,如果我连接到 shell
,我可以看到 USB$ adb root
$ adb shell
emulator:# lsusb
Bus 001 Device 001: ID 1d6b:0001
Bus 001 Device 002: ID ffff:5678
我有一个应用程序可以识别 USB 密钥何时连接并显示一条消息及其信息。我在一些问题中读到 USB 记忆棒安装在 /mnt/media_rw/[HEX-NUM]
中,但我在那个文件夹中什么也没有
emulator:/mnt/media_rw # ls
emulator:/mnt/media_rw #
U盘真的挂载了吗?如果没有,我该怎么做? 谢谢
我运行模拟器是这样的,现在可以用了
./emulator @AVD_NAME -no-snapshot -qemu -device usb-ehci,id=ehci -device usb-host,bus=ehci.0,vendorid=0xffff,productid=0x5678