Ubuntu 17.04 上的 adb 没有权限

Ubuntu 17.04 上的 adb 没有权限

当我尝试:

$ adb devices

我得到的结果:

List of devices attached 
????????????    no permissions

问题是什么?

在 Ubuntu 16.04 机器上尝试过,它运行完美。尝试过 7.1.1 设备,它也运行完美。

答案1

有同样的问题。确保设备 USB 模式不是 仅充电已经解决了。

答案2

尝试重新启动 Adb 服务器。

sudo adb kill-server

进而

sudo adb start-server

然后连接你的设备,打开调试并输入

adb devices

答案3

很可能是 udev 错误地添加了您的设备。我也遇到过这个问题,并找到了一个相对简单的解决方案。

在 lsusb 中找到你的设备

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2b Intel Corp. 
Bus 001 Device 002: ID 05c8:03a2 Cheng Uei Precision Industry Co., Ltd (Foxlink) 
Bus 001 Device 006: ID 18d1:4ee7 Google Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

本案例中的兴趣点:

Bus 001 Device 006: ID 18d1:4ee7 Google Inc.

查看相应设备文件

$ ls -l /dev/bus/usb/001/006

你可能会看到类似

crw-rw-r-- 1 root root 189, 5 Sep  8 21:47 /dev/bus/usb/001/006

这意味着设备文件将由用户 root 和组 root 拥有,这就是为什么 adb 可以以 root 身份访问它但不能以标准用户身份访问它。

这可以通过创建一个新的 udev 规则来解决 - 我曾经使用过/etc/udev/rules.d/51-android.rules- 将设备添加到组plugdev,adb 已经假定您是该组的成员(您应该是,请检查使用id

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0660", 
GROUP="plugdev", SYMLINK+="android%n"

**请记住将 ATTR{idProduct}=="4ee7" 替换为您在第一步中找到的自己的产品 ID。**(如果您的供应商不是 Google Inc.,也请将供应商 ID 替换为 lsusb 中冒号前的 ID)。

现在只需拔下您的设备并重新插入(udev 应该自动响应新文件)然后 tadaa:

$ adb devices
List of devices attached 
YC873P0G    device

来源:为 USB 调试 Android 设备添加 udev 规则 - Janos Gyerik

答案4

您需要在 Android 设备上提供权限。转到“设置”>“开发者选项”。尝试关闭 USB 调试,然后重新打开。拔下电缆并重新连接。还可以尝试从开发者选项中删除所有已保存的授权。它现在应该会通过手机上的提示请求调试​​权限。接受它。

相关内容