Android super.img 镜像解包

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 是目标目录,可以自己创建)

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

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

命令执行后的结果如下
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用方法:http://blog.csdn.net/asmcvc/article/details/11770851 工具: unyaffs,mkyaffs2image 其中unyaffs有windows版本和linux版本,mkyaffs2image只有linux版本。 windows版本的unyaffs用法: 把system.img复制到unyaffs的相同目录下,cmd命令下cd到unyaffs的目录下,然后执行命令:unyaffs system.img unyaffs会把system.img压到其目录下。 linux版本的unyaffs用法: 把unyaffs复制到/usr/bin目录下,并修改权限为可执行。 然后cd到system.img目录下(假定目录为system目录),执行命令:unyaffs system.img 然后对system目录下的文件进行修改。 注意:修改完后的文件要修改一下权限,尽量和其他文件的权限保持一致。例如:chmod 644 framework-res.apk mkyaffs2image用法: 复制到/usr/bin目录下,并修改权限为可执行。 这里以打system目录为system.img为例,执行命令: mkyaffs2image system system.img 然后把新生成的system.img复制替换掉原:adt-bundle-windows-x86\sdk\system-images\android-17\armeabi-v7a\system.img 执行bat批处理命令启动模拟器: D:\adt-bundle-windows-x86\sdk\tools\emulator-arm.exe -avd AndroidVM -partition-size 128 这里以修改android系统启动画面为例: 打开目录下的\framework\framework-res.apk 替换图片:framework-res.apk\assets\images\android-logo-mask.png为下图: 然后对\framework\framework-res.apk文件重新签名,复制到linux下后修改文件权限和原来一致。 然后mkyaffs2image system system.img生成新的system.img,替换原来的system.img,并启动模拟器,效果图如下: 修改代码: 工具:odextools(参考:《一键odex批量合并工具odextools的重新整理与使用》)、dexopt-wrapper 其中odextools.bat的代码: 批处理有一处bug:每打一次会把odex文件删除掉,导致在后面的打过程中会出现找不到:system/framework/core.odex类似的错误,因此只需要在打完后不删除odex文件即可,找到del /f !apkx!.odex 1>nul 2>nul改为:::del /f !apkx!.odex 1>nul 2>nul,也就是注释掉这一行代码。 具体使用方法(操作在windows下): 在odextools\romdir目录下创建文件夹:system 利用unyaffssystem.img后,把所有文件复制到system目录下。 然后运行odextools.bat,如图: 选择一个需要整合odex的目录选项即可。odextools.bat会自动设置环境变量,使用baksmali.jar来反编译odex为smali,然后再调用smali.jar打为classes.dex, 然后再打到相应的apk(framework目录下对应的是jar后缀的,实际上也是个apk),最后再重新签名。 如果要修改代码,则需要把上面重新打生成的apk文件,利用常规方法反编译后修改smali代码,例如插桩输入log信息。然后再回编译并重新签名。 最后一步:因为system.img中的apk是优化过的,apk主目录下是没有classes.dex文件的,而是一个被优化过的odex文件,用于优化启动速度。 因此需要将修改后的apk再用dexopt-wrapper优化apk后生成出odex文件,然后删除apk里的classes.dex,并在相同目录下放置与apk同名的odex文件。 按照原system目录的文件结构组织好后,目录复制到linux环境下使用mkyaffs2image重新打成system.img
### 回答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需要一定的技术知识和经验,不当的操作可能导致设备变砖或无法正常启动,因此使用前请谨慎,并在了清楚操作步骤后进行操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值