我尝试使用 ADB 解锁我的 Moto 手机,但当我这样做时,fastboot devices
我总是收到
no permissions fastboot
甚至sudo fastboot
设备也无济于事
使用 sudo 我得到这个sudo: fastboot: command not found
帮助!!
答案1
尝试使用sudo $(which fastboot)
例如sudo $(which fastboot) devices
还sudo $(which fastboot) oem unlock
答案2
在这里找到了更好的解决方案:
https://stackoverflow.com/a/28127944/1621927
以下是评论:您
无需在sudo
每次需要运行时强制通过权限fastboot
,而是可以永久修复该问题:
- 用于
lsusb
识别您的设备的 USB VendorID - 配置
udev
在设备插入时设置适当的权限 - 利润!
作为奖励 - 它adb
也将被修复。
例如,就我的情况而言(对于'Megafon SP-A20i'):
$ fastboot devices
no permissions fastboot
$ sudo fastboot devices
[sudo] password for kaa:
MedfieldA9055F28 fastboot
$
让我们修复:
首先,我们需要识别设备:
a)查找 USB 总线号(黑客:我知道该设备是基于英特尔的)
$ fastboot -l devices
no permissions fastboot usb:1-1.2
$ lsusb |grep 001 |grep -i intel
Bus 001 Device 044: ID 8087:09ef Intel Corp.
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
$
b)寻找其他英特尔设备:
$ lsusb |grep 8087
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 044: ID 8087:09ef Intel Corp.
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
$
集线器绝对不是智能手机,所以我们需要的 USB vendorID 是“8087”。
其次,配置udev
(您必须用您自己的值替换“idVendor”值):
$ sudo sh -c "echo '# Megafon SP-A20i' >> /etc/udev/rules.d/51-android.rules"
$ sudo sh -c "echo 'SUBSYSTEM==\"usb\", ATTR{idVendor}==\"8087\", MODE=\"0666\", GROUP=\"plugdev\"' >> /etc/udev/rules.d/51-android.rules"
$ sudo service udev restart
udev stop/waiting
udev start/running, process 1821
$
第三,重新插入您的设备以udev
发挥它的魔力。
最后检查:
$ fastboot -l devices
MedfieldA9055F28 fastboot usb:1-1.2
$ adb devices
List of devices attached
$ fastboot reboot
rebooting...
finished. total time: 0.253s
$ sleep 90
$ adb devices
List of devices attached
MedfieldA9055F28 device
$
瞧!
答案3
我的解决方案
感谢 elichai2 和这个链接和列表我能够解决我的 fastboot 权限问题。
我有 Google Nexus 6P,因此我使用以下作为我的供应商 ID:
谷歌-18d1
51-android.规则
如果使用以下命令:
sudo sh -c "echo 'SUBSYSTEM==\"usb\", ATTR{idVendor}==\"8087\" ..."
完全复制。我已经是 root 并尝试仅复制 echo 部分,但结果却不尽如人意。基本上,它将 \" 放在 .rules 文件中,而不是将斜线解释为转义字符。
如果您已经以 root 身份创建 .rules 文件,我建议使用以下命令(使用您的供应商 ID)。
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"' >> /etc/udev/rules.d/51-android.rules
Udev 重新加载和触发
我重新加载了 udev 规则,然后发出了触发命令。我还拔下并插入了 USB,以确保万无一失。
udevadm control --reload
udevadm trigger
快速启动
然后,我以非特权用户身份运行:
fastboot devices
并且它按预期工作。我希望这对遇到权限问题的人有用或有帮助。
答案4
或者你可以添加所有的 udev 规则:Linux 的全套 Android USB 供应商 ID 规则 https://gist.github.com/jdamcd/6054951#file-51-android-rules