투케이2K

27. (TWOK/STUDY) [투케이 학습] : android 안드로이드 앱 서명 툴 jarsigner (자르 사이너) , apksigner 및 zipalign 개념 정리 본문

투케이2K 학습정리

27. (TWOK/STUDY) [투케이 학습] : android 안드로이드 앱 서명 툴 jarsigner (자르 사이너) , apksigner 및 zipalign 개념 정리

투케이2K 2024. 9. 12. 20:09
반응형

[제 목]

[투케이 학습] : android 안드로이드 앱 서명 툴 jarsigner (자르 사이너) , apksigner 및 zipalign 개념 정리

 

[설 명]

 



-----------------------------------------------------------------------------------------
[jarsigner 설명]
-----------------------------------------------------------------------------------------

1. jarsigner 는 apk 및 aab 파일을 서명 시 사용되는 툴 입니다

  >> 흔히, aab 파일 사인 시 사용 (apk 사인은 apksigner 를 이용)


2. jarsigner 를 사용하여 apk 파일 서명 후 zipalign (앱 apk 파일 최적화) 적용 시 반드시 서명을 먼저 진행 후 zipalign 을 적용해야합니다

  >> apk 파일 >> jarsigner 서명 >> zipalign 정렬

  >> aab 파일은 이미 최적화 된 파일이므로 , zipalign 을 수행하지 않아도 됩니다


3. jarsigner 를 사용해 앱 서명 시 jks 및 keystore 파일이 필요하며, alias 명칭과 password 를 알고 있어야합니다


4. jarsigner 는 open jdk 사이트에서 다운로드 받아서 사용하실 수 있습니다


5. 서명 형식 : jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore [서명키] -storepass [비밀번호] [aab 파일] [alias]


6. 방법 설명 : jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore test.jks -storepass "1test!" app-release.aab test

-----------------------------------------------------------------------------------------





-----------------------------------------------------------------------------------------
[apksigner 설명]
-----------------------------------------------------------------------------------------

1. apksigner 는 Android SDK 빌드 도구에서 제공되는 APK 서명 인증 툴 입니다


2. apksigner 를 사용해 안드로이드 apk 파일을 sign 서명 할 수 있습니다


3. apksigner 를 사용하여 APK에 서명한 후 APK를 추가로 변경하면 APK의 서명이 무효화됩니다

  >> zipalign (앱 apk 파일 최적화) 을 사용하여 APK를 정렬하는 경우 apksigner 서명하기 (전) 에 사용해야합니다

  >> apk 파일 >> zipalign 정렬 >> apksigner 서명


4. apksigner 를 사용해 앱 서명 시 jks 및 keystore 파일이 필요하며, alias 명칭과 password 를 알고 있어야합니다


5. apksigner 는 안드로이드 스튜디오 설치 후 Android > Sdk > build-tools > 특정 빌드 버전 > apksigner.bat 경로에서 확인할 수 있습니다


6. 서명 형식 : apksigner sign --ks [키스토어 및 JKS 경로] --ks-key-alias [ALIAS 명칭] --ks-pass pass:[비밀 번호] --key-pass pass:[비밀 번호] --v1-signing-enabled true --next-signer --v2-signing-enabled true --out [생성 될 APK 경로] [원본 APK 경로]


7. 방법 설명 : 

- CMD 실행 후 apksigner 가 포함되어 있는 위치까지 이동 수행

  >> 경로 : C:\Users\twok\AppData\Local\Android\Sdk\build-tools\<특정 빌드 버전>
  >> 예시 : C:\Users\twok\AppData\Local\Android\Sdk\build-tools\33.0.1


- [특정 build 버전] 내에 포함 된 apksigner 사용해 앱 서명 수행

  >> 문법 : apksigner sign --ks [KEY_STORE_FILE_PTAH] --ks-key-alias [ALIAS] --ks-pass pass:[PASSWORD] --key-pass pass:[PASSWORD] --v1-signing-enabled true --next-signer --v2-signing-enabled true --out [CREATE_APK_PATH] [ORIGIN_APK_PATH]
  >> 예시 : apksigner sign --ks C:\Users\twok\Desktop\test_keystore --ks-key-alias test --ks-pass pass:testadmin --key-pass pass:testadmin --v1-signing-enabled true --next-signer --v2-signing-enabled true --out C:\Users\twok\Desktop\out-release.apk C:\Users\twok\Desktop\test.apk       


- 특정 지정한 경로에 out-release.apk 생성 된 것 확인

-----------------------------------------------------------------------------------------





-----------------------------------------------------------------------------------------
[zipalign 설명]
-----------------------------------------------------------------------------------------

1. zipalign 은 압축되지 파일을 정렬되도록 하는 ZIP 파일 정렬 도구입니다


2. zipalign 을 사용해 파일 정렬 시 앱 메모리 사용량을 줄일 수 있습니다


