Whether you are on a tight budget or planning to pick up the latest and greatest foldable, Samsung has you covered. The Korean OEM’s Galaxy lineup is among the best Android smartphones in the market. When it comes to the software update front, the company is doing a pretty decent job as well, keeping its average consumers on new and recent security patches through regular updates. However, one thing that’s not always easy to come by on Samsung Galaxy devices is the stock firmware package that you can flash to either downgrade, upgrade, or restore your phone.
In this tutorial, we’ll show you how to manually locate the appropriate factory image for your Samsung Galaxy smartphone, download it onto your PC, and finally flash the target device with the updated firmware.
Structure of a Samsung Galaxy firmware package
Unlike most Android devices, Samsung Galaxy smartphones and tablets don’t have a true Fastboot interface for firmware flashing. The OEM developed its own firmware flashing tool known as “Odin,” named after the king of Gods in Norse mythology. Odin communicates with a special software component called “Loke” which seems to be named after another important character in Norse mythology (often translated as “Loki”). Loke runs on Samsung devices while in download mode and provides the functionality necessary to perform a flashing operation.
Odin firmware files are like the factory images for the Google Pixel lineup, just compressed into one single archive and made easy to use via a GUI tool instead of a command line tool such as Fastboot. Samsung’s FUS (Firmware Update Server) also offers incremental as well as full OTA ZIP files, which are meant to be installed using the stock recovery environment.
Notably, the modding community has managed to reverse-engineer Samsung’s Odin-Loke flashing protocol. Heimdall, for example, is a cross-platform open-source tool that can be used to flash Galaxy devices. With that said, we will be sticking with Odin in this tutorial for the sake of user-friendliness and better compatibility factor.
How to download Samsung firmware
Before we get started with manual download, you should check to see if the update has already been sent to your device over-the-air. An OTA update is super easy to download and install. You’ll usually get a notification when an OTA update is available. If not, here’s how to check for the update on your Samsung Galaxy device:
- Open the Settings app.
- Scroll down and tap Software update.
- Tap Download and install.
- Follow the steps to install the update if one is available. If not, it will say your phone is up-to-date.
If your phone reports its software is up-to-date, but you know an update is available for your model, we can take advantage of the manual download methods.
Download the recovery-flashable package
Capturing the OTA package on Samsung Galaxy devices is a bit of a tricky job, as you need to set up a packet sniffing tool (e.g. HttpCanary or Fiddler) beforehand to extract the download URL.
- Configure the packet sniffing tool on your phone or PC.
- Start the update download from the built-in updater on your phone but don’t pause it.
- Go back to the sniffing tool, start it, and locate the URL that starts with
- Download the .bin file using the parsed URL and rename the extension to .zip.
Download the Odin-flashable package
Samsung maintains many region-specific and carrier-specific update channels. As a result, you have to determine the exact consumer software customization code, AKA the CSC value of your device, before downloading the Odin firmware. Keep in mind changing the CSC of an existing device or cross-flashing a different firmware is possible, but explaining such modifications is out of the scope of this tutorial.
- Download Phone Info Samsung app from APK Mirror. The developer of the app removed the free version of the Google Play Store, but you can still download the paid version from the link below. This is to find what your currently active CSC value is. If you already know what it is, skip ahead to step 3.
- Open Phone Info Samsung and go to the CSC Code tab. It should show an option that says Active CSC code. Note down this 3 character code as you will need it for a later step.
- You can also use a Samsung-specific Android secret code —
*#1234#— to determine the CSC code. The active CSC code can be seen after booting the stock recovery as well.
- Download Bifrost – Samsung Firmware Downloader. This fantastic tool is created by XDA Recognized Developer Zacharee1, and it works for downloading all Samsung Galaxy firmware files.
- Note that there exist a couple of other tools that offer similar functionalities. However, Samsung Firmware Downloader is open-source and cross-platform, making it more versatile than the others. It also offers a native Android app, which means you can download the firmware on your phone as well.
- Open the downloader tool and enter your model number where it says Model. This will start with SM-. You need to make sure to include the SM- or it won’t download your files. Next, under the region section, enter your three-character CSC value from before. Then click Check for Updates. This will find the latest firmware for your device.
- If no update is showing, this could be because the carrier you’re using doesn’t use Samsung’s servers for updates and therefore doesn’t store anything where Samsung Firmware Downloader can download it. If this is the case, try searching for the firmware of your choice on the device-specific sub-forum. It will usually be uploaded there.
- Click on the Download button and select a file location. This will start the download and the subsequent decryption process. This can take a while, depending on your network bandwidth and CPU speed. The program will tell you when the decryption has finished, and the file is ready to be used for flashing.
How to install Samsung firmware
Since we’re dealing with official Samsung firmware packages, there is no need to unlock the bootloader of the target Galaxy device prior to flashing. This is specifically important for carrier models (which are notoriously difficult to bootloader unlock), as you can easily flash a compatible unlocked firmware on those variants and get rid of the carrier bloats on a locked bootloader.
Depending on the firmware type, the installation process may require a PC. Odin, for example, requires Windows, so keep that in mind while trying to update the firmware on any Samsung phone. Moreover, make sure you have the latest Samsung Android driver package installed.
Sideloading through recovery: Using Android Debug Bridge (ADB)
- Make sure you have the latest version of ADB installed.
- Rename the downloaded .bin package to update.zip.
- Now reboot to the recovery mode. Inside the stock recovery environment, you can scroll down using the volume buttons and select an entry using the power button.
- Select Apply update from ADB and connect the phone to the PC using a working USB cable.
- In the Command Prompt/Terminal window, run the following command:
- Wait to see that the daemon has started and that your device is found. Then run the following command:
adb sideload PATH_TO_update.zip
- The update process will start, and you should see a percentage counting. Once the process is completed, the phone will reboot itself, update the apps, and log into your home screen.
Sideloading through recovery: Using an SD card
- Rename the downloaded .bin package to update.zip and copy it to the root directory of your SD card.
- Now reboot to the recovery mode, navigate to the option named Apply update from external storage, and press the power button to select it.
- Now select the file named update.zip in a similar way.
- The update will start. It’s a bit time-consuming job, so leave it till completion.
- The phone will reboot by itself and load the updated firmware.
Flashing via Odin
Odin isn’t actually intended for regular users, but since it’s an official tool from Samsung, your phone will allow it to load the necessary files for flashing the firmware without unlocking the bootloader. However, using it incorrectly can still damage your device. Proceed with caution.
Grabbing the right version of Odin is the first step. Due to the fact, the tool is never meant to be used by consumers, Samsung doesn’t host it on a public download portal. Fortunately, XDA Senior Member realbbb maintains a repository of verified copies of the Odin tool. He also offers patched variants of Odin (known as “3B patched”) that are capable of bypassing a number of Samsung-imposed obstacles while cross-flashing.
Download Odin (both unmodified and 3B patched) — XDA thread
- Grab the latest Odin package from the aforementioned thread and unzip the archive to somewhere you can remember.
- Power off your phone and boot into the download mode:
- Old Samsung Galaxy devices: press Power + Home + Volume down for about 5 seconds.
- New Samsung Galaxy devices: press Power + Bixby + Volume down or Bixby + Volume down for about 5 seconds.
- You can also use the following ADB command when the device is booted and connected to a PC:
adb reboot bootloader
- Most of the current generation Galaxy devices feature a placeholder Fastboot interface. If your phone goes into the Fastboot mode after using the above ADB command, then you have to perform a hard reboot to get back to Android and opt for the following command to access the Download mode:
adb reboot download
- You should see a screen with a big download icon in the middle and a confirmation dialogue regarding binary flashing. Press the appropriate button to continue to the actual download mode. If you have the proper drivers installed, you should see a new device popping up in the Device Manager window.
- Open Odin on your PC by running the executable as administrator. In the ID:COM section, you should see a teal box that says Added! This is your device connected in download mode.
- The main section of Odin has buttons for BL, AP, CP, CSC, and USERDATA. These signify corresponding firmware files:
- BL: Bootloader
- AP: Collection of Android system partitions
- CP: Core Processor, i.e. the modem firmware
- CSC: Consumer software customization
- USERDATA: Pre-installed apps and services for carriers
- You may not need all five of these files. It depends on what you’re flashing.
- Old Samsung Galaxy devices: pick the single .tar.md5 file as AP.
- New Samsung Galaxy devices: select the appropriate binary for each slot.
- Note that flashing a HOME_CSC binary as CSC doesn’t wipe your data. However, in case you want to start afresh (e.g. you have installed a custom recovery like TWRP and a custom ROM like LineageOS and you want to go back to stock firmware), then select the CSC binary in the CSC tab. It’ll completely wipe the /data partition and the internal storage of the device.
- If all looks correct (and you have triple checked everything), click the Start button. A progress bar will be displayed in Odin as well as on the phone.
- The process will take a while, and the phone may reboot a couple of times. Don’t unplug it before the process is complete. When the process has been completed, you will see a “PASS!” status above the ID:COM section.
- Enjoy the updated firmware on your phone!
For a Samsung Galaxy firmware build number, the fifth character from the right denotes the bootloader revision. Keep in mind that there is no easy way to downgrade the bootloader version on Galaxy devices, which means even Odin won’t let you flash a firmware with an older bootloader than the one installed in the target device.
Once the phone boots to the home screen, open Settings from the app drawer or the gear icon in the Quick Settings menu. Then, scroll to the bottom of Settings, select About phone, and choose Software information. Next, find the Build number entry and locate its value. It should be the same as the Odin firmware package you downloaded earlier.
No matter what device you use, the flashing part should be quick, easy, and convenient. As you can see, manually updating the firmware of your Samsung Galaxy smartphone isn’t that difficult, but it’s not a completely straightforward method either. Hopefully, this tutorial made the process easier for you to understand and follow.