it-swarm.com.de

Unterschied zwischen Signaturversionen - V1 (Jar Signature) und V2 (Full APK Signature) beim Generieren signierter Apk in AndroidStudio?

Bitte wählen Sie mindestens eine der Signaturversionen aus, die in Android Studio 2.3 verwendet werden soll.

Während der Generierung von signiertem Apk in Android Studio werden zwei Optionen (CheckBox) angezeigt, nämlich 1. V1(Jar Signature) und 2. `V2 (Full APK Signature) 'als Signature Versionen im letzten Schritt des signierten Apk-Generierungsprozesses.

**Signature Versions** options

Also, was ist der Unterschied zwischen diesen V1 (Jar Signature) und V2 (Full APK Signature) in neuen Android Studio Update?

Und welches (oder beide) sollte ich zum Signieren von Apk für Play Store Release verwenden?

Außerdem erhalte ich den Fehler , dass beim Installieren von apk Parse Failed No Certificates fehlgeschlagen sind, wenn ich die zweite Option verwende.

209
Shirish Herwade

Es handelt sich um einen neuen Signaturmechanismus, der in Android 7.0 eingeführt wurde. Zusätzliche Funktionen sollen die Sicherheit der APK-Signatur erhöhen.

Es ist nicht zwingend erforderlich. Sie sollten BEIDE dieser Kontrollkästchen nach Möglichkeit aktivieren, aber wenn der neue V2-Signaturmechanismus Probleme bereitet, können Sie ihn weglassen.

Sie können V2 also einfach deaktiviert lassen, wenn Sie auf Probleme stoßen, sollten dies aber nach Möglichkeit überprüfen lassen.

200
Booger

Soll ich (oder beides) zum Signieren von apk für Play Store Release verwenden? Eine Antwort lautet YES.

Gemäß https://source.Android.com/security/apksigning/v2.html#verification :

In Android 7.0 können APKs gemäß dem APK-Signaturschema v2 (v2-Schema) oder der JAR-Signatur (v1-Schema) überprüft werden. Ältere Plattformen ignorieren v2-Signaturen und überprüfen nur v1-Signaturen.

Ich habe versucht, einen Build mit der Option Prüfung V2 (vollständige Apk-Signatur) zu generieren. Als ich dann versuchte, ein Release zu installieren, das unter 7.0 installiert wurde, konnte ich das Build nicht im Gerät installieren.

Danach habe ich versucht zu bauen, indem ich beide Versions-Checkboxen ankreuzte und einen Release-Build generierte. Kann dann build installieren.

40
pRaNaY

Es steht hier "Standardmäßig signieren Android Studio 2.2 und das Android Plugin für Gradle 2.2 Ihre App mit APK Signature Scheme v2 und dem traditionellen Signaturschema, das die JAR-Signatur verwendet. "

Da diese neuen Kontrollkästchen anscheinend mit Android 2.3 angezeigt wurden, habe ich verstanden, dass meine früheren Versionen von Android Studio (zumindest die Version 2.2) mit beiden Signaturen signiert haben. Um wie bisher fortzufahren, halte ich es für besser, beide Kontrollkästchen zu aktivieren.

BEARBEITEN 31. März 2017: hat mehrere Apps mit beiden Signaturen eingereicht => kein Problem :)

21
Regis_AG

Ich denke dies ist eine gute Antwort.

APK Signature Scheme v2 Verifizierung

  1. Suchen Sie den APK Signing Block und überprüfen Sie Folgendes:
    1. Zwei Größenfelder von APK Signing Block enthalten denselben Wert.
    2. Zip Central Directory wird unmittelbar von der Aufzeichnung Zip End of Central Directory gefolgt.
    3. Auf Zip End of Central Directory folgen keine weiteren Daten.
  2. Suchen Sie den ersten APK Signature Scheme v2 Block im APK Signing Block. Wenn der v2-Block vorhanden ist, fahren Sie mit Schritt 3 fort. Andernfalls können Sie die APK mithilfe des v1-Schemas überprüfen.
  3. Für jeden Unterzeichner im APK Signature Scheme v2 Block:
    1. Wählen Sie die stärkste unterstützte Signaturalgorithmus-ID aus den Signaturen aus. Die Reihenfolge der Stärken hängt von der jeweiligen Implementierung/Plattformversion ab.
    2. Überprüfen Sie die entsprechende Signatur von Signaturen anhand signierter Daten mit dem öffentlichen Schlüssel. (Das Parsen signierter Daten ist jetzt sicher.)
    3. Stellen Sie sicher, dass die geordnete Liste der Signaturalgorithmus-IDs in Digests und Signaturen identisch ist. (Dies dient dazu, das Entfernen/Hinzufügen von Signaturen zu verhindern.)
    4. Berechnen Sie den Digest des APK-Inhalts mit demselben Digest-Algorithmus wie den Digest-Algorithmus, der vom Signatur-Algorithmus verwendet wird.
    5. Stellen Sie sicher, dass der berechnete Auszug mit dem entsprechenden Auszug aus dem Auszug identisch ist.
    6. Stellen Sie sicher, dass SubjectPublicKeyInfo des ersten Zertifikats mit dem öffentlichen Schlüssel identisch ist.
  4. Die Überprüfung ist erfolgreich, wenn mindestens ein Unterzeichner gefunden wurde und Schritt 3 für jeden gefundenen Unterzeichner erfolgreich war.

Hinweis: APK muss nicht mit dem v1-Schema überprüft werden, wenn in Schritt 3 oder 4 ein Fehler auftritt.

JAR-signierte APK-Überprüfung (v1-Schema)

Die JAR-signierte APK ist eine standardmäßige signierte JAR, die genau die in META-INF/MANIFEST.MF aufgelisteten Einträge enthalten muss und bei der alle Einträge von derselben Gruppe von Unterzeichnern signiert sein müssen. Seine Integrität wird wie folgt überprüft:

  1. Jeder Unterzeichner wird durch einen JAR-Eintrag META-INF/<signer>.SF und META-INF/<signer>.(RSA|DSA|EC) dargestellt.
  2. <signer>.(RSA|DSA|EC) ist ein PKCS #7 CMS ContentInfo mit SignedData-Struktur, dessen Signatur über die <signer>.SF -Datei überprüft wird.
  3. <signer>.SF -Datei enthält einen Gesamtdateiauszug von META-INF/MANIFEST.MF und Auszüge aus jedem Abschnitt von META-INF/MANIFEST.MF. Der Gesamtdateiauszug von MANIFEST.MF wird überprüft. Wenn dies fehlschlägt, wird stattdessen der Digest jedes Abschnitts MANIFEST.MF überprüft.
  4. META-INF/MANIFEST.MF enthält für jeden integritätsgeschützten JAR-Eintrag einen Abschnitt mit dem entsprechenden Namen, der die Zusammenfassung des nicht komprimierten Inhalts des Eintrags enthält. Alle diese Zusammenfassungen werden überprüft.
  5. Die APK-Überprüfung schlägt fehl, wenn die APK JAR-Einträge enthält, die nicht im MANIFEST.MF aufgeführt sind und nicht Teil der JAR-Signatur sind. Die Schutzkette ist somit <signer>.(RSA|DSA|EC)<signer>.SFMANIFEST.MF → Inhalt jedes integritätsgeschützten JAR-Eintrags.
6
zonda

Laut diesem Link: Signaturhilfe

APK Signature Scheme v2 bietet:

  1. Schnellere App-Installationszeiten
  2. Mehr Schutz vor unbefugten Änderungen an APK-Dateien.

Mit Android 7.0 wird das APK Signature Scheme v2 eingeführt, ein neues App-Signing-Schema, das schnellere App-Installationszeiten und mehr Schutz vor unbefugten Änderungen an APK-Dateien bietet. Standardmäßig signieren Android Studio 2.2 und das Android Plugin für Gradle 2.2 Ihre App sowohl mit APK Signature Scheme v2 als auch mit der herkömmlichen Signatur Schema, das JAR-Signierung verwendet.

Es wird empfohlen , das APK-Signaturschema v2 zu verwenden, dies ist jedoch nicht obligatorisch .

Obwohl wir empfehlen, APK Signature Scheme v2 auf Ihre App anzuwenden, ist dieses neue Schema nicht obligatorisch. Wenn Ihre App bei Verwendung von APK Signature Scheme v2 nicht ordnungsgemäß erstellt wird, können Sie das neue Schema deaktivieren.

4
Shirish Herwade