OnePlus 5 & OnePlus 5T now support Project Treble on the latest OxygenOS Beta

OnePlus 5 & OnePlus 5T now support Project Treble on the latest OxygenOS Beta

OnePlus along with a few other smartphone vendors such as Google, Xiaomi, and Nokia offer a public beta program. OnePlus’ OxygenOS Open Beta program lets you receive updates with new features and security patches long before the stable release reaches most other users. The OnePlus 5 and OnePlus 5T is getting a new OxygenOS Open Beta 13 and Open Beta 11 respectively, and they bring something quite surprising to the mix: Project Treble compatibility.

Project Treble was announced ahead of Google I/O 2017 before we even knew most of the new platform features in Android Oreo. The idea behind Treble is to modularize the Android operating system so it’s easier for manufacturers to push updates to the software. By separating the vendor HALs from the Android framework and providing a standard interface between the framework and HALs, Google has made it faster for device makers to bring up new versions of Android. This, in turn, gives device makers more time to work on software features to make the user experience more enjoyable, and Google directly credits Project Treble behind the reason Android P is introducing so many new software features compared to Android Oreo. Lastly, Treble support played a big part in the reason non-Google devices like the OnePlus 6, Xiaomi Mi Mix 2S, Sony Xperia XZ2, Nokia 7 Plus, and more have early access to an Android P beta.

XDA VIDEO OF THE DAY

Treble support is mandatory for any device manufacturer launching a device with Android 8.0 Oreo and above but is not a requirement for any device that upgrades to Android Oreo. We’ve seen several devices from the likes of Huawei receive Treble support, where OnePlus and Nokia previously stated that bringing support for Treble wasn’t on the table. The reason that OnePlus gave us was that they felt it would be risky to repartition the OnePlus 5 and OnePlus 5T via an OTA update. However, as demonstrated by an independent ROM developer, there’s plenty of unused space available on each device which can be repurposed into a vendor partition suitable for moving the HALs. We haven’t examined the partition table of the OnePlus 5 and OnePlus 5T running the latest OxygenOS Open Betas yet to confirm how they handled the process, but at the very least this is still exciting news for owners of these devices.

Update: here is the partition table of the OnePlus 5 running the latest Open Beta. As you can see, there’s now a vendor partition.

OnePlus 5 Partition List on OxygenOS Open Beta 13

