In einer Reihe von Fragen auf dieser Site sehe ich Antworten, die uns auffordern, etwas auszuführen adb shell
oder adb logcat
so 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 adb
Ding? 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?
Antworten:
Ü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
adb
Client 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
adb
Client 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
adb
anderes Hilfsprogramm namensfastboot
Google 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
adb
auf 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 vonadbd
einem auf dem Telefon befindlichen Dämon abgehört werden.Bei der Verwendung geben
adb
Sie sich als der angerufene Benutzershell
(UID2000
) 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 Tatsacheadb
identisch istsu
, dass Sie sich mit letzterem als Benutzer ausgeben können.Weitere Informationen
adb
und 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
PATH
und dabei System-Binärdateien ignoriert). Auf diese Weise können Sie beispielsweise Befehlelogcat
direkt auf Ihrem Mobilgerät ausgeben . Denken Sie jedoch daran, dasadb
Prä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 UID2000
.quelle
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
quelle