Używam Ubuntu 12.10 i zainstalowałem Android SDK, ustaw ścieżkę dla mojego użytkownika .bashrc
i działa.
Problem polega na tym, że mój telefon wymaga uruchamiania adb przez rootowanie w celu uzyskania uprawnień, ale uruchamiając adb z sudo, pojawia się następujący błąd:
sudo: adb: nie znaleziono polecenia
Próbowałem po prostu użyć sudo -E adb start-server
, ale to nie działa. Próbowałem dodać linię ścieżki eksportu do /root/.bashrc
i (po uświadomieniu sobie, że to nie pomogło) do /etc/bash.bashrc
.
Pamiętam, że mogłem ustawić go na moim Arch Linux, ale wydaje mi się, że mój problem jest teraz połączony z kontem root Ubuntu, nie zachowując się tak, jak tego oczekuję.
To, czego nie rozumiem, to:
Te nie działają:
martin@alyx:~$ sudo adb devices
sudo: adb: command not found
Robi to (wpisując pełną ścieżkę):
martin@alyx:~$ sudo /opt/android-sdk-linux/platform-tools/adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
CM7-Blade device
To nie działa (użycie -E z sudo):
martin@alyx:~$ sudo -E adb devices
sudo: adb: command not found
Działa to (jako root):
martin@alyx:~$ sudo su
root@alyx:/home/martin# adb devices
List of devices attached
CM7-Blade device
Jestem teraz całkowicie zdezorientowany i doceniam wyjaśnienie, w jaki sposób ustawić ścieżkę do sudo lub jak inaczej rozwiązać mój problem.
(I proszę, nie mów, że adb nie powinien być uruchamiany jako root).
Z góry dziękuję!
Edycja: Wymagając uprawnień roota mam na myśli, że ich potrzebuję, ponieważ w przeciwnym razie otrzymuję:
$ adb devices
List of devices attached
???????????? no permissions
co nie występuje jako superużytkownik. Przepraszam, jeśli to było nieporozumienie.
Odpowiedzi:
Przeczytaj najpierw: Jak skonfigurować Android ADB?
Konfigurowanie dostępu USB
Po pierwsze, nie potrzebujesz uprawnień administratora, aby uruchomić ADB, jeśli odpowiednio ustawiłeś uprawnienia. Witryna AOSP zawiera przykłady konfiguracji dostępu USB dla urządzeń Pixel / Nexus. Możesz użyć następującego schematu dla urządzeń innych niż Nexus:
Identyfikator dostawcy i produktu można uzyskać, korzystając
lsusb
z urządzenia i wyszukując je. (Uwaga: urządzenie to w rzeczywistości Galaxy Nexus.)Więc moja
/etc/udev/rules.d/51-android.rules
zasada udev wygląda następująco:W razie potrzeby możesz to powtórzyć dla innych stanów telefonu, takich jak fastboot. Aby zmiany odniosły skutek, należy ponownie załadować udev (
sudo udevadm control --reload
) lub uruchomić ponownie (zalecane).Udostępnianie programów
Zamiast modyfikować zmienną ścieżkową sugerowałbym dodanie dowiązania symbolicznego do pliku wykonywalnego albo w
~/bin/
(tylko użytkownik), albo w/usr/local/bin/
(cały system).źródło
adb devices
działa dla mnie bez uprawnień roota.Natknąłem się na ten sam problem z tabletem z Chin (jakiś dziwny producent).
Oprócz
/etc/udev/rules.d/51-android.rules
pliku musiałem również zmienić~/.android/adb_usb.ini
.Uruchom poniżej na terminalu;
a twój
adb_usb.ini
plik powinien wyglądać następująco:Odłączone i ponownie podłączone urządzenie, a także potrzebne do uruchomienia poniżej poleceń na terminalu;
a potem
I urządzenie zostało wykryte.
źródło
0x2207
twoim przykładzie jest to ten sam identyfikator dostawcy, którego używa moje urządzenie.W moim przypadku zamiast trybu MTP niektóre smartfony musiały być po prostu ustawione w trybie PTP, w przeciwieństwie do większości urządzeń, które wymagały wykrycia trybu MTP w moim Android Studio (wersja 1.5.1).
Więc najpierw wypróbuj tryby MTP i PTP bez potrzeby poświęcania czasu na bardziej złożoną konfigurację ADP Uniksa i być może wyrządzając im szkodę.
W nowszych urządzeniach możesz wybrać go bezpośrednio w opcjach programistycznych, podczas gdy w starszych znajduje się w opcjach połączonych USB na pasku stanu.
Jednak także dla mnie najnowsze urządzenia Sony Xperia od Z5 i wyższych nie będą działać bez względu na tryb USB. Być może moje Android Studio jest stare lub muszę kopać również w Uniksowych konfiguracjach ADP.
źródło
Wykonaj następujące kroki:
Ustaw zmienne Androida
Początkowo przejdź do domu i naciśnij Ctrl+ Hpokaże ci ukryte pliki, poszukaj
.bashrc
pliku, otwórz go w dowolnym edytorze tekstu, a następnie umieść poniższe linie na końcu pliku:Restart
Za pomocą urządzenia do debugowania
Nasłuchuj połączenia:
Podłącz swoje urządzenie z Androidem i autoryzuj je:
źródło
Konfigurowanie dostępu USB
Zalecanym podejściem jest utworzenie pliku w
/etc/udev/rules.d/51-android.rules
.Proszę wpisać Terminal:
Te nowe reguły obowiązują przy następnym podłączeniu urządzenia. Może być zatem konieczne odłączenie urządzenia i ponowne podłączenie go do komputera.
źródło
Mimo że zaakceptowana odpowiedź pomogła mi załatwić sprawę, nadal byłem zdezorientowany:
a szczególnie
ponieważ zgodnie z
sudo --help
:Okazuje się, że w wielu dystrybucjach linuksowych (w tym Debian i Ubuntu)
secure_path
ienv_reset
opcje są domyślnie włączone, co resetujePATH
zmienną i ustawia ją nasecure_path
. Możesz to zmienić w/etc/sudoers
pliku za pomocą visudo.Alternatywnie możesz uruchomić:
źródło
Wypróbuj to polecenie:
sudo tools/android update sdk --no-ui
CZYTNIK SDK:
źródło