DocBit Notes 튜토리얼

바이낸스 공식 배포 .aab 파일을 bundletool로 스마트폰에 설치하는 방법

일반 사용자는 바이낸스 공식 사이트에서 다운로드한 universal APK를 파일 관리자에서 두 번 탭하여 설치할 수 있습니다. 하지만 연구원이나 개발자는 간혹 .aab(Android App Bundle) 파일을 접하게 되며, 이를 스마트폰에 설치하려면 구글의 bundletool이 필요합니다. 이 노트에서는 전체 과정을 설명합니다. 일반 사용자는 이 복잡한 과정을 거칠 필요 없이 바로 바이낸스 공식 사이트바이낸스 공식 앱에서 APK를 다운로드하면 됩니다. iPhone 사용자는 iOS 설치 튜토리얼을 확인하세요.

bundletool이란 무엇인가요?

bundletool은 구글이 공식적으로 오픈소스로 제공하는 명령줄 도구로, 주요 기능은 다음과 같습니다:

  • .aab 파일을 .apks(여러 split APK가 포함된 zip 파일)로 변환
  • 지정된 기기 사양에 맞춰 해당하는 APK 하위 집합 생성
  • 생성된 APKs를 ADB로 연결된 기기에 직접 설치
  • 분석을 위해 .aab 내부 구조 출력

이 도구 세트는 개발자가 앱을 Google Play에 업로드하기 전에 수행하는 일반적인 검증 수단입니다. 한국어 사용자들에게는 다음과 같은 상황이 아니라면 거의 사용할 일이 없습니다:

  • 바이낸스 앱의 내부 구조를 연구하고 싶을 때
  • 서드파티에서 배포한 .aab 파일을 얻었을 때
  • 자동화 테스트 스크립트를 작성할 때

준비 작업

컴퓨터에 다음 항목들을 준비해야 합니다:

소프트웨어 역할
Java JDK 11+ bundletool 실행 종속성
bundletool jar 구글 오픈소스 명령줄 도구
Android SDK Platform Tools (ADB 포함) 기기와의 통신
.aab 파일 바이낸스 공식 또는 직접 디컴파일한 출처
USB 데이터 케이블 안드로이드 스마트폰 연결

bundletool의 용량은 약 6-8MB이며, GitHub의 구글 google/bundletool 저장소에서 다운로드할 수 있습니다.

기기에서 USB 디버깅 켜기

스마트폰에서 개발자 옵션을 활성화해야 합니다:

  1. 설정 → 휴대전화 정보 → '빌드 번호'를 7번 연속 탭합니다.
  2. 뒤로 가기 → 시스템 → 개발자 옵션
  3. 'USB 디버깅'을 활성화합니다.
  4. 데이터 케이블로 컴퓨터와 연결하고 팝업되는 권한 부여 대화상자에서 '허용'을 탭합니다.

ROM에 따라 클릭 위치가 약간 다를 수 있습니다:

ROM 연속 탭 위치
MIUI 'MIUI 버전'
HarmonyOS 'HarmonyOS 버전'
ColorOS '버전 번호'
One UI '빌드 번호'

활성화해야 ADB가 기기를 인식할 수 있습니다.

전체 설치 과정 요약

.aab를 스마트폰에 설치하는 과정은 크게 네 단계로 나뉩니다:

1단계 · 기기가 ADB에 인식되었는지 확인 명령 프롬프트에 adb devices를 입력하여 출력 결과에 스마트폰의 일련번호가 나타나면 연결된 것입니다.

2단계 · bundletool로 기기 맞춤형(device-specific) APKs 생성 bundletool은 연결된 기기의 모델, 아키텍처, 언어, 화면 밀도를 조회하고, 이 매개변수를 바탕으로 .aab에서 최소한의 split 집합을 추출하여 binance.apks 파일로 출력합니다.

3단계 · bundletool을 이용해 기기에 APKs 설치 bundletool에는 install-apks 하위 명령어가 내장되어 있어, 자동으로 ADB의 install-multiple을 호출하여 split 패키지를 한 번에 설치합니다.

4단계 · 스마트폰에서 바이낸스 앱 실행 설치 후의 앱 실행 및 사용 경험은 universal APK로 설치했을 때와 동일합니다.

구체적인 명령어는 매개변수가 포함되어 길이가 길어질 수 있으므로, 개발자는 구글 공식 문서를 참고하시기 바랍니다.

.aab와 universal APK의 용량 차이

