.APKM バンドルをここにドラッグ アンド ドロップします
または、.apkm、.apks、または .zip 分割アーカイブをクリックして選択します
100% ローカルブラウザ処理 • info.json を解析し、APK を分割APKM コンテナ アーキテクチャの内部
開発者が Android App Bundle (.aab) を Google Play に公開すると、デバイスはハードウェアに合わせた分割 APK のみを受け取ります。 APKMirror などのサードパーティのアーカイブ プラットフォームは、これらのモジュラー分割を info.json という名前の JSON 記述子とともに .apkm バンドルにパッケージ化します。
- ヘッダーマジックバイト検証: .apkm が標準の PKZIP フレーム (0x504B0304) を使用しているか、暗号化された v2 ストリーム ヘッダーを使用しているかをチェックします。
- info.json マニフェスト解析: パッケージ名 (pname)、バージョン コード、Android SDK の最小レベル、およびサポートされている CPU アーキテクチャを抽出します。
- ワンクリックの標準 .apks 再パッケージ化: 暗号化されていない .apkm コンテナを、SAI、bundletool、および メインの分割 APK マージ と互換性のあるユニバーサル .apks ZIP アーカイブに変換します。
テクニカル リファレンス: APKM バンドルをスタンドアロン APK ファイルに変換する
.apkm ファイルは、単一のコンパイル済み Android パッケージではありません。これは、プライマリ base.apk モジュールと、CPU 命令セット (split_config.arm64_v8a.apk、split_config.armeabi_v7a.apk、画面ピクセル密度 (split_config.xxhdpi.apk、split_config.xxxhdpi.apk、およびローカライズされた文字列リソース (split_config.en.apk) の個別の構成分割を含むマルチパート アーカイブです))。 Android のデフォルトのパッケージ インストーラー (PackageInstaller) は、ファイル マネージャーからサイドロードするときに単一のモノリシック .apk のみを受け入れるため、携帯電話で .apkm ファイルを直接タップすると、認識されないファイル エラーが発生します。
.apkm アーカイブから base.apk を抽出し、それを Android 13、14、または 15 に単独でインストールしようとしても、2 つの技術的障壁によりアプリの動作が妨げられます。
- バイナリマニフェスト分割の強制 (isSplitRequired="true"): base.apk のコンパイル済みバイナリ AndroidManifest.xml 内で、<application> タグはブール属性 android:isSplitRequired="true" (属性リソース ID 0x01010591) を保持します。 Android の PackageManagerService は、単一 APK のインストール中にこのフラグを検出すると、すぐに INSTALL_FAILED_MISSING_SPLIT で中止されます。
- 分離されたネイティブ ライブラリと密度リソース: すべてのコンパイル済み C/C++ 共有ライブラリ (lib/arm64-v8a/*.so) と高解像度 UI ドローアブルは、コンパニオン split_config.*.apk ファイルに存在します。これらのエントリをベース アーカイブにマージして resources.arsc を更新しないと、アプリケーションは java.lang.UnsatisfiedLinkError または Resources$NotFoundException で起動時にクラッシュします。
- ZIP ベースと暗号化された APKM ストリーム: 標準の .apkm アーカイブは 4 バイトの PKZIP 署名 (50 4B 03 04) で始まり、ルートに info.json ファイルが含まれます。ただし、特定の新しい APKMirror ダウンロードでは、独自のインストーラー専用に設計されたカスタム暗号化ラッパー形式 (マジック ヘッダー 02 ...) が使用されます。当社のアナライザーは、ブラウザーのメモリ内でファイルの最初の 16 バイトを即座にチェックします。標準の ZIP ベースの .apkm の場合は、すべての分割を解凍するか、クリーンな .apks アーカイブをここでエクスポートし、そのアーカイブを ホームページ XAPK と分割 APK のマージ にドロップして、単一の v1+v2 署名付き .apk をコンパイルします。
| APKM内部ファイル | Android アプリ バンドル配信の目的 | スタンドアロン インストールには必要ですか? |
|---|---|---|
| info.json | パッケージ名、versioncode、min_api、およびターゲット ABI を記録する JSON メタデータ記述子 | いいえ (メタデータのみ。APK マージ中に削除されます) |
| base.apk | プライマリ DEX バイトコード (classes.dex、コア AndroidManifest.xml、およびベースライン リソース) | はい (必須コアパッケージ) |
| split_config.arm64_v8a.apk | 64 ビット ARM ネイティブ C/C++ 共有ライブラリ (lib/arm64-v8a/*.so) | はい (最新の 64 ビット携帯電話では必須) |
| split_config.xxhdpi.apk | 高密度 UI アイコン、ビットマップ、レイアウト ドローアブル (320dpi–640dpi) | はい (ドローアブルの欠落によるクラッシュを防止) |
| split_config.en.apk | ユーザーのシステム言語用にコンパイルされたローカライズされた文字列テーブル | 推奨 (UI テキスト ラベルが適切にレンダリングされることを保証します) |