Drag & Drop .APKM Bundle Here
or click to select an .apkm, .apks, or .zip split archive
100% Local Browser Processing • Parses info.json & Split APKsInside the APKM Container Architecture
When developers publish an Android App Bundle (.aab) to Google Play, devices receive only the split APKs tailored to their hardware. Third-party archival platforms like APKMirror package those modular splits into an .apkm bundle alongside a JSON descriptor named info.json.
- Header Magic Byte Verification: Checks whether the .apkm uses standard PKZIP framing (0x504B0304) or an encrypted v2 stream header.
- info.json Manifest Parsing: Extracts package name (pname), version code, minimum Android SDK level, and supported CPU architectures.
- One-Click Standard .apks Repackaging: Converts unencrypted .apkm containers into universal .apks ZIP archives compatible with SAI, bundletool, and our main Split APK Merger.
Technical Reference: Converting APKM Bundles to Standalone APK Files
An .apkm file is not a single compiled Android package—it is a multi-part archive containing a primary base.apk module alongside separate configuration splits for CPU instruction sets (split_config.arm64_v8a.apk, split_config.armeabi_v7a.apk), screen pixel densities (split_config.xxhdpi.apk, split_config.xxxhdpi.apk), and localized string resources (split_config.en.apk). Because Android's default package installer (PackageInstaller) only accepts a single monolithic .apk when sideloading from a file manager, tapping an .apkm file directly on your phone results in an unrecognized file error.
Even if you extract base.apk from an .apkm archive and try to install it by itself on Android 13, 14, or 15, two technical barriers prevent the app from working:
- Binary Manifest Split Enforcement (isSplitRequired="true"): Inside the compiled binary AndroidManifest.xml of base.apk, the <application> tag carries the boolean attribute android:isSplitRequired="true" (attribute resource ID 0x01010591). When Android's PackageManagerService sees this flag during a single-APK install, it immediately aborts with INSTALL_FAILED_MISSING_SPLIT.
- Separated Native Libraries & Density Resources: All compiled C/C++ shared libraries (lib/arm64-v8a/*.so) and high-resolution UI drawables reside in the companion split_config.*.apk files. Without merging those entries into the base archive and updating resources.arsc, the application crashes on launch with java.lang.UnsatisfiedLinkError or Resources$NotFoundException.
- ZIP-Based vs. Encrypted APKM Streams: Standard .apkm archives begin with the 4-byte PKZIP signature (50 4B 03 04) and include an info.json file at the root. However, certain newer APKMirror downloads use a custom encrypted wrapper format (magic header 02 ...) designed exclusively for their proprietary installer. Our analyzer checks the first 16 bytes of your file immediately in browser memory: if it is a standard ZIP-based .apkm, you can unpack all splits or export a clean .apks archive right here, then drop that archive into our homepage XAPK & Split APK Merger to compile a single, v1+v2 signed .apk.
| APKM Internal File | Purpose in Android App Bundle Delivery | Required for Standalone Install? |
|---|---|---|
| info.json | JSON metadata descriptor recording package name, versioncode, min_api, and target ABIs | No (metadata only; stripped during APK merge) |
| base.apk | Primary DEX bytecode (classes.dex), core AndroidManifest.xml, and baseline resources | Yes (Mandatory core package) |
| split_config.arm64_v8a.apk | 64-bit ARM native C/C++ shared libraries (lib/arm64-v8a/*.so) | Yes (Required on modern 64-bit phones) |
| split_config.xxhdpi.apk | High-density UI icons, bitmaps, and layout drawables (320dpi–640dpi) | Yes (Prevents missing drawable crashes) |
| split_config.en.apk | Localized string tables compiled for the user's system language | Recommended (Ensures UI text labels render properly) |