替换APK中的jar包文件

【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中很初步的一个拆包解包的过程,但愿对你们有点帮助吧。

相关文章
相关标签/搜索