android userimage镜像文件格式定义分析

来源:互联网 发布:淘宝一件代发货源网免费加盟代理 编辑:程序博客网 时间:2024/05/16 05:57

编译安卓源码后,会在输出目录输出rootdir和system的镜像文件,那么文件格式是如何定义的呢?

build/core/Makefile:

# ################################################################## Targets for user images# #################################################################INTERNAL_USERIMAGES_EXT_VARIANT :=ifeq ($(TARGET_USERIMAGES_USE_EXT2),true)INTERNAL_USERIMAGES_USE_EXT := trueINTERNAL_USERIMAGES_EXT_VARIANT := ext2elseifeq ($(TARGET_USERIMAGES_USE_EXT3),true)INTERNAL_USERIMAGES_USE_EXT := trueINTERNAL_USERIMAGES_EXT_VARIANT := ext3elseifeq ($(TARGET_USERIMAGES_USE_EXT4),true)INTERNAL_USERIMAGES_USE_EXT := trueINTERNAL_USERIMAGES_EXT_VARIANT := ext4endifendifendififneq (true,$(TARGET_USERIMAGES_SPARSE_EXT_DISABLED))  INTERNAL_USERIMAGES_SPARSE_EXT_FLAG := -sendififeq ($(INTERNAL_USERIMAGES_USE_EXT),true)INTERNAL_USERIMAGES_DEPS := $(MKEXTUSERIMG) $(MAKE_EXT4FS) $(SIMG2IMG) $(E2FSCK)elseINTERNAL_USERIMAGES_DEPS := $(MKYAFFS2)endif
只要定义了TARGET_USERIMAGES_USE_EXT2、TARGET_USERIMAGES_USE_EXT3、TARGET_USERIMAGES_USE_EXT4之一,文件系统格式即确定为相应格式。

否则文件系统格式默认为yaff2。这个变量应该在哪里定义,看一下输出结果:

./build/target/board/generic/BoardConfig.mk:48:TARGET_USERIMAGES_USE_EXT4 := true./build/target/board/generic_mips/BoardConfig.mk:52:TARGET_USERIMAGES_USE_EXT4 := true./build/target/board/generic_x86_64/BoardConfig.mk:37:TARGET_USERIMAGES_USE_EXT4 := true./build/target/board/generic_x86/BoardConfig.mk:37:TARGET_USERIMAGES_USE_EXT4 := true./build/target/board/generic_aarch64/BoardConfig.mk:42:TARGET_USERIMAGES_USE_EXT4 := true./build/target/board/vbox_x86/BoardConfig.mk:14:TARGET_USERIMAGES_USE_EXT4 := true./build/core/Makefile:559:ifeq ($(TARGET_USERIMAGES_USE_EXT2),true)./build/core/Makefile:563:ifeq ($(TARGET_USERIMAGES_USE_EXT3),true)./build/core/Makefile:567:ifeq ($(TARGET_USERIMAGES_USE_EXT4),true)[root@localhost android-kernel]# vi build/core/Makefile [root@localhost android-kernel]# allgrep TARGET_USERIMAGES_USE./build/target/board/generic/BoardConfig.mk:48:TARGET_USERIMAGES_USE_EXT4 := true./build/target/board/generic_mips/BoardConfig.mk:52:TARGET_USERIMAGES_USE_EXT4 := true./build/target/board/generic_x86_64/BoardConfig.mk:37:TARGET_USERIMAGES_USE_EXT4 := true./build/target/board/generic_x86/BoardConfig.mk:37:TARGET_USERIMAGES_USE_EXT4 := true./build/target/board/generic_aarch64/BoardConfig.mk:42:TARGET_USERIMAGES_USE_EXT4 := true./build/target/board/vbox_x86/BoardConfig.mk:14:TARGET_USERIMAGES_USE_EXT4 := true./build/core/Makefile:559:ifeq ($(TARGET_USERIMAGES_USE_EXT2),true)./build/core/Makefile:563:ifeq ($(TARGET_USERIMAGES_USE_EXT3),true)./build/core/Makefile:567:ifeq ($(TARGET_USERIMAGES_USE_EXT4),true)
grep搜索出来的结果很明显,在板级配置文件BoardConfig.mk文件中定义。