AndroidManifest.xml란?
안드로이드의 모든 애플리케이션은 Manifest.xml파일을 가지고 있으며, 이 파일의 용도는 애플리케이션이 동작을 하기 위해 필요로 하는 값들이 저장되어 있다.
다른 말로 말하면, 새로운 안드로이드 프로젝트를 생성할 때 애플리케이션에 당신이 추가하는 옵션의 값들이 리스트 형태로 저장되어 있다.
결국 종합하면 애플리케이션의 동작여부를 사용자가 정의하고 실행시 어떻게 동작해야 하는지를 판단할 수 있는 하나의 문서파일이다.
그렇다면 AndroidManifest.xml파일은 어디에 존재하는 것일까?
먼저 APK파일은 안드로이드에서 동작하는 파일의 확장자임을 이미들 알고 있을 것이다.
이 APK파일은 사실 zip형태와 같은 것이고 단지 안드로이드에서 동작하는 형태임을 구분하기 위해 붙인 확장자일뿐이다.
APK파일을 압축해제한 후 내용을 살펴 보면 [그림1.1]와 같이 여러 구성 파일 중에 하나로 존재한다.
[그림 1.1]
이번에는 Smail에 대해서 알아보자.
Smail이란 안드로이드 실행 바이너리 코드를 사람이 쉽게 읽을 수 있도록 변형된 어셈블리어이다.
APK파일에서 smail코드를 얻기 위해서 여기서는 apktool을 이용하여 추출하는 것을 설명할 예정이다.
구글에서 apktool을 검색하면 쉽게 해당 툴을 얻을 수 있다.(http://code.google.com/p/android-apktool/downloads/list)
[그림 1.2]
[그림1.2]와 같이 d 옵션으로 해당 apk파일을 디컴파일을 실행한다.
[그림 1.3]
디컴파일을 실행하면 [그림 1.3]과 같이 smali파일을 얻을 수 있다.(단 apktool의 버전중 1.5이상의 버전에서는 smali파일로 디컴파일을 해주고 그 하위 버전에서는 .java의 형태로 디컴파일을 실행한다.)
'Android' 카테고리의 다른 글
drozer 명령어 (0) | 2015.09.24 |
---|---|
About Context (0) | 2015.06.15 |
apk파일을 디코딩해서 jad-gui로 열어봤을 때 ... (0) | 2015.05.29 |
런처란?? (0) | 2015.04.01 |