GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Android - Wie kann ich mein Gerät von ADB unter Linux erkennen lassen?

USB-Debugging auf dem Gerät aktivieren

Dies geschieht in Einstellungen › Entwicklung . Wenn Sie diesen Eintrag nicht in Ihrem Einstellungsmenü haben, gehen Sie zu Einstellungen › Info , scrollen Sie zur "Build-Nummer" und hämmern Sie wie ein Affe darauf, bis Ihr Gerät Ihnen gratuliert, Entwickler geworden zu sein. Gehen Sie zurück zur Hauptseite der Einstellungen Menü, und ganz unten sollten Sie jetzt die Einstellungen "Entwicklung" (oder "Entwickler") sehen. Geben Sie es ein und aktivieren Sie USB-Debugging hier.

Identifizieren Sie das Gerät

Zuerst müssen wir wissen, wie sich das Gerät auf dem USB-Bus identifiziert. Dafür mit dem Android-Gerät NICHT verbunden, schnappen Sie sich eine Shell und führen Sie den Befehl lsusb aus . Schließen Sie dann das Gerät an und führen Sie den Befehl erneut aus. Finde die neue Linie. Für den Wileyfox Swift dies ist ein "namenloses Gerät":

Bus 004 Device 003: ID 2970:2282

Einrichten der Regeln für ADB

Wir brauchen jetzt die Zahlen am Ende der obigen Zeile:2970:2282 . Diese spezifizieren den Hersteller (2970) und das Gerät selbst (2282). Mit diesen Details brauchen wir einen Root Shell auf unserer Linux-Maschine, um die /etc/udev/rules.d/51-android.rules zu bearbeiten (oder zu erstellen, falls sie noch nicht existiert). Datei. Fügen Sie dort eine Zeile für Ihr Gerät hinzu. Die folgende Beispielzeile zeigt, wie es für Wileyfox Swift:¹ aussieht

SUBSYSTEMS=="usb", ATTRS{idVendor}=="2970", ATTRS{idProduct}=="2282", MODE="0666" GROUP="androiddev", SYMLINK+="android%n"

Wenn Sie ein anderes Gerät haben, ersetzen Sie die Hersteller- und Produkt-IDs durch die oben gefundenen, wenn Sie lsusb ausführen . Eine kurze Erklärung der Zeile:

  • SUBSYSTEMS=="usb" :offensichtlich gilt diese Regel nur für USB;)
  • ATTRS{idVendor}=="2970" :Die Hersteller-ID des Geräts, für das diese Regel gilt
  • ATTRS{idProduct}=="2282" :die Geräte-ID
  • MODE="0666" :Berechtigungen, die der Geräteknoten erhalten soll. 0666 ist ziemlich locker und gibt jedem Benutzer auf Ihrem System Lese- und Schreibrechte – wenn Sie also besorgt sind, können Sie versuchen, dies durch einen 0660 zu ersetzen (nur Besitzer und Gruppe Lese- und Schreibzugriff geben und anderen alles verweigern).
  • GROUP="androiddev" :zu welcher Gruppe der Geräteknoten gehören soll. Dies sollte eine Gruppe sein, zu der die Benutzer gehören, die mit dem Gerät arbeiten sollen.
  • SYMLINK+="android%n" :nur um dem Knoten einen schönen Namen zu geben, damit Sie ihn leichter in /dev finden können (in meinem Fall tauchte es dort später als /dev/android5 auf )

Diese Regel wurde in /etc/udev/rules.d/51-android.rules eingetragen , müssen wir udev mitteilen um es zu nutzen. Der sicherste Weg (neben einem Neustart;) ist ein Neustart des udev Service. Abhängig von Ihrer Linux-Distribution kann dies entweder über service udev restart erfolgen oder /etc/init.d/udev restart .

Verlassen Sie die Root-Shell. Trennen Sie Ihr Android-Gerät und verbinden Sie es erneut, versuchen Sie es mit adb devices wieder. Die meisten Geräte wurden jetzt angezeigt, aber nicht Wileyfox Swift – die offensichtlich ein paar zusätzliche Kuscheleinheiten möchte. Wenn Sie in dieser Situation sind, öffnen Sie (oder erstellen Sie, falls sie nicht existiert) die Datei ~/.android/adb_usb.ini und fügen Sie eine einzelne Zeile hinzu, in der Sie den Anbieter nennen, den Sie mit lsusb herausgefunden haben Oben; für den Swift das wäre 0x2970 (Yupp, hier müssen Sie 0x voranstellen um darauf hinzuweisen, dass es sich um eine Hexadezimalzahl handelt). Starten Sie dann den ADB-Server neu:adb kill-server && adb start-server . Trennen Sie das Gerät und schließen Sie es erneut an. Jetzt adb devices sollte es sehen.

Gerät verbinden

