Fastboot и adb не работают с sudo

У меня очень странная проблема на моей машине Ubuntu при попытке выполнить команду fastboot.

Когда я запускаю:

fastboot devices

Я получаю

no permissions   fastboot

Итак, я запускаю команду с разрешениями adminidtrator:

sudo fastboot devices

И затем я получаю результат

sudo: fastboot: command not found

Как это может быть? У меня есть каталог в моей PATH, и все работает правильно без sudo.

Ответ 1

Вместо того, чтобы вызывать разрешения через sudo каждый раз, когда вам нужно запустить fastboot, вы можете надолго исправить проблему:

  • используйте lsusb для идентификации устройства USB VendorID
  • настроить udev для установки правильных разрешений при подключении вашего устройства.
  • прибыль!

В качестве бонуса - он будет исправлен и для adb.

Например, в моем случае (для "Megafon SP-A20i" ):

$ fastboot devices
no permissions  fastboot
$ sudo fastboot devices
[sudo] password for kaa: 
MedfieldA9055F28    fastboot
$ 

Пусть fix:

Сначала нам нужно определить устройство:

a) найдите номер шины usb (hack: я знаю, что устройство основано на 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
$ 

Концентраторы не являются определенными смартфонами, поэтому - нам необходим USB-поставщик - "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

$ 

Voila!

Ответ 2

Вы можете использовать

sudo $(какие fastboot) устройства