skonfiguruj urządzenie do programowania (???????????? brak uprawnień)

282

Używam telefonu Samsung Galaxy Nexus ( platforma Android 4.0 ).

Tworzę aplikację na system Android na Ubuntu Linux. Chciałbym uruchomić moją aplikację bezpośrednio na urządzeniu telefonu Samsung, dlatego wykonałem następujące kroki konfiguracji:

  1. w moim AndroidManifest.xmlpliku projektu dodanym android:debuggable="true"do <application>elementu

  2. Na urządzeniu w Ustawienia> Zabezpieczenia włączone Nieznane źródła

  3. Na urządzeniu, w menu Ustawienia> Opcje programistyczne włączono debugowanie USB

  4. Na moim komputerze utworzyłem /etc/udev/rules.d/51-android.rulesplik o następującej treści:

    SUBSYSTEM=="usb", ATTR{idVendor}=="04E8", MODE="0666", GROUP="plugdev" 
  5. Na moim komputerze uruchom chmod a+r /etc/udev/rules.d/51-android.rulespolecenie

Następnie na komputerze otworzyłem terminal i adb deviceswykonałem polecenie, otrzymałem:

List of devices attached 
????????????    no permissions

Ponieważ nie widziałem mojego urządzenia, a jedynie ???????????? no permissions, uruchamiam następujące polecenia:

 adb kill-server
 adb start-server
 adb devices

Ale wciąż mam:

List of devices attached 
????????????    no permissions

Czemu? czego mi brakuje?

Leem.fin
źródło
po wykonaniu adb kill-server dostałeś komunikat, że * demon nie działa. uruchamianie teraz na porcie 5037 * * demon uruchomił się pomyślnie * --- jeśli nie, spróbuj, dopóki nie dostaniesz tego msg
Andro Selva
2
Spróbuj sprawdzić, czy użytkownik jest w plugdevgrupie.
Sergey Glotov
2
Run => sudo adb start-server (Użyj dostępu roota, aby uruchomić adb)
Zmieszany
w końcu znalazłem rozwiązanie, które zadziałało dla mnie w tym linku github.com/snowdream/51-android
Abdulrahman Gamal

Odpowiedzi:

451

To, co działa dla mnie, to zabić i ponownie uruchomić serwer adb. W systemie Linux: sudo adb kill-servera następnie sudo adb start-server. Następnie wykryje prawie każde urządzenie po wyjęciu z pudełka.

WarrenFaith
źródło
1
Używam roota, aby wykonać polecenie „urządzenia adb” w <android-SDK> / platform-tool /, dostałem „Nie znaleziono polecenia„ adb ”, dlaczego?
Leem.fin
8
upewnij się, że twój adb ma + x -rwxrwxr-x 1 martin martin 156K 2011-11-09 15:40 adb. Spróbuj przejść bezpośrednio do katalogu i zacząć od „sudo ./adb devices”. Jeśli możesz uruchomić to bez sudo, powinieneś być w stanie uruchomić go z sudo ... Nie jestem pewien, jaki może być twój problem ...
WarrenFaith
8
Nie musisz uruchamiać adb jako root, jeśli twoje uprawnienia udev są ustawione poprawnie. Zobacz odpowiedzi żabnicy poniżej lub zapoznaj się z dokumentacją Androida: developer.android.com/tools/device.html
gnac
4
Jedną ważną sugestią jest odłącz kabel USB, więc resetujesz adb, podłącz kabel i działa. W mojej sytuacji, gdy wykonałem procedurę z podłączonym kablem, nie działa to dla mnie.
androidevil
6
Polecenia są następujące: adb kill-server sudo adb start-serversprawdzić:adb devices
Asim
350

Nic mi nie działało, dopóki nie znalazłem odpowiedzi tutaj: http://ptspts.blogspot.co.il/2011/10/how-to-fix-adb-no-permissions-error-on.html

Kopiuję tutaj tekst na wypadek, gdyby zniknął w przyszłości.

Utwórz plik o nazwie /tmp/android.rules z następującą zawartością (szesnastkowe numery dostawców zostały pobrane ze strony listy dostawców):

SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0e79", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0502", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="413c", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0489", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="091e", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="24e3", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2116", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0482", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="17ef", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0409", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2080", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2257", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="10a9", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1d4d", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0471", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04da", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1f53", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04dd", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fce", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0930", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1bbb", MODE="0666"

