【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中很初步的一个拆包解包的过程,希望对大家有点帮助吧。

替换APK中的jar包文件的更多相关文章

  1. 在swt中获取jar包中的文件 uri is not hierarchical

    uri is not hierarchical 学习了:http://blog.csdn.net/zdsdiablo/article/details/1519719 在swt中获取jar包中的文件: ...

  2. 如何制作Jar包并在android中调用jar包

    android制作jar包: 新建android工程,然后右击,点击导出,选择导出类型为Java下的JAR file,在java file specification 中不要选择androidmani ...

  3. Linux下用jar命令更新jar包文件

    jar -uvf SDK_Web_ChartReport.war  view/global/header.jsp echo '样式文件替换进包中'   查看jar包中的文件: jar -tvf SDK ...

  4. SSH中的jar包讲解(1)

    我们在搭建SSH框架的时候,需要引入各自的一些jar包,相信很多初学者跟我一样,搜个资料,照搬过来(当然版本还得对应),至于为什么要引入这些个jar包,引入它们的作用是啥子,一头雾水,今天我就来跟这些 ...

  5. 如何在maven中添加jar包

    Maven 中央仓库地址: 1. http://www.sonatype.org/nexus/ 2. http://mvnrepository.com/ (本人推荐仓库) 3. http://repo ...

  6. 解决eclipse中maven web工程打包成war(发布到tomcar)时lib中没有jar包的解决方法

    可能有两个原因:1.maven中某些jar包下载不下来 从其他地方下载jar文件放到相应maven本地库的.m2里2..classpath文件中缺少(下面代码的作用是制定maven的jar发布路径)& ...

  7. SSH框架应用中常用Jar包用途介绍

    struts2需要的几个jar包:1)xwork-core-2.1.62)struts2-core-2.1.83)ognl-2.7.34)freemarker-2.3.155)commons-io-1 ...

  8. [解决]UserLibrary中的jar包不会自动发布Tomcat的lib目录下(基于MyEclipse2014)

    1.在工程名称上单击[右键] —— 单击[Properties]选项,点击后会弹出属性窗口: 2.选择[Properties]后在左侧树中找到[MyEclipse] —— [Deployment As ...

  9. Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图(转载)

    Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图 2017年04月05日 10:53:13 李学凯 阅读数:104997更多 所属专栏: Intellij Idea   ...

随机推荐

  1. java中使用mysql

    executeUpdate:是最基础的数据库的更新.插入和删除操作.效率低下.executeQuery:是最基础的执行查询语句,同样也是效率低下.execute:兼具上面二者的功能但返回一个boole ...

  2. c++ 创建 socket server

    下面一段代码是创建socket server的代码片段: 需要引用的库包括: #include <sys/types.h> #include <sys/socket.h> #i ...

  3. CentOS安装rpm包时error:Failed dependencies

    CentOS6.5安装rpm包时报错,error:Failed dependencies,解决方法如下: 在安装命令后加两个参数 --nodeps --force ,即安装时不再分析包之间的依赖关系而 ...

  4. Android Virtual Devices代理上网

    本机电脑是使用代理上网,然后要在avd中要连接互联网,设置步骤如下: Click on Menu Click on Settings Click on Wireless & Networks ...

  5. Eclipse HibernateTools安装

    Hibernate Orm是个很强大的东东,可以将数据表映射成实体,EClipse安装了HibernateTools插件后可以生成pojo,配置xml等一系列自动化工作,为我们的开发减轻了很多. 下面 ...

  6. XP极限编程

    13个核心实战  团队协作(Whole Team)  规划策略(The Planning Game) 软件发布计划(ReleasePlanning) 周期开发计划(IterationPlanning) ...

  7. YARN内存使用优化配置

    在Hadoop2.0中, YARN负责管理MapReduce中的资源(内存, CPU等)并且将其打包成Container. 这样可以精简MapReduce, 使之专注于其擅长的数据处理任务, 将无需考 ...

  8. mysql批量修改表引擎

    生成修改的语句 SELECT CONCAT('ALTER TABLE ',table_name,' ENGINE=InnoDB;') FROM information_schema.tables WH ...

  9. PHP Startup: Unable to load dynamic library

    昨天帮一朋友配置服务器结果发现apache日志中有PHP Warning: PHP Startup: Unable to load dynamic library 提示了,然后调试数据库连接发现提示C ...

  10. 个人代码管理--svn

    通常开发中遇到自己电脑和公司电脑代码共享的问题.比如一些通用的库,图片等项目中基本通用. 一些项目库如google code, github内地访问又挺困难的,常常无法连接,或者慢死..还有就是必须开 ...