XAPK, APKS and APKM: How to Install Split APKs on Android
XAPK, APKS and APKM files hold one app split into several APKs. What is in each, how to install them with App Manager or adb, and why “App not installed” appears.
Short answer: an .xapk, .apks or .apkm file is a ZIP archive holding one app that has been split into several APK files, sometimes with game data alongside. Android’s own installer can’t open it. Use an installer app that puts all the parts in at once, such as App Manager, which needs no root, or unzip the file and install the parts from a computer with adb install-multiple.
Why some apps come in pieces
Developers now publish to Google Play as an Android App Bundle, and Google generates optimized APKs “for each device configuration”. Since Android 5.0, a phone can install several of these as a single app:
- one base APK, the only one whose manifest declares the whole app, with its services, permissions and so on;
- configuration APKs, each holding the native code for one CPU type, the resources for one screen density, or one language. A phone downloads only the ones that match it.
Download sites that copy apps from Google Play end up with these pieces, so they pack them into one file, and each site has its own format.
XAPK, APKS and APKM
| Extension | Comes from | Inside |
|---|---|---|
.apks (bundletool) |
Google’s bundletool, which calls it an “APK set archive” |
A ZIP with a table of contents, toc.pb, and the APKs in splits/ and standalones/ folders |
.apks (SAI) |
Apps exported with SAI, Split APKs Installer | The APKs in what SAI calls “simply a renamed ZIP archive”; since SAI 3.10, also the app’s icon and SAI’s own meta.sai_v1.json (plus meta.sai_v2.json since 4.0). No table of contents |
.xapk |
APKPure | A base APK and split APKs, or an APK and an .obb game data file |
.apkm |
APKMirror | A base APK and a number of split APKs |
- APKMirror has supported split APKs since March 2020. It says that to install
.apkmbundles “you will need APKMirror Installer”, which also takes.xapkand.apksfiles. - Older
.apkmfiles were encrypted. According to App Manager’s changelog, APKMirror has since removed the encryption. - Two different
.apksformats share one extension. To tell them apart, open the file as a ZIP: bundletool’s has atoc.pbat the top level, SAI’s doesn’t. The layout of bundletool’s comes from its source code; Google’s documentation doesn’t describe it.
Install on the phone with App Manager
App Manager is an open-source tool for managing installed apps. Its README lists “APKS, APKM and XAPK with OBB files” among the files it can install, and it needs no root for this.
- Download the file, then open it with App Manager from your browser or file manager.
- If it asks which splits to install, the base APK is always needed, plus the ones for your phone’s CPU type, screen density and language.
- The first time, Android asks you to allow App Manager to install unknown apps.
Leave App Manager’s Sign APK setting off. It re-signs the app before installing, which replaces the developer’s signature, so the developer’s own updates won’t install over it afterwards.
Other installers
- Install with Options imports
.xapkand.apkmfiles (since version 0.5.0) and.apksfiles (since 0.6.2). It works through Shizuku or root. - APKMirror Installer and APKPure’s app handle their own sites’ formats. Neither is open source, so we don’t host them.
- SAI (Split APKs Installer) still turns up in many guides, but its last release, 4.5, came out on 25 February 2021, and its README says “SAI is kinda dead”. It can’t extract OBB files from an XAPK either. SAI also exports installed apps as
.apksfiles of its own kind (see the table above).
Install from a computer with adb
- Unzip the file. If your computer won’t open it, rename it to end in
.zipfirst. - Install the base APK and the splits for your phone in one command, for example:
adb install-multiple base.apk config.arm64_v8a.apk config.xxhdpi.apk config.en.apk
The file names vary; use the ones in your archive. adb’s own help describes install-multiple as “push multiple APKs to the device for a single package and install them”. All the parts go into one install session, and if one fails, the whole install is abandoned.
For an .apks file made with bundletool, bundletool install-apks --apks=my_app.apks picks the parts for you: Google’s documentation says it deploys “the right combination of APKs from that set to a connected device”. It works only on bundletool’s own files, because it reads the table of contents. An .apks exported by SAI has none, so unzip it and use adb install-multiple instead.
Game data: OBB files
Some XAPK files from APKPure include an .obb file: extra game data too large for the APK. Android expects it in an exact place:
- the folder
Android/obb/<package name>/in the phone’s shared storage; - a name like
main.<version>.<package name>.obb, orpatch.for a patch file.
Google’s documentation says these files must not be deleted, moved or renamed. Since Android 11, the system’s file picker can’t open Android/obb/ and the folders inside it, so an ordinary file manager may not be able to put the file there. On stock Android, an app that you’ve allowed to install unknown apps does get access to the OBB folders, according to Android’s source code, which is most likely why App Manager can place the file where a file manager can’t.
Why you see “App not installed”
- You installed only the base APK. A base APK can be marked as needing its splits (Google’s bundletool adds such a mark), and Android then refuses it on its own with
INSTALL_FAILED_MISSING_SPLIT. Where a base APK does install alone, APKMirror warns that the app will then “crash due to missing resources”. - The parts don’t match. Android requires every part to have “the exact same package name, version code, and signing certificates”. Parts from two versions, or from two different sources, won’t install together.
- There is no part for your CPU. See arm64-v8a or armeabi-v7a.
- The app is already installed from somewhere else, signed with a different key, or in a newer version. Android won’t update or downgrade it; see package conflicts.
Check the signature
As far as we can tell, the XAPK, APKS or APKM wrapper itself carries no signature: what is signed are the APKs inside. Unzip the file and check the base APK with apksigner verify --print-certs, as in our signature guide. Android itself refuses splits signed with a different certificate from the base.
On this site
Every app we host is a single .apk file, so none of this is needed for them: open the file and install it.
Apps in this guide
-
App Manager A power-user tool for everything about installed apps: scan them for trackers, install split APKs, back them up, revoke permissions, freeze apps or block their components.Download -
Install with Options Installs APKs with options normally reserved for adb: test-only apps, downgrades, split APKs and Android 14’s blocked old apps.Download -
Shizuku Lets other apps use Android’s system APIs with the same rights as ADB. You start it once with wireless debugging or root, and apps that support it can do what normally needs a computer.Download
Sources
- About Android App Bundles (Android Developers) checked Oct 2, 2026
- The Android App Bundle format: base and configuration APKs (Android Developers) checked Oct 2, 2026
- bundletool: APK set archives and install-apks (Android Developers) checked Oct 2, 2026
- bundletool source code (toc.pb, APK set layout) checked Oct 2, 2026
- PackageInstaller: rules for split APKs (Android developer reference) checked Oct 2, 2026
- adb help text for install-multiple (AOSP source) checked Oct 2, 2026
- What is XAPK (APKPure, Wayback Machine copy of 29 July 2026) checked Oct 2, 2026
- APKMirror FAQ: split APKs and .apkm bundles checked Oct 2, 2026
- APKMirror Installer (Official) checked Oct 2, 2026
- App Manager README checked Oct 2, 2026
- App Manager documentation and changelog checked Oct 2, 2026
- Install with Options README and changelog checked Oct 2, 2026
- SAI (Split APKs Installer) README checked Oct 2, 2026
- SAI: meta format of exported .apks files checked Oct 2, 2026
- APK expansion files (Android Developers) checked Oct 2, 2026
- Storage updates in Android 11 (Android Developers) checked Oct 2, 2026
- StorageManagerService: OBB access for installer apps (AOSP source) checked Oct 2, 2026
- PackageManager.INSTALL_FAILED_MISSING_SPLIT (AOSP source, GrapheneOS mirror) checked Oct 2, 2026
- apksigner (Android Developers) checked Oct 2, 2026