上一节介绍到多渠道打包的快速,他是如何如此迅速的完成打包的?
一.APK签名介绍:
1.APK 签名方案
Android 支持以下三种应用签名方案:
- v1 方案:基于 JAR 签名。
- v2 方案:APK 签名方案 v2(在 Android 7.0 中引入)。
- v3 方案:APK 签名方案 v3(在 Android 9 中引入)。
为了最大限度地提高兼容性,请按照 v1、v2、v3 的先后顺序采用所有方案对应用进行签名。与只通过 v1 方案签名的应用相比,还通过 v2+ 方案签名的应用能够更快速地安装到 Android 7.0 及更高版本的设备上。更低版本的 Android 平台会忽略 v2+ 签名,这就需要应用包含 v1 签名。
2. V1签名:是一个基于JAR的签名,保护ZIP中的文件
首先我们找一个已经签名的apk文件,修改后缀名为zip,然后解压。可以看到里面有一个META-INF文件夹,里面就是签名验证的文件。有三个文件MANIFEST.MF、CERT.SF、CERT.RSA分别保存着不同的签名信息。
2.1 MANIFEST.MF文件
apk在安装的时候,会根据文件内容计算出对应的SHA-256校验码,如果生成的校验码与MANIFEST.MF中的信息不符,则安装失败。
2.2 CERT.SF文件
除了保存APK所有文件的名称和校验码之外,还保存了MANIFEST.MF文件的校验码。
2.3 CERT.RSA文件
签名的时候需要给一个证书,证书里面有公钥和私钥。
RSA文件的内容就是:使用私钥计算CERT.SF文件的数字签名 + 包含公钥的证书。