Android image 檔案系統

來源:互聯網
上載者:User

       自己添加的一個新項目在編譯過程中發現 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 filedefine 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))endefelse # INTERNAL_USERIMAGES_USE_EXT != true## generate a yaffs2 image# $(1): output filedefine build-systemimage-target    @echo "Target system fs image: $(1)"    @mkdir -p $(dir $(1))    $(hide) $(MKYAFFS2) -f $(mkyaffs2_extra_flags) $(TARGET_OUT) $(1)endefendif # 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.

     

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.