[[!!]]drwxr-xr-x 2 root root 1480 1970-11-28 23:34:41.249999999 -0500 .[[!!]]drwxr-xr-x 4 root root 1640 1970-11-28 23:34:41.249999999 -0500 ..[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.229999999 -0500 LOGO -> /dev/block/sde18[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.249999999 -0500 abl -> /dev/block/sde16[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.239999999 -0500 ablbak -> /dev/block/sde17[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.239999999 -0500 apdp -> /dev/block/sde31[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.249999999 -0500 bluetooth -> /dev/block/sde24[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.229999999 -0500 boot -> /dev/block/sde19[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.229999999 -0500 boot_aging -> /dev/block/sde20[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.209999999 -0500 cache -> /dev/block/sda3[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.209999999 -0500 cdt -> /dev/block/sdd2[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.229999999 -0500 cmnlib -> /dev/block/sde27[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.229999999 -0500 cmnlib64 -> /dev/block/sde29[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.239999999 -0500 cmnlib64bak -> /dev/block/sde30[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.229999999 -0500 cmnlibbak -> /dev/block/sde28[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.209999999 -0500 config -> /dev/block/sda12[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.209999999 -0500 ddr -> /dev/block/sdd3[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.239999999 -0500 devcfg -> /dev/block/sde39[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.239999999 -0500 devinfo -> /dev/block/sde23[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.209999999 -0500 dip -> /dev/block/sde14[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.249999999 -0500 dpo -> /dev/block/sde33[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.219999999 -0500 dsp -> /dev/block/sde11[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.219999999 -0500 frp -> /dev/block/sda6[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.249999999 -0500 fsc -> /dev/block/sdf4[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.249999999 -0500 fsg -> /dev/block/sdf3[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.229999999 -0500 fw_4g9n4 -> /dev/block/sde45[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.229999999 -0500 fw_4j1ed -> /dev/block/sde43[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.239999999 -0500 fw_4t0n8 -> /dev/block/sde46[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.229999999 -0500 fw_8v1ee -> /dev/block/sde44[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.219999999 -0500 hyp -> /dev/block/sde5[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.209999999 -0500 hypbak -> /dev/block/sde6[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.239999999 -0500 keymaster -> /dev/block/sde25[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.229999999 -0500 keymasterbak -> /dev/block/sde26[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.219999999 -0500 keystore -> /dev/block/sda5[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.229999999 -0500 limits -> /dev/block/sde35[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.249999999 -0500 logdump -> /dev/block/sde40[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.229999999 -0500 logfs -> /dev/block/sde37[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.239999999 -0500 md5 -> /dev/block/sdf5[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.239999999 -0500 mdtp -> /dev/block/sde15[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.219999999 -0500 mdtpsecapp -> /dev/block/sde12[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.219999999 -0500 mdtpsecappbak -> /dev/block/sde13[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.239999999 -0500 minidump -> /dev/block/sde47[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.209999999 -0500 misc -> /dev/block/sda4[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.229999999 -0500 modem -> /dev/block/sde10[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.239999999 -0500 modemst1 -> /dev/block/sdf1[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.239999999 -0500 modemst2 -> /dev/block/sdf2[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.249999999 -0500 msadp -> /dev/block/sde32[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.219999999 -0500 oem_dycnvbk -> /dev/block/sda7[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.209999999 -0500 oem_stanvbk -> /dev/block/sda8[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.229999999 -0500 param -> /dev/block/sda9[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.239999999 -0500 persist -> /dev/block/sda2[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.249999999 -0500 pmic -> /dev/block/sde8[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.239999999 -0500 pmicbak -> /dev/block/sde9[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.239999999 -0500 recovery -> /dev/block/sde22[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.249999999 -0500 reserve -> /dev/block/sdd1[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.239999999 -0500 reserve1 -> /dev/block/sda10[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.209999999 -0500 reserve2 -> /dev/block/sda11[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.229999999 -0500 reserve3 -> /dev/block/sdf7[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.239999999 -0500 rpm -> /dev/block/sde1[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.209999999 -0500 rpmbak -> /dev/block/sde2[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.239999999 -0500 sec -> /dev/block/sde7[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.229999999 -0500 splash -> /dev/block/sde34[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.229999999 -0500 ssd -> /dev/block/sda1[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.239999999 -0500 sti -> /dev/block/sde38[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.249999999 -0500 storsec -> /dev/block/sde41[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.239999999 -0500 storsecbak -> /dev/block/sde42[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:40.559999999 -0500 system -> /dev/block/sde21[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.229999999 -0500 toolsfv -> /dev/block/sde36[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.219999999 -0500 tz -> /dev/block/sde3[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.219999999 -0500 tzbak -> /dev/block/sde4[[!!]]lrwxrwxrwx 1 root root 16 1970-11-28 23:34:41.219999999 -0500 userdata -> /dev/block/sda13[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:40.559999999 -0500 vendor -> /dev/block/sdf6[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.209999999 -0500 xbl -> /dev/block/sdb1[[!!]]lrwxrwxrwx 1 root root 15 1970-11-28 23:34:41.209999999 -0500 xblbak -> /dev/block/sdc1[[!!]]

We’ve talked in great depth about the benefits that Treble brings to custom AOSP-based development, but given that the OnePlus 5/5T already have a strong development community behind them the benefit of Treble won’t be felt in this area. Instead, Treble compatibility will make it easier for OnePlus to push security patch updates to better support the devices in the long-term as they have recently promised. We’ll have to wait and see if bringing Project Treble support to the OnePlus 5 and OnePlus 5T will yield real benefits for the devices, but we’re confident that it’ll help.

But enough about Treble support. The latest OxygenOS Open Betas bring more to the table than Treble. Here’s the full changelog:

OxygenOS Open Beta 13/11 for the OnePlus 5/OnePlus 5T

  • System
    • A brand new user interface
    • Supported accent color (Settings – Display – Customization)
    • Supported for Project Treble
  • Launcher
    • Improved search tags in the app drawer
    • Added “New installs” category tag in the app drawer
    • Improved app list for hidden space and toolbox
  • Phone
    • Optimized logic for the contacts page
  • Weather
    • Brand new design with improved user experience
    • All forecasts integrated under a single interface leading to a fully immersive experience

We can see from the changelog that OnePlus is still improving the launcher experience by adding search tags in the app drawer, a “new installs” category, and an improved app list. The weather application also has a new look as does the system. We’re not yet sure what “a brand new user interface” means as the update hasn’t been pushed out to users yet. The changelog also mentions new accent colors, though it’s unclear if this means full accent color customization just like the latest Android P beta on the OnePlus 6.

Update: We can confirm that the latest beta brings full accent color customization. As for the “brand new user interface,” we did notice some icon changes but we don’t see that many style changes otherwise. Here are a few screenshots of the latest Open Beta.

OnePlus warns users to flash earlier OxygenOS Open Beta (10 for OnePlus 5T and 12 for OnePlus 5) build first before the new update to avoid data loss. If you fail to do so and decide to update from the stable version of the system, you have to do a clean flash beforehand. That means clearing cache as well as data from the recovery (using TWRP is always recommended).

You can download the Open Beta builds once they’re available from the link here. Those who are already on the Open Beta build will receive an OTA update and won’t have to flash the zip file manually. You can also skip the line and get the update by using the Oxygen Updater app as mentioned in our tutorial here.

We’ll update the article with more details and screenshots as soon as the update will be available on the server. Stay tuned for more details.

About author

George Burduli
George Burduli

Love everything about Android. I'm an enthusiast, blogger, and a future developer. Direct enquiries to: [email protected]

We are reader supported. External links may earn us a commission.