Android adb keine Erlaubnis


33

Ich versuche, ADB von einem Ubuntu-Rechner (+ Cinnamon) zu verwenden. Das Problem ist, dass ich folgende Meldung von ADB-Geräten erhalte :

List of devices attached
TA8830OIVO  no permissions

Wo TA8830OIVO ist mein Motorola G-Gerät.

Ich habe die Android-Regeln in /etc/udev/rules.d/51-android.rules geändert

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

Ich habe auch den udev-Dienst neu gestartet und adb auf meinem persönlichen Laptop installiert. Ich bin der einzige Benutzer mit allen erforderlichen Berechtigungen (plugdev group und so weiter).

Gibt es eine Möglichkeit, adb auszuführen, ohne sudo aufzurufen ?


1
Udev neu starten und sudo udevadm triggerhat bei mir nicht funktioniert. Ich musste den Computer neu starten und dann funktionierte es einwandfrei
Rafael Xavier

Antworten:


65

Ändern Sie den USB-Modus Ihres Telefons in Dateiübertragung. Das hat bei mir funktioniert.


Für mich gilt das Gegenteil: Das USB-Debugging funktioniert bei einigen alten Geräten nicht im Dateiübertragungsmodus.
Miha_x64

1
Update: Ich habe gerade bemerkt, dass in meinem Telefon (Android 1) das USB-Debugging auch im Lademodus in den Entwicklereinstellungen aktiviert werden kann.
NuttLoose

2
Der Wechsel in den Dateiübertragungsmodus hat bei mir funktioniert. Auf Android 7
Abrar

Kindle Fire 8 2019 - "MTP-Modus", der sich in der USB-Konfiguration in den Entwickleroptionen befindet.
Bill McGonigle

Ich habe mich geändert und dann wurde ich auf dem Gerät aufgefordert, das Debuggen über USB zuzulassen: D
Maxwell sc

27
  1. Denken Sie daran, auszuführen sudo udevadm trigger, um die Änderungen zu übernehmen (oder neu zu starten , aber wo ist der Spaß dabei?).
  2. Anstatt Ihre eigenen Regeln zu schreiben, verwenden Sie https://github.com/M0Rf30/android-udev-rules
  3. Stellen Sie sicher, dass Sie die neueste ADB-Version (1.0.35 102d0d1e73de-android) haben. Frühere haben mit USB-C bei mir nicht funktioniert.

Danke, aber es ist eine alte Frage. Ich bin vor 2 Jahren auf den Mac umgestiegen. Ich finde es dumm, Sachen wie lsusb zu machen und dann Regeln zu ändern, wenn es automatisch gemacht werden soll ... Ich habe es nach so vielen Jahren Ubuntu-Nutzung aufgegeben. Ich kann kein anständiges Linux-Desktop-System finden.
Shadox

1
Die Frage ist 6 Monate alt und gilt noch für die Nachwelt. Vor 1y habe ich OS X nach einer 3y-Affäre gelöscht und bin aus ähnlichen Gründen zu Linux zurückgekehrt;). Linux hat Teile, bei denen es frustrierend wird, aber es ist in OS X eine ähnliche Menge an Bastelarbeiten erforderlich, wenn Sie Homebrew + zsh + iTerm2 verwenden. Der Unterschied besteht darin, dass es sich hauptsächlich um Closed-Source- oder veraltete Versionen von FOSS handelt, jedoch mit einer netten GUI und UX (größtenteils). Die Verwendung der Regeln aus dem Repo macht es meist zu einem einmaligen Einrichtungsschritt. In Anbetracht der Tatsache, dass das Android SDK auf eine vernünftige Weise funktioniert, ist es ein Kinderspiel.
Zamber

1
Laufen dies und service udev restarthat bei mir nicht funktioniert. Ich musste den Computer neu starten und dann funktionierte es einwandfrei.
Rafael Xavier

Unter Ubuntu 16.04 funktionierte es wie ein Zauber, den USB-Modus des Telefons auf Dateiübertragung umzustellen. Kein Neustart erforderlich.
Gautam

Auf Ubuntu 16.04 mit einem Pixel 2 funktioniert das Hinzufügen der Regeln aus dem Gitbub von Punkt 2, ohne in den Dateiübertragungsmodus zu wechseln.
Mike Hanafey

3

Wenn Sie den ADB-Server mit sudo neu starten, funktioniert es.

sudo adb kill-server
sudo adb start-server

0

Definieren Sie die benutzerdefinierte Gradle-Funktion:

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

Die beste Lösung und was für mich besser funktioniert hat, ist die Installation adbvom Ubuntu-Paket. Auf diese Weise erhalten Sie ein von der Community verwaltetes Standardregelwerk udevfür alle Android-Geräte.

Beispiel:

$ sudo apt-get install adb

0

Für Amazon Fire OS 8, ein Android-basiertes Betriebssystem, können Sie zu "Einstellungen> Geräteoptionen> Entwickleroptionen" wechseln. Möglicherweise müssen Sie es aktivieren .

Stellen Sie sicher, dass "USB-Debugging" aktiviert ist (in Ihrem Fall ist dies der Fall).

Gehen Sie dann zu "Netzwerk> USB-Konfiguration auswählen". Wählen Sie "MTP (Media Transfer Protocol)". Dadurch kann der Computer Dateien hin und her senden.


0

Entfernen Sie das über Apt installierte ADB-Paket

$sudo apt remove adb

Laden Sie die neueste AdB von https://developer.android.com/studio/releases/platform-tools herunter

Setze den Pfad zu den Plattformwerkzeugen (besser diese beiden Zeilen in die ~ / .bashrc Datei schreiben)

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

Lauf

$source ~/.bashrc

Überprüfen Sie den ADB-Pfad

$which adb

starte adb in sudo (ich musste adb einen absoluten Pfad geben, wenn ich in sudo lief)

$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

GETAN.
es funktioniert unabhängig davon, welcher USB-Modus (MIDI, Übertragen von Dateien, Laden) des Android-Telefons. Es funktioniert in allen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.