The AOSP manifest contains various tags like android-platform and android-security, which can be hard for beginners to understand. This article will guide you through most of the tags and their usage.
Understanding these branches is crucial for anyone looking to contribute to or customize the Android Open Source Project. By knowing which branch to use, you can streamline your development process and ensure that your contributions are aligned with the latest updates and security patches.
This article will use Android 14 as a reference, and the information can be applied to all Android versions released before and after.
main
The "main" branch in the Android Open Source Project (AOSP) is the central development branch for the latest version of the Android source code. It's where active development takes place. It can be considered the source of the upcoming Android version. For example, right now the main branch includes the source code for the upcoming Android 15.
android-14.0.0_r1
This type of tag with "android" + "Version" + "release" represents the main release of Android, including all the tools, libraries, and components of that version. Most developers use this release to create their own versions of Android.
android-security-14.0.0_r1
This type of tag with "android"+"security"+"Version"+"release" includes the commits related to the security fixes from the Android Security Bulletin(ASB). This branch can directly be merged with the main release of android. This branch is used to upstream the android codebase with the latest security fixes.
android-platform-14.0.0_r1
This type of tag with "android"+"platform"+"Version"+"release" is used to separate the core platform components of android like the framework, core libraries from the rest so that the developers working on the fundamental aspects of the Android platform, such as the system architecture or core libraries can refer this tag.
android-cts-14.0_r1
This type of tag with "android"+"cts"+"Version"+"release" includes all the tests and tools required to verify that a device or software build complies with Android 11 compatibility standards set by Google. Device manufacturers and developers use this tag to test their devices and ensure they meet the Android 11 compatibility requirements before releasing them to the market.
These are the most common branches you will encounter during your AOSP journey. Each branch serves a specific purpose and helps developers in different areas of Android development. There are many more branches, each with names that usually explain their purpose, such as those for specific hardware support, experimental features, or bug fixes.
Thanks for reading this article. I hope it cleared all your doubts about the different types of branches in AOSP. If you have any more questions or need further clarification, feel free to add a comment below! Your feedback is always welcome, and I'm here to help you on your Android development journey.