Apktool 使用教程

Apktool 使用教程
熊猫不是猫Apktool 是一个反编译 Android Apk 的第三方工具。它可以反编译资源,并在进行修改之后重新打包 Apk。
官网:Apktool - A tool for reverse engineering 3rd party, closed, binary Android apps.
1、安装 apktool
注意:apktool 依赖 Java1.8。请使用 java -version 查看,是否为 1.8 或更高版本。
主要的安装流程:
下载运行脚本,根据不同平台保存为不同的名字。— 运行脚本非必须,但可以避免一次次的重复敲 java -jar … 来执行操作
下载最新版本的 apktool.jar — 下载后可能不叫这个名字,但是通过脚本运行的话,要求为这个名字,修改为这个就行
将脚本和 jar 放到同一个目录下 — 官方建议放到指定目录,我试过 Windows 和 Mac,并不是一定要放到指定目录,也可以正常使用
进入命令行,cd 到相应目录,执行命令
2、手动 build 源码生成 apktool
apktool 的官网上详细介绍了如何 build 源码生成 apktool:Apktool - Build Guide
apktool 集合了几个子工程和依赖到一个工程中。其中包括:
brut.apktool.lib - 主工程,主要逻辑代码
brut.apktool.cli - 命令行接口工程
brut.j.dir - 工具工程
brut.j.util -工具工程
brut.j.common -工具工程
要求 JDK8,git(不从 github 上 clone 代码则不需要 git)
build 的步骤:
- clone 或者下载代码
git clone git://github.com/iBotPeaches/Apktool.git
在命令行中,进行到项目根目录下,执行 gradlew.bat 脚本,其他基于 unix 的系统执行./gradlew
打包 shadowJar,此 jar 包会将依赖都打包进去。
gradlew.bat build shadowJar
- 打包混淆过的 jar
gradlew.bat build shadowJar proguard
输出目录:./brut.apktool/apktool-cli/build/libs/apktool-xxxxx.jar
特别注意:Windows 平台下,目录深度不能超过 255 个字符。目前 apktool 项目最深目录达到 218 个字符!所以 apktool 根目录的存放路径不能超过 37 个字符!!!
3、反编译 apk
反编译命令:apktool d apk 路径
执行过程中会输出主要步骤 log
4、反编译结束后,反编译的内容均在目录下的 相应文件夹下 – 文件夹名字与 apk 同名
5、重新打包
假如你进行了修改,现在进行重新打包
命令:apktool b 项目目录
我们使用的就是上一步反编译后,生成的目录
重新打包工程中,同样会输出主要步骤的 log
重新生成的 apk 位于目录中的 dist 目录下,如图
需要注意的是,重新生成的 apk,是没有经过签名的,不能直接进行安装。关于 apk 的签名,这里不再赘述,自行百度,非常多。
下一篇,详细聊聊,apktool 的各种参数作用。最终会有 apktool 的源码解析。