Uruchom następujące polecenia:

sudo cp /tmp/android.rules /etc/udev/rules.d/51-android.rules
sudo chmod 644   /etc/udev/rules.d/51-android.rules
sudo chown root. /etc/udev/rules.d/51-android.rules
sudo service udev restart
sudo killall adb

Odłącz kabel USB między telefonem a komputerem.

Ponownie podłącz telefon.

Uruchom, adb devicesaby potwierdzić, że teraz ma uprawnienia dostępu do telefonu.

Należy pamiętać, że można użyć , USER="$LOGINNAME"zamiast , MODE="0666"w .rulespliku, zastępując $LOGINNAMEswoją nazwę użytkownika, czyli co id -nudrukuje.

W niektórych przypadkach może być konieczne nadanie plikowi reguł udev nazwy, która sortuje się blisko końca, np z51-android.rules.

grebulon
źródło
7
Uwaga: w przypadku Ubuntu Precise nazwa pliku jest zgodna z70-android.rules tym postem: esausilva.com/2010/05/13/… . Również podziękowania za poinformowanie nas, że musisz zrestartować udevi zabić wszystkie procesy adb. Działa jak urok!
Eduard Luca
Podobne podejście zostało oficjalnie udokumentowane na stronie developer.android.com/tools/device.html
bjunix
4
Działa to dobrze, ale jak zauważył @luciana w innej odpowiedzi, może być konieczne wywołanie w sudo udevadm control --reload-rulescelu odświeżenia reguł udev, jeśli ponowne uruchomienie serwera nie wystarczy.
serjlee,
4
To powinno być oznaczone jako poprawna odpowiedź, ponieważ sudo-inging adb nie powinien być wymogiem dla Linuksa
Zac
1
To jedyna poprawna odpowiedź tutaj. Dzięki za to! Możemy również zobaczyć wyjście lsusb, aby upewnić się, że wymagany dostawca jest uwzględniony. Co najdziwniejsze, tylko jedno z moich urządzeń (OnePlus One) nagle przestało działać po aktualizacji do Androida 7.1.2 (nawet po uruchomieniu adb jako root), po dodaniu reguł udev jak opisano powyżej, działa ponownie.
user1209216 18.04.17
77

Wprowadź następujące polecenia:

adb kill-server sudo ./adb start-server adb devices

Problem polega na tym, że nie działa serwer adb jako root.

iancrowther
źródło
4
chociaż pomysł jest taki sam, jak w zaakceptowanej odpowiedzi, ta pomogła mi tylko dzięki podanemu przykładowi. Dzięki
użytkownik907860,
1
@ user907860 jest rzeczywiście lepszy niż zaakceptowana odpowiedź, ponieważ wyjaśnia, dlaczego powinieneś pisać sudo :) (czego nie zrobiłem, kiedy zobaczyłem zaakceptowaną odpowiedź)
stan0
btw jakiś pomysł, dlaczego adb powinien być uruchomiony jako root?
stan0
przepraszam nie, nie pamiętam
iancrowther 27.04.15
2
adb NIE powinien być uruchomiony jako root. Jeśli jest to wymagane, system jest źle skonfigurowany. Przestań rzucać „sudo” przed wszystkim, ma to ogromny wpływ na bezpieczeństwo.
hackel
55

Próbowałem wszystkich powyższych, żaden nie działał .. w końcu działał, kiedy przełączałem podłączony z MTP na aparat (PTP).

Sabeer Mohammed
źródło
3
Dla tych, którzy zastanawiają się, jak to zrobić ... Ustawienia systemu> Pamięć> prawy górny przycisk: połączenie USB z komputerem> Podłącz jako wybierz kamerę (PTP) zamiast urządzenia multimedialnego (MTP)
Thaddeus Albers
3
człowieku, szukałem rozwiązania jak dwie godziny, to działa na mnie na Ubuntu 16.04, dzięki
Jorius
to powinna być pierwsza rzecz do sprawdzenia. Działa dla mnie
m50
32

Istnieje wiele złych odpowiedzi na to pytanie, od nalegania na uruchomienie adbjako root(które nie powinno być reklamowane jako jedyne lub nawet zalecane rozwiązanie) po rozwiązywanie całkowicie niezwiązanych problemów.

Oto najkrótszy i najbardziej uniwersalny przepis na jednoczesne dbanie o uprawnienia dla wszystkich adbi fastbooturządzeń:

