Notice
Recent Posts
Recent Comments
Link
투케이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
-----------------------------------------------------------------------------------------
반응형
'투케이2K 학습정리' 카테고리의 다른 글
Comments