немає дозволів fastboot - fastboot та adb не працюють


31

Я намагаюсь розблокувати свій мобільний телефон за допомогою ADB, але я, коли це fastboot devicesроблю, продовжую отримувати

no permissions   fastboot

Навіть sudo fastbootпристрої не допомагають

з судо я отримую це sudo: fastboot: command not found

ДОПОМОГА !!

Відповіді:


57

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

наприклад sudo $(which fastboot) devices

також sudo $(which fastboot) oem unlock


Це працювало !! Дякую Шрінівас ..
Рупалі

радий, що можу допомогти :)
Шрінівас Гоуда

6
Повинно бути краще рішення, це не безпечно і не є хорошою практикою просто запускати все з дозволами root.
elichai2

Чи потрібна швидка завантаження судо?
ІгорГанапольський

25

Тут знайдено краще рішення:
https://stackoverflow.com/a/28127944/1621927

Ось коментар:

Замість примусового дозволу через sudoкожен раз, коли вам потрібно запустити fastboot, ви можете остаточно виправити проблему:

  1. використовувати lsusbдля ідентифікації вашого пристрою USB VendorID
  2. налаштувати udevдля встановлення належних дозволів під час підключення пристрою
  3. прибуток!

Як бонус - він також буде зафіксований adb.

Наприклад, у моєму випадку (для 'Мегафон SP-A20i'):

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

Давайте виправимо:

Спочатку нам потрібно визначити пристрій:

а) шукайте номер шини 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
$ 

Хаби - це не чітко визначені смартфони, тому - 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

$ 

Вуаля!


2
Хороший список ідентифікаторів постачальників андроїдів на wiki.cyanogenmod.org/w/UDEV
Ехтеш Чудхурі

3
Офіційний список тут: developer.android.com/studio/run/device.html
elichai2

2
Вам також знадобиться sudo udevadm trigger.
Jonas G. Drange

Розгляньте режим "0664".
naXa

1
Це правильна відповідь. Власне, це єдина відповідь. Використання sudoне є рішенням.
Гаурав Ганді

5

Моє рішення

Завдяки elichai2 та цьому посиланню та списку я зміг вирішити проблему з дозволом на швидку завантаження .

У мене є Google Nexus 6P, тому я використовував таке для свого ідентифікатора постачальника:

Google - 18d1


51-android.rules

Якщо ви використовуєте таку команду:

sudo sh -c "echo 'SUBSYSTEM==\"usb\", ATTR{idVendor}==\"8087\" ..."

скопіюйте його точно. Я вже корінь і намагався скопіювати лише частину ехо, що дало мені небажані результати. В основному, він поміщає \ "у файл .rules, а не інтерпретує косу рису як символ евакуації.

Я пропоную скористатися наступним, якщо ви вже викорінюєте файл .rules (Використовуйте свій ідентифікатор постачальника).

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

Я, як непривілейований користувач, працював:

fastboot devices

і спрацювало як хочеться. Я сподіваюся, що це може бути корисним або допомогти всім, хто зіткнеться з проблемою дозволів.


Приємно, я дав посилання на список у відповідь на мій коментар.
elichai2

udevadmin: команда не знайдена
ІгорГанапольський

1
@IgorG. Мої вибачення за таку пізню відповідь. Я зафіксував вищезазначений друк. Це мало бути "удевадм".
Брендон Аутьє

1

коли мені потрібно надіслати кілька команд за допомогою fastboot (наприклад, миготлива прошивка на пристрої htc), я встановлюю fastboot за допомогою apt

sudo apt install android-tools-fastboot

то коли я починаю використовувати його першою командою є

sudo -s

тоді всі команди в цьому терміналі будуть виконуватись як кореневі команди, як

fastboot devices
fastboot reboot-bootloader 
fastboot oem rebootRUU 
fastboot flash zip xxxx.zip

не потрібно виправляти чи щось, це проста одна додаткова команда перед її запуском




-1

Спочатку встановіть швидку завантаження з apt:

sudo apt install android-tools-fastboot

Наступне виконання швидкої завантаження з sudo:

sudo fastboot

Це працює для мене.


Fastboot також можна отримати від SDK і просто встановити шлях псевдоніму в .bashrc
IgorGanapolsky
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.