Gerät für Entwicklung einrichten (???????????? keine Berechtigungen)

Lesezeit: 9 Minuten

Gerat fur Entwicklung einrichten keine Berechtigungen
Leem.fin

Ich verwende ein Samsung Galaxy Nexus-Telefon (Android 4.0 Plattform).

Ich entwickle eine Android-App auf Ubuntu Linux OS. Ich möchte meine Anwendung direkt auf dem Samsung-Mobilteil ausführen, daher habe ich die folgenden Einrichtungsschritte ausgeführt:

  1. in meinem Projekt AndroidManifest.xml Datei, hinzugefügt android:debuggable="true" zum <application> Element

  2. Auf dem Gerät, in der Einstellungen > Sicherheit aktiviert Unbekannte Quellen

  3. Auf dem Gerät, in der Einstellungen > Entwickleroptionen aktiviert USB-Debugging

  4. Auf meinem Computer erstellt die /etc/udev/rules.d/51-android.rules Datei mit folgendem Inhalt:

    SUBSYSTEM=="usb", ATTR{idVendor}=="04E8", MODE="0666", GROUP="plugdev" 
    
  5. Führen Sie auf meinem Computer die chmod a+r /etc/udev/rules.d/51-android.rules Befehl

Dann habe ich auf meinem Computer ein Terminal geöffnet und die ausgeführt adb devices Befehl bekam ich:

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

Da habe ich mein Gerät aber nur nicht gesehen ???????????? no permissionsführe ich dann die folgenden Befehle aus:

 adb kill-server
 adb start-server
 adb devices

Aber ich habe noch:

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

Warum? Was vermisse ich?

  • nach dem Ausführen von adb kill-server bekamen Sie die Meldung, dass * daemon not running. Starten Sie es jetzt auf Port 5037 * * Daemon erfolgreich gestartet * — Wenn nicht, versuchen Sie es, bis Sie diese Nachricht erhalten

    – Andro Selva

    9. Februar 2012 um 11:44 Uhr


  • Versuchen Sie zu überprüfen, ob Ihr Benutzer angemeldet ist plugdev Gruppe.

    – Sergej Glotow

    9. Februar 2012 um 11:58 Uhr

  • Führen Sie => sudo adb start-server aus (verwenden Sie Root-Zugriff, um adb auszuführen)

    – Verwirrt

    23. Januar 2016 um 13:41 Uhr


  • Endlich habe ich die Lösung gefunden, die in diesem Link für mich funktioniert hat github.com/snowdream/51-android

    – Abdulrahman Gamal

    13. September 2019 um 21:23 Uhr

  • Bitte sehen Sie sich mein 2022-Update zu diesem Problem unten an und einen kurzen Kommentar, dass einige der wirklich alten Lösungen hier ein Linux-System blockieren können.

    – Basautner

    10. Januar um 15:38 Uhr

Gerat fur Entwicklung einrichten keine Berechtigungen
WarrenFaith

Was für mich funktioniert, ist, den Adb-Server zu beenden und erneut zu starten. Unter Linux: sudo adb kill-server und dann sudo adb start-server. Dann wird es fast jedes Gerät sofort erkennen.

  • Ich benutze root, um den Befehl “adb devices” unter /platform-tool/ auszuführen, ich bekomme “No command ‘adb’ found”, warum?

    – Leem.fin

    9. Februar 2012 um 12:11 Uhr

  • Stellen Sie sicher, dass Ihr Adb +x hat -rwxrwxr-x 1 martin martin 156K 2011-11-09 15:40 adb. Versuchen Sie, direkt in das Verzeichnis zu wechseln und über “sudo ./adb devices” zu starten. Wenn Sie das ohne sudo ausführen können, sollten Sie es mit sudo ausführen können … Ich bin mir nicht sicher, was Ihr Problem sein könnte …

    – WarrenFaith

    10. Februar 2012 um 9:45 Uhr


  • Sie sollten adb nicht als root ausführen müssen, wenn Ihre udev-Berechtigungen richtig eingestellt sind. Siehe die Antwort von Grebulons unten oder verweisen Sie auf die Android-Dokumentation: developer.android.com/tools/device.html

    – gnac

    6. Januar 2013 um 19:57 Uhr


  • Ein wichtiger Vorschlag ist, das USB-Kabel zu trennen, also adb zurückzusetzen, das Kabel anzuschließen und es funktioniert. In meiner Situation funktioniert es bei mir nicht, obwohl ich das Verfahren mit angeschlossenem Kabel durchgeführt habe.

    – Androidevil

    17. November 2013 um 8:12 Uhr


  • Und die Befehle sind: adb kill-server sudo adb start-server überprüfen: adb devices

    – Asim

    31. Dezember 2014 um 1:47 Uhr


