android简单的加壳流程

来源:互联网 发布:编程入门视频 编辑:程序博客网 时间:2024/05/16 14:31

先简单介绍下加壳的需求吧,比如一款游戏需要计费处理,如果不想游戏内部改动的话,只能通过加壳去处理。在壳apk的代码流程中进行用户鉴权和业务鉴权(即计费处理相关),如果鉴权通过则放开游戏入口,否则提示用户去购买。

提一下加壳所需要的工具吧

1.apktool,自己百度可以下载一个

2.壳apk

3.待加壳apk

下面开始我们的加壳流程。

1.将壳apk和待加壳的游戏apk都放到apktool目录下面,shell.apk就是我们的壳apk,上面一个就是游戏的apk


2.在这个目录下打开命令行并使用apktool d 的命令反编译这两个apk,可以得到对应的两个apk的文件夹。


3.将壳apk对应的目录中的一些资源copy到游戏包体中。

a)将res/raw目录下的资源复制过去,因项目需要odin_plugin_tvshell_1x2x3.apk需要放到游戏目录的assets目录下,并增加一个odin的寻址文件(华为需求大笑

addressing的内容就是放入assets目录下的apk的名字:odin_plugin_tvshell_1x2x3.apk。如果壳apk有assets目录,也需要将其中的资源复制过去。



b)将smali这个文件夹复制到游戏对应目录下(如有重复的请完全覆盖)


c)修改游戏的AndroidManifest文件

将壳apk的AndroidManifest打开,将其中的权限全部复制到游戏的AndroidManifest中,然后在游戏Manifest中的application节点下添加壳Manifest对应的application节点下的信息,最后再把Launcher改为壳activity的启动页就可以了,这样启动游戏就会先走壳中的代码逻辑。

d)回编译游戏apk,执行apktool b 命令,如下图所示,dist目录下就是我们加完壳后的游戏apk了。


f)dist目录下的apk不能直接安装,还需要自己去签名一下才可以安装使用


以上就是加壳的大概流程了,亲测有效!


0 0
原创粉丝点击