Android 设备在登录 Ubuntu GUI 会话之前不会显示在"adb 设备"中



我们有数千台设备在数百台 Ubuntu 主机上进行测试,我们遇到的一个大问题是,除非您通过 GUI 登录主机,否则某些设备不会显示。 我正在和一位同事交谈,他说这是由于设备在启动活动的 GNOME 会话之前无法挂载,但他不知道如何修复它 - 有人知道解决这个问题的方法吗? 这对我们来说是一个巨大的问题,因为如果我们需要重新启动主机(或许多主机(,我们需要远程访问每个主机,登录,然后设备显示 - 通过 Putty 登录没有任何影响 - 只有当您登录 GUI 时,设备才会显示。

我们的系统运行 Ubuntu 16.04。

sudo adb kill-server
sudo adb devices

已经尝试过,没有帮助。

谢谢!

如果

尚未创建此文件,请以 root 身份创建此文件:

touch /etc/udev/rules.d/51-android.rules

使用此格式将设备中的每个供应商 ID 添加到文件中:

SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666", GROUP="plugdev">

在此示例中,供应商 ID 适用于我的华为设备。MODE 分配指定读/写权限,以便在创建/更新文件时执行。

使文件可执行:

chmod +x /etc/udev/rules.d/51-android.rules

现在尝试再次重新启动 adb。

adb kill-server; adb start-server; adb devices -l

如果您不知道您的供应商 ID,我已经为您创建了一个最知名品牌的列表,否则如果您安装了此软件包,则可以通过 lsusb 命令找到供应商 ID,如果列出了手机,粗体文本是您的供应商 ID。

通过 lsusb 列出设备供应商 ID:

lsusb

公交002设备019:ID12d1:107e 华为技术有限公司

通过 curl 列出不同手机型号的供应商 ID:

curl -L https://nr1.nu/xm89

SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0666", GROUP="plugdev" #Acer SUBSYSTEM=="usb", ATTR{idVendor}=="0b05", MODE="0666", GROUP="plugdev" #ASUS


我假设您知道手机已经正确连接,但是如果您不确定这种类型的dmesg -w,然后再次将设备连接到您的PC,您应该会看到一条消息,如果一切正常,则已找到新设备。

试试这个

adb kill-server
adb devices

adb 服务器将重新启动,因此会更改以检测连接的设备

最新更新