Manual firmware downloads and downloading from the firmware history feature have been disabled for now.

Overview

Notice

Manual firmware downloads and downloading from the firmware history feature have been disabled for now. Samsung changed something on the backend and always serves the latest available firmware, no matter which is requested.

If you know a workaround, please follow up on this issue.

Samsung Firmware Downloader

This is yet another firmware downloader for Samsung devices, but it has some special features.

For one, it's cross-platform. Samsung Firmware Downloader runs on Windows, Linux, macOS, and even Android!

Samsung Firmware Downloader is also a graphical program, with a shared UI across all supported platforms.

Most of the functionality in Samsung Firmware Downloader is based on Samloader. The Python code has been converted to Kotlin and tweaked to take advantage of some of Kotlin's features.

Samsung Firmware Downloader uses Jetpack Compose, JetBrains Compose for Desktop, and Kotlin Multiplatform to create a shared codebase for all supported platforms.

Download

Binaries are available for 64-bit versions Windows, Linux, macOS, and Android. JetBrains Compose can't currently build for 32-bit operating systems.

Check out the Releases page for the downloads.

Building

Building this project should be fairly easy.

Prep:

  1. Make sure you have the latest Android Studio Canary installed.
  2. Clone this project into Android Studio and let it import.

Desktop:

Run the package Gradle task.

Command Line:

  1. Open the Terminal view in Android Studio (bottom-left).
  2. Enter gradlew createDistributable on Windows, ./gradlew createDistributable on Linux, or ./gradlew packageDmg on macOS.
  3. Once it finishes building, check the output log to see where the executable was saved.

GUI:

  1. Open the Gradle view in Android Studio (top-right).
  2. Expand the project, then expand "desktop".
  3. Expand "Tasks," then "build," and double-click "createDistributable" on Windows and Linux, or "packageDmg" on macOS.
  4. Once it finishes building, check the output log to see where the executable was saved.

Android:

Command Line:

  1. Open the Terminal view in Android Studio (bottom-left).
  2. Enter gradlew :android:build on Windows or ./gradlew :android:build on macOS and Linux.
  3. Once it finishes building, go to android/build/outputs/apk/debug and install android-debug.apk.

GUI:

  1. Open the Gradle view in Android Studio (top-right).
  2. Expand the project, then expand "android".
  3. Expand "Tasks," then "build," and double-click "build".
  4. Once it finishes building, go to android/build/outputs/apk/debug and install android-debug.apk.

Running

Windows

  1. Extract the release ZIP for Windows and go through the folders until you find "Samsung Firmware Downloader.exe".
  2. Launch the EXE. If it fails, launch as Administrator.

Linux

  1. Extract the release ZIP for Linux and go through the folders until you find the "Samsung Firmware Downloader".
  2. Open a terminal in this location.
  3. Enter chmod +x Samsung\ Firmware\ Downloader.
  4. Enter ./Samsung\ Firmware\ Downloader.

macOS

  1. Extract the release ZIP and open the DMG.
  2. Move "Samsung Firmware Downloader.app" to the Applications folder.
  3. Launch the app.

There may be a security error when launching the app. If there is, follow the steps outlined here.

Alternatively, if the above doesn't work, you can try running the following in a Terminal (requires root permissions):

sudo xattr -cr /Applications/Samsung\ Firmware\ Downloader.app.

Once that command is executed, the app should run.

Android

  1. Download the release APK to your phone.
  2. Install and run it.

Screenshots

Desktop:

Blank Desktop Downloader Blank Desktop Decrypter Desktop Download Progress

Mobile:

Blank Android Downloader Blank Android Decrypter Android Download Progress

