Flash boot.img ohne Fastboot USB

10

Also habe ich kürzlich mein Telefon gerootet und ein oder zwei ROMs ausprobiert. Ich finde es sehr praktisch, dass Sie TWRP Recovery verwenden können, um ein anderes ROM von der SD-Karte zu installieren. Sie müssen es nicht an einen PC anschließen.

Auf meinem Gerät (HTC One S) muss ich jedoch auch für jedes ROM eine andere boot.img-Datei flashen, sodass ich mein Telefon immer noch an meinen PC anschließen muss, um die ROMs zu wechseln. Wenn ich das nicht mache, bleibt es einfach auf dem Ladebildschirm hängen. Dann muss ich den Befehl verwenden

fastboot flash boot boot.img

aus dem Ordner, in dem sich boot.img befindet.

Ist es möglich, dieses Boot-Image mit TWRP oder auf andere Weise zu flashen, ohne Fastboot über USB zu verwenden?

MarioDS
quelle

Antworten:

10

Was getan werden muss, ist die boot.img zu bündeln und eine neue Zip-Datei zu erstellen, die zum Flashen über ClockworkMod oder TWRP geeignet ist.

Voraussetzungen :

  • Eine Linux-Umgebung, in der die üblichen Entwicklungspakete wie Java installiert sind. ( Dies kann auch für andere Plattformen gelten . Achten Sie jedoch darauf, dass in den Anweisungen hier, die den unten verwendeten Pfad angeben, ein Schrägstrich verwendet /wird. Drehen Sie diesen um, um einen Schrägstrich \für die Windows-Umgebung zu erhalten. )
  • ADB-Befehlszeilentool installiert.
  • `testsign.jar'- Tool zum Signieren der Zip-Datei, damit die Wiederherstellung authentifiziert und überprüft werden kann, ob es sich um ein gültiges Archiv handelt. Andernfalls meldet die Wiederherstellung ein beschädigtes Archiv oder ähnliches.
  • update-binaryBefehlszeile - Anwendung , die für die Verwendung mit dem flashbar Skript intern ist. (Dies kann mit jedem flashbaren Zip gefunden werden. Wichtig ist, dass Sie diese Binärdatei extrahieren und wie gezeigt in der Struktur des Verzeichnisses ablegen.)
  • zip Kommandozeilen-Tool.

Angenommen, Ihr Verzeichnis heißt workdir . Nennen Sie dies zur Diskussion das Arbeitsverzeichnis, kopieren Sie es boot.imgin dieses Verzeichnis und erstellen Sie die folgende Verzeichnisstruktur - META-INF/com/google/androiddas ist wichtig! META-INF/com/google/androidKopieren Sie innerhalb der aufgerufenen Binäranwendung update-binaryin dieses Verzeichnis. Die Verzeichnisstruktur sollte also folgendermaßen aussehen:

+ workdir/
     +
     |
     +--+ boot.img
     |
     |
     +--+ META-INF/
              +
              |
              +--+ com/
                    +
                    |
                    +--+ google/
                           +
                           |
                           +--+ android/
                                   +
                                   |
                                   +--> update-binary
                                   |
                                   +--> updater-script

Wie für das updater-scriptKopieren Sie den Inhalt der folgenden unten:

ui_print("Please wait, boot.img being flashed...");
show_progress(0.1, 0);
assert(package_extract_file("boot.img", "/tmp/boot.img"),
       write_raw_image("/tmp/boot.img", "boot"),
       delete("/tmp/boot.img"));
show_progress(0.1, 10);
ui_print("It is now safe to reboot! :)");

Denken Sie daran: Seien Sie hier nicht verwirrt. Das Updater-Skript sollte wie gezeigt in Ruhe gelassen werden. Versuchen Sie daher nicht, den Schrägstrich in einen Schrägstrich umzuwandeln, wenn Sie dies in einer Windows-Umgebung tun.

Kehren Sie zum übergeordneten Verzeichnis der Verzeichnisstruktur zurück, dh außerhalb von workdir, und führen Sie die folgenden Schritte aus , um daraus eine Zip-Datei zu erstellen:

zip -r my_custom_flashable_boot_unsigned.zip workdir/Dies ist eine rekursive Funktion, die alles in die Datei my_custom_flashable_boot_unsigned.zip komprimiert .

Um die Zip-Datei zu signieren, gehen Sie wie folgt vor:

java -classpath testsign.jar testsign my_custom_flashable_boot_unsigned.zip my_custom_flashable_boot_signed.zip

Dann müssen Sie das wie in über die SDCard schieben adb push my_custom_flashable_boot_signed.zip /sdcard/und manuell in die Wiederherstellung gehen und das Zip-Archiv (dh my_custom_flashable_boot_signed.zip ) angeben, in dem das Flashen für Sie ausgeführt wird.

t0mm13b
quelle
Schön, ich mag es, selbst Sachen zu erstellen, also ausgezeichnete Anweisungen. Es ist kein Punkt, an dem ich meinen Computer dafür benötige, da ich einfach flashbare Boot-Zips für alle meine ROMs in einem Ordner meiner SD-Karte erhalten kann, was zu der gewünschten Situation führt.
MarioDS
2

Wenn Sie die flash_imageBinärdatei haben, können Sie dies auf dem Gerät über den Terminalemulator tun (Flash-Boot, der Rest über die Wiederherstellung).

Syntax: flash_image boot /sdcard/boot.img

Zeit der Eigenwerbung

Ich habe eine App, die eine GUI für die Binärdatei bereitstellt. Finden Sie es hier .

Wenn Sie diese Binärdatei nicht haben, kann sie installiert werden (Google it - Sie müssen sie herunterladen und dann in den /system/binOrdner kopieren .

Dies funktioniert nicht auf allen Geräten, ist jedoch die einzige Möglichkeit, die Ihnen in den Sinn kommt.

Liam W.
quelle
Wenn ich das gut verstehe, ist der Terminalemulator nur eine normale App, die Sie ausführen, während Ihr Telefon im normalen Modus gestartet wird. Gibt es keine Probleme beim Flashen des Starts, während das Betriebssystem ausgeführt wird?
MarioDS
1
@MarioDeSchaepmeester Das Telefon verwendet nur Boot, während es bootet;)
Liam W
Ich musste es herabstimmen, da flash_imagees erforderlich ist, vom Mobilteil kopiert und aufgerufen zu werden adb shell. Die Dokumentation ( darf ich hinzufügen, Sie haben den Link nicht angegeben!) Fordert die erneute Bereitstellung der SDCard mit gesetztem Exec-Bit (* schlechte Idee ) und erfordert root su, dh darüber hinaus beträgt die "Eigenwerbung" in Bezug auf Ihre App in Euro, wo ich herkomme, 6,09 Euro, was teuer ist ... Fastboot ist die Norm, CM hat ihre eigenen skurrilen Wege , - was ist anders mit fastbootund flash_image?
t0mm13b
Auch die Binärdatei kann ohne Computer verwendet werden.
Liam W
0

Ist es möglich, dieses Boot-Image mit TWRP [...] zu flashen?

Benennen Sie die Datei boot.emmc.win um und legen Sie sie ab TWRP/BACKUPS/(neuen Ordner erstellen). Stellen Sie das Backup aus dem üblichen TWRP-Menü wieder her

Alecxs
quelle