1647262991 133 Gerat fur Entwicklung einrichten keine Berechtigungen
Grebulon

Nichts hat bei mir funktioniert, bis ich endlich die Antwort hier gefunden habe:
http://ptspts.blogspot.co.il/2011/10/how-to-fix-adb-no-permissions-error-on.html

Ich kopiere den Text hierher, falls er in Zukunft verschwindet.

Erstellen Sie eine Datei namens /tmp/android.rules mit folgendem Inhalt (Hex-Anbieternummern wurden von der Anbieterlistenseite übernommen):

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"

Führen Sie die folgenden Befehle aus:

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

Trennen Sie das USB-Kabel zwischen Telefon und Computer.

Verbinden Sie das Telefon erneut.

Laufen adb devices um zu bestätigen, dass es jetzt die Berechtigung hat, auf das Telefon zuzugreifen.

Bitte beachten Sie, dass die Verwendung möglich ist , USER="$LOGINNAME" anstatt , MODE="0666" in dem .rules Datei, ersetzen $LOGINNAME für Ihren Login-Namen, dh was id -nu Drucke.

In manchen Fällen kann es notwendig sein, der udev-Regeldatei einen Namen zu geben, der am Ende steht, wie z z51-android.rules.

  • Hinweis: Für Ubuntu Precise lautet der Dateiname 70-android.rules laut diesem Beitrag: esausilva.com/2010/05/13/…. Kudos auch dafür, dass Sie uns wissen lassen, dass Sie neu starten müssen udev und alle adb-Prozesse beenden. Lief wie am Schnürchen!

    – Eduard Lukas

    4. Januar 2013 um 10:01 Uhr


  • Ein ähnlicher Ansatz ist offiziell unter dokumentiert developer.android.com/tools/device.html

    – bjunix

    1. November 2013 um 15:56 Uhr

  • Das hat gut funktioniert, aber wie von @luciana in einer anderen Antwort erwähnt, müssen Sie möglicherweise anrufen sudo udevadm control --reload-rules um die udev-Regeln zu aktualisieren, wenn ein Neustart des Servers nicht ausreicht.

    – serjlee

    17. November 2014 um 14:54 Uhr

  • Dies sollte als die richtige Antwort markiert werden, da sudo-ing adb keine Voraussetzung für Linux sein sollte

    – Zac

    15. Januar 2017 um 19:23 Uhr

  • Dies ist die einzig richtige Antwort hier. Danke dafür! Außerdem können wir die lsusb-Ausgabe sehen, um sicherzustellen, dass der erforderliche Anbieter enthalten ist. Am merkwürdigsten ist, dass nur eines meiner Geräte (OnePlus One) nach dem Upgrade auf Android 7.1.2 plötzlich nicht mehr funktioniert (selbst wenn adb als root ausgeführt wird), nachdem wie oben beschrieben udev-Regeln hinzugefügt wurden, funktioniert es wieder.

    – Benutzer1209216

    18. April 2017 um 7:27 Uhr


1647262991 494 Gerat fur Entwicklung einrichten keine Berechtigungen
iancrowther

Geben Sie die folgenden Befehle ein:

# cd to adb for sudo
cd `which adb | sed -e "s/adb//"`
adb kill-server
sudo ./adb start-server
./adb devices

This happens when you are not running adb server as root.  

  • Obwohl die Idee dieselbe ist wie in der akzeptierten Antwort, hat mir diese aufgrund des bereitgestellten Beispiels nur geholfen. Danke

    – Dmitri Koroliow

    12. Juni 2014 um 18:05 Uhr

  • @ user907860 es ist eigentlich besser als die akzeptierte Antwort, weil es erklärt, warum Sie sudo schreiben sollten 🙂 (was ich nicht getan habe, als ich die akzeptierte Antwort gesehen habe)

    – stan0

    22. April 2015 um 12:40 Uhr

  • übrigens irgendeine idee warum adb als root laufen sollte?

    – stan0

    22. April 2015 um 12:41 Uhr

  • Entschuldigung, nein, ich erinnere mich nicht

    – iancrowther

    27. April 2015 um 12:16 Uhr

  • adb sollte NICHT als root laufen. Wenn dies erforderlich ist, ist Ihr System falsch konfiguriert. Hören Sie auf, “sudo” vor alles zu werfen, es hat enorme Auswirkungen auf die Sicherheit.

    – Hackel

    1. September 2015 um 21:50 Uhr

1647262992 774 Gerat fur Entwicklung einrichten keine Berechtigungen
Säbel

Alles oben versucht, keiner hat funktioniert. Endlich hat es funktioniert, als ich die Verbindung von MTP auf Kamera (PTP) umschalte.

1647262992 299 Gerat fur Entwicklung einrichten keine Berechtigungen
Alex P.

