Hey there! 👋
Want the latest Samsung firmware for Odin and decrypt it without jumping through hoops? That's exactly why I built GNSF. It helps you:
- Fetch the newest firmware for your Samsung model/region — phones, tablets and Galaxy Watch
- Download it with automatic resume
- Auto-decrypt
.enc2/.enc4packages
All in one go, no IMEI or serial number needed:
./gnsf.py -m SM-S928B -r XSA download -O ./downloads
./gnsf.py -m SM-L310 -r XSG download -O ./downloads # Galaxy Watch7Project URL: https://github.com/keklick1337/gnsf
| Platform | GUI Version | CLI Version |
|---|---|---|
| Windows x64 | ||
| macOS ARM64 |
- 🔍
check– latest firmware for one region (or all known regions), optionally with older versions - ⬇️
download– download and decrypt firmware in one step - 🔐
decrypt– manual decryption of.enc2/.enc4files - ⌚ Galaxy Watch support
- ↪️ Interrupted downloads are resumed automatically (also on network errors)
- 🖥️ GUI and CLI versions
- Python 3.7+
pycryptodome– the only dependency- Tkinter for the GUI (included with most Python installations)
git clone https://github.com/keklick1337/gnsf.git
cd gnsf
pip install -r requirements.txtpython gnsf.py -m <MODEL> -r <CSC> <command> [options]# Single region
./gnsf.py -m SM-S928B -r XSA check
# Single region with older published versions
./gnsf.py -m SM-S928B -r XSA check -a
# All known regions (only regions with firmware are printed)
./gnsf.py -m SM-S928B check./gnsf.py -m SM-S928B -r XSA download -O ./downloads
# -v <version> firmware version; omit for latest. Accepts the full PDA/CSC/MODEM
# string or one part of it (e.g. the CSC code from 'check -a')
# --no-decrypt keep the encrypted .enc2/.enc4 fileRun the same command again after an interruption and the download continues where it stopped.
./gnsf.py -m SM-S928B -r XSA decrypt \
-v S928BXXU6EZIF/S928BOXM6EZIF/S928BXXU6EZIF/S928BXXU6EZIF \
-i firmware.zip.enc4 \
-o firmware.zip
# -V 2|4 forces the encryption version (detected from the file name by default)
# -o defaults to the input file name without .encNpython3 gnsf-GUI.pyOn Linux you may need Tkinter first, e.g. sudo apt-get install python3-tk.
- Check firmware across all regions, double-click a result to download it
- Download progress with speed and ETA, cancel and resume any time
- Manual decrypt tab
- Opens the download folder when finished
| Target | Command | Output |
|---|---|---|
| Windows | tools\windows_build.bat |
dist\windows_x64_gnsf.exe (CLI), dist\windows_x64_gnsf-GUI.exe (GUI) |
| Windows (via Wine, on Linux or macOS) | tools/wine_windows_build.sh |
dist/windows_x64_gnsf.exe (CLI), dist/windows_x64_gnsf-GUI.exe (GUI) |
| macOS | tools/macos_arm_build.sh |
dist/macos_<arch>_gnsf (CLI), dist/GetNewSamsungFirmware-macOS-<arch>.dmg (GUI) |
The Windows build needs Python 3 from python.org (py launcher or python on PATH); run the .bat from any directory.
The Wine build needs Windows Python installed in the Wine prefix (python.exe on the Wine path, or set WINE_PYTHON). Use WINE=/path/to/wine to pick a specific Wine binary.
- Some regions don't carry a package for every model (the server answers
S01) — just try another region fromcheck. - The
-i/-s(IMEI / serial number) options from older versions are still accepted but no longer needed.
gnsf.py CLI entry point
gnsf-GUI.py GUI entry point
gnsflib/fus.py Samsung FUS protocol: auth, firmware info, download
gnsflib/core.py download / decrypt / check logic shared by CLI and GUI
gnsflib/firmware.py firmware version parsing
gnsflib/cli.py command-line interface
gnsflib/gui.py Tkinter interface
gnsflib/csc.py CSC region list
Found a bug or wanna add a cool feature? PRs are welcome! Just fork, hack away, and send a pull request.
Please keep the code style consistent.
The current FUS protocol (Smart Switch endpoints, nonce signing) follows samloader-rs by topjohnwu.
This project is MIT‑licensed. See the LICENSE file for details.
Happy flashing! 🚀
- 🌐 Samsung Firmware Monitor – browse and monitor the latest firmware releases for any Samsung device model.
This resource complements GNSF by letting you:
- Check available firmware versions across multiple devices at once
- Monitor when new firmware gets released
- View firmware details before downloading
