在嵌入式开发中,经常遇到需要定制固件的场景:更新 RT-Thread 应用程序、替换 Linux 内核或设备树、修改根文件系统配置等。这些需求都离不开对 Rockchip update.img 整包固件的解包与重打包操作。
本文以睿擎派 RC3562 为例,详细介绍整包固件从解包、修改分区内容、重新打包到烧录验证的完整操作流程。
睿擎派整包固件制作依赖 Rockchip 官方工具链,主要包括:

从睿擎官方渠道下载最新的量产固件包,以 AMP 双系统固件为例:
Ruiching_RC-Pi-3562_Firmware_EMMC_AMP_FACRTORY_V1.1.0.img.7z
使用 7-Zip 解压后得到原始固件文件 Ruiching_RC-Pi-3562_Firmware_EMMC_AMP_FACRTORY_V1.1.0.img,即需要处理的 update.img 原始镜像。
Rockchip 平台的整包固件采用双层结构:
update.img├── boot.bin 第一层 Loader(芯片级初始化)└── firmware.img 第二层固件包 └── Android/ (Rockchip 历史目录命名) ├── package-file 分区配置表(定义各分区的打包顺序和名称) ├── loader.img MiniLoader 镜像 ├── dtb.img 设备树二进制文件 ├── boot.img Linux 内核 + 设备树打包镜像 ├── rootfs.img Linux 根文件系统镜像 ├── app.dtb 睿擎 RT-Thread 应用固件 └── ...其他分区
解包后,Android/ 目录下的每个 .img 文件对应闪存上的一个独立分区,可单独替换修改。

解包完成后,在 Output/ 目录下生成以下文件:
Output/├── boot.bin # 芯片第一层 Loader 镜像├── firmware.img # 第二层固件包(待进一步解包)└── Android/ # 分区镜像目录 ├── package-file # 分区配置表 ├── loader.img # MiniLoader ├── dtb.img # 设备树 ├── boot.img # Linux 启动镜像 ├── rootfs.img # 根文件系统 ├── app.img # ★ 睿擎 RT-Thread 应用固件 └── ...
其中 Android/ 目录下的文件即为目标分区的可编辑镜像文件。
根据实际需求,选择对应的分区进行修改。以下说明三种最常见的修改场景。
适用场景: 通过 RuiChing Studio 更新了 RT-Thread 应用程序及设备树,需要烧录到开发板验证。或者制作量产固件,用于量产生产。
操作步骤:
第一步: 将新编译生成的 app.img/app.dtb 文件复制到 Output/Android/ 目录,并将app.dtb文件名改为 dtb.img:
Output/Android/├── app.img ← 放入新的 app.img└── dtb.img ← 放入新的 app.dtb,并改名
重要说明: 睿擎平台中,app.dtb 对应的固件分区名就是 dtb.img。

