When it comes to testing new features and rolling out new features in apps built by Google, most of the time it depends on flags found in the Google Play Service's phenotype database (Phenotype.db). These flags are controlled by Google and they can enable and disable them using their servers for specific Google apps and specific features.
Some flags are plain text and sometimes they are just numbers. Plain text flags can be easily read and we can guess what they do, but when it comes to flags which are numbers, they are kind of encrypted flags and only Google knows which flag is doing which thing.
An average user have no control over these switches which Google likes to flip often, but if you have a rooted Android phone, you can easily do it with GappsMod app.
What's is GappsMod ?
GappsMod (formerly GoogleDialerMod) is an app built by Jacopo Tediosi which allows you to switch flags present in the GMS phenotype database. It is an Open source app and is available to download on GitHub. Its a well built app with Material You design and an annoying minor bug (will explain later in article) In addition to flipping flag switches in GMS, you can also flip switches of Google Play Store which has its own separate phenotype database.
GappsMod also have some prebuilt options to enable certain in Google Messages and Google Dialer. Depending on which version of these apps you use, they can work completely fine or they just don't because Google often changes, adds and remove flags.
Features of GappsMod
- Enable and Disable flags.
- Search and filter flags. Enabled/Disabled/Changed/Unchanged
- Suggested mods (enabling some features in Google Message and Phone)
- Enabled/Changed flags are highlighted
- Revert Flags by package name or revert everything.
Things to know before using GappsMod
The first and most important thing is that you need a rooted phone. It's not possible without it (not with shizuku or adb as well). There are some other things you should know if it's your first time using GappsMod
- Package Name - Each Google app have a particular package name and there can be multiple package names in each app. Sometimes it is same as the app package name itself like com.google.android.dialer and sometimes it's like com.google.android.dialer#com.google.android.dialer. GappsMod displays app icons before package name, so it's easy to recognise which package name belongs to which Google app.
- Flags - Each package name have their own set of flags. Some flags are enabled by Google already and some are disabled. Sometimes a feature can work by enabling a certain flag but also can require enabling multiple flags for a feature depending on how Google is doing it.
How to use GappsMod
Using GappsMod is simple as it can be. You have to choose package name first and it will list all flags associated with that package name. The difficult thing is - if you are looking flag for a particular feature in a particular app, then you have to go through all the flag or search a term similar to the feature. You may find what you need or you won't because Google does not keep every feature behind flags. There are more things involved and it simply can not be explained easily.
If you are looking for particular flags, I have a channel on telegram where I share flags which you can use to enable new features. (Check end of the article for links)
The minor and negligible issue with GappsMod is sometimes when selecting a package or scrolling the package list, GappsMod crashes itself. It is a know bug and developer will fix it when he get time to work on the project again. He has some new features planned for the GappsMod. Keep checking on GitHub for further updates.