DocBit Notes チュートリアル

Binance公式配布の.aabファイルをbundletoolでスマホにインストールする方法

一般ユーザーがBinance公式サイトからダウンロードするのはuniversal APKであり、ファイルマネージャーでダブルクリックするだけでインストールできます。しかし、研究者や開発者は時折.aab(Android App Bundle)ファイルを入手することがあり、これをスマートフォンにインストールするにはGoogleのbundletoolツールが必要です。本記事ではその完全な手順を解説します。一般ユーザーがこの面倒な手順を踏む必要はなく、APKをダウンロードするには直接 Binance公式サイト または Binance公式アプリ をご利用ください。iPhoneでのインストールは iOSインストールチュートリアル をご覧ください。

bundletoolとは何か

bundletoolはGoogle公式のオープンソースコマンドラインツールであり、主な機能は以下の通りです:

  • .aabファイルを.apks(複数のsplit APKを含むzip)に変換する
  • 指定されたデバイスの仕様に基づいて対応するAPKサブセットを生成する
  • 生成されたAPKsをADB経由で接続されたデバイスに直接インストールする
  • 分析のために.aabの内部構造を出力する

このツールは、開発者がアプリをGoogle Playにアップロードする前の一般的な検証手段であり、通常は以下のケースを除いて使用することはありません:

  • Binanceアプリの内部構造を研究したい
  • サードパーティが配布した.aabを入手した
  • 自動テストスクリプトを作成する

準備作業

PCに以下のものを用意する必要があります:

ソフトウェア 役割
Java JDK 11+ bundletoolの依存環境
bundletool jar Googleのオープンソースコマンドラインツール
Android SDK Platform Tools(ADBを含む) デバイスとの通信
.aabファイル Binance公式または自身で逆コンパイルしたもの
USBデータケーブル Androidスマートフォンの接続

bundletoolのサイズは約6〜8 MBであり、GitHub上のGoogleのgoogle/bundletoolリポジトリからダウンロードできます。

デバイス側でUSBデバッグを有効にする

スマートフォンで開発者向けオプションを有効にします:

  1. 設定 → 端末情報 → 「ビルド番号」を7回連続でタップ
  2. 設定 → システム → 開発者向けオプション に戻る
  3. 「USBデバッグ」を有効にする
  4. データケーブルでPCに接続し、ポップアップする認証ダイアログで「許可」をタップ

ROMによって手順がわずかに異なります:

ROM タップする項目
MIUI 「MIUIバージョン」
HarmonyOS 「HarmonyOSバージョン」
ColorOS 「ビルド番号」
One UI 「ビルド番号」

有効にすると、ADBがデバイスを認識できるようになります。

インストール手順全体の概要

.aabをスマートフォンにインストールするには、大きく4つのステップがあります:

ステップ1 · デバイスがADBに認識されているか確認 コマンドラインにadb devicesと入力し、出力にスマートフォンのシリアル番号が表示されれば接続成功です。

ステップ2 · bundletoolでデバイス固有のAPKsを生成 bundletoolは接続されたデバイスのモデル、アーキテクチャ、言語、画面密度を照会し、これらのパラメータに基づいて.aabから最小のsplitセットを抽出し、binance.apksファイルとして出力します。

ステップ3 · bundletoolでAPKsをデバイスにインストール bundletoolにはinstall-apksサブコマンドが組み込まれており、自動的にadb install-multipleを呼び出してsplitを一括でインストールします。

ステップ4 · スマートフォンでBinanceを起動 起動後の使用感は、universal APKからインストールした場合と変わりません。

具体的なコマンドにはコマンドラインパラメータが関係しており長くなるため、開発者はGoogleの公式ドキュメントを参照してください。

.aabとuniversal APKのサイズの違い

同一バージョン(v2.100.5)での実測値:

形式 総ダウンロードサイズ インストール後の使用量
.aab(Google Play配布) 直接ダウンロード不可 -
.aabから生成したデバイス固有のAPKs 38〜45 MB 130〜150 MB
universal APK(Binance公式サイト配布) 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 packagescom.binance.devが含まれているか
  • アプリを起動し、バージョン番号が想定通りか確認する
  • 署名のフィンガープリントが公式サイトで公開されているものと一致するか照合する
  • 現物取引の注文プロセスを一度実行し、機能が正常か確認する

適用シナリオと不適用シナリオ

bundletoolルートが適している人:

  • アプリの構造を研究するセキュリティ研究者
  • 自動UIテストを作成するQAエンジニア
  • 様々なデバイス仕様で異なるsplitの動作をテストする必要がある開発者
  • Androidアプリのパッケージングメカニズムを学ぶ学生

このルートが不要な人:

  • Binanceを普通に使用したい一般ユーザー(直接universal APKをダウンロードすれば十分です)
  • ADBやコマンドラインの経験がないユーザー
  • タブレットやTVボックスなどの非標準デバイス(universalパッケージの方が互換性が高いです)

コマンドライン初心者のための代替案

ADBやbundletoolと聞いて頭が痛くなるが.aabファイルを持っている場合、より扱いやすい代替手段がいくつかあります:

  • GUIツールであるSAI(Split APKs Installer)を使用し、.aabをコピーして自動処理させる
  • APKEditor Studioを使用して.aabをapkmに変換してからインストールする
  • .aabを諦め、Binance公式サイトから直接universal APKをダウンロードする

3番目の方法が最も簡単です。

FAQ

Q:なぜBinanceはAPKではなく.aabをリリースするのですか? A:実際には、Binance公式サイトでは中国ユーザー向けにuniversal APKをメインで提供しています。.aabは主にGoogle Playでの配信用です。

Q:自分で作成したsplit APKsを他人に使わせることはできますか? A:技術的には可能ですが、splitはデバイスの仕様に紐付いているため、他のデバイスでは互換性がない可能性があります。

Q:bundletoolで生成したAPKsをインストールした後、Playストアからアップデートできますか? A:可能です。PlayストアはversionCodeで判断するため、署名が一致していれば「同一アプリ」として認識され、アップデート可能です。

Q:bundletoolはAPKの内容を変更しますか? A:変更しません。.aabをAPKsに分割するだけで、バイトコードは書き換えません。

関連記事