** 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://forum.xda-developers.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
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.
Issues so far:
** 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://forum.xda-developers.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://forum.xda-developers.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
-
- Download and unzip the firmware you want from the OxygenOS Repo thread. You'll specifically want to extract the payload.bin file.
- Install Python 3 and Python Protobuf. Figure out how to do this on your own system.
- Download cyxx's extract android ota payload script from GitHub: https://github.com/cyxx/extract_android_ota_payload/
- Place the payload.bin you extracted earlier into the same directory as the extract_android_ota_payload.py script.
- Run the extraction script and wait. This step usually takes a while to complete
Bash:python3 extract_android_ota_payload.py payload.bin tmp/
- Open up the tmp folder the script created and copy all the image files from there over to where flash_all scripts are located.
- Global 11.2.2.2
- Boot to bootloader
- From adb:
Bash:adb reboot bootloader
- From fastboot/bootloader:
Bash:fastboot reboot bootloader
- From adb:
- 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
Bash: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
Bash: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.
- Everything else
- 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.
- Added note about VVM missing from Google Dialer, but T-Mobile VVM app being a good alternative.
- Adjusted phrasing in modem flashing steps
- Added link to craznazn's MSM conversion tool, which is a good alternative for those who don't want to unlock their bootloader.
Last edited: