Downloaded a beta update today. Tapped the file in the file manager. Nothing happened. No error, no install screen. Nothing.

The file was fine. The format was the problem.

An .apkm is not an APK

It is a zip. Inside is not one app but a set of them: a base.apk, plus config splits. One split per CPU architecture, one per screen density, one per language, and sometimes a pile of feature modules on top.

The stock Android installer opens a single APK. It does not open bundles. Third-party installer apps exist for this format, but you do not need one. You need adb and two minutes.

Look inside first

unzip -l app.apkm 

Real numbers from the two bundles I installed today: one was 201 MB with over 30 splits inside. The other was 340 MB with 126 files, 85 of them feature splits. My phone needed 4 files out of the first bundle and 72 out of the second. Everything else in there is for other phones.

Check the signature before you install anything

A split bundle from a mirror is still a sideload. Two checks, both cheap.

First, the version. If the bundle's versionCode is lower than the installed app's, Android refuses the downgrade and the install dies.

adb shell dumpsys package com.google.android.youtube | grep versionCode 

Second, the signing certificate. An update only installs over the existing app if the same key signed it. If the cert differs, one of two things is true: the file is a modded build, or it is not the app you think it is. Either way, you want to know before, not after.

apksigner verify --print-certs base.apk 

Pull the installed app's base.apk and compare the SHA-256 fingerprint. Today both bundles matched the installed apps exactly. Official builds, just shipped as bundles. That is the normal case for beta mirrors, but check anyway. It costs ten seconds.

Install only the splits your phone needs

Pick by three things: architecture (arm64-v8a on most current phones), density (mine is 320 dpi, so xhdpi), language (en).

adb install-multiple -r base.apk split_config.arm64_v8a.apk split_config.xhdpi.apk split_config.en.apk 

If the bundle has feature splits, install the ones for your architecture and language too. If a required split is missing, the installer fails and names it.

Verify like you mean it

adb shell dumpsys package com.google.android.youtube | grep -E "versionName|versionCode" 

Then open the app. New version in dumpsys plus the app actually running is proof. "Install said Success" on its own is not.

The short version

  • .apkm, .apks, .xapk: bundles, not apps. The file manager tap failing is expected behavior, not a broken file.
  • The bundle is a zip. Look inside before you install anything from it.
  • Match the signing cert to the installed app. Mismatch means stop.
  • Install base plus your architecture, density, and language splits with install-multiple.
  • Verify the version after, and launch the app.