android – fastboot和adb不能使用sudo

尝试运行fastboot命令时,我的Ubuntu机器上有一个非常奇怪的问题.

当我跑:

fastboot devices

我得到

no permissions   fastboot

所以我用adminidtrator权限运行命令:

sudo fastboot devices

然后我得到结果

sudo: fastboot: command not found

这怎么可能?我的路径中有目录,一切正常,没有sudo.

解决方法

每次需要运行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)寻找其他Intel设备:

$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
$

Hubs不是智能手机,所以我们需要的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

$

瞧!

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...