RK3568 Android 13 版本号管理实战:基于 ROCKCHIP_BUILD_NUMBER 的定制化方案

目录

​​​​一、前言

[1.1 为什么需要定制版本号](#1.1 为什么需要定制版本号)

[1.2 常见的修改方式及问题](#1.2 常见的修改方式及问题)

二、官方预留机制:ROCKCHIP_BUILD_NUMBER

[2.1 在 version_util.mk 中发现官方预留](#2.1 在 version_util.mk 中发现官方预留)

[2.2 版本号的传递链](#2.2 版本号的传递链)

三、具体实现

[3.1 修改 rk3568_t.mk](#3.1 修改 rk3568_t.mk)

3.2验证

总结


一、前言

1.1 为什么需要定制版本号

在 Android 设备量产和交付过程中,版本号(Build Number)是设备身份的核心标识之一。它出现在:

位置 说明
Settings → 关于平板电脑 → 版本号 用户可见的版本标识
ro.build.display.id 系统属性,应用可读取
ro.build.fingerprint 完整的构建指纹
OTA 升级包 服务器识别设备版本的依据
售后追踪 通过版本号查询生产批次

默认版本号的问题:

复制代码
eng.androi.20260911.060024

这个默认值包含:

  • eng:工程版本

  • androi:编译用户名的前 6 位

  • 20260911.060024:编译日期和时间

1.2 常见的修改方式及问题

方式 问题
直接改 build.prop 编译后被覆盖
改 version_util.mk AOSP 核心文件,升级 SDK 时被覆盖
改 version_defaults.mk 同上,且逻辑复杂
改 system.prop 需要额外维护,容易遗漏

理想方案 :使用 SDK 官方预留的变量 ,在板级配置文件中定义,既干净又安全。

二、官方预留机制:ROCKCHIP_BUILD_NUMBER

2.1 在 version_util.mk 中发现官方预留

打开 build/core/version_util.mk,找到 BUILD_NUMBER 的定义部分:

逻辑解读:

优先级 条件 结果
1 定义了 ROCKCHIP_BUILD_NUMBER BUILD_NUMBER = ROCKCHIP_BUILD_NUMBER
2 未定义 ROCKCHIP_BUILD_NUMBER BUILD_NUMBER = 默认的 eng.用户名.日期时间

关键发现 :RK3568 SDK 官方预留了 ROCKCHIP_BUILD_NUMBER 变量,专门用于覆盖默认版本号。

2.2 版本号的传递链

复制代码
ROCKCHIP_BUILD_NUMBER(BoardConfig.mk 定义)
    ↓
BUILD_NUMBER(version_util.mk 赋值)
    ↓
BUILD_DISPLAY_ID = $(BUILD_ID).$(BUILD_NUMBER)
    ↓
ro.build.display.id(build.prop 生成)
    ↓
Settings → 关于平板电脑 → 版本号

这就是为什么改 ROCKCHIP_BUILD_NUMBER 就能改版本号显示。

三、具体实现

3.1 修改 rk3568_t.mk

打开 device/rockchip/rk356x/rk3568_t/rk3568_t.mk,在文件一开始中添加:

bash 复制代码
# ============================================================
# 版本号定制
# ============================================================
# 使用官方预留的 ROCKCHIP_BUILD_NUMBER 变量
# 该变量会覆盖 version_util.mk 中的默认 BUILD_NUMBER
# ============================================================
ROCKCHIP_BUILD_NUMBER := rk3568_v1.0.0

3.2验证

在安卓板子上执行以下shell命令可以看到版本号成功写入

或者在系统设置页面也能看到

经过查询,Android 的 ro.build.display.id 属性不是单独的一个值,而是由多个字段组合而成的:

字段 含义 你的值
rk3568_t 产品名称(PRODUCT_NAME) 来自 device/rockchip/rk356x/rk3568_t 下的配置
userdebug 编译类型(BUILD_TYPE) 你当前是 userdebug 版本
13 Android 版本(PLATFORM_VERSION) Android 13
TQ3C.230805.001.B2 内部版本号(BUILD_ID) 由 AOSP 定义,通常不改
rk3568_v1.0.0 自定义的版本号 ✅ 这里就是 ROCKCHIP_BUILD_NUMBER 生效的位置
release-keys 签名类型(BUILD_KEYS) 默认 release-keys

ROCKCHIP_BUILD_NUMBER 只控制中间那个"BUILD_NUMBER"部分 ,它不会替换整个 ro.build.display.id,而是作为其中的一个字段被拼进去。


总结

通过 ROCKCHIP_BUILD_NUMBER,RK3568 Android 13 SDK 的版本号管理变得简单、干净、可维护。这是瑞芯微官方为产品化部署预留的标准化方案,值得在量产项目中广泛采用。

相关推荐
警醒与鞭策7 小时前
Codex桌面版与Claude桌面版使用设置
android·unity·ai·性能优化
传奇开心果10 小时前
【Compose Multiplatform跨端声明式UI实用技术】第19课:多平台部署与发布
android·kotlin
红尘伴蝶舞10 小时前
加密拦截器让抓包失效,我只能从 4KB 的 logcat 碎片里拼回 JSON
android·kotlin·ai编程
booboosui10 小时前
219 个还是 0 个:读不到微信界面时,我只加不删
android
Android打工仔10 小时前
Compose 中何时该用 padding,何时该用 offset
android·android jetpack
二流小码农10 小时前
HarmonyOS开发助手,0代码让元服务从开发到上架
android·ios·harmonyos
limit007510 小时前
三维 WebGIS 工具选型:加载、样式、分析、交付,一套界面能做完什么
android·前端·web3·安卓·webgl
骑着蜗牛撵大象32712 小时前
让 Codex 值夜班:把告警排查与巡检接成可回滚的自动化链路
android·java·运维·ai·自动化·codex·智能体
2401_8858850412 小时前
芬兰语音通知接口怎样对接?语音提醒接入流程
android·前端·python·php·语音识别
程序猿老A12 小时前
轻量应用服务器怎么用phpcms搭建网站?
android