Android 签名时 v2 与 v1 的选择

Posted 杨筱毅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 签名时 v2 与 v1 的选择相关的知识,希望对你有一定的参考价值。

注:对于 v2 与 v1 的对比不在此文讨论范围


结论:

  • 一定可行的方案: 只使用 v1 方案
  • 不一定可行的方案:同时使用 v1 和 v2 方案
  • 对 7.0 以下一定不行的方案:只使用 v2 方案
PS:
    如果要支持 android 7.0 以下版本,那么尽量同时选择两种签
    名方式,但是一旦遇到签名问题,可以只使用 v1 签名方案

签名打包时签名版本(Signature Versions)的选择

参考链接:https://source.android.com/security/apksigning/v2#verification

在 Android 7.0 以上版本的设备上,APK 可以根据Full Apk Signature(v2 方案) 或者 JAR-signed( v1方案)进行验证;
而对于7.0以下版本的设备其会忽略 v2 版本的签名,只验证 v1 签名

如图所示:

真机测试:
    三个包
        1、only_v2:
            只使用 v2 方案进行签名
            预计只能安装在 7.0 以上设备;7.0 以下设备会显示签名失败
        2、only_jar_sigh:
            只使用 jar_sigh(即 v2 方案)进行签名
            预计能安装在所有设备上
        3、both_jar_and_v22:
            同时使用 v1 和 v2 两种签名方式
            预计一般能正常安装在普通手机上,某些设备可能无法正常安装
    三台设备:
        Nexus 5X:
            Android 版本:8.0.0
        Le X820:乐视手机
            Android 版本:6.0.1
        红米1:
            Android 版本:4.4.2
    安装测试:
    1、分别将 1、2、3 包安装到 Nexus 5X 上,都能正常安装与启动
    2、将1 包尝试安装到 Le X820 上,安装不成功;2、3 安装成功
    3、将1 包尝试安装到红米1上,安装不成功;2、3 安装成功

安装失败时提示:

安装成功时提示:

以上是关于Android 签名时 v2 与 v1 的选择的主要内容,如果未能解决你的问题,请参考以下文章

在 Android Studio 中生成签名 APK 时签名版本之间的区别 - V1(Jar 签名)和 V2(完整 APK 签名)?

怎么破v1加v2的签名

缺少 Android Studio 签名 v1 或 v2

android v1签名和v2签名的区别和注意点

Android V1及V2签名原理简析

Android V1签名与校验原理分析(全网最全最详细)