APK文件使用ApkTool解包反编译和重新打包及签名

前段使用一直使用一个手机APK软件,不过最近软件更新,出现了一个很讨厌的语音提示,于是想通过重新编译把语音提示去掉。

【准备工作】

配置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,然后执行:

cd C:\APK

然后执行:

apktool d apkname.apk foldername

apkname.apk 表示要进行反编译的APK文件
foldername表示反编译后文件存放的目录,即在当前目录下会自动建一个新目录存放(如:C:\APK\foldername)

执行完上面语句后,如果没有出现错误提示,则成功解包了,找到foldername目录,打开smali目录即为反编译出来的字节。

【重新打包】

修改需要改变的文件后,就要重新打包成APK文件了:

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

Related Posts