apk 파일만 덩그러니 놓여있을 때, apk 파일의 매니패스트 정보를 추출할 수 있는 방법

AndroidStudio 에서 제공하는 AAPT2 를 이용하는 방법으로

주로 패키지명, Activity 구조, 권한 정보 등을 추출할 때 사용한다.

매번 아주 친절하게 정보를 제공하는 Android 개발자 사이트에 AAPT2 또한 친절히 설명되어 있다.

여기서 주목할 부분은 바로 덤프 (dump) 다.

 

 

AAPT2  |  Android 개발자  |  Android Developers

AAPT2(Android Asset Packaging Tool)는 Android 스튜디오 및 Android Gradle 플러그인이 앱의 리소스를 컴파일하고 패키징하는 데 사용하는 빌드 도구입니다. AAPT2는 리소스를 Android 플랫폼에 최적화된 바이너리

developer.android.com

우선 AAPT 명령어를 사용하기 위해선 Android Studio의 SDK가 설치 된 상태여야 한다.

(버전 상관없이) SDK 설치가 됐다면 다음과 같은 순서로 진행한다.


추출 방법

1. aapt.exe 파일의 디렉토리 복사
보통 C:\Users\윈도우사용자명\AppData\Local\Android\Sdk\build-tools\SDK버전 인 경우가 많다.
※ 필자의 경우 SDK 30 버전이지만, 어떤 버전이든 무관하다.

2. 명령 프롬프트 - 복사해 둔 aapt 디렉토리로 이동 (cd 디렉토리)

Microsoft Windows [Version 10.0.18362.1082]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\Users\UserName> cd C:\Users\UserName\AppData\Local\Android\Sdk\build-tools\SDK버전

--------------실행 결과--------------
C:\Users\UserName\AppData\Local\Android\Sdk\build-tools\SDK버전>

 

3. 매니패스트 정보를 조회할 apk 디렉토리 복사

4. 명령 프롬프트 - aapt dump badging 디렉토리 명령어 실행

aapt dump badging C:\Users\UserName\Desktop\Test\apk\test.apk

-------------- 실행결과 (apk 크기에 따라 굉장히 방대한 양이 나올 수 있으나, 주요 정보만 표기) --------------

package: name='패키지명' versionCode='■■' versionName='■.■.■' compileSdkVersion='■■' compileSdkVersionCodename='■■'
sdkVersion:'■■'
targetSdkVersion:'■■'
uses-permission: name='권한 정보'
launchable-activity: name='기본 액티비티명'

 

(+)

전체적인 매니패스트 구조를 보려면 다음 명령어를 실행하면 모든 Activity 정보를 확인할 수 있다.

aapt dump xmltree C:\Users\UserName\Desktop\Test\apk\test.apk AndroidManifest.xml

 

+ Recent posts