本简介聚焦于详解用于解析与重建Android系统内核中的system.img文件的关键工具,涵盖必备软件及操作步骤。
使用方法如下:
工具:unyaffs 和 mkyaffs2image。
其中 unyaffs 有 Windows 版本和 Linux 版本,而 mkyaffs2image 只有 Linux 版本。
Windows 版的 unyaffs 使用方式为:将 system.img 文件复制到 unyaffs 的同级目录下,在命令提示符中切换至该目录并执行 `unyaffs system.img` 命令。这会把 system.img 解压到 unyaffs 当前目录。
对于 Linux 版的 unyaffs,需要将文件放置在 `/usr/bin/` 目录,并设置可执行权限;然后进入包含 system.img 的目录(例如名为 `system`),并运行命令:unyaffs system.img。这会解压出一个系统目录供修改。
注意,在完成所有改动后,请确保新生成的文件拥有与原文件相同的权限,比如使用 `chmod 644 framework-res.apk` 设置框架资源包(apk)的访问权限。
mkyaffs2image 的用法为:将此工具放置在 `/usr/bin/` 目录,并设置可执行权限。以打包 system 文件夹为例,命令格式是 mkyaffs2image system system.img 生成新的系统镜像文件;接着把新产出的 `system.img` 替换原路径下的相同名称文件。
对于修改 Android 系统启动画面的操作:首先利用 unyaffs 解压出 `framework-res.apk` 文件,替换其中的图片(如 `\assets\images\android-logo-mask.png`),然后重新签名并打包。之后使用 mkyaffs2image 生成新的 system.img 并替换原文件。
在修改代码时可以借助 odextools 和 dexopt-wrapper 工具:前者用于将 odex 文件转换为 smali 格式,进行必要的修改后再编译成 classes.dex,并重新签名;后者则负责优化 apk 包并输出 odex 文件。最后按照系统目录结构组织好文件,在 Linux 环境下使用 mkyaffs2image 生成新的 system.img。
注意:每次执行打包任务后,请确保不删除中间产生的 .odex 文件,以避免后续操作中找不到必要资源的错误。