разница между версиями подписи-V1 (подпись Jar) и V2(полная подпись APK) при генерации подписанного apk в AndroidStudio?

Пожалуйста, выберите хотя бы одну из версий подписи для использования в Android Studio 2.3

теперь при создании подписанного apk в Android Studio он показывает два варианта (флажок), а именно 1. V1(Jar Signature) и 2. 'V2 (полная подпись APK)' as Версий Подпись на последнем шаге подписанного процесса генерации apk.

**Signature Versions** options

Итак, в чем разница между этими V1 (Подпись Jar) и V2 (полная подпись APK) в новом обновлении Android Studio?

и что я должен использовать (или оба) для подписания apk для выпуска play store?

также я получаю ошибку Не Удалось Установить Синтаксический Анализ Нет Сертификатов при установке apk, когда я использую второй вариант.

5 ответов


Это новый механизм подписания, представленный в Android 7.0, с дополнительными функциями, предназначенными для обеспечения большей безопасности подписи APK.

Это не обязательно. Вы должны проверить оба этих флажка, если это возможно, но если новый механизм подписи V2 дает вам проблемы, вы можете опустить его.

таким образом, вы можете просто оставить V2 непроверенным, если у вас возникнут проблемы, но он должен быть проверен, если это возможно.


должен ли я использовать(или оба) для подписания apk для выпуска play store? Ответ:Да.

по состоянию на https://source.android.com/security/apksigning/v2.html#verification :

В Android 7.0 APKs можно проверить в соответствии со схемой подписи APK v2 (схема v2) или подписью JAR (схема v1). Старые платформы игнорируют подписи v2 и проверяют только подписи v1.

Я попытался создать построить с проверкой V2 (Полная Подпись Apk). Затем, когда я попытался установить сборку выпуска ниже 7.0 устройства и я не могу установить сборку устройства.

после этого я попытался построить, установив флажок обе версии и сгенерировать сборку выпуска. Затем можно установить сборку.


написано здесь что " по умолчанию, Android Studio 2.2 и Android плагин для Gradle 2.2 подписать приложение, используя как apk Signature Scheme v2 и традиционную схему подписания, которая использует подпись JAR."

поскольку кажется, что эти новые флажки появились с Android 2.3, я понимаю, что мои предыдущие версии Android Studio (по крайней мере, 2.2) подписали обе подписи. Поэтому, чтобы продолжить, как я делал раньше, я думаю, что лучше проверить оба флажки.

редактировать 31 марта 2017,: отправлено несколько приложений с обеими подписями = > нет проблем:)


я думаю этой представляет собой хороший ответ.

APK схема подписи V2 проверка

  1. найти APK Signing Block и убедитесь, что:
    1. два поля размера APK Signing Block содержит то же значение.
    2. ZIP Central Directory сразу после ZIP End of Central Directory запись.
    3. ZIP End of Central Directory не следует больше данных.
  2. найдите первый APK Signature Scheme v2 Block внутри APK Signing Block. Если блок v2, если он присутствует, перейдите к шагу 3. В противном случае вернитесь к проверке APK с помощью схемы v1.
  3. для каждого подписавшего в APK Signature Scheme v2 Block:
    1. выберите самый сильный поддерживаемый идентификатор алгоритма подписи из подписей. Порядок прочности зависит от каждой версии реализации / Платформы.
    2. Проверьте соответствующую подпись из подписей против подписанных данных с помощью открытого ключа. (Теперь безопасно анализировать подписанные данные.)
    3. убедитесь, что упорядоченный список идентификаторов алгоритмов подписи в Дайджестах и подписях идентичен. (Это делается для предотвращения зачистки/добавления подписи.)
    4. вычислить дайджест содержимого APK, используя тот же алгоритм дайджеста, что и алгоритм дайджеста, используемый алгоритмом подписи.
    5. убедитесь, что вычисленный дайджест идентичен соответствующему дайджесту из дайджестов.
    6. убедитесь в том, что SubjectPublicKeyInfo первого сертификата сертификатов идентичен публичному ключ.
  4. проверка завершается успешно, если по крайней мере один подписывающий был найден и Шаг 3 успешно для каждого найденного подписывающего.

Примечание: APK не должен быть проверен с помощью схемы v1, если сбой происходит на Шаге 3 или 4.

JAR-подписанная проверка APK (схема v1)

JAR-signed APK-это стандартная подписанная банка, которая должна содержать именно записи, перечисленные в META-INF/MANIFEST.MF и где все записи должны быть подписаны тот же набор подписантов. Его целостность проверяется следующим образом:

  1. каждый подписывающий представлен META-INF/<signer>.SF и META-INF/<signer>.(RSA|DSA|EC) вход в банку.
  2. <signer>.(RSA|DSA|EC) это PKCS #7 CMS ContentInfo со структурой SignedData, подпись которой проверяется через .
  3. <signer>.SF файл содержит дайджест целого файла META-INF/MANIFEST.MF и дайджесты каждого раздела META-INF/MANIFEST.MF. Дайджест всего файла MANIFEST.MF проверяется. Если это не удается, дайджест каждого MANIFEST.MF вместо этого проверяется раздел.
  4. META-INF/MANIFEST.MF содержит для каждой записи JAR с защитой целостности соответствующий раздел, содержащий дайджест несжатого содержимого записи. Все эти дайджесты проверены.
  5. проверка APK не выполняется, если APK содержит записи JAR, которые не перечислены в MANIFEST.MF и не являются частью подписи JAR. Цепь защиты таким образом <signer>.(RSA|DSA|EC)<signer>.SFMANIFEST.MF содержание → каждой целостности банку вхождение.

по этой ссылке: справка по подписи

APK Signature Scheme v2 предлагает:

  1. быстрее время установки приложения
  2. дополнительная защита от несанкционированных изменений файлов APK.

Android 7.0 представляет apk Signature Scheme v2, новое приложение-подпись схема, которая предлагает более быстрое время установки приложения и большую защиту против несанкционированных изменений файлов APK. По умолчанию, Android Студия 2.2 и Android плагин для Gradle 2.2 подписать приложение с помощью оба!--15--> схема подписи APK v2 и традиционная схема подписи, которая использует подпись JAR.

Это рекомендовано использовать схему подписи APK v2 но не обязательно.

хотя мы рекомендуем применять apk Signature Scheme v2 к вашему приложению, эта новая схема не является обязательной. Если ваше приложение не работает должным образом когда используя apk Signature Scheme v2, вы можете отключить новую схему.