[linux小水滴]ubuntu系统adb连接手机出现“no permissions (user in plugdev group; are your udev rules wrong?);”问题解决

出现错误原因:没有把当前手机设备加入ubuntu系统的plugdev group,即当前ubuntu系统不认识这个device,不允许adb接入
解决方法:

1 检查当前usb连接的设备idVendor号

di.di@ubuntu: /etc/udev/rules.d$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 018: ID 22d9:2769  
Bus 001 Device 099: ID 30fa:0300  
Bus 001 Device 110: ID 258a:002a  
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

ID后面的字段[xxxx:xxxx],冒号前面表示idVendor,后面表示idProduct。
怎么知道哪个设备是当前出问题的设备呢?
不插手机时lsusb,插上后再lsusb,多出来的那个就是当前连电脑的设备。

2 添加规则文件

在下面文件路径下的*.rules文件里面添加规则语句,如果没有该文件,自行创建也可。

di.di@ubuntu: ~$ cd /etc/udev/rules.d 
di.di@ubuntu: /etc/udev/rules.d$ 
当在Linux系统中使用ADB(Android Debug Bridge)时,如果遇到 `no permissions (missing udev rules? user is in the plugdev group)` 错误,这通常表示当前用户没有足够的权限与设备通信。以下是解决问题的详细步骤和相关配置。 ### 检查用户是否属于 `plugdev` 组 确保当前用户已经加入 `plugdev` 组,因为这是ADB推荐的组权限管理方式。可以通过以下命令检查: ```bash groups ``` 如果输出中没有包含 `plugdev`,则需要将用户添加到该组: ```bash sudo usermod -aG plugdev $USER ``` 执行完上述命令后,请重新登录或重启系统以使更改生效。 ### 配置udev规则 为了确保ADB能够正确识别并赋予设备访问权限,需要创建或更新udev规则文件。具体步骤如下: 1. **获取设备的Vendor ID** 使用 `lsusb` 命令查看连接的USB设备信息: ```bash lsusb ``` 输出示例: ``` Bus 002 Device 003: ID 18d1:4ee7 Google Inc. ``` 其中 `18d1` 是Vendor ID,`4ee7` 是Product ID。 2. **创建udev规则文件** 创建一个名为 `51-android.rules` 的规则文件,并将其放置在 `/etc/udev/rules.d/` 目录下: ```bash sudo nano /etc/udev/rules.d/51-android.rules ``` 在文件中添加以下内容(请根据实际设备替换Vendor ID): ```bash SUBSYSTEM=="usb", ATTR{idVendor}=="<VENDOR_ID>", MODE="0666", GROUP="plugdev" ``` 例如,对于Google设备(Vendor ID为 `18d1`),应写入: ```bash SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev" ``` 3. **应用新的udev规则** 保存并关闭文件后,重新加载udev规则并重启ADB服务: ```bash sudo udevadm control --reload-rules adb kill-server adb start-server ``` 4. **验证设备状态** 最后再次运行 `adb devices` 命令以确认设备已被正确识别: ```bash adb devices ``` 如果一切正常,设备应该会显示为在线状态,而不是提示“no permissions”。 ### 示例:完整操作流程 以下是一个完整的操作流程示例,假设设备的Vendor ID为 `18d1`: ```bash # 检查用户是否属于plugdevgroups # 如果没有plugdev组,则添加用户到plugdev组 sudo usermod -aG plugdev $USER # 获取设备的Vendor ID lsusb # 创建udev规则文件 echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"' | sudo tee /etc/udev/rules.d/51-android.rules # 应用新的udev规则 sudo udevadm control --reload-rules adb kill-server adb start-server # 验证设备状态 adb devices ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值