echo 'ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="*:ff420?:*", MODE="0666"' | sudo tee /etc/udev/rules.d/99-android.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --verbose --action=add --subsystem-match=usb

Możesz też użyć nieco dłuższej wersji, którą opublikowałem w tym artykule .

Jeśli chodzi o konkretną rzecz, którą OP popełnił źle w swoim pytaniu - nie przeładowywanie udevreguł po edycji .rulespliku.

Również OP nie powiedział, którą wersję Androida (czyli ROM) ma na swoim telefonie. idVendorWartość jest ustawiona w oprogramowaniu i dlatego zależy ROM. Tak więc wartość 04E8użyta w jego oryginalnej regule działałaby tylko dla urządzeń z fabrycznymi ROMami Samsunga. Nie stanowi to jednak problemu w przypadku tej udevreguły - pasuje ona do wszystkich urządzeń z interfejsami adblub fastbootniezależnie od ich ID dostawcy .

Alex P.
źródło
Jedynym brakującym krokiem, aby sprawdzić, czy działa, jest serwer zabijania adb przed urządzeniami adb.
mstrange
1
Wydaje się, że to już nie działa w Androidzie 8.1. Jak dowiedziałeś się, co adb zgłasza jako identyfikator urządzenia?
Cachapa,
Pracowałem dla mnie na Androidzie 7.1.2
Amerzilla
@Cachapa, działa ze wszystkimi wersjami Androida. Nawet najnowszy (w chwili pisania tego) Android P Preview 4 używa tych samych identyfikatorów interfejsów adb - android.googlesource.com/platform/system/core/+/…
Alex P.,
nadal działa z Androidem 11 android.googlesource.com/platform/system/core/+/…
Alex P.
16

W Archlinux może się to zdarzać czasami. Poprawka:

$ sudo -s
# adb kill-server
# adb start-server
Keenan Verbrugge
źródło
Nie jestem pewien, czy to była jedyna rzecz, która sprawiła, że ​​zadziałało ... Próbowałem powyższych rzeczy. Ale bez tego postu ubuntu na VBox nie spowodowało autoryzacji mojego LG G3. Dziękuję Keenan
lastboy
Nie wiem dlaczego, ale sudo adb kill-server; sudo adb start-servernie działał, ale ten zadziałał.
Hritik
9

Dla tych, którzy używają Debiana, przewodnik konfiguracji urządzenia w systemie Ubuntu w celu utworzenia pliku „/etc/udev/rules.d/51-android.rules” nie działa. Postępowałem zgodnie z instrukcjami stąd . Odkładam to samo tutaj w celach informacyjnych.

Edytuj ten plik jako administrator

sudo nano /lib/udev/rules.d/91-permissions.rules

Znajdź tekst podobny do tego

# usbfs-like devices 
SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, \ MODE=”0664

Następnie zmień tryb na 0666 jak poniżej

# usbfs-like devices 
SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, \ MODE=”0666

Pozwala to na działanie adb, jednak wciąż musimy skonfigurować urządzenie, aby można je było rozpoznać. Musimy utworzyć ten plik jako administrator,

sudo nano /lib/udev/rules.d/99-android.rules

i wejdź

SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, ATTRS{idVendor}==”0bb4″, MODE=”0666

powyższa linia dotyczy HTC, postępuj zgodnie z postem @ grebulon, aby uzyskać pełną listę.

Zapisz plik, a następnie uruchom ponownie udev jako superużytkownik

sudo /etc/init.d/udev restart

Podłącz telefon przez USB i powinien zostać wykryty podczas kompilacji i uruchamiania projektu.

Jaga
źródło
5

Miałem ten sam problem, rozwiązanie jest takie samo: (nawiasem mówiąc, nie musisz rootować urządzenia).

  1. Wpisz „su”, aby przełączyć na superużytkownika.
  2. twoja-ścieżka / adb kill-server.
  3. twoja-ścieżka / serwer startowy adb.
  4. Jeśli nie wystąpi błąd, możesz zobaczyć listę urządzeń z „twoimi ścieżkami / urządzeniami adb” na koncie root.
  5. Zamknij superużytkownika.
  6. Teraz możesz wykonywać „urządzenia adb” na swoim koncie.

Cieszyć się.