동일한 버전(v2.100.5) 기준 실제 측정 결과:

형식 총 다운로드 용량 설치 후 차지하는 용량
.aab (Google Play 배포용) 직접 다운로드 불가 -
.aab에서 생성된 기기 맞춤형 APKs 38-45 MB 130-150 MB
universal APK (바이낸스 공식 배포용) 96 MB 240 MB

이러한 차이는 universal 패키지에는 모든 아키텍처와 언어가 포함되어 있는 반면, 기기 맞춤형(device-specific) 패키지에는 현재 기기에 필요한 파일만 포함되어 있기 때문에 발생합니다.

bundletool에서 자주 발생하는 오류

오류 1 · Unsupported tools version bundletool과 Java 버전이 일치하지 않습니다. 최신 bundletool은 JDK 11+를 요구하며, 구형 JDK 8과는 호환되지 않습니다. 해결 방법: JDK를 업그레이드하세요.

오류 2 · No device connected ADB가 기기를 인식하지 못했습니다. USB 모드가 '파일 전송'인지, 디버깅 권한이 허용되었는지 확인하세요.

오류 3 · Multiple devices connected 여러 대의 기기가 연결된 경우 -s 매개변수를 사용하여 일련번호를 지정해야 합니다.

오류 4 · Manifest version code is lower than installed 기기에 이미 동일한 버전이나 더 높은 버전이 설치되어 있습니다. 먼저 기존 앱을 제거하거나 versionCode를 높여야 합니다.

오류 5 · Insufficient storage 기기의 저장 공간이 꽉 찼습니다. 공간을 정리하세요.

설치 후 검증

설치 후 몇 가지 확인 작업을 진행할 수 있습니다:

  • adb shell pm list packages 목록에 com.binance.dev가 있는지 확인합니다.
  • 앱을 실행하여 버전 번호가 예상과 일치하는지 확인합니다.
  • 서명 지문이 공식 발표와 일치하는지 대조합니다.
  • 현물 주문 프로세스를 한 번 실행하여 기능이 정상적인지 확인합니다.

적합한 상황과 부적합한 상황

bundletool 경로가 적합한 대상:

  • 앱 구조를 연구하는 보안 연구원
  • 자동화 UI 테스트를 작성하는 QA 엔지니어
  • 다양한 기기 사양에서 분할 패키지(split)의 성능을 테스트해야 하는 개발자
  • 안드로이드 앱 패키징 메커니즘을 공부하는 학생

이 경로가 필요하지 않은 대상:

  • 정상적으로 바이낸스를 사용하려는 일반 사용자 (universal APK를 직접 다운로드하면 됩니다)
  • ADB와 명령줄 사용 경험이 없는 사용자
  • 태블릿, TV 박스 등 비표준 기기 사용자 (universal 패키지의 호환성이 더 좋습니다)

명령줄 초보자를 위한 대안

ADB나 bundletool 같은 용어에 머리가 아프지만 .aab 파일을 어떻게든 설치해야 한다면, 다음과 가은 더 친숙한 대안 경로가 있습니다:

  • 그래픽 인터페이스를 제공하는 SAI(Split APKs Installer)를 사용하여 .aab를 복사해 넣고 자동 처리합니다.
  • APKEditor Studio를 사용하여 .aab를 .apkm으로 변환한 후 설치합니다.
  • .aab를 포기하고 바이낸스 공식 사이트에서 바로 universal APK를 다운로드합니다.

세 번째 방법이 가장 간단합니다.

FAQ

Q: 바이낸스는 왜 APK 대신 .aab를 배포하나요? A: 실제로는 바이낸스 공식 사이트에서 일반 사용자에게는 universal APK를 주로 배포합니다. .aab는 주로 Google Play 배포용으로 사용됩니다.

Q: 직접 만든 split APKs를 다른 사람도 사용할 수 있나요? A: 기술적으로는 가능하지만, split 패키지는 기기 사양과 묶여 있으므로 다른 기기에서는 호환되지 않을 수 있습니다.

Q: bundletool로 생성된 APKs를 설치한 후에도 Play Store에서 업데이트할 수 있나요? A: 가능합니다. Play Store는 versionCode를 기준으로 판단하며, 서명이 일치하면 '동일한 앱'으로 인식하고 업데이트를 진행합니다.

Q: bundletool이 APK 내용을 수정하나요? A: 아닙니다. 단순히 .aab를 APKs로 분리할 뿐 바이트코드를 수정하지는 않습니다.

추가 자료