GMS certification: A complete guide from requirements to submission

Google mobile service

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. 

What is Google Mobile Services?

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. 

What apps are included in Google Mobile Services?

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:

  • Google Maps
  • Google Pay
  • Google Play Games Service
  • Google Sign-in (One Tap)
  • Location Services
  • and many other functions that enrich your Android device with the expected Android experience. 

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. 

What is a GMS certification?

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. 

Difference between GMS certification and a license

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:

  • You cannot develop derivative works from Google's proprietary apps.
  • You cannot display ads while launching a Google Application.
  • Your license is restricted to a particular geographic region.

How do I get Google GMS certification?

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. 

Steps for GMS certification

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:

GMS certification stages

Step 1: GMS pre-check stage

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. 

Step 2: Testing stage (the lengthiest stage)

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. 

GMS testing stage

Compatibility Test Suite (CTS)

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. 

Compatibility Test Suite Verifier (CTS-V)

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. 

Vendor Test Suite (VTS)

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.  

GMS Test Suite (GTS)

These GMS certification tests determine if the GMS apps have been properly integrated and ensure that user data is adequately protected. 

Security Test Suite (STS)

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. 

Step 3: Approval and product launch phase

undefined-4Once you've successfully conducted all the GMS certification tests yourself, you can send the device and software to a 3PL to verify the results. If they confirm that all the tests were passed, this is recorded by Google, and you can finally apply for a GMS license. 

Once licensed, when users click on Settings in the Google Play Store, they'll see "Device is certified" under the label "Play Protect certification."

How much is a GMS License?

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.  

GMS certification costs

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. 

Pros and cons of Google Mobile Services certification

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. 

Pros of GMS certification for consumer devices:

  • Familiar interface. Users see what they believe is "true" Android. 
  • Guaranteed adherence to basic standards of quality and reliability. 
  • Access to the Google Play Store and its security features. 
  • Mainstream apps are more likely to function because of reliance on Google APIs. 
  • Potentially increased productivity due to familiar apps being installed. 
  • Enforces using the latest or second-latest Android version, potentially improving security. 

Cons of GMS certification for consumer devices:

  • Additional costs to develop. If Google's GMS license fees are indeed $40 per device, these costs get pushed to the end user. 
  • Reduced flexibility for device customization. 
  • Slower time to market. 

Pros of GMS certification for enterprise and industrial devices:

  • Ensures compliance with basic standards for device performance. 
  • Validates the device's security features. 

Cons of GMS certification for enterprise and industrial devices:

  • Adds cost and time to the manufacturing process. 
  • Reduces flexibility which might be a dealbreaker in an industrial context. 
  • Locks the enterprise in with Google and Google services, which might not be desirable, especially in jurisdictions with stringent privacy regulations. 
  • Locks the vendor in to the latest or second-latest version of Android, which might be too resource-intensive for basic devices. 
  • App bloat. 
  • Potential malware risks because of the Google Play Store. 

Alternatives to GMS certification

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. 

Build unique Android products, keep them up-to-date

See why emteria is the chosen Android™ customization & management platform for product builders — build Android products based on your requirements without GMS.

Book live demo
GMS(7)

Table of contents

emteria Demo
See emteria in action