There are a lot of reasons to manually download firmware for your device. Maybe you’re trying to root it and need to modify the stock firmware before flashing it. Or maybe you just want to download software updates early. Unfortunately, companies don’t often make it easy to actually download that firmware in an easily-installable way.
The problem with downloading Samsung firmware
Samsung especially likes to make it hard to manually download software updates. For one, there’s no Fastboot mode on Samsung devices. To flash firmware, you have to go into Download Mode and use Samsung’s proprietary flashing tool, Odin. Then, you have to actually get the firmware file to flash. If you try to download the firmware directly from Samsung, it’ll be encrypted.
Luckily, that encryption isn’t very strong, and the process of downloading and decrypting firmware directly from Samsung has been recreated many times. One notable example of this is the SamFirm program for Windows. SamFirm no longer works, but there are alternatives, like Frija, which are still functional.
The only problem with most of these downloader programs is that they’re all for Windows. What if you want to download software updates for your Galaxy device from your Mac or Linux PC? Well, you could use one of the many firmware downloader websites out there. Those sites serve decrypted Samsung firmware for basically any Samsung device. You can browse for firmware by device model, filter by region, and even view the history of firmware versions.
But storing all those files gets expensive. To be maintainable, most downloader sites will restrict the download speed unless you pay for an account. Since Samsung’s firmware packages are pretty big (recent devices are as large as 7GiB), downloading on a throttled connection can be pretty annoying. You could always pay for unlimited speeds, but not everyone’s willing to do that.
My solution: Samsung Firmware Downloader
So back to square one. How can you download firmware directly from Samsung if you don’t have a Windows PC? Enter Samloader, a command-line program that runs on anything where Python 3 is installed. You can use Samloader to check for the latest update for your device, download that firmware, and even decrypt already-downloaded firmware, as long as you know the correct model, region, and firmware string.
Samloader is pretty great since it’s a properly cross-platform solution to downloading Samsung firmware. But not everyone likes to use the command line. It can get confusing trying to install Python on macOS, for instance, and keeping track of all the needed command-line arguments can be tricky.
So I made a GUI. The very originally-named Samsung Firmware Downloader is a cross-platform graphical firmware downloader for Samsung. In spirit, it’s a graphical wrapper around Samloader, but all of the logic has been rewritten in Kotlin. There are also some additional features.
Samsung Firmware Downloader Features
That was a lot of lead-up for this, but hopefully, it was at least somewhat helpful. Let’s talk about Samsung Firmware Downloader, starting with the name.
Samsung Firmware Downloader is a terrible name. It’s way too generic, and it’s also way too long. If anyone has suggestions, I’d love to hear them.
Like I said earlier, Samsung Firmware Downloader is cross-platform. That means it should run on Windows, Linux, macOS, and even Android. To do this, I’m using a combination of Kotlin Multiplatform, Android’s Jetpack Compose, and JetBrains Compose for Desktop. Kotlin Multiplatform and JetBrains Compose are still in pretty early development, but they’re functional enough for a simple GUI.
Currently, JetBrains Compose can only build executables that target the platform they were built on. That means that I can’t currently release any macOS builds since I don’t have access to a Mac. If you have a Mac, and you want to help out, let me know. Eventually, JetBrains Compose should let me build for Mac from a Windows machine but now isn’t eventually.
If you followed any of the links above, you may have noticed that Samsung Firmware Downloader is open source. It’s licensed under MIT and is completely free to use and modify.
So what can Samsung Firmware Downloader do? I talked a bit about it above, but here’s some more detail.
Check for Updates
Put your model and region into the corresponding fields in the Downloader view and hit “Check for Updates.” The app will query Samsung’s server and return the latest firmware version available, along with which version of Android it is.
Download software updates
If you just checked for updates in the Downloader view, you can then hit the Download button to start downloading that firmware. Choose a destination, and the app will download and decrypt the firmware automatically.
If you know the firmware you want to download, toggle the “Manual” checkbox and enter it, along with the model and region. Then you can hit “Download” and the app will take care of the rest.
One thing to note is that the encrypted firmware won’t be automatically deleted after it’s decrypted. You’ll need to do that manually.
Samsung Firmware Downloader also modifies the name of the firmware file slightly to include the firmware version, model, and region it represents, but you can set it to anything you want.
And finally, Samsung Firmware Downloader will automatically resume downloads. If your device crashed or you accidentally closed the program, just put in the details again, hit “Download,” choose the same directory (confirming any potential replacement prompts), and your download will resume where it left off.
If you have an encrypted firmware file, you can use Samsung Firmware Downloader to decrypt it. Enter the model, region, and firmware version corresponding to the encrypted file, then select the file to decrypt, hit the “Decrypt” button, and the app will take care of the rest.
This is an experimental feature that may be removed later on. The History view shows the complete list of firmware versions available for a given model and region. It then displays them to you.
If you want to download a specific firmware from the list, hit the “Download” button. You’ll be redirected to the Download view with the information already filled in. Then you can just hit “Download.”
If you have a file to decrypt, you can find the corresponding firmware in this list and hit the “Decrypt” button. You’ll be redirected to the Decrypt view, where you’ll just need to choose the right file and hit “Decrypt.”
So how do you get Samsung Firmware Downloader? Check out the releases page on the GitHub repository. Each release has assets for Android, Windows, and Linux (and eventually macOS).
On Android, just download the APK and install it. On Windows, download the ZIP, extract it, and run the EXE. On Linux, download and extract the ZIP, go into the
bin directory, open a terminal, and run
./Samsung Firmware Downloader.
Hopefully, Samsung Firmware Downloader makes your experience downloading software updates even easier. I’m always looking for suggestions for new features (within reason), so be sure to head over to the issues page and request a feature or report a bug if you don’t see it there already.