GApps (short for Google Apps) packages are essential in the Android aftermarket development community. They are specially crafted optional add-ons for custom ROMs that can be used to get Google apps such as Google Play Services and the Play Store on your device. If you’re wondering how to pick and install the right GApps package on your device or on one of the best Android phones, this guide should help you with that.
Table of Contents:
Google requires every Android device maker to follow the Compatibility Definition Document (CDD) to pass the Compatibility Test Suite (CTS) so they can be allowed to pre-load their devices with Google apps and services. Custom ROM developers however can’t easily bundle these Google apps and services with their builds. As these apps are not using the Apache or GPLv2 license, bundling them within the ROM presents legal challenges.
This is exactly where the GApps packages come in. The GApps maintainers rely on build scripts that allow for the automated creation of new updated packages at regular intervals. ROM developers, on the other hand, usually build the custom ROMs in such a way that an end-user can flash a third-party GApps distribution on top of their builds and seamlessly gain the ability to use the Google Play Store or any other applications that require Google Play Services.
Keep in mind Google apps are not required to boot or run most custom ROMs. However, many users find them beneficial to take full advantage of the Android ecosystem.
Variants of GApps
For a regular user, a bunch of first-party Google applications have gradually become integral to Android’s functionality or look and feel. Then come those who prefer an absolute minimalistic setup and consider virtually everything as bloatware.
Since it’s really hard to come up with a common solution for all, the GApps maintainers usually offer several variants of their builds. That’s the reason you can find GApps packages with “pico”, “basic”, “full”, and similar tags. Of course, the Play Store, along with obligatory Play Services and related libraries, are the common components between them, but the number of bundled first-party Google applications is the key differentiating factor out there.
Compatibility with older Android versions is another interesting aspect of the GApps scene. Not all devices can run the latest and greatest version of Android even with the help of custom ROMs, which is why it’s necessary to maintain support for older releases. Moreover, some low-level libraries are dependent on the CPU architecture, so mainstream maintainers sometimes offer architecture-specific builds as well.
Popular GApps Distributions
Throughout the years, many different GApps distributions have gained popularity. Below you can find some of the most well-liked and actively maintained GApps offerings from the aftermarket development community.
Perhaps the most popular choice to download Google Apps on custom ROMs, the Open GApps project started its journey back in 2015 as the spiritual successor to the ParanoidAndroid GApps. The codebase of this distribution has been forked numerous times, all thanks to the project’s versatility, extensive documentation, and rich support for legacy Android builds.
- Android Version Support: Android 4.4 KitKat to Android 10. The Android 11 builds are in the final testing phase, with the test builds available for ARM and ARM64 targets.
- Platform Support: ARM, ARM64, x86, and x86_64.
- Pico: This package is designed for users who want the absolute minimum GApps installation available.
- Nano: This package is designed for users who want the smallest Google footprint possible while still enjoying native “Okay Google” and Google Search support.
- Micro: This package is designed for users of legacy devices with small system partitions or those who prefer a minimalistic approach.
- Mini: This package is designed for those who use limited Google apps or prefer to install apps on their own.
- Full: If you prefer the option to use stock/AOSP apps, this package is designed for you.
- Stock: This package includes all the Google Apps that come standard on the Pixel smartphones.
- Super: This package is for those who want to have all Google Applications. It includes all Google Apps that were ever shipped on a Google device.
- Aroma: The Aroma package is a special version of the regular ‘Super’ package, but with a graphical front-end that will allow you to select which specific applications to install (or not) without having to manually write a gapps-config file.
- TVStock: This package is for Android TV devices. It includes all the Google Apps that come standard on the Nexus Player.
- TVMini: A smaller set of Google Apps for Android TV devices, similar to what Mini has compared to the Stock variant.
NikGApps is another feature-rich GApps distribution that offers extensive customization options for power users. Created by XDA senior member Nikhil, one of the most distinguishing features of this GApps project is it comes with a dedicated Android Go package for low end devices. Unlike other distributions, it also allows you to dirty flash the package anytime you want.
Last but not least, users can upload their custom configurations to the project’s repository to create a personalized build.
- Android Version Support: Android 10 and Android 11.
- Platform Support: ARM64.
- Core: The minimum Google Apps set required to run Play Store.
- Basic: Everything from Core, plus Google Carrier Services, Google Dialer (Replaces AOSP Dialer), Google Messages (Replaces AOSP Messages), Google Contacts (Replaces AOSP Contacts), etc.
- Omni: Everything from Basic, plus Gmail (Replaces AOSP Email), Google/Pixel Setup Wizard, Google Photos (Replaces AOSP Gallery), etc.
- Stock: Everything from Omni, plus Google Sound Recorder, Google Markup, Google Sounds, Google Wallpaper, etc.
- Full: Everything from Stock, plus Google Chrome (Replaces AOSP Browser), Google Assistant, Android Auto, etc.
- Go: Meant for low-end devices. A slightly enhanced version of the Core variant.
Formerly known as “ExLiteGApps”, the FlameGApps project is the brainchild of XDA senior member ayandebnath. Thanks to the modular design of the distribution, end users can install various components like Pixel Launcher with Device Personalization Services, Google Search with Assistant, and Device Personalization Services using official add-on packages.
- Android Version Support: Android 9 Pie to Android 11.
- Platform Support: ARM64.
- Basic: Includes the core GApps like Google Play Services (GMS), Google Services Framework (GSF), Google Play Store, and other essentials.
- Full: Includes all the necessary core apps with more useful ones like Google Dialer, Google Contacts, Google Messages, etc.
With less than 90MB size, BiTGApps from XDA senior member TheHitMan is a distinctive minimalistic distribution. Besides the minimalism, it also offers a handful of unique features, such as enabling battery optimization for all Google apps, the ability to install directly from a booted system, and installing systemlessly as a Magisk module. The developer has also added preliminary Android 12 support.
- Android Version Support: Android Nougat (7.1.2 and 7.1.1) to Android 11. The developer has also added preliminary Android 12 support.
- Platform Support: ARM, ARM64.
- Minimal: The goal is to stick with a minimal setup that can provide proper Google Services functionality. There are no other variants.
Maintained by LineageOS contributor Alessandro Astone, AKA XDA senior member aleasto, MindTheGapps is yet another compact GApps distribution. This one is particularly known in the community for being the officially recommended GApps solution by the LineageOS team for its custom ROM.
- Android Version Support: Android 11. The official mirror also hosts legacy packages for Android 10 and Android 8.1 Oreo.
- Platform Support: ARM, ARM64, x86.
- Variants: None. There’s only a single variant with no customization options. It provides everything required to make use of Google systems and no more.
How to Install GApps
Download and Preparation
Before installing a GApps package, you need to pick the version that matches the CPU architecture of the target device and the Android base of your desired custom ROM. Keep in mind some OEMs deliberately ship ARM32 firmware on ARM64 devices, so consult with the custom ROM maintainer to determine platform compatibility. In case you’re going to flash a custom ROM that ships with integrated Google apps, then you don’t need to install a standalone GApps package.
To know the CPU architecture, run the following command using a terminal emulator app on your device:
Crudely speaking, if you have a smartphone that’s fairly recent and you’re planning to install a custom ROM based on Android 11, download one of the ARM64 GApps for Android 11 from the aforementioned list.
For the actual flashing process, we’ll assume you have a custom recovery like TWRP installed and (optionally) have root access. If not, we have guides on how to root your Android device and how to install TWRP.
Flashing GApps from TWRP
- Make sure your computer has ADB and Fastboot. Setup instructions can be found here.
- Download both the custom ROM package and the matching GApps package on your computer.
- Reboot the target device into recovery mode using the appropriate key-combo or using ADB:
adb reboot recovery
- Now tap on Wipe, Factory Reset, and finally Format Data to continue with the cleanup process. This will remove encryption and delete all files stored in the internal storage.
- Return to the main menu.
- Sideload the custom ROM ZIP package:
- On the target device, select Advanced, then ADB Sideload to begin sideload.
- Without rebooting, tap on the back button, then repeat the same process for the GApps package.
adb sideload gaaps.zip
- The TWRP screen on the target device should show the installation progress.
- Once you have installed everything successfully, tap on the Reboot System button.
If everything goes right, you should get the Google apps and services ready to use once you reboot.
Most GApps distributions and custom ROMs support OTA survival, which means it’s not necessary to re-flash a GApps package when you install a ROM update. A major version update is another story though, as you have to locate the appropriate GApps package for the new Android base and if necessary, make a clean install.
What is your preferred GApps package of choice? Let us know in the comments below!