您现在的位置是:首页 >技术交流 >Android之用新的签名文件对apk进行V3打包(apksigner命令方式)来解决签名不一致的升级问题网站首页技术交流

Android之用新的签名文件对apk进行V3打包(apksigner命令方式)来解决签名不一致的升级问题

码莎拉蒂 . 2023-05-18 00:00:02
简介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

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。