Google has spent nearly half a decade trying to make it easier for OEMs to update their devices, most notably with the introduction of Project Treble in 2017. The company has previously proposed efforts to bring Android closer to the Linux kernel, what she finally tries. with the upcoming release of Android 12. At this week’s Linux Plumbers conference, Google explained how it plans to achieve its lofty goal.
As reported by Ars Technica, Android is moving towards a new “upstream” model and moving away from the traditional fork layout which can cause software delays. Before a device is upgraded, the Linux kernel goes through several forks – from Linux to “common Android”, then to the SoC-specific version, before finally reaching its device-specific iteration. That’s a ton of work for every business involved, and it’s one of the main factors contributing to Android’s fragmentation issue.
However, with the Generic Kernel Image (GKI) finally shipped with the latest version of Android, this process should become easier over the next few years. Eventually, Google wants manufacturers to switch to a kernel module interface, or KMI system, where all they have to do is insert their respective changes into the main kernel. Instead of implementing three or four different forks, this will only need to be done once. As Google software engineer Todd Kjos explains:
“The most important thing is to extract all hardware-specific code from the generic kernel and into vendor modules. One of the big parts of this effort is that we need to have a stable interface between these vendor modules and the generic kernel, so that they can ship asynchronously. “
If this all sounds complicated, that’s because it is. Kjos admitted in his presentation that this was a “multi-year project” and that it wasn’t even a project the team expected to complete. The timeline for moving to a “first upstream” cycle for new features begins in 2023, with 2020-2022 dedicated to making it work for pre-existing features. The Pixel 6 is expected to be the first Android device to ship with the GKI kernel and Linux 5.10, marking a major milestone in this process.