Android image 文件系统

本文深入探讨了Android系统中关于image文件系统的内部运作,特别是关注于INTERNAL_USERIMAGES_USE_EXT在Makefile中的配置和影响。通过对这一关键定义的分析,揭示了Android如何管理和使用扩展存储空间来存储用户图像。
摘要由CSDN通过智能技术生成
       自己添加的一个新项目在编译过程中发现 sytem.ima 文件大小超标,网上已经有很多接这个问题的方法 (修改 BOARD_SYSTEMIMAGE_PARTITION_SIZE 的尺寸, BOARD_USERDATAIMAGE_PARTITION_SIZE ), 仔细的看看发现 system.img 编译成了 ext4 而不是 yaffs2,查看了一下 build 系统的Makefile。
1. 在 buildi/core/Makefile 中有如下的代码,如果 INTERNAL_USERIMAGES_USE_EXT 为 true 则编译 ext 文件系统,反之编译 yaffs2
ifeq ($(INTERNAL_USERIMAGES_USE_EXT),true)
## generate an ext image
# $(1): output file
define build-systemimage-target
    @echo "Target system fs image: $(1)"
    $(call build-userimage-ext-target,$(TARGET_OUT),$(1),system,$(INTERNAL_USERIMAGES_EXT_VARIANT),$(BOARD_SYSTEMIMAGE_PARTITION_SIZE))
endef

else # INTERNAL_USERIMAGES_USE_EXT != true

## generate a yaffs2 image
# $(1): output file
define build-systemimage-target
    @echo "Target system fs image: $(1)"
    @mkdir -p $(dir $(1))
    $(hide) $(MKYAFFS2) -f $(mkyaffs2_extra_flags) $(TARGET_OUT) $(1)
endef
endif # INTERNAL_USERIMAGES_USE_EXT


2. 查看了一下 INTERNAL_USERIMAGES_USE_EXT 在Makefile 中的定义:

  
INTERNAL_USERIMAGES_EXT_VARIANT :=
   ifeq ($(TARGET_USERIMAGES_USE_EXT2), true)
      INTERNAL_USERIMAGES_USE_EXT := true;
      INTERNAL_USERIMAGES_EXT_VARIANT :=ext2
   else
   ifeq ($(TARGET_USERIMAGES_USE_EXT3), true)
      INTERNAL_USERIMAGES_USE_EXT := true
      INTERNAL_USERIMAGES_EXT_VARIANT :=ext3
   else
   ifeq ($(TARGET_USERIMAGES_USE_EXT4, true)
      INTERNAL_USERIMAGES_USE_EXT := true
      INTERNAL_USERIMAGES_EXT_VARIANT :=ext4
   endif
   endif
   endif


 默认情况下 TARGET_USERIMAGES_USE_EXT[234] 是没有定义的,也就是说默认情况下是把 system.img编译成 yaffs2 文件系统
 如果有需要,可以 在BoardConfig.mk 加入 TARGET_USERIMAGES_USE_EXT4:= true, 从而把 system.img 编译成为 ext4 文件系统, 修改之后,注意 init.rc 处 mount system.img 也要修改为 ext4.

     
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值