使用Python给apk包签名

出于安全性的考虑,我们release版的apk包要使用阿里聚安全给加固一下。但是加固完了下载来后居然又需要重新签名了!而且这次签名要输入一大串的命令,还很容易出错!以后每次发版都要这么来一遍吗?作为懒人就坚决不能忍受这种重复劳动的。最近研究了一下Python,正好让Python来帮助我们完成这些重复的劳动吧。

1.下载加固后的包

把编译好的包上传到阿里聚安全加固后下载下来经过加固的包,和keystore文件都放在同一个文件夹里

2.编写Python命令

新建一个Python文件sign.py,写入以下命令:

1
2
3
4
5
6
7
8
import os

path="C:\EnHancement\\" #改为你存放apk包和keystore的目录
v = raw_input("Please input version:")
cmd = "jarsigner -digestalg SHA1 -sigalg MD5withRSA -verbose -keystore %sandroidkey.keystore -signedjar signed%s.apk %sunSigned.apk carsmart" %(path,v,path)
os.system(cmd)
#防止程序运行完后直接关闭
raw_input()

上面需要将signed和unSigned分别改为签名后和签名前的包名。

3.打包成exe文件

Python代码写好了,如果给别的没有装Python环境小伙伴用很不方便啊,继续打包成exe文件吧,这样在Windows环境下就都能运行了。

  • 下载pyinstall并解压
  • 下载pywin32根据自己电脑的型号和python的版本号下载最新的安装包并安装。
  • 将sign.py文件放入到pyinstall解压后的根目录里面
  • 在pyinstall根目录里按Shift+右键,打开命令窗口输入命令python pyinstaller.py -F sign.py在当前目录下的sign/dist目录里有个sign.exe,双击运行输入打包的版本号和密码后就会在当前目录下新建一个签过名的apk了。