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 ?

Shadox
quelle
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
Siehe
Diyismus

Antworten:

65

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

NuttLoose
quelle
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.
zamber
quelle
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
Mukesh Bharsakle
quelle
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'
    }
  }
}
user909720
quelle
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
alBaryonic
quelle
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.

Johnathan J.
quelle
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.

user1436887
quelle