/default.prop、/system/build.prop、/system/default.prop以及/data/local.prop。
其中比較重要的主要是build.prop,大部分新增也都是新增在此。因此,本篇將會介紹build.prop的生成過程。
Android的build.prop文件是在Android編譯時間收集的各種property(包括: LCD density/語言/編譯時間...等),編譯完成之後,文件生成在out/target/product/
build.prop的生成是由make系統解析build/core/Makefile完成,步驟如下:
1) Makefile中首先定義各種變量,這在下一步執行時會用到。比如:
...
PRODUCT_DEFAULT_LANGUAGE="$(calldefault-locale-language,$(PRODUCT_LOCALES))" \
PRODUCT_DEFAULT_REGION="$(calldefault-locale-region,$(PRODUCT_LOCALES))" \
...
2) Makefile中調用build/tools/buildinfo.sh,並輸出到build.prop
buildinfo.sh很簡單,只是echo一些屬性,比如:
...
echo"ro.product.locale.language=$PRODUCT_DEFAULT_LANGUAGE"
echo"ro.product.locale.region=$PRODUCT_DEFAULT_REGION"
...
而,ro.product.locale.language / ro.product.locale.region就是些Property,等號後面是Value。 3) Makefile中直接把$(TARGET_DEVICE_DIR)/system.prop的內容加到build.prop中。
4) 收集ADDITIONAL_BUILD_PROPERTIES中的屬性,加到build.prop中。 ADDITIONAL_BUILD_PROPERTIES又會收集PRODUCT_PROPERTY_OVERRIDES中定義的屬性
ADDITIONAL_BUILD_PROPERTIES:= \
$(ADDITIONAL_BUILD_PROPERTIES)\
$(PRODUCT_PROPERTY_OVERRIDES)
通過以上build.prop生成過程的分析,就可以知道哪可以修改原有的Property或加入自己定義的Property,那就是 2) buildinfo.sh;
3) system.prop;
4) ADDITIONAL_BUILD_PROPERTIES或PRODUCT_PROPERTY_OVERRIDES。
不過似乎大家都比較建議改在system.prop或PRODUCT_PROPERTY_OVERRIDES,這將對應到個別Platform或是Product的修改。
沒有留言:
張貼留言