没有权限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强制执行权限:

  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供应商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