Używam systemu Ubuntu 10.10 w wersji 64-bitowej. Mam zainstalowane ia32-libs wraz z wersją 1.0.26 Android Debug Bridge.
Moje problemy):
adb devices
>>> ???????????? Brak uprawnieńsudo adb devices
>>>> sudo: adb: nie znaleziono poleceniaadb shell
>>> błąd: niewystarczające uprawnienia do urządzenia
Myślę, że to wszystko jest powiązane. Oto istotne informacje.
$ echo $PATH
/home/me/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/android-sdk-linux_x86/tools:/opt/android-sdk-linux_x86/platform-tools
$ which adb
/opt/android-sdk-linux_x86/platform-tools/adb
$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
???????????? no permissions
$ sudo adb devices
sudo: adb: command not found
$ adb shell
error: insufficient permissions for device
Otrzymuję te same wyniki z zrootowanym Moto Droidem z CM6.1 i zrootowaną G-Tab z pamięcią ROM opartą na CM7.
Przejrzałem następujące powiązane posty:
- http://forum.xda-developers.com/archive/index.php/t-522827.html
- http://ubuntuforums.org/archive/index.php/t-1164359.html
- Nie znaleziono polecenia adb w środowisku Linux
Wypróbowałem większość (nie wszystkie) sugestii i nie udało mi się rozwiązać problemu. Rzeczy, których nie próbowałem, wydawały się nieodpowiednie. Byłbym wdzięczny za kilka dodatkowych wskazówek i będę kontynuować rozwiązywanie problemów.
Jedną rzeczą, której nie próbowałem, było edytowanie /etc/udev/rules.d/70-android.rules. Czy to może być problem? Nie widzę, jak mogłoby to spowodować „sudo: adb: polecenie nie znaleziono”. Może nie wszystkie moje problemy są ze sobą powiązane. W każdym razie, w tym momencie myślę, że potrzebuję wkładu od innych ludzi, ponieważ nie wierzę, że mam problem ze ścieżką lub inne typowe problemy omówione w innych postach.
EDYCJA: ROZWIĄZANE dzięki EboMike i RivieraKid. W rzeczywistości były to dwa różne problemy:
Punkt 2 powyżej (sudo: adb: command not found) został rozwiązany poprzez utworzenie linku symbolicznego w następujący sposób:
$ sudo ln -s /opt/android-sdk-linux_x86/platform-tools/adb /usr/local/sbin/adb
To pozwoliło mi zrobić to, co sugerował EboMike i użyć tego rozwiązania . Było to wymagane w przypadku mojego Moto Droida. (Uruchomienie adb jako sudo nie było jednak wymagane dla mojego Viewsonic G-Tablet.)
Moje pozostałe dwie kwestie zostały rozwiązane poprzez zaimplementowanie reguły udev zgodnie z sugestią RivieraKid (z tego linku ).
Odpowiedzi:
Jakiś szczególny powód, dla którego tego nie zrobiłeś? Odpowiadając na pytanie - TAK! Reguły udev są tym, co informuje Ubuntu, jakie jest twoje urządzenie i umożliwia narzędziom przestrzeni użytkownika dostęp do niego.
Nie będziesz mógł korzystać z adb bez prawidłowego wykonania instrukcji .
Mając to jednak na uwadze, nie mówisz, jakiej wersji Ubuntu używasz, ale miałem problemy z 10.10 - daj mi znać, jeśli chcesz, abym opublikował zawartość mojego pliku reguł.
Nie martw się o uruchomienie adb przez sudo, nie potrzebujesz tego.
MODE="0666"
Z reguły udev pozwala na dostęp do urządzenia za każdego użytkownika.EDYTOWAĆ:
Nie zapomnij ponownie załadować zasad:
sudo udevadm control --reload-rules
EDYCJA # 2:
Jak słusznie wskazuje @Jesse Glick, jeśli adb już działa w trybie demona, musisz również uruchomić go ponownie, aby to zadziałało:
sudo adb kill-server
Użyłem tutaj sudo, ponieważ gwarantuje to, że adb zostanie zabity i jest to oficjalnie obsługiwana metoda zatrzymania serwera. Zostanie automatycznie uruchomiony ponownie przy następnym użyciu Adb, ale tym razem z odpowiednim środowiskiem.
źródło
adb
demona, jeśli wcześniej działał.Musisz ponownie uruchomić serwer adb jako root. Zobacz tutaj .
źródło
me@desktop:/opt/android-sdk-linux_x86/platform-tools$ sudo adb kill-server sudo: adb: command not found me@desktop:/opt/android-sdk-linux_x86/platform-tools$ adb kill-server me@desktop:/opt/android-sdk-linux_x86/platform-tools$ sudo adb start-server sudo: adb: command not found
adb
nie jest na drodze twojego superużytkownika. Wejdź,which adb
aby dowiedzieć się, w której ścieżce się znajduje, a następnie dodaj ją do ścieżki roota.W moim systemie Linux Gentoo / Funtoo mam podobne problemy:
Zawsze otrzymuję nieprawidłowy opis urządzenia i niewystarczające uprawnienia:
# sudo ./adb devices List of devices attached ???????????? no permissions # ./adb usb error: insufficient permissions for device
U mnie pomaga Howto z Google. W moim przypadku musiałem dodać regułę udev:
# cat /etc/udev/rules.d/51-android.rules SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"
i ustawianie praw systemu plików
# chmod a+r /etc/udev/rules.d/51-android.rules
Po ponownym podłączeniu mojego smartfona dostęp do telefonu powiódł się, pojawia się on również teraz w narzędziu Eclipse do wyboru urządzeń z systemem Android:
# sudo ./adb devices List of devices attached 3XXXXXXXXXXXXXC device # sudo ./adb usb restarting in USB mode
Musisz także sprawdzić członkostwo swojego użytkownika w grupie plugdev .
źródło
Każda odpowiedź, którą przeczytałem, wskazuje na
SUBSYSTEM=="usb"
. Jednak mój (być może starożytny) udev potrzebował zmiany naDRIVER=="usb"
. Nareszcie mogę uruchomić serwer adb jako użytkownik inny niż root ... tak.Pouczające może być przyjrzenie się wynikowi polecenia udevmonitor --env, a po nim wynikowi polecenia
udevinfo -a -p <DEVICE_PATH_AS_REPORTED_BY-udevmonitor>
źródło
udevmonitor
iudevinfo
nie istnieją na twoim komputerze, użyjudevadm monitor
iudevadm info -a -p ...
zamiast tego.Należy pamiętać, że środowiska IDE, takie jak IntelliJ IDEA, zwykle uruchamiają własny serwer adb.
Nawet ręczne zabicie serwera i uruchomienie nowej instancji z sudo nie pomoże tutaj, dopóki nie sprawisz, że IDE zabije sam serwer.
źródło
ponowne uruchomienie serwera adb jako root zadziałało dla mnie. widzieć:
derek@zoe:~/Downloads$ adb sideload angler-ota-mtc20f-5a1e93e9.zip loading: 'angler-ota-mtc20f-5a1e93e9.zip' error: insufficient permissions for device derek@zoe:~/Downloads$ adb devices List of devices attached XXXXXXXXXXXXXXXX no permissions derek@zoe:~/Downloads$ adb kill-server derek@zoe:~/Downloads$ sudo adb start-server * daemon not running. starting it now on port 5037 * * daemon started successfully * derek@zoe:~/Downloads$ adb devices List of devices attached XXXXXXXXXXXXXXXX sideload
źródło
Naprawiłem ten problem w moim systemie Debian GNU / Linux, zastępując reguły systemowe w ten sposób:
Wykorzystałem treści z plików, do których linki znajdują się na: http://rootzwiki.com/topic/258-udev-rules-for-any-device-no-more-starting-adb-with-sudo/
źródło
HTC One M7 z nowym Cyanogenmod 11.
Telefon jest podłączony przez USB i tetheringuje moje połączenie danych.
Wtedy dostaję tę niespodziankę:
cinder@ultrabook:~/temp/htc_m7/2015-11-11$ adb shell error: insufficient permissions for device cinder@ultrabook:~/temp/htc_m7/2015-11-11$ adb devices List of devices attached ???????????? no permissions
ROZWIĄZANIE: Wyłącz tethering w telefonie.
cinder@ultrabook:~/temp/htc_m7/2015-11-11$ adb devices List of devices attached HT36AW908858 device
źródło
Właśnie dostałem tę samą sytuację, przywrócenie danych fabrycznych działało dobrze.
źródło