Vielleicht ist Ihnen adb devices aufgefallen hat dir etwas wie 0123456789ABCDEF unauthorized gesagt . Das ist in Ordnung und zu Ihrer (Geräte-)Sicherheit:Ihr Computer muss zuerst autorisiert werden, um auf das Gerät zugreifen zu können. Geben Sie also einfach adb shell aus now – die mit einem error: device unauthorized. Please check the confirmation dialog on your device. beendet wird Befolgen Sie diese Ratschläge (markieren Sie optional das Kontrollkästchen, um Ihren Computer dauerhaft zu autorisieren), und Sie sind fertig:Jetzt können Sie mit adb auf Ihr Gerät zugreifen.

Aktualisierungen:

¹ Beachten Sie, dass sich in späteren Linux-Versionen die Syntax für die UDEV-Regeln leicht geändert hat, da z. jcomeau_ictx wies in seinem Kommentar darauf hin. Für die oben gefundenen Werte wäre das:

SUBSYSTEM=="usb", ATTR{idVendor}=="2970", ATTR{idProduct}=="2282", MODE="0666", GROUP="plugdev", SYMLINK+="android%n"

Zwei Unterschiede:Es ist jetzt SUBSYSTEM (kein Plural) und die Gruppe hat sich von androiddev geändert bis plugdev (Ersteres existiert auf neueren Systemen nicht, letzteres schon und wird normalerweise zumindest dem ersten Benutzer zugewiesen).

Außerdem müssen Sie möglicherweise die Hersteller-ID zu Ihrem ~/.android/adb_usb.ini hinzufügen (eine ID pro Zeile, in Hex-Schreibweise):

# ANDROID 3RD PARTY USB VENDOR ID LIST
# 1 USB VENDOR ID PER LINE.
0x2970

Ein paar Kommentare von einer neueren Linux-Distribution. Fedora 29 mit einem Nexus 5X oder dem Nokia 7.1 (Android One) Telefon.

Trennen Sie zuerst das Telefon, falls es bereits verbunden ist.

  1. Installieren Sie Android-Tools, die ADB bereitstellen (sudo dnf install android-tools )
  2. UDEV-Regeln kopieren (sudo cp /usr/share/doc/android-tools/51-android.rules /etc/udev/rules.d )
  3. udev-Regeln neu laden (sudo udevadm control --reload-rules )
  4. Starten Sie ADB neu, um sicherzugehen (sudo systemctl restart adb )

Schließen Sie nun das Telefon an und führen Sie adb devices aus von der Kommandozeile. Sie werden wahrscheinlich ein Gerät sehen, das mit „keine Berechtigungen“ aufgelistet ist. Das ist in Ordnung.
WENN es nicht aufgeführt ist, müssen Sie Ihr Gerät zur udev-Regeldatei hinzufügen, aber für mich funktionierten die getesteten Geräte nur mit den vordefinierten Regeln.

Führen Sie adb shell aus und hoffentlich erhalten Sie eine Sicherheitsbenachrichtigung auf dem Telefon, in der Sie gefragt werden, ob Sie dem Computer vertrauen möchten. Wählen Sie Ja aus.
WENN Stattdessen sagt Ihr Computer "Fehler:Unzureichende Berechtigungen für das Gerät", Sie müssen sicherstellen, dass Sie auf dem Telefon Ihren USB-Anschluss auf den Modus "Dateien übertragen" und nicht auf "Dieses Gerät aufladen" eingestellt haben. Unter Android 8.1 befindet sich dies in den Einstellungen unter "Verbundene Geräte"> "USB".

Mir ist aufgefallen, dass selbst wenn heute alles funktioniert, es morgen plötzlich ohne ersichtlichen Grund kaputt gehen kann. Wenn das passiert, überprüfen Sie zuerst die USB-Anschlusseinstellung auf dem Gerät, die möglicherweise wieder in den Lademodus gewechselt ist, und wenn dies fehlschlägt, widerrufen Sie die USB-Debugging-Autorisierungen auf dem Gerät (in den Einstellungen unter Entwickleroptionen), und Sie sollten hoffentlich den Pop bekommen -up erneut, wenn Sie adb shell ausführen .

Damit kann ich Android Studio ausführen und auf dem verbundenen Gerät ausführen.


Linux
  1. So installieren Sie einen Gerätetreiber unter Linux

  2. Wie man SSH unter Linux von Android aus macht

  3. So erhalten Sie die Verzeichnisgröße in Linux

  4. So erstellen Sie ein virtuelles Blockgerät (Loop-Gerät/Dateisystem) in Linux

  5. Wie bekomme ich eine Netzmaske von Bash?

So verwenden Sie das Linux-Terminal in Android

So installieren Sie Kali Linux auf einem Android-Telefon

So erhalten Sie Ihre IP-Adresse unter Linux

Erste Schritte mit Arch Linux

So erhalten Sie eine Liste symbolischer Links unter Linux

Wie starte ich einen Android-Emulator in Ubuntu 16.04?