news 2026/9/16 9:04:25

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RK3568 Android 13 版本号管理实战:基于 ROCKCHIP_BUILD_NUMBER 的定制化方案

目录

​​​​一、前言

1.1 为什么需要定制版本号

1.2 常见的修改方式及问题

二、官方预留机制:ROCKCHIP_BUILD_NUMBER

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

2.2 版本号的传递链

三、具体实现

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.mkAOSP 核心文件,升级 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_NUMBERBUILD_NUMBER=ROCKCHIP_BUILD_NUMBER
2未定义ROCKCHIP_BUILD_NUMBERBUILD_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,在文件一开始中添加:

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/16 9:03:43

Raspberry Pi Pico + MicroPython 实战指南:从GPIO到PIO驱动

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/16 9:02:52

随机森林实战指南:从原理到调参的完整Python教程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/16 9:00:22

二叉树最大深度问题的递归与迭代解法详解

1. 二叉树最大深度问题解析今天想和大家聊聊LeetCode上那道经典的二叉树最大深度问题(题目编号104)。这道题看似简单,却蕴含着递归和迭代两种截然不同的解题思路,非常适合用来理解二叉树的基础遍历方法。我第一次遇到这个问题时&a…

作者头像 李华
网站建设 2026/9/16 9:00:11

Qt 5.14.2 aarch64 静态交叉编译完整实战手册

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/16 8:59:39

华为天线射频岗笔试复盘:从电磁场到微带天线的考点与避坑要点

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/16 8:59:26

Java泛型原理与实战:类型擦除、通配符PECS及避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华