Google today dropped a blog post detailing its progress on improving the Android ecosystem’s update speed. The company has been hard at work for the past few years modularizing Android, with the hope that making Android easier to update would result in device manufacturers pushing out updates faster. Google’s efforts have been paying off, with the company announcing Android 10 has had the fastest rollout ever.
The last few versions of Android have each brought a major improvement to Android’s update system. Android 8 introduced Project Treble, which separated the OS from the hardware support, enabling easier porting of Android across devices. In Android 9 Pie, Google completed its work on Treble and started publishing Generic System Images (GSIs): drop-in versions of Android that work on any Project Treble-compatible device. Android 10 introduced Project Mainline and the new APEX file type designed for updatable lower-level system components, delivered through the Play Store.
Google’s stats show that all this work is actually improving the ecosystem. “Thanks to these efforts,” Google writes, “the adoption of Android 10 has been faster than any previous versions of Android. Android 10 was running on 100 million devices 5 months post launch—28% faster than Android Pie.”
At the end of the chart, Android 10 hits 400 million users at the 300-day mark (Android 10 is 310 days old), which sounds like a pretty big number. As of last year though, Google said there were 2.5 billion active Android devices out there, so 400 million users works out to 16 percent of the active Android install base. It’s great that adoption is increasing from Oreo to Pie to Android 10, but there’s still a lot of room for improvement.
The next up: the Linux kernel
The next great frontier for Android updates is a more portable Linux kernel, instead of the heavily forked, device-specific Linux kernel that every Android device uniquely spins up today. We last wrote about this project back in late 2019 when the plans to build a “Generic Kernel Image (GKI)” for Android were the first discussed. The goal was a kind of “Project Treble for the Linux kernel.” Instead of the fork-happy process that exists today, a portable Generic Kernel Image could be used, and proprietary drivers and code could be loaded as kernel modules, with a stable interface between the two codebases. This was also talked about in conjunction with shipping the mainline Linux kernel instead of an Android-specific Linux, meaning you could run Android on the same kernel you’d get in a Linux desktop.
Today Google announced that, in Android 11, the GKI system will be up and running. Google says “In Android 11, we are further isolating common code in the Android Linux kernel to create a Generic Kernel Image (GKI) that works across all Android devices, as well as to enable faster security deployments.”
The “Android Linux kernel” specifically means “not the mainline Linux kernel,” so this is still a fork, but it’s integrating a kernel into an Android build, and doing minor security-version updates should be easier now. Today, the Linux kernel gets forked three times before it hits a phone: the LTS release gets forked into the “Android Common” kernel by Google with Android OS-specific changes, then that gets forked into an SoC-specific kernel (usually by Qualcomm), then that gets forked by the device manufacturer into a device-specific kernel. The GKI would take the Android Common kernel—the first fork—and run it on a device. So it’s still a fork, but it’s less of a fork.
XDA’s Mishaal Rahman says he’s seen the unreleased Android 11 version of the Android Compatibility Definition Document, or CDD, which are the rules all manufacturers must follow in order to license the Google apps. He says that, just like with the Generic System Image, running the Generic Kernel Image will be part of Google’s certification process. All Google Play devices wouldn’t have to prove they can pass Google’s Compatibility Test Suite with an untouched OS and kernel. Presumably, like in the case of the Generic System Image today, manufacturers won’t be expected to ship with this generic code, it would just be used as a benchmark for the drivers and other proprietary code that ships with the phone. Presumably, like with the GSI today, modders will have a bonanza with generic Android kernels.
Google says to “Stay tuned for a more detailed post on GKI in the coming months.”
Listing image by Google