Was ist dieses "adb" -Dienstprogramm, für das ich immer wieder Ratschläge bekomme?

10

In einer Reihe von Fragen auf dieser Site sehe ich Antworten, die uns auffordern, etwas auszuführen adb shelloder adb logcatso weiter.

Jetzt bin ich kein völlig ahnungsloser Benutzer, also habe ich Termux heruntergeladen und installiert und habe eine Shell-Eingabeaufforderung, wenn ich Befehle eingeben kann, aber - woher kommt dieses adbDing? Lade ich es als App herunter? Es scheint nicht standardmäßig installiert zu sein (auf einem Redmi 3S, Android 6.0.1).

Es scheint auch eine Art Erlaubnisaufzug zu sein. Ist es wie su? Wenn nicht, wie ist es anders?

einpoklum
quelle
@ RahulGopi: Ja, ich denke nur, dass es hier auf der Website eine prägnante Antwort geben könnte.
Einpoklum
5
Es ist das Tool, das in unserem ADB-Tag-Wiki beschrieben ist , mit verknüpften Ressourcen - sagte mir, bevor ich denke :) Denken Sie daran: Viele unserer Tags haben anständige Wikis :) Siehe auch hier auf unserer Website: Was ist ADB und warum wird es verwendet? zum? Wie installiere ich es auf meinem Gerät?
Izzy
Mit dem ADB werden Mäuse und Tastaturen an hochmoderne Computer angeschlossen.

Antworten:

33

Über adb

Kurz gesagt, adb(Android Debug Bridge) ist ein Dienstprogramm, das auf einem Computer installiert werden soll, damit es auf einem Telefon, das entweder über ein USB-Kabel oder über dasselbe Wi-Fi-Netzwerk angeschlossen ist, eine Shell erhält.

Auf bestimmten Geräten mit Android Lollipop (5.1.1) und möglicherweise niedrigeren Versionen des Betriebssystems war es möglich, ein Gerät dazu zu bringen, sich mit sich selbst zu verbinden, da der adbClient auch im Telefon enthalten war. Dies ist nicht mehr möglich, da Googleadb ab Android Marshmallow (6.0) die Binärdatei von den Telefonen entfernt hat, um die nutzbare Angriffsfläche zu verringern.

Es ist jedoch möglich, den adbClient auf einem Telefon manuell wieder einzuführen , ohne die Binärdatei selbst kompilieren zu müssen. Weitere Informationen zu diesem Thema sowie zur Installation auf einem Computer und zur allgemeinen Fehlerbehebung finden Sie im Adb-Tag-Wiki .


Wo man es bekommt

Vor einiger Zeit musste man das vollständige Android SDK von Google herunterladen, um ein offizielles Paket zu erhalten, um ein adbanderes Hilfsprogramm namens fastbootGoogle zu erhalten. Heutzutage ist ein kleines offizielles Paket verfügbar, wie XDA sagt . Es enthält Binärdateien für die gängigsten Betriebssysteme.


Wie es funktioniert

Der adbauf Ihrem Computer installierte Client stellt über einen internen Server eine Verbindung zu einem angeschlossenen oder anderweitig erkennbaren Telefon her. Anschließend kann der Benutzer eine Vielzahl von Befehlen an das Telefon selbst senden, die von adbdeinem auf dem Telefon befindlichen Dämon abgehört werden.

Bei der Verwendung geben adbSie sich als der angerufene Benutzer shell(UID 2000) aus. Dieser Benutzer ist insofern besonders, als er App-Berechtigungen erteilen und auf mehr Informationen zugreifen kann als ein einfacher Benutzer. Diese Tatsache bedeutet jedoch nicht, dass dies mit der Tatsache adbidentisch ist su, dass Sie sich mit letzterem als Benutzer ausgeben können.

Weitere Informationen adbund Funktionen finden Sie in der offiziellen Dokumentation .


Befehle von einem Telefon aus ausgeben

Die meisten Befehle, die über ausgegeben werden können adb, sind Dienstprogramme, die in einem Telefon vorinstalliert sind.

Um auf sie zugreifen zu können, müssen Sie eine Terminalemulator-App auf Ihrem Telefon installieren (beachten Sie, dass Termux insofern besonders ist, als es seine eigenen spezifiziert PATHund dabei System-Binärdateien ignoriert). Auf diese Weise können Sie beispielsweise Befehle logcatdirekt auf Ihrem Mobilgerät ausgeben . Denken Sie jedoch daran, das adbPräfix wegzulassen .

Es ist erwähnenswert, dass bei fehlenden Root-Berechtigungen der Befehlsbereich, den Sie ausführen können, und die Informationen, auf die Sie zugreifen können, erheblich geringer sind als bei Verwendung adb, da die UID, die sie aufruft, die ist App selbst und Apps haben weniger Berechtigungen als UID 2000.

Zauberbuch
quelle
Gut gemacht! Leider kann ich nicht zweimal upvoten :) // Ja, unsere Wikis sind viel zu oft "unbekannte Mengen". Kann dort nicht oft genug zeigen. Aber das Einfügen eines Links in eine Antwort, die darin erwähnt wird, geht meiner Meinung nach ein bisschen weit :) Wo es passt (wie hier: "für weitere Details ..."), eine gute Idee. Fühlen Sie sich frei, damit fortzufahren - ich mache in der Zwischenzeit eine Bereinigung der Kommentare :)
Izzy
@ Izzy Guter Punkt. Lassen Sie uns abwarten, ob tatsächlich Link-Spam benötigt wird.
Grimoire
Bitte haben Sie meine Zustimmung.
iBug
@ iBug Ich fühle mich geehrt.
Grimoire
2

Android Debugging Bridge (ADB) .

Es sendet Befehle über USB oder Wifi an ein Android-Gerät. Es wird normalerweise auf dem Computer installiert, der an das Gerät angeschlossen ist. Der ADB-Client kann auch auf dem Gerät selbst ausgeführt werden. Die Idee ist jedoch, das Gerät remote zu debuggen.

Es ist Teil des Android Software Development Kit

Anschließend können Sie mit dem SDK-Manager Plattformtools herunterladen.

Es gibt hier auch einen direkteren Link, falls Sie nur an den Plattform-Tools interessiert sind

ADB-Dokumentation

jdwolf
quelle
Warten Sie, wenn es nicht auf dem Gerät installiert ist, warum schlagen die Leute vor, es in Shells auf dem Gerät zu verwenden? zB in den Beispielen, die ich gegeben habe?
Einpoklum
Das ist ein guter Punkt. Vielleicht ist es richtiger zu sagen, dass der Befehl adb der "Client" ist, der eine Verbindung zu einem Android-Gerät herstellt. Das Android-Gerät kann auch den Client haben, weil warum nicht. Aber das ist ein bisschen wie ssh localhost laufen
jdwolf
Um ehrlich zu sein, erklärt die Dokumentation dies alles gut: developer.android.com/studio/command-line/adb.html
jdwolf