Mac环境下Android APK包反编译详解

1、为何须要对APK包进行反编译java

公司原有的一个产品包括Android以及iOS两个版本,Android的源码不当心遗失了。可是当前这个产品又须要针对某个潜在客户作一些定制化,重建Android项目看来是必由之路了--总不能再开发一遍吧 :)。还好当时发布APK包的时候没有对代码作混淆,有救了!android


2、开发环境git

如下是我当前使用的开发环境:github

操做系统:Mac OS 10.8.4工具

Android开发环境:ADTui

因为我使用的是Mac系统,接下来介绍的步骤部分都是Mac系统相关的。对于Windows或者Linux的反编译步骤,你们能够参照如下。(从个人观点看,步骤仍是基本相同的)google


3、反编译步骤操作系统

下面就直接列举如下反编译APK文件的详细步骤及方法:

第一步:.net

在电脑中建立一个新的目录并将待反编译的APK文件放到该目录中。 将APK文件把文件后缀从.apk改为.zip,接下来将.zip文件解压。在解压出来的目录中你能够获得classes.dex这个文件。到此为止,你已经能够看到一些图形资源,可是xml文件以及java源代码文件尚未。 因此,得继续加油!code


第二步:

从如下连接下载dex2jar,并把下载下来执行文件拷贝到.zip文件的解压目录。 打开Terminal并切换到.zip的解压目录,在Terminal中输入 ./d2j-dex2jar.sh classes.dex,按回车键后,在.zip解压目录会生成一个classes.dex.dex2jar文件。 接着经过如下连接下载Mac版的jdgui工具。下载完工具后双击改工具,运行工具后选择打开文件以打开咱们刚生成的classes.dex.dex2jar.jar文件。经过在jd-gui中选中File->Save All Sources便可以将全部的class保存成java源代码文件。 到此咱们已经获得想要的Java源代码了,可是解出来的XML文件仍是不可读,还得继续努力!


第三步:
再建立一个新的目录,并在该目录中执行如下操做:

一、将须要反编译的.apk文件放到该目录

二、下载apktool v1.x以及Mac版的apktool install mac到该目录

三、下载framework-res.apk文件到该问路(并非全部的待反编译的APK文件都须要framework-res.apk文件)

四、打开Terminal窗口

五、在Terminal中定位到该目录并运行如下命令:./apktool if framework-res.apk

六、在Terminal中再输入以下命令:./apktool d "myapkname".apk。 注:myapkname为你须要转换的apk包名称

执行完命令后,在新目录中找到新建立的 "myapkname" 目录,在该目录中你将获得可读的AndroidManifest.xml以及各类drawable资源。


第四步:

接下来就是将第二步以及第三步获得的Java原文件、资源文件放到同一目录,配置项目依赖jar包。。。


4、引用地址:
http://stackoverflow.com/questions/3593420/android-getting-source-code-from-an-apk-file


5、其余参考文章:
Windows环境下Android反编译详解
http://blog.csdn.net/ithomer/article/details/6727581


6、参考资源下载链接:
dex2jar:
http://code.google.com/p/dex2jar/
jdgui:
http://java.decompiler.free.fr/?q=jdgui
android-apktool:
https://code.google.com/p/android-apktool/downloads/list

工具包集合:

http://download.csdn.net/detail/missautumn/6022245

相关文章
相关标签/搜索