How to choose a GApps package
Most custom ROMs don't come with the Play Store. Adding it means flashing a GApps package — and picking the wrong one, or flashing it at the wrong moment, is one of the most common reasons a fresh install crashes on first boot. The good news is that the rule for choosing is short.
What GApps are, and why ROMs leave them out
GApps — Google Apps — are Google's proprietary apps and services: the Play Store, Play services, and the apps that depend on them. As the LineageOS wikiputs it, licensing restrictions mean a ROM can't simply include them, so independent developers package them separately. None of those packages are supported by the ROM projects themselves.
Step 1: does your ROM already include them?
Check this before downloading anything. Many ROMs publish two kinds of build:
- GApps builds ship with Google apps built in. Flash nothing extra — adding a second GApps package on top breaks things.
- Vanilla builds ship without them. You add a package yourself, or go without Google entirely.
The ROM's download page, and often the file name, says which you have. If it doesn't say, read the ROM's install notes rather than guessing.
ROMs that don't want GApps at all
Privacy-focused ROMs handle Google differently, and flashing a GApps zip onto them defeats the point or simply breaks them:
- GrapheneOS offers sandboxed Google Play, installed from its own App Store app. Google Play runs as ordinary sandboxed apps with no special privileges, instead of the deep system access a GApps package gets.
- CalyxOS uses microG, an open-source reimplementation of Google's services, which you can switch off for a fully de-Googled phone.
- /e/OS replaces Google services with microG out of the box, as part of its de-Googled design.
More on that trade-off in how to deGoogle your phone.
Step 2: match two things exactly
A GApps package depends on only two things, and both must match:
- The Android version, not the ROM version.LineageOS 23 is Android 16, LineageOS 22 is Android 15, and every other ROM numbers itself differently. A package for the wrong Android version won't work. The ROM's release notes or its device page state the Android version.
- The CPU architecture. Nearly every phone from the last several years is arm64; older 32-bit phones need arm. The LineageOS wiki lists the architecture on each device's info page if you're unsure — a phone's codename gets you there.
Beyond that, packages differ in how much they install. Smaller variants install fewer Google apps; most of the rest can be added from the Play Store later.
The packages
All of these are independent projects. Download only from the project's own site or repository — CustomDroid deliberately doesn't link individual builds, because the right file changes with every Android release.
- MindTheGapps
A deliberately lean package. It's the one the LineageOS wiki points to for every LineageOS version, in ARM and ARM64 builds, which makes it the natural default for a LineageOS-based ROM. LineageOS warns that people often run into problems when they deviate from the packages it lists.
- NikGapps
Configurable, from a core set up to a full package, so you can choose which Google apps get installed. Its site lists regular updates for the newest Android version and older versions supported as needed, and it supports addon.d so the package can survive ROM updates.
- LiteGapps
Built around small size, in a range of variants from a bare Play Store and services up to a fuller set. Unusually, it can be installed the traditional way from recovery or systemlessly as a Magisk, KernelSU or APatch module, and publishes builds for arm64, arm, x86_64 and x86.
- BiTGApps
A long-running package that is still maintained — its site lists support for the current Android release. Its install notes repeat the rules below: flash from recovery straight after the ROM, and rely on the ROM's addon.d support to keep it across updates.
If your ROM's install guide names a specific package, use that one. The ROM maintainer tested it; nobody tested the alternative on your phone.
Step 3: flash in the right order
- Wipe or format data as your ROM's install guide says.
- Flash the ROM.
- Flash the GApps package immediately, in the same recovery session, before the first boot.
- Then reboot and set the phone up.
The order matters. Both LineageOS and BiTGApps warn that if you boot the ROM once without GApps, you must factory reset before installing them, or expect crashes. The same applies when switching to a different package: wipe first, don't layer one on top of another.
For updates, many ROMs support addon.d, which lets an installed GApps package survive a ROM update. If yours doesn't, you reflash the same package after each update — its install notes will say.
What GApps won't fix
Installing Google's apps doesn't make a custom ROM look like a certified phone to apps that check. Banking apps, Google Wallet tap-to-pay and some streaming apps can still refuse to run — what commonly breaks after flashing explains why. If a flash goes wrong, recovery errors explained covers the usual messages.