¿Cómo volver a empaquetar la imagen de recuperación de Odin?

Quiero cambiar la imagen de recuperación del paquete ODIN para Samsung P601. Descomprimí el archivo y obtuve recovery.img. A continuación, he intentado hacer simg2img recovery.img recovery.raw.img, pero dice:

Formato de archivo disperso no válido en el encabezado magi Error al leer el archivo disperso

Creo que eso significa que no debe ser convertido. He intentado montarlo, pero parece que el FS no es ext4.

Entonces, la pregunta es: ¿cómo montar recovery.img, cambiar archivos allí y guardarlos de nuevo? Estoy usando OS X y Windows (con cygwin).

Respuestas (2)

Puede usar unmkbootimgdesde este hilo en XDA Developers .

$ unmkbootimg recovery.img

Esto debería darte dos archivos: initramfs.cpio.gzy zImage(la imagen del kernel). Para extraer initramfs.cpio.gzuse este comando:

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

Consulte esta publicación para obtener información más detallada.

EDITAR: Me acabo de dar cuenta de que solo respondí la mitad de la pregunta. Para volver a empaquetar la imagen después de realizar cambios en los archivos extraídos, use el comando que unmkbookimgle dio, por ejemplo

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

Según el artículo, use este comando para crear el nuevo archivo initramfs.cpio.gz (no probado):

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

La recuperación no es una imagen dispersa (que es un Ext4), por lo que no puede hacer eso, ni montarlo. Es una imagen de arranque para la que puedes usar mkbootimg.