Thursday, February 15, 2018

An Obscure MediaTek Phone with no Kernel Source can run AOSP Android Oreo thanks to Project Treble

We’ve made a lot of posts about Google’s Project Treble in the past few weeks. One of its most important (at least for us) consequences is that Treble-certified devices must be able to boot a generic version of Android called the Generic System Image (GSI). It has made running AOSP on devices like the Honor 8 Pro, Honor 9, or Huawei Mate 10 Pro a reality, though Treble-compatibility alone wouldn’t mean these popular devices wouldn’t get AOSP ROMs anyways. But what about devices that are unlikely to ever have decent developer support—let alone official support? Consider the relatively obscure Allview V3 Viper—without Project Treble compatibility, getting AOSP running on this device would be a nightmare.

Allview Viper V3 MediaTek AOSP Android Oreo Project Treble

The Allview Viper V3. Source: Allview Electronics.

You’ve probably never heard of this phone before. It was actually released last month and it sports a 5.5″ 18:9 1440×720 display, 13MP rear and 13MP front-facing camera, a fingerprint sensor, 3GBs of RAM, 32GBs of internal storage with a microSD card slot, a 3.5mm headphone jack, and a 3,000mAh battery.

At 219.00€, there are certainly better options on the market. For an additional 10 euros, you can purchase the Honor 9 Lite or wait a few days and import the newly released Xiaomi Redmi Note 5 or Note 5 Pro. In our minds, there’s nothing particularly interesting about the Allview V3 Viper, except for one thing: it is powered by a MediaTek (MT6737) and it runs Android 8.0 Oreo out of the box.

Since it runs Android Oreo and passes Google’s CTS, that means it also must have met the requirements to be Project Treble compatible. Most importantly for us, that means the device is able to boot an AOSP Oreo GSI without requiring developers to port proprietary components from other phones, create shims for libraries with missing symbols, use wrappers, hex-edit binaries to fix mismatching names, and more hacky methods to get basic hardware working on an AOSP ROM.

That is assuming, of course, that any developer would even want to work on this device. Developers are just like users—they flock to the best, most popular devices that they can afford or that meets their basic needs. I highly doubt that a sizable developer community would focus on  the Allview V3 Viper, but thanks to Project Treble, there doesn’t have to be one in order for a user to boot AOSP onto their devices. Furthermore, even if there was developer interest in this device, it ultimately wouldn’t matter—without kernel source code, you would be lucky to even get semi-functioning ROMs.

But a Treble-compatible device doesn’t need any kernel modifications in order to boot AOSP, so that means that you shouldn’t need the Allview V3 Viper’s kernel source to run a basic AOSP ROM. In order to prove this, XDA Senior Member phhusson went out and bought one of these devices after a user on /r/Android asked if it would be possible to run AOSP on the device. Having only received the device just the other day, phhusson was able to boot not only AOSP Android 8.0 Oreo, but also AOSP Android 8.1 Oreo as well!

According to phhusson, all of the hardware functionality worked when he tested it using the “Test Your Android” app from the Play Store.

Test Your Android (Free+, Google Play) →

The only bug he said he encountered so far is that the device struggled to hardware decode HEVC 1080p videos in his ROM—a pretty short list of bugs considering he spent no time working on getting 8.0 Oreo up and running, and a short time to get 8.1 up and running.

Why this is important

Thus far, all of the devices that we’ve been booting the so-called “Treble ROMs” on have usually been high-end Huawei or Honor devices. Most users probably aren’t going to attempt running AOSP on these devices because they can rely on official support from their OEM and because the OEM ROM offers a lot of exclusive features that they would be missing on AOSP.

However, not every user purchases the latest high-end flagship from a major OEM. In fact, most users gravitate toward mid or low-range devices, and there are millions of these kinds of users who purchase phones from brands that don’t have the resources to keep their devices updated. But thanks to Treble, these phones can still boot updated versions of Android without the need for a dedicated developer community and without access to kernel sources.

We don’t mean to pick on the V3 Viper, but it was the perfect test device to prove this possibility. We can imagine a future where tons of no-name, low-end MediaTek devices are released with paltry software support, but with Treble-compatibility, these devices can live long past their manufacturer-intended expiration dates.

A small caveat

Now, there is one thing I should mention. As I’ve mentioned before, Project Treble wasn’t really complete by the time Android 8.0 Oreo was released. I’m told that the Vendor NDK (VNDK) wasn’t completed until Android 8.1 Oreo. That means that phhusson did have to do some hackery to get 8.1 working on the V3 Viper. According to him:

There was a SELinux problem (a conflict between what MediaTek did in vendor 8.0 and what Google did in system 8.1 that I don’t know yet how to fix properly), and then, I needed to add libraries to the VNDK.

Problems like this will unfortunately be common for now as the few developers working on Treble-compatible ROMs are working to figure out how to properly boot up newer versions of Android on existing 8.0 devices.

Once more devices with Android 8.1 Oreo are available, though, the process of updating to Android P should be a piece of cake—at least, according to Google. If all of this news excites you, then consider subscribing to our Treble-Enabled Device Development Forum.

Visit our Treble-Enabled Device Development Forum

HostGator Web Hosting

0 comments:

Post a Comment