热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

签名版本之间的区别-V1(JarSignature)和V2(FullAPKSignature)在AndroidStudio中生成签名的apk时?

如何解决《签名版本之间的区别-V1(JarSignature)和V2(FullAPKSignature)在AndroidStudio中生成签名的apk时?》经验,为你挑选了5个好方法。

请至少选择一个要在Android Studio 2.3中使用的签名版本

现在,在Android Studio中生成已签名的apk时,它会在签名的apk生成过程的最后一步中显示两个选项(CheckBox),即1. V1(Jar Signature)和2.`V2(Full APK Signature)'作为签名版本.

**签名版本**选项

那么,在新的Android Studio更新中,这些V1(Jar Signature)V2(Full APK Signature)之间有什么区别?

我应该使用哪个(或两者)来为Play商店发布的apk进行签名?

此外,当我使用第二个选项时,我在安装apk时遇到错误安装Parse Failed No Certificate.



1> Booger..:

这是Android 7.0中引入的一种新签名机制,其附加功能旨在使APK签名更加安全.

这不是强制性的.如果可能,您应该检查这些复选框的两个,但如果新的V2签名机制给您带来问题,您可以省略它.

因此,如果遇到问题,您可以不选中V2,但如果可能的话应该检查它.



2> pRaNaY..:

我应该使用(或两者)签署apk进行游戏商店发布吗? 答案是肯定的.

根据https://source.android.com/security/apksigning/v2.html#verification :

在Android 7.0中,可以根据APK签名方案v2(v2方案)或JAR签名(v1方案)验证APK.较旧的平台忽略v2签名并仅验证v1签名.

我尝试使用检查V2(Full Apk签名)选项生成构建.然后,当我尝试在7.0以下的设备中安装发布版本时,我无法在设备中安装内置版本.

之后我尝试通过检查版本复选框和生成发布版本来构建.然后能够安装构建.



3> Regis_AG..:

这里写的是"默认情况下,Android Studio 2.2和Gradle 2.2的Android插件使用APK签名方案v2和使用JAR签名的传统签名方案签署您的应用程序."

由于似乎这些新的复选框出现在Android 2.3中,我明白我以前的Android Studio版本(至少2.2版)都签了两个签名.所以,为了像以前一样继续,我认为最好同时检查两个复选框.

编辑2017年3月31日:提交了几个带签名的应用程序=>没问题:)



4> zonda..:

我认为这代表了一个很好的答案.

APK签名方案v2验证

    找到APK Signing Block并验证:

      两个大小的字段APK Signing Block包含相同的值.

      ZIP Central Directory紧接着是ZIP End of Central Directory记录.

      ZIP End of Central Directory 没有更多的数据.

    找到第一个APK Signature Scheme v2 Block内部APK Signing Block.如果v2阻止(如果存在),请继续执行步骤3.否则,回退到使用v1方案验证APK.

    对于每个签名者APK Signature Scheme v2 Block:

      从签名中选择最强支持的签名算法ID.强度排序取决于每个实现/平台版本.

      使用公钥验证签名数据签名的相应签名.(解析签名数据现在是安全的.)

      验证摘要和签名中的签名算法ID的有序列表是否相同.(这是为了防止签名剥离/添加.)

      使用与签名算法使用的摘要算法相同的摘要算法来计算APK内容的摘要.

      验证计算的摘要是否与摘要中的相应摘要相同.

      验证SubjectPublicKeyInfo第一个证书证书是否与公钥相同.

    如果找到至少一个签名者并且每个找到的签名者的步骤3成功,则验证成功.

注意:如果在步骤3或4中发生故障,则不得使用v1方案验证APK.

JAR签名APK验证(v1方案)

JAR签名的APK是标准的签名JAR,它必须包含所列条目,META-INF/MANIFEST.MF并且所有条目必须由同一组签名者签名.其完整性经过验证如下:

    每个签名者由一个META-INF/.SFMETA-INF/.(RSA|DSA|EC)JAR条目表示.

    .(RSA|DSA|EC)是一个PKCS #7 CMS ContentInfo带有SignedData结构,其签名是通过.SF文件验证的.

    .SFfile包含META-INF/MANIFEST.MF每个部分的摘要和摘要的整个文件摘要META-INF/MANIFEST.MF.MANIFEST.MF验证了整个文件摘要.如果失败,MANIFEST.MF则会验证每个部分的摘要.

    META-INF/MANIFEST.MF对于每个受完整性保护的JAR条目,包含相应命名的部分,其中包含条目未压缩内容的摘要.所有这些摘要都经过验证.

    如果APK包含未在MANIFEST.MFJAR签名中列出且不属于JAR签名的JAR条目,则APK验证将失败.因此,保护链是.(RSA|DSA|EC).SFMANIFEST.MF每个完整性保护的JAR进入→内容.



5> Shirish Herw..:

根据此链接:签名帮助

APK签名方案v2提供:

    更快的应用安装时间

    提供更多保护,防止未经授权更改APK文件。

Android 7.0引入了APK签名方案v2,这是一种新的应用程序签名方案,可提供更快的应用程序安装时间,并提供更多保护,防止未经授权擅自更改APK文件。默认情况下,Android Studio 2.2和适用于Gradle 2.2Android插件使用 APK签名方案v2和使用JAR签名的传统签名方案对您的应用进行签名。

这是推荐使用APK签名方案v2的,但不是强制性的

尽管我们建议将APK签名方案v2应用于您的应用,但这不是强制性的新方案。如果使用APK签名方案v2时您的应用无法正确构建,则可以禁用新方案。


推荐阅读
  • 本文详细介绍了如何使用OpenSSL自建CA证书的步骤,包括准备工作、生成CA证书、生成服务器待签证书以及证书签名等过程。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • POJ 2482 星空中的星星:利用线段树与扫描线算法解决
    在《POJ 2482 星空中的星星》问题中,通过运用线段树和扫描线算法,可以高效地解决星星在窗口内的计数问题。该方法不仅能够快速处理大规模数据,还能确保时间复杂度的最优性,适用于各种复杂的星空模拟场景。 ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • 深入解析 OpenSSL 生成 SM2 证书:非对称加密技术与数字证书、数字签名的关联分析
    本文深入探讨了 OpenSSL 在生成 SM2 证书过程中的技术细节,重点分析了非对称加密技术在数字证书和数字签名中的应用。非对称加密通过使用公钥和私钥对数据进行加解密,确保了信息传输的安全性。公钥可以公开分发,用于加密数据或验证签名,而私钥则需严格保密,用于解密数据或生成签名。文章详细介绍了 OpenSSL 如何利用这些原理生成 SM2 证书,并讨论了其在实际应用中的安全性和有效性。 ... [详细]
  • 本文详细探讨了在ASP.NET环境中通过加密数据库连接字符串来提升数据安全性的方法。加密技术不仅能够有效防止敏感信息泄露,还能增强应用程序的整体安全性。文中介绍了多种加密手段及其实施步骤,帮助开发者在日常开发过程中更好地保护数据库连接信息,确保数据传输的安全可靠。 ... [详细]
  • 深入解析HTTPS:保障Web安全的加密协议
    本文详细探讨了HTTPS协议在保障Web安全中的重要作用。首先分析了HTTP协议的不足之处,包括数据传输过程中的安全性问题和内容加密的缺失。接着介绍了HTTPS如何通过使用公钥和私钥的非对称加密技术以及混合加密机制,确保数据的完整性和机密性。最后强调了HTTPS的安全性和可靠性,为现代网络通信提供了坚实的基础。 ... [详细]
  • DRF框架中Serializer反序列化验证机制详解:深入探讨Validators的应用与优化
    在DRF框架的反序列化验证机制中,除了基本的字段类型和长度校验外,还常常需要进行更为复杂的条件限制校验。通过引入`validators`模块,可以实现自定义校验逻辑,如唯一字段校验等。本文将详细探讨`validators`的使用方法及其优化策略,帮助开发者更好地理解和应用这一重要功能。 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • 深入解析JWT的实现与应用
    本文深入探讨了JSON Web Token (JWT) 的实现机制及其应用场景。JWT 是一种基于 RFC 7519 标准的开放性认证协议,用于在各方之间安全地传输信息。文章详细分析了 JWT 的结构、生成和验证过程,并讨论了其在现代 Web 应用中的实际应用案例,为开发者提供了全面的理解和实践指导。 ... [详细]
  • 小程序的授权和登陆
    小程序的授权和登陆 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 在Android 4.4系统中,通过使用 `Intent` 对象并设置动作 `ACTION_GET_CONTENT` 或 `ACTION_OPEN_DOCUMENT`,可以从相册中选择图片并获取其路径。具体实现时,需要为 `Intent` 添加相应的类别,并处理返回的 Uri 以提取图片的文件路径。此方法适用于需要从用户相册中选择图片的应用场景,能够确保兼容性和用户体验。 ... [详细]
  • 尽管存在唯一列,仍显示“当前选择不包含唯一列。网格编辑、复选框、编辑、复制和删除功能不可用”的消息。 ... [详细]
author-avatar
Eliza
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有