Rockchip 固件解包与打包工具
一个使用 Rust 编写的跨平台命令行工具,支持 RKFW 和 RKAF 固件镜像的解包、修改与重新打包。
afptool-rs 可以做什么?
- 自动识别并解包 RKFW / RKAF 固件
- 提取 BOOT、rootfs、uboot、userdata 等分区
- 保存原始头模板和分区元数据
- 重新打包时保留厂商字段,并支持字节级一致重构
快速开始
下载对应平台的预编译版本,然后运行一条命令即可查看固件内容。
1. 下载
推荐
预编译版本不需要安装 Rust。进入 Releases 页面,下载与你的平台对应的压缩包。
下载最新版本 →macOS Apple SiliconmacOS IntelmacOS UniversalLinux x86_64Linux ARM64Windows x86_64
也可以从源码构建:
$ git clone https://github.com/suyulin/afptool-rs.git && cd afptool-rs && cargo build --release2. 解包固件
$ afptool-rs unpack firmware.img ./output3. 查看结果
RKFW signature detected
version: 1.0.0
family: RK3562
00000066-00072a25 BOOT
00072a26-10495a29 embedded-update.img
Header saved to: ./output/rkfw-header.bin
如果输出中包含 embedded-update.img,可以再次运行 unpack 命令继续提取 RKAF 分区。
使用方法
根据你想完成的任务选择对应命令。所有命令都支持绝对路径和相对路径。
解包 RKFW 或 RKAF
输入格式会被自动识别。
$ afptool-rs unpack <input_file> <output_directory>解包内嵌更新镜像
RKFW 通常包含一个 embedded-update.img,可以继续解包。
$ afptool-rs unpack ./output/embedded-update.img ./output/update使用原始头模板重新打包 RKFW
当目录中存在 rkfw-header.bin 时,版本、芯片、时间戳和 code 会自动继承。
$ afptool-rs pack-rkfw ./output ./repacked.img从零创建 RKFW
没有头模板时,需要提供全部头字段。
$ afptool-rs pack-rkfw ./output ./new.img --chip RK3562 --version 1.0.0 --timestamp 1762435994 --code 0x02000000重新打包 RKAF
请保留解包生成的 partition-metadata.txt。
$ afptool-rs pack-rkaf ./output ./repacked-update.img --model RK3562 --manufacturer RK3562重要说明
- 使用 --timestamp 可以保留原始构建时间。
- rkaf-header.bin 会保留厂商自定义头字段。
- RESERVED 项会写入 package-file,但不会产生普通头条目。
支持范围
操作系统
macOS Apple SiliconmacOS IntelmacOS UniversalLinux x86_64Linux ARM64Windows x86_64固件格式
RKFW — Firmware wrapperRKAF — Android package芯片系列
源码构建
需要安装稳定版 Rust 工具链。编译后的文件位于 target/release/afptool-rs。
$ cargo build --release