Google has spent nearly half a decade attempting to make it easier for OEMs to keep their devices updated, most notably with the introduction of Project Treble in 2017. The company has previously proposed efforts to bring Android closer to the Linux kernel, something it’s finally attempting with the upcoming release of Android 12. At this week’s Linux Plumbers Conference, Google laid out how it’s planning to accomplish its lofty goal.
As reported by Ars Technica, Android is moving to a new “upstream” model and away from the traditional forked layout that can cause software delays. Before a device is upgraded, the Linux kernel goes through multiple forks — from Linux into “Android common,” then into the SoC-specific version, before finally reaching its device-specific iteration. That’s a ton of work for every company involved, and it’s one of the main contributing factors to Android’s fragmentation issue.
However, with the Generic Kernel Image (GKI) finally shipping with the latest Android version, this process should simplify over the next few years. Eventually, Google wants manufacturers to switch to a Kernel Module Interface, or KMI system, where all they need to do is slot in their respective changes to the core kernel. Instead of implementing three or four different forks, it’ll only need to be done once. As explained by Google software engineer Todd Kjos:
“The big push is to get all of the hardware-specific code out of the generic kernel and into vendor modules. One of the big parts of this effort is that we have to have a stable interface between those vendor modules and the generic kernel so that they can ship asynchronously.”
If this all sounds complicated, it’s because it is. Kjos admitted in his presentation that this is a “multi-year project,” and it’s not even one the team expects to complete. The timeline for shifting to an “upstream first” cycle for new features starts in 2023, with 2020-2022 dedicated to making it work for pre-existing functionality. The Pixel 6 is expected to be the first Android device to ship with the GKI and Linux kernel 5.10, marking an major step in this process.