Comments
  • New Name

    New Name

    Samsung Firmware Downloader is a bad name. It's too generic and too long.

    If anyone has a suggestion, leave a comment.


    It shouldn't be something that already exists, like Samloader (ignore the repo name) or SamFirm.

    enhancement 
    opened by zacharee 20
  • macOS Maintainer

    macOS Maintainer

    Since I don't have a Mac, I can't make macOS builds.

    If anyone with a Mac is willing to maintain macOS builds, please let me know. It should be a temporary arrangement, since JetBrains is planning to add cross-compilation support in the future.

    help wanted 
    opened by zacharee 18
  • Strange issue on Arch Linux (latest, KDE)

    Strange issue on Arch Linux (latest, KDE)

    Just when I try to download latest firmware for SM-A207F region SER it opens a window that is not rendering (transparent in KDE)

    When I close that window, the download ends. With keeping it opened nothing happens. No logs found.

    Using original python samloader works.

    bug 
    opened by TheAirBlow 11
  • 403 permission issue on fota-cloud-dn.ospserver.net:443

    403 permission issue on fota-cloud-dn.ospserver.net:443

    Getting the following error at this moment. (due to a permission issue on: https://fota-cloud-dn.ospserver.net:443/firmware/TNL/SM-F96B/version.xml](https://fota-cloud-dn.ospserver.net/firmware/TNL/SM-F96B/version.xml

    It was working fine some days ago for my SM-F96B (region TNL) Tested with some other Europe regions, but all have the same issue.

    Error / warning shown within BitFrost.

    lidation.kt) at io.ktor.client.features.DefaultResponseValidationKt$addDefaultResponseValidation$1$1.invoke(DefaultResponseValidation.kt) at io.ktor.client.features.HttpCallValidator.validateResponse(HttpCallValidator.kt:54) at io.ktor.client.features.HttpCallValidator.access$validateResponse(HttpCallValidator.kt:33) at io.ktor.client.features.HttpCallValidator$Companion$install$3.invokeSuspend(HttpCallValidator.kt:133) at io.ktor.client.features.HttpCallValidator$Companion$install$3.invoke(HttpCallValidator.kt) at io.ktor.client.features.HttpCallValidator$Companion$install$3.invoke(HttpCallValidator.kt) at io.ktor.client.features.HttpSend$Feature$install$1.invokeSuspend(HttpSend.kt:96) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:191) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:147) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:15) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:93) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.desktop/java.awt.EventQueue$4.run(Unknown Source) at java.desktop/java.awt.EventQueue$4.run(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Unknown Source) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)

    opened by IHateNameStealers 10
  • Unable to open on 32-bit operating system

    Unable to open on 32-bit operating system

    When installing V 3.0.1, Windows 7 pro. Says this program isn't compatible with this version of windows.. It apparently can't tell if it's a 32 or 64 bit program.

    bug wontfix 
    opened by DQuealey 6
  • All macOS version of the App are damaged after extracting and moving.

    All macOS version of the App are damaged after extracting and moving.

    I have downloaded several copies of the Bifrost_macOS.zip. After unzipping and opening the .dmg, no matter where the file is executed from or moved to, upon trying to open the app I get an error saying that the file is damaged and to throw it in the trash.

    I have read several other areas where they discuss their macOS file/app becoming corrupt or losing "permissions" when being zipped. So when I saw this in a DMG I thought, genius. Now just might work. Sorry, for me it didn't.

    If this issue has been presented already please disregard my post.

    opened by TheFirstFarmerBob 5
  • Notification issue

    Notification issue

    Hi thanks for your amazing work, I've found a little issue (I'm on Samsung S10+ wirh last firmware android 11 one ui 3.1)

    So when the firmware aren't available to download one notification stuck at same point eternally

    Screenshot_20210301-214854_Samsung Firmware Downloader Screenshot_20210301-215319_Samsung Internet

    opened by random-tester-nuked 5
  • No changelog with the history tab

    No changelog with the history tab

    Samsung provides changelogs for firmwares. By typing model number notify update, you can get the changelogs. I know, it is Samsung mobile, doc.samsungmobile.com. now that we can no longer download from the tab, you can update the website.

    enhancement 
    opened by CiprianDinca9 4
  • Can't download SM-G970F firmware (Bad return status: 400)

    Can't download SM-G970F firmware (Bad return status: 400)

    When I try to download the SM-G970F firmware (ZTO region), I'm getting the following error message:

    image

    OS: Windows 11 (x64) I'm running the app as an administrator.

    samsung-issue 
    opened by pmarcus93 3
  • Blank page when I start the SamloaderKotlin

    Blank page when I start the SamloaderKotlin

    Hi guys! On my notebook I am trying to start the software, but unfortunately when I start I only get a blank page (nothing more). No logs etc. I also tried starting it with admin privileges My Notebook and Windows version: Edition: Windows 10 Home 21H2 64Bit Build System: 19044.1415 Processor: Intel(R) Core(TM) i5-3317U CPU @ 1.70GHz 1.70 GHz but in windows 11 it's working and is perfect.

    Thanks!!!!

    p.s this is a screenshot: https://ibb.co/gmbkW9b

    bug 
    opened by Fab0284981 3
  • Glaxy Watch Series firmware couldnt download

    Glaxy Watch Series firmware couldnt download

    My Galaxy Watch3 (TGY/CHC)want to download the firmware in bifrost.I enter the model and CSC,bifrost got the PDA.But when I download,it show me the 400 bad return status,just like this. Screenshot_20211222-005637 Although I don't know what happened in bifrost,but I can try my best to help solve this problem.

    opened by Desmond-Lauing 3
  • Why can I not download the firmware for the Dual SIM version of the Galaxy S22 Ultra (SM-S908E/DS)?

    Why can I not download the firmware for the Dual SIM version of the Galaxy S22 Ultra (SM-S908E/DS)?

    Expected Behavior:

    1. When I enter the S22 Ultra's model number and corresponding CSC (in my case, XSA), the firmware downloads.

    Actual Behavior

    1. This shows up on screen:
    Capture

    Additional Notes

    1. For reasons unknown, removing the "/DS" trailing end at the end of the model name allows the firmware to download as normal.
    Capture2
    opened by ghost 0
  • Can't build desktop linux with latest android studio canary

    Can't build desktop linux with latest android studio canary

    Hey zach, I'm trying to build the linux desktop version using latest android studio canary (2022.2.1 Canary 10) by following the README.md file.

    The problem is that in the readme it is written to build the createDistributable task in the gradle view, but there is no such task for desktop, only the task jvmTest exists. Tried on both the current master and on version 1.12.0 tag. Of course building jvmTest achieves nothing.

    Any ideas what am I missing? Maybe the README file is not up to date?

    Thanks in advanced!

    opened by matan7890 2
