Я хочу изменить образ восстановления из пакета ODIN для Samsung P601. Я распаковал архив и получил recovery.img. Далее я попытался сделать simg2img recovery.img recovery.raw.img
, но он говорит:
Неверный формат разреженного файла в заголовке magi. Не удалось прочитать разреженный файл.
Я думаю, это означает, что его не следует конвертировать. Пробовал монтировать, но ФС вроде не ext4.
Итак, вопрос - как смонтировать recovery.img, поменять там файлы и сохранить обратно? Я использую OS X и Windows (с cygwin).
Вы можете использовать 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.
бишайамс