python 实现APP批量打包

相信各家APP推广时都有渠道号的概念,目前比较常用的两种方式:1、用studio的gradle已经提供的动态替换代码或配置文件中的变量,2、先打好一个apk母包,然后向META-INF目录中写空文件,文件名作为渠道号,不需要做重签名;第2种方式 不确定谷歌以后会修复该问题,但第二种方式确实效率最高的,我们可以利用第二种方式做一下改版,既要利用母包为基础的效率,又能够动态修改代码中的某些开关变量,由于APP存在付费推广,所以渠道号放在配置文件中一定要加密,这里我们选择RSA加密,公钥放在APP代码中,私钥放在渠道打包工具中,如果私钥不泄露别人拿到APP包后无法修改渠道号也无法伪造,接下来看打包工具的实现方式,平时使重复工作进行程序化处理选择python是最好的。

渠道配置文件名格式:渠道名.ini,内容:

channel=xxxxxxxxxxxxxxxx

参数A=xxxxx

参数B=xxxxx

python打包工具会将上面内容生成json并RSA加密放到assets目录下,在APP启动时解析(省略)

#coding:utf-8
import sys
#sys.path.append(sys.path[0] + "/lib/")

import os
import json
import time
import M2Crypto
from Crypto.PublicKey import RSA
import base64
import sys


#私钥加密,公钥解密
def encrypt_pri(msg, file_name):
	rsa_pri = M2Crypto.RSA.load_key(file_name)
	enData = rsa_pri.private_encrypt(msg, M2Crypto.RSA.pkcs1_padding) 
	data = base64.b64encode(enData) 
	return data
	

curPath = sys.path[0] #当前运行程序所在目录
srcApkPath = sys.argv[1] #母包APK全路径
outPath = sy
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值