Releases(1.12.0)
Owner
Zachary Wander
Developer and writer for XDA Developers. https://www.xda-developers.com/author/zacharywander
Zachary Wander
gRPC and protocol buffers for Android, Kotlin, and Java.

Wire “A man got to have a code!” - Omar Little See the project website for documentation and APIs. As our teams and programs grow, the variety and vol

Square 3.9k Dec 31, 2022
General purpose utilities and hash functions for Android and Java (aka java-common)

Essentials Essentials are a collection of general-purpose classes we found useful in many occasions. Beats standard Java API performance, e.g. LongHas

Markus Junginger 1.4k Dec 29, 2022
Access and process various types of personal data in Android with a set of easy, uniform, and privacy-friendly APIs.

PrivacyStreams PrivacyStreams is an Android library for easy and privacy-friendly personal data access and processing. It offers a functional programm

null 269 Dec 1, 2022
A library for fast and safe delivery of parameters for Activities and Fragments.

MorbidMask - 吸血面具 Read this in other languages: 中文, English, Change Log A library for fast and safe delivery of parameters for Activities and Fragment

Season 67 Mar 29, 2022
A simple and easy to use stopwatch and timer library for android

TimeIt Now with Timer support! A simple and easy to use stopwatch and timer library for android Introduction A stopwatch can be a very important widge

Yashovardhan Dhanania 35 Dec 10, 2022
Trail is a simple logging system for Java and Android. Create logs using the same API and the library will detect automatically in which platform the code is running.

Trail Trail is a simple logging system for Java and Android. Create logs using the same API and the library will detect automatically in which platfor

Mauricio Togneri 13 Aug 29, 2022
General purpose utilities and hash functions for Android and Java (aka java-common)

Essentials Essentials are a collection of general-purpose classes we found useful in many occasions. Beats standard Java API performance, e.g. LongHas

Markus Junginger 1.4k Dec 29, 2022
Matches incoming and/or outgoing text messages against set rules and sends them over to webhook.

Textmatic If you ever wanted a tool to simply push the SMS (or text messages) from your phone to somewhere remote, this is it. This app matches all in

Float 2 Jan 7, 2022
Command framework built around Kord, built to be robust and scalable, following Kord's convention and design patterns.

Command framework built around Kord, built to be robust and scalable, following Kord's convention and design patterns.

ZeroTwo Bot 4 Jun 15, 2022
DiskCache - Simple and readable disk cache for kotlin and android applications

DiskCache Simple and readable disk cache for kotlin and android applications (with journaled lru strategy) This is a simple lru disk cache, based on t

Giovanni Corte 14 Dec 2, 2022
a simple cache for android and java

ASimpleCache ASimpleCache 是一个为android制定的 轻量级的 开源缓存框架。轻量到只有一个java文件(由十几个类精简而来)。 1、它可以缓存什么东西? 普通的字符串、JsonObject、JsonArray、Bitmap、Drawable、序列化的java对象,和 b

Michael Yang 3.7k Dec 14, 2022
A lightning fast, transactional, file-based FIFO for Android and Java.

Tape by Square, Inc. Tape is a collection of queue-related classes for Android and Java. QueueFile is a lightning-fast, transactional, file-based FIFO

Square 2.4k Dec 30, 2022
UPnP/DLNA library for Java and Android

Cling EOL: This project is no longer actively maintained, code may be outdated. If you are interested in maintaining and developing this project, comm

4th Line 1.6k Jan 4, 2023
WebSocket & WAMP in Java for Android and Java 8

Autobahn|Java Client library providing WAMP on Java 8 (Netty) and Android, plus (secure) WebSocket for Android. Autobahn|Java is a subproject of the A

Crossbar.io 1.5k Dec 9, 2022
Collection of source codes, utilities, templates and snippets for Android development.

Android Templates and Utilities [DEPRECATED] Android Templates and Utilities are deprecated. I started with this project in 2012. Android ecosystem ha

Petr Nohejl 1.1k Nov 30, 2022
A support library for VectorDrawable and AnimatedVectorDrawable classes introduced in Lollipop

vector-compat A support library for VectorDrawable and AnimatedVectorDrawable introduced in Lollipop with fully backwards compatible tint support (api

Wael N 1.2k Nov 29, 2022
A Virtual Machine For Assessing Android applications, Reverse Engineering and Malware Analysis

Androl4b AndroL4b is an android security virtual machine based on ubuntu-mate includes the collection of latest framework, tutorials and labs from dif

null 1k Dec 27, 2022
Android library for viewing, editing and sharing in app databases.

DbInspector DbInspector provides a simple way to view the contents of the in-app database for debugging purposes. There is no need to pull the databas

Infinum 924 Jan 4, 2023
A beautiful set of predefined colors and a set of color methods to make your Android development life easier.

Colours is a port of the Colours Library for iOS made by my good friend Ben Gordon. You can find that project here. Installation Maven Central Colours

Matthew York 634 Dec 28, 2022