目前没有找到完美的解决方案,能够把apk直接编译成原始文件夹
下面两种侧重点
一、编译源文件
A、基本工具 dex2jar、JD-GUI
下载地址:
dex2jar下载地址:http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip
JD-GUI下载地址:
windows版JD-GUI:http://laichao.googlecode.com/files/jdgui.zip
Linux版JD-GUI:http://laichao.googlecode.com/files/jd-gui-0.3.2.linux.i686.tar.gz
B、编译步骤
1.首先找到Android软件安装包中的classes.dex
把apk文件改名为.zip,然后解压缩其中的classes.dex文件,它就是java文件编译再通过dx工具打包成的,所以现在我们就用上述提到的2个工具来逆方向导出java源文件
2、把classes.dex拷贝到dex2jar.bat所在目录。
windows系统下:在命令行模式下定位到dex2jar.bat所在目录,运行 dex2jar.bat classes.dex ,生成classes.dex.dex2jar.jar
Ubuntu系统下:在终端下定位到dex2jar.sh所在目录,运行
sh dex2jar.sh classes.dex 则可生成classes.dex.dex2jar.jar
3.运行JD-GUI工具(它是绿色无须安装的)
打开上面的jar文件,即可看到源代码
二、编译资源文件
A、编译工具
android-apktool
访问http://code.google.com/p/android-apktool/
下载apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip两个包 (现在版本有更新,下载最新的就是)
apktool-1.0.0.tar.bz2解压出来apktool.jar
apktool-install-windows-2.1_r01-1.zip解压出来aapt.exe和apktool.bat,将这三个文件放到一个目录,加入系统环境变量。
B、编译步骤
1、apktool d “C:\LiveWallpapersPicker.apk” “C:\LiveWallpapersPicker”
将apk编译成资源,输出到文件夹
2、apktool b “C:\LiveWallpapersPicker” target.apk
将文件夹编译出来的资源重新编译成apk
这样的一个重要用途是,如果对于某些网上下载的应用,你可以修改其背景颜色布局等,做基本的定制化操作。
3、签名
//aapt apktool apktool.jar libhgl.so README signapk.jar Sign.bat testkey.pk8 testkey.x509.pem xxx.apk xxx
java -jar signapk.jar testkey.x509.pem testkey.pk8 xxx1.apk xxx.apk
adb install -r shenqi_sign.apk