Jeffrey Yang
źródło
1
Jeśli nie możesz się zalogować przy użyciu su, użyj sudo su. Zrobiłem. A także, jeśli nie wiesz, jak zamknąć użytkownika - użyj exit.
Pijusn
4

Wiem, że to może być trochę za późno, ale tutaj jest bardzo dobry artykuł na temat ręcznego dodawania sterownika Android ADB USB. Ręczne dodawanie sterownika USB Android ADB w Ubuntu 14.04 LTS

Edytowano, aby dodać treść linku

Kroki

Uwaga: Upewnij się, że urządzenie z Androidem zostało podłączone w trybie debugowania USB

Otwórz terminal ( CTRL + ALT + T) i wprowadź polecenie: lsusb

Teraz możesz otrzymać podobną odpowiedź na to:
Bus 002 Device 013: ID 283b:1024

Uwaga: W związku z tymBus 002 Device 008: ID 283b:1024
{idVendor}==”283b” {idProduct}==”1024″

Teraz wprowadź następujące polecenie: sudo gedit /etc/udev/rules.d/51-android.rules
Spowoduje to utworzenie pliku reguł systemu Android ( 51-android.rules) lub otwarcie istniejącego pliku w określonej lokalizacji ( /etc/udev/rules.d)

Dodaj nową linię do tego pliku:
SUBSYSTEM==”usb”, ATTRS{idVendor}==”283b”, ATTRS{idProduct}==”1024″, MODE=”0666″

Uwaga Edytuj idVendori idProductwartości z wartościami urządzenia. Zapisz i zamknij.

Teraz wprowadź następującą komendę:
sudo chmod a+rx /etc/udev/rules.d/51-android.rules- udziel uprawnienia do odczytu / wykonania
sudo service udev restart- Uruchom ponownie udevusługę

Teraz musimy dodać idVendordo adb_usb.ini. Wprowadź następujące polecenia:
cd ~/.android
gedit adb_usb.ini

Dodaj następującą wartość 0x283b

To nic innego jak 0x ( idVendorwartość). Więc zamień wartość na. w odniesieniu do wartości urządzenia Zapisz i zamknij plik.

Teraz wprowadź następujące polecenie:
sudo service udev restart

Podłącz urządzenie z Androidem i podłącz je ponownie.
Teraz wprowadź następujące polecenie:
adb kill-server
adb devices

Proszę bardzo! Twoje urządzenie musi znajdować się na liście.

Skopiowano z ręcznego dodawania sterownika Android ADB USB w systemie Ubuntu 14.04 LTS

Pracował dla mnie.

dc-aoxn
źródło
4

Miałem ten sam problem z moim Galaxy S3. Mój problem polegał na tym, że idVendorwartość 04E8nie była właściwa. Aby znaleźć właściwy, podłącz smartfon do komputera i uruchom lsusbterminal. Spowoduje to wyświetlenie Twojego smartfona w następujący sposób:

Bus 002 Device 010: ID 18d1:d002 Google Inc.

Tak więc właściwą idVendorwartością jest 18d1. A wiersz w /etc/udev/rules.d/51-android.rulesmusi być:

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev" 

Potem biegnę sudo udevadm control --reload-rulesi wszystko działa!

Ulli
źródło
1
Czy miałeś na myśli:ATTR{idVendor}=="18d1"
Tanasis
3

Skorzystaj z M0Rf30/android-udev-rulesutrzymywanych reguł udev społeczności GitHub

https://github.com/M0Rf30/android-udev-rules/blob/master/51-android.rules

Jest to najbardziej kompletna lista reguł udev, jaką do tej pory widziałem, nawet bardziej niż obecnie zalecana sudo apt-get install android-tools-adb w oficjalnej dokumentacji i rozwiązała ten problem dla mnie.

Ciro Santilli
źródło
1
po co zawracać sobie głowę „utrzymywaniem listy”, gdy jedna reguła działa dla wszystkich? stackoverflow.com/a/45006231/1778421
Alex P.
@AlexP. dzięki nie wiedziałem o tej metodzie. Masz pojęcie, dlaczego oficjalny przewodnik tego nie zaleca?
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
Głównie z powodu lenistwa i bezwładności wiedzy. Pierwotni programiści systemu Android używali urządzeń o tym samym identyfikatorze dostawcy, aby zastosować najprostsze podejście, jakie mogli wymyślić. Gdy więcej dostawców tworzyło więcej urządzeń - programiści dodawali kolejne identyfikatory do pliku reguł.
Alex P.
2
  1. Postępuj zgodnie z instrukcjami na stronie http://developer.android.com/guide/developing/device.html (link zarchiwizowany)
  2. Wymienić id sprzedawca 0bb4z 18d1w/etc/udev/rules.d/51-android.rules

    Lub dodaj kolejny wiersz o treści:

    SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"
  3. Uruchom ponownie komputer lub ponownie uruchom usługę udev.
