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

282

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

Ich entwickle Android App unter 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 meiner Projektdatei zum Element AndroidManifest.xmlhinzugefügtandroid:debuggable="true"<application>

  2. Auf dem Gerät unter Einstellungen> Sicherheit aktiviert Unbekannte Quellen

  3. Auf dem Gerät wurde unter Einstellungen> Entwickleroptionen das USB-Debugging aktiviert

  4. Erstellen Sie auf meinem Computer die /etc/udev/rules.d/51-android.rulesDatei mit folgendem Inhalt:

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

Dann öffnete ich auf meinem Computer ein Terminal und führte den adb devicesBefehl aus. Ich bekam:

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

Da ich mein Gerät nicht gesehen habe, sondern nur ???????????? no permissions, führe ich die folgenden Befehle aus:

 adb kill-server
 adb start-server
 adb devices

Aber ich habe immer noch:

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

Warum? Was vermisse ich?

Leem.fin
quelle
Nach dem Ausführen von adb kill-server wurde die Meldung angezeigt, dass * daemon nicht ausgeführt wird. Starten Sie es jetzt auf Port 5037 * * Daemon erfolgreich gestartet * --- Wenn Sie es nicht versuchen, bis Sie diese Nachricht erhalten
Andro Selva
2
Versuchen Sie zu überprüfen, ob sich Ihr Benutzer in einer plugdevGruppe befindet.
Sergey Glotov
2
Run => sudo adb start-server (Verwenden Sie den Root-Zugriff, um adb auszuführen)
Verwirrt am
Schließlich fand ich die Lösung, die für mich in diesem Link github.com/snowdream/51-android
Abdulrahman Gamal

Antworten:

450

Was für mich funktioniert, ist, den ADB-Server zu töten und erneut zu starten. Unter Linux: sudo adb kill-serverund dann sudo adb start-server. Dann erkennt es fast jedes Gerät sofort.

WarrenFaith
quelle
1
Ich verwende root, um den Befehl "adb Geräte" unter <android-SDK> / platform-tool / auszuführen. Ich habe "Kein Befehl 'adb' gefunden". Warum?
Leem.fin
8
Stellen Sie sicher, dass Ihre Anzeige + 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 Geräte" zu starten. Wenn Sie das ohne sudo ausführen können, sollten Sie es mit sudo ausführen können ... Ich bin nicht sicher, was Ihr Problem sein könnte ...
WarrenFaith
8
Sie sollten adb nicht als root ausführen müssen, wenn Ihre udev-Berechtigungen korrekt festgelegt sind. Siehe die Antwort von grebulons unten oder beziehen Sie sich auf die Android-Dokumentation: developer.android.com/tools/device.html
gnac
4
Ein wichtiger Vorschlag ist, das USB-Kabel abzutrennen, damit Sie adb zurücksetzen, das Kabel anschließen und es funktioniert. In meiner Situation funktioniert es bei mir nicht, während ich das Verfahren mit angeschlossenem Kabel durchgeführt habe.
Androidevil
6
Und die Befehle sind: adb kill-server sudo adb start-serverzu überprüfen:adb devices
Asim
350

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

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

