web-dev-qa-db-fra.com

différence entre les versions de signature - V1 (Jar Signature) et V2 (Signature complète APK) lors de la génération d'un apk signé dans AndroidStudio?

Veuillez sélectionner au moins une des versions de signature à utiliser dans Android Studio 2.3

Maintenant, tout en générant un apk signé dans Android Studio, il affiche deux options (CheckBox), à savoir 1. V1(Jar Signature) et 2. `V2 (Signature complète de l'APK) 'en tant que Signature Versions à la dernière étape du processus de génération d’apk signé.

**Signature Versions** options

Alors, quelle est la différence entre ces V1 (Signature du récipient) et V2 (Signature complète de l'APK) dans la nouvelle Android Studio Update?

Et qui dois-je utiliser (ou les deux) pour signer un apk pour la sortie du Play Store?

En outre, je reçois une erreur . L'installation de l'analyse n'a pas échoué. Aucun certificat lors de l'installation d'apk lorsque j'utilise une deuxième option.

209
Shirish Herwade

Il s'agit d'un nouveau mécanisme de signature introduit dans Android 7.0, avec des fonctionnalités supplémentaires conçues pour sécuriser davantage la signature APK.

Ce n'est pas obligatoire. Vous devriez cocher ces deux cases si possible, mais si le nouveau mécanisme de signature de la V2 vous pose problème, vous pouvez l'omettre.

Donc, vous pouvez simplement laisser la V2 décochée si vous rencontrez des problèmes, mais vous devriez la faire vérifier si possible.

200
Booger

Devrais-je utiliser (ou les deux) pour signer apk pour la sortie du Play Store? Une réponse est OUI.

Selon https://source.Android.com/security/apksigning/v2.html#verification :

Dans Android 7.0, les fichiers APK peuvent être vérifiés selon le schéma de signature APK v2 (schéma v2) ou la signature JAR (schéma v1). Les anciennes plates-formes ignorent les signatures v2 et ne vérifient que les signatures v1.

J'ai essayé de générer la construction avec la vérification V2 (Full Apk Signature) option. Ensuite, lorsque j'ai essayé d'installer une version de version inférieure 7.0 ci-dessous, je ne parviens pas à installer la version correspondante.

Après cela, j'ai essayé de construire en cochant les cases de version et de générer la version finale. Puis capable d'installer build.

40
pRaNaY

Il est écrit ici que "Par défaut, Android Studio 2.2 et le Android Plugin pour Gradle 2.2 signent votre application à l'aide de l'AK Signature Scheme v2 et du logiciel traditionnel. schéma de signature, qui utilise la signature JAR. "

Comme il semble que ces nouvelles cases à cocher soient apparues avec Android 2.3, je comprends que mes versions précédentes de Android Studio (au moins la version 2.2) ont signé avec les deux signatures. Donc, pour continuer comme avant, je pense qu'il est préférable de cocher les deux cases.

EDIT le 31 mars 2017: a soumis plusieurs applications avec les deux signatures => aucun problème :)

21
Regis_AG

Je pense que ceci représente une bonne réponse.

APK Signature Scheme v2 vérification

  1. Localisez le APK Signing Block et vérifiez que:
    1. Deux champs de taille de APK Signing Block contiennent la même valeur.
    2. Zip Central Directory est immédiatement suivi de l'enregistrement Zip End of Central Directory.
    3. Zip End of Central Directory n'est pas suivi de plus de données.
  2. Localisez le premier APK Signature Scheme v2 Block à l'intérieur du APK Signing Block. Si le bloc v2 est présent, passez à l'étape 3. Sinon, revenez à la vérification de l'APK à l'aide du schéma v1.
  3. Pour chaque signataire du APK Signature Scheme v2 Block:
    1. Choisissez l'ID d'algorithme de signature pris en charge le plus fort parmi les signatures. L'ordre de résistance dépend de chaque version de la mise en œuvre/plate-forme.
    2. Vérifiez la signature correspondante des signatures contre les données signées à l'aide d'une clé publique. (Il est maintenant prudent d'analyser les données signées.)
    3. Vérifiez que la liste ordonnée d'identifiants d'algorithme de signature dans les condensés et les signatures est identique. (Ceci est pour empêcher le décapage/addition de signature.)
    4. Calculez le résumé du contenu de l'APK en utilisant le même algorithme de résumé que celui utilisé par l'algorithme de signature.
    5. Vérifiez que le résumé calculé est identique au résumé correspondant des résumés.
    6. Vérifiez que SubjectPublicKeyInfo du premier certificat de certificats est identique à la clé publique.
  4. La vérification réussit si au moins un signataire a été trouvé et que l'étape 3 a abouti pour chaque signataire trouvé.

Remarque: L'APK ne doit pas être vérifié à l'aide du schéma v1 si une défaillance survient à l'étape 3 ou 4.

Vérification de l'APK avec signature par le JAR (schéma v1)

Le fichier APK signé par le fichier JAR est un fichier JAR signé standard, qui doit contenir exactement les entrées répertoriées dans META-INF/MANIFEST.MF et où toutes les entrées doivent être signées par le même groupe de signataires. Son intégrité est vérifiée comme suit:

  1. Chaque signataire est représenté par une entrée JAR META-INF/<signer>.SF et META-INF/<signer>.(RSA|DSA|EC).
  2. <signer>.(RSA|DSA|EC) est un PKCS #7 CMS ContentInfo avec une structure SignedData dont la signature est vérifiée sur le fichier <signer>.SF.
  3. Le fichier <signer>.SF contient un résumé de fichier entier du META-INF/MANIFEST.MF et des extraits de chaque section de META-INF/MANIFEST.MF. Le résumé de fichier entier du MANIFEST.MF est vérifié. Si cela échoue, le résumé de chaque section MANIFEST.MF est vérifié à la place.
  4. META-INF/MANIFEST.MF contient, pour chaque entrée JAR protégée, une section nommée en conséquence, contenant le résumé du contenu non compressé de l’entrée. Tous ces digests sont vérifiés.
  5. La vérification de l'APP échoue si l'APK contient des entrées JAR qui ne sont pas répertoriées dans le MANIFEST.MF et ne font pas partie de la signature JAR. La chaîne de protection est donc <signer>.(RSA|DSA|EC)<signer>.SFMANIFEST.MF → contenu de chaque entrée JAR protégée.
6
zonda

Selon ce lien: aide à la signature

APK Signature Scheme v2 offre:

  1. Temps d'installation des applications plus rapides
  2. Plus de protection contre les modifications non autorisées des fichiers APK.

Android 7.0 présente APK Signature Scheme v2, un nouveau schéma de signature d'application qui offre des temps d'installation plus courts et une protection accrue contre les modifications non autorisées des fichiers APK. Par défaut, Android Studio 2.2 et le plugin Android pour Gradle 2.2 signent votre application à l'aide du schéma de signature APK v2 et de la signature traditionnelle. schéma, qui utilise la signature JAR.

Il est recommandé d'utiliser le schéma de signature de l'APK v2 mais est non obligatoire .

Bien que nous vous recommandons d'appliquer APK Signature Scheme v2 à votre application, ce nouveau schéma n'est pas obligatoire. Si votre application ne se construit pas correctement lorsque vous utilisez APK Signature Scheme v2, vous pouvez désactiver le nouveau schéma.

4
Shirish Herwade