Because Android is open source, it gives device makers the freedom to customize the software as they please. However, in order to ensure a level of consistency between Android devices, Google has cleverly leveraged their suite of popular Google apps and services to mandate that device makers follow a specific set of rules under the Compatibility Definition Document (CDD). A device maker must follow the CDD to pass the Compatibility Test Suite (CTS) so they can be allowed to pre-load their devices with Google apps and services. Previously, it was possible for uncertified devices to still make use of Google apps (shortened as ‘Gapps’ by the community), but now it appears that Google is cracking down—while still allowing custom ROM users to use Gapps!
Earlier this week, we received an anonymous tip from a person claiming to be within the industry. This person, who said they worked for an OEM/ODM, notified us that Google has started entirely locking out newly built firmware from accessing Gapps. This change apparently went into effect March 16th and affects any software builds made after this date (Google Play Services checks
ro.build.fingerprint for the build date apparently).
I reached out to my own contact in the industry who said this change was a year in the making as Google had provided prior warning to device makers, but my contact was unable to reproduce the issue on their own test device. Indeed, doing a quick search on the web reveals that people have been coming across this problem for at least a year, but could easily solve it by clearing Google Play Service’s data. What this new change might mean is that this workaround will no longer work, as Google’s A/B testing is over and the restriction will now be enforced more widely.
As you can see in the image above, the user is disallowed from signing in to their Google account because their device is uncertified. You have a few options here, depending on if you are a user or an engineer from a device maker. Users can point out this warning message to the company they purchased a device from in hopes of getting a certified device, or if they are a custom ROM user (such as with LineageOS 15.1) then they will need to enter their Android ID at this page in order to be white-listed. An easy way to get your Android ID is to enter “
settings get secure android_id” in ADB shell.
For device makers, you will have to go to this webpage in order to contact Google to have the device registered. From what my contact says, this move by Google is to ensure that device makers can’t simply bypass Google’s CTS and ship devices with the promise that users can simply side-load Google Play apps and services. Doing so will now bring up these warnings which will shame device makers and force them to go through the proper certification channel.
When we first heard of this change from our tipster, we were initially worried of its impact on the custom ROM scene. Thankfully, it appears that Google acknowledges our existence and will allow us to continue using Google apps and services unofficially. Kudos to Google!
Rojenx is a leading concept artist who work appears in games and publications
Check out his personal gallery here