Enlarge /. Google's Android adoption table. The "300-day" mark of Android 10 was 10 days ago.
Google today published a blog post that describes the progress made in improving the update speed of the Android ecosystem. The company has worked hard to modularize Android in recent years, hoping that an easier update to Android would result in device manufacturers releasing updates faster. Google’s efforts have paid off. The company announced that Android 10 had the fastest rollout ever.
The latest versions of Android have significantly improved the Android update system. Android 8 introduced Project Treble, which separated the operating system from hardware support and made porting Android between devices easier. In Android 9 Pie, Google has 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, which was developed for upgradable lower-level system components and is available through the Play Store.
Google's statistics show that all of this work is actually improving the ecosystem. "Thanks to this effort," Google writes, "the introduction of Android 10 was faster than any previous version of Android. Android 10 ran 5 million months after launch on 100 million devices – 28% faster than Android Pie."
At the end of the graph, Android 10 reaches 400 million users at the 300-day mark (Android 10 is 310 days old), which sounds like a fairly large number. According to Google, there were 2.5 billion active Android devices last year, so 400 million users use 16 percent of the active Android installation base. It's great that acceptance of Oreo via Pie to Android 10 is increasing, but there's still a lot of room for improvement.
The next: the Linux kernel
The next big limit for Android updates is a more portable Linux kernel instead of the highly forked, device-specific Linux kernel that every Android device develops today in a unique way. We last wrote about this project at the end of 2019 when the plans to create a "Generic Kernel Image (GKI)" for Android were first discussed. The goal was a kind of "project treble for the Linux kernel". Instead of today's fork happy process, 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 code bases. This was also mentioned in connection with shipping the main Linux kernel instead of an Android-specific Linux, which means that you can run Android on the same kernel that you would get on a Linux desktop.
Google's possible plan for Android: A kernel for each device instead of the existing device-specific kernel.
How Linux Comes to a Phone: The main Linux LTS kernel (blue) is forked by Google for the Android Common Kernel, then it is forked (usually by Qualcomm) for a SoC kernel, and then it is used by a device manufacturer forked into a device specific kernel.
Linaro got the mainline kernel up and running on a Poco F1 and (with a few patches) Pixel 3.
A close-up of the Linux / Android phone.
To quote the Android website: "Compared to LTS (4.14.0), the common Android kernel has 355 changes, 32266 inserts and 1546 deletions (as of February 2018)." Progress is made here every year, but keep in mind that there are two more forks after that.
Instead of a series of forks, Google imagines the new kernel as a series of modules.
Google announced today that the GKI system in Android 11 will be operational. Google says, "In Android 11, we further isolate the general code in the Android Linux kernel to create a generic kernel image (GKI) that works on all Android devices and enables faster security deployments."
The "Android Linux kernel" specifically means "not the main Linux kernel", so this is still a fork, but integrating a kernel into an Android build and minor updates to the security version should now be easier. Nowadays, the Linux kernel is forked three times before hitting a phone: The LTS version is forked by Google with Android operating system-specific changes in the "Android Common" kernel, then into a SoC-specific kernel (usually from Qualcomm)), then the device manufacturer forks it into a device-specific kernel. The GKI would take the Android Common Kernel – the first branch – and run it on one device. So it's still a fork, but it's less a fork.
XDA's Mishaal Rahman says he has seen the unpublished version of Android 11 of the Android Compatibility Definition Document (the CDD, the rules that all manufacturers must follow to license Google Apps) and says that, just like the Generic System Image the generic will run Kernel Image will be part of Google's certification process. All Google Play devices would not have to prove that they can pass Google’s compatibility test suite with a pristine operating system and kernel. Probably, as in the case of today's generic system image, manufacturers are not expected to be supplied with this generic code. It is only used as a benchmark for the drivers and other proprietary code that comes with the phone. As with today's GSI, modders will probably have a gold mine with generic Android kernels.
Google says: "Look forward to a more detailed contribution to GKI in the coming months."
Listing image from Google