您现在的位置是:首页 >技术交流 >Android之用新的签名文件对apk进行V3打包(apksigner命令方式)来解决签名不一致的升级问题网站首页技术交流
Android之用新的签名文件对apk进行V3打包(apksigner命令方式)来解决签名不一致的升级问题
简介Android之用新的签名文件对apk进行V3打包(apksigner命令方式)来解决签名不一致的升级问题
一、问题
我们app需要使用的的签名文件,但是之前的apk都是老签名文件,如果是采用v1和v2方式打包,我们知道升级覆盖安装会提示签名匹配安装失败。
二、v1、v2、v3签名原理
Android 目前支持以下四种应用签名方案:
-
v1 方案:基于 JAR 签名。
-
v2 方案:APK 签名方案 v2(在 Android 7.0 中引入)
-
v3 方案:APK 签名方案 v3(在 Android 9 中引入)
-
v4 方案:APK 签名方案 v4(在 Android 11 中引入)
1、v1签名
就是jar签名,apk最初的签名方式,大家都很熟悉了,签名完之后是META-INF 目录下的三个文件:MANIFEST.MF、CERT.SF、CERT.RSA。
MANIFEST.MF
MANIFEST.MF中是apk种每个文件名称和摘要SHA1(或者 SHA256),如果是目录则只有名称
CERT.SF
CERT.SF则是对MANIFEST.MF的摘要,包括三个部分:
-
SHA1-Digest-Manifest-Main-Attributes:对 MANIFEST.MF 头部的块做 SHA1(或者SHA256)后再用 Base64 编码
-
SHA1-Digest-Manifest:对整个 MANIFES
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。