android “设置”里的版本号

http://yueguc.iteye.com/blog/1124093


在文件 packages/apps/Settings/src/com/android/settings/DeviceInfoSettings.java 中

setStringSummary("build_number", Build.DISPLAY);

指定了设置--关于设备--版本号。

Build.DISPLAY即Build类中的 DISPLAY 变量,在文件frameworks/base/core/java/android/os/Build.java 中:

public static final String DISPLAY = getString("ro.build.display.id");

 

ro.build.display.id在文件build/tools/buildinfo.sh中:

echo "ro.build.display.id=$BUILD_DISPLAY_ID"

 

 而BUILD_DISPLAY_ID在文件build/core/Makefile中: 

 BUILD_DISPLAY_ID := $(BUILD_ID).$(BUILD_NUMBER)

 

其中 BUILD_ID在build/core/build_id.mk中赋值

BUILD_ID := OPENMASTER

 

 BUILD_NUMBER 在 build/core/version_defaults.mk中赋值: 

BUILD_NUMBER := eng.$(USER).$(shell date +%Y%m%d.%H%M%S)

所以在版本号中会出现编译时间的字段。

ro.build.display.id编译后保持在system下的build.prop文件。


 修改\build\tools\buildinfo.sh
-修改echo "ro.build.display.id=$BUILD_DISPLAY_ID", 把 $BUILD_DISPLAY_ID 修改成其他的名称可改变 Build Nubmer. 注意此时要去除$.
-修改echo "ro.product.model=$PRODUCT_MODEL",   把  $PRODUCT_MODEL 修改成其他的名称可改变 Model Nubmer. 注意此时要去除$
-修改echo  "ro.build.version.release=2.1" , 中的2.1, 可改变显示的Firmware version, 这个不建议修改, 影响CTS。
Baseband Version 直接写在 modem.img 中,开机后modem 自动推送到AP 端,需要专门的tool 进行修改。(基带版本修改的话可能会对系统造成影响,建议不作修改。
    基带版本信息是从Modem端读出来,然后记录到Android系统属性gsm.version.baseband中的,
    如果必须要改,可以仅修改设置应用模块相关显示部分(修改为自定义的字符串信息),
    但是这样会被其他第三方工具识别出真正信息来。)

Kernel Version 为linux 编译过程中产生, 按照标准的linux格式生成(compile.h), 最后版本信息写在文件/proc/version 下,所有的版本信息即在该文件的第一行,然后使用了一个正则表达式过滤了版本信息中一些字符,参考DeviceInfoSettings 下的getFormattedKernelVersion 方法



你可能感兴趣的:(android “设置”里的版本号)