MASTG-TOOL-0011: Apktool

Apktool 用于解包 Android 应用包 (APK)。简单地使用标准 unzip 实用程序解压缩 APK 会导致某些文件无法读取。 AndroidManifest.xml 被编码为二进制 XML 格式,文本编辑器无法读取。此外,应用资源仍然打包到一个存档文件中。

使用默认命令行标志运行时,apktool 会自动将 Android Manifest 文件解码为基于文本的 XML 格式,并提取文件资源(它还会将 .DEX 文件反汇编为 smali 代码 - 我们将在本书后面重新讨论此功能)。

在解压的文件中,通常可以找到(在运行 apktool d base.apk 之后)

  • AndroidManifest.xml:解码后的 Android Manifest 文件,可以在文本编辑器中打开和编辑。
  • apktool.yml:包含有关 apktool 输出的文件信息
  • original:包含 MANIFEST.MF 文件的文件夹,其中包含有关 JAR 文件中包含的文件的信息
  • res:包含应用资源的目录
  • smali:包含反汇编的 Dalvik 字节码的目录。

您还可以使用 apktool 将解码的资源重新打包回二进制 APK/JAR。请参阅 探索应用包 重新打包和重新签名 技术,了解更多信息和实际示例。