虚拟机客户机上的adb设备未列出的设备

时间:2018-09-05 18:59:56

标签: android linux adb virtualbox

为什么adb devices中未列出我的Android手机?

我遵循了https://developer.android.com/studio/run/device中所述的说明,但ADB仍然找不到我的设备。 我的用户已经是plugdev组的成员。我还尝试杀死并重新启动adb服务器。

我正在VirtualBox机器上运行Debian Stretch。 Debian可以看到我的设备,但adb看不到。

eduardo@debian:~$ lsusb

Bus 001 Device 002: ID 1004:633e LG Electronics, Inc. GZ Android Phone [MTP mode]
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub    
Bus 002 Device 002: ID 8oee:0021 VirtualBox USB Tablet    
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

eduardo@debian:~$ ls -l /etc/udev/rules.d/51-android.rules

-rw-r-r- 1 root root 4611 Sep 5 15:25 /etc/udev/rules.d/51-android.rules

eduardo@debian:~$ grep 1004 /etc/udev/rules.d/51-android.rules

SUBSYSTEM=="usb", ATTRfidVendor1=="1004", MODE="0666", GROUP="p1ugdev"

eduardo@debian:~$ adb devices

List of devices attached

eduardo@debian:~$

3 个答案:

答案 0 :(得分:1)

在虚拟化环境中使用adb的简单方法,无论使用何种特定平台,都是在主机上将adb server作为远程系统运行,并在来宾系统中运行adb客户端。参见my answer to another question here

虽然可以在访客系统中完全运行服务器和客户端,但要可靠地进行操作通常涉及将整个USB控制器传递到访客系统中。

答案 1 :(得分:0)

我做了一个解决方法,解决了我的问题。这不是完美的,但可以。

  1. 禁用将USB桥接到VirtualBox计算机
  2. 在主机上安装平台工具并运行adb devices
  3. 在设备屏幕上授权计算机
  4. 在虚拟机中建立一个tcp隧道,该隧道将本地端口5037重定向到主机5037端口:

    ssh -L 5037:10.0.2.2:5037 localhost -N -f

我不会将其标记为正确答案,因为我的来宾ADB仍然看不到我的设备

答案 2 :(得分:0)

当我将设备USB更改为仅充电模式时,此功能正常工作。

参考:https://askubuntu.com/a/632668