Programing

서명 버전의 차이점-AndroidStudio에서 서명 된 APK를 생성하는 동안 V1 (Jar Signature) 및 V2 (Full APK Signature)?

lottogame 2020. 4. 29. 08:03
반응형

서명 버전의 차이점-AndroidStudio에서 서명 된 APK를 생성하는 동안 V1 (Jar Signature) 및 V2 (Full APK Signature)?


Android Studio 2.3에서 사용할 서명 버전 중 하나 이상을 선택하십시오

이제 Android Studio에서 서명 된 apk를 생성하는 동안 서명 된 apk 생성 프로세스의 마지막 단계에서 서명 버전 으로 V1(Jar Signature)'V2 (Full APK Signature)'라는 두 가지 옵션 (CheckBox), 즉 1 과 2가 표시 됩니다.

** 서명 버전 ** 옵션

새로운 Android Studio 업데이트에서 이러한 V1 (Jar Signature)V2 (Full APK Signature) 의 차이점은 무엇 입니까?

그리고 Play 스토어 출시를 위해 apk에 서명하려면 어느 것을 사용해야합니까?

또한 두 번째 옵션을 사용할 때 APK를 설치하는 동안 설치 구문 분석 실패 인증서 없음 오류가 발생 합니다 .


APK 서명을보다 안전하게 만들기 위해 추가 기능을 갖춘 Android 7.0에 도입 된 새로운 서명 메커니즘입니다.

필수는 아닙니다. 가능한 경우 해당 확인란을 모두 확인해야하지만 새로운 V2 서명 메커니즘으로 인해 문제가 발생하면 생략 할 수 있습니다.

따라서 문제가 발생하면 V2를 선택하지 않은 채로 둘 수 있지만 가능하면 점검해야합니다.


Play 스토어 출시를 위해 apk에 서명해야합니까 (또는 둘 다)해야하나요? 대답은 입니다.

당으로 https://source.android.com/security/apksigning/v2.html#verification :

Android 7.0에서 APK는 APK 서명 체계 v2 (v2 체계) 또는 JAR 서명 (v1 체계)에 따라 검증 될 수 있습니다. 이전 플랫폼은 v2 서명을 무시하고 v1 서명 만 확인합니다.

V2 (Full Apk Signature) 옵션 을 확인하여 빌드를 생성하려고했습니다 . 그런 다음 7.0 장치 아래에 릴리스 빌드를 설치하려고했는데 장치에 빌드를 설치할 수 없습니다.

그 후 버전 확인란을 모두 선택하여 빌드를 시도하고 릴리스 빌드를 생성했습니다. 그런 다음 빌드를 설치할 수 있습니다.


그것은 기록 여기에 "APK 서명 구성표 v2 및 JAR 서명을 사용하는 기존 서명 방식 모두를 사용하여 응용 프로그램을 서명 Gradle을 2.2, 기본적으로 안드로이드 스튜디오 2.2과 안드로이드 플러그인을."그

이 새로운 확인란이 Android 2.3에 등장한 것으로 보이므로 이전 버전의 Android Studio (최소 2.2)가 두 서명으로 서명 한 것으로 알고 있습니다. 따라서 이전과 마찬가지로 계속하려면 두 확인란을 모두 선택하는 것이 좋습니다.

2017 년 3 월 31 일 수정 : 두 서명이있는 여러 앱을 제출했습니다 => 문제 없음 :)


나는 이것이 좋은 대답 이라고 생각 합니다 .

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 단계로 진행하십시오. 그렇지 않으면 v1 구성표를 사용하여 APK 확인으로 돌아갑니다.
  3. 의 각 서명자에 대해 APK Signature Scheme v2 Block:
    1. 서명에서 가장 강력한 지원되는 서명 알고리즘 ID를 선택하십시오. 강력한 순서는 각 구현 / 플랫폼 버전에 달려 있습니다.
    2. 공개 키를 사용하여 서명 된 데이터에 대해 서명의 해당 서명을 확인하십시오. 서명 된 데이터를 구문 분석하는 것이 안전합니다.
    3. 요약 및 서명의 순서화 된 서명 알고리즘 ID 목록이 동일한 지 확인하십시오. 서명 제거 / 추가를 방지하기위한 것입니다.
    4. 서명 알고리즘에서 사용하는 다이제스트 알고리즘과 동일한 다이제스트 알고리즘을 사용하여 APK 내용의 다이제스트를 계산합니다.
    5. 계산 된 다이제스트가 다이제스트의 해당 다이제스트와 동일한 지 확인하십시오.
    6. SubjectPublicKeyInfo첫 번째 인증서 인증서 중 공개 키와 동일한 지 확인하십시오 .
  4. 적어도 하나의 서명자가 발견되고 발견 된 각 서명자에 대해 3 단계가 성공하면 확인에 성공합니다.

참고 : 3 단계 또는 4 단계에서 오류가 발생하면 v1 구성표를 사용하여 APK를 확인해서는 안됩니다.

JAR 서명 APK 확인 (v1 구성표)

The JAR-signed APK is a standard signed JAR, which must contain exactly the entries listed in META-INF/MANIFEST.MF and where all entries must be signed by the same set of signers. Its integrity is verified as follows:

  1. Each signer is represented by a META-INF/<signer>.SF and META-INF/<signer>.(RSA|DSA|EC) JAR entry.
  2. <signer>.(RSA|DSA|EC) is a PKCS #7 CMS ContentInfo with SignedData structure whose signature is verified over the <signer>.SF file.
  3. <signer>.SF file contains a whole-file digest of the META-INF/MANIFEST.MF and digests of each section of META-INF/MANIFEST.MF. The whole-file digest of the MANIFEST.MF is verified. If that fails, the digest of each MANIFEST.MF section is verified instead.
  4. META-INF/MANIFEST.MF contains, for each integrity-protected JAR entry, a correspondingly named section containing the digest of the entry’s uncompressed contents. All these digests are verified.
  5. APK verification fails if the APK contains JAR entries which are not listed in the MANIFEST.MF and are not part of JAR signature. The protection chain is thus <signer>.(RSA|DSA|EC)<signer>.SFMANIFEST.MF → contents of each integrity-protected JAR entry.

According to this link: signature help

APK Signature Scheme v2 offers:

  1. Faster app install times
  2. More protection against unauthorized alterations to APK files.

Android 7.0 introduces APK Signature Scheme v2, a new app-signing scheme that offers faster app install times and more protection against unauthorized alterations to APK files. By default, Android Studio 2.2 and the Android Plugin for Gradle 2.2 sign your app using both APK Signature Scheme v2 and the traditional signing scheme, which uses JAR signing.

되는 추천 APK 서명 구성표 사용 V2를 하지만입니다 필수는 아닙니다 .

APK Signature Scheme v2를 앱에 적용하는 것이 좋지만이 새로운 체계는 필수는 아닙니다. APK Signature Scheme v2를 사용할 때 앱이 제대로 빌드되지 않으면 새 체계를 비활성화 할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/42648499/difference-between-signature-versions-v1jar-signature-and-v2full-apk-signat

반응형