java - adb devices => 没有权限(plugdev 组中的用户;您的 udev 规则错了吗?)
问题描述
如果我将带有 Android Oreo OS 的 Android 手机连接到 Linux PC,我会收到以下错误日志
$ adb devices
List of devices attached
xxxxxxxx no permissions (user in plugdev group; are your udev rules wrong?);
see [http://developer.android.com/tools/device.html]
我尝试使用错误消息提供的链接,但仍然收到相同的错误。
解决方案
检查设备供应商 ID 和产品 ID:
$ lsusb
Bus 001 Device 002: ID 8087:8000 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 078: ID 138a:0011 Validity Sensors, Inc. VFS5011 Fingerprint Reader
Bus 002 Device 003: ID 8087:07dc Intel Corp.
Bus 002 Device 002: ID 5986:0652 Acer, Inc
Bus 002 Device 081: ID 22b8:2e81 Motorola PCS
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
这里我的安卓设备是摩托罗拉 PCS。所以我的vid=22b8
和pid=2e81
。
现在创建一个 udev 规则:
$ sudo vi /etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="2e81", MODE="0666", GROUP="plugdev"
现在,一旦重新加载 udev 规则,就可以检测到该设备。所以,让我们这样做:
$ sudo udevadm control --reload-rules
在此之后,再次检查您的设备是否被 adb 检测到:
$ adb devices
List of devices attached
ZF6222Q9D9 device
所以,你完成了。
如果它仍然不起作用,请拔下/重新插入设备。
如果它仍然不起作用,请重新启动您的操作系统。
推荐阅读
- r - R - 将点转换为 30 x 30m 栅格中心的点
- go - 如何对齐 Golang 记录器中的列?
- django - 为什么 Wagtail TableBlock 不能在管理员中正确显示?
- unit-testing - 使用 lambda 参数模拟静态函数并验证它是否调用了正确的方法
- tensorflow - 将 Tensorflow 冻结的 .pb 模型转换为 keras 模型
- python - 绘制存储在元组列表中的方形颜色?
- angular - ngrx (Angular) 中的状态管理实现
- python - 如何为 Pandas 系列表达式指定类型提示
- python - 如何使用 sklearn 预处理管道中的标签?
- objective-c - 如何为 AppleTV 和 MacOSX 统一构建一个 Objective-C 原生插件