Erstellen Sie eine Datei mit dem Namen /tmp/android.rules mit dem folgenden Inhalt (hexadezimale Lieferantennummern wurden von der Lieferantenlistenseite ü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 dem Telefon und dem Computer.

Schließen Sie das Telefon wieder an.

Führen Sie aus adb devices, um zu bestätigen, dass jetzt die Berechtigung zum Zugriff auf das Telefon besteht.

Bitte beachten Sie, dass es möglich ist, , USER="$LOGINNAME"anstelle von , MODE="0666"in der .rulesDatei $LOGINNAMEIhren Anmeldenamen zu ersetzen , dh was id -nugedruckt wird.

In einigen Fällen kann es erforderlich sein, der udev-Regeldatei einen Namen zu geben, der kurz vor dem Ende sortiert wird, z z51-android.rules.

Grebulon
quelle
7
Hinweis: Für Ubuntu Precise lautet der Dateiname 70-android.ruleswie in diesem Beitrag angegeben: esausilva.com/2010/05/13/… . Ein großes Lob auch dafür, dass Sie uns wissen lassen, dass Sie udevalle ADB-Prozesse neu starten und beenden müssen. Lief wie am Schnürchen!
Eduard Luca
Ein ähnlicher Ansatz ist offiziell unter developer.android.com/tools/device.html
bjunix
4
Dies hat gut funktioniert, aber wie von @luciana in einer anderen Antwort angegeben, müssen Sie möglicherweise aufrufen sudo udevadm control --reload-rules, um die udev-Regeln zu aktualisieren, wenn ein Neustart des Servers nicht ausreicht.
Serjlee
4
Dies sollte als die richtige Antwort markiert werden, da sudo-ing adb keine Voraussetzung für Linux sein sollte
Zac
1
Dies ist hier die einzig richtige Antwort. Danke dafür! Außerdem können wir die lsusb-Ausgabe sehen, um sicherzustellen, dass der erforderliche Anbieter enthalten ist. Am seltsamsten ist, dass nur eines meiner Geräte (OnePlus One) nach dem Upgrade auf Android 7.1.2 (selbst wenn adb als root ausgeführt wird) plötzlich nicht mehr funktioniert. Nach dem Hinzufügen von udev-Regeln wie oben beschrieben funktioniert es wieder.
user1209216
77

Geben Sie die folgenden Befehle ein:

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

Das Problem ist, dass Sie den ADB-Server nicht als Root ausführen.

iancrowther
quelle
4
Obwohl die Idee dieselbe ist wie in der akzeptierten Antwort, hat mir diese aufgrund des angegebenen Beispiels nur geholfen. Danke
user907860
1
@ 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 sah)
stan0
Übrigens, warum sollte adb als root ausgeführt werden?
stan0
Entschuldigung, nein, ich erinnere mich nicht
iancrowther
2
adb sollte NICHT als root ausgeführt werden. 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
55

Versucht alles oben, keiner hat funktioniert .. endlich funktioniert, als ich die Verbindung von MTP zu Kamera (PTP) wechselte.

Sabeer Mohammed
quelle
3
Für diejenigen, die sich fragen, wie das geht ... Systemeinstellungen> Speicher> Schaltfläche oben rechts: USB-Computerverbindung> Als ausgewählte Kamera verbinden (PTP) anstelle von Mediengerät (MTP)
Thaddeus Albers
3
Mann, ich suchte nach der Lösung wie zwei Stunden, das funktioniert für mich am Ubuntu 16.04, danke
Jorius
Dies sollte das erste sein, was überprüft werden muss. Funktioniert für mich
m50
32

Es gibt viele schlechte Antworten auf diese Frage, angefangen von der Beharrlichkeit, adbals root(die nicht als einzige oder sogar empfohlene Lösung angepriesen werden sollte) bis hin zur Lösung völlig unabhängiger Probleme.

Hier ist das kürzeste und universellste Rezept für die gleichzeitige Verwaltung von Berechtigungen für alle adbund fastbootGeräte:

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 in diesem Kern gepostet habe .

Was die spezifische Sache betrifft, die OP in seiner Frage falsch gemacht hat - es wurden die udevRegeln nach dem Bearbeiten der .rulesDatei nicht neu geladen .

Auch OP sagte nicht, welchen Android-Build (auch bekannt als ROM) er auf seinem Handy hatte. Der idVendorWert wird in der Software eingestellt und hängt daher vom ROM ab. Der Wert, den 04E8er in seiner ursprünglichen Regel verwendet hat, hätte also nur für Geräte mit Samsung-Standard-ROMs funktioniert. Dies ist jedoch kein Problem für diese udevRegel - sie stimmt mit allen Geräten adboder fastbootSchnittstellen überein, unabhängig von ihrer VendorID .

Alex P.
quelle
Der einzige fehlende Schritt, um zu sehen, ob es funktioniert, ist der adb kill-server vor den adb-Geräten.
seltsam
1
Dies scheint unter Android 8.1 nicht mehr zu funktionieren. Wie haben Sie herausgefunden, was adb als Geräte-ID meldet?
Cachapa
Arbeitete für mich auf Android 7.1.2
Amerzilla
@ Cachapa, es funktioniert mit allen Android-Versionen. Sogar das neueste (zum Zeitpunkt, an dem ich dies schreibe) Android P Preview 4 verwendet dieselben ADB-Schnittstellen-IDs - android.googlesource.com/platform/system/core/+/…
Alex P.
funktioniert immer noch mit Android 11 android.googlesource.com/platform/system/core/+/…
Alex P.
16

In Archlinux kann dies gelegentlich vorkommen. Die Reparatur:

