固件包结构
其他机器包你可以参考这个,也差不多

主包解压出来得到这些文件:
解包IMG
只看RK3308和allupgrade两个。
RK3308
RK3308可以直接用瑞芯微官方工具(AndroidTool)解包:

解包完成后的固件会存放在Output文件夹里

Android文件夹里有分区,
WARNING: 不要看他写Android就认为他是安卓!3308不支持安卓!嵌入式MCU!这个是瑞芯微支持安卓的SOC也会使用这个工具所以保留下来的命名习惯!
只关心rootfs分区

拖到Kali里面尝试直接挂载,发现不行:

binwalk发现文件系统UBI FS。安这个提取镜像文件内容:onekey-sec/ubi_reader
pipx install ubi_reader
ubireader_extract_files path/to/file
成功解包

allupgrade
安卓固件包直接当作文本文件打开发现大量aml开头的,疑似分区表结构

查询得知AML指晶晨半导体,尝试直接用Amlogic CustomizationTool 2.1 level1解包

一次成功,解压后的文件在安装目录的tmp文件夹。

把Super拷出来,其他不要,有两种提取方式:
Lpunpack
下载这个东西unix3dgforce/lpunpackblob/master/lpunpack.py
解包
lpunpack.py SUPER_IMAGE OUTPUT_DIR


Unsuper
codefl0w/unsuperblob/main/unsuper.py 同样是把Super拷贝出来
python3 -m venv .venv
source .venv/bin/activate
pip install numpy
wegt https://raw.githubusercontent.com/codefl0w/unsuper/refs/heads/main/unsuper.py
位置参数:
super_image super.img 文件的路径
output_dir 提取分区的输出目录(默认:extracted_partitions)
选项:
-h, --help 显示此帮助信息并退出
--version 显示程序版本号并退出
-p, --partitions PARTITIONS [PARTITIONS ...] 指定要提取的分区名称(vendor、product 等)(默认:提取所有分区)
-j, --jobs JOBS 并行提取线程数(默认:4)
-q, --quiet 忽略进度输出
--list 列出可用分区并退出
--temp-dir TEMP_DIR 临时 unsparse 文件的目录(默认:系统临时目录)
--unsparse 反稀疏处理镜像并保存到输出目录
--dump-metadata 将分区元数据导出到输出目录中的 metadata.json
列出所有可用分区
python unsuper.py super.unsparse.img --list

把全部分区解压出来
python unsuper.py super.unsparse.img ./Android/ --partitions system_a system_dlkm_a system_ext_a vendor_a vendor_dlkm_a product_a odm_a odm_dlkm_a --jobs 8
现在可以直接挂载了
sudo mkdir -p /mnt/{system,system_ext,system_dlkm,vendor,vendor_dlkm,product,odm,odm_dlkm}
#system
sudo mount -o loop,ro system_a.img /mnt/system
sudo mount -o loop,ro system_dlkm_a.img /mnt/system_dlkm
sudo mount -o loop,ro system_ext_a.img /mnt/system_ext
#vendor
sudo mount -o loop,ro vendor_a.img /mnt/vendor
sudo mount -o loop,ro vendor_dlkm_a.img /mnt/vendor_dlkm
#product
sudo mount -o loop,ro product_a.img /mnt/product
#odm
sudo mount -o loop,ro odm_a.img /mnt/odm
sudo mount -o loop,ro odm_dlkm_a.img /mnt/odm_dlkm

到此所有固件解包完成。