Erkennen versteckter Fastboot-Befehle

Auf meinem Streben, so viel wie möglich über die Anpassung von Android zu erfahren, habe ich viele obskure und dennoch interessante Entdeckungen gemacht. Ich habe Ihnen gezeigt, wie Sie auf versteckte Menüs auf Ihrem Gerät zugreifen, indem Sie alle versteckten Anwendungsaktivitäten auf Ihrem Telefon durchgehen. In jüngerer Zeit habe ich Ihnen gezeigt, wie Sie mit bestimmten Smartphones auf das versteckte Hardwarediagnosetool zugreifen können. Nun ist mir klar, dass einige von Ihnen von der Tatsache enttäuscht waren, dass Ihr Smartphone im vorherigen Artikel nicht behandelt wurde, und ich entschuldige mich dafür.

Um dies auszugleichen, werde ich Sie durch etwas viel Fortgeschritteneres und Aufregenderes führen: Sichern Sie den Bootloader Ihres Geräts, um versteckte Fastboot-Befehle zu entdecken . Obwohl dieses Handbuch auf meinem Nexus 6P erstellt wurde, kann es auf den meisten Smartphones reproduziert werden. Auf welche Befehle Sie jedoch zugreifen können, ist von Gerät zu Gerät sehr unterschiedlich. Die meisten Befehle helfen Ihnen nicht wirklich in einer realen Situation, aber es ist trotzdem ziemlich interessant, so tief in die Einstellungen Ihres Telefons einzutauchen. Lass uns anfangen.

Haftungsausschluss: Solange Sie wissen, was Sie tun, und die Anweisungen ordnungsgemäß befolgen können, sollte Ihrem Gerät nichts Schlimmes passieren. Wir spielen aber immer noch mit unseren Gerätepartitionen und dem Bootloader herum, sodass nicht abzusehen ist, was passieren könnte, wenn Sie den falschen Befehl eingeben. Stellen Sie sicher, dass Sie ein Backup außerhalb des Geräts bereit haben!


Vorbereitung

Bevor wir anfangen, gibt es eine wirklich wichtige Sache zu beachten. Um den Bootloader Ihres Geräts zu extrahieren, benötigen Sie Root-Zugriff auf Ihrem Telefon. Wenn Sie keinen Root-Zugriff haben, können Sie dieses Handbuch zu Lernzwecken weiterlesen, aber Sie können keinen der erforderlichen Befehle ausführen. Verstanden? Gut. Eine weitere Voraussetzung, die Sie erfüllen müssen, ist sicherzustellen, dass Ihr Computer über alle richtigen ADB / Fastboot-Treiber verfügt . Wenn Sie nicht über die ADB / Fastboot-Binärdateien verfügen, empfehle ich, Minimal ADB & Fastboot aus unseren Foren zu installieren. Was die Treiber angeht, können Sie hier die erforderlichen Treiber für Google Nexus-Geräte und für alle anderen Geräte von hier aus herunterladen. Woher weißt du, ob du gut gehen kannst? Schließen Sie Ihr Gerät an, aktivieren Sie das USB-Debugging in den Entwicklereinstellungen, öffnen Sie eine Eingabeaufforderung und geben Sie Folgendes ein:

 adb devices 

Wenn die Seriennummer Ihres Geräts angezeigt wird, haben Sie die richtigen Treiber.


Den Bootloader ausgeben

Unser erster Schritt ist das Öffnen einer Shell auf unserem Gerät, damit wir Befehle über ADB ausführen können. Es ist am besten, dass wir Befehle über ADB ausführen, da wir beim Tippen auf einer virtuellen Tastatur viel häufiger Fehler machen und Sie hier keine Fehler machen möchten. Der erste Befehl, den Sie in Ihrer Eingabeaufforderung ausführen sollten, lautet:

 adb shell 

Wenn Sie sehen, dass sich die Eingabeaufforderung von der Anzeige des ADB-Binärverzeichnisses zur Anzeige des Codenamens für Ihr Android-Gerät ändert, haben Sie die lokale Befehlszeilen-Shell Ihres Geräts erfolgreich eingegeben. Um auf die Partitionen zuzugreifen, die wir sichern müssen, benötigen Sie Superuser-Zugriff. Geben Sie dazu Folgendes ein:

 su 

Das Symbol vor dem Codenamen Ihres Geräts sollte sich von $ in # ändern, um anzuzeigen, dass Sie jetzt Befehle mit erhöhten Rechten ausführen können. Sei jetzt vorsichtig!

Als Nächstes ermitteln wir den genauen Speicherort des Bootloader-Image Ihres Geräts. Um das genaue Verzeichnis zu finden, werden wir eine Liste aller Partitionen und ihrer Verzeichnisse nach Namen ausdrucken und nach einer bestimmten Partition mit dem Namen " aboot" suchen . Sie müssen zwei Befehle wie folgt eingeben:

 cd /dev/block/bootdevice/by-name ls -all 

Wie Sie oben sehen können, wird eine riesige Liste von Partitionsverzeichnissen ausgedruckt. Diese Partitionen sind nach Namen sortiert, sodass wir den Speicherort unserer Bootloader-Partition leicht erkennen können. In meinem Fall befindet sich der Bootloader, der im obigen Bild "aboot" ist, unter / dev / block / mmcblk0p10. Dies hängt von Ihrem Gerät ab. Befolgen Sie daher unbedingt diese Anweisungen, um das wahre Verzeichnis zu ermitteln, in dem sich Ihr Bootloader befindet. Beachten Sie jedoch dieses Verzeichnis, da wir im folgenden Befehl darauf verweisen, um den Bootloader zu sichern:

 dd if=/dev/block/{YOUR ABOOT PARTITION} of=/sdcard/aboot.img 

