安卓小常识

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

2022-05-27  本文已影响0人  xq9527

前言

为什么要谈这个问题:
故事发生的原因:我这边做了正式的签名后(v1和v2同时勾选,产生正式的apk),拿给后台,后台再对我的apk签名再进行处理(截取部分签名后,然后重新签名,打入渠道号)!最后神奇的现象发生了,经过后台处理后的apk在7.0以下的手机是可以安装的,7.0及以上的手机是不能安装!
这里就不能不重点介绍以下v1和V2签名了:

image.png

这里可以看到:v1签名是对jar进行签名,V2签名是对整个apk签名:官方介绍就是:v2签名是在整个APK文件的二进制内容上计算和验证的,v1是在归档文件中解压缩文件内容。

二者签名所产生的结果:
v1:在v1中只对未压缩的文件内容进行了验证,所以在APK签名之后可以进行很多修改——文件可以移动,甚至可以重新压缩。即可以对签名后的文件在进行处理
v2:v2签名验证了归档中的所有字节,而不是单独的ZIP条目,如果您在构建过程中有任何定制任务,包括篡改或处理APK文件,请确保禁用它们,否则您可能会使v2签名失效,从而使您的APKs与Android 7.0和以上版本不兼容。

google官方最后也说了:一个APK可以同时由v1和v2签名同时签署,所以它仍然可以向后兼容以前的Android版本。

根据实际开发的经验总结:
   一定可行的方案: 只使用 v1 方案
        不一定可行的方案:同时使用 v1 和 v2 方案
        对 7.0 以下一定不行的方案:只使用 v2 方案
   1, 如果要支持 Android 7.0 以下版本,那么尽量同时选择两种签
    名方式,但是一旦遇到签名问题,可以只使用 v1 签名方案
    2,如果需要对签名后的信息做处理修改,那就使用v1签名方案
    3,如果最后遇到各种不同的问题,可以不勾选v1和v2,直接打包签名
上一篇下一篇

猜你喜欢

热点阅读