[OnePlus 9] Lomeli12:
** USE THIS AT YOUR OWN RISK.

** READ THROUGH THE STEPS BEFORE ATTEMPTING. IF AT ANY POINT WHILE READING THESE STEPS YOU GET CONFUSED, YOU PROBABLY SHOULDN'T ATTEMPT THIS.

** BACKUP YOUR FILES AND APP DATA AS THIS WILL WIPE YOUR PHONE.

** BACKUP YOUR WORKING MODEMST1/2 AND PERSIST PARTITION IMAGES WITH BEFORE CONTINUING. THESE PARTITIONS ARE DEVICE UNIQUE, SO IF SOMETHING HAPPENS TO THESE PARTITIONS DURING THE CONVERSION, AND YOU DON'T HAVE A BACKUP, NOT EVEN MSM DOWNLOAD TOOL CAN SAVE YOU. YOU'LL HAVE TO SEND YOUR DEVICE BACK TO ONEPLUS FOR REPAIR. If YOUR PHONE IS ALREADY ROOTED, I RECOMMEND USING PARTITIONS BACKUP AND RESTORE TO DO THIS. JUST REMEMBER TO COPY YOUR BACKUPS OFF YOUR PHONE BEFORE YOU GET STARTED.

** BE SURE TO HAVE MSM DOWNLOAD TOOL AT THE READY FOR IF SOMETHING DOES HAPPEN. FOR THE T-MOBILE ONEPLUS 9, YOU CAN GET IT HERE: https://xdaforums.com/t/oneplus-9-11-2-22-2-t-mobile-msm-download-tool.4276119/

THIS METHOD REQUIRES AN UNLOCKED SIM AND BOOTLOADER

If you don't wish to unlock either, craznazn has released a MSM conversion package you can use to acomplish the same thing without requiring ether to be unlocked. Just download the package from their post, and follow the steps on their 8T MSM Conversion guide, as the steps should mostly be identical.

* I've successfully done this ONCE on my own personal T-Mobile OnePlus 9

* The script used here is just the same one made by craznazn to convert the T-Mobile OnePlus 9 Pro to EU firmware. I just swapped EU OnePlus 9 Pro images for the Global OnePlus 9 images and wrote a bash script for non-Windows users to use. You can just download my conversion package and follow their steps if you want. Just for convenience I'll also be writing the steps on how to use it here as well.

* You can drag and drop my bash script into craznazn's conversion package to use their package on non-Windows systems. You can download the bash script by itself here: https://gist.github.com/Lomeli12/73825a287d3cf60414e244aece9b6bdf

* This package will install Global Firmware 11.2.2.2. You'll need to use Oxygen Updater to update it to the current version (or at least until System Update can do it for you).

* Use the latest platform tools, either from https://developer.android.com/studio/releases/platform-tools or through your package manager of choice (apt, brew, scoop, etc). DO NOT USE MINIMAL ADB, it has not been updated for years.

* If you're having issues with either adb or fastboot detecting your device, consider installing the Universal ADB Driver.

* Have any issues? Describe the steps you take, copy the script's output log, and take screenshots. Include the output of fastboot --version in your post.

Now with all that out of the way...

Steps to convert your T-Mobile OnePlus 9 to the Global (or other) firmware

Unlock your bootloader and SIM. See https://xdaforums.com/t/how-to-unlock-the-t-mobile-bootloader.4256319/

Download and unzip the conversion package:

Global 11.2.2.2

MD5: 14e0c5e41df26bacbc11fe7e69a63c0e

SHA256: 10801f12c50e2d9a7e8085d113ac4a90ab312018beb84a10fa4c1a0f84fc95eb

Google Drive: https://drive.google.com/file/d/1h7Hpbde40wLYynUIo83TTIoERhA_04nS/view

AndroidFileHost: https://www.androidfilehost.com/?fid=2188818919693806454

Spoiler content hidden.

Boot to bootloader

From adb:

adb reboot bootloader

From fastboot/bootloader:

fastboot reboot bootloader

Execute either flash_all.bat or flash_all.sh from the unzipped conversion package.

Reboot into recovery and wipe everything

Once fully booted and setup, use Oxygen Updaterto update your phone to the latest version the app provides. Oxygen Updater will provide steps on how to use the full OTA zip.

After you've updated using Oxygen Updater, go into Settings -> System -> System Updates and check for new updates, as Oxygen Updater usually takes a few days to have the absolute latest OTA available. If there is another update available, go ahead and let the System Updater do its thing.

Do a regular system reboot, NOT into recovery, bootloader, or fastbootd.

NOTE: The following steps (8-10) may or may not be optional, we haven't 100% figured it out yet

Repeat step 3 to get back into the bootloader.

Flash the T-Mobile modem included in the conversion package

fastboot flash modem NON-HLOS.bin

After each full OTA you take in the future, repeat steps 8 and 9 again.

Fixing SafetyNet by installing Magisk

When I first did this on my own phone, my phone would fail SafetyNet, specifically with a CTS Profile Mismatch. Once I installed Magisk and enabled MagiskHide, however, SafetyNet was passed once more. No MagiskHidePropConfig or UniversalSafetyNetFix required. Here are the steps I did.

Make sure you've updated your phone to the absolute latest version of OxygenOS you can. See step 6 of the conversion steps on how to do so.

Copy the boot.img from the conversion package onto your phone.

Install Magisk Manager onto your phone.

Open Magisk Manager and patch boot.img

Tap Install

Select Select and Patch a file and tap Let's Go

Choose the boot.img file we copied over and hit okay

Once the patch is finished, copy the patched boot.img back onto your PC. Magisk Manager usually puts it in your phone's downloads folder as magisk_patched-<current magisk version>_<random string of characters>.img. The logs in Magisk Manager will tell you exactly what it named the patch image as.

Boot to your bootloader. See step 3 of the conversion steps for this.

Boot your phone using the patched boot.img

fastboot boot magisk_patched-<current magisk version>_<random string of characters>.img

Once your phone has booted up, open Magisk Manager once more

Go into Magisk Manager settings and enable MagiskHide.

Back out of the settings and install Magisk via Direct Install

Reboot your phone normally. You should now have Magisk and pass SafetyNet.

Issues so far:

Using EdXposed Hide on the Google Play Store or Google Play Services can cause a soft brick requiring resetting your device via recovery. No issues with LSPosed so far.

Google Phone dialer doesn't display option for Visual Voice Mail. The T-Mobile Visual Voicemail app can be used though.

What appears to work:

Everything else

Edit 1 (5/17/2021):

Fixed some wording that I felt was awkward after the fact.

Made a note that flashing the T-Mobile modem may be optional, still up in the air on that.

Included download mirror for AndroidFileHost.

Listed EdXposed softbrick reported by @Josh McGrath.

Edit 2 (5/19/2021):

Added note about VVM missing from Google Dialer, but T-Mobile VVM app being a good alternative.

Adjusted phrasing in modem flashing steps

Edit 3 (6/7/2021):

Added link to craznazn's MSM conversion tool, which is a good alternative for those who don't want to unlock their bootloader.