问题:

手机开启调试模式,允许usb调试,并且用数据线连接手机,但是,在执行adb devices后却发现了没有权限的问题。

$ adb devices
List of devices attached
a89d25c6        no permissions; see [http://developer.android.com/tools/device.html]
emulator-5554   device

其中的第一个设备是我的手机,显示出没有权限,无法连接到adb。

解决方法:

步骤1. 编辑设备规则文件

$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 04f3:0c5e Elan Microelectronics Corp. ELAN:ARM-M4
Bus 003 Device 009: ID 18d1:4ee7 Google Inc. Nexus/Pixel Device (charging + debug)[这里的设备就是手机]
Bus 003 Device 003: ID 3151:3020 YICHIP Wireless Device
Bus 003 Device 002: ID 04f2:b6c0 Chicony Electronics Co., Ltd HP HD Camera
Bus 003 Device 005: ID 8087:0026 Intel Corp. AX201 Bluetooth
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

从中需要找出设备ID,我的设备ID显然是:

vendor id:0bb4
product id:0c8d

然后编辑/etc/udev/rules.d/51-android.rules文件,加入以下代码

SUBSYSTEM=="usb",ATTRS{"Vendor id"}=="2207",ATTRS{"Product id"}=="0010",MODE="0666"

只要把id替换成自己设备的id就好了。

注意: ID不要忘记加上双引号。

步骤2. 加载新规则

# udevadm control --reload

步骤3. 重启adb server

# adb kill-server
# adb start-server

步骤4. 完成

完成所有操作后执行以下命令,发现设备已经正常连接

$ adb devices
List of devices attached
a89d25c6        device
emulator-5554   device

参考

Android Debug Bridge - ArchWiki
Linux adb使用及no permissions问题解决_冰路梦的博客
udev-ArchWiki