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 的版本号管理变得简单、干净、可维护。这是瑞芯微官方为产品化部署预留的标准化方案,值得在量产项目中广泛采用。

相关推荐
终端安全笔记1 小时前
iOS 27 强制 TLS 1.2:租赁设备的注册链路会在哪一环断
android·网络·安全·ios·智能手机
mmsx1 小时前
MapLibre 实战 11|用户说"我的地块丢了":一个 sealed class 图层模型,和四个让我重构三版的坑
android·前端·开源
恋猫de小郭3 小时前
CPF-Flutter 社区提出折叠场景分栏(平行视界) 方案
android·前端·flutter
事圆则缓4 小时前
Java 常用 API 如何建模 Android 订单业务
android
Railshiqian4 小时前
android16单手模式代码走读
android·多屏·单手模式
程序员-珍4 小时前
Android studio 突然打不开
android·java
郑州光合科技余经理13 小时前
国际版外卖系统:税率字段怎么和订单主流程解耦
android·java·开发语言·前端·后端·php·ai编程
andyweike18 小时前
Android Automotive
android
又见情义18 小时前
记一次 RK3568 Android 13 蓝牙反复重启问题的排查与修复
android