深度解析,如何高效解析system.img文件

深度解析,如何高效解析system.img文件"/

`system.img`是Android系统中常见的一种文件,它代表了一个完整的系统分区,包含了系统的核心文件和应用程序。以下是如何解析`system.img`的一些步骤:
### 使用Android Debug Bridge (ADB)
1. "连接设备":确保你的设备已经连接到电脑,并且开启了USB调试。
2. "安装ADB":如果你的电脑上还没有安装ADB,需要先安装ADB。
3. "解压system.img": - 打开命令行窗口。 - 使用`adb shell`进入设备的shell环境。 - 使用`dd if=/dev/block/byname/system of=/path/to/output/system.img bs=4096`命令来解压`system.img`。这里`/path/to/output/system.img`是你希望保存解压后的`system.img`的路径。
### 使用第三方工具
1. "使用Hex Editor":许多Hex Editor工具都可以打开和解压`system.img`文件。例如,HxD、WinHex等。
2. "使用QEMU":QEMU是一个开源的模拟器,可以用来加载和解压`system.img`。
### 使用QEMU加载system.img
1. "安装QEMU":如果你的电脑上还没有安装QEMU,需要先安装QEMU。
2. "创建虚拟硬盘": - 使用`qemu-img create -f qcow2 system.qcow2 16G`命令来创建一个新的虚拟硬盘文件。
3. "

相关内容:

文档说明

本文档以SC826-CN-00(msm8953平台,Android 7)为例,说明如何解析system.img镜像文件。

问题描述

某客户反馈,在不同编译环境下生成的system.img文件大小差异很大。A环境下大小为1.8G左右,B环境下大小为1.3G左右。

1.8G的system.img文件烧录后,系统运行比较卡顿。而1.3G的文件则比较流畅。

解析

为定位该问题,首先来找出两个环境下system.img文件有何差异。

这里就需要对system.img进行解析,看看包含了哪些app和文件。

可以在ubuntu环境下进行解压,参考类似下面的链接:

https://www.jianshu.com/p/db70835d41c8

这里我们用更直观的window工具来解析。

百度搜索"ROM助手"或"ROM工具",会出现不少相关工具。

我们这里安装一个ROM助手。

选择"IMG“解包->system.img

解压成功之后,会在 MoGu/imgupack 下生成解压后的文件夹。 数字最大的文件夹就对应刚解压的system.img。

把两个system.img都解压之后,对比差异。

右边是对应1.8G大小的system.img,它包含的所有app都多出一个oat/arm64/*.odex的文件。导致整个镜像文件变大。

修改编译选项

odex文件是个什么东西呢,百度了解下,据说能加快app启动速度。但这里不是我们关注的重点,先想办法把*.odex文件干掉。

打开
device/qcom/msm8953_64/BoardConfig.mk,如下图:

WITH_DEXPREORT 对应 odex的编译选项。

我们简单粗暴的跳过这部分判断逻辑,直接设成 false。

删除system下的目标文件:

rm -rf out/target/product/msm8953_64/system

重新编译system,再查看生成的镜像文件,大小已经减小了几百M。

patch文件

https://uploader.shimo.im/f/YBP9Ouk9a5U9RfME.patch?attname=BoardConfig.mk.patch&download

本期美女

大嫂徐冬冬

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章