Enabling Google Mobile Services on our Android Devices
The Android project (AOSP) is an open source operating system development project supported by Google. Google oversees this project’s general direction and the bulk of development. This project contains everything necessary to build Android but misses a few things necessary for creating a market ready hardware device and these include peripheral device drivers or processor architecture related optimizations. The Code Aurora Foundation (CAF) maintained by Qualcomm, serves their SoC driven ecosystem by hosting optimized, tested Android open source code needed to provide upstream enablement.
Google’s AOSP also doesn’t come with Google’s suite of proprietary software applications, such as its Chrome browser, YouTube, and even the Google Play Store. These are licensed separately as Google Mobile Services (GMS). Google Mobile Services (GMS) is a collection of Google applications and APIs that help support functionality across devices running Android. These apps collaborate seamlessly to ensure an excellent user experience on your device, right out of the box! GMS is thus necessary for many of Google’s applications to work as intended on your hardware device. As an Android device maker, having GMS allows you to distribute and sell devices with Google Play store and the other GMS apps.
The GMS core is a part of Android that’s not free and open-source software but is used by apps that want to connect to and use Google’s services. It works as a set of APIs (Application Programming Interfaces) that allow developers to use entities like Google Maps to show a location or Google Drive to store data or use Google Sign-in.
So how does a device maker get licensed for having the Google Mobile Services on their device? There are a list of prerequisites that a device should meet before it can be considered for GMS licensing. These prerequisites are elaborated in the document called CDD (Compatibility Definition Document) which is specific to every version of Android.
The most important criteria for handheld devices are:
- Since February 1st, 2020, devices based on Android 10 alone can be certified. Devices running Android versions prior to 10, such as Pie or Oreo cannot be considered for GMS Certification. In addition, the Android 10 should be based on kernel version 4.9.165+ or higher.
- The physical diagonal screen size of the device cannot exceed 18 inches.
- The device must have battery source for power.
Google has identified four 3rd party logistics (3PL) companies around the world who are authorized to test and certify devices for GMS. The infographic below shows the general process flow
The GMS Certification includes a set of mandatory tests that are elaborated below:
- Android Compatibility Tests (CTS Tests). CTS is a free automated test suite whose intent is to reveal incompatibilities early on, and ensure that the software remains compatible throughout the development process. Once the CTS tests are passed, the Compatibility Test Suite Verifier (CTS-V) which is a manual Test tool, is used to verify it.
- Compatibility Test Suite Verifier (CTS-V) tests – This suite provides tests for APIs that cannot be tested on a stationary device without manual input. Peripherals like camera, sensors, touchscreen, audio quality, etc. are typical examples.
- GMS Test Suite (GTS). GTS ensures that Google Mobile applications are compatible with the device. This test also verifies that the user’s data on the device is secure or not.
- Vendor Test (VTS Tests) – This suite automates the Hardware Adaptation Layer and OS testing.
Each of these test suites are version controlled and specific Android releases have to be validated with the corresponding suites alone, to be eligible for GMS licensing. The latest security patches available for that Android version must have been applied before submitting the device for certification. CTS and CTS Verifier test suites are available for download from the Android Open Source Project. GTS and VTS suites are available for Google Authorized partners or 3PLs alone.
Once all the test suites have run successfully on the device to be certified, the chosen 3PL submits the device for certification. The certified device that is now ratified by Google is ready to be shipped! The 3PL is basically the primary contact point for launch of the certified device.
A lot of what we enjoy in an Android device is dependent on the inclusion of the GMS Core and framework, Google Play Services, and Google “apps” that work behind the scenes to make everything work the way we like it to work. Google is adding more and more of its apps in to this framework with every new release of Android.
SMART Wireless is closely associated with a 3PL authorized by Google as a manufacturing partner for many years now and has high experience in enabling GMS license on its products based on Qualcomm Snapdragon processors.