创建Android系统属性ro.

out\target\product\sdm845\system\build.prop

的生成是由make系统解析build/core/Makefile完成,Makefile中首先定义各种变量,其中就有

BUILD_DISPLAY_ID="$(BUILD_DISPLAY_ID)" \

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

流程

packages\apps\Settings\src\com\android\settings\deviceinfo\BuildNumberPreferenceController.java

通过 preference.setSummary(BidiFormatter.getInstance().unicodeWrap(Build.DISPLAY));

找到  frameworks\base\core\java\android\os\Build.java 中的    public static final String DISPLAY = getString("ro.build.display.id"); 读取system/build.prop中的 ro.build.display.id最终显示出来。

 

添加新的ro 属性 ro.build.software.version.id:

diff --git a/build/make/core/Makefile b/build/make/core/Makefile
index f670c32..6e04970 100644
--- a/build/make/core/Makefile
+++ b/build/make/core/Makefile
@@ -290,6 +290,21 @@ else
   BUILD_DISPLAY_ID := $(build_desc)
 endif
 
+ifeq ($(TARGET_BUILD_VARIANT),user)
+  # User builds should show:
+  # release build number or branch.buld_number non-release builds
+
+  # Dev. branches should have DISPLAY_BUILD_NUMBER set
+  ifeq (true,$(DISPLAY_BUILD_NUMBER))
+    BUILD_SOFTWARE_VERSION_ID := $(BUILD_ID).$(BUILD_NUMBER_FROM_FILE) $(BUILD_KEYS)
+  else
+    BUILD_SOFTWARE_VERSION_ID := $(BUILD_ID) $(BUILD_KEYS)
+  endif
+else
+  # Non-user builds should show detailed build information
+  BUILD_SOFTWARE_VERSION_ID := $(build_desc)
+endif
+
 # Accepts a whitespace separated list of product locales such as
 # (en_US en_AU en_GB...) and returns the first locale in the list with
 # underscores replaced with hyphens. In the example above, this will
@@ -340,6 +355,7 @@ endif
                        PRIVATE_BUILD_DESC="$(PRIVATE_BUILD_DESC)" \
                        BUILD_ID="$(BUILD_ID)" \
                        BUILD_DISPLAY_ID="$(BUILD_DISPLAY_ID)" \
+                       BUILD_SOFTWARE_VERSION_ID="$(BUILD_SOFTWARE_VERSION_ID)" \
                        DATE="$(DATE_FROM_FILE)" \
                        BUILD_NUMBER="$(BUILD_NUMBER_FROM_FILE)" \
                        BOARD_BUILD_SYSTEM_ROOT_IMAGE="$(BOARD_BUILD_SYSTEM_ROOT_IMAGE)" \
diff --git a/build/make/tools/buildinfo.sh b/build/make/tools/buildinfo.sh
index 5a54462..3dc08dd 100755
--- a/build/make/tools/buildinfo.sh
+++ b/build/make/tools/buildinfo.sh
@@ -5,6 +5,7 @@ echo "# autogenerated by buildinfo.sh"
 
 echo "ro.build.id=$BUILD_ID"
 echo "ro.build.display.id=$BUILD_DISPLAY_ID"
+echo "ro.build.software.version.id=222"
 echo "ro.build.version.incremental=$BUILD_NUMBER"
 echo "ro.build.version.sdk=$PLATFORM_SDK_VERSION"
 echo "ro.build.version.preview_sdk=$PLATFORM_PREVIEW_SDK_VERSION"

diff --git a/frameworks/base/core/java/android/os/Build.java b/frameworks/base/core/java/android/os/Build.java
index de25fd2..84d75b3 100644
--- a/frameworks/base/core/java/android/os/Build.java
+++ b/frameworks/base/core/java/android/os/Build.java
@@ -46,6 +46,9 @@ public class Build {
 
     /** A build ID string meant for displaying to the user */
     public static final String DISPLAY = getString("ro.build.display.id");
+       
+       
+    public static final String SOFTWARE_VERSION = getString("ro.build.software.version.id");
 
     /** The name of the overall product. */
     public static final String PRODUCT = getString("ro.product.name");

修改完后,全编make -j3,make update-api,烧录system.img即可。查看out\target\product\sdm845\system\build.prop  查看生成。

 

 

https://www.jianshu.com/p/a24c0f3f28a4

https://blog.csdn.net/wdyshowtime/article/details/79635439

https://www.cnblogs.com/bastard/archive/2013/02/28/2937014.html

 

关于系统属性的分析,参考文件

https://blog.csdn.net/w6028819321/article/details/28294061

http://blog.sina.com.cn/s/blog_63f31f3401017anh.html

在文件 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文件

----------------------------------------------------------一下是我自己添加的----------------------------------------

1.在zprojects/项目名/env_xxx.sh添加属性值 export  OEM_HARDWARE_VERSION="HL"

2.在在zprojects/项目名/build/make/tools/buildinfo.sh添加属性并赋值echo "ro.boot.hardware.revision=$OEM_HARDWARE_VERSION"

3.在build/make/core/Makefile添加OEM_HARDWARE_VERSION="$(OEM_HARDWARE_VERSION)" \

具体可以参考项目下已有的属性,添加完编译查看out/target/项目名/system/build.prop属性是有添加成功
————————————————
版权声明:本文为CSDN博主「木叶风」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37207639/article/details/106279927

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值