【Qboy】java
2014年12月21日android
这几天,我第一次作的android游戏(WE!青春纪)立刻就要上线。上线以前须要把各个渠道的SDK加入到咱们游戏中,与渠道进行联运。可是商务很给力,一会儿联系了10多个渠道,让我目不暇接。还好有了AnySDK,能够一键打包。可是问题来了,这帮Any的人太忙了,而渠道的SDK更新太快。因此有些时候就会出现Any中的SDK版本与渠道的版本可能不一致的状况。那怎么办?一种联系AnySDK的人更新(好像没这么快),二是若是只是换一些资源和jar包的,是否能够利用工具进行反编译。如今我把此次的痛苦经历写出来吧。工具
主要流程以下图所示:spa
各个工具是:命令行
apktool:V2.0.0-RC3blog
dex2jar:V0.0.9.15游戏
smali:V2.0.3资源
jdk:1.7get
各个命令分别是:it
一、拆包:apktool d a.apk
二、jar->dex:d2j-jar2dex.bat xxx.jar
三、java -jar baksmali.jar -o classoutput xxx.dex
四、打包:apktool b a(文件夹)
五、签名,若是没有特殊要求的签名可使用dex2jar集合中的d2j-apk-sign进行签名,若是本身有签名那使用jarsigner进行签名。
签名的命令行:jarsigner -verbose -keystore (keystore文件) -signedjar a.apk(签名输出的apk名) -digestalg SHA1 -sigalg MD5withRSA game.apk(输入apk) alias(别名)。
ps:特别要注意标红的那部分,若是jdk7须要加这个,若是不加签名后的包没法进行安装。jdk加上也不会出错,因此建议加上。
以上,只是我第一次对apk中很初步的一个拆包解包的过程,但愿对你们有点帮助吧。