山高疑日近,海阔觉天低

瑞芯微固件 RKDevTool

一. 瑞芯微 RKDevTool 固件解包结果文件详解

使用 RKDevTool_Release_v2.92 的「固件解包」功能后,通常会得到如下目录结构:

Output/
├── Android
│   ├── Image
│   │   ├── boot.img
│   │   ├── MiniLoaderAll.bin
│   │   ├── misc.img
│   │   ├── parameter.txt
│   │   ├── recovery.img
│   │   ├── rootfs.img
│   │   └── uboot.img
│   └── package-file
├── boot.bin
└── firmware.img
这些文件共同构成了一套完整的 Rockchip 固件。下面逐一说明每个文件的作用。

1. firmware.img —— 完整固件包

  • 作用:这是最终用于烧录的完整固件镜像。
  • RKDevTool 在「升级固件」时直接选择这个文件即可完成整机烧录。
  • 它是由 package-file 描述的各个分区镜像按照指定顺序和偏移打包而成的。
  • 通常体积最大(几 GB 到十几 GB 不等)。

2. boot.bin —— 引导相关二进制

  • 在部分固件中,boot.bin 是早期引导或特殊用途的二进制文件。
  • 常见情况:与 MiniLoaderAll.bin 相关的二次打包产物或者是某些平台用于 USB 下载/掩码 ROM 阶段的辅助文件
  • 普通用户日常烧录时较少直接使用,主要出现在完整固件包中。

3. Android/package-file —— 打包清单文件

  • 作用:告诉打包工具「哪些镜像对应哪个分区、按什么顺序写入」。
  • 内容通常是纯文本,类似:
# NAME          Relative path
package-file    package-file
bootloader      Image/MiniLoaderAll.bin
parameter       Image/parameter.txt
uboot           Image/uboot.img
boot            Image/boot.img
recovery        Image/recovery.img
rootfs          Image/rootfs.img
misc            Image/misc.img
...
  • 修改分区布局或替换某个镜像后,必须同步修改这个文件,否则重新打包会失败或分区错位。

4. Android/Image/ 目录下的核心分区镜像

MiniLoaderAll.bin —— 一级引导加载器(Loader)

  • Rockchip 芯片上电后,BootROM 首先加载的就是这个文件。
  • 主要职责:初始化 DDR 内存;初始化基本外设;加载并跳转到 U-Boot
  • 对应烧录时的 Loader 分区,是整个启动流程的起点。
  • 不同芯片(RK3288、RK3399、RK356x、RK3588 等)的 Loader 不通用。

uboot.img —— U-Boot 二级引导程序

  • 真正的 Bootloader。
  • 负责:
    • 初始化更多硬件(显示、存储、网络等)
    • 读取 parameter.txt 或 GPT 分区表
    • 加载 boot.img 或 recovery.img 中的内核
    • 支持命令行交互、环境变量、快速启动等
  • 对应 uboot 分区。

parameter.txt —— 分区表描述文件

  • 最关键的配置文件之一
  • 定义了整个 eMMC/NAND 的分区布局,包括:每个分区的名称;起始地址(扇区);分区大小
  • 示例片段:
FIRMWARE_VER: 1.0
MACHINE_MODEL: RKxxxx
MACHINE_ID: 007
MANUFACTURER: ROCKCHIP
MAGIC: 0x5041524B
ATAG: 0x60000800
MACHINE: 0xffffffff
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
CMDLINE: console=ttyFIQ0 androidboot.baseband=N/A ...
  • 以及后面的分区定义(0x00002000@0x00004000(uboot) 这种格式)。
  • 修改分区大小、增减分区都必须改这个文件,并重新打包。

boot.img —— 正常启动内核镜像

  • 标准 Android/Linux boot 镜像格式(包含 kernel + ramdisk)。
  • 正常开机时 U-Boot 加载此镜像。
  • 内部包含:Linux 内核;初始内存盘(ramdisk);设备树(部分平台)
  • 对应 boot 分区。

