签名状态 V1+V2+V3 表示应用采用了 Android 系统中的三种签名方案,即 V1(基于 JAR 签名)、V2(全文件签名)和 V3(支持密钥轮换的签名)。每种签名方案都有其特点和作用,结合使用可以在不同 Android 版本上提供更好的兼容性、安全性和功能。
V1 签名是 Android 早期的签名方案,基于 JAR 签名。它会在 APK 文件中增加 META-INF 文件夹,包含相关的签名文件,用于验证应用的完整性和来源。但 V1 签名存在一些局限性,如完整性覆盖范围不足和验证性能较差。
V2 签名是在 Android 7.0 中引入的全文件签名方案。它通过在 APK 的源文件数据存储区和中心目录区插入 APK 签名分块(APK Signing Block),提高了验证性能和覆盖范围,能够发现对 APK 受保护部分的所有更改。并且,V2 签名不再以单个文件为单位计算摘要,而是以 1MB 为单位将文件分割为多个块进行摘要计算,加快了验证速度。
V3 签名则是在 Android 9.0 中引入的。它在 V2 的基础上,支持密钥轮换,即在签名部分可以添加新的证书。通过在新块(attr)中记录之前的签名信息和新的签名信息,只要旧签名证书在手,应用能够在 APK 更新过程中更改其签名密钥,增加了签名的灵活性和安全性。
同时使用这三种签名方案,可以确保应用在不同 Android 版本上的正常安装和运行。较新的 Android 系统会优先尝试使用更高版本的签名方案进行验证,而旧版本的系统则可以使用 V1 签名进行验证,从而实现了较好的兼容性。这样可以在保障应用安全性和完整性的同时,适应不同 Android 设备和系统版本的需求。
对于开发者来说,采用 V1+V2+V3 的签名方式可以提高应用的安全性和稳定性,减少被恶意篡改或破解的风险,也能确保应用在各种 Android 设备上的正常安装和更新。对于用户而言,这有助于保证所安装的应用来自可信的开发者,并且应用在传输和安装过程中没有被非法修改,保护了用户的设备安全和个人信息安全。
04-01