android 系统属性 build.prop

/system/build.prop 是一个属性文件,在Android系统中.prop文件很重要,记录了系统的设置和改变。这个文件是如何生成的呢?

build/tools/buildinfo.sh 脚本就是专门用于生成build.prop文件,
build/core/Makefile中使用build/tools/buildinfo.sh 脚本生成build.prop文件
并把系统默认的system.prop以及定制的system.prop中的设定追加到build.prop文件中
后面还有一些设备相关的配置追加到build.prop


在android手机:设置--关于手机, 以 Android版本 4.0.1 为例:

在/build/tools/buildinfo.sh中定义  环境变量
echo "ro.build.version.release=$PLATFORM_VERSION"

/build/core/version_defaults.mk 中  指定
PLATFORM_VERSION := 4.0.1

build.prop的生成是由make系统解析build/core/Makefile完成
 
Makefile中首先定义各种变量,其中就有
PLATFORM_VERSION="$(PLATFORM_VERSION)" \
这在下一步执行时会用到

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

如此在编译工程的时候会生成系统属性文件 /out/target/product/msm7627a/system/build.prop 烧写img后,系统属性文件存在于/system/build.prop中。

最后在 /packages/apps/Settings/src/com/android/settins/DeviceInfoSettings.java 中读取system/build.prop并最终显示在手机屏幕上


---------------------------------------- 分割线 --------------------------------------------

为了做个验证,我们在系统属性里添加一条 COMMUNICATION_VERSION
步骤如下:

1. 在/build/core/version_defaults.mk中添加
ifeq "" "$(COMMUNICATION_VERSION)"
  COMMUNICATION_VERSION := write into /build/core/version_defaults.mk
endif


2 .在/build/tools/buildinfo.sh中添加
echo "ro.version.communication=$COMMUNICATION_VERSION"


3. 在/build/core/Makefile中 相应的 位置 添加    
COMMUNICATION_VERSION="$(COMMUNICATION_VERSION)"\


4. 在src-code/packages/app/Settings/res/xml/device_info_settings.xml中 添加
<Preference android:key= "communication_module_version
                style="?android:preferenceInformationStyle"
                android:title="@string/ Communication_module_version"
                android:summary="@string/device_info_default"/>

4. 在/packages/apps/Settings/src/com/android/settins/DeviceInfoSettings.java的 onCreate函数中  添加
setValueSummary(KEY_COMMUNICATION_MODULE_VERSION,  "ro.version.communication");

5.编译rootfs和打包

6.查看/out/target/product/msm7627a /system/build.prop
中会多了一条
ro.version.communication =write into /build/core/version_defaults.mk

6.烧写img到手机

就会显示新添加的属性
------------------------------
Communication module version

write into /build/core/version_defaults.mk

------------------------------------

注意:KEY_COMMUNICATION_MODULE_VERSION 是communication_module_version就是XML中的key 。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值