[OnePlus 5 Guides, News, & Discussion] pycxe-01:
From OxygenOS Open Beta to OxygenOS 9.0.4 in no time!

Quick guide on how to go from OxygenOS Open Beta 12 to official OxygenOS 9.0.4 + Magisk v18.1:

As you all may well have guessed my starting point was OxygenOS Open Beta 12 + twrp-3.2.1-0-universal-codeworkx-cheeseburger + I had Magisk v18.1 installed + custom FrancoKernel r32. My OnePlus 5 device was encrypted and overall worked great... But, I was beginning to feel that update itch once again! :D

After some careful reading of our XDA forum I have found out that:

1. I can dirty flash from OxygenOS Open Beta to OxygenOS Stable channel without any issues.

Basically it required updating my TWRP recovery from twrp-3.2.1-0-universal-codeworkx-cheeseburger to twrp-3.2.3-0-20180822-codeworkx-cheeseburger.img i.e. latest in the line for Android 8.x + wipe + instal of stable OxygenOS 5.1.4

2. In order to update to OxygenOS 9.0.4 I needed to go through OxygenOS 5.1.4 and OxygenOS 5.1.7 sequentially to create vendor partition, etc.

What have I done? My steps were:

Booting into TWRP. Taking a nandroid backup of my existing ROM. Wipe > advanced wipe > selecting dalvik-cache, cache > swipe to wipe. Restoring backup of original boot.img for OxygenOS Open Beta 12 to get rid of Magisk + custom FrancoKernel. TWRP update to twrp-3.2.3-0-20180822-codeworkx-cheeseburger.img which supports vendor partition. Reboot into new TWRP. Wipe > advanced wipe > selecting dalvik-cache, cache, system > swipe to wipe. Finally, flash OxygenOS 5.1.4 downloaded from our stable channel. Boot into OxygenOS 5.1.4 to let it settle. Halfway done!

Naturally I have lost TWRP, Magisk and custom kernel. But, from within OxygenOS 5.1.4 I have selected Local update and updated to OxygenOS 5.1.7 i.e. Oxygen Recovery has done all the work for me. Yes, I have booted into OxygenOS 5.1.7 to let it settle too. Next, I booted into bootloader, connected my OnePlus 5 to PC and updated recovery onto twrp-3.2.3-0-20180822-codeworkx-cheeseburger through fastboot. Booted into newly installed TWRP, wipe > advanced wipe > selecting dalvik-cache, cache > swiped to wipe. Then, I have installed Magisk v18.1 + custom FrancoKernel r39, cleaned dalvik-cache, cache and rebooted. Now I had OxygenOS 5.1.7 to play with for a few days.

OxygenOS 5.1.7 with untouched data partition had a few issues e.g. Tinder application didn't work no more, besides... Why spend time setting up OxygenOS 5.1.7 based on Android Oreo 8.1 when I wanted to move onto Android Pie 9.0? Here you MUST follow the first page instructions to the letter - it was all explained there really well! :D

Booted into TWRP. Made a nandroid backup of my existing ROM. Installed TWRP by siankatabg! Wipe > advanced wipe > select dalvik-cache, cache, system, vendor and data> swiped to wipe. (Yes, I have wanted to clean flash and it is generally recommended when going from Oreo to Pie.) Next, I had an OxygenOS 9.0.4 with removed compatibility.zip from the downloaded full ROM zip through Total Commander ready on my device > I have installed it! Wiped dalvik-cache, cache + rebooted OxygenOS 9.0.4 to let it settle. All goes well IF you follow the instructions from the first page! :D

Finally, I have booted into bootloader and updated to latest twrp-3.2.3-0-20190311-codeworkx-cheeseburger.img meant for Android 9.x with my PC. Booted to TWRP + wiped dalvik-cache, cache + installed Magisk v18.1 + installed Magisk v18.1 - No, there is no mistake here! In order for Magisk to stick you need to flash in twice in TWRP! + wiped dalvik-cache, cache + reboot system. Now I am on OxygenOS 9.0.4 + I have root through Magisk v18.1

Hope this helps some of you folks! Cheers!