boot.img解包和打包过程

MTK平台:
boot.img打包过程:

boot.img=header+kernel+ramdisk.img
LK会使用header里面的参数。
mkbootimg header参数在BoardConfig.mk文件里定义:
BOARD_KERNEL_BASE = 0x40000000 --base
BOARD_KERNEL_OFFSET = 0x00080000 --kernel_offset
BOARD_RAMDISK_OFFSET = 0x04000000 --ramdisk_offse
BOARD_TAGS_OFFSET = 0xE000000 --tags_offset
BOARD_KERNEL_CMDLINE = bootopt=64S3,32N2,64N2 --cmdline
mkbootimg命令对kernel和ramdisk.img打包,使用的选项如下:
--kernel
--ramdisk
--base
--kernel_offset
--ramdisk_offse
--tags_offset
--cmdline
--pagesize(可选)
--board(可选)
--output
举例如下:
# make boot.img
INSTALLED_BOOTIMAGE_TARGET := $(PRODUCT_OUT)/boot.img
INSTALLED_KERNEL_TARGET=$PRODUCT_OUT/kernel
INSTALLED_RAMDISK_TARGET=./ramdisk.img
MKBOOTIMG=./mkbootimg

BUILD_NUMBER=`date +%s`
CUSTOM_BUILD_VERNO_HDR=$BUILD_NUMBER
BOARD_KERNEL_BASE=0x40000000
BOARD_KERNEL_OFFSET=0x00080000
BOARD_RAMDISK_OFFSET=0x04000000
BOARD_TAGS_OFFSET=0xE000000
BOARD_KERNEL_CMDLINE="bootopt=64S3,32N2,64N2"


INTERNAL_BOOTIMAGE_ARGS=" --kernel $INSTALLED_KERNEL_TARGET --ramdisk $INSTALLED_RAMDISK_TARGET --cmdline $BOARD_KERNEL_CMDLINE --base $BOARD_KERNEL_BASE --ramdisk_offset $BOARD_RAMDISK_OFFSET --kernel_offset $BOARD_KERNEL_OFFSET --tags_offset $BOARD_TAGS_OFFSET --board $CUSTOM_BUILD_VERNO_HDR"
BOARD_MKBOOTIMG_ARGS="--kernel_offset $BOARD_KERNEL_OFFSET --ramdisk_offset $BOARD_RAMDISK_OFFSET --tags_offset $BOARD_TAGS_OFFSET"

echo MKBOOTIMG=$MKBOOTIMG
echo INTERNAL_BOOTIMAGE_ARGS=$INTERNAL_BOOTIMAGE_ARGS
echo BOARD_MKBOOTIMG_ARGS=$BOARD_MKBOOTIMG_ARGS
echo INSTALLED_BOOTIMAGE_TARGET=$INSTALLED_BOOTIMAGE_TARGET

./$MKBOOTIMG $INTERNAL_BOOTIMAGE_ARGS $BOARD_MKBOOTIMG_ARGS --output $INSTALLED_BOOTIMAGE_TARGET

ramdisk.img打包过程:
脚本位置:build\core\Makefile
需要的应用程序:
/out/host/linux-x86/bin/mkbootfs
/out/host/linux-x86/bin/minigzip


ifeq ($(MTK_HEADER_SUPPORT),yes)
$(hide) $(MKBOOTFS) $(TARGET_ROOT_OUT) | $(MINIGZIP) > $@_raw
$(hide) $(HOST_OUT_EXECUTABLES)/mkimage $@_raw ROOTFS 0xffffffff > $@
else
$(hide) $(MKBOOTFS) $(TARGET_ROOT_OUT) | $(MINIGZIP) > $@
endif
MTK打包ramdisk.img有两种方式:加header和不加header。
MTK默认情况下:ProjectConfig.mk:MTK_HEADER_SUPPORT = no

boot.img解包
->kernel
->ramdisk.img解包
->root fs(修改)
->ramdisk.img打包
boot.img打包









  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值