[Linux Device Driver] 解包super.img

本文介绍了解包Android系统的super.img镜像的方法。首先需要使用simg2img工具将sparse格式的super.img转换为ext4格式,然后利用lpunpack工具进行解包,以查看其内部的分区文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0. 背景

最近新项目,烧录的时候没有system分区了,听大佬说是被编译进了super分区; 于是决定研究一波,这里直接采用最简单粗暴的方式,直接对其进行解包,看看包含哪些东西。

img镜像文件有两种,分为raw和sparse两种格式。

raw ext4 image,即raw image,使用file可以看到它是一个完整的ext4分区镜像(包含很多全零的无效填充区),可以直接使用mount进行挂载。而sparse image是一个非常普通的data文件,是通过将raw ext4进行稀疏描述得到的,因此尺寸比较小(没有全零的无效填充区)。

1. 转换成ext4格式

1.1 simg2img

我们看下我们生成的super.img格式:

/LA.UM.8.13/out/target/product/lito$ file  super.img

它会告诉你是sparse image稀疏镜像格式的,这个不能直接解包,我们要转换成可以直接挂载的ext4格式。
在这里插入图片描述

super.img: Android sparse image, version: 1.0, Total of 3145728 4096-byte 
output blocks in 3464 input chunks.

然后我在参考链接1里面看到了使用simg2img可以转换格式,

~/android10/test/android-simg2img-master$ simg2img super.img super_ext4.img

但是我的Linux服务器没有装。

The program 'simg2img' is currently not installed. To run 'simg2img' 
please ask your administrator to install the package 'android-tools-fsutils'

后来从这个github仓库里面,找到了个windows下面的工具。(请见本文参考链接2)

1.2 格式转换

把super.img放到simg2img同级目录下面,然后命令控制行进入对应目录。

在这里插入图片描述

simg2img.exe  super.img  super_ext4.img

然后就转换好了,一会把它拷贝到Linux服务器下面。

2. lpunpack

分包工具lpunpack是系统自带的,我们只需要make一下就可以了, make lpunpack编译完成之后,

我们在out/host/linux-x86/bin目录下面会找到lpunpack工具。

~/LA.UM.9.12/out/host/linux-x86/bin$ mkdir  test_android10

新建立一下文件夹,然后把刚才转换到到ext4镜像文件拷贝到这个目录。

运行:

./lpunpack  super_ext4_android10.img  test_android10/

我发现android10的super.img解包之后是这些文件:

-rw-r--r-- 1 nigulasi nigulasi  450293760 Nov 26 14:13 product_a.img
-rw-r--r-- 1 nigulasi nigulasi          0 Nov 26 14:13 product_b.img
-rw-r--r-- 1 nigulasi nigulasi 1276358656 Nov 26 14:13 system_a.img
-rw-r--r-- 1 nigulasi nigulasi          0 Nov 26 14:13 system_b.img
-rw-r--r-- 1 nigulasi nigulasi  789164032 Nov 26 14:13 vendor_a.img
-rw-r--r-- 1 nigulasi nigulasi          0 Nov 26 14:13 vendor_b.img

然后android11的super.img文件解包之后是这些文件:

-rw-r--r-- 1 nigulasi nigulasi   1196032 Nov 26 13:47 odm_a.img
-rw-r--r-- 1 nigulasi nigulasi         0 Nov 26 13:47 odm_b.img
-rw-r--r-- 1 nigulasi nigulasi 222171136 Nov 26 13:47 product_a.img
-rw-r--r-- 1 nigulasi nigulasi         0 Nov 26 13:47 product_b.img
-rw-r--r-- 1 nigulasi nigulasi 934141952 Nov 26 13:47 system_a.img
-rw-r--r-- 1 nigulasi nigulasi         0 Nov 26 13:47 system_b.img
-rw-r--r-- 1 nigulasi nigulasi 446722048 Nov 26 13:47 system_ext_a.img
-rw-r--r-- 1 nigulasi nigulasi         0 Nov 26 13:47 system_ext_b.img
-rw-r--r-- 1 nigulasi nigulasi 141283328 Nov 26 14:12 vendor_a.img
-rw-r--r-- 1 nigulasi nigulasi         0 Nov 26 14:12 vendor_b.img

3. 参考链接

  1. https://blog.youkuaiyun.com/earbao/article/details/106720426?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160639407219725271041749%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=160639407219725271041749&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_click~default-2-106720426.first_rank_ecpm_v3_pc_rank_v2&utm_term=super.img&spm=1018.2118.3001.4449

  2. https://github.com/mromm/simg2img_for_win

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值