différence entre les versions de signature – V1 (Jar Signature) et V2 (Full APK Signature) lors de la génération d’apk signé dans AndroidStudio?

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

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

** Options de versions de signature **

Alors, quelle est la différence entre ces V1 (Jar Signature) et V2 (Full APK Signature) dans la nouvelle mise à jour d’Android Studio?

Et que dois-je utiliser (ou les deux) pour signer apk pour la sortie de Play Store?

J’obtiens également l’erreur Installer Échec d’parsing Aucun certificate lors de l’installation apk lorsque j’utilise la deuxième option.

    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 la signature APK.

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

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

    Devrais-je utiliser (ou les deux) pour signer apk pour la sortie du magasin de jeu? 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 conformément à la signature APK Schéma v2 (schéma v2) ou à la signature JAR (schéma v1). Les anciennes plates-formes ignorent les signatures v2 et vérifient uniquement les signatures v1.

    J’ai essayé de générer la construction en vérifiant l’option V2 (signature complète apk) . Ensuite, lorsque j’ai essayé d’installer une version intégrée au-dessous de l’appareil 7.0 et que je ne parviens pas à installer la version intégrée à l’appareil.

    Après cela, j’ai essayé de construire en vérifiant la case à cocher de la version et de générer la version de publication. Puis capable d’installer la construction.

    Il est écrit ici que “Par défaut, Android Studio 2.2 et le plugin Android pour Gradle 2.2 signent votre application en utilisant à la fois APK Signature Scheme v2 et le schéma de signature traditionnel, qui utilise la signature JAR.”

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

    EDIT 31 mars 2017: soumis plusieurs applications avec les deux signatures => pas de problème 🙂

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

    Vérification de la signature APK

    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 d’un enregistrement ZIP End of Central Directory .
      3. ZIP End of Central Directory n’est pas suivie de plus de données.
    2. Recherchez le premier APK Signature Scheme v2 Block dans le APK Signing Block . Si le bloc v2 est présent, passez à l’étape 3. Sinon, revenez à vérifier l’APK en utilisant le 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. La commande de la force est à la hauteur de chaque version d’implémentation / plateforme.
      2. Vérifiez la signature correspondante à partir des signatures contre les données signées à l’aide de la clé publique. (Il est maintenant possible d’parsingr les données signées.)
      3. Vérifiez que la liste ordonnée des ID d’algorithme de signature dans les condensés et les signatures est identique. (Ceci est pour empêcher la suppression / ajout de signature.)
      4. Calculez le résumé des contenus APK en utilisant le même algorithme de résumé que l’algorithme de résumé utilisé par l’algorithme de signature.
      5. Vérifiez que le condensé calculé est identique au condensé correspondant des condensés.
      6. Vérifiez que SubjectPublicKeyInfo du premier certificate de certificates 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 réussi pour chaque signataire trouvé.

    Remarque: 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 APK signée JAR (schéma v1)

    L’APK signée par 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 ensemble de signataires. Son intégrité est vérifiée comme suit:

    1. Chaque signataire est représenté par une entrée JAR META-INF/.SF et META-INF/.(RSA|DSA|EC) .
    2. .(RSA|DSA|EC) est un PKCS #7 CMS ContentInfo avec une structure SignedData dont la signature est vérifiée sur le fichier .SF .
    3. .SF fichier .SF contient un résumé complet du fichier META-INF/MANIFEST.MF et des condensés de chaque section de META-INF/MANIFEST.MF . Le résumé complet du fichier 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 contre l’intégrité, 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 APK échoue si l’APK contient des entrées JAR qui ne figurent pas dans le MANIFEST.MF et ne font pas partie de la signature JAR. La chaîne de protection est donc .(RSA|DSA|EC).SFMANIFEST.MF → contenu de chaque entrée JAR protégée contre l’intégrité.

    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 introduit APK Signature Scheme v2, un nouveau schéma de signature d’application qui offre des temps d’installation plus rapides et une meilleure protection contre les modifications non autorisées des fichiers APK. Par défaut, Android Studio 2.2 et le plug-in Android pour Gradle 2.2 signent votre application en utilisant APK Signature Scheme v2 et le schéma de signature traditionnel, qui utilise la signature JAR.

    Il est recommandé d’utiliser APK Signature Scheme v2 mais n’est pas 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.