APKTOOL是目前反编译ANDROID apk的主要工具,可以反编译出APK里的资源文件和smali代码,而有些APK开发者为了防止自己的代码被反编译,针对APKTOOL工具加固代码,使得APKTOOL无法运行正常,比如这篇文章介绍的Android应用资源文件格式解析与保护对抗研究,因此有必要根据具体情况修改APKTOOL源码重新编译,本人花了一天时间来编译调试,现将具体的过程分享一下。
一. 下载源码
APKTOOL源码下载,github上直接DOWNLOAD或者使用GIT来下载,最好使用GIT,它依赖什么项目就会自动的去下载。
二. 源码编译
编译可以直接使用APKTOOL目录下的gradlew.bat命令,我使用了ANDROID STUDIO来编译源码。
1. 源码导入ANDROID STUDIO
“FILE”->”OPEN…”->源码目录
2. 编译
最右边”Gradle”->刷新同步
这时会自动的从网络上下载指定版本的gradle,如果gradle设置的是offline的话,gradle同步不了,需将gradle设置的offline的选择去掉。
“FILE”->”Settings”->”Build,Execution,Deployment”->”Gradle”
同步成功的话,gradle窗口会出现如下的任务列表。
在任务列表里选择如下的任务双击运行,APLTOOL的主要类在brut.apktool:apktool-cli模块里,运行”fatjar”任务生成项目的jar文件。
这时会在项目目录下自动创建了brut.apkool.smali文件夹(