Android adb bez pozwolenia


33

Próbuję użyć adb z maszyny Ubuntu (+ cynamon). Problem polega na tym, że otrzymuję następujący komunikat z urządzeń adb :

List of devices attached
TA8830OIVO  no permissions

Gdzie TA8830OIVO to moje urządzenie Motorola G.

Zmieniłem reguły Androida w /etc/udev/rules.d/51-android.rules

SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="2e76",
MODE="0666", GROUP="plugdev", SYMLINK+="android_adb", OWNER="axel"

Zrestartowałem również usługę udev i adb jest instalowany na moim osobistym laptopie. Jestem jedynym użytkownikiem z wszystkimi potrzebnymi przywilejami (grupa plugdev i tak dalej).

Czy istnieje sposób na uruchomienie adb bez wywoływania sudo ?


1
Ponowne uruchomienie udev i sudo udevadm triggernie działało dla mnie. Musiałem ponownie uruchomić komputer, a potem zadziałało dobrze
Rafael Xavier,

Odpowiedzi:


65

Zmień tryb USB w telefonie na Przesyłanie plików. To działało dla mnie.


Dla mnie jest odwrotnie: debugowanie USB nie działa w trybie przesyłania plików na niektórych starych urządzeniach.
Miha_x64,

1
Aktualizacja: właśnie zauważyłem, że w moim telefonie (Android) debugowanie USB można również włączyć w trybie ładowania w Ustawieniach programisty.
NuttLoose

2
Przejście do trybu przesyłania plików działało dla mnie. Na Androidzie 7
Abrar

Kindle Fire 8 2019 - „Tryb MTP”, który jest w konfiguracji USB w Opcjach programisty.
Bill McGonigle

Zmieniłem, a następnie zostałem poproszony o urządzenie, aby umożliwić debugowanie USB: D
Maxwell sc

27
  1. Pamiętaj, aby uruchomić, sudo udevadm triggeraby zastosować zmiany (lub zrestartować komputer, ale co w tym jest fajnego).
  2. Zamiast pisać własne zasady, użyj https://github.com/M0Rf30/android-udev-rules
  3. Upewnij się, że masz najnowszą wersję ADB (1.0.35 102d0d1e73de-android). Wcześniej dla mnie nie działały z USB-C.

Dzięki, ale to trochę stare pytanie. Przeszedłem na Mac 2 lata temu. Uważam za głupie robić rzeczy takie jak lsusb, a następnie modyfikować reguły, kiedy powinno to być wykonywane automatycznie ... Zrezygnowałem po tylu latach używania Ubuntu. Nie mogę znaleźć porządnego systemu Linux Desktop.
shadox

1
Pytanie ma 6 miesięcy i nadal obowiązuje dla potomności. 1 rok temu zrzuciłem OS X po 3 latach i wróciłem do Linuksa z podobnych powodów;). Linux ma części, w których staje się frustrujący, ale w OS X wymagana jest podobna ilość majsterkowania, jeśli używasz homebrew + zsh + iTerm2. Różnica polega na tym, że są to głównie FOSS o zamkniętym źródle lub przestarzałe wersje, ale z ładnym GUI i UX (w przeważającej części). Korzystanie z reguł z repozytorium sprawia, że ​​jest to w większości jednorazowy krok konfiguracji. Biorąc pod uwagę arkana polegającą na tym, że zestaw Android SDK działa w rozsądny sposób, jest to gra dla małych dzieci.
zamber

1
Uruchomienie tego i service udev restartnie działało dla mnie. Musiałem zrestartować komputer, a potem zadziałało dobrze.
Rafael Xavier

W Ubuntu 16.04 ustawianie reguł udev, zmiana trybu USB w telefonie na przesyłanie plików działała jak urok. Ponowne uruchomienie nie jest konieczne.
Gautam

Na Ubuntu 16.04 z Pixel 2 dodanie reguł z gitbub punktu 2 działa nawet bez przejścia do trybu przesyłania plików.
Mike Hanafey

3

Jeśli ponownie uruchomisz serwer ADB za pomocą sudo, będzie działać.

sudo adb kill-server
sudo adb start-server

0

Zdefiniuj niestandardową funkcję gradacji:

task _adb_restart {
def adb = android.getAdbExe().toString()
group '__custom'
  doLast {
    exec {
      commandLine 'bash', '-c', '/bin/echo **root_password** | sudo -S ' + adb + ' kill-server'
    }
    exec {
      commandLine 'bash', '-c', '/bin/echo **root_password** | sudo -S ' + adb + ' devices'
    }
  }
}

0

Najlepszym rozwiązaniem i tym, co działało dla mnie lepiej, jest instalacja adbz pakietu Ubuntu. Daje to utrzymywany przez społeczność domyślny zestaw udevreguł dla wszystkich urządzeń z Androidem.

przykład:

$ sudo apt-get install adb

0

W przypadku Amazon Fire OS 8, systemu operacyjnego Android, możesz przejść do „Ustawienia> Opcje urządzenia> Opcje programisty”. Może być konieczne włączenie go .

Upewnij się, że „Debugowanie USB” jest włączone (w twoim przypadku tak jest).

Następnie przejdź do „Sieć> Wybierz konfigurację USB”. Wybierz „MTP (Media Transfer Protocol)”. Dzięki temu komputer może wysyłać pliki tam iz powrotem.


0

usuń pakiet adb zainstalowany przez apt

$sudo apt remove adb

pobierz najnowszy adb z
https://developer.android.com/studio/releases/platform-tools

ustaw ścieżkę do narzędzi platformy (lepiej umieść te dwie linie w pliku ~ / .bashrc)

export PATH= /<path-to-android-sdk-folder>/android-sdk/tools/bin<br>
export PATH= /<path-to-android-sdk-folder>/android-sdk/platform-tools

biegać

$source ~/.bashrc

sprawdź ścieżkę adb

$which adb

uruchom adb w sudo (musiałem podać bezwzględną ścieżkę do adb podczas uruchamiania w sudo)

$sudo /<path-to-android-sdk-folder>/android-sdk/platform-tools/adb kill-server
$sudo /<path-to-android-sdk-folder>/android-sdk/platform-tools/adb start-server
$adb shell

GOTOWY.
działa niezależnie od trybu USB (MIDI, przesyłanie plików, ładowanie) telefonu z systemem Android. To działa we wszystkich.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.