原文:APK文件使用ApkTool解包反编译和重新打包及签名
地址:http://429006.com/article/technology/3420.htm
1. 准备工作:
配置JAVA环境,到http://www.java.com/下载并进行安装,如已安装的可忽略
APKTool下载地址:https://code.google.com/p/android-apktool/downloads/list
Windows下只需要下载这两个文件包即可:
apktool1.5.2.tar.bz2和apktool-install-windows-r05-ibot.tar.bz2
分别解压到到一个方便操作的目录下,然后就可以通过控制台进行操作了
- 解包/反编译
把要反编译的APK文件放到跟APKTool四个文件的同一个目录(例如C:APK);
点击“开始”--“运行”,输入cmd,然后执行:
C:UsersAdministrator>D:
D:>cd D:工具apktool //apktool解析包所在的路径
D:工具apktool>
然后执行:
D:工具apktool>apktool d apkname.apk foldername
apkname.apk 表示要进行反编译的APK文件
foldername表示反编译后文件存放的目录,即在当前目录下会自动建一个新目录存放(如:C:APKfoldername)执行完上面语句后,如果没有出现错误提示,则成功解包了,找到foldername目录,打开smali目录即为反编译出来的字节。
- 重新打包
修改需要改变的文件后,就要重新打包成APK文件了:
D:工具apktool>apktool b foldername new.apk
其中foldername即放反编译结果的目录,执行成功后会在该目录的dist目录下有一个重新打包后的apk文件。
到此就成功打包了一个新的apk文件了,但还不要高兴得太早,该文件是一个没有签名的apk,有了解过android的应该都知道,没有签名是无法安装的。那就要重新为该文件签一下名了。
- 签名
签名我们需要用到的工具是Auto-sign。它主要是利用批处理命令,使用signapk.jar对APK文件进行签名的。
把new.apk文件复制到签名软件的目录下,再用记事本打开Sign.bat,将其修改为如下代码:
java -jar signapk.jar testkey.x509.pem testkey.pk8 new.apk new_signed.apk
最后双击一下Sign.bat即可签名完成,
签名后的APK文件就可以在模拟器或者Android机器上安装了。
Auto-sign下载地址:
http://pan.baidu.com/share/link?shareid=60884&uk=1227037436
或者可以使用AndroidResEdit进行图形化操作的签名
http://pan.baidu.com/share/link?shareid=558520&uk=1043662865