Open-source project
opengapps/opengapps avatar
opengapps/opengapps

Open GApps builds the installable zips, and the GPLv3 exception decides who owns them

The main repository of the Open GApps Project

5,973 stars965 forksShellNOASSERTION

At a glance

What is it?
Open GApps is a shell script project rather than an app store: the Makefile drives a build script per architecture, API level and variant, and the sources are upstream APKs pulled in as submodules. What the repository does not do is answer support questions about the prebuilt packages, and those packages are licensed for personal use only.
Who is it for?
Use Open GApps when you need a zip built for a specific architecture and API level, or when you have to add a source APK yourself. Do not use it as a redistribution source for the prebuilt packages, and check the API list in the Makefile before assuming a given Android release is covered.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 94 days ago.
What is it written in?
Mainly Shell, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 14, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • opengapps/opengapps5,973 ★ · +9
Star history
Repository2026-09-232026-11-14
opengapps/opengapps6k6k

9 Stars in the last 52 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

A dash separated target carries platform, API level and variant

The Makefile is the whole interface. A target is a dash separated string, and the file splits it into platform, API level and optional variant before handing those values to scripts/build_gapps.sh. Asking for arm-23 gives the ARM package on that API level, which the project notes as Android 6.0, and adding a third field selects a variant:

code
make arm-23
code
make arm-23-stock

The variant vocabulary is fixed in one variable: super, stock, full, mini, micro, nano, pico, aroma, tvstock and tvmini. Each architecture also carries a floor, and a target below it is refused: arm and x86 start at 19, arm64 and x86_64 start at 21. The API list runs 19 through 32, which is where you confirm whether a given Android release is offered at all.

The source tree arrives as submodules measured in gigabytes

A build starts with the repository and its submodules, and the submodule step is the expensive one. The clone uses an SSH URL, which is why the project asks for a GitHub account with SSH authentication configured before you start:

code
git clone [email protected]:opengapps/opengapps.git

After cloning, the source script pulls the original APKs as provided upstream, and the project warns that these repositories are very large, in the order of gigabytes. Two arguments change that cost:

code
./download_sources.sh [--shallow] [arch]

--shallow fetches only the latest snapshot of the APKs, leaving their history behind, which cuts both disk use and data transferred. Passing an architecture limits the fetch to arm, arm64, x86 or x86_64, with one caveat spelled out: fallback architectures are fetched too. The same command also updates the sources to their most recent version later.

Build, cache, out and log are four separate roots

The stated prerequisites are short and both concern your machine. The Android build tools must be installed and set up in your PATH, and users on Ubuntu are pointed at a packaged set of build tools maintained outside the project. Nothing else is automated for you: the toolchain is a condition of building, not a step inside it. The layout is equally plain. scripts/ holds the build system, build_gapps.sh is the script the Makefile invokes, and four roots are defined by name: build/, cache/, out/ and log/. The root also holds scripts you will not meet in any tutorial, such as get_speechfiles.sh and show_apksignature.sh.

Source APKs are added one file or a marked beta set

Two scripts handle everything that happens after a build touches the source archive. add_sourceapp.sh puts updated source APKs into it, takes more than one file at a time, and accepts a list of paths that should be marked as beta so a release can ship some packages flagged and others not:

code
./add_sourceapp.sh [/path/to/the/files/you/want/to/add.apk]* [beta] [/apps/that/should/be/marked/as/beta.apk...]*

upload_sources.sh is the contributor path, running with no argument to publish for every architecture or with one or more architecture arguments to publish for a subset. report_sources.sh prints the inventory of what is locally available, and its advanced form takes filters and switches in one expression:

code
./report_sources.sh ( ([sdk] [archs]*) || [arch-sdk] ) && [hash] || [max*mb] || [min*mb] || [nobeta] || [nohelp] || [noleanback] || [nosig]

That covers sdk, architecture lists, hash, size ceilings and floors in megabytes, and toggles for beta packages, help text, leanback and signatures.

Prebuilt package support runs on forums, not the issue tracker

If you use the prebuilt packages rather than building, the repository sets expectations early. The project asks you not to file GitHub issues for problems with those packages: the issue tracker is used only for issues concerning the scripts themselves. Questions go to the wiki FAQ, and if that does not answer them, to an XDA Q&A thread or a Gitter chat, with a separate XDA development thread for reporting bugs in the prebuilt packages. Two artifacts are requested before anyone looks at a problem: the Open GApps installer debug log, and a logcat as well when the symptom is force closures. The repository does not document how to install a zip, so the install question is answered outside the code you cloned.

The zip exception is a compiler analogy with a condition attached

The licensing is built on an analogy the project spells out: Open GApps is to an installable zip what the GNU Compiler Collection is to a compiled program. The project itself is GPLv3 with an addendum called the Open GApps installable zip exception. The zip it produces is an assorted product whose components keep their various licenses, and the installer scripts inside it are still GPLv3. The exception then grants a choice: the author of an installable zip picks the license for that end product themselves, provided any changes to the project used to create it are published under GPLv3 together with the zip. So a fork can ship its own build under its own terms, and what comes back to the project is any change to the scripts, not the package.

Prebuilt packages are personal use only and no tag exists to pin

Two limits are easy to walk into. First, the prebuilt packages from opengapps.org are made available for personal use only and are not allowed to be mirrored to the public by anyone other than opengapps.org, so hosting them elsewhere is outside what the project permits. Second, the repository has no GitHub releases at all, which means there is no tag to pin a build to and no version number to quote when you report a problem. The default branch is master and its last push is dated August 12, 2026, so commit activity is current even though no published artifact is versioned. Two scripts in the root, get_speechfiles.sh and show_apksignature.sh, carry no documented usage on the project page, so their arguments have to be read out of the source before you run them.

Editorial conclusion

Use Open GApps when you need a zip built for a specific architecture and API level, or when you have to add a source APK yourself. Do not use it as a redistribution source for the prebuilt packages, and check the API list in the Makefile before assuming a given Android release is covered.

Frequently asked questions

What does OpenGApps do?

It is a shell script project that builds installable zips of prebuilt Android apps for a chosen architecture and API level. Prebuilt versions of those packages are hosted on SourceForge through opengapps.org.

How do I install OpenGApps?

The repository documents building, not installing, so installation questions are answered in the wiki FAQ and the support forums. Support requests are expected to carry the Open GApps installer debug log, plus a logcat when the symptom is force closures.

how to use opengapps

If you want to build your own version, clone the main repository, sync the submodules with the source script, install the Android build tools in your PATH, and run make for every platform or a target such as make arm-23 for one.

is opengapps dead

The default branch master was last pushed on August 12, 2026, so commits are landing. The repository has no GitHub releases, support for the prebuilt packages runs through the wiki, an XDA Q&A thread and Gitter, and the issue tracker is reserved for the scripts themselves.

is opengapps safe

The project documentation makes no safety claim. What it does state is a license boundary: the prebuilt packages from opengapps.org are for personal use only and may not be mirrored to the public by anyone other than opengapps.org.

Official sources

  1. Issues
  2. opengapps/opengapps on GitHub
  3. Project website
  4. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/opengapps-opengapps.svg)](https://hysenlabs.com/projects/opengapps-opengapps)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/opengapps-opengapps.svg)](https://hysenlabs.com/projects/opengapps-opengapps)

Was this useful?