ApkTool是一个非常使用的安卓apk逆向的工具,它可以将资源解码为几乎原始的形式,并在进行一些修改后重建它们,更好的帮我们在开发过程中去添加一些功能进行校验或者分析应用程序等等。当然请不要用于盗版和其他非合法用途。(下面的流程都是基于Windows环境)
1.安装
- 在ApkTool的首页可以找到安装文档,下载对应平台的jar,然后按照教程一步步操作安装即可。这里推荐windows平台将工具配置到环境变量中,更容易操作
2.解包
- 创建一个工作目录,将我们需要解包的apk剪切到此处(这里我举例apk为test.apk)。在此文件夹处打开cmd窗口,输入
apktool d test.apk
,回车将在我们创建的工作目录下解包产生一个test的文件夹,打开你可以发现有原始的Android工程目录,就可以进行你的修改啦。
3.合包
- 使用命令
apktool b -o test1.apk test --use-aapt2
,这里为什么要指定使用appt2来构建是因为Android Gradle插件3.0.0及更高版本默认情况下会启用 AAPT2去构建资源文件,而apktool内部默认的还是使用aapt,可能会导致构建apk失败。(如果确认apk无aapt2构建可以无需添加use-aapt2指令)。执行完毕后,可以发现当前目录下会产生test1.apk文件
4.重签
使用Sdk内置的apksigner.bat脚本文件为我们的test1.apk进行重签。首先我们需要有一个签名证书(keystore),可以参考[官方文档][3]生成签名文件。然后输入我们的重签指令:apksigner.bat绝对路径 sign --v1-signing-enabled true --v2-signing-enabled true --ks keystore绝对路径 --ks-key-alias 你设置的别名 --ks-pass pass:你设置的密码 --in test1.apk
即可得到我们新的apk,开始我们的测试吧!