노력과 삽질 퇴적물

안드로이드: 셀프서명하기 본문

프로그래밍note/미분류.

안드로이드: 셀프서명하기

MTG 2014. 3. 26. 16:45

이클립스등으로 APK를 만들때 서명처리가 다 됐지만,

보안 라이브러리때문에 만들어진 APK에 별도로 서명과정을 해야 할 경우 수동으로 서명처리(혹은 셀프서명)를 해줘야 합니다.






0. 필요한 파일


파일명

예시 경로

 *.p12

 ..\self_sign

 (해당파일없이 *.keystore파일이 있으면 불필요)

 TEST.apk ..\self_sign

 openssl-for-windows

 C:\SDK_archive\openssl-0.9.8k_WIN32
 keytool.exe C:\Java\jdk1.6.0_45\bin
 jarsigner.exe C:\Java\jdk1.6.0_45\bin
 zipalign.exe & mgwz.dll C:\android-sdk-windows\tools






1. p12파일을 keystore로 변환(p12 file convert into keystore file)


* keystore파일이 이미 있으면 생략이 가능합니다.


keytool -importkeystore -srckeystore IN.p12 -destkeystore OUT.keystore -srcstoretype pkcs12

keytool -list -v -keystore OUT.keystore

keytool -changealias -keystore OUT.keystore -destalias new_cert_alias -alias old_cert_alias


① 키 저장소 암호(혹은 keystore password)는 6자 이상이여야 하고, p12에 있던 비밀번호하고는 별개이며

기존 p12 비밀번호관령은 '소스 키 저장소 암호'입니다.

② keytool -list -v -keystore OUT.keystore를 통해서 기본 alias값을 확인할수 있습니다.






2. jarsigner로 셀프서명하기


jarsigner -verbose -keystore OUT.keystore TEST.apk new_cert_alias

or

jarsigner.exe -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore OUT.keystore TEST.apk new_cert_alias






3. zipalign


zipalign -f -v 4 TEST.apk aligned_TEST.apk






기타. 참고자료


One More Thing: Android application signing with PKCS12 (.p12) certificate

jarsigner-JAR Signing and Verification Tool