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

Search This thread
** 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.
 
Last edited:

LLStarks

Senior Member
  • Jun 1, 2012
    1,530
    575
    Excellent. I've been waiting for this. For partition backup, using the MSM readback functionality (password is usually oneplus) is also an option.

    If the OP9 is anything like the OP8T, a direct Euro conversion would be better for quicker updates.

    Getting to Euro from Global in a GUI-based approach is also possible. Just set the device ID to OnePlus 9 (EU) in Oxygen Updater and follow the rest of the main guide. You might need to enable advanced settings and ignore device mismatch warnings though. Assuming you are already rooted at this point, you can keep root after the local upgrade, but before rebooting, by flashing Magisk to the inactive slot. Modem still needs to be reflashed.

    Modem in general is going to be a pain. Somebody will need to extract it from each T-Mobile OTA if you want fixes and new carrier aggregation combos.

    Note: I have not tested this and this is not advice. Follow at your own risk.
     
    Last edited:

    Josh McGrath

    Senior Member
    Jan 16, 2013
    2,493
    1,023
    OnePlus 9
    He said the TMobile modem files were in the download. Are those 2 files not the correct ones or something?

    Or are you just talking about updating the modem every time Tmo sends out an update. (which is usually every 3 months 🙄)
     
    That will be a pain to get any updated modem images, but 1) we just need one person who's willing to stay on the T-Mobile firmware and dump it. Just need to find this willing person and 2) like @Josh McGrath said, expecting T-Mobile OTAs to come frequently, especially those with substantially changes to the modem.img, might be giving T-Mobile too much credit.
     
    • Like
    Reactions: Josh McGrath

    Jg1234

    Member
    Jul 14, 2012
    24
    15
    Just wanted to say thank you to @Lomeli12 for this tutorial!👊 Also..
    After following this guide, and updated through oxygen updater to 11.2.4.4 then 11.2.5.5 from factory OTA . I have full 5g internet and phone signal, without ever flashing modem non-HLOS.bin.... has anyone else had this luck? or am I the only one???
     
    Just wanted to say thank you to @Lomeli12 for this tutorial!👊 Also..
    After following this guide, and updated through oxygen updater to 11.2.4.4 then 11.2.5.5 from factory OTA . I have full 5g internet and phone signal, without ever flashing modem non-HLOS.bin.... has anyone else had this luck? or am I the only one???
    I also noticed this on my phone. I still flashed the T-Mobile modem.img just for network compatibility, but it is possible we don't even need the T-Mobile modem.img to begin with.
     
    • Like
    Reactions: Jg1234

    Jg1234

    Member
    Jul 14, 2012
    24
    15
    I also noticed this on my phone. I still flashed the T-Mobile modem.img just for network compatibility, but it is possible we don't even need the T-Mobile modem.img to begin with.
    I know they have trouble with the pro version, so far I haven't had any issues. I will report back after the weekend and test it more while I travel, but don't think that will make a difference. Maybe others can test too!
     

    Josh McGrath

    Senior Member
    Jan 16, 2013
    2,493
    1,023
    OnePlus 9
    I was about to do this but I've been using Minimal ADB of course but I downloaded platform tools from the link, unzipped it and ADB.exe won't work. It immediately closed.

    Anyone had this issue?
     

    Josh McGrath

    Senior Member
    Jan 16, 2013
    2,493
    1,023
    OnePlus 9
    No prob on the misreading my post bro.

    There are no errors, it just simply will not stay open. It opens and immediately closed down. I've downloaded it twice already. Any idea? Win 10
     
    Last edited:

    Josh McGrath

    Senior Member
    Jan 16, 2013
    2,493
    1,023
    OnePlus 9
    Not a problem. And yes I totally understand that. I was hoping it was a known easy fix that someone knew but I guess not. But thanks for your help anyhow and will ask again if I can't get it working and get the logs.
     

    LLStarks

    Senior Member
  • Jun 1, 2012
    1,530
    575
    Minimal ADB is too old. Follow directions.

    You may need to set PATH for ADB or put everything in the same folder.
     
    Last edited:

    Josh McGrath

    Senior Member
    Jan 16, 2013
    2,493
    1,023
    OnePlus 9
    LLStarks, I said I was not using min adb. However, I was able to fix my issue by doing the exact rookie error you stated. :Facepalm.

    But I got it all converted over now as of last night and everything is working great so thank you for this guide, Lomeli12.

    The new edxposed has an Xposed hide option and I will say to NOT try to hide the play store or play services with this cause it soft bricked me and had to do a master reset via recovery. Just a fyi for anyone trying to hide for safety net. (I did use it for Snapchat and it works)
     
    LLStarks, I said I was not using min adb. However, I was able to fix my issue by doing the exact rookie error you stated. :Facepalm.

    But I got it all converted over now as of last night and everything is working great so thank you for this guide, Lomeli12.

    The new edxposed has an Xposed hide option and I will say to NOT try to hide the play store or play services with this cause it soft bricked me and had to do a master reset via recovery. Just a fyi for anyone trying to hide for safety net. (I did use it for Snapchat and it works)
    Good that you've resolved your issue. I've only tried with LSPosed without issue or triggering SafetyNet, but I'll make a note of it for EdXposed.
     

    zacattackkc

    Member
  • Feb 24, 2011
    7
    1
    OnePlus 9
    After replacing the flash, does the VVM voicemail in the dialer work?
    Can confirm Visual Voicemail does work, so does the Dialer.. Although, i don't recognize the dialer as the oneplus stock one... someone else may be of better use for an answer for that, as I have never used the stock dialer. Although, one slight issue with the conversion.. And it doesn't seem as if anyone else is having this problem.. After I updated to 11.2.4.4 via oxygen updater, I can't get OTA to work.. It starts for two seconds and says Update Failed.. I'm not sure what I could have done wrong, I followed the steps 100% and the only thing I could think of that could have caused it is that when I rooted before this process (while still on the T-Mobile ROM), I accidentally flashed the boot.img from the EU version instead of boot it. I tried to flash the boot img that was in the ZIP package from the download above, and still didn't fix it. Hoping I or someone could figure this one out.
     

    Top Liked Posts

    • There are no posts matching your filters.
    • 5
      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

      4
      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.
      1
      Work perfect and the instructions are very clear.
      My only concern is why not use the OnePlus phone app and the message app???
      That is a question for OnePlus. This just uses the 11.2.2.2 build they provided with no modifications.
      1
      I would recommended that anyone who plans to use this to go ahead and run and start the process that takes a week to get the token from OP that way it's already started for future use to unlock the stock tmo oos if needed.

      Been running this for a while and works great still
      yes! Good advice! Indeed, before using this MSM tool, I have applied to understand the lock token! Now just wait for it
    • 6
      ** 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.
      5
      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

      4
      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.
      1
      Talking about modems in OTAs.
      1
      I would recommended that anyone who plans to use this to go ahead and run and start the process that takes a week to get the token from OP that way it's already started for future use to unlock the stock tmo oos if needed.

      Been running this for a while and works great still
      yes! Good advice! Indeed, before using this MSM tool, I have applied to understand the lock token! Now just wait for it
    Our Apps
    Get our official app!
    The best way to access XDA on your phone
    Nav Gestures
    Add swipe gestures to any Android
    One Handed Mode
    Eases uses one hand with your phone