Android aab파일 설치하기 / apk파일로 변환하기

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

안드로이드 스튜디오가 기본 설정으로 설치되어 있는 경우 기본 경로에서 디버그 키를 찾아 서명해 준다.

AAB -> APKs

앱 설치

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 확인
내부 저장소 > 메인 디렉터리

반응형