没有权限fastboot – fastboot和adb无法正常工作
我正在尝试使用ADB解锁我的Moto手机,但是当我做一个我继续使用的快速启动fastboot devices
no permissions fastboot
即使是sudo fastboot
设备也sudo fastboot
用sudo我得到这个sudo: fastboot: command not found
救命!!
尝试使用sudo $(which fastboot)
例如sudo $(which fastboot) devices
还sudo $(which fastboot) oem unlock
在这里找到了更好的解决方案:
https://stackoverflow.com/a/28127944/1621927
这是评论:
每次需要运行fastboot
,您都可以永久修复问题,而不是通过sudo
强制执行权限:
- 使用
lsusb
识别您的设备USB VendorID - 配置
udev
以在插入设备时设置适当的权限 - 利润!
作为奖励 – 它也将为adb
修复。
例如,在我的情况下(对于’Megafon SP-A20i’):
$ fastboot devices no permissions fastboot $ sudo fastboot devices [sudo] password for kaa: MedfieldA9055F28 fastboot $
我们来修理:
首先,我们需要识别设备:
a)寻找usb总线号(黑客:我知道该设备是基于Intel的设备)
$ 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供应商ID是“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 $
瞧!
我的解决方案
感谢elichai2和这个链接和列表,我能够解决我的fastboot权限问题。
我有谷歌Nexus 6P所以我使用以下内容作为我的供应商ID:
谷歌 – 18d1
51 android.rules
如果使用以下命令:
sudo sh -c "echo 'SUBSYSTEM==\"usb\", ATTR{idVendor}==\"8087\" ..."
完全复制它。 我已经是root并试图复制回声部分,这给我带来了不良后果。 基本上它将\“放在.rules文件中,而不是将斜杠解释为转义字符。
如果您已经root创建.rules文件(使用您的供应商ID),我建议使用以下内容。
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"' >> /etc/udev/rules.d/51-android.rules
Udev Reload和Trigger
我重新加载了udev规则,然后发出了触发器命令。 我也拔掉了USB插头并插好了。
udevadm control --reload udevadm trigger
快速启动
作为一个无特权的用户,我然后运行:
fastboot devices
它按预期工作。 我希望这可以对任何遇到权限问题的人有用或帮助。
当我需要使用fastboot(例如htc设备上的闪存固件)发送一些命令时,我会使用apt安装fastboot
sudo apt install android-tools-fastboot
然后当我开始使用它时,第一个命令是
sudo -s
那么这个终端中的所有命令都将以root发送命令的方式运行
fastboot devices fastboot reboot-bootloader fastboot oem rebootRUU fastboot flash zip xxxx.zip
在启动它之前不需要修复或其他简单的额外命令
首先从apt安装fastboot:
sudo apt install android-tools-fastboot
接下来用sudo执行fastboot:
sudo fastboot
这个对我有用。
或者您可以添加所有udev规则:适用于Linux的全套Android USB供应商ID规则https://gist.github.com/jdamcd/6054951#file-51-android-rules