# 03-固件解包和打包

​ 本节主要介绍RK的固件在windows或者linux下进行解包和重新打包的过程。

## Windows

​ 待测试完善。

## Linux

使用的工具获取：

1.网盘路径：

```
rk356x-rk3588_data\5-DevelopmentTools\LinuxPackFirmware\Linux_Pack_Firmware.zip
```

2.Linux-SDK源码路径：

```
rk356x-linux\tools\linux\Linux_Pack_Firmware
```

3.Android-SDK源码路径：

```
rk-android13.0\RKTools\linux\Linux_Pack_Firmware
```

### 解包

1. 将Linux\_Pack\_Firmware放到你的虚拟机工作目录中

```shell
$ ls Linux_Pack_Firmware/
rockdev
```

2. 将需要解包的固件放置于rockdev目录下，并重命名为：update.img

```shell
$ cd Linux_Pack_Firmware/rockdev
$ mv update-rk3568-kickpi-k1-linux-debian--20250403-150845.img update.img
```

3. 运行脚本进行解包

```shell
$ ./unpack.sh
```

4. 解包出的分镜像等文件位于：

```shell
$ ls output/
Image  MiniLoaderAll.bin  package-file  parameter.txt
```

> 解包出的分镜像进行修改或替换后就可以进行重新打包生成固件

### 打包

将解包出的镜像修改完成后就可以进行重新打包了。

1. 拷贝文件到rockdev对应路径，删除之前用于解包的update.img镜像

```shell
$ cp -rf output/* ./ 
$ mv parameter.txt Image/
$ mv MiniLoaderAll.bin Image/
$ rm update.img
```

2. 修改package-file文件，将文件路径修改为你对应文件放置的路径

```
# NAME  PATH
package-file    package-file
parameter       Image/parameter.txt
bootloader      Image/MiniLoaderAll.bin
uboot   Image/uboot.img
misc    Image/misc.img
boot    Image/boot.img
recovery        Image/recovery.img
backup  RESERVED
rootfs  Image/rootfs.img
```

3. 运行对应版本脚本进行打包

```shell
$ ./rk356x-mkupdate.sh
```

4. 打包完成的镜像就位于rockdev目录下：

```shell
$ ls update.img
```
