库存 boot.img 重新包装后无法开机
Stock boot.img not booting after re-packing
我的设备有一个功能齐全且之前经过测试的官方 boot.img。
但是当我尝试解压并重新打包(不做任何修改)时,内核无法正常启动。
当我尝试启动新内核时,我在屏幕左上角看到一个 "Kernel is not seandroid enforcing" 文本,并且设备似乎卡住了并显示徽标。
我正在使用位于此处的引导工具: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
我在解包命令中使用完全相同的命令重新打包它:
$ ./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 可启动的正确方法。
如有任何帮助,我们将不胜感激。
谢谢。
我需要使用最新的工具。
似乎 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
我的设备有一个功能齐全且之前经过测试的官方 boot.img。
但是当我尝试解压并重新打包(不做任何修改)时,内核无法正常启动。
当我尝试启动新内核时,我在屏幕左上角看到一个 "Kernel is not seandroid enforcing" 文本,并且设备似乎卡住了并显示徽标。
我正在使用位于此处的引导工具: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
我在解包命令中使用完全相同的命令重新打包它:
$ ./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 可启动的正确方法。
如有任何帮助,我们将不胜感激。
谢谢。
我需要使用最新的工具。
似乎 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