1. Apktool 介绍
Apktool 是一个对 Android Apk 文件的反编译工具,它可以将 Apk 文件中的 Java 源代码反编译成 smali 文件,将 Apk 文件中的 resource 资源文件还原成源码状态。它还可以对它反编译以后的文件进行重编译打包。
2. Apktool 的安装(以 Windows 为例)
Apktool 下载: https://ibotpeaches.github.io/Apktool/install/
- 下载 apktool.bat 和 apktool.2.4.1.jar 两个文件。
注意:下载 apktool.bat 时,是选中 "wrapper script" 再按鼠标右键选择 "链接另存为"。 - 将这两个文件放到同一个文件夹下,并将 apktool.2.4.1.jar 重命名成 apktool.jar。
- 将该文件夹的路径配置到 PATH 环境变量中去。
- 打开命令行窗口,输入 apktool 后按回车键,如果输出如下图信息,则表示安装成功。
3. Apktool 反编译
3.1. Apktool 命令
- -advance: 反编译时输出更详细的信息。
- -version: 查看 apktool 版本号。
3.2. Apktool 反编译命令
apktool d <apkFilePath> -o <outputDir>
apktool d(decode) 开头表示反编译。apktool b(build) 开头表示重编译打包。
参数:
- apkFilePath: Apk 文件路径。
- outputDir: 反编译以后的文件输出路径。
示例: apktool d D:\apk\app.apk -o D:\apk\app
3.3. Apktool 反编译命令选项说明
- -o: 设置反编译以后的文件输出路径。
- -f: 强制删除反编译以后的文件输出路径。
- -p: 指定 framework 文件储存的位置。
- -r: 不反编译 resource 资源文件,不修改 resources.arsc,如果只反编译 Java 源代码文件(smail),建议使用该选项。
- -s: 不反编译 dex 文件,在 build 时仅仅移动 classes.dex,若需要快速打包,建议使用该选项。
- -t: 给生成的 framework 文件设置标签。
4. Apktool 重编译打包
4.1. Apktool 重编译打包命令
apktool b <outputDir> -o <apkName>
参数:
- outputDir: 反编译以后的文件输出文件夹路径。
- apkName: 重编译打包后的 Apk 文件名称。
示例: apktool b D:\apk\app -o D:\apk\app2.apk
4.2. Apktool 重编译打包命令选项说明
- -o:输出 apk 文件的路径和名字。
- -f:在打包时重写已经存在的文件,强制覆盖。
- -p:保存 framework 文件到指定目录。
网友评论