OEMs must undergo Google Mobile Services (GMS) certification and obtain a GMS license to pre-install Google-specific apps on their manufactured devices. But GMS certification is a protracted process that adds costs and, due to the Android GMS certification timeline, can dramatically slow down the time to market.
Fortunately, alternatives to the features offered by GMS exist. This guide will dive into the GMS certification process, and discuss if certification is necessary and what other options exist.
Google Mobile Services is a suite of applications and Google APIs provided and licensed by Google. These services sit above the Android OS and don't form a part of the Android Open Source project, but many consumers have come to expect these services as part of the Android experience.
Android is created from the Android Open-Source Project. Everybody can create their own custom AOSP ROM. GMS apps and APIs are proprietary code that can be added into the Android operating system once it's permitted by Google.
GMS includes Gmail, Google Maps, Google Calendar, the Google Play Store, Google Search, YouTube, Google Drive, Google Chrome, Google Photos, Google Duo, Google Assistant, and Google Video.
GMS certification is required for the Google Play Services APIs, including APIs for:
If your device is GMS certified with Google Play Services installed, it'll have the option to use all the above apps and APIs.
No Google Mobile Services download will work on a non-GMS device. They will not work on a non-GMS device because it lacks the necessary API implementation.
Manufacturers need a license to implement GMS on their devices. Their devices must meet rigorous standards to obtain this license, requiring thousands of tests. This process is called GMS certification. Once you've passed the GMS certification, you can apply for a license from Google to use GMS.
The GMS certification Android process qualifies you to get a license from Google to use its apps and APIs. The license is called Mobile Application Distribution Agreement (MADA), but it's also often referred to as the GMS license.
To obtain this license, you must pass the GMS certification steps. You can apply for the Google GMS license only after your device has passed. People who want to know how to download GMS licenses misunderstand the concept of Android GMS certification. You must go through the GMS certification first to obtain the license second.
The license itself includes an agreement between your company and Google that you'll only use GMS per Google's requirements, such as:
Google GMS certification requires several steps beginning with an initial review comparing your product's authoritative hardware and software with Google's requirements. If these match, Google-authorized labs perform a battery of tests to verify the device's compatibility, security, and quality.
Google provides a Compatibility Definition Document (CDD) which precisely delineates the devices hardware and software requirements to be able to apply for a MADA with Google.
The CDD is updated along with each new version of Android because devices need to be running the latest version, or the version just prior, to pursue GMS certification.
The document can be considered a Google GMS certification list which lists all the GMS certification requirements in detail per device type, such as phone, tablet, TV, etc. It covers such things as device security and compatibility.
Let's look at the significant stages of GMS certification:
In the pre-check phase of GMS certification, your team compares your device's hardware and software with Google's CDD. If any mismatches occur, now's the time to handle them.
This stage of GMS certification is done internally, long before you send the device to be tested by 3PLs authorized by Google. If you are not an expert yourself, we recommend calling in a GMS specialist to review the specifications to avoid fixing errors later.
CDD specifications change when Google releases a new Android version. The latest Android version is Android 13. Devices running Android 13 now need at least 2 GB RAM and 16 GB storage to pre-install GMS products, as per the latest CDD.
This requirement excludes many embedded Android devices, such as Raspberry Pi models with only 512 MB or 1 GB of RAM.
Many other hardware requirements for GMS certification exist for Android 13 devices, from the obvious to the not-so-obvious, such as the need for touchscreen input for phones to detailed specifications on types of storage.
Once you've constructed your device and developed the software for it, you can start testing it to see if it matches the requirements of the CDD.
You carry out all the tests yourself until your device passes them all. After that, you submit the device and software to a 3PL authorized by Google to verify the tests. Some tests in the GMS certification process are automated, while others are manual.
This automated test suite tests the "mechanism" of compatibility through a series of over 300,000 tests. You run the suite from your desktop machine, which tests devices directly. Google recommends running these tests regularly during development to avoid discovering incompatibilities later on, which will be far more costly to address then.
Overall, the CTS verifies hardware and software compatibilities. It also checks code signatures, platform APIs, and permissions.
The CTS-V suite tests the functions that require manual input and interaction. It also looks at audio quality, camera functionality, the accelerometer, and other sensors.
The VTS tests the kernel and Android's hardware abstraction layer (HAL) extensively. Like CTS, the VTS tests are all automated. Most of the tests are "gtest-style," meaning they use Google's gtest framework, written in C++. These tests run directly on the device.
Other tests include Linux kernel tests, JUnit-style tests (JUnit is a popular Java testing framework), and a few Python tests that get executed using shell commands against the device.
These GMS certification tests determine if the GMS apps have been properly integrated and ensure that user data is adequately protected.
This test suite ensures the device is secure and that any vulnerabilities are appropriately fixed. The suite is regularly updated so manufacturers can quickly fix newly discovered vulnerabilities.
Once licensed, when users click on Settings in the Google Play Store, they'll see "Device is certified" under the label "Play Protect certification."
Google doesn't publicly disclose its licensing agreement costs, although based on an article written in The Guardian in 2014, Android Police calculated the cost at around $0.75 per device. Google denied this. The Verge reported in 2018 that this fee might be as high as $40 per device, which the magazine said was revealed in confidential documents.
We might not know the cost of the GMS license itself, but the GMS certification cost can be calculated by getting quotes from 3PLs. One website estimated the 3PL costs alone at between $10,000 and $15,000 per model for testing.
The GMS certification procedure also adds time to device production and forces companies to use more powerful hardware, which might be more expensive.
From a consumer perspective, GMS certification means users can have the experience they've come to expect from commercial Android devices. In a business context, the matter is less clear.
Custom Android ROMs provide far more flexibility to businesses that want to create their own fleet of devices. But these ROMs might use features that don't match Google's CDD. GMS certification also adds cost and time per model.
Especially in an enterprise or industrial context, the need for GMS is overrated. Many companies providing industrial devices and apps believe they require the Google Play Store. Still, other stores offer excellent security. Companies can also create their own private app store easily, which is the ideal solution in an enterprise setting.
Providing a private app store for multiple product lines will be a more secure and cost-effective way of deploying apps in the long term. Especially compared to getting every single product line through GMS certification.
Fortunately, emteria.OS is an Android version that works on a wide variety of hardware configurations out of the box. It comes with support for private app store solutions and includes built-in mobile device management (MDM) features that operate through privacy-aware servers.
Emteria's solution to provide custom Android OS for its customers is independent of Google but backed up by a strong team to ensure your devices receive updates regularly and your fleet and apps remain secure.
GMS certification is mostly not necessary in an industrial context. By using emteria.OS, you can get a fully-featured Android version with all the essential enterprise features without investing heavily in the GMS certification and licensing processes.