With all of the different mentions of the various different ways to flash the S9/S9 Plus, and Note 9's to Pie. This is how I personally flash Samsung devices to ensure there are no issues. This little guide will touch on full upgrades and roll back to a previous firmware. Unfortunately, this guide will be a little lengthy.
Most important! I do not work for or speak for T-Mobile or Samsung and T-Mobile, Samsung, and myself take no responsibility for you messing up your device. Corrupt downloads, interrupting the flashing process, and improperly cross-flashing a different carrier firmware can leave you with a bootloop, which in most cases is recoverable unless you flash a non-North American firmware to your North American device. This tutorial assumes you have some knowledge of what you are doing. I have personally flashed more recently, Note 8's, S9's, S9 Plus, and Note 9 devices for myself as well as others, and am an active member over on various XDA-Developers sup-forums.
Download what you plan on flashing. If it is an OTA update you want to sideload, you can copy that to your SD card, boot into recovery, and flash it. Yes, that is vague but I also don't recommend that method, especially when using an OTA from another carrier firmware. You should also make sure your device is fully charged when flashing.
What You Need:
ODIN 3.13.3, the firmware you are trying to flash (example: 1ARL1), 7-Zip or WinRAR (do not use the Windows built in ZIP folder to extract or to copy the files out of the ZIP file), the factory USB cable that came with your device, a USB 3 or USB 2 port that isn't sharing with other ports, some patience, and making sure the drivers are installed when your device is in Download Mode before opening ODIN.
Before you do anything else, go into the Windows Power Options, Advanced Power Plan select High Performance, Change Plan Settings, Change Advanced Settings, scroll down to USB Settings, click the +, click the + next to USB Selective Suspend Setting, and set that to Disable! Hit Apply and Ok, and close the rest of the windows you opened to get there.
You will need to go to Settings, About Phone, Software Information, and tap on the Build Number 7 times. Back out to the main Settings area and go into the Developer Options menu. Enable USB Debugging. This needs to be enabled in order to flash a full factory image successfully.
In the ODIN compatible factory image, there will be 5 files (4 if you are using the U1 XAA firmware). The T-Moible factory images are usually labelled TMB U with the build version of them in the file name. Personally, I grab the files I flash from Updato but there are a few decent sites around the internet that host these files. The site isn't fast, it has lots of ads, but it also has a lot of firmware versions. There are no carrier specific U1 builds that are legitimate firmware! These files pop up from time to time on sites. They are combination ROM's that do work, but they are not stock firmware. They will not permit OTA's and are essentially the U1 base firmware with components from a U or W firmware added and replacing what should have been included.
The important parts of the firmware name are fairly simple. You more than likely want TMB U because you are flashing a T-Mobile firmware and want to flash an updated firmware or roll back to a previous firmware. The 5 characters at the end of the Build Number (in the file name) are also important. The last 4 are the build specifically (example (ARL1). The fifth number (example: 1) though is also very important. The number before the last 4 characters is the firmware bootloader version. A device can be flashed with the same bootloader version or newer, but you can not flash to a previous version of the bootloader. A Samsung device with 3ARG7 can not be flashed back to 2ARG4 but you could flash 2ARG4 to 3ARG7.
Extract the factory image with WinRAR or 7-Zip to ensure the files are not corrupted, which Windows likes to do. The files it will extract start with AP, BL, CP, CSC, and Userdata. In some ZIP's, there will be a HOME_CSC as well. Delete this file!
Boot your device into Download Mode! Power off your device, wait 10 seconds after the screen goes blank, hold down Volume Down, Bixby (if your device has that annoyance), and Power On until you are greeted with a blue screen with a warning. Press the Volume Up key to continue. Connect the device with the USB cable that came with your device to your PC. Give Windows time to install the drivers for the device, which might take a couple of minutes. Open ODIN 3.13.3. Nothing needs to be changed from the default options so do not change anything! Load up each file in their respective slots and wait for them to fully scan in and load. Some files do take longer than others. Once you have the AP, BL,CP, CSC, and Userdata loaded. You can then hit the Start button in the ODIN window. Wait for the device to fully flash before disconnecting it! If the device fails right away. You either have an incorrect image, ODIN does not like your USB port you are using, or you are trying to flash a firmware with an earlier version of the bootloader that the device currently has.
When flashing completes, your device will boot to the setup screen. Proceed to setup your device just like you did before.
Cross-flashing a device will not SIM unlock the device! The SIM lock / unlock is stored within a part of the device that is not flashable! If you flash your TMB U device to another firmware, the T-Mobile unlocking app will be removed from your device and leave the device unable to be unlocked by T-Mobile unless you flash back to the TMB U firmware. However, you can use a third party unlocking service to unlock your device at whatever rates they charge to do so.
All of the hardware for a particular model for a region have different firmware but the hardware is exactly the same! My Note 9, as one example, is an XAC (purchased in Canada) and originally came with the W Canadian firmware. It currently is on the TMB U 1ARL1 firmware, which I upgraded to via OTA after flashing the latest firmware from August 2018. The process to convert your device from one firmware version to another is simple enough but more involved. The flashing instructions are similar enough to not have to repeat them. This conversion process, when done correctly, will give you the LTE bands that firmware has access to, adds and removes bloat based on what the firmware contains, includes carrier aggregation for the carrier specific firmware versions, and will receive OTA's for that specific firmware.
When converting from one U firmware to another U firmware of a different carrier, you can not directly flash from one to the other. You need Modded or Patched ODIN 3.13.3, which bypasses the firmware version check. You need to flash with the modded or patched ODIN directly to the U1 XAA non-carrier firmware first, which does not contain a Userdata file. Always delete the HOME_CSC to ensure you don't use it. It will bork the conversion. Modded and Patched ODIN look exactly the same and work exactly the same outside of skipping the firmware check. You do not need to change any of the default options when cross-flashing! Flash your W or U firmware to the U1 XAA firmware.
Once you have successfully flashed to the U1, skip through the setup, not entering your Google information or anything, head back into the Settings to enable Developer Options and USB Debugging so you can start the process again. From the U1, use the modded or patched ODIN 3.13.3 the same way to flash to the U or W firmware of your choice. U firmware does include a Userdata that must be flashed with the rest of the factory image! Once the flash finishes with PASS, you will have that version of the device
AT&T and Verizon use your devices IMEI to verify that you bought your device from them. Even with the correct firmware on your device, they will lock you out of carrier specific features by reading your devices IMEI and disabling those features on your account. Sprint and T-Mobile do not participate in this despicable practice, thankfully!
The main reason I have provided these instructions is for those who have corrupt firmware plaguing their device or those who ideally own their devices and are looking to leave T-Mobile or brought their own device from another carrier and want the full T-Mobile experience. If you paid for your device, you have the right to take that device and use it fully on any carrier of your choice in my opinion.