$ sudo -s
# adb kill-server
# adb start-server
Keenan Verbrugge
quelle
Ich bin mir nicht sicher, ob das das einzige war, was es zum Laufen gebracht hat ... Ich habe das obige Zeug ausprobiert. Aber ohne diesen Beitrag Ubuntu auf VBox hat mein LG G3 nicht autorisiert. Vielen Dank, dass Sie Keenan
lastboy
Ich weiß nicht warum, aber es sudo adb kill-server; sudo adb start-serverhat nicht funktioniert, aber dieser hat es getan.
Hritik
9

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 hier aus befolgt . Schreiben Sie dasselbe hier als Referenz auf.

Bearbeiten Sie diese Datei als Superuser

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

Suchen Sie den ähnlichen Text

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

Ändern Sie dann den Modus wie unten beschrieben auf 0666

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

Dadurch kann adb funktionieren, wir müssen das Gerät jedoch 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, um eine vollständige Liste zu erhalten.

Speichern Sie die Datei und starten Sie udev 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.

jaga
quelle
5

Ich hatte das gleiche Problem, die Lösung ist wie folgt: (Übrigens müssen Sie Ihr Gerät nicht rooten.)

  1. Geben Sie "su" ein, um zum Superuser zu wechseln.
  2. your-path / adb kill-server.
  3. Ihr-Pfad / ADB-Startserver.
  4. Wenn kein Fehler auftritt, wird die Geräteliste mit "your-path / adb-Geräten" im Root-Konto angezeigt.
  5. Super User beenden.
  6. Jetzt können Sie "ADB-Geräte" in Ihrem Konto ausführen.

Genießen.

Jeffrey Yang
quelle
1
Falls Sie sich nicht mit anmelden können su, verwenden Sie sudo su. Ich tat. Und wenn Sie nicht wissen, wie Sie den Benutzer beenden sollen, verwenden Sie exit.
Pijusn
4

Ich weiß, dass dies etwas spät sein könnte, aber hier ist ein sehr guter Artikel darüber, wie man den Android ADB USB-Treiber manuell hinzufügt. Manuelles Hinzufügen des Android ADB USB-Treibers in Ubuntu 14.04 LTS

Bearbeitet, um Linkinhalte hinzuzufügen

Schritte

Hinweis: Stellen Sie sicher, dass Sie Ihr Android-Gerät im USB-Debugging- Modus angeschlossen haben

Öffnen Sie terminal ( CTRL + ALT + T) und geben Sie den Befehl ein: lsusb

Jetzt erhalten Sie möglicherweise eine ähnliche Antwort auf diese Frage:
Bus 002 Device 013: ID 283b:1024

Hinweis: In Bezug daraufBus 002 Device 008: ID 283b:1024
{idVendor}==”283b” {idProduct}==”1024″

Geben Sie nun den folgenden Befehl ein: sudo gedit /etc/udev/rules.d/51-android.rules
Dadurch wird die Android-Regeldatei erstellt ( 51-android.rules) oder die vorhandene am angegebenen Speicherort geöffnet ( /etc/udev/rules.d)

Fügen Sie dieser Datei eine neue Zeile hinzu:
SUBSYSTEM==”usb”, ATTRS{idVendor}==”283b”, ATTRS{idProduct}==”1024″, MODE=”0666″

Hinweis Bearbeiten idVendor&idProduct Werte mit Ihren Gerätewerten. Speichern und schließen.

Geben Sie nun den folgenden Befehl ein:
sudo chmod a+rx /etc/udev/rules.d/51-android.rules- Lese- / Ausführungsberechtigung erteilen
sudo service udev restart- Neustartudev Dienst neu

Jetzt müssen wir das hinzufügen idVendorzu adb_usb.ini. Geben Sie die folgenden Befehle ein:
cd ~/.android
gedit adb_usb.ini

Fügen Sie den folgenden Wert hinzu 0x283b

Dies ist nichts als 0x (idVendor Wert). Ersetzen Sie also den Wert durch. in Bezug auf Ihren Gerätewert Speichern und schließen Sie die Datei.

Geben Sie nun den folgenden Befehl ein:
sudo service udev restart

Stecken Sie das Android-Gerät aus und schließen Sie es erneut an.
Geben Sie nun den folgenden Befehl ein:
adb kill-server
adb devices

Los geht's! Ihr Gerät muss aufgelistet sein.

Kopiert von Manuelles Hinzufügen eines Android ADB USB-Treibers in Ubuntu 14.04 LTS

Hat für mich gearbeitet.

dc-aoxn
quelle
4

