type
status
date
slug
summary
tags
category
icon
password
URL
Android系统编译之后的打包阶段,会将所有编译出来的有需要的执行文件,库文件以及各种配置文件等打包到各个镜像文件中。有时候我们需要看一下镜像文件中都打包了什么东西,那就可以通过一些方法将其挂载到一个目录,然后进行查看。
一、所用到的工具
1.1 simg2img
简述:将sparse格式的image文件转化为raw格式的image文件。
编译android源码默认会生成。
路径:out/host/linux-x86/bin/simg2img
如果没有请用如下的指令编出
source build/envsetup.sh
lunch miodm_topaz_native-userdebug
export OUT_DIR=out && nj simg2img
1.2 lpunpack
简述:这个工具可以将system.img,product.img,vendor.img等文件从super.img解析出来。
路径:out/host/linux-x86/bin/lpunpack
如果没有请用如下的指令编出
source build/envsetup.sh
lunch miodm_topaz_native-userdebug
export OUT_DIR=out && nj lpunpack
1.3 unpack_bootimg
简述:专门用于解析boot.img的工具。
路径:out/host/linux-x86/bin/unpack_bootimg
system/core/mkbootimg/unpack_bootimg.py
如果没有请用如下的指令编出
source build/envsetup.sh
lunch miodm_topaz_native-userdebug
export OUT_DIR=out && nj unpack_bootimg
1.4 mkdtimg
简述:将dtbo.img文件转化为dtb文件,一个dtbo.img会包含多个dtb文件;
编译android源码默认会生成。
路径:out/host/linux-x86/bin/mkdtimg
如果没有请用如下的指令编出
source build/envsetup.sh
lunch miodm_topaz_native-userdebug
export OUT_DIR=out && nj mkdtimg
1.5 dtc
简述:将dtb文件转化为可阅读的dts文件;
编译android源码默认会生成。
路径:out/host/linux-x86/bin/dtc
二、解压缩各image文件
2.1 boot.img/recovery.img/vendor_boot.img
2.1.1 解压缩
指令如下:
- boot.img

- recovery.img
- vendor_boot.img

2.2 dtbo.img
- 先从dtbo.img中解析出dtb文件
- 将上一步的dtb文件转化为可以阅读的dts文件
也可以使用fdtdump
fdtdump -sd dtbo.img > dtbo.txt
2.3 dtb.img
也可以使用fdtdump
fdtdump -sd dtb.img > dtb.txt
2.4 metadata.img/userdata.img
- 将sparse格式的metadata.img转化为raw格式的metadata_raw.img
- 将metadata_raw.img挂载到一个目录上,此时访问这个目录就可以访问镜像文件的内容了
2.5 super.img
- sparse格式转化为raw格式
- 使用lpunpack解析super_raw.img
- 挂载解析出来的镜像文件
2.6 persist.img
这个镜像是linux ext4格式的,直接挂载即可