OBB ファイル形式とは?
.obb ファイルには、不透明なバイナリブロブ(Opaque Binary Blob、略して BLOB)として保存された Android アプリ用のリソースが含まれています。Google Play ストアの APK サイズ制限を克服するために Android APK 拡張ファイルシステムの一部として導入された .obb ファイルは、ベースとなる .apk パッケージから溢れたテクスチャ、オーディオ、レベルデータなどの巨大なゲームアセットを保持します。ファイルはオプションで暗号化され、通常は内部ストレージまたは SD カードの Android/obb/<パッケージ名>/ フォルダに保存されます。
単一の .obb ファイルは、単一のアプリケーションによってのみ使用されるか、アクセス権を付与されたアプリケーション間で共有されます。.obb ファイルの管理は Android の StorageManager インターフェースを介して行われます。.obb ファイルが暗号化されている場合、そのファイルを作成したアプリケーションのみが復号できます。.obb ファイルを手動で削除すると、それを使用するアプリケーションに悪影響を及ぼす可能性があるため、削除しないことが推奨されます。
内部的には、多くの .obb ファイルが ZIP コンテナ形式に従っており(マジックバイト PK で識別可能)、拡張子を変更することでアーカイブツールで開くことができます。しかし、開発者が暗号化を適用したり、Unity や Unreal Engine などのエンジンを使用したりする場合、レイアウトはカスタムになり、設計上、形式は完全に不透明(Opaque)になります。Google は現在、最新の代替手段として .aab App Bundles を使用した Play Asset Delivery を推奨しています。
セキュリティと安全性
リスク: MEDIUMGoogle Play からの OBB は安全です。リスクはサイドローディングにあります。海賊版サイトの改造(MOD)済み APK とペアになった OBB には、改ざんされたアセットや悪意のあるアセットが含まれている可能性があり、ペアになる APK(OBB ではなく)が実際のマルウェアの媒介となります。信頼できるソースからの OBB ファイルのみを配置し、APK と OBB は同じリリースのもので揃えてください。検証できない改造済みゲーム APK は決して実行しないでください。内部データは不透明であるため、簡単に監査することはできません。
形式の詳細
概要OBB ファイルを開くプログラム
.xapk/.apks バンドルをインストールします。SAI は APK をインストールし、同梱された OBB を Android/obb/ に自動的にコピーします。 技術的詳細
詳細仕様| コンテナ形式 | 非暗号化時は ZIP アーカイブ(PK シグネチャ)。暗号化またはエンジン固有のバリアントの場合は不透明なカスタムバイナリ(保証されたファイルシグネチャなし) |
| 典型的なマジックバイト | 非暗号化ファイルの場合は `50 4B 03 04` (ZIP PK ヘッダー)。暗号化またはカスタムコンテナの場合は固定シグネチャなし |
| MIME タイプ | application/octet-stream |
| デバイス上の保存パス | 内部ストレージまたは取り外し可能な SD カードの `Android/obb/<パッケージ名>/` |
| ファイル命名規則 | [main|patch].<バージョンコード>.<パッケージ名>.obb |
| 拡張ファイルのバリアント | アプリごとに 2 種類:main(主要な大容量アセット)と patch(小規模な増分アップデート) |
| 最大ファイルサイズ | 1 ファイルあたり最大 2 GB。Play ストアでは、アプリごとに 1 つの main と 1 つの patch 拡張ファイルが許可されます |
| 暗号化 | オプションのアプリケーションレベルの暗号化。所有するアプリのみが APK に同梱されたキーを使用して復号可能 |
| Android API | マウント用:StorageManager.mountObb() / unmountObb()。Play 配信時:APK Expansion Downloader Library |
| 典型的なアセット内容 | ゲームテクスチャ、オーディオトラック、ビデオカットシーン、3D モデル、レベルデータ |
| エンジンサポート | Unity (Gradle 拡張プラグイン)、Unreal Engine (OBB 内の PAK データ)、およびカスタムゲームエンジン |
| 目的 | 大容量アセットを Google のサーバーに別途ホストすることで、Play ストアの APK サイズ制限(当初は 50 MB)を克服する |
| 後継技術 | 2019 年より Google が推奨している、AAB App Bundles と組み合わせた Google Play Asset Delivery |
| プラットフォーム要件 | Android 2.3 (API レベル 9) 以降。拡張ファイルダウンロード API には Google Play 開発者サービスが必要 |
| リリース日 | 2012 (Android APK Expansion Files, to bypass the early 50 MB Play Store APK size limit) |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | developer.android.com |
OBB の変換
コミュニティ Q&A
ユーザーからの質問よくある質問
OBB ファイルはどこに置けばよいですか?
Android/obb/<パッケージ名>/ にコピーしてください。そのフォルダが存在しない場合は作成し、ファイル名は正確に保ってください(例:main.5.com.example.game.obb)。パッケージ名のフォルダはアプリと一致している必要があります。OBB ファイルを開くにはどうすればよいですか?
OBB ファイルを解凍(展開)する必要はありますか?
.obb ファイル全体をそのまま Android/obb/<パッケージ名>/ に配置します。ゲームはブロブを直接読み取ります。解凍したり名前を変更したりすると、動作しなくなります。OBB 付きの APK をインストールするにはどうすればよいですか?
.apk をインストールし、次に .obb を Android/obb/<パッケージ名>/ に配置します。より簡単な方法として、Split APKs Installer (SAI) を使用して .xapk/.apkm をインストールすれば、OBB が自動的に配置されます。OBB を APK に変換できますか?
ゲームが何度も OBB を再ダウンロードしてしまいます。なぜですか?
Android/obb/<正確なパッケージ名>/ に、元のファイル名とバージョン番号のまま配置されているか確認してください。