Android, as some already know, is an operating system (OS) made available by Google under an open source license. It focuses on mobile devices such as smartphones and tablets, but is also present in other interfaces for TVs (Android TV), cars (Android Auto) and wristwatches (Android Wear).
Android is the most widely used mobile operating system in the world, selling more than electronic products with other operating systems. The reasons for its high popularity are related to it: being open source based and having calendar of regular updates, periodic OS optimization and development support.
Google, the current holder of the Android “brand”, has a number of applications and services that run on devices with Android OS. These proprietary Google apps and services that make up its essence — like YouTube, Gmail, Google Play Store, Google Maps, Google Photos etc. — are known as GMS, which means Google Mobile Services.
Most Android OS users expect these basic GMS apps to be available immediately Out-of-the-Box (OOTB) — coming pre-installed on the device — or via Over-the-Air (OTA) —downloaded from the Play Store with Wi-Fi or mobile data —, with smooth, flawless functionality. This expectation is an important consideration when planning and developing a new Android-based device.
Google has a number of requirements for device manufacturers, the famous OEMs (Original Equipment Manufacturers), who want to sell mobile devices with GMS already installed. To ensure that these requirements are met, Google has manufacturer’s licensing processes and requires certification of the product to be marketed.
Thus, there are two ways for OEMs to market devices with the Android operating system:
- As stated earlier, Android is an open source operating system. Thus, its commercialization is independent of GMS, which means that the certification is not mandatory.
- If an OEM wants to add all of the proprietary applications and/or services that make up the essence of Google to its device, it will need to obtain a Google certification.
For OEMs wishing to sell devices based on the Android OS with all of the Google applications, it is important to keep in mind that it is necessary to submit these devices to a variety of tests and compatibility processes designed by Google to obtain their certification.
GMS License and GMS Certification
The GMS license, also known as the MADA (Mobile Application Distribution Agreement), is the permission granted by Google for an OEM to use the set of GMS applications and services on the devices it manufactures. It is a prerequisite for a GMS certification — the manufacturer must have the GMS license or be associated with a licensed organization. The GMS license is a non-transferable and non-exclusive permission.
The GMS certification is confirmation that a specific device meets Google’s performance requirements, runs Google apps correctly, and can be released to the market with the GMS suite of apps and services. Simply put, the GMS license is for the brand or manufacturer, while the certification is for the device.
Applying for a GMS license
To apply for the GMS license, it is necessary to fill out a website application form. The request must be made in advance of the release date of the product you wish to license, as it may take a long time for Google to respond.
After all the information is submitted, Google will review the request, the company, and the products. After a successful review, Google will provide the MADA, which is the GMS license.
Applying for a GMS certification
The process of applying for and obtaining a GMS certification has different steps that need to be completed and that have direct impact on the device being developed. It is very important to consider the process of applying for a certification when planning for product development, because not estimating the time needed to obtain the certification can stop production lines and generate large losses.
The different steps in the process of applying for and obtaining a GMS certification are described in more detail below:
Typically, product design begins with the conceptualization and/or proof-of-concept phase. It is at this initial stage that the hardware components of the product are defined, such as the type of LCD that will be used, the quality and quantity of cameras that the device will have, product design and type of finish (whether it will be hard plastic or metal), for example. This cycle can be repeated many times, going through several improvements until the desired quality is reached, and then finalized.
After the device’s hardware components have been approved, some aspects should be considered, such as: which OS will be used, production time issues, issues related to product marketing and testing (of both hardware and software).
Product features, mechanical form factor, budget for GMS activities etc. should be considered during the initial phase of the product life cycle, avoiding future surprises. GMS certification is also a feature that cannot be left to a later stage of product design, as problems in the certification process can generate expenses of around $800 to $1000 for each GMS certification application submission attempt.
GMS Pre-Check Cycle
This is a cycle directly related to the development of the software that will be used in the device.
In order to receive GMS certification, a device must meet all the requirements mentioned in a document called Compatibility Definition Document (CDD). This document lists the requirements that must be met so the device is compatible with the latest version of Android. CDD represents a “policy” of Android compatibility.
The Android Open Source Project (or AOSP) — a website and repositories that provide the information and source code needed to create new products that use Android as OS — is the reference and preferred implementation of Android. It is recommended that developers base their implementations on the “upstream” source code as much as they can.
The document as a whole contains 13 sections, distributed among recommendations for: Device Types, Software, Multimedia Compatibility, Security etc. Based on these recommendations, developers can ensure that the new product is compatible with the Android platform and, therefore, is eligible to apply for a GMS certification.
The GMS pre-check and development cycles are complementary and, many times, they start in parallel. The development cycle is focused on the device’s software implementation. In this cycle, the source code of Android is downloaded through the Android Open Source Project and the changes are carried out as desired by the OEM, following the suggestions in the CDD.
These changes can vary immensely, from the look of UIs (User Interfaces) to implementations of new functionalities and the addition of new applications in the OS, if so desired by the OEM.
Once all implementations are done, a binary is generated, which will be used to “flash” the devices that will be manufactured.
One remark: it is not enough to simply download the binary and try to use it on any device, it will not work. Every binary is unique, because, in each of them, there are drivers of the components of that specific model. There are OSes from Android Open Source Project that come with Google’s standard drivers, and can be used in its model, the Pixel. For the others, it will be necessary to board all the drivers of that model.
Briefly we have these steps:
- The Android team publishes the open source code for its latest version;
- OEM manufacturers, the companies that manufacture the chips that power the Android devices, modify the new version for their specific hardware;
- OEM manufacturers give the new modified version to device manufacturers, the ODMs (Original Design Manufacturers) — the companies that design and manufacture Android devices. ODMs modify the new version as needed for their devices;
- ODMs and OEMs work to test and certify the product;
- ODMs make the new version available to users.
When the product is ready and the Android OS has been added, it’s time to run a set of pre-defined tests by Google. The tests will check the security, performance, and compatibility of the device with the Android operating system and Google Apps. The tests are based on Tradefed (Trade Federation), an Android continuous testing framework designed to run tests on devices using Android OS.
The purpose of this article is not to show all the tests that will be performed during the certification process, but to present some of them to give an idea of what these tests are about.
VTS – Vendor Test Suite
The Vendor Test Suite (VTS) consists of a set of frameworks and test cases designed to help improve the robustness, reliability, and compliance of the Android system (e.g. HALs and libraries) and low-level system software (e.g. kernel, module, and firmware). In order to test this, VTS has two main types of test sets: automated and structural.
Although VTS and its test cases are designed for debug/engineering binaries (commonly known as “eng”), some test cases can also be run on user binaries through the VTs Agent App.
VTS is directly linked to Project Treble, a Google project whose main concept is to separate vendor implementations — device-specific lower-level software, written largely by manufacturers — from the Android OS Framework. Thus, VTS conducts tests aimed at the lower layer of the Android Architecture, checking compatibility of the OEM device and the Android system.
CTS – Compatibility Test Suite
Its test set is designed to be integrated into the daily workflow (through a continuous construction system) of the engineers building the device. It is meant to reveal incompatibilities right from the beginning and ensure that the software will remain compatible throughout the software development process.
Information obtained through the website https://source.android.com/compatibility/cts, in which you can find more information about the types of test and their coverage areas, for example.
CTS Verifier is an add-on to CTS, also available for download. It provides testing for APIs (Application Programming Interfaces) and functions that cannot be tested on a stationary device without manual input (e.g. audio quality, accelerometer etc.).
Thus, CTS Verifier is a tool for manual testing that checks APIs and software components that cannot be automated. It runs on the Device Under Test (DUT) and collects the results. Scripts run on the desktop machine to provide additional data or control for some test cases in the CTS Verifier application.
In addition to these, there are some tests that OEMs will only be able to obtain through Google, as they are not found or marketed otherwise. They are:
GTS – GMS Test Suite
GTS is a proprietary automated testing suite from Google. It verifies the compatibility of Google Apps with the Android device. Thus, these tests check whether the GMS apps have been properly integrated and whether other device configurations are in accordance with the contractual terms that have agreed upon. In addition, GMS test sets also perform various security-related tests to check whether the user data on the device is safe or not.
STS – Security Test Suite
In addition to tests that check compatibility and performance aspects, Google also requires that the device’s security is guaranteed. Therefore, safety test suites are mandatory for GMS certification. STS (Security Test Suite) is a new set of security tests for CTS.
To ensure the safety of devices, it is important that the tests are always updated. In order to do that, bulletins that list possible security vulnerabilities are opened monthly, so that device manufacturers can any bugs found in the system.
Thus, STS is updated monthly and helps OEMs verify that:
- The device is not vulnerable;
- The vulnerabilities have been correctly fixed;
- Safety tests have been properly applied.
After all the results of the test sets have been approved, the device is ready. However, before it is submitted directly to Google, it must be sent to a 3PL for checking, to guarantee that that model is following all guidelines imposed by Google.
3PLs (Third-Party Logistics) are Google-authorized laboratories, whether the OEM itself or a third-party, to provide GMS certification. They conduct independent testing on behalf of Google across a wide variety of features and performance requirements.
Thus, the 3PLs ensure that the device and OEM comply with the CDD by performing a series of different test sets (the ones mentioned above and some others) to validate the product and verify the its compatibility with the GMS certification. After going through this review, the software is sent to Google for approval of the GMS certificate.
After the device obtains its GMS certification, it will be registered with Google. This certification can be seen in the Google Play store setup menu, in the Play Protect certification item, as shown in the image below:
To keep the GMS certification active, you must follow the rules in the MADA and ensure that possible bugs from OEMs or Google’s Android OS are resolved. For this purpose, software Maintenance Releases (or MRs) are generally made available. MRs must go through the same testing steps as a submission for GMS certification in its updated versions. For cases of updates focused on ensuring the security of the Android OS, SMRs (Security Maintenance Releases or Security MRs), which perform modifications and tests in order to ensure whenever the OS is as up-to-date and secure as possible, can be performed.
After the device obtains the GMS certification, it is approved by Google to be released in the market with all of its applications and services.
This article describes the process Android device manufacturers need to follow if they want their products to include Google apps and services. This is not such a simple process, as its cycles may need to be repeated countless times.
The tests can take from 3 to 20 hours of execution, not counting the numerous repetitions and attempts to reach the desired goal of 0 failed cases. Considering that a CTS test cycle, for example, can have around 1,166,202 cases of tests performed, not to mention the GTS and STS tests, testing may take quite a long time.
With an even stricter policy towards uncertified devices, Google tries to disable the GMS apps and services that make up its essence (such as Play Store, Maps, Gmail, YouTube, etc.) for all devices that do not have GMS certification and use all these services illegally. On some non-certified devices, these applications may still work, but no one can guarantee that mobile applications that are compatible with these devices will continue to run. This can happen unexpectedly and without additional notifications.
The certification will ensure some advantages to devices, such as:
- Availability of OTA software updates;
- Full device compatibility with Google OS and apps;
- App stability;
- Latest updates for apps;
- Proven safety;
- Access to a large set of Google apps on Google Play.
Google seeks to make sure that all of the latest devices are developed to the latest hardware requirements and to ensure the stability and performance of the Android operating system. All this are related to the reputation of Android and the satisfaction of end customers.