Desktop and laptop users usually don’t have to worry about software updates. Be it Linux or Windows, a new or old machine, you can install or upgrade to new versions without problems. Sadly things are a bit different in the mobile OS space.
Apple’s iOS and Google’s Android are the two most popular operating systems for phones. While no system is perfect (eg: iOS apps are updated with a system update, not via the Play Store), iPhone users get better long term support (5 years) than Android users. Google, which is the main force behind Android, only provides 3 years of software support. Other brands don’t go over 2 years and those that do usually take a long time to update.
This happens for a few reasons:
- Each brand maintains their own Android fork.
- Google can only update their products.
- Brands don’t have an incentive to upgrade. They make money selling phones, not upgrading them.
While the average user doesn’t care about Android versions and software upgrades, the lack of security upgrades can be dangerous and slow upgrades to new versions means that the adoption of new features and technologies are way slower on Android than it is on iOS.
One of the major attempts to make system updates was introduced by Google in 2018. It was called Project Treble and aimed to give Android a modular base.
When a new phone is developed, manufacturers need to make sure that the software is able to communicate with the hardware (eg: allow apps to use the camera). This is done via HALs (hardware abstraction layer) and before Treble brands had to go over this lengthy process every time a new major Android version was released.
To speed up this process, Project Treble created a division between the operating system and the HALs. By creating an API that allows the system to talk with the modularized HALs, brands could now upgrade Android without wasting time making these HALs compatible with new Android versions. If the camera, fingerprint sensor, bluetooth, etc, was working on Android 8, it would also work on Android 9 or 10.
In order to be certificated by Google, all new phones released with Android 8 had to support Treble and pass Google tests while running a generic Android image not made for that device.
While Treble was a huge step in the right direction, it still relies on manufacturers to update their fork of Android and all their exclusive features. The problem is that after they sell you their phone, there’s no incentive for them to keep it up-to-date. Most see it as an additional cost.
With Project Mainline, Google is now able to directly update some modules:
Security: Media Codecs, Media Framework Components, DNS Resolver, Conscrypt.
Privacy: Documents UI, Permission Controller, ExtServices.
Consistency: Timezone data, ANGLE (developers opt-in), Module Metadata, Networking components, Captive Portal Login, Network Permission Configuration.
These updates are delivered via the Play Store as if they were app updates and should work on all devices released with Android 10. Some brands added Mainline support with their Android 10 update, but it was an optional feature for older phones.
While a major Android upgrade or a full system security patch still needs a proper OTA software update, this small step allows Google to send security patches and support new features without having to wait for brands to update their phones.
Even in this initial state, Project Mainline will allow you to receive some updates even if your phone is no longer supported. Assuming Google keeps pushing this idea, we should expect an expansion of supported modules in future Android versions.
This is how it looks on Android 10:
China-only devices won’t benefit from this
Since updates are delivered via Play Store, Project Mainline won’t work on phones without Google Mobile Services (GMS), as it is the case with all phones sold in China. These still need regular software updates to patch problems.
This shouldn’t be a problem if you live outside China as most Android powered devices come with the Play Store and fully comply with Google rules.
For more detailed information about how Treble and Mainline work, check the following links: