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.
This is yet another firmware downloader for Samsung devices, but it has some special features.
For one, it's cross-platform. Bifrost runs on Windows, Linux, macOS, and even Android!
Bifrost is also a graphical program, with a shared UI across all supported platforms.
Most of the functionality in Bifrost is based on Samloader. The Python code has been converted to Kotlin and tweaked to take advantage of some of Kotlin's features.
Bifrost uses Jetpack Compose, JetBrains Compose for Desktop, and Kotlin Multiplatform to create a shared codebase for all supported platforms.
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.
These errors are on Samsung's end. If you can, try using a different region/CSC.
These errors are on Samsung's end. Samsung may no longer be serving firmware for your device or may not have started serving firmware yet. Try a different region/CSC if possible and check to make sure your model number is correct.
On certain GPUs, Jetpack Compose/Skia has trouble rendering. Try running the program as an administrator.
If you have switchable graphics, try using a different GPU.
Samsung's servers sometimes throttle downloads to about 3MiB/s. For older devices, you may see even slower speeds. Different regions/CSCs may have faster downloads.
Building this project should be fairly easy.
- Make sure you have the latest Android Studio Canary installed.
- Clone this project into Android Studio and let it import.
Run the package
Gradle task.
- Open the Terminal view in Android Studio (bottom-left).
- Enter
gradlew createDistributable
on Windows,./gradlew createDistributable
on Linux, or./gradlew packageDmg
on macOS. - Once it finishes building, check the output log to see where the executable was saved.
- Go to Android Studio's settings (Ctrl+Alt+S on Windows and Linux, CMD+, on macOS), go to "Experimental", and uncheck "Only include test tasks in the Gradle task list generated during Gradle Sync".
- Open the Gradle view in Android Studio (top-right).
- Expand the project, then expand "desktop".
- Expand "Tasks", then "compose desktop" and double-click "createDistributable" on Windows and Linux, or "packageDmg" on macOS.
- Once it finishes building, check the output log to see where the executable was saved.
- Open the Terminal view in Android Studio (bottom-left).
- Enter
gradlew :android:build
on Windows or./gradlew :android:build
on macOS and Linux. - Once it finishes building, go to
android/build/outputs/apk/debug
and installandroid-debug.apk
.
- Open the Gradle view in Android Studio (top-right).
- Expand the project, then expand "android".
- Expand "Tasks," then "build," and double-click "build".
- Once it finishes building, go to
android/build/outputs/apk/debug
and installandroid-debug.apk
.
- Extract the release ZIP for Windows and go through the folders until you find "Bifrost.exe".
- Launch the EXE. If it fails, launch as Administrator.
- Extract the release ZIP for Linux and go through the folders until you find "Bifrost".
- Open a terminal in this location.
- Enter
chmod +x Bifrost
. - Enter
./Bifrost
.
- Extract the release ZIP and open the DMG.
- Move "Bifrost.app" to the Applications folder.
- 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/Bifrost.app
.
Once that command is executed, the app should run.
It's also possible that the DMG itself will refuse to open. If that happens, the same xattr
command, but run on the DMG, should work:
sudo xattr -cr ~/Downloads/Bifrost-<VERSION>.dmg
.
- Download the release APK to your phone.
- Install and run it.
Bifrost supports basic text localization. You can help translate here: https://crowdin.com/project/bifrost-kotlin.
Note: Pay special attention to formatting arguments. Numbers inside curly brackets (e.g., {0}
, {1}
) should be kept as-is as they will be replaced with text during the application's runtime.
Note: Make sure to keep any other formatting characters as-is (e.g., \n
should stay as \n
and %%
should stay as %%
).
- Russian: Leo17032009