Python实现Android Apk 加固及多渠道打包

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011153817/article/details/78351686

前言

道高一尺,魔高一丈。现如今只做混淆的apk,在smali逆向中,可以说是裸奔。鉴于此,各大佬也都针对自己的应用进行了加固处理(加固原理自找度娘),与此同时,市面上各主流平台也都开源推出了自己的应用加固工具,比如360加固助手
我们海豚睡眠就是采用360加固,然后再配合美团新一代打包神器walle,来打渠道包上线的。
基本流程就是:apk包 —-》 360加固 —–》多渠道打包—–》上线
这里有个麻烦的地方,就是360加固助手是可视化操作,而walle是用的shell脚本,每次加固都得打开360加固助手手动选取apk包,那么有没有一种更好的方式来统一操作加固及打包呢?答案是肯定的,经过2天对Python的摸索,现学现卖,终于可以实现如题的功能。

一、Python环境搭建

就这2天的体验的来说,python给个人的感觉就是轻,容易上手,再具体的我也说不上来1234了,各位自行Google。
Python的环境搭建(windows平台)很简单:
1,去Python官网下载:http://www.python.org/
2,选择python-xxxx.msi 文件下载(比如我下载的是python-2.7.13.msi);
3,双击进行安装;
4,安装完成后,记得在path中设置环境变量;
5,配置完成,打开cmd,输入python,有打印版本号等就说明安装成功。

这里写图片描述

二、下载360加固助手

1,加固助手下载地址:http://jiagu.360.cn/qcmshtml/details.html#helper
2,解压双击“360加固助手.exe”:
这里写图片描述

注:这一步的主要目的就是为了帮你通过打开的360加固助手客户端进行账号注册,如果已经有账号,这一步可以略过。

三、下载python打包工具

此工具我取名叫 PythonPackageTool,大家可以直接下载这个压缩包。
下面就这个压缩工具包的部分文件作下简要说明:

1,python脚本 comm_multipackage.py:

这里写图片描述

用Atom等文本编辑工具或 IDEA工具打开 comm_multipackage.py,定位到15行:

# 签名信息相关
keystorePath = os.path.join(baseDir, "xxxxx.keystore")
keystore_alias = "xxxx"
keystore_pass = "xxxx"
key_pass = "xxxxx"

各位记得把上面的签名信息修改为自己应用申请的签名信息。否则会签名失败。

然后再定位至94行:

os.system("java -jar jiagu.jar -login " + _360JiaguUserName + " " + _360JiaguPwd)

各位可以将上面代码中的_360JiaguUserName 与_360JiaguPwd变量修改为自己在360加固助手上注册的账号与密码,这样可省去每次都在命令窗口输入。

扫描二维码关注公众号,回复: 3780381 查看本文章

2,channelFile多渠道配置文件

#百度/91应用商店
P0010C00001
#360应用商店
P0010C00002
#应用宝
P0010C00003

这个没什么可说的,根据美团的来配置就好了,将上面的P****渠道号改成自己的就Ok了。

3,运行脚本

在PythonPackageTool解压目录下,按shift+鼠标右键,在弹出的Dialog中选择:在此处打开命令窗口(M),然后在cmd中输入python comm_multipackage.py 回车,如图:
这里写图片描述

注:如果cmd窗口发现汉字乱码,是因为我的python脚本是用utf-8编码的,这时得把cmd也切换到 utf-8编码:

chcp 65001

或者将comm_multipackage.py文件的头部UTF-8改为GBK:

#!/usr/bin/python
# -*- coding: GBK -*-

运行如图:
360加固

这里写图片描述

这里写图片描述

四、结果

待加固,多渠道打包结束后,apk存放在/mulipackage/cache/apks目录下:
这里写图片描述
这个渠道包的名字前半部分可以修改,比如:DolphinSleep_v1.1.2_release_P0010C00001.apk,前半部分指:* DolphinSleep_v1.1.2_release*
如果想改成别的名字,则在脚本刚开始执行的时候,它有提示* Please Input ApkName!*,你输入的这个名字就是用来对最后的渠道包进行重命名的,如果在开始你没有输入,那它将截取加固apk的apkname进行命名。
这里写图片描述

五、题外话

Python开发工具,大伙可以选择 PythonCharm,
这个PC要激活码,大家可以选择server,然后输入http://idea.imsxm.com/
就可以进行激活了。

猜你喜欢

转载自blog.csdn.net/u011153817/article/details/78351686