重新包装后,股票boot.img无法启动

时间:2019-08-13 20:44:16

标签: android linux-kernel android-source android-kernel custom-rom

我的设备具有功能齐全且经过测试的官方boot.img。

但是当我尝试解压缩并重新打包时(无论如何都没有修改),内核无法照常启动。

当我尝试启动新内核时,我的屏幕左上方出现“内核不是seandroid强制执行”文本,并且该设备似乎卡住了徽标。

我正在使用位于以下位置的bootimg工具:https://github.com/pbatard/bootimg-tools

这是我打开包装的方式:

$ ./unmkbootimg -i stock/boot.img 
kernel written to 'kernel' (11273048 bytes)
ramdisk written to 'ramdisk.cpio.gz' (2856269 bytes)

To rebuild this boot image, you can use the command:
  mkbootimg --base 0 --pagesize 2048 --kernel_offset 0x00008000 --ramdisk_offset 0x01000000 --second_offset 0x00f00000 --tags_offset 0x00000100 --cmdline 'console=ttyS1,115200n8' --kernel kernel --ramdisk ramdisk.cpio.gz -o stock/boot.img

我正在unpack命令中使用相同的命令来重新打包它:

$ ./mkbootimg --base 0 --pagesize 2048 --kernel_offset 0x00008000 --ramdisk_offset 0x01000000 --second_offset 0x00f00000 --tags_offset 0x00000100 --cmdline 'console=ttyS1,115200n8' --kernel kernel --ramdisk ramdisk.cpio.gz -o stock/boot.img

我不知道这里是什么问题,我什至不确定这是否是使zImage可启动的正确方法。

任何帮助将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:3)

我需要使用最新的工具。

似乎boot.img文件格式在过去几年中发生了变化。

工作工具位于:https://github.com/GameTheory-/mktool/tree/master/tools。 .jar工具不适用于我,但后端工具适用:)

*打开包装*

$ ./unpackbootimg -i stock/boot.img -o stockoutdir
BOARD_KERNEL_CMDLINE console=ttyS1,115200n8
BOARD_KERNEL_BASE 00000000
BOARD_NAME 
BOARD_PAGE_SIZE 2048
BOARD_HASH_TYPE sha1
BOARD_KERNEL_OFFSET 00008000
BOARD_RAMDISK_OFFSET 01000000
BOARD_SECOND_OFFSET 00f00000
BOARD_TAGS_OFFSET 00000100
BOARD_DT_SIZE 673792

*要重新打包*

$ ./mkbootimg --kernel stockoutdir/boot.img-zImage --ramdisk stockoutdir/boot.img-ramdisk.gz --cmdline "console=ttyS1,115200n8" --base 00000000 --pagesize 2048 --dt stockoutdir/boot.img-dt --kernel_offset 00008000 --ramdisk_offset 01000000 --second_offset 00f00000 --tags_offset 00000100 --hash sha1 -o custom.img