[ROC-RK3568-PC] 手把手教你在Linux下解包与打包Ubuntu系统固件
Posted Neutionwei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[ROC-RK3568-PC] 手把手教你在Linux下解包与打包Ubuntu系统固件相关的知识,希望对你有一定的参考价值。
📢 ROC-RK3568-PC入门篇连载进程:
✅ [ROC-RK3568-PC] 手把手教你把出厂的Android系统烧写为Ubuntu系统
✅ [ROC-RK3568-PC] 手把手教你制作Ubuntu系统TF卡启动盘
✅ [ROC-RK3568-PC] 手把手教你编译Linux_SDK并打包Ubuntu系统固件
✅ [ROC-RK3568-PC] 手把手教你解包Ubuntu系统固件
在前面我带领大家如何主要讲述如何在Windows系统下对Ubuntu固件进行解包,但是假设我想在Linux系统下解包,那怎么办?别急,这篇给大家揭晓!
1、准备工具
工欲善其事,必先利其器,为了尽可能避免发生奇怪的错误,我在这里列举一下大家需要用到的工具:
- PC机:Ubuntu 18.04系统
- 解包与打包工具:firefly-linux-repack
firefly-linux-repack可以到Firefly官方进行下载,链接如下:
大家点击以下图片中指向的地方进行下载:
2、Ubuntu固件下载
依然是之前的Firefly官方下载页面:https://www.t-firefly.com/doc/download/107.html
Firefly官方提供了两个版本的Ubuntu系统,大家可以各取所需~~~
假如大家点击了Ubuntu 20.04,继续点击一般系统(第二项的RTLinux是实时系统,一般场合我们用不到):
点击7z文件进行下载(第一项的md5是校验文件):
3、使用firefly-linux-repack工具解包与打包
(1)安装环境依赖;
sudo apt-get install lib32stdc++6
(2)查看使用方法;
neutionwei@x:~/Downloads/firefly-linux-repack$ ls
bin pack.sh Readme_en.md Readme.md unpack.sh update.img
neutionwei@x:~/Downloads/firefly-linux-repack$ cat Readme.md
1. 解包
把官方发布的固件拷贝到当前目录,重命名为update.img , 执行unpack.sh
解包完成后,生成的文件在output目录下.
2. 合包
保持当前目录结构,文件名等不变,用客户自己的文件替换output/下同名的文件
执行pack.sh, 执行完后,生成new_update.img,即为打包好的固件
rootfs文件名必须为rootfs.img
parameter.txt文件名必须为parameter.txt
注意:
合包过程中,如果rootfs分区不是最后一个分区,那么程序会根据rootfs文件的大小,
自动修改parameter.txt中rootfs分区的大小。
如果用户自己有改动parameter.txt,请留意整个合包的流程。
(3)解压并移动Ubuntu固件到firefly-linux-repack
目录并重命名为update.img
;
neutionwei@x:~/Downloads$ 7z x ROC-RK3568-PC-UBUNTU20.04-GPT-20211012-1436.7z
neutionwei@x:~/Downloads$ mv ROC-RK3568-PC-UBUNTU20.04-GPT-20211012-1436.img firefly-linux-repack/update.img
(4)解包update.img
;
neutionwei@x:~/Downloads/firefly-linux-repack$ ./unpack.sh
start to unpack update.img...
********RKImageMaker ver 1.67********
Unpacking image, please wait...
Exporting boot.bin
Exporting firmware.img
Unpacking image success.
android Firmware Package Tool v1.67
Check file... OK
------- UNPACK ------
package-file 0x0000000000000800 0x000000000000011A
Image/MiniLoaderAll.bin 0x0000000000001000 0x00000000000679C0
Image/parameter.txt 0x0000000000069000 0x00000000000001CD
Image/uboot.img 0x0000000000069800 0x0000000000400000
Image/misc.img 0x0000000000469800 0x000000000000C000
Image/boot.img 0x0000000000475800 0x0000000001F7F000
Image/recovery.img 0x00000000023F4800 0x0000000001F0C600
Image/rootfs.img 0x0000000004301000 0x0000000000400000
Unpack firmware OK!
------ OK ------
Unpacking update.img OK.
Press any key to quit:
(5)查看各个分区文件;
neutionwei@x:~/Downloads/firefly-linux-repack$ tree output/
output/
├── Image
│ ├── boot.img
│ ├── misc.img
│ ├── recovery.img
│ ├── rootfs.img
│ └── uboot.img
├── MiniLoaderAll.bin
├── package-file
└── parameter.txt
1 directory, 8 files
(6)自行替换某个分区文件;
(7)打包新的Ubuntu固件;
neutionwei@x:~/Downloads/firefly-linux-repack$ ./pack.sh
start to make update.img...
Resize rootfs partition
dumpe2fs 1.44.1 (24-Mar-2018)
Android Firmware Package Tool v1.67
------ PACKAGE ------
Add file: ./package-file
package-file,Add file: ./package-file done,offset=0x800,size=0x11a,userspace=0x1
Add file: ./Image/MiniLoaderAll.bin
bootloader,Add file: ./Image/MiniLoaderAll.bin done,offset=0x1000,size=0x679c0,userspace=0xd0
Add file: ./Image/parameter.txt
parameter,Add file: ./Image/parameter.txt done,offset=0x69000,size=0x1d9,userspace=0x1
Add file: ./Image/uboot.img
uboot,Add file: ./Image/uboot.img done,offset=0x69800,size=0x400000,userspace=0x800
Add file: ./Image/misc.img
misc,Add file: ./Image/misc.img done,offset=0x469800,size=0xc000,userspace=0x18
Add file: ./Image/boot.img
boot,Add file: ./Image/boot.img done,offset=0x475800,size=0x1f7f000,userspace=0x3efe
Add file: ./Image/recovery.img
recovery,Add file: ./Image/recovery.img done,offset=0x23f4800,size=0x1f0c600,userspace=0x3e19
Add file: ./Image/rootfs.img
rootfs,Add file: ./Image/rootfs.img done,offset=0x4301000,size=0x400000,userspace=0x800
Add CRC...
Make firmware OK!
------ OK ------
********RKImageMaker ver 1.67********
Generating new image, please wait...
Writing head info...
Writing boot file...
Writing firmware...
Generating MD5 data...
MD5 data generated successfully!
New image generated successfully!
Making update.img OK.
/home/neutionwei/Downloads/firefly-linux-repack
Press any key to quit:
neutionwei@x:~/Downloads/firefly-linux-repack$ ls
bin new_update.img output pack.sh Readme_en.md Readme.md unpack.sh update.img
(8)new_update.img
就是新的Ubuntu固件。
写到最后
祝各位生活愉快!肝字不易,素质三连是对我的支持与肯定hahaha😘
以上是关于[ROC-RK3568-PC] 手把手教你在Linux下解包与打包Ubuntu系统固件的主要内容,如果未能解决你的问题,请参考以下文章
[ROC-RK3568-PC] 手把手教你打包能使用Etcher或dd命令烧写的Ubuntu系统固件
[ROC-RK3568-PC] 手把手教你打包能使用Etcher或dd命令烧写的Ubuntu系统固件
[ROC-RK3568-PC] 手把手教你编译Linux_SDK并打包Ubuntu系统固件
[ROC-RK3568-PC] 手把手教你制作Ubuntu系统TF卡启动盘