How To Guide Convert T-Mobile OnePlus 9 to Global (or other) firmware

Search This thread

daniel081483

Member
Jan 30, 2017
7
2
Just realized I'm in the OP9 thread. I have the T-Mobile 8T. Been a hell of a time trying to get them tards to sim unlock it. Literally told them every great story you could imagine. I'm saying Fu**em and sending it back for something unlocked. I love the feel and smoothness of OP. Always been a Samsung Galaxy owner. Anybody have any suggestions on a great sim unlocked phone. That's fairly easy to unlock the bootloader and root? I am very educated and knowledgeable in the field of cyber security. I also have decent history of cellular communications/telecom vulnerabilities. Was thinking of the 10 pro maybe. It's just the screens a bit small for my liking. Especially after having the Z Fold 4 for a bit now. Any suggestions and thoughts are much appreciated and welcomed.
 

Garbonzo17

Member
Oct 5, 2014
30
10
EDIT: got things resolved, and typed up a lille step-by-step thing, but it was basically a rehash of https://forum.xda-developers.com/t/tmo-to-global-no-dual-sim-bug.4504439/ plus the ways I got root together with the files all in one place, but I don't have time to proof/re-write the notes I took as I did it... will do that soon, if anyone needs help with resolving this particular problem feel free to reach out.

Ok, I can see there is a ton of good info here, just as there always was for my 6T as well.
So I am not completely new to this. I am curranty using a Tmo OP 6t that has global 11.1.2.2 on it, and to be honest I am still fine with the phone. I have bricked it and gotten it back a few times over the years doing different careless things. (and am actually quite fine with sticking with 11 because Swift Dark still works with it but would like to try 12/13 maybe)
My brother recently passed, and I inherited his Tmo OP9. It is on LE2117_11_c.21
I unlocked the bootloader a few minutes ago, that was straight forward enough.
What is concerning me is backing up the modem, it seems like this is more of a sticking point than it was with the 6t... so I am about to set out on converting this thing, and I will try to be concise.
What is important to me:
1. root/magisk
1a. safety net needs to pass, I am currently doing this with the OP6t using USNF but have used Shamiko before too)
2. sim card 2 working (right now it is carrier unlocked but the sim2 still not activated, with the 6t the firmware opened that up, but reading here it may not?)
3. maintaining ota updates if possible, but not a deal breaker
3a. not overlooking some detail that is going to cause pain later on... :)

basically if I have to get root to backup modem because it is unique and can't be restored/recovered by MSMtools that is alot more steps but I can do it... if that is just something that was necessary 18 months ago that maybe is easier to work around now.

but so I have the steps..
so I am going back to re-read the thread, but any insights on easiest way in Dec 2022 to convert the A12 Tmo 2117 to Global firmware with the best experience. also, is going back to 11 just a matter of blowing it away with MSM again? (if data not a concern)

again, that went long, sorry. ANY help insight appreciated.
thanks in advance

-G
 
Last edited:

Shahzaib1511

New member
Dec 19, 2022
1
0
I w
** 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
  1. Unlock your bootloader and SIM. See https://forum.xda-developers.com/t/how-to-unlock-the-t-mobile-bootloader.4256319/
  2. Download and unzip the conversion package:
    • Global 11.2.2.2
      MD5: 14e0c5e41df26bacbc11fe7e69a63c0e
      SHA256: 10801f12c50e2d9a7e8085d113ac4a90ab312018beb84a10fa4c1a0f84fc95eb
      1. Download and unzip the firmware you want from the OxygenOS Repo thread. You'll specifically want to extract the payload.bin file.
      2. Install Python 3 and Python Protobuf. Figure out how to do this on your own system.
      3. Download cyxx's extract android ota payload script from GitHub: https://github.com/cyxx/extract_android_ota_payload/
      4. Place the payload.bin you extracted earlier into the same directory as the extract_android_ota_payload.py script.
      5. Run the extraction script and wait. This step usually takes a while to complete
        Bash:
        python3 extract_android_ota_payload.py payload.bin tmp/
      6. Open up the tmp folder the script created and copy all the image files from there over to where flash_all scripts are located.
  3. Boot to bootloader
    • From adb:
      Bash:
      adb reboot bootloader
    • From fastboot/bootloader:
      Bash:
      fastboot reboot bootloader
  4. Execute either flash_all.bat or flash_all.sh from the unzipped conversion package.
  5. Reboot into recovery and wipe everything
  6. 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.
    1. 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.
  7. 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
  8. Repeat step 3 to get back into the bootloader.
  9. Flash the T-Mobile modem included in the conversion package
    Bash:
    fastboot flash modem NON-HLOS.bin
  10. 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.
  1. 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.
  2. Copy the boot.img from the conversion package onto your phone.
  3. Install Magisk Manager onto your phone.
  4. Open Magisk Manager and patch boot.img
    1. Tap Install
    2. Select Select and Patch a file and tap Let's Go
    3. Choose the boot.img file we copied over and hit okay
    4. 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.
  5. Boot to your bootloader. See step 3 of the conversion steps for this.
  6. Boot your phone using the patched boot.img
    Bash:
    fastboot boot magisk_patched-<current magisk version>_<random string of characters>.img
  7. Once your phone has booted up, open Magisk Manager once more
  8. Go into Magisk Manager settings and enable MagiskHide.
  9. Back out of the settings and install Magisk via Direct Install
  10. 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 bootload
