芯片的固件下载后是a10_20200924_120556.swu这样后缀的文件,在linux下用file查看
root@DESKTOP-83JTNCD:/mnt/d/work$ file a10_20200924_120556.swu
a10_20200924_120556.swu: ASCII cpio archive (SVR4 with CRC)
这是一个cpio的文件,然后执行下面操作
makedir a10
cd a10
cpio -i -F ../a10_20200924_120556.swu
这样就解压出来了,然后ls
sl@DESKTOP-83JTNCD:/mnt/d/work/a10$ ls -l
total 48328
-rwxrwxrwx 1 sl sl 2884892 Feb 18 17:45 BOOT.bin
-rwxrwxrwx 1 sl sl 10512 Feb 18 17:45 devicetree.dtb
-rwxrwxrwx 1 sl sl 2 Feb 18 17:45 force_tune.conf
-rwxrwxrwx 1 sl sl 40370176 Feb 18 17:45 rootfs.ubi
-rwxrwxrwx 1 sl sl 7 Feb 18 17:45 special
-rwxrwxrwx 1 sl sl 6776 Feb 18 17:45 sw-description
-rwxrwxrwx 1 sl sl 256 Feb 18 17:45 sw-description.sig
-rwxrwxrwx 1 sl sl 2083856 Feb 18 17:45 system.bit
-rwxrwxrwx 1 sl sl 4123920 Feb 18 17:45 uImage
然后解压rootfs.ubi,可以用挂载的方式解压,但是有更好的方法
sudo apt-get install liblzo2-dev
sudo pip install python-lzo
sudo pip install ubi_reader
ubi_reader工具提供了四个脚本:
ubireader_display_info //获取UBI信息以及布局块等信息
ubireader_extract_images //提取镜像
ubireader_extract_files //提取文件内容
bireader_utils_info //分析UBI镜像并创建shell脚本和UBI配置文件
ubi_reader工具的使用也很简单,可以不需要参数,如下提取镜像里面的文件,输出会保存到./ubifs-root/目录里:
$ ubireader_extract_files rootfs.ubi