完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
平台:
Android 12 这些 Kernel:v4.19.206 版本:android-12.0-mid-rkr1 开发端:用这个来作为博客的文章,是因为个人最初入行的时候就开始了,如今老旧的方法在新上修改了适用了,就再显示了当前的情况,提醒自己“不忘初心”吧。以下是正文: 需求: 系统设置的产品型号,当时的版本号和默认时区等 实现方法: 在build/make/目录下修改 型号(Model) diff --git a/core/sysprop.mk b/core/sysprop.mk index 636c8b439a..98e221f7dd 100644 --- a/core/sysprop.mk + ++ b/core/sysprop.mk @@ -38,13 +38,13 @@ define generate-common-build-props echo “ro.product.$(1).brand=$(PRODUCT_SYSTEM_BRAND)” 》》 $ (2); echo “ro.product.$(1).device=$(PRODUCT_SYSTEM_DEVICE)” 》》 $(2); echo “ro.product.$(1).manufacturer=$(PRODUCT_SYSTEM_MANUFACTURER)” 》》 $(2); - echo “ro.product.$(1).model=$(PRODUCT_SYSTEM_MODEL)” 》》 $(2 ); + echo “ro.product.$(1).model=MY_MODEL” 》》 $(2); echo “ro.product.$(1).name=$(PRODUCT_SYSTEM_NAME)” 》》 $(2 ); , echo “ro.product.$(1).brand=$(PRODUCT_BRAND)” 》》 $(2); echo “ro.product.$(1).device=$(TARGET_DEVICE)” 》 》 $(2); echo “ro.product.$(1).manufacturer=$(PRODUCT_MANUFACTURER)” 》》 $(2); - echo “ro.product.$(1).model=$(PRODUCT_MODEL )” 》》 $(2); + echo “ro.product.$(1).model=MY_MODEL” 》》$(2); echo “ro.product.$(1).name=$(TARGET_PRODUCT)” 》》 $(2); ) $(if $(filter system vendor odm,$(1)), 版本号(Build number) diff --git a/core/version_defaults.mk b/core/version_defaults.mk index 3f95e3cad3..e693304f21 100644 --- a/core/version_defaults.mk +++ b/core/version_defaults.mk @@ -297,7 +297,7 @@ ifndef BUILD_NUMBER #如果没有设置BUILD_NUMBER,创建一个有用的“我是一个工程构建 #日期/时间”值。使其以非数字开头,以便 # 任何试图将其解析为整数的人都可能得到“0” 。-BUILD_NUMBER := eng.$(shell echo $${BUILD_USERNAME:0:6 }).$(shell $(DATE) +%Y%m%d.%H%M%S) + BUILD_NUMBER := eng.MY_BuildNumber.$(shell $(DATE) +%Y%m%d.%H %M%S) HAS_BUILD_NUMBER := false endif .KATI_READONLY := BUILD_NUMBER HAS_BUILD_NUMBER 时区(时区) diff --git a/tools/buildinfo.sh b/tools/buildinfo.sh index a349cba0f0..04490f3d4a 100755 --- a/tools/buildinfo.sh +++ b/tools /buildinfo.sh @@ -54,5 +54,6 @@ echo “ro.build.description=$PRIVATE_BUILD_DESC” if [ -n “$BUILD_THUMBPRINT” ] ; 然后 echo “ro.build.thumbprint=$BUILD_THUMBPRINT” fi - +# set timezone as US EST +echo “persist.sys.timezone=America/New_York” echo “# end build properties” 简单分析: Android12的代码和之前的版本的SDK有一定的 不同可以直接在buildinfo里面修改,所以可能型号出现了,重新跟了之前的 目录/make/是简单的分析过程:下面的源码都在build下 (模型) 模型比较简单,设置中是通过Build.MODEL获取的,实际上是读取ro.product.model属性 core/sysprop.mk 品牌,设备,模型等都在这部分设置,之后是自动生成到build.prop文件中去 # 将所有分区通用的一组 sysprops 发送到文件中。 # $(1): 分区名 # $(2): 输出文件名 define generate-common-build-props echo “###################### #############” 》》 $(2); echo “# from generate-common-build-props” 》》 $(2); echo “# 这些属性标识了这个分区图片。” 》》 $(2); echo ”####################################“ 》》 $ (2); $(if $(过滤系统,$(1)), echo ”ro.product.$(1).brand=$(PRODUCT_SYSTEM_BRAND)“ 》》 $(2); echo ”ro.product.$(1).device=$(PRODUCT_SYSTEM_DEVICE)“ 》》 $(2); echo ”ro.product.$(1).manufacturer=$(PRODUCT_SYSTEM_MANUFACTURER)“ 》》 $(2) ; echo ”ro.product.$(1).model=$(PRODUCT_MODEL)“ 》》 $(2); echo ”ro.product.$(1).name=$(PRODUCT_SYSTEM_NAME)“ 》》 $( 2); , echo ”ro.product.$(1).brand=$(PRODUCT_BRAND)“ 》》 $(2); echo ”ro.product.$(1).device=$(TARGET_DEVICE)“ 》》 $(2); echo ”ro.product.$(1).manufacturer=$(PRODUCT_MANUFACTURER)“ 》》 $(2); echo ”ro.product.$(1).model=$(PRODUCT_MODEL )“ 》》 $(2); echo ”ro.product.$(1).name=$(TARGET_PRODUCT)“》》 $(2); ) 版本号(Build number) Settings中的版本号是用Build.DISPLAY获取的 在Build.java中可以看到是读取ro.build.display.id属性 而该属性是由BUILD_DISPLAY_ID来定义的: tools/buildinfo.sh:12:echo ”ro.build.display.id=$BUILD_DISPLAY_ID“ 如果全部自定义版本号,可直接自定义 ro.build.display 。最终是读取BUILD_DESC的值 # ------------------------------------------ ----------------------- # 定义描述此构建的人类可读字符串 # # BUILD_ID: detail info; 具有与构建指纹相同的信息 BUILD_DESC := $(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT) $(PLATFORM_VERSION) $(BUILD_ID) $(BUILD_NUMBER_FROM_FILE) $(BUILD_VERSION_TAGS) # BUILD_DISPLAY_ID 显示在设置 -》 关于手机 ifeq ($( TARGET_BUILD_VARIANT),用户) # 用户版本应该显示: # 发布版本号或 branch.buld_number 非发布版本 # Dev。分支应该设置 DISPLAY_BUILD_NUMBER ifeq (true,$(DISPLAY_BUILD_NUMBER)) BUILD_DISPLAY_ID := $(BUILD_ID).$(BUILD_NUMBER_FROM_FILE) $(BUILD_KEYS) else BUILD_DISPLAY_ID := $(BUILD_ID) $(BUILD_KEYS) endif else # 非用户构建应该显示详细的构建信息 BUILD_ID :=$(BUILD_DESC) endif 当前其中的 BUILD_NUM_FROM_FILE 以继续获取跟踪,可以看到它是从一个txt文件中去m_BUILD_NUMBER_FROM_core /config.k:757:ROMILD_NUMBER_FROM_FILE := $$( cat $(SOONG_OUT_DIR)/build_number.txt) core/main.mk这里是写入 txt的过程 $(shell mkdir -p $(SOONG_OUT_DIR) && 回声 -n $(BUILD_NUMBER) 》 $(SOONG_OUT_DIR)/build_number.tmp; 如果!cmp -s $(SOONG_OUT_DIR)/build_number.tmp $(SOONG_OUT_DIR)/build_number.txt; 然后 mv $(SOONG_OUT_DIR)/build_number.tmp $(SOONG_OUT_DIR)/build_number.txt; else rm $(SOONG_OUT_DIR)/build_number.tmp; fi) endif BUILD_NUMBER_FILE := $(SOONG_OUT_DIR)/build_number.txt .KATI_READONLY := BUILD_NUMBER_FILE 最终找到BUILD_NUMBER core/version_defaults.mk:300: BUILD_NUMBER := eng.$(shell echo $${BUILD_USERNAME:0:6} ).$(shell $(DATE) +%Y%m%d.%H%M%S) 时区(Timezone) 之前一般是在device/目录下的system.prop中设置属性persist.sys.timezone ,但是在Android12中已经没有该文件了,因此要换个方法 据我,从源中设置属性大概有几种: 在buildinfo.sh 中使用echo 方法来设置 在device.mk中用PRODUCT_PROPERTY_OVERRIDES来设置 在main.mk中用ADDITIONAL_BUILD_PROPERTIES来设置 我还是选择比较简单的如果在buildinfo.sh中设置,具体的Android时区表网上有很多资源不再赘述了。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1988 浏览 1 评论
synopsys 的design ware:DW_fpv_div,浮点数除法器,默认32位下,想提升覆盖率(TMAX),如果用功能case去提升覆盖率呢?
2490 浏览 1 评论
RK3588 GStreamer调试四路鱼眼摄像头四宫格显示报错
5272 浏览 1 评论
【飞凌嵌入式OK3576-C开发板体验】RKNN神经网络-YOLO图像识别
254 浏览 0 评论
【飞凌嵌入式OK3576-C开发板体验】SSH远程登录网络配置及CAN通讯
1336 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 08:05 , Processed in 0.438498 second(s), Total 43, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号