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的摘要,包括三个部分:

扫描二维码关注公众号,回复: 15173238 查看本文章
  • SHA1-Digest-Manifest-Main-Attributes:对 MANIFEST.MF 头部的块做 SHA1(或者SHA256)后再用 Base64 编码

  • SHA1-Digest-Manifest:对整个 MANIFES

猜你喜欢

转载自blog.csdn.net/u011068702/article/details/130159275