Google has been looking for ways to make it easier to maintain Android , the operating system that governs the vast majority of active smartphones. To do this, the search giant has been working for years to adjust the Android kernel to the official Linux branch , causing third-party drivers to be installed through a mechanism called Project Treble, which was presented in 2017.
In other words, Google wants to tune the Android kernel to the Linux kernel in order to offer a generic kernel for all devices. The company has long been working towards that goal, and indeed it appears that the Android 12 release will see significant progress in that regard, as Google software engineer Todd Kjos has presented a report at the Linux Plumbers Conference. in which it is said that the aforementioned version of the system will be close to the main Linux branch by supplying end users with a Generic Kernel Image (GKI) .
Android’s relationship with Linux has had notable disappointments and disagreements. The disappointment has been mainly because what promised to be a “white knight” of free software has ended up eaten by Google services and the proprietary implementations allowed by the Apache license. The disagreements come because some of the parts of Android present in Linux left and came back from the original project, without this being much less the end of the Linux bifuration by Google.
The search giant forked Linux at the time in order to add specific changes aimed at mobile phones, creating “Android common”. Then the SoC manufacturers, including Qualcomm, Samsung and MediaTek, forked “Android common” in order to create a specific kernel for their chips, the second product being forked once again to adapt the kernel to each specific device.
As we can see, the Android kernel goes through three branching processes before reaching a device , which ends up making troubleshooting complex because the patches have to go down the branching tree until reaching the users. end, generating a problem derived from fragmentation. The official Android documentation notes that “these modifications can be extensive, to the point that up to 50% of the code that runs on a device is code outside the tree (not from previous versions of Linux or the common kernels of AOSP) ” .
After exposing the panorama, it is obvious that Google’s intention with the GKI is to reduce the number of branches from three to one, making there a common generic kernel for all manufacturers and leaving space for their customizations with Project Treble , through which the company intends to build a Generic System Image (GSI) to be able to update Android regardless of the hardware support.
Google wants to take hardware-specific code out of the Android kernel and put it in vendor-supplied modules so that they can be delivered asynchronously from the generic kernel through a Kernel Module Interface (KMI for short). English).
Todd Kjos has acknowledged that the transition process is far from easy, that it would require several years of work and that there is a chance that it will not be completed. The company expects to be able to shift to an upstream cycle for new features in 2023 while dedicating the years 2020-2022 to working on existing features and isolating vendor shifts towards modules.
In order to at least lay a foundation for the new kernel approach, the Google Pixel 6 is expected to be the first Android device to ship a GKI version 5.10 kernel, which at least it would be an important step towards the direction that the search giant wants to mark.