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
'곰대생 > Android' 카테고리의 다른 글
Android Gradle 설정 파일 (0) | 2020.12.06 |
---|---|
Android 앱의 구성 및 빌드 프로세스 (0) | 2020.12.06 |
Android 개발자 옵션 - USB 디버깅 연결하기 (Feat. 컴퓨터 RSA 키 지문이 뜨지 않을 때) (0) | 2020.12.06 |
Android adb 환경변수 설정 (Feat. 연결된 기기 확인) (0) | 2020.12.06 |
Android keystore(jks) 암호 찾기 (0) | 2020.12.05 |