在Ubuntu 16.04上使用“adb devices”命令时,“List of devices attached”为空。

11

我无法将我的安卓设备连接到Ubuntu。

在执行命令lsusb后,它显示已经连接了设备。

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 04ca:0061 Lite-On Technology Corp. 
Bus 001 Device 002: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter
Bus 001 Device 025: ID 2a70:9011  
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

我使用这个命令创建了规则。

echo SUBSYSTEM=="usb", ATTR{idVendor}=="2a70", MODE="0666", GROUP="plugdev" | sudo tee /etc/udev/rules.d/51-android-usb.rules

运行adb devices命令后,没有显示任何已连接设备。

我还重新安装了adb工具,但仍然无法正常工作。

4个回答

8

首先,尝试拔出然后插入设备。然后使用dmesg而不是lsusb来检查消息日志,因为它可以提供更多关于idVendor和idProduct的信息。使用以下命令显示最后10个消息日志:

dmesg | tail

现在,您可以获取idVendor和idProduct。它会像这样:
[24936.555273] usb 1-2: USB disconnect, device number 9
[24939.022181] usb 1-2: new high-speed USB device number 10 using xhci_hcd
[24939.187152] usb 1-2: New USB device found, idVendor=04e8, idProduct=6860
[24939.187154] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[24939.187156] usb 1-2: Product: SAMSUNG_Android
[24939.187157] usb 1-2: Manufacturer: SAMSUNG
[24939.187158] usb 1-2: SerialNumber: 5ae1b464
[24939.188132] cdc_acm 1-2:1.1: ttyACM0: USB ACM device

将以下行添加到您的/etc/udev/rules.d/51-android.rules文件中(注意,您需要将idVendoridProductusername更改为您自己的):
SUBSYSTEM=="usb", ATTR{idVendor}=="2a70", ATTR{idProduct}=="9011", MODE="0600", OWNER="username"

您也可以使用来自 android-udev-rules51-android.rules 文件。

这里我从其文档中复制了 Ubuntu的步骤

# Clone this repository
git clone git@github.com:M0Rf30/android-udev-rules.git
# Create a sym-link to the rules file
sudo cp android-udev-rules/51-android.rules /etc/udev/rules.d/
# Change file permissions
sudo chmod a+r /etc/udev/rules.d/51-android.rules
# add the adbusers group if it's doesn't already exist
sudo groupadd adbusers
# Add your user to the adbusers group
sudo usermod -a -G adbusers $(whoami)
# Restart UDEV
sudo udevadm control --reload-rules
sudo service udev restart
# Restart the ADB server
adb kill-server
# Replug your Android device and verify that USB debugging is enabled in developer options
adb devices
# You should now see your device

8
您需要在手机上启用USB调试。 此视频从0:33到1:03演示了如何操作。
以下是操作步骤:
  1. 在您的安卓设备上,进入 设置系统关于手机。向下滑动到版本号,连续点击几次,直到出现通知开发者选项已激活的弹窗。
  2. 进入设置开发者选项调试并激活USB调试
一旦连接成功,设备应该会在$ adb devices中列出。
已在Android 5.1和Ubuntu 17.10上测试通过。

4

我遇到了一个空的adb devices列表问题。对我起作用的唯一解决方案是使用设备ID的前半部分(供应商ID0e8d):

# lsusb
Bus 001 Device 055: ID 0e8d:201d MediaTek Inc. 

然后编辑文件 ~/.android/adb_usb.ini,如果不存在则创建,并在一行上放置前缀0x后跟您的供应商 ID:

# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
0x0e8d

然后重新启动adb:

adb kill-server
adb start-server;
adb devices

“Android Debug Bridge版本1.0.32”是我使用的版本,这是唯一解决问题的方法。怎么可能呢? - I.Manev
1.0.32非常老旧。您应该升级您的adb - Alex P.
好的,原来是这样。那么安装了apt的版本,是因为软件包过时了还是我做错了什么? - I.Manev
这就是为什么不建议从Linux发行版存储库安装adb的原因。如果您想开发Android应用程序 - 只需使用随Android SDK提供的版本即可。 - Alex P.
我只需要更改设备的分辨率,但是我会留下我的答案以防有人遇到同样的问题。谢谢你提供的信息! - I.Manev
1
adb 可以单独从 SDK 安装 https://stackoverflow.com/tags/adb/info - Alex P.

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接