1.先说工具:(路径自己搜去吧,网上一大堆,这里只说工具名称)
apktool1.5.2.tar.bz2 (压缩包里一个文件)和 apktool-install-windows-r05-ibot.tar.bz2(压缩包里两个文件),解压后把这3个文件放在一个文件夹里,利用APKTOOL可以实现把APK反编译成smail文件和重新打包
dex2jar(里边一堆文件,我们要用到的是dex2jar.bat文件):利用这个工具可以生成jar包
JD-GUI:用dex2jar生成的jar包查看java源代码,修改源文件
2.实际演习:
(这里下了一个最近比较火的全民英雄,因为本人喜欢DOTA的原因,所以也情不自禁的爱上了这个游戏)
(好了,材料已经齐全,下面开始做我们的大餐!)
①把apktool1.5.2.tar.bz2 (一个文件)和 apktool-install-windows-r05-ibot.tar.bz2(两个文件)解压到一个文件夹里,就叫apktool吧,然后打开DOS窗口,进入apktool文件目录,输入命令apktool d 要反编译的文件(直接把该文件拖到DOS窗口里),然后就会在apktool文件夹下生成一个被反编译的文件夹hero(我们暂且叫他hero吧,因为原文件名太长),其中有一个叫smali(是安卓系统里JAVA虚拟机DALVIK,所使用的.dex格式文件的汇编器,如果想修改源码的话就要学会怎么修改smali文件)的文件夹,对应于源码的文件夹。
这里我们修改一下登录的音乐,换成我喜欢的火影忍者
②打包生成新文件:apktool b 生成的文件夹hero(直接拖拽)
这时候会在我们的hero文件下下多出来一个build文件夹(这个待会讲)和dist文件夹,dist文件夹下会看到我们重新生成的APK文件
③给新生成的文件签名:(至于密钥文件的生成我就不多说,网上一搜一大堆)
jarsigner -keystore 你的key文件(直接拖拽) dist下的APK文件(直接拖拽) 证书的别名
证书的别名:这个要介绍一下,如果忘记别名或者没有注意过的话,可以通过这种方式获取
打开eclipse,右键你的随便一个android工程,选择Android Tools ,然后Export signed Application Package ,然后next,输入你的密钥位置和密码next,然后有个Alias,这个就是你的别名!
OK,新包生成!
后续:
大家可能会问,dex2jar,JD-GUI是干什么用的呢,还有上文的build文件夹呢?
其实把apk文件后缀改为zip解压出来的文件就是build文件夹,
在build文件夹下有个classes.dex文件,我们把这个文件拿出来,然后放到dex2jar的文件夹下,cd到dex2jar文件夹下面,再运行我们的窗口命令,dex2jar classes.dex
然后会生成一个jar文件,把这个jar文件拖到JD-GUI里就可以查看源代码了,这时候我们就可以找我们想修改的数据,然后对照到我们前面说的smali文件里做相应改动。
总结:JD-GUI里看JAVA代码只是一个对照的作用
参考:http://lbrant.blog.51cto.com/2400264/499893/