Android的build.prop生成

来源:互联网 发布:东莞淘宝美工培训学校 编辑:程序博客网 时间:2024/05/16 10:59


Build.prop由三部分组成:

1)#begin build properties#end build properties之间的部分;2)$(TARGET_DEVICE_DIR)/system.prop

3)#ADDITIONAL_BUILD_PROPERTIES之后的部分;

Androidbuild.prop文件是在Android编译时收集的各种property,编译完成之后生成在out/target/product/<board>/system/目录下。Recovery中的default.prop是由root下的default.propbuild.prop合并而成。

Android运行时刻可以通过property_get()[c/c++] / SystemProperties_get*()[Java]读取这些属性值。

 

build.prop的生成是由make系统解析build/core/Makefile完成。

1) Makefile中首先定义各种变量,这在下一步执行时会用到。比如:print?

1 ... 

2 PRODUCT_DEFAULT_LANGUAGE="$(calldefault-locale-language,$(PRODUCT_LOCALES))" \ 

3 PRODUCT_DEFAULT_REGION="$(calldefault-locale-region,$(PRODUCT_LOCALES))" \ 

4 ... 

有些变量可能会在$(TARGET_DEVICE_DIR)定义,例如BUILD_ID一般定义在$(TARGET_DEVICE_DIR)/build_id.mk中。

2) Makefile中调用build/tools/buildinfo.sh执行脚本,并输出到build.prop

Buildinfo.sh很简单,只是echo一些属性,比如:print?

5 ... 

6 echo"ro.product.locale.language=$PRODUCT_DEFAULT_LANGUAGE" 

7 echo"ro.product.locale.region=$PRODUCT_DEFAULT_REGION" 

8 ... 

而,ro.product.locale.language/ ro.product.locale.region就是些属性,等号后面是值。

3) Makefile中直接把$(TARGET_DEVICE_DIR)/system.prop的内容追加到build.prop中。

4) 收集ADDITIONAL_BUILD_PROPERTIES中的属性,追加到build.prop中。

ADDITIONAL_BUILD_PROPERTIES又会收集PRODUCT_PROPERTY_OVERRIDES中定义的属性print?

9 ADDITIONAL_BUILD_PROPERTIES:= \ 

10 $(ADDITIONAL_BUILD_PROPERTIES)\ 

11 $(PRODUCT_PROPERTY_OVERRIDES) 

通过build.prop生成过程的分析,可知哪里可以修改原有的属性或加入自己定义属性,那就是1)build/core/Makefile2) buildinfo.sh; 3) system.prop; 4) ADDITIONAL_BUILD_PROPERTIESPRODUCT_PROPERTY_OVERRIDES

 

0 0
原创粉丝点击