1、下载文件apktool 解压,进入命令行,进入apktool文件夹,执行apktool d xxx.apk 目标文件夹
2、生成的目标文件夹有一个叫做“smali”的文件夹,只不过Java文件被.smali的文件取而代之了。
Smali文件其实就是dalvik虚拟机运行的dex字节码文件对应的汇编文件了。
如果你了解Java虚拟机的汇编语言Jasmin的话,你会发现两者的语法非常相似。
如果你想了解更多,可以访问Google Code上Smali项目主页:http://code.google.com/p/smali/ 。
3、资源文件,代码。重新编译打包。打包命令: apktool b 目标文件夹。
这时会在这个文件夹下生成两个文件夹:存放中间文件的文件夹build和存放最后的apk文件的文件夹dist。
4、这个APK文件是还没有签名的,所以无法安装运行。签名我们需要用到的工具是Auto-sign
它主要是利用批处理命令,使用signapk.jar对APK文件进行签名的。你可以用记事本打开Sign.bat,看看它的具体调用关系。关键如下:
java -jar signapk.jar testkey.x509.pem testkey.pk8 update.apk update_signed.apk
5、ok。结束。
---------、Apk反编译得到Java源代码下载上述反编译工具包,打开apk2java目录下的dex2jar-0.0.9.9文件夹,内含apk反编译成java源码工具,以及源码查看工具。
apk反编译工具dex2jar,是将apk中的classes.dex转化成jar文件
源码查看工具jdgui,是一个反编译工具,可以直接查看反编译后的jar包源代码
dex2jar 和 jdgui 最新版本下载,分别见google code:
dex2jar(google code)
jdgui(google code),最新版本请见 官方
具体步骤:
首先将apk文件后缀改为zip并解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的,将classes.dex复制到dex2jar.bat所在目录dex2jar-0.0.9.9文件夹。
在命令行下定位到dex2jar.bat所在目录,运行
dex2jar.bat classes.dex 生成 classes_dex2jar.jar
把classes_dex2jar.jar直接拖进jdgui就能看到java的源代码了