ADB auf Ubuntu erkennt Nexus 4 nicht

Ich kann mein Nexus 4-Telefon nicht von ADB auf Ubuntu erkennen lassen (12.04 mit einem neueren installierten Kernel: 3.8.0-30-generic). Der Entwicklermodus ist auf dem Telefon aktiviert.

Das Gerät wird in lsusb angezeigt :

$lsusb
...
Bus 003 Gerät 034: ID 18d1:4ee5 Google Inc.
...

Aber wenn ich adb-Geräte ausführe, erhalte ich eine leere Liste. Ich habe viele Beiträge im Internet zu diesem Problem gefunden, aber keiner von ihnen löst das Problem. Es gibt zwei Lösungen.

  • Fügen Sie eine Regel zu /etc/udev/rules.d/51-android.rules hinzu . Ich habe verschiedene Variationen für den Inhalt dieser Datei gefunden. In den meisten Fällen sollte ein Wert für idVendor und idProduct basierend auf der Ausgabe von lsusb festgelegt werden . Unten sind einige Beispiele, die ich ausprobiert habe
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4ee5", MODE="0666" GROUP="androiddev", SYMLINK+="android%n"
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", SYMLINK+="android_adb", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee5", MODE="0666", OWNER="my-login"

Nachdem ich dies hinzugefügt habe, habe ich die Berechtigungen für die Regeldatei auf 644 gesetzt und den PC neu gestartet / udev neu gestartet, das Telefon neu gestartet und mein Nexus 4 angeschlossen.

  • Fügen Sie die Hersteller-ID zu ~/.android/adb_usb.ini hinzu.
echo 0x18d1 >> ~/.android/adb_usb.ini

Ich habe adb-Geräte als root und als normaler Benutzer ausgeführt, aber ich bekomme nur eine leere Liste:

$ adb-Geräte
* Daemon läuft nicht. Starten Sie es jetzt auf Port 5037 *
* Dämon erfolgreich gestartet *
Liste der angeschlossenen Geräte

Irgendwelche Ideen, wie man dieses Problem lösen kann? Jede Hilfe von Vorschlägen wäre sehr willkommen.

Antworten (4)

Es reicht nicht aus, die Seite mit den Entwickleroptionen im Einstellungsmenü anzuzeigen (durch wiederholtes Antippen der Build-Nummer). Auf dieser Seite gibt es eine Option USB-Debugging , die standardmäßig deaktiviert ist.

Wenn USB-Debugging aktiviert ist, wird beim Anschließen Ihres Geräts an einen PC über USB die Benachrichtigung „USB-Debugging verbunden“ angezeigt, unabhängig davon, ob adbes derzeit auf dem PC ausgeführt wird.

Könnten Sie Ihre Antwort bitte detailliert beschreiben? Wo finde ich diese "Seite"?
Ich versuche, eine Verbindung herzustellen, adbweil der Touchscreen kaputt ist. Ich habe keine Möglichkeit, auf seine Menüs und Anwendungen zuzugreifen. Gibt es eine andere Möglichkeit, diese USB-Debugging-Funktion zu aktivieren?

Für eine vollständigere Anleitung, wie Sie die Nexus 4 udev-Regeln auf Ubuntu konfigurieren, folgen Sie diesen Anweisungen:

So finden Sie die Hersteller-ID Ihres Geräts

Sie können eine Anbieter-ID für über USB angeschlossene Geräte mit dem folgenden Linux-Befehl finden:

lsusb

Dadurch wird eine Liste aller angeschlossenen USB-Geräte erstellt. Stellen Sie also sicher, dass Ihr Gerät angeschlossen ist, bevor Sie dies tun.

Bus 001 Device 004: ID 18d1:4ee2 Google Inc.

Der erste Teil des Feldes nach ID ist die Hersteller-ID (18d1) und der zweite Teil entspricht dem Modus, in dem das Gerät angeschlossen ist. In diesem Fall entspricht 4ee2 dem MTP-Modus mit eingeschaltetem Debug.

UDEV-REGEL FÜR NEXUS 4 ERSTELLEN

Um das Nexus 4-Telefon unter Ubuntu erkennen zu können, müssen Sie zunächst die richtigen udev-Regeln erstellen, die es dem System ermöglichen, das Telefon zu erkennen.