Sobald dies erfolgreich war, sollten Sie eine Datei mit dem Namen " aboot.img " im Stammverzeichnis Ihres internen Speichers finden. Nachdem wir den Bootloader gelöscht haben, müssen wir ihn untersuchen, um festzustellen, welche versteckten Befehle wir finden können.


Versteckte Fastboot-Befehle und ihre Verwendung

Sie kennen möglicherweise einige der gebräuchlichsten Fastboot-Befehle, z. B. Fastboot Flash oder Fastboot Boot. Es gibt viele weitere Fastboot-Befehle, wie sie im Open Source-Fastboot-Protokoll definiert sind. Hier ist eine Liste der Fastboot-Befehle, die auf jedem Gerät mit einem Bootloader verfügbar sind, der auf dem neuesten AOSP-Code basiert:

Was in dieser Liste fehlt, sind Fastboot-OEM-Befehle. Diese Befehle sind spezifisch für Android-Gerätehersteller und es gibt keine umfassende Liste oder Dokumentation, welche Fastboot-OEM-Befehle verfügbar sind. Wenn Ihr Gerätehersteller so freundlich war, einen Fastboot-Befehl bereitzustellen, der alle OEM-Befehle auflistet (versuchen Sie es mit Fastboot OEM und prüfen Sie, ob dies funktioniert), müssen Sie nichts weiter tun. Wenn es keinen Befehl gibt, der eine Liste der verfügbaren Fastboot-OEM-Befehle druckt, müssen Sie eine Liste der Zeichenfolgen aus der Datei aboot.img drucken und manuell nach den OEM-Befehlen suchen.

'strings' ist ein Linux-Befehl, dessen Dokumentation hier verfügbar ist. Wie Sie sehen, benutze ich persönlich einen Windows-Computer. Stattdessen verwende ich ein Programm, das die Strings von Linux imitiert. Die rohe Ausgabe des Befehls 'strings' in einer aboot.img-Datei ist ziemlich unübersichtlich, aber wenn Sie einfach STRG + F für 'oem' drücken, sollten Sie finden, was Sie brauchen. Wenn Sie Ihre Suche verfeinern möchten, können Sie diesen Befehl ausführen (für die von mir verknüpfte Windows-Version):

 strings * | findstr /i oem 

Für das Nexus 6P habe ich die folgende Liste der Fastboot-OEM-Befehle zusammengestellt:

 fastboot oem unlock-go fastboot oem frp-unlock fastboot oem frp-erase fastboot oem enable reduced-version fastboot oem device-info fastboot oem enable-charger-screen fastboot oem disable-charger-screen fastboot oem enable-bp-tools fastboot oem disable-bp-tools fastboot oem enable-hw-factory fastboot oem disable-hw-factory fastboot oem select-display-panel fastboot oem off-mode-charge enable fastboot oem off-mode-charge disable fastboot oem ramdump enable fastboot oem ramdump disable fastboot oem uart enable fastboot oem uart disable fastboot oem hwdog certify begin fastboot oem hwdog certify close fastboot oem get-imei1 fastboot oem get-meid fastboot oem get-sn fastboot oem get-bsn fastboot oem get_verify_boot_status 

Seien Sie gewarnt, dass Sie keinen der oben genannten oder auf Ihrem Gerät erkannten Befehle ausführen sollten, es sei denn, Sie sind bereit, die Risiken zu akzeptieren. Es gibt einen Grund, warum diese Befehle für den Benutzer nicht sichtbar sind.

Davon abgesehen habe ich mir überlegt, wie ich einige der gefundenen Fastboot-Befehle (die möglicherweise auf Ihrem Gerät vorhanden sind oder nicht, befolgen Sie also die obigen Anweisungen, um dies zu überprüfen!) Sinnvoll einsetzen kann, um die anspruchsvollsten Android-Anwendungen zu finden Enthusiast. Es gibt hier zwei Befehle, die eine praktische Verwendung haben könnten.

An erster Stelle steht der Befehl fastboot oem (enable | disable) -charger-screen . Dadurch wird der Ladebildschirm deaktiviert, der beim Ausschalten des Geräts angezeigt wird. Wenn Sie bei ausgeschaltetem Telefon kein Fan der blendenden Helligkeit des Ladebildschirms sind, können Sie diesen über diesen versteckten Schnellstartbefehl deaktivieren!

Als nächstes gibt es den Befehl fastboot oem off-mode-charge (enable | disable) . Dieser Befehl legt fest, ob Ihr Gerät automatisch eingeschaltet wird, wenn eine Stromquelle erkannt wird. Standardmäßig ist "Deaktivieren" eingestellt. Ich gebe zu, dass dieser Befehl für Telefone nicht viel Sinn macht, aber wenn Sie vorhaben, Ihr Tablet in das Armaturenbrett Ihres Autos einzubauen, werden Sie diesen Befehl unglaublich nützlich finden. Sie können Ihr Gerät so einstellen, dass es sofort eingeschaltet wird, wenn das Tablet mit Strom versorgt wird, z. B. wenn die Autobatterie startet. Umgekehrt ist es mit einer Automatisierungs-App wie Tasker recht einfach, das Tablet auszuschalten, wenn der Strom ausfällt. Dieser Befehl funktioniert übrigens genau so, wie er auf dem Nexus 7 (2013) geschrieben wurde.


Das war es für diese Lektion in Android Anpassbarkeit. Teilen Sie die Befehle, die Sie entdecken (idealerweise in einem Pastebin-Link), in den Kommentaren unten!

Vielen Dank an Senior Recognized Developer Dees_Troy für seine Unterstützung bei der Erstellung dieses Artikels!