Odpowiedzi:
Spróbuj użyć sudo $(which fastboot)
na przykład sudo $(which fastboot) devices
również sudo $(which fastboot) oem unlock
Znalazłem lepsze rozwiązanie tutaj:
https://stackoverflow.com/a/28127944/1621927
Oto komentarz:
Zamiast wymuszać uprawnienia za sudo
każdym razem, gdy musisz uruchomić fastboot
, możesz trwale rozwiązać problem:
lsusb
do identyfikacji urządzenia USB VendorIDudev
aby ustawić odpowiednie uprawnienia po podłączeniu urządzeniaJako 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 udev
wykonać 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!
sudo udevadm trigger
.
sudo
nie jest rozwiązaniem.
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
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
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
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.
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
Lub możesz dodać wszystkie reguły udev: Pełny zestaw reguł identyfikatora dostawcy USB Android dla systemu Linux https://gist.github.com/jdamcd/6054951#file-51-android-rules
Najpierw zainstaluj Fastboot z apt:
sudo apt install android-tools-fastboot
Następnie uruchom fastboot za pomocą sudo:
sudo fastboot
Mi to pasuje.