Wie kann ich das Odin-Wiederherstellungs-Image neu packen?

Ich möchte das Wiederherstellungs-Image aus dem ODIN-Paket für Samsung P601 ändern. Ich habe das Archiv entpackt und recovery.img erhalten. Als nächstes habe ich versucht zu tun simg2img recovery.img recovery.raw.img, aber es heißt:

Ungültiges Sparse-Dateiformat bei Header-Magi Sparse-Datei konnte nicht gelesen werden

Ich denke, das bedeutet, dass es nicht konvertiert werden sollte. Ich habe versucht, es zu mounten, aber das FS scheint nicht ext4 zu sein.

Die Frage ist also, wie man recovery.img mountet, dort Dateien ändert und wieder speichert? Ich verwende OS X und Windows (mit Cygwin).

Antworten (2)

unmkbootimgSie können von diesem Thread auf XDA Developers verwenden .

$ unmkbootimg recovery.img

Dies sollte Ihnen zwei Dateien geben: initramfs.cpio.gzund zImage(das Kernel-Image). Verwenden Sie zum Extrahieren initramfs.cpio.gzdiesen Befehl:

$ mkdir ramdisk && cd ramdisk
$ gunzip -c ../initramfs.cpio.gz | cpio -i

Weitere Informationen finden Sie in diesem Beitrag .

EDIT: Mir ist gerade aufgefallen, dass ich nur die Hälfte der Frage beantwortet habe. Um das Image neu zu packen, nachdem Sie Änderungen an den extrahierten Dateien vorgenommen haben, verwenden Sie den Befehl, der unmkbookimgIhnen gegeben hat, z

mkbootimg --kernel zImage --ramdisk initramfs.cpio.gz --base 0x40000000 --cmdline 'console=ttyS0,115200 rw init=/init loglevel=8' -o new_boot.img

Verwenden Sie laut Artikel diesen Befehl, um die neue initramfs.cpio.gz-Datei zu erstellen (ungetestet):

find . | cpio -o -H newc | gzip > ../newramdisk.cpio.gz

Die Wiederherstellung ist kein Sparse-Image (das ein Ext4 ist), also können Sie das nicht tun und es auch nicht mounten. Es ist ein Boot-Image, für das Sie mkbootimg verwenden können.