Android aab 파일 설치를 위한 과정을 소개한다.
AAB(Android App Bundle)
안드로이드 앱 번들은 앱 개발, 출시 단계에서 설치 파일의 최적화(용량, 속도)등을 위해 제안된 새로운 파일 형식이다.
기존 APK파일의 경우 다국어 지원을 위한 언어정보, CPU 정보, 해상도 별 리소스 파일이 apk 파일 내에 전부 존재했다면 AAB는 이러한 정보들을 플레이스토어에서 관리하여 사용자가 앱 다운로드 요청 시에 리소스 파일들을 재조합하여 구글플레이의 서명키로 서명한 다음 APK 파일 형태로 제공한다.
자세한 내용은 안드로이드 개발자 공식 홈페이지에서 소개하고 있다.(https://developer.android.com/platform/technology/app-bundle?hl=ko)
하지만 설치테스트 또는 모의해킹을 진행하기 위하여 aab 파일을 전달받았을 경우, 테스트 단말기에 바로 설치가 불가능하기 때문에 곤란할 수 있다.
1. Bundle Tool 사용
준비
1. 최신버전의 자바
2. bundletool(https://github.com/google/bundletool/releases)
bundletool은 구글에서 공식 제공하는 도구이며 사용법은 다음과 같다.
(https://developer.android.com/studio/command-line/bundletool)
3. android studio(android debug key)
- aab는 앱 서명정보를 가지고 있지 않아 직접 서명이 필요하다. android studio를 설치하면 기본 경로에 keystore가 생성되어 임시로 사용할 수 있다!
사용법
Case 1. 전체 기기에 호환 가능한 APKs로 변경 및 재서명
java -jar "bundletool-all.jar" build-apks --bundle="sample.aab" --output="sampleoutput.apks"
Case 2. 연결된 기기에 호환 가능한 APKs로 변경 및 재서명
java -jar "bundletool-all.jar" build-apks --connected-device --bundle="sample.aab" --output="output.apks"
연결된 기기가 있는 경우 바로 설치도 가능하다.(단말의 디버그모드 허용 필요)
java -jar "bundletool-all.jar" install-apks --apks="output.apks"
Case 3. 별도의 경로에서 디버그 키를 관리하고 있는 경우 옵션을 통해 경로를 지정하면 된다.
java -jar bundletool-all.jar build-apks --bundle=./sample.aab --output=./output.apks --ks=C:\PATHOFKEYSTORE\key.jks
안드로이드 스튜디오가 기본 설정으로 설치되어 있는 경우 기본 경로에서 디버그 키를 찾아 서명해 준다.
앱 설치
Step 1. aab에서 apks로 변환되며, 압축을 해제하면 splits 폴더 내 apk파일들이 생성된 것을 확인할 수 있다.
- Case 2. 로 진행했을 때 결과이며 연결된 기기를 지정하지 않았을 경우 더 많은 APK를 확인할 수있다.
Step 2. 한번에 설치를 진행하여 앱의 실행여부를 확인한다.
adb install-multiple base-ko.apk base-master.apk base-mdpi.apk base-x86.apk
2. SAI
1. 단말기에 Split APKS Installer (SAI) 설치
https://play.google.com/store/apps/details?id=com.aefyr.sai
2. SAI 실행
백업 > 디렉토리 선택 > 내부 저장소 파일 선택기 > 선택
3. APKS 추출
추출할 앱 선택 > 백업 > Backup
4. APKS 확인
내부 저장소 > 메인 디렉터리
'Security > Mobile' 카테고리의 다른 글
[모바일 모의해킹] NoPE로 TCP 패킷 조작하기 (1) | 2022.12.24 |
---|---|
[모바일 모의해킹] 아이폰 7 ios 14.2 탈옥 (0) | 2022.12.17 |
[Nox] 안드로이드 버프 인증서 설치(Android 7.0+) (0) | 2022.03.31 |
[Frida] 안드로이드 루팅 탐지 우회하기 3 (0) | 2020.12.30 |
[Android] Fiddler Proxy tool 사용하기 (0) | 2020.12.28 |