一、环境
- apktool.jar
- apktool.bat(windows)/apktool.sh(linux)
- 下载地址
二、反编译
- 命令
apktool d [apk文件路径]
- 示例
三、修改代码
-
1.修改资源文件
可直接修改并保存,然后进行下一步。 -
2.修改java代码
反编译出来的结果中只有smali文件,即Java虚拟机支持的汇编语言。
如果确实需要修改代码,就得对照smali文件和从classes.dex反编译出来的源码了,按照smali的规范来改动即可。相当于写汇编,这个难度比较大。
可以参考如下资料:
Smali 语法解析——Hello World
四、重新打包
- 命令
apktool b [反编译后的文件夹路径]
- 示例
最后,别忘了签名~
五、逆向工具
apkToolPlus 支持反编译、回编译、签名、加固、jad、jd、jbe 源码查看等功能。
来源:https://github.com/linchaolong/ApkToolPlus
也可此处下载:https://download.csdn.net/download/Jay_zjc/18241182
问题记录
Q:通过apktool.yml修改apk版本号不生效的问题
A:删除build文件夹后再执行apktool b 命令进行回编译即可。