没有权限fastboot-fastboot和adb无法正常工作


31

我正在尝试使用ADB解锁我的Moto手机,但是当我这样做时,fastboot devices我不断

no permissions   fastboot

甚至sudo fastboot设备也无济于事

用须藤我得到这个 sudo: fastboot: command not found

救命!!

Answers:



25

在这里找到了更好的解决方案:https :
//stackoverflow.com/a/28127944/1621927

这是评论:您无需永久地

通过sudo每次运行来强制授予权限fastboot,而是可以永久解决此问题:

  1. 用于lsusb识别设备的USB VendorID
  2. 配置udev为在插入设备时设置适当的权限
  3. 利润!

作为奖励-它也将被固定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 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

$ 

瞧!




2
您也将需要sudo udevadm trigger
乔纳斯·格兰杰

考虑“ 0664”模式。
naXa

1
这是正确的答案。实际上,这是唯一的答案。使用sudo不是解决方案。
盖拉夫·甘地

5

我的解决方案

多亏了elichai2和这个链接和列表,我才能够解决我的fastboot权限问题。

我拥有Google Nexus 6P,因此我将以下代码用作供应商ID:

谷歌-18d1


51-android.rules

如果使用以下命令:

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

并按预期工作。我希望这对遇到权限问题的人有用或对您有帮助。


很好,我将链接指向列表,以回复我的评论。
elichai2

udevadmin:找不到命令
IgorGanapolsky'5

1
@IgorG。对于如此晚的答复,我深表歉意。我修正了上面的错字。它应该是“ udevadm”。
Brandon Authier '18

1

当我需要使用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

无需修复或类似的操作,只需在启动前执行一个简单的命令即可




-1

首先从apt安装fastboot:

sudo apt install android-tools-fastboot

接下来使用sudo执行fastboot:

sudo fastboot

这个对我有用。


也可以从SDK获取Fastboot,只需在.bashrc中
IgorGanapolsky
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.