Android super.img 镜像解包

简介

在 Android 10 及更高版本上支持了"动态分区",所以 ROM 包中看不到了传统的 system.img 等镜像。支持的动态分区包括:

  • System
  • Vendor
  • Product
  • System Ext
  • ODM

所以在 super.img 都可能包括以上分区的镜像文件。
具体信息可以查看官方文档 动态分区

声明

以下步骤环境均是 Linux 环境。

具体解包步骤

super.img 的解包必须两个工具 simg2img 和 lpunpack。其中 simg2img 可以在线安装,执行命令后可以按照提示自行安装即可。lpunpack 需要自己下载源码进行编译。lpunpack 生成后是通用的,所以下载别人编译好的 lpunpack 也是可以的,但是需要添加依赖的相关 so 库。注意工具和 so 库是配套的,请一起使用。不要自己混搭工具和 so 库。
下载好的 so 库文件放入 usr/lib/ 目录下即可也可以编辑 .bashrc 文件将 so 库所在目录路径加入到 LD_LIBRARY_PATH 中,命令如下

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:库所在目录路径

关于库路径的添加有多种方式,不止上面两种,大家可以搜索相关资料,按照自己的喜好来。

1. 编译 lpunpack 工具

按照以下命令编译即可

source build/envsetup.sh
make lpunpack

生成文件所在目录:out/host/linux-x86/bin

2. 将 super.img 从 Android sparse image 转换为 raw image

命令:simg2img SUPER_IMAGE OUTPPUT_FILE

simg2img super.img super.img_ext4
3. 从 raw image 解包出分区镜像文件

命令:lpunpack [-p partition_name] SUPER_IMAGE [OUTPPUT_DIR]
下面以 sysetm 分区镜像文件为例

./lpunpack -p system super.img_ext4  system (这里 sytem 是目标目录,可以自己创建)

system.img 镜像解出后,就可以采用以下命令进行挂

sudo mount -o ro system.img system(system 是目标目录,可以自己创建)

如果你不知分区名称或者就是想把所有镜像给解包出来可以不指定分区名直接解包

./lpunpack super.img_ext4  Temp (这里 Temp 是目标目录,可以自己创建)

如果命令执行失败,可以执行 chmod a+x 给 lpunpack 赋予执行权限

其实可以用 lpdump 查看镜像的一些信息,信息里就包括了分区名称

./lpdump super.img_raw(这里是用 simg2img 转换后的文件)

命令执行后的结果如下
image.png

懒人模式

如果你什么都不想编译和配置环境,可以使用下面的压缩包,解压后可以直接使用相关工具,但是注意不要拷贝和移动文件位置。

Tools
提取码:bbbk

  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: Android系统的boot.img文件是Android固件中的一个重要部分,它包含了Android系统的内核和一些初始化脚本等文件。解包和打包boot.img文件是进行Android固件定制或修改的重要步骤之一。 在解包和打包boot.img文件时,可以使用一些工具集来辅助完成。以下是一些常用的工具集: 1. Android Kitchen:这是一个基于Linux系统的命令行工具集,可以用来解包和打包boot.img文件。它提供了一系列的命令,如unpackbootimg用于解包boot.img,mkbootimg用于打包boot.img。使用Android Kitchen工具集需要一些基本的Linux命令行操作知识。 2. Magisk Manager:这是一个通用的Android系统修改工具,其中包含了解包和打包boot.img文件的功能。Magisk Manager可以通过安装Magisk框架来实现对Android系统的修改,并且提供了可视化的操作界面,方便用户进行boot.img解包和打包操作。 3. Android Image Kitchen:这是另一个基于Linux系统的命令行工具集,用于解包和打包Android系统的映像文件,包括boot.img文件。Android Image Kitchen提供了一系列的命令,如unpackimg用于解包boot.img,repackimg用于打包boot.img。 除了上述工具集外,还有一些第三方的GUI工具可供使用,如Magisk Manager中提供的可视化操作界面,以及一些名为"bootimage-tools"的工具集。 总之,解包和打包boot.img文件是进行Android固件定制或修改的重要环节之一,可以通过一些命令行工具集,如Android Kitchen、Android Image Kitchen等,或者一些GUI工具,如Magisk Manager等,来实现这一操作。这些工具集提供了相应的命令或操作界面,方便用户进行boot.img解包和打包操作。 ### 回答2: Android boot.img解包和打包工具集是用于对Android系统中的boot.img文件进行解包和打包操作的一组工具集。 解包工具集包括: 1. binwalk:可以用于识别和提取boot.img文件中的各种结构和组件。 2. Unpackbootimg:可以将boot.img文件解包为ramdisk.img、kernel和cmdline等组成部分。 3. mkbootimg:可以重新打包解包后的ramdisk.img、kernel和cmdline等组成部分为新的boot.img文件。 4. Android Image Kitchen:可以提取和重新打包boot.img文件中的各种文件、分区和可执行程序。 5. Bootimg-tools:提供了一系列工具来处理boot.img文件,包括解包、打印信息、拆分和合并等操作。 使用这些工具集,可以将boot.img文件解包为其包含的ramdisk、kernel和cmdline等文件,可以对这些文件进行修改和定制。然后可以使用mkbootimgAndroid Image Kitchen将修改后的文件重新打包为新的boot.img文件。这样,就可以实现对Android系统启动过程中的各种配置和组件进行修改和定制。 这些工具集对于Android系统开发和定制非常有用,可以帮助开发者理解和修改Android系统的启动过程,同时也可以帮助厂商和用户改变和优化系统的启动行为。然而,由于涉及到系统底层,使用这些工具集需要谨慎操作,避免对系统造成损害。 ### 回答3: Android的boot.img是一个包含了Linux内核和设备树的镜像文件,用于引导Android设备的启动过程。解包和打包boot.img需要使用一些专门的工具集。 解包boot.img的工具集主要包括以下几个工具: 1. mkbootimg工具:用于解析和生成Android boot.img文件,可以从boot.img中提取出内核、ramdisk、cmdline等信息。 2. unmkbootimg工具:用于解包boot.img文件,将其中的内核、ramdisk、cmdline等内容提取出来。可以使用该工具将boot.img解包为boot.img-zImage(内核文件)、boot.img-ramdisk.gz(ramdisk文件)等。 3. simg2img工具:用于将boot.img中的system.img(系统分区镜像解包为ext4格式的文件系统,以便进行修改和查看。 4. mkdtimg工具:用于打包设备树文件,依赖于设备树编译工具,可以将设备树编译成设备树二进制文件(.dtb)后再使用mkdtimg打包成dt.img 文件,然后将dt.img文件与之前解包得到的zImage、ramdisk等文件一起打包为新的boot.img。 打包boot.img的工具集主要包括以下几个工具: 1. mkbootimg工具:用于生成新的boot.img文件,需要提供新的zImage(内核文件)、ramdisk(ramdisk文件)、cmdline等参数。 2. mkdtimg工具:用于打包设备树文件,将设备树二进制文件(.dtb)打包为dt.img文件,然后将dt.img文件与zImage、ramdisk等文件一起打包为新的boot.img。 以上是Android boot.img解包和打包工具集的一些介绍。需要注意的是,操作boot.img需要一定的技术知识和经验,不当的操作可能导致设备变砖或无法正常启动,因此使用前请谨慎,并在了解清楚操作步骤后进行操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值