I really hate the F word. It’s not a nice word and I really hate using it here but unfortunately it is part and parcel of the Android landscape. Yes, fragmentation. There I said it and I hope you can forgive me. It is something Google have attempted to combat for many years and they did so with the CTS for apps but now they are attempting to do so for the Android OS framework with a new project called Project Treble.
What is Project Treble?
With the release of Android 8.0 Google are now implementing Project Treble. All devices releasing with Android 8.0 and above must support Project Treble. Project Treble has been a large undertaking by Google in the redesign of the Android framework and is designed to make it easier for manufacturers to update their devices to the latest version of Android.
Prior to Treble manufacturers had to not only update their devices with the new Android version but also with all the new drivers for their hardware and their own framework that was interwoven with the Android framework. Treble is designed to separate the Android framework from the vendor framework via a new “vendor interface”.
The new vendor interface is validated by a Vendor Test Suite (VTS), analogous to the CTS, to ensure forward compatibility of the vendor implementation.
Google has implemented the VTS that devices launching with Oreo must pass. If a device does not pass the VTS it is NOT allowed to ship with Google Play apps and services. One requirement of the VTS is that the device must be able to boot a pure AOSP build without any issues.
Once the manufacturer has implemented the vendor and Android OS partition the vendor then the updates can be separate as well. One can be updated without the other and once a vendor partition is compatible with the Android OS framework it should always be compatible.
The idea is that Google will look after the Android framework updates which includes each version update and the vendors will look after their own updates, should they wish to make any. The end result is that if a vendor is happy with their skin they can just leave it alone and roll out the Android framework update underneath and their users can enjoy new versions of Android faster than previously.
Sounds great right? Well, why are we seeing some manufacturers not supporting Project Treble? We have seen Nokia and OnePlus come out in the last couple of weeks saying that their current flagships will not support Project Treble. Even with an outcry from their users these companies are standing steadfast in not updating their phones to Project Treble.
Why wouldn’t a company update a phone to Treble?
Now that we know what Treble is it most likely sounds like a great thing to include for everyone, including manufacturers but unfortunately that is not always the case. If a phone is launched without Project Treble it will not have the required partitions to satisfy Treble requirements. Thus, for a phone to be converted to a Treble-supporting phone it needs to be repartitioned OTA. Anyone hear the sound of bricks?
On a best case scenario for most phones updating OTA to Treble it requires a full factory reset for the repartitioning of the internal memory. This is something that most users do not want to do and not a great user experience for the average user.
Companies such as Huawei and Essential have or are going to implement the Treble partition system in their Oreo updates various ways with one repartitioning their modem partition to give the required vendor partition without having to change the size of the data or system partition and thus not requiring a full factory reset. These are not available just yet so time will tell if they do end up going down that road but this in itself has a risk of bricking a phone.
Nokia took to Twitter to explain to users that their current flagship, the Nokia 8 would not support Treble.
Treble requires 2 conditions to be met:
1) Adapt to the new Vendor Interface implementation
2) Standalone Vendor partition to contain Vendor Implementation
Nokia 8 does not have separate Vendor partition in ROM space and the partitioning cannot be done OTA.
— Juho Sarvikas (@sarvikas) December 5, 2017
OnePlus, in response to the self-entitled rants and noises made by customers, took to their AMA on their forum to explain their reason for not supporting Treble on their current phones:
Project Treble requires a storage partition, by which the Android framework and vendor image are separated. However, because partitions were not required of Android N and previous versions of Android, all of our current devices do not feature a partition.
According to our tests, if we were to modify the partition layout via OTA there is a risk that devices will brick during the partitioning. We feel this poses too great a risk for our community of users, which is why we have decided not to implement Project Treble on current OnePlus devices….
That being said, we look forward to the future of Project Treble, and how it will evolve to better support devices ahead.
So, while it may be difficult to implement Project Treble with current devices we expect to see future devices launching with Treble support, especially as it seems that Google has said it is a requirement for all devices launching with Android 8.0 and above. To rework the code is no easy task though as each manufacturer will have to rebuild their entire device tree to support the separate partitions and Google have said they will help the manufacturers with this implementation so hopefully it is an easy transition for them.
So why do we want Treble?
Why wouldn’t we? As users we want it because we all love to run phones with the latest and greatest version of Android that Google have released into the wild. We want all the new bells and whistles but probably more important than that we want the extra security that comes with the regular and faster updates. Treble should bring faster updates to to the user.
Manufacturers are seemingly onboard for it as well:
One thing we’ve consistently heard from our device-maker partners is that updating existing devices to a new version of Android is incredibly time consuming and costly.Iliyan Malchev, Project Treble team lead
For manufacturers the cost to update a device to the latest software is prohibitive when they have to rework the entire OS to intertwine their own Android implementation into the Google Android OS framework. For them to be able to simply apply the Google Android OS framework onto a phone without having to change anything in their own partition is a big advantage. All they would have to do is make any changes they wanted to make to their own framework (eg. Huawei updating EMUI to a new version to give added functionality and a different look) but if they didn’t want to they wouldn’t have to.
Makes updating those cheaper phones easy doesn’t it? Cheaper, faster updates, happier customers — of course manufacturers will love it… eventually.
What about the enthusiast who gets updates elsewhere?
Some of us prefer custom ROMs to get their updates, often because we can run an OS of their choice without the laggy, ugly skin of the manufacturer. Sometimes the custom ROMs offer more functionality than a manufacturer OS. Those who fit into this category will love the added ability that Project Treble provides.
For devices who support Project Treble a custom ROM is simple to flash and run. All that is required is an unlocked bootloader and a custom recovery and a pure stock AOSP custom ROM can be installed onto the device. A perfect example of this is the Huawei Mate 9. Huawei phones are a long way from stock Android unfortunately but Huawei are bringing Treble to many of their devices with their Oreo update. This means that all someone has to do is flash the AOSP ROM to the correct partition on the Mate 9 and they have a near perfect device — Huawei hardware, Google software.
Of course given this possibility, some developers over at XDA decided to have a crack at it. Without a single kernel modification they managed to get an AOSP ROM booting on the Mate 9, the first time this has been done.
We will look back on this as a watershed moment in custom ROM development in my opinion.Scott Plowman, Ausdroid guinea pig
Remember that Project Treble allows the easy and seamless updating of the a phone where the vendor partition is separated from the framework partition by the vendor interface. This allows a manufacturers to apply the update Google provides to them via the AOSP — and every device Treble-ised MUST be able to boot a basic AOSP ROM without any issues.
Using this principle and just 20 hours of hard work the XDA developers were able to create a single system image that was able to boot on multiple devices from multiple manufacturers using different CPU chipsets. The same system image that they booted on a Huawei Mate 9 was able to boot up on the following other devices: Honor 8 Pro, Honor 9, Sony Xperia XZ1 Compact, and the Essential Phone.
This is early stages in the use of Project Treble for custom ROM development but the ideal scenario that the developers are aiming for is a single system partition that can be booted onto any phone, thus allowing developers to create custom ROMs for any unlockable device out there.
We may well be seeing a burgeoning in the availability of custom ROMs for devices that we have seen very few for previously. Imagine being able to flash a pure Android ROM onto a device that is often let down by its software. Every device could end up with Pixel-like smoothness and speed — Is this the holy grail for ROM crack-flashers?
For those interested in learning more, or even contributing to the work with Project Treble, XDA Developers have set up a forum for its development for developers to share ideas and their work.
Where to from here?
Come 2018 we should be seeing all phones launching with Android 8.0 and thus supporting Project Treble. From here it should also result in all devices receiving timely updates to the Android OS framework. It should also allow manufacturers to more easily support more devices and we may see manufacturers’ tweaks and additions to Android flow down to all their devices, not just the flagships.
For enthusiasts there should eventually be fully functioning AOSP ROMs for all devices that launch with Android 8.0 and above. Imagine buying a Huawei Mate 10 Pro with near perfect hardware, or an OPPO R11 with amazing mid-range hardware and being able to flash a pure Android build onto it that will most likely speed up the device and make it less of an eyesore.
Google’s Project Treble will bring a massive change to the Android landscape. Fragmentation and such variety in software versions will hopefully be a thing of the past with the implementation of Project Treble. In the end Project Treble is a positive for all involved: end users, enthusiasts, manufacturers and Google.
Treble will bring so many positives to the Android world: in a few years we will hopefully be hailing the development of Project Treble and stating that yes it really is all about that Treble.