Android S - 重新生成 ro.build.display.id 属性

仅作个人记录,ota 升级需要用到版本号,由低版本升高版本需要使用当前属性。(注:部分内容已做屏蔽)

一般编译后的可以在 out/target/product/project/system/build.prop 下找到属性值,或者通过 adb shell getprop ro.build.display.id 打印出来。

测试过程中发现删除 out/target/product/project/system/build.prop 后执行 make 编译也并不会重新生成,但是执行 clean 操作后就会重新生成,怀疑是在 build/ 下里定义的。

在 build/make/ 路径下检索 ro.build.display.id,

./tools/buildinfo.sh:echo "ro.build.display.id=$BUILD_DISPLAY_ID"
./tools/releasetools/test_sign_target_files_apks.py:        ('ro.build.display.id=dev-keys',
./tools/releasetools/test_sign_target_files_apks.py:         'ro.build.display.id='),
./tools/releasetools/sign_target_files_apks.py:      elif key == "ro.build.display.id":
./tools/releasetools/target_files_diff.py:             'ro.build.display.id=',

可以看到是在 buildinfo.sh 脚本写入的,再次检索打印如下

./tools/buildinfo.sh:echo "ro.build.display.id=$BUILD_DISPLAY_ID"
./core/sysprop.mk:# BUILD_DISPLAY_ID is shown under Settings -> About Phone
./core/sysprop.mk:	        BUILD_DISPLAY_ID="$(BUILD_DISPLAY_ID)" \

查看文件 build/make/core/sysprop.mk,部分代码如下


gen_from_buildinfo_sh := $(call intermediates-dir-for,PACKAGING,system_build_prop)/buildinfo.prop
$(gen_from_buildinfo_sh): $(INTERNAL_BUILD_ID_MAKEFILE) $(API_FINGERPRINT) | $(BUILD_DATETIME_FILE) $(BUILD_NUMBER_FILE)
    $(hide) TARGET_BUILD_TYPE="$(TARGET_BUILD_VARIANT)" \
            TARGET_BUILD_FLAVOR="$(TARGET_BUILD_FLAVOR)" \
            TARGET_DEVICE="$(TARGET_DEVICE)" \
            PRODUCT_DEFAULT_LOCALE="$(call get-default-product-locale,$(PRODUCT_LOCALES))" \
            PRODUCT_DEFAULT_WIFI_CHANNELS="$(PRODUCT_DEFAULT_WIFI_CHANNELS)" \
            PRIVATE_BUILD_DESC="$(BUILD_DESC)" \
            BUILD_ID="$(BUILD_ID)" \
            BUILD_DISPLAY_ID="$(BUILD_DISPLAY_ID)" \
            DATE="$(DATE_FROM_FILE)" \
            BUILD_USERNAME="$(BUILD_USERNAME)" \
            BUILD_HOSTNAME="$(BUILD_HOSTNAME)" \
            BUILD_NUMBER="$(BUILD_NUMBER_FROM_FILE)" \

可以看到就是这里实际生成的,

$(call intermediates-dir-for,PACKAGING,system_build_prop)/buildinfo.prop 文件中的值

找到编译产物路径下的 buildinfo.prop 文件,路径如下

out/target/product/project/obj/PACKAGING/system_build_prop_intermediates/buildinfo.prop

最后验证,先删除 buildinfo.prop 文件,再执行 make 命令,发现 system/build.prop 文件重新生成。

ps: Android Q 路径如下:

out/target/product/project/obj/ETC/system_build_prop_intermediates/build.prop

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值