Как перепаковать образ восстановления odin?

Я хочу изменить образ восстановления из пакета ODIN для Samsung P601. Я распаковал архив и получил recovery.img. Далее я попытался сделать simg2img recovery.img recovery.raw.img, но он говорит:

Неверный формат разреженного файла в заголовке magi. Не удалось прочитать разреженный файл.

Я думаю, это означает, что его не следует конвертировать. Пробовал монтировать, но ФС вроде не ext4.

Итак, вопрос - как смонтировать recovery.img, поменять там файлы и сохранить обратно? Я использую OS X и Windows (с cygwin).

Это может помочь forum.xda-developers.com/galaxy-s2/general/…

Ответы (2)

Вы можете использовать unmkbootimgиз этой темы на XDA Developers .

$ unmkbootimg recovery.img

Это должно дать вам два файла: initramfs.cpio.gzи zImage(образ ядра). Для извлечения initramfs.cpio.gzиспользуйте эту команду:

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

Проверьте этот пост для получения более подробной информации.

РЕДАКТИРОВАТЬ: я только что понял, что ответил только на половину вопроса. Чтобы повторно запаковать образ после внесения изменений в извлеченные файлы, используйте команду, которая unmkbookimgвам дала, например

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

Согласно статье, используйте эту команду для создания нового файла initramfs.cpio.gz (не проверено):

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

Recovery не является разреженным образом (который является Ext4), поэтому вы не можете ни сделать это, ни смонтировать его. Это загрузочный образ, для которого вы можете использовать mkbootimg.