Ich hatte das gleiche Problem mit meinem Galaxy S3. Mein Problem war, dass der idVendorWert 04E8nicht der richtige war. Um das richtige zu finden, verbinden Sie Ihr Smartphone mit dem Computer und führen Sie es lsusbim Terminal aus. Ihr Smartphone wird folgendermaßen aufgelistet:

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

Der richtige idVendorWert ist also 18d1. Und die Zeile in der /etc/udev/rules.d/51-android.rulesmuss sein:

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

Dann renne ich sudo udevadm control --reload-rulesund alles hat funktioniert!

Ulli
quelle
1
ATTR{idVendor}=="18d1"
Meinten
3

Verwenden Sie die von der M0Rf30/android-udev-rulesGitHub-Community gepflegten udev-Regeln

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

Dies ist die vollständigste Liste der udev-Regeln, die ich bisher gesehen habe, sogar mehr als die derzeit sudo apt-get install android-tools-adb in der offiziellen Dokumentation empfohlene , und sie hat dieses Problem für mich gelöst.

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
quelle
1
Warum sollte man sich die Mühe machen, die Liste zu pflegen, wenn eine einzige Regel für alle funktioniert? stackoverflow.com/a/45006231/1778421
Alex P.
@AlexP. Danke, ich wusste nichts über diese Methode. Irgendeine Idee, warum der offizielle Leitfaden das nicht stattdessen empfiehlt?
Ciro Santilli 21 冠状 病 六四 事件 21
Meist wegen Faulheit und Wissensträgheit. Die ursprünglichen Android-Entwickler verwendeten Geräte mit derselben Hersteller-ID, um den einfachsten Ansatz zu wählen, den sie sich vorstellen können. Wenn mehr Anbieter mehr Geräte erstellten, fügten die Entwickler der Regeldatei immer mehr IDs hinzu.
Alex P.
2
  1. Folgen Sie den Anweisungen unter http://developer.android.com/guide/developing/device.html (Archivierter Link)
  2. Ersetzen Sie die Lieferanten-ID von 0bb4durch 18d1in/etc/udev/rules.d/51-android.rules

    Oder fügen Sie eine weitere Zeile hinzu, die lautet:

    SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"
  3. Starten Sie den Computer neu oder starten Sie einfach den udev-Dienst neu.
krishnendu
quelle
1

Wenn Sie udev neu starten, beenden Sie den ADB-Server und starten Sie den ADB-Server. Gehen Sie zu Android SDK-Installationspfad und erledigen Sie alles auf Sudo. Führen Sie dann ADB-Geräte aus, um das Berechtigungsproblem zu lösen.

Chinthaka Senanayaka
quelle
1

Mein Gerät ist POSITIVO und mein Betriebssystem ist Ubuntu 14.04 LTS Also, mein Problem war im Variablennamen

Ich erstelle die Datei /etc/udev/rules.d/51-android.rules und setze SUBSYSTEM=="usb", SYSFS{idVendor}=="1662", MODE="0666"

Ich habe das Gerät getrennt und ausgeführt:

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

danach habe ich das android gerät wieder im entwicklermodus angeschlossen und

$ adb devices

List of devices attached 
1A883XB1K   device
luciana
quelle
1

Ohne den Stecker zu ziehen

Bei allen Antworten wird davon ausgegangen, dass Sie das USB-Kabel abziehen und wieder anschließen können. In Situationen, in denen dies nicht möglich ist (z. B. wenn Sie remote sind), können Sie Folgendes tun, um im Wesentlichen das zu tun, was die vorgeschlagenen udev-Regeln beim erneuten Einstecken tun würden:

lsusb

Suchen Sie das Gerät, das Sie interessiert, z.

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

Notieren Sie sich die eingeschaltete Busnummer und führen Sie diese aus, z. B. für den Bus 003:

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

Natürlich ist dies freizügiger als Sie möchten (möglicherweise sind mehr Geräte angeschlossen als nur dieses), aber Sie haben die Idee.

Christian Fritz
quelle
Um die neue udevRegel anzuwenden, ohne das Gerät erneut zu verbinden, verwenden Sie einfach den udevadm trigger --verbose --action=add --subsystem-match=usbBefehl.
Alex P.
1

Sie sollten den adbServer NICHT als root ausführen, wie andere Antworten vorschlagen. Wenn Sie stattdessen Arch Linux verwenden, gehen Sie wie folgt vor:

  1. Installiere das android-udev Paket mit Pacman
  2. Laden Sie die udev-Regeln neu:

    # udevadm control --reload-rules
  3. Fügen Sie sich der adbusersGruppe hinzu und melden Sie sich ab und an:

    # usermod -aG adbusers $LOGNAME

