需求:apk需要改变一个常量,但是源码丢失
工具下载地址:http://download.csdn.net/download/intenttao/9953168
1.使用apktool反编译apk
cmd定位到工具根目录,执行命令apktool.bat d apk名称;反编译成功后会在根目录生成apk名称的文件夹
2.使用dex2jar将apk解压后的classes.dex转换成jar包
将初始apk重命名成zip文件然后解压,将classes.dex放到dex2jar根目录下,cmd执行命令d2j-dex2jar.bat classes.dex,生成的classes-dex2jar.jar就在dex2jar-2.0目录下,然后使用jd-gui打开classes-dex2jar.jar即可查看java代码
3.修改smali文件,在之前反编译成功的smali文件里找到需要修改的文件打开,搜索需要改变的常量
3.修改完成后,用apktool重新打包,执行命令apktool.bat b 反编译后的项目文件夹名称,打包成功后的apk位于dist目录下
sign.jar 签名工具 https://github.com/appium/sign
4.使用sign.jar重新签名,执行java -jar sign.apk apktool重新打包后的apk名称,签名成功后名字为xx.s.apk