经过前面的铺垫,今天我们要进入一个很实用的环节,那就是修改包体里原有的信息,然后进行回编,如果不知道如何修改包体内容和回编的同学可以学习下。
很多人对这项技术有个印象不好的误区,那就是学会了我可以任意修改别人的包,把别人的变成自己的,当然,你要非那么做小编我也是很无奈的,但这是个法治社会。实际上我所用到的,基本都是出于更加便捷的对游戏进行大规模的分包或者大量的出渠道包的需求。比如:你们的游戏上线了,老板让你们出10个广告包进行不同平台的广告投放,实际上这10个包只是个别记录包体信息的少量参数在变动,比如折10个包的appid从1到10等。这时候你要是一咬牙挨个改参数,一个一个出也是可以的,但是游戏要是很火,老板让你出200个广告包,1000个广告包呢。小编最近在做的就是在apktool的基础上开发了分包工具,一键解包,改参数,回编。然后喝茶上网坐等出包,岂不是很爽...
从理论上讲,我们是可以修改包体里的任何内容的,但是实际上你懂得,真想做到这个程度你自己也要付出很大的代价,所以我们只讲一下比较基础,也是比较实用的。
1.解包,之前已经讲过,这里就不多说了,不明白的请翻看历史,打开解包后的目录
(对于新版本Android包有可能解包或回编失败,这时需要下载不同版本apktool试一下)
2.可以看到这里有一个AndroidManifest.xml文件,稍微了解Android的同学都知道,apk的包名,应用名,版本号等信息都可以在这里找到。
3.打开这个文件,找到包名和应用名
4.修改包名(这里应用名等参数也都是可以修改的)
5.修改应用icon,进入res目录,找到如下文件夹
这里面都存储了适应不同尺寸屏幕的icon
用同名文件替换掉,替换后的效果
(原谅我随便截了一张图,这不是重点=_=!)
6.回编apk
apktool b 目录名
dist目录下生成了非签名的apk,复制到根目录,起名new.apk
此时是不能直接安装的,会安装错误,要签名后才能安装
7.签名
jarsigner -keystore 签名文件 -signedjar 签名后apk名字 签名前apk名字 alias
8.安装signed.apk
修改成功
总结:解包后目录里的资源理论上都是可以替换重编的,大家可以根据需求修改。