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

创建Android系统属性ro.相关推荐

  1. Android 系统(94)---android系统属性(ro.com.google.clientidbase.ms)随卡适配

    android系统属性(ro.com.google.clientidbase.ms)随卡适配 客户要求 客户提了一个小需求,就是要将系统属性(ro.com.google.clientidbase.ms ...

  2. android开发笔记之系统属性(ro.com.google.clientidbase.ms)随卡适配

    客户要求 客户提了一个小需求,就是要将系统属性(ro.com.google.clientidbase.ms)随卡适配. 具体要求是: 如果插中国的卡,系统属性ro.com.google.clienti ...

  3. 使用Java代码在应用层获取Android系统属性

    之前使用Native代码的property_get()/property_set()来获取Android系统属性,现在需要改写到Java上面, 但是System.getProperty() / Sys ...

  4. Android 系统属性读取和设置详解

    Android 系统属性读取和设置详解 一.在adb中进行属性读取和设置 1.Settings Provider设置和读取 获取 设置 2.SystemProperties属性读取和设置 二.Andr ...

  5. 安卓系统属性 ro、persist、net

    Framework中系统属性ro.persist.net 1.ro开头的系统属性 如果属性名称以"ro."开头,那么这个属性被视为只读属性.一旦设置,属性值不能改变. 2.pers ...

  6. Android 系统属性(SystemProperties)介绍

    我们在开发过程中有时需要使用系统属性,例如获取系统软件版本,获取设备名名称等:有时也需要设置自己的属性,为了全面的介绍系统属性,本文将基于Android 10(Q)来介绍Android的属性使用,围绕 ...

  7. android系统属性获取及设置

    系统属性获取及设置中的设置值 data/data/com.android.providers.settings/databases/settings.db 1.系统属性获取及设置 android.os ...

  8. Java反射获取Android系统属性值

    目录 反射定义 为何需要反射 反射方法Method getDeclaredMethod方法 getMethod方法 参数解释 invoke方法 Android 反射应用 反射定义 "反射&q ...

  9. android中prop配置参数名,21.Android系统属性build.prop文件(笔记)

    一.概念 在Android设备shell终端可以看到/system目录下的build.prop文件,Android的build.prop文件是在Android编译时刻收集的各种property,编译完 ...

最新文章

  1. 结构体成员的引用方法
  2. 溃不成军:科通芯城一度再跌近30% 股价三天腰斩
  3. Python基础(1)
  4. es获取最大时间的记录_大屏幕大智慧,腕上私教+生理周期,荣耀手表ES评测
  5. 无法找到脚本库错误解决过程
  6. java 初始化duration_java11教程--类Duration用法
  7. 基于语音识别的微博签到系统
  8. 瑞银:将京东目标价上调至110美元 维持“买入”评级
  9. Python安装geopandas库
  10. 测试的第二重境界:站在Bug之上
  11. vue中引入高德地图获取坐标
  12. ORCA(Optimal Reciprocal Collision Avoidance)笔记
  13. VMware ESXI虚拟机修改MAC地址的方法
  14. 网络故障排查的思路和方法
  15. 程序开发里面的profile 是什么意思? (用户配置文件)
  16. python简单的青蛙旅行小游戏
  17. 第三十五天:XSS跨站反射存储DOM盲打劫持
  18. JDBC 基础、CRUD、分页 第一节
  19. 干支纪年法简便算法_天干地支的简单算法
  20. 2015 android 5.0 手机排行榜,智能手机排行榜2015前十名 2015智能手机排行榜

热门文章

  1. Java获取屏幕真实分辨率
  2. MPI并行程序的调试技巧
  3. 两个线程调用同一个对象的同一个方法
  4. 基于windows桌面开发的白板书写软件
  5. 【渝粤题库】陕西师范大学163205 旅游市场分析与预测
  6. oracle数据库sga用途_Oracle SGA详解
  7. PCB设计中过孔的概念和分类
  8. 转行软件测试有学历要求吗?低于大专是真的没出路吗?
  9. OSChina 周日乱弹 ——收购KFC后,想刷碗就刷碗
  10. 报错:“[Thread-0] INFO CoreNLP - CoreNLP Server is shutting down.”