Quelle: https://wiki.archlinux.org/index.php/android#Configuring_adb

Babken Vardanyan
quelle
0

Versuchen Sie, anstatt GROUP="plugdev"die Hauptgruppe Ihres Benutzers zu verwenden.

Yury
quelle
Ich benutze meinen Benutzernamen, es hilft nicht
Leem.fin
0

In meinem Fall unter Ubuntu 12.04 LTS musste ich meinen HTC Incredible USB-Modus von Laden auf Medien ändern, und dann wurde das Gerät unter ADB angezeigt. In beiden Fällen war das Debuggen natürlich bereits aktiviert.

Alan
quelle
0

Bitte folgensudo Sie NICHT den Lösungsvorschlägen ( sudo adb start-server)! Dies führt adb als root (Administrator) aus und es soll NICHT so laufen !!! Es ist eine schlechte Problemumgehung !

Alles, was als root ausgeführt wird, kann alles in Ihrem System tun. Wenn eine Datei erstellt oder geändert wird, kann sich ihre Berechtigung ändern, nur von root verwendet zu werden. Wieder nicht!

Das Richtige ist, Ihr System so einzurichten, dass der BENUTZER die Berechtigung hat. Lesen Sie diese Anleitung, die ich geschrieben habe, wie man es richtig macht.

Daniele Segato
quelle
0

Ich hatte das gleiche Problem und habe die folgenden Schritte ausgeführt:

# 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

Die obigen Schritte werden auf android-udev-Regeln beschrieben . Es hat bei mir funktioniert.

Stellen Sie einfach sicher, dass Sie das Dialogfeld bestätigen, das nach dem erneuten Einstecken auf dem Bildschirm Ihres Telefons angezeigt wird.

leosbrf
quelle
-1

Ich habe su benutzt und es fing an zu funktionieren. Wenn ich Jetbrains mit normalen Benutzern verwende, wird dieses Problem angezeigt. Nach dem Neustart von Jetbrains im su-Modus kann ich mein Gerät sehen, ohne etwas zu tun.

Ich benutze Ubuntu 13.04 und Jetbrains 12.1.4

Deepti Kohli
quelle
-1

Sie könnten auch versuchen Bearbeitung adb_usb.ini Datei, an sich /home/username/.android/ . Diese Datei enthält eine Liste der Geräte, mit denen Sie eine Verbindung herstellen möchten. Sie fügen einfach den ID-Anbieter Ihres Geräts in einer neuen Zeile hinzu (es ist eine ID pro Zeile). Starten Sie dann den ADB-Server neu und schließen Sie Ihr Gerät erneut an.

Es hat bei mir unter Ubuntu 12.10 funktioniert.

10101101
quelle
-1

Wie auch immer, was ich getan habe, um dieses Problem zu lösen (unter Ubuntu ).

  1. Definiert, in welchen Fällen ich diese Befehle ausführen muss. Für die meisten Ubuntu-Benutzer gibt es einen Home-Ordner (versteckte Datei .bashrc).

    In dem Sie den Start dieser Befehle aufzeichnen können. Diese Befehle werden jedoch ausgelöst, wenn Sie den bashBefehl in die Konsole eingeben .

  2. Da ich eine Shell .zshrc habe, habe ich folgendes gemacht:

    offene Konsole: gedit .zshrc

Fügen Sie beim Öffnen der Datei die folgende Zeile hinzu:

./.add_device_permissions.sh

Nach oder vor müssen wir diese Datei erstellen: .add_device_permissions.shin die wir Folgendes schreiben:

#!/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

Außerdem müssen wir .permissions_redmi_note erstellen, in der wir unser Passwort fest codieren müssen.

  1. Um die Datei nicht .zshrcunnötig zu ergänzen, können wir den Pfad beim Starten des Systems selbst angeben:Startup Applications Preferences

Wo wir auf "Hinzufügen" klicken und unseren Befehl schreiben: /home/vadimm/.add_device_permissions.sh

  1. Sie können auch versuchen, in der Befehlszeile die nächsten Befehle zu verwenden: ./adb devices ./adb kill-server sudo ./adb devices ./adb kill-server ./adb devices
Morozov
quelle
-2

Wenn jemand bei der Verwendung die folgende Fehlermeldung erhält adb devices

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

Führen Sie Folgendes aus

sudo -s 
adb kill-server
adb start-server

Das hat das Problem für mich auf einem benutzerdefinierten Android-Gerät behoben

Ismail Iqbal
quelle