출처 - http://sunphiz.me/wp/archives/753
안드로이드 어플리케이션은 .keystore 파일을 이용해 내 앱을 사인(signing)할 수 있다. 앱이나 키스토어(keystore)가 한두개라면 모르겠지만, 각 앱마다 다른 키스토어를 만들었다거나 테스트용, 릴리즈용 등으로 여러개의 앱을 가지고 있다보면 사인이 되긴 된건지, 어떤 키로 사인이 된건지 헷갈린다. (CI 환경을 만들어서 차곡차곡 정리해두면 헷갈리 없겠지만)
사인이 된 앱을 가지고 있고, 이 앱이 어떤 키스토어로 사인이 되었는지 확인하고 싶다면 어떻게 해야할까? 결론부터 이야기하면, 앱과 키스토어의 Certificate fingerprint를 비교하면 된다.
먼저 키스토어에서 fingerprint를 확인해보자.
Enter keystore password:
키스토어의 비밀번호를 입력하면 다음과 같이 키스토어에 포함된 alias 들의 정보가 출력된다.
|
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 1 entry
my-service, 2016. 10. 19, PrivateKeyEntry,
Certificate fingerprint (SHA1): 3C:B6:68:E2:8A:EC:9F:16:7E:2C:20:AA:B2:71:12:1B:98:F2:1E:D9 |
출력된 데이터에서 Certificate fingerprint 부분을 확인한다.
이번에는 사인된 앱에서 Certificate fingerprint를 확인해보자. 키스토어를 확인할 때와 마찬가지로 keytool을 이용한다.
|
>keytool -list -printcert -jarfile my-app.apk |
위와 같이 커맨드라인에서 입력하면, 앱 안의 META-INF 폴더 안의 .RSA 파일에서 인증서 정보를 추출하여 인증서의 정보를 보여준다.
|
...
Certificate fingerprints:
MD5: D8:2A:99:53:1E:7E:9D:B5:3A:44:FC:2D:99:48:38:17
SHA1: 3C:B6:68:E2:8A:EC:9F:16:7E:2C:20:AA:B2:71:12:1B:98:F2:1E:D9
SHA256: 5E:9C:8E:B8:D0:8E:E7:44:7B:5D:B5:1D:83:1F:D3:80:84:0C:F2:DC:15:DC:71:1E:E6:20:70:D6:B4:7B:9C:AB
... |
그리고 위에서 언급했듯이 인증서의 위치가 META-INF/*.RSA로 고정되어 있다. 그러므로, .apk 파일을 압축해제 한 후에 META-INF/*.RSA 파일에 아래 명령어를 실행해도 Certificate fingerprint를 꺼낼 수 있다.
|
keytool -printcert -file CERT.RSA |
참조
'개발 > 안드로이드' 카테고리의 다른 글
이클립스(eclipse)에서 C++ 설치 및 간단 사용법(MinGW) (0) | 2015.11.10 |
---|---|
안드로이드 스튜디오에서 NDK (0) | 2015.10.30 |
새로운 안드로이드 마시멜로 샘플 앱 (0) | 2015.10.21 |
안드로이드 언어 코드 (0) | 2015.09.08 |
안드로이드(android) 내장, 외장 메모리 사용가능여부와 크기 알아오기 (0) | 2015.09.03 |
댓글