3. zipalign 은 apk 파일을 대상으로 정렬을 수행하며, 최종 사용자에게 배포하기 전에 zipalign 을 사용하여 최적화를 수행할 수 있습니다

  >> aab 파일은 이미 최적화 된 파일로 zipalign 을 수행하지 않아도 됩니다

  >> Android Gradle 플러그인(AGP)을 사용하는 Android 스튜디오를 사용하여 빌드하는 경우 자동으로 실행됩니다


4. 정렬 형식 : zipalign -p -f -v 4 [원본 APK 파일 경로] [생성될 APK 파일 경로]


5. 방법 설명 : 

- CMD 실행 후 zipalign 가 포함되어 있는 위치까지 이동 수행

  >> 경로 : C:\Users\twok\AppData\Local\Android\Sdk\build-tools\<특정 빌드 버전>
  >> 예시 : C:\Users\twok\AppData\Local\Android\Sdk\build-tools\33.0.1


- [특정 build 버전] 내에 포함 된 zipalign 사용해 apk 파일 정렬 및 최적화 수행 실시

  >> 문법 : zipalign -p -f -v 4 [APK_FILE_PATH] [ZIPALIGNED_OUTPUT_APK_FILE_PATH]
  >> 예시 : C:\Users\twok\AppData\Local\Android\Sdk\build-tools\33.0.1> zipalign -p -f -v 4 C:\Users\twok\Desktop\app-release.apk C:\Users\twok\Desktop\out-release.apk


- 터미널 창에 출력 된 결과 확인 및 생성 된 out-apk 파일 확인

Verifying alignment of C:\Users\twok\Desktop\out-release.apk (4)...
      87 META-INF/com/android/build/gradle/app-metadata.properties (OK - compressed)
     196 assets/dexopt/baseline.prof (OK)
    2280 assets/dexopt/baseline.profm (OK)
    2525 classes.dex (OK - compressed)
 3315995 classes2.dex (OK - compressed)
 6489221 classes3.dex (OK - compressed)
 8193254 lib/arm64-v8a/libconscrypt_jni.so (OK - compressed)
 9000986 lib/arm64-v8a/libjniPdfium.so (OK - compressed)
 9169798 lib/arm64-v8a/libmodft2.so (OK - compressed)
 9446603 lib/arm64-v8a/libmodpdfium.so (OK - compressed)
11926465 lib/arm64-v8a/libmodpng.so (OK - compressed)
12028886 lib/armeabi-v7a/libconscrypt_jni.so (OK - compressed)
12661301 lib/armeabi-v7a/libjniPdfium.so (OK - compressed)
12711929 lib/armeabi-v7a/libmodft2.so (OK - compressed)
12983186 lib/armeabi-v7a/libmodpdfium.so (OK - compressed)
15367857 lib/armeabi-v7a/libmodpng.so (OK - compressed)
15455715 lib/armeabi/libjniPdfium.so (OK - compressed)
15509056 lib/armeabi/libmodft2.so (OK - compressed)
15780313 lib/armeabi/libmodpdfium.so (OK - compressed)
18164985 lib/armeabi/libmodpng.so (OK - compressed)
18252840 lib/mips/libjniPdfium.so (OK - compressed)
18331233 lib/mips/libmodft2.so (OK - compressed)
18620991 lib/mips/libmodpdfium.so (OK - compressed)
21137468 lib/mips/libmodpng.so (OK - compressed)
21240009 lib/x86/libconscrypt_jni.so (OK - compressed)
22130526 lib/x86/libjniPdfium.so (OK - compressed)
22202180 lib/x86/libmodft2.so (OK - compressed)
22491109 lib/x86/libmodpdfium.so (OK - compressed)
25067120 lib/x86/libmodpng.so (OK - compressed)
25176206 lib/x86_64/libconscrypt_jni.so (OK - compressed)
26130430 lib/x86_64/libjniPdfium.so (OK - compressed)
26306393 lib/x86_64/libmodft2.so (OK - compressed)
26604395 lib/x86_64/libmodpdfium.so (OK - compressed)
29258963 lib/x86_64/libmodpng.so (OK - compressed)

......


34789578 META-INF/CERT.SF (OK - compressed)
34832141 META-INF/CERT.RSA (OK - compressed)
34833228 META-INF/MANIFEST.MF (OK - compressed)
Verification succesful

-----------------------------------------------------------------------------------------






-----------------------------------------------------------------------------------------
[참고 사이트]
-----------------------------------------------------------------------------------------

https://developer.android.com/tools/apksigner?hl=ko

https://developer.android.com/tools/zipalign?hl=ko

https://openjdk.org/

https://blog.naver.com/kkh0977/222634859921?trackingCode=blog_bloghome_searchlist

https://blog.naver.com/kkh0977?Redirect=Log&logNo=222650060969&from=postView&trackingCode=blog_bloghome_searchlist

-----------------------------------------------------------------------------------------


​

 

반응형
Comments