brak uprawnień fastboot - fastboot i adb nie działają

31

Próbuję odblokować mój telefon Moto za pomocą ADB, ale kiedy to robię fastboot devices, ciągle dostaję

no permissions   fastboot

Nawet sudo fastbooturządzenia nie pomagają

z sudo to rozumiem sudo: fastboot: command not found

WSPARCIE!!

Rupali
źródło

Odpowiedzi:

57

Spróbuj użyć sudo $(which fastboot)

na przykład sudo $(which fastboot) devices

również sudo $(which fastboot) oem unlock

Srinivas Gowda
źródło
To się udało!! Dziękuję Srinivas ..
Rupali
Cieszę się, że mogłem pomóc :)
Srinivas Gowda
6
Musi być lepsze rozwiązanie, nie jest bezpieczne i nie jest dobrą praktyką, aby po prostu uruchamiać wszystko z uprawnieniami roota.
elichai2
Czy Fastboot wymaga sudo?
IgorGanapolsky
25

Znalazłem lepsze rozwiązanie tutaj:
https://stackoverflow.com/a/28127944/1621927

Oto komentarz:

Zamiast wymuszać uprawnienia za sudokażdym razem, gdy musisz uruchomić fastboot, możesz trwale rozwiązać problem:

  1. służy lsusbdo identyfikacji urządzenia USB VendorID
  2. skonfiguruj, udevaby ustawić odpowiednie uprawnienia po podłączeniu urządzenia
  3. zysk!

Jako bonus - również zostanie naprawiony adb.

Na przykład w moim przypadku (dla „Megafon SP-A20i”):

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

Naprawmy:

Najpierw musimy zidentyfikować urządzenie:

a) poszukaj numeru magistrali USB (włamanie: wiem, że urządzenie jest oparte na procesorze 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) poszukaj innych urządzeń 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
$ 

Koncentratory nie są zdecydowanie smartfonami, więc - ID dostawcy USB, którego potrzebujemy, to „8087”.

Po drugie, skonfiguruj udev(musisz zastąpić wartość „idVendor” swoją):

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

Po trzecie, ponownie podłącz urządzenie, aby móc udevwykonać jego magię.

Kontrola końcowa:

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

elichai2
źródło
2
Dobra lista identyfikatorów dostawców Androida jest dostępna na wiki.cyanogenmod.org/w/UDEV
Ehtesh Choudhury
3
Istnieje tutaj oficjalna lista: developer.android.com/studio/run/device.html
elichai2
2
Będziesz także potrzebować sudo udevadm trigger.
Jonas G. Drange
Rozważ tryb „0664”.
naXa
1
To jest poprawna odpowiedź. W rzeczywistości jest to jedyna odpowiedź. Używanie sudonie jest rozwiązaniem.
Gaurav Gandhi,
5

Moje rozwiązanie

Dzięki elichai2 oraz temu linkowi i liście udało mi się rozwiązać problem z uprawnieniami do szybkiego uruchamiania .

Mam Google Nexus 6P, więc użyłem następujących identyfikatorów dostawcy:

Google - 18d1


51-android.rules

Jeśli użyjesz następującego polecenia:

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

skopiuj to dokładnie. Byłem już rootem i próbowałem skopiować tylko część echa, co dało mi niepożądane wyniki. Zasadniczo umieszcza \ "w pliku .rules zamiast interpretować ukośnik jako znak zmiany znaczenia.

Sugeruję skorzystanie z poniższych, jeśli już rootujesz tworzenie pliku .rules (użyj swojego identyfikatora dostawcy).

echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"' >> /etc/udev/rules.d/51-android.rules


Udev Przeładuj i uruchom

Ponownie załadowałem reguły udev, a następnie wydałem polecenie wyzwalacza. Dla pewności również odłączyłem i podłączyłem USB.

udevadm control --reload
udevadm trigger


Fastboot

Jako nieuprzywilejowany użytkownik uruchomiłem:

fastboot devices

i działało zgodnie z życzeniem. Mam nadzieję, że może to być przydatne lub pomóc każdemu, kto doświadczy problemów z uprawnieniami.

Brandon Authier
źródło
Fajnie, podałem link do listy w odpowiedzi na mój komentarz.
elichai2
udevadmin: nie znaleziono polecenia
IgorGanapolsky
1
@IgorG. Przepraszam za tak późną odpowiedź. Naprawiłem powyższą literówkę. Powinien to być „udevadm”.
Brandon Authier
1

kiedy muszę wysłać niektóre polecenia za pomocą fastboot (na przykład flashowanie oprogramowania układowego na urządzeniu HTC), instaluję fastboot za pomocą apt

sudo apt install android-tools-fastboot

wtedy kiedy zaczynam używać, pierwsze polecenie to

sudo -s

wtedy wszystkie polecenia w tym terminalu będą działać jak polecenia wysyłania roota, takie jak

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

nie ma potrzeby poprawiania lub coś takiego, wystarczy jedno dodatkowe polecenie przed jego uruchomieniem

ahmed.ismael
źródło
-1

Najpierw zainstaluj Fastboot z apt:

sudo apt install android-tools-fastboot

Następnie uruchom fastboot za pomocą sudo:

sudo fastboot

Mi to pasuje.

mrroot5
źródło
Fastboot można również pobrać z SDK i ustawić ścieżkę aliasu w .bashrc
IgorGanapolsky