krishnendu
źródło
1

Po ponownym uruchomieniu udev, zabij serwer adb i uruchom serwer adb goto ścieżka instalacji sdk dla systemu Android i wykonaj wszystko na sudo. następnie uruchom urządzenia adb, rozwiąże to problem z uprawnieniami.

Chinthaka Senanayaka
źródło
1

Moje urządzenie to POSITIVO, a mój system operacyjny to Ubuntu 14.04 LTS Tak, mój problem dotyczył zmiennej nazwy

Tworzę plik /etc/udev/rules.d/51-android.rules i umieszczam SUBSYSTEM=="usb", SYSFS{idVendor}=="1662", MODE="0666"

Odłączyłem urządzenie i wykonałem:

$ sudo udevadm control --reload-rules
$ sudo service udev restart

po tym ponownie podłączyłem urządzenie z Androidem w trybie programisty i

$ adb devices

List of devices attached 
1A883XB1K   device
Luciana
źródło
1

Bez odłączania

Wszystkie podane odpowiedzi zakładają, że możesz odłączyć i ponownie podłączyć kabel USB. W sytuacjach, w których nie jest to możliwe (np. Gdy jesteś zdalny), możesz wykonać następujące czynności, aby zasadniczo zrobić to, co sugerują reguły udev po ponownym podłączeniu:

lsusb

Znajdź urządzenie, na którym Ci zależy, np .:

Bus 003 Device 005: ID 18d1:4ee4 Google Inc. Nexus

Zanotuj numer autobusu, na którym jest włączony, a następnie wykonaj np. Dla magistrali 003:

