zoukankan      html  css  js  c++  java
  • 替换APK中的jar包文件

    【Qboy】

    2014年12月21日

          这几天,我第一次做的android游戏(WE!青春纪)马上就要上线。上线之前需要把各个渠道的SDK加入到我们游戏中,与渠道进行联运。但是商务很给力,一下子联系了10多个渠道,让我应接不暇。还好有了AnySDK,可以一键打包。但是问题来了,这帮Any的人太忙了,而渠道的SDK更新太快。所以有些时候就会出现Any中的SDK版本与渠道的版本可能不一致的情况。那怎么办?一种联系AnySDK的人更新(好像没这么快),二是如果只是换一些资源和jar包的,是否可以利用工具进行反编译。现在我把这次的痛苦经历写出来吧。

      主要流程如下图所示:

      

    各个工具是:

    apktool:V2.0.0-RC3

    dex2jar:V0.0.9.15

    smali:V2.0.3

    jdk:1.7

    各个命令分别是:

    1、拆包:apktool d a.apk

    2、jar->dex:d2j-jar2dex.bat xxx.jar 

    3、java -jar baksmali.jar -o classoutput xxx.dex

    4、打包:apktool b a(文件夹)

    5、签名,如果没有特殊要求的签名可以使用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中很初步的一个拆包解包的过程,希望对大家有点帮助吧。

  • 相关阅读:
    vue2 v-model/v-text 中使用过滤器的方法示例
    HTML5游戏开发案例教程合集
    Docker实战案例视频课程
    Java项目框架架构与优化教程
    Linux云计算-虚拟化技术视频教程
    udl
    Chloe官网及基于NFine的后台源码毫无保留开放
    抽象类存在的意义和作用
    Shell 脚本语法
    Github 高级搜索功能
  • 原文地址:https://www.cnblogs.com/qboy/p/4176231.html
Copyright © 2011-2022 走看看