Diese udev-Regeln sollten in der Lage sein, 4 verschiedene Fälle zu behandeln:

  • Telefon im MTP-Modus verbunden (USB-Debug ein oder aus)
  • Telefon im PTP-Modus verbunden (USB-Debug ein oder aus)
  • Telefon im Fastboot-Modus verbunden
  • Telefon im Wiederherstellungsmodus verbunden

Sie werden in deklariert /etc/udev/rules.d/99-android.rules. Wenn die Datei bereits vorhanden ist, fügen Sie einfach den Inhalt am Ende an.

# sudo gedit /etc/udev/rules.d/99-android.rules

Die folgenden Inhalte müssen hinzugefügt werden. Stellen Sie sicher, dass Sie das Feld your-login durch Ihren korrekten Benutzernamen ersetzen, mit dem Sie sich angemeldet haben.

# Google Nexus 4 16 Gb
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee1", MODE="0666", OWNER="your-login" # MTP media (multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0666", OWNER="your-login" # MTP media with USB debug on(multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee5", MODE="0666", OWNER="your-login" # PTP media (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee6", MODE="0666", OWNER="your-login" # PTP media with USB debug on (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0666", OWNER="your-login" # Bootloader
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0666", OWNER="your-login" # Recovery

Dienste neu starten

Danach muss der udev-Dienst neu gestartet werden.

# sudo service udev restart

Beachten Sie, dass es in einigen Fällen auch erforderlich ist, adb neu zu starten mit:

adb kill-server
adb start-server

Oder starten Sie das System komplett neu mit:

sudo reboot -n

Das erneute Anschließen des USB-Kabels (anstelle eines Neustarts) könnte ebenfalls funktionieren.

ADB-Verbindung autorisieren

Wenn Sie gerade die ADB-Debug-Option auf Ihrem Telefon aktiviert und diese neue Verbindung erstellt haben, listet der ADB-Befehl Ihr Gerät möglicherweise als auf unauthorized. Überprüfen Sie einfach den Bildschirm Ihres Telefons, um die neue Verbindung zu autorisieren.

Kredite

Die meisten dieser Informationen wurden unter http://bernaerts.dyndns.org/android/267-android-nexus4-root-twrp-ubuntu gefunden . Dies ist eine Rooting-Anleitung für Nexus 4 auf Ubuntu. Ich habe nur den ersten Schritt dieser Anleitung verwendet.

Ich habe gerade diese Lösung von Ubuntu 14.04 ausprobiert und selbst nach einem Neustart des Systems wird das Nexus 4 nicht erkannt.
Haben Sie versucht, adb mit Root-Berechtigungen zu starten? Siehe eine der anderen Antworten zu Ubuntu 14.04 +. Haben Sie den USB-Verbindungsmodus auf dem Gerät überprüft?
Ja, ich habe es mit versucht sudo. Das Telefon wird im MTP-Modus mit deaktiviertem Debug verbunden.

Ich verwende Ubuntu 14.04 LTS und habe festgestellt, dass ich adb mit Root-Berechtigungen ausführen muss, damit es mein Telefon erkennt. Gerade eben bin ich (aus dem Plattform-Tools-Verzeichnis) gelaufen ./adb devicesund habe eine leere Liste erhalten. Ich habe adb als root neu gestartet, indem ich ./adb kill-serverund dann ausgeführt habe sudo ./adb start-server. Gibt jetzt adb deviceszurück:

List of devices attached 
01d17087d29dec60    device

Wobei es vorher so aussah:

Liste der angeschlossenen Geräte

töten, dann als root starten hat für mich funktioniert. Mit einem Nexus 5
Ich habe diese Lösung gerade unter Ubuntu 14.04 ausprobiert und bekomme immer noch eine leere Geräteliste.

FYI: Ich habe kürzlich die Android-Version von 4.4 auf 5.0 auf meinem Telefon aktualisiert und ADB zeigte das Gerät nicht mehr als verbunden an. Es scheint, wo die USB-Verbindungsmethode MTP richtig war, bevor es jetzt PTP sein muss .

Könnten Sie Ihre Antwort bitte detailliert beschreiben? Wo genau sollte diese Methode angepasst werden?
Wie ich sagte, war MTP VORHER korrekt, NACH dem Update war PTP korrekt.