第二步: 进入第四章,执行重新打包。
适用场景: 修改了 Linux 内核配置或设备树dts文件,重新编译后需要验证。
Output/Android/├── boot.img ← 替换为新编译的 Linux 启动镜像└── dtb.img ← 替换为新编译的设备树文件
适用场景: 新增了系统库、工具链或应用配置文件,需要整体更新根文件系统。
Output/Android/└── rootfs.img ← 替换为更新后的根文件系统镜像
睿擎提供了标准回包脚本 repack_update_img.bat,位于工具根目录。该脚本封装了两步打包操作,无需手动执行底层命令。
脚本内容如下:
@echo offsetlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION REM Repack Rockchip update image from Output\AndroidREM Usage: repack_update_img.bat [SOC] [STORAGE] [OUTPUT_IMG_NAME]REM Example: repack_update_img.bat RK3562 EMMC update_repack.img set "ROOT_DIR=%~dp0"set "BIN_DIR=%ROOT_DIR%\bin"set "OUTPUT_DIR=%ROOT_DIR%\Output"set "ANDROID_DIR=%OUTPUT_DIR%\Android" set "AFP_TOOL=%BIN_DIR%\AFPTool.exe"set "RK_MAKER=%BIN_DIR%\RKImageMaker.exe"set "BOOT_BIN=%OUTPUT_DIR%\boot.bin"set "TEMP_FIRMWARE=%OUTPUT_DIR%\firmware_repack.img" REM 默认参数set "SOC=RK3562"set "STORAGE=EMMC"set "OUTPUT_NAME=update_repack.img" REM 命令行参数覆盖默认值if not "%~1"=="" set "SOC=%~1"if not "%~2"=="" set "STORAGE=%~2"if not "%~3"=="" set "OUTPUT_NAME=%~3"set "OUTPUT_IMG=%OUTPUT_DIR%\%OUTPUT_NAME%" echo [STEP 1/2] Packing firmware image..."%AFP_TOOL%" -pack "%ANDROID_DIR%" "%TEMP_FIRMWARE%"if errorlevel 1 ( echo [ERROR] AFPTool pack failed. Check package-file and image files. exit /b 2) echo [STEP 2/2] Packing final update image..."%RK_MAKER%" -%SOC% "%BOOT_BIN%" "%TEMP_FIRMWARE%" "%OUTPUT_IMG%" -os_type:ANDROIDOS -storage:%STORAGE%if errorlevel 1 ( echo [ERROR] RKImageMaker pack failed. Check parameters (SOC, STORAGE). exit /b 3) echo [SUCCESS] Repack complete.echo [SUCCESS] Output: %OUTPUT_IMG% exit /b 0
在工具根目录执行默认打包(使用 RK3562 / EMMC 参数):
repack_update_img.bat
如需指定芯片型号、存储介质或输出文件名,可传入参数:
# RK3562 + eMMC + 自定义输出文件名repack_update_img.bat RK3562 EMMC my_update_v1.2.0.img

回包脚本内部实际执行两步操作,理解其原理有助于排查问题:
第一步:AFPTool 打包分区镜像
AFPTool.exe -pack "Output\Android" "Output\firmware_repack.im
将 Android/ 目录下的所有分区镜像按 package-file 配置打包为 firmware_repack.img。
第二步:RKImageMaker 合成最终镜像
RKImageMaker.exe -RK3562 "Output\boot.bin" "Output\firmware_r
将 boot.bin(第一层 Loader)与 firmware_repack.img(第二层固件包)合并为最终的 update_repack.img。

使用 USB Type-A 线连接开发板与 PC,按以下步骤进入 Loader 模式:
1. 按住 LOADER 按键(板子上标有 L 的那颗)
2. 按住 RST 复位键
3. 松开 RST 复位键,保持 LOADER 按键不放
4. 约 1 秒后松开 LOADER 按键
5. RKDevTool 界面应检测到 LOADER 状态的设备
打开 RKDevTool.exe,在设备列表中选中检测到的 LOAD 设备,然后在右侧路径栏选择重新打包生成的 update_repack.img 文件,点击"执行"开始烧录。

RKDevTool 烧录界面示例
烧录完成后设备自动重启。若修改的是 app.dtb 分区,设备重启后将默认运行新打包的应用程序。

替换固件并烧录后,设备运行新版本固件
① 准备工具和原始固件 └─ RKDevTool_Release_v2.96 + 官方固件包(.7z 解压) ② 解包原始固件 └─ unpack_update_img.bat └─ Output/boot.bin + Output/Android/(各分区镜像) ③ 修改目标分区 ├─ 替换 app.dtb → 改名 dtb.img(最常见) ├─ 或替换 boot.img(Linux 内核) └─ 或替换 rootfs.img(根文件系统) ④ 重新打包 └─ repack_update_img.bat [SOC] [STORAGE] [OUTPUT_NAME] └─ Output/update_repack.img ⑤ 烧录验证 └─ RKDevTool → 选中 update_repack.img → 执行烧录
想亲手操作却懒得整理工具?我们帮你打包好了:
RKDevTool 固件制作工具包(含 AFPTool / RKImageMaker / 烧录工具)
睿擎官方回包脚本(repack_update_img.bat,开箱即用)
官方开发指南与 SDK 说明(文档站直达)
RuiChing Studio 集成开发环境(IDE 下载入口)
扫码下方二维码,填写简单表单(1分钟),工具包及文档链接将发送至邮箱。
全部0条评论
快来发表一下你的评论吧 !