One of the greatest strengths and weaknesses of Android is its wide range of software options. Samsung, Huawei, Sony, and even Google offer their own Android capabilities with their own unique features and ideas to improve the underlying software. All of this is made possible by a common core operating system that provides basic functionality. All the Android OS variants you know and love are based on AOSP – Android Open Source Project.
AOSP is an open-source operating system project maintained by Google. Since the source code is open, anyone can freely view and contribute code and fixes to the project repository. However, Google oversees its overall direction and the bulk of the development. AOSP is regularly updated to include the latest bug fixes and security patches for Android. Google also introduces major new OS features annually at the I / O conference. Android 11 is the latest version, and Android 12 will be released later in 2021.
The Android open source project not only allows third-party developers to make changes but can also be used free of charge under a special license. Manufacturers like Amazon and Samsung are free to edit the project for their own purposes and develop their own products like Fire OS and Tizen. This proved to be an important factor in the continued development of Huawei EMUI and Harmony OS following US trade sanctions and the loss of access to Google apps.
It’s also important to note that most smartphone manufacturers get AOSP versions from SoC (System On Chip) vendors like Qualcomm. This is because Android has to adapt to low-end hardware with drivers, which we’ll later discuss. Historically, this has been the reason for the delay in Android updates. Ultimately, Google is pleased with this position, as it encourages developers to use Android for a wide range of Internet-connected gadgets. In turn, many companies are making fixes and improvements to the OS. This is a win-win.
AOSP is a complex, layered structure
I am sure that in the minds of many, operating systems are like complex living organisms. AOSP is a layered system and provides many tools for both hardware and software developers.
At the “lower” levels, device manufacturers modify the OS to work with their hardware. The Linux kernel, for example, is the backbone that manages the resources of the processor, system memory, networking, and so on so that everything works right.
Application developers use Higher-level layers. Native Libraries allow developers to create content using widely supported low-level libraries such as OpenGL ES, Webkit, etc. In addition, Android Frameworks provides application developers with plug-ins for common OS features that we all use every day. They range from location data and push notifications to phone calls. The Android Runtime is an intermediary that transforms application code into code that the processor and other hardware can understand.
Collectively, the Android Open Source Project is a complete solution for Android hardware and software developers.
However, AOSP is not just an ever-growing codebase. Google also provides design and development tools for projects ranging from interoperability documentation to security best practices and application development principles. Google also offers test suites to help developers make sure their devices implement APIs and functions correctly.
AOSP vs. Android: they are not the same
The Android Open Source Project is often confused with stock Android, although AOSP is only its core.
The AOSP contains everything developers need to build Android but does not include everything needed for a finished smartphone. First, Google and AOSP cannot provide kernel drivers for every hardware configuration. By device driver, we mean the firmware required for a phone’s hardware, such as a processor or cameras. Smartphone and system-on-chip manufacturers such as Qualcomm and Samsung must include these drivers in their Android build. This is partly why updates take time.
AOSP also doesn’t ship with Google’s suite of apps like the Chrome browser, YouTube, and even the Google Play Store. It also does not include several hidden Google technologies and APIs that enable features such as mobile payments, voice commands, and cloud storage. They are licensed separately as Google Mobile Services.
When Huawei lost access to American technology, it could no longer license the GMS but could continue to use AOSP. Thus, Huawei has begun to replace the GMS functions with its own Huawei Mobile Services. However, this means that applications that rely on GMS must be rebuilt using HMS to function properly.
Any manufacturer wishing to install GMS on top of Android must obtain a GMS license and Mobile Application Distribution Agreement (MADA) for their device, and then pass several tests: for compatibility with Android (CTS) to validate software and hardware components and APIs, then Google Mobile Services (GTS) test suites and Vendor (VTS) for testing multimedia capabilities, OS kernel, and HAL capabilities. Another prerequisite for obtaining a GMS license is to preload several Google apps on a new device.
The distinction between AOSP and GMS came into play after the US-China trade dispute.
The future of AOSP: a new operating system is coming
The Android Open Source Project continues to be the backbone of Android’s success with countless hours of developer involvement worldwide. While Android devices aren’t going anywhere anytime soon, Google is already looking for the operating system of the future.
Google Fuchsia first appeared on GitHub in August 2016, but we’ve heard little about it since then. We still don’t know much about Fuchsia and whether and when it will hit consumers. It looks like Fuchsia is designed for an even wider range of devices than Android. It also has Google’s own non-Linux kernel called Zircon and supports the Google Dart scripting language. Fuchsia is currently free and open-source software just like Android. Hopefully, Google’s plans remain unchanged.