recovery.img —— 恢复模式镜像

  • 与 boot.img 结构类似,但运行的是 Recovery 系统。
  • 用途:系统升级(OTA);恢复出厂设置;刷机、清除数据等
  • 对应 recovery 分区。
  • 进入方式通常是按住特定按键 + 开机,或通过 adb reboot recovery。

misc.img —— 杂项/控制分区

  • 体积很小(通常几 MB 或更小)。
  • 存储 Bootloader Control Block(BCB)信息。
  • 主要用于:记录当前启动模式(normal / recovery / fastboot);传递升级状态、命令等
  • 对应 misc 分区。
  • 很多「进不了系统、一直进 recovery」的问题都与这个分区数据异常有关。

rootfs.img —— 根文件系统镜像

  • 体积最大、最核心的系统分区
  • 包含完整的 Linux/Android 根文件系统(通常是 ext4 或 squashfs 格式)。
  • 里面有:/system、/vendor(Android);或完整的 Linux 用户空间程序、库、配置文件
  • 对应 rootfs(或 system)分区。
  • 日常修改系统文件、添加软件、更换桌面环境等,最终都落在这个镜像上。

总结:启动与烧录流程简图

上电
  ↓
BootROM 加载 MiniLoaderAll.bin
  ↓
MiniLoader 初始化 DDR,加载 uboot.img
  ↓
U-Boot 读取 parameter.txt / GPT
  ↓
根据 misc 分区决定启动模式
  ├─ 正常启动 → 加载 boot.img → 挂载 rootfs.img
  └─ 恢复模式 → 加载 recovery.img
烧录时,RKDevTool 会按照 package-file 的指示,把各个镜像写入对应的分区地址。

二.  把解包后的文件复制到 rockdev

  • 把 Output\Android 目录下的 全部内容(package-file + Image 文件夹)复制到 rockdev 目录里。
  • 复制后 rockdev 目录结构应类似:
rockdev/ 
├── afptool.exe 
├── rkImageMaker.exe 
├── rk356x-mkupdate.bat ← 关键! 
├── package-file ← 从 Android 复制过来的 
└── Image/ 
├── MiniLoaderAll.bin 
├── parameter.txt 
├── uboot.img 
├── boot.img 
├── recovery.img 
├── rootfs.img 
├── misc.img 
└── ...
  1. 确认 package-file 内容正确
    • 用记事本打开 package-file,检查里面的路径是否都指向 Image/ 下的文件。
    • 文件名必须和 Image 文件夹里的实际文件名完全一致。
  2. 执行打包
    • 因为你是 RK3568,直接双击运行:rk356x-mkupdate.bat
    • 等待命令行窗口执行完成(会依次调用 afptool 和 rkImageMaker)。
  3. 得到最终固件
    • 打包成功后,会在 rockdev 目录下生成 update.img(有的版本叫 firmware.img 或带其他名字)。
    • 这个 update.img 就是可以正常用「升级固件」功能烧录的完整包。

打包过程实际做了两步

步骤 工具 作用
1 afptool -pack 根据 package-file 把 Image 里的各个分区打包成中间文件 firmware.img
2 rkImageMaker 把 MiniLoaderAll.bin + 上一步的 firmware.img 合成最终可升级的 update.img

常见问题与注意点

  • 文件名必须匹配:你改过 rootfs.img 或其他文件后,名字千万不要变,否则 package-file 对不上会打包失败。
  • 如果没有 rk356x-mkupdate.bat:可以手动执行(在 rockdev 目录打开命令提示符):
    afptool.exe -pack . firmware.img
    rkImageMaker.exe -RK356X Image\MiniLoaderAll.bin firmware.img update.img -os_type:androidos
  • 打包失败:优先检查 package-file 里是否有多余空格、路径写错,或某个 .img 文件缺失。
  • 生成的 update.img 体积会比较大,请确保磁盘空间充足。

 

赞(0) 打赏
未经允许不得转载:Mr.Zhang » 瑞芯微固件 RKDevTool

评论 抢沙发

你的打赏是我的动力

登录

找回密码

注册