解决fastboot devices 报no permissions
报错:error no permissions (missing udev rules? user is in the plugdev group)
原因:未将usb端口 idVendor idProduct注册到udev rules
环境:ubuntu pc usb连接安装设备,以下基于Ubuntu pc的操作
当我们使用 fastboot 命令将我们的设备设置为 fastboot 模式以刷新我们的二进制文件时,同时尝试使用“fastboot devices”命令检查设备是否已连接,我们得到以下错误,
$ fastboot devices
no permissions (missing udev rules? user is in the plugdev group); see [http://developer.android.com/tools/device.html] fastboot
我们总是可以使用“sudo fastboot devices”,但这不是个好主意,当我们在一些自动化工具中使用 fastboot 或试图将二进制文件刷入 bash 脚本时,我们必须解决这个问题。
解决方案 :
进入fastboot模式
adb reboot bootloader
检查 pc与安卓设备连接的usb信息
$ lsusb
Bus 001 Device 014: ID xxxx:yyyy Company Inc (fastboot)
此时可能有多条Bus消息,通过拔插多次lsusb可以确认最终是哪个usb,取得上述信息
正如我们所看到的,设备在 fastboot 模式下通过 USB 连接,但实际的 fastboot 命令并没有以普通用户的身份检测到这种模式。
现在,我们需要更新 udev 规则
$ sudo vim /etc/udev/rules.d/51-android.rules
用我们在“lsusb”命令中看到的 idvendor 和 idproduct 值更新它,
SUBSYSTEM=="usb", ATTR{idVendor}=="xxxx", ATTR{idProduct}=="yyyy", MODE="0666", GROUP="plugdev"
现在,如果我们检查一下,它仍然将 fastboot 设备显示为“无权限”,但最后也显示了“usb:1-1”。
$ fastboot -l devices
no permissions (missing udev rules? user is in the plugdev group); see [http://developer.android.com/tools/device.html] fastboot
usb:1-1
确保重新启动 udev 服务,
$ sudo service udev restart
现在从笔记本电脑/台式机上拔下设备的 USB 电缆并将其重新连接(此步骤非常重要),再测检查,我们将不会看到权限错误。
$ fastboot -l devices
1234567890 fastboot
usb:1-1
至此我们无论如何拔插usb,都不会报权限错误