Answers:
尝试使用 sudo $(which fastboot)
例如 sudo $(which fastboot) devices
也 sudo $(which fastboot) oem unlock
在这里找到了更好的解决方案:https :
//stackoverflow.com/a/28127944/1621927
这是评论:您无需永久地
通过sudo
每次运行来强制授予权限fastboot
,而是可以永久解决此问题:
lsusb
识别设备的USB VendorIDudev
为在插入设备时设置适当的权限作为奖励-它也将被固定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
$
瞧!
sudo udevadm trigger
。
sudo
不是解决方案。
多亏了elichai2和这个链接和列表,我才能够解决我的fastboot权限问题。
我拥有Google Nexus 6P,因此我将以下代码用作供应商ID:
谷歌-18d1
如果使用以下命令:
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规则,然后发出了触发命令。我还拔出并插入了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
无需修复或类似的操作,只需在启动前执行一个简单的命令即可
或者,您可以添加所有udev规则:适用于Linux的全套Android USB供应商ID规则 https://gist.github.com/jdamcd/6054951#file-51-android-rules
首先从apt安装fastboot:
sudo apt install android-tools-fastboot
接下来使用sudo执行fastboot:
sudo fastboot
这个对我有用。