sudo chmod a+w /dev/bus/usb/003/*

Oczywiście może to być bardziej liberalne niż chcesz (może być podłączonych więcej urządzeń niż tylko jedno), ale masz pomysł.

Christian Fritz
źródło
aby zastosować nową udevregułę bez ponownego podłączania urządzenia, wystarczy użyć udevadm trigger --verbose --action=add --subsystem-match=usbpolecenia.
Alex P.,
1

NIE powinieneś uruchamiać adbserwera jako root, jak sugerują inne odpowiedzi. Zamiast tego, jeśli korzystasz z Arch Linux, wykonaj następujące czynności:

  1. Zainstaluj android-udevpakiet za pomocą Pacmana
  2. Przeładuj reguły udev:

    # udevadm control --reload-rules
  3. Dodaj się do adbusersgrupy, a następnie wyloguj się i zaloguj:

    # usermod -aG adbusers $LOGNAME

Źródło: https://wiki.archlinux.org/index.php/android#Configuring_adb

Babken Vardanyan
źródło
0

Spróbuj zamiast GROUP="plugdev"korzystać z głównej grupy użytkownika.

Jurij
źródło
Używam mojej nazwy użytkownika, to nie pomaga
Leem.fin
0

W moim przypadku na Ubuntu 12.04 LTS musiałem zmienić tryb USB Incredible HTC z ładowania na Media, a następnie urządzenie pojawiło się pod adb. Oczywiście debugowanie było już włączone w obu przypadkach.

Alan
źródło
0

Proszę NIE śledzić rozwiązań sugerujących do użytkusudo ( sudo adb start-server)! Uruchamia to adb jako root (administrator) i NIE powinno tak działać !!! To ZŁE obejście !

Wszystko, co działa jako root, może zrobić wszystko w twoim systemie, jeśli tworzy lub modyfikuje plik, może zmienić jego uprawnienia do używania tylko przez root. Znowu NIE!

Słuszne jest skonfigurować system, aby Użytkownik ma pozwolenie, sprawdź ten poradnik pisałem o tym, jak to zrobić poprawnie.

Daniele Segato
źródło
0

Miałem ten sam problem i wykonałem następujące kroki:

# Clone this repository
git clone https://github.com/M0Rf30/android-udev-rules.git
cd android-udev-rules
# Copy rules file
sudo cp -v 51-android.rules /etc/udev/rules.d/51-android.rules
# OR create a sym-link to the rules file - choose this option if you'd like to update your udev rules using git.
sudo ln -sf "$PWD"/51-android.rules /etc/udev/rules.d/51-android.rules
# Change file permissions
sudo chmod a+r /etc/udev/rules.d/51-android.rules
# If adbusers group already exists remove old adbusers group
groupdel adbusers
# add the adbusers group if it's doesn't already exist
sudo mkdir -p /usr/lib/sysusers.d/ && sudo cp android-udev.conf /usr/lib/sysusers.d/
sudo systemd-sysusers # (1)
# OR on Fedora:
groupadd adbusers
# Add your user to the adbusers group
sudo usermod -a -G adbusers $(whoami)
# Restart UDEV
sudo udevadm control --reload-rules
sudo service udev restart
# OR on Fedora:
sudo systemctl restart systemd-udevd.service
# Restart the ADB server
adb kill-server
# Replug your Android device and verify that USB debugging is enabled in developer options
adb devices
# You should now see your device

Powyższe kroki opisano w regułach Androida-udev . To zadziałało dla mnie.

Pamiętaj tylko o potwierdzeniu okna dialogowego, które pojawi się na ekranie telefonu po jego ponownej instalacji.

leosbrf
źródło
0
sudo usermod -aG plugdev $LOGNAME

To polecenie działało dla mnie

Fajaz
źródło
-1

Użyłem su i zaczęło działać. Kiedy korzystam z Jetbrains ze zwykłym użytkownikiem, widzę ten problem, ale po ponownym uruchomieniu Jetbrains w trybie su, widzę moje urządzenie bez żadnego działania.

Używam Ubuntu 13.04 i Jetbrains 12.1.4

Deepti Kohli
źródło
-1

Możesz także spróbować edytować plik adb_usb.ini , znajdujący się w /home/username/.android/ . Ten plik zawiera listę dostawców identyfikatorów urządzeń, które chcesz podłączyć. Wystarczy dodać dostawcę identyfikatora urządzenia w nowej linii (jest to jeden identyfikator w linii). Następnie uruchom ponownie serwer adb i ponownie uruchom urządzenie.

Działa dla mnie na Ubuntu 12.10.

10101101
źródło
-1

W każdym razie, co zrobiłem, aby rozwiązać ten problem (na Ubuntu ).

  1. Zdefiniowane w jakich przypadkach muszę uruchomić te polecenia. Dla większości użytkowników Ubuntu istnieje folder domowy (ukryty plik .bashrc).

    W którym można nagrać uruchomienie tych poleceń. Ale te polecenia będą uruchamiane po wprowadzeniu bashpolecenia w konsoli.

  2. Ponieważ mam powłokę .zshrc, wykonałem następujące czynności:

    otwarta konsola: gedit .zshrc

Po otwarciu pliku dodaj następujący wiersz:

./.add_device_permissions.sh

Po lub przedtem musimy utworzyć ten plik: .add_device_permissions.shw którym napiszemy:

#!/bin/bash
# Add permissions
ADB="/home/vadimm/Android/Sdk/platform-tools/adb"
$ADB devices
$ADB kill-server
cat .permissions_redmi_note | sudo -S $ADB devices
$ADB kill-server
cat .permissions_redmi_note | sudo -S $ADB devices

Musimy także utworzyć .permissions_redmi_note, gdzie musimy na stałe zakodować nasze hasło.

  1. Aby nie dodawać do pliku .zshrcniepotrzebnego, możemy określić ścieżkę podczas uruchamiania samego systemu:Startup Applications Preferences

Tam, gdzie wciskamy „Dodaj” i piszemy nasze polecenie: /home/vadimm/.add_device_permissions.sh

  1. Możesz także spróbować użyć w wierszu poleceń kolejnych poleceń: ./adb devices ./adb kill-server sudo ./adb devices ./adb kill-server ./adb devices
Morozow
źródło
-2

Jeśli ktoś napotka następujący komunikat o błędzie podczas korzystania adb devices

no permissions (verify udev rules); see [http://developer.android.com/tools/device.html]

Wykonaj następujące czynności

sudo -s 
adb kill-server
adb start-server

To rozwiązało problem na moim niestandardowym urządzeniu z Androidem

Ismail Iqbal
źródło