티스토리 뷰
META-INF
안드로이드 android apk 내의 Manifest 파일 관련
apk signing 관련
안드로이드 android apk 내의 Manifest 파일 관련
apk signing 관련
android app 을 만드는 과정에서 보통 signing 이라는 과정을 거친다. 이 signing 은 내가 만들었소 하고 표시하는 과정이다. 그러면 이 표시가 되어 있는 녀석을 보고 android system 에서 signing 이 누구것인가에 따라 실행을 해도 되는지 여부나 어느정도의 권한까지 허락해야 하는지를 판단하는 것이다.
이 signing 을 거치면 META-INF 라는 폴더가 생기고, 그 안에 signing 과 관련된 파일들을 넣게 된다. 보통 이 파일들이 아래 보이는 것 처럼
이다.
- CERT.RSA
- CERT.SF
- MANIFEST.MF
이다.
참고로 이 apk 도 jar 의 format 을 그대로 가져오고 있다. 그렇기 때문에 아래의 내용은 jar 문서를 보고 적어놓은 것이지만, apk 의 내용과도 별로 다를 것이 없다.
Manifest File
MANIFEST.MF 의 내용을 확인 해 보자.
Manifest-Version: 1.0
Created-By: 1.0 (Android SignApk)
Name: res/drawable-hdpi-v4/note_btn_02_p.9.png
SHA1-Digest: 9N951JbaBqMwJu6neE80ZxknAaA=
Name: res/drawable-hdpi-v4/popup_mean_top.png
SHA1-Digest: aKuzkBMBNNlmgMu9Kfcl7CVk2Ec=
...
이런 모양을 띠고 있다.
여기서 Manifest-Version 이나 Created-By 은 보기만 해도 이해가 갈터이니 넘어가고 Name 을 살펴보자.
이 Name 들을 보면 apk 가 가지고 있는 file 들을 보여준다는 것을 쉽게 알 수 있을 것이다. 근데 그 밑에 있는 Digest 가 무엇인지는 쉽지가 않다. 밑에 있는 Digest 는 signing 할 때 Name 에 써져 있는 file 내용에 대한 hash 값이거나, ecoded 된 값으로 되어 있다. 그렇기 때문에 이 digest 의 내용은 file 의 내용이 수정되어 지면, 같이 수정되어 져야 한다.
Signiture File
그럼 이제 CERT.SF 를 보자 .SF 는 signiture file 을 뜻한다. 이 signature file 을 열어보면,
Signature-Version: 1.0
Created-By: 1.0 (Android SignApk)
SHA1-Digest-Manifest: 7xpSMheWj+9cc+YiEZUoa52CaZc=
Name: res/drawable-hdpi-v4/note_btn_02_p.9.png
SHA1-Digest: 5tNwzpVMTwTTh82YDhYYPnI7Ljc=
Name: res/drawable-hdpi-v4/popup_mean_top.png
SHA1-Digest: 5l/YxPScJe4eaks0aiKJHIwKrK4=
...
...
Manifest 파일과 매우 비슷하게 생겼다. 하지만 Digest 안에 있는 값은 다르다. 이 signature file 에 있는 Digest 값은 Manifest 에 있는 값을 가지고 만들어진 값이다. 같은 name 에 해당하는 manifest 의 녀석들을 가지고 계산해서 나온 값인데, 아마 Manifest 의 digest 값을 가지고 했을 것으로 추측한다.(귀찮아서 테스트는..ㅜ.ㅜ)
Signature Block File
그리고 마지막으로 CERT.RSA 가 있다. 이 CERT.RSA를 signature block file 이라고 부르는데 보통 뒤에 확장자를 signature block file 을 만들때 사용한 algorithm 이름으로 한다.
이 signature block file 은 다음 2개의 요소를 갖는다.
- sign 한 사람(signer)의 private 키로 만들어진 JAR file 에 대한 digital signature(전자서명)
- sign 한 사람의 public key 를 포함한 인증서(certificate) - signed JAR file 이 누구에 의해 sign 된 것인지를 알고 싶은 사람에 의해 이용된다.(verify)
참고로 이 signature block file 은 다른 2 file 들과는 다르게 text 로 되어있지 않다.
여하튼 좀 더 자세한 이야기는 아래 link 를 참조하자. 여기서는 간략하게 소개하느라 아귀가 맞지 않는 부분이 있을 듯 하다. 영어라 좀 힘들지만 이해를 쉽게 하려면아래 링크를 추천한다.
Other Reference
- Understanding Manifest
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 무릎마사지
- 스타치
- icon program
- 미스터피자주문
- 제주영귤
- 칠오름농장
- 편집프로그램
- 샤워기전
- 늙기
- 칠오름
- 녹색농원
- 고강도
- 데크에 바인딩묶기
- sudachi
- 보드고글
- icon tool
- 의학
- 상식
- 그림편집
- 영귤
- 영귤차
- 과학
- 인공눈
- 대일농장
- 인테리어
- network error
- 인공안구
- 명언
- 제주녹색농원
- breakpoint
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함