I want to use 2nd SIM after convert.Tell how it work.

Is there any way to use 2nd SIM after convert my oneplus 9
Thànks
 
Last edited by a moderator:

Top Liked Posts

  • There are no posts matching your filters.
  • 11
    ** 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
    1. Unlock your bootloader and SIM. See https://forum.xda-developers.com/t/how-to-unlock-the-t-mobile-bootloader.4256319/
    2. Download and unzip the conversion package:
      • Global 11.2.2.2
        MD5: 14e0c5e41df26bacbc11fe7e69a63c0e
        SHA256: 10801f12c50e2d9a7e8085d113ac4a90ab312018beb84a10fa4c1a0f84fc95eb
        1. Download and unzip the firmware you want from the OxygenOS Repo thread. You'll specifically want to extract the payload.bin file.
        2. Install Python 3 and Python Protobuf. Figure out how to do this on your own system.
        3. Download cyxx's extract android ota payload script from GitHub: https://github.com/cyxx/extract_android_ota_payload/
        4. Place the payload.bin you extracted earlier into the same directory as the extract_android_ota_payload.py script.
        5. Run the extraction script and wait. This step usually takes a while to complete
          Bash:
          python3 extract_android_ota_payload.py payload.bin tmp/
        6. Open up the tmp folder the script created and copy all the image files from there over to where flash_all scripts are located.
    3. Boot to bootloader
      • From adb:
        Bash:
        adb reboot bootloader
      • From fastboot/bootloader:
        Bash:
        fastboot reboot bootloader
    4. Execute either flash_all.bat or flash_all.sh from the unzipped conversion package.
    5. Reboot into recovery and wipe everything
    6. 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.
      1. 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.
    7. 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
    8. Repeat step 3 to get back into the bootloader.
    9. Flash the T-Mobile modem included in the conversion package
      Bash:
      fastboot flash modem NON-HLOS.bin
    10. 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.
    1. 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.
    2. Copy the boot.img from the conversion package onto your phone.
    3. Install Magisk Manager onto your phone.
    4. Open Magisk Manager and patch boot.img
      1. Tap Install
      2. Select Select and Patch a file and tap Let's Go
      3. Choose the boot.img file we copied over and hit okay
      4. 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.
    5. Boot to your bootloader. See step 3 of the conversion steps for this.
    6. Boot your phone using the patched boot.img
      Bash:
      fastboot boot magisk_patched-<current magisk version>_<random string of characters>.img
    7. Once your phone has booted up, open Magisk Manager once more
    8. Go into Magisk Manager settings and enable MagiskHide.
    9. Back out of the settings and install Magisk via Direct Install
    10. 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.
    9
    The MSM conversion is ready, about phone page misses verification but everything else works. You can use the same instructions from my 8T MSM conversion for this it mostly applies. The 9 pro is gonna be a little different

    5
    Hi guys, the 9 Pro requires a TMO modem flash because the baseband version is different between TMO and NA/EU/IN. A NA/EU/IN modem running on a TMO device will not work, thus it's a requirement.

    I noticed in a few posts here that the 9 modem works off the NA rom. If that's the case, then the baseband version must be the same and you don't need to do that step. Additionally if that's the case, I can build a MSM conversion for the 9 that allows conversion to EU/Global without SIM/BL unlock. However, I will not be able to test it because I don't have a 9. Let me know if there's interest.
    2
    Talking about modems in OTAs.
    2
    Thanks for your reply.
    So the only choice for this guide is LE2113 firmware, correct?
    Also, can you please put it clear for me: is this guide works only for LE2117 or for LE2115 (unlocked US version) as well?
    Don't use the method here, there is a pinned post about safely converting between regions that will work better and have less chance of a brick.

    For the record though, I haven't tried EU firmware on my LE2115, just IN and CN (which both had the same issues I described), so I can't confirm if EU works without problems. I don't have issues with NA firmware so I just have stuck with it.