TechBigs
Back to blog
APK formatsSplit APKsOBB

APK vs XAPK vs APKS vs APKM: Android Package Formats Explained

Android installs only APKs. Here is what XAPK, APKS and APKM bundles contain, how split APKs and OBB data work, and which installer each format needs.

TechBigs Editorial Team2026-10-097 min min read

Language versions

Android installs exactly one kind of file: the APK. Everything else you see on download pages (XAPK, APKS, APKM) is a container that packs one or more APKs, sometimes with extra game data, into a single download. Once you know what sits inside each container, it's clear how to install it, why tapping it sometimes does nothing, and why installing "just the APK" from it can give you an app that closes the moment it opens.

The short version

FormatWhat it isOpens with the stock Package Installer?
APKA single signed Android packageYes
APKSA ZIP of split APKs (base plus configuration splits)No
XAPKA ZIP with one APK plus OBB data, or a split APK set, plus a manifest fileNo
APKMA split APK set in another container, with its own metadataNo

All four end up in the same place: Android's package manager receiving one or more APK files signed with the same certificate.

APK: the only format Android installs directly

An APK (Android Package) is a ZIP archive with a fixed layout. The parts that matter when something goes wrong:

  • AndroidManifest.xml: package name, version code, minimum Android version (minSdkVersion) and permissions, stored in binary form.
  • classes.dex (plus classes2.dex and so on): the compiled code.
  • lib/<abi>/: native libraries for each CPU architecture the build supports, for example lib/arm64-v8a/.
  • res/ and resources.arsc: layouts, images and strings.
  • The signature: in META-INF/ for the older v1 scheme, or in a signing block inside the ZIP structure for v2 and later.

When you open an APK, the system Package Installer reads the manifest, checks the signature, compares it with any installed app that has the same package name, and installs it if everything lines up. When one of those checks fails you get "App not installed" or a parsing error; the guide to fixing "App not installed" walks through each cause.

Split APKs: why one file stopped being enough

Developers now publish to Google Play as an Android App Bundle (.aab). A bundle can't be installed directly. Play uses it to generate split APKs for each device:

  • a base APK with the code and core resources;
  • configuration splits for one CPU architecture (split_config.arm64_v8a.apk), one screen density (split_config.xxhdpi.apk) and the device's languages (split_config.en.apk);
  • optional feature splits that the app fetches when it needs them.

Android has been able to install several APKs as one app since Android 5.0, and each phone only receives the splits it needs, which keeps downloads smaller. The catch when you download outside Play: an app shipped this way may have no single "universal" APK. Take only base.apk and the native libraries or resources it expects are missing, so it either refuses to install or installs and crashes on launch.

Every split of one app must share the same package name, version code and signing certificate. Mixing splits from two versions, or from an original and a modified build, does not work.

APKS: a split set in one archive

An .apks file is a ZIP holding an app's split APKs, often with a small table-of-contents file. The extension comes from Google's own developer tooling for App Bundles, and several installer apps use it when they export an installed app. Rename a copy to .zip and you'll see the base APK and its configuration splits; file names depend on the tool that made it.

XAPK: APK plus game data, or a split set

XAPK is not an official Android format; it's a convention adopted by download sites. An .xapk is a ZIP with a manifest.json describing the contents, an icon, and one of two layouts:

  1. One APK plus OBB data, typical of large games. The OBB file sits under Android/obb/<package.name>/ inside the archive.
  2. A split APK set, the same kind of content as an APKS in a different wrapper.

Installing one means installing the APK or APKs, then copying any OBB file to the matching folder on the phone.

APKM: another wrapper for split sets

APKM is a container associated with one particular download site and its companion installer. Inside, it's a split APK set plus a metadata file. Treat it like an APKS: you need an installer that understands that specific container. Some APKM files can't be read as a plain ZIP, so renaming the extension isn't a reliable way to unpack them.

OBB expansion files in a bit more detail

OBB (Opaque Binary Blob) files hold large game assets such as textures, audio and maps outside the APK. They live in Android/obb/<package.name>/ and are named like main.<versionCode>.<package.name>.obb, sometimes with a matching patch. file. The game looks for that exact path and name, so a wrong folder or a renamed file usually means it asks to download its data again or stalls on the loading screen.

On Android 11 and later the system restricts access to Android/data and Android/obb, and the built-in Files app may not let you browse or copy into them. An app that holds the install-packages permission (the one you grant under "Install unknown apps") is allowed to write into the OBB folder, which is one reason bundle installers ask for it. The post on Android special permissions explains what that permission does. OBB folders are also where big games use the most space; read freeing storage for large games before deleting anything there.

Which installer to use

  • Single APK: tap it and the system Package Installer takes over. On Android 8.0 and later you'll be asked to allow the app that opened the file (your browser or file manager) under Settings > Apps > Special app access > Install unknown apps. Menu names vary by manufacturer.
  • APKS, XAPK, APKM: you need an installer app that supports that container. It unpacks the splits, installs them together through Android's install-session API and, for XAPK, copies the OBB data. Android still shows its own confirmation screen; the installer can't skip it.
  • From a computer: with USB debugging enabled, adb install app.apk installs a single APK, and adb install-multiple base.apk split_config.arm64_v8a.apk split_config.xxhdpi.apk installs a split set in one step. OBB data then goes to /sdcard/Android/obb/<package.name>/ with adb push.

Whichever route you take, keep Google Play Protect on and read any warning it shows before you continue.

How to look inside a package

No extra software is needed to inspect these files on a computer:

  • macOS or Linux: unzip -l file.xapk
  • Windows 10 or later: tar -tf file.xapk in Command Prompt

Look for .apk entries (a split set), an Android/obb/ folder (game data), and lib/ folders inside each APK to see which CPU architectures are included. The guide to checking your Android version and CPU architecture shows how to match those to your phone. Before installing anything, whether it came from TechBigs or elsewhere, compare the file's checksum with the one on the download page; verifying an APK's SHA-256 has the commands.

Common mistakes

  • Pulling base.apk out of a bundle and installing it on its own.
  • Copying OBB data into Android/data instead of Android/obb, or renaming the OBB file.
  • Installing a build from one signer over an app from another; the signature check fails whatever container it arrived in.

FAQ

Is an XAPK riskier than an APK? Not by itself. The container only changes the packaging. What matters is who built the APKs inside and whether the file matches the checksum published by the source.

Can I convert an XAPK into a single APK? Only when it holds one APK plus OBB data: install the APK, then copy the OBB folder into place. A split set can't be merged into one APK without rebuilding and re-signing it, which changes the signature.

Which should I pick when both an APK and a bundle are offered? A universal APK is simplest if it supports your CPU architecture and Android version. If the only APK is a base file from a split set, take the bundle. Browse apps and games and check the file type on each page before downloading.

More articles