浏览文章

文章信息

Apk解包、APK反编译、编辑、打包、签名|apktool.jar、signapk.jar、baksmali.jar 17421

一、解包


cd 到apktool所在目录:

java    -jar    .\apktool_2.3.3.jar   d   .\<apk名>.apk   -o   <输出目录名>


例如:D:\apktool目录下(目录内文件列表:apktool_2.3.3.jar,jxqy.apk,signapk.jar,platform.x509.pem   platform.pk8)

D:\apktool>java -jar .\apktool_2.3.3.jar d .\jxqy.apk -o jxqy



注意: .\<apk名>.apk 是apk所在位置 


二、编辑(可选)


如果要编辑classes.dex文件则需要转码

转换源码......

使用baksmali工具将classes.dex转为smali文件,在cmd窗口输入:java -jar 绝对路径\baksmali-2.0.3.jar -x classes.dex

执行完后会生成out目录,目录结构跟源码相同,在对应目录下查找对应的smali文件。如果找不到,把整个out文件夹放到编辑器里搜索即可。

编辑......

coding

编译源码......

使用smali-2.0.3.jar工具把smali文件转为dex文件,cmd中输入命令: java -jar 绝对路径\smali-2.0.3.jar -o classes.dex out


三、打包


java    -jar    .\apktool_2.3.3.jar   b    .\<输出目录名>\


例如:D:\apktool目录下(目录内文件列表:apktool_2.3.3.jar,jxqy.apk,signapk.jar,platform.x509.pem   platform.pk8)

D:\apktool>java -jar .\apktool_2.3.3.jar b .\jxqy


注意:这里的<输出目录名>是解包的目录名

认真看这里:在 <输出目录名>\dist下将看到打包成功的apk包,拷贝出来,替换掉原来的jxqy.apk(当然,入宫你想保留原来的apk文件,就把旧文件,重命名就可以了)


四、签名


使用签名工具对apk进行签名,把apk拷贝到资源根目录下的sign_tool目录,cmd中输入命令:

    java   -jar   .\signapk.jar   platform.x509.pem   platform.pk8   <apk名>.apk   <apk名1.0.1>.apk

    执行完后会在该目录下生成<apk名1.0.1>.apk文件,这个文件就是最终的文件了

例如:D:\apktool目录下(目录内文件列表:apktool_2.3.3.jar,jxqy.apk,signapk.jar,platform.x509.pem   platform.pk8)

D:\apktool>java -jar .\signapk.jar platform.x509.pem   platform.pk8 jxqy.apk jxqy_signed.apk

jxqy_signed.apk :已经签名的apk


原创