Es gibt viele schlechte Antworten auf diese Frage, die von dem Beharren auf dem Laufen reichen adb als root (was nicht als die einzige oder gar empfohlene Lösung angepriesen werden sollte) bis hin zur Lösung völlig unabhängiger Probleme.

Hier ist das kürzeste und universellste Rezept, um sich um Berechtigungen für alle zu kümmern adb und fastboot Geräte auf einmal:

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

Oder Sie könnten eine etwas längere Version verwenden, die ich hier gepostet habe Kern.

Was die spezifische Sache betrifft, die OP in seiner Frage falsch gemacht hat – es wurde nicht neu geladen udev Regeln nach dem Bearbeiten der .rules Datei.

Außerdem sagte OP nicht, welchen Android-Build (auch bekannt als ROM) er auf seinem Telefon hatte. Die idVendor Der Wert wird in der Software festgelegt und hängt daher vom ROM ab. Also der Wert von 04E8 die er in seiner ursprünglichen Regel verwendete, hätte nur für Geräte mit Samsung-Stock-ROMs funktioniert. Aber das ist kein Problem dafür udev Regel – es stimmt mit allen Geräten überein adb oder fastboot Schnittstellen unabhängig von ihrer Hersteller-ID.

  • Der einzige fehlende Schritt, um zu sehen, dass es funktioniert, ist adb kill-server vor adb-Geräten.

    – merkwürdig

    2. November 2017 um 0:06 Uhr


  • Unter Android 8.1 scheint das nicht mehr zu funktionieren. Wie haben Sie herausgefunden, was adb als Geräte-ID meldet?

    – Cachapa

    3. Januar 2018 um 9:51 Uhr


  • Funktionierte für mich auf Android 7.1.2

    – Amerzilla

    16. Januar 2018 um 15:50 Uhr

  • @Cachapa, es funktioniert mit allen Android-Versionen. Sogar das neueste (als ich dies schreibe) Android P Preview 4 verwendet dieselben ADB-Schnittstellen-IDs – android.googlesource.com/platform/system/core/+/…

    – Alex P.

    19. Juli 2018 um 16:33 Uhr

  • funktioniert noch mit Android 11 android.googlesource.com/platform/system/core/+/…

    – Alex P.

    2. Juni 2020 um 12:45 Uhr

1647262992 329 Gerat fur Entwicklung einrichten keine Berechtigungen
Keenan Verbrugge

In Archlinux kann dies gelegentlich vorkommen. Die Reparatur:

$ sudo -s
# adb kill-server
# adb start-server

  • Der einzige fehlende Schritt, um zu sehen, dass es funktioniert, ist adb kill-server vor adb-Geräten.

    – merkwürdig

    2. November 2017 um 0:06 Uhr


  • Unter Android 8.1 scheint das nicht mehr zu funktionieren. Wie haben Sie herausgefunden, was adb als Geräte-ID meldet?

    – Cachapa

    3. Januar 2018 um 9:51 Uhr


  • Funktionierte für mich auf Android 7.1.2

    – Amerzilla

    16. Januar 2018 um 15:50 Uhr

  • @Cachapa, es funktioniert mit allen Android-Versionen. Sogar das neueste (als ich dies schreibe) Android P Preview 4 verwendet dieselben ADB-Schnittstellen-IDs – android.googlesource.com/platform/system/core/+/…

    – Alex P.

    19. Juli 2018 um 16:33 Uhr

  • funktioniert noch mit Android 11 android.googlesource.com/platform/system/core/+/…

    – Alex P.

    2. Juni 2020 um 12:45 Uhr

Für diejenigen, die Debian verwenden, funktioniert die Anleitung zum Einrichten eines Geräts unter Ubuntu zum Erstellen der Datei “/etc/udev/rules.d/51-android.rules” nicht. Ich habe die Anweisungen von befolgt Hier. Dasselbe hier als Referenz niederlegen.

Bearbeiten Sie diese Datei als Superuser

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

Finden Sie den ähnlichen Text

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

Ändern Sie dann den Modus wie unten auf 0666

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

Dadurch kann adb funktionieren, aber wir müssen das Gerät noch so einrichten, dass es erkannt werden kann. Wir müssen diese Datei als Superuser erstellen,

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

und eintreten

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

Die obige Zeile ist für HTC, folgen Sie dem Beitrag von @grebulon für eine vollständige Liste.

Speichern Sie die Datei und starten Sie udev dann als Superuser neu

sudo /etc/init.d/udev restart

Schließen Sie das Telefon über USB an und es sollte erkannt werden, wenn Sie ein Projekt kompilieren und ausführen.

1001640cookie-checkGerät für Entwicklung einrichten (???????????? keine Berechtigungen)

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy