Hey there! 👋
Download + decrypt in one shot:
# Using IMEI
./gnsf.py \
-m SM-S928B \
-r XSA \
-i 12345678 \
download \
-O ./downloads
# Using Serial Number
./gnsf.py \
-m SM-S928B \
-r ZTA \
-s R5CY10Z0STW \
download \
-O ./downloads
# Additional options:
# -v to specify a version; omit for "latest"
# --resume to pick up where you left off
# --no-decrypt to skip the auto‑decrypt stepthe latest Samsung firmware for Odin and decrypt it without jumping through hoops? That’s exactly why I built GNSF. It’s a simple CLI tool that helps you:
- Fetch the newest firmware for your Samsung model/region
- Download it with resume support
- Auto-decrypt
.enc2/.enc4packages
All in one go.
Project URL: https://github.com/keklick1337/gnsf
| Platform | GUI Version | CLI Version |
|---|---|---|
| Windows x64 | ||
| macOS ARM64 | - |
- 🔍
checkcommand to list the latest firmware version - ⬇️
downloadcommand to grab and decrypt firmware - 🔐
decryptcommand for manual decryption of.enc2/.enc4files - 🧩 Auto‑fill your IMEI (if you give 8+ digits) or use Serial Number
- 📱 Support for both IMEI and Serial Number authentication
- ↪️ Resume downloads if they got interrupted
- Python 3.6+
- Pip dependencies (we’ve got
pycryptodome,requests,tqdmlisted inrequirements.txt)
-
Clone this repo
git clone https://github.com/keklick1337/gnsf.git cd gnsf -
Install dependencies
pip install -r requirements.txt
You’re all set!
Run the main script with -m (model) and -r (region), plus one of the commands below:
python gnsf.py -m <MODEL> -r <CSC> <command> [options]
# or
./gnsf.py -m <MODEL> -r <CSC> <command> [options]Authentication Options:
-i <IMEI>- Use device IMEI (8+ digits, auto-completed to 15 digits)-s <SERIAL>- Use device Serial Number (1-35 alphanumeric characters)
Note: For download and decrypt (ENC4) commands, you must provide either IMEI or Serial Number for authentication.
See what the latest firmware is for a specific region, or loop through all known CSC codes:
# Single region
./gnsf.py -m SM-S928B -r XSA check
# All regions (will print “not found” if not available)
./gnsf.py -m SM-S928B checkDownload + decrypt in one shot:
./gnsf.py \
-m SM-S928B \
-r XSA \
-i 12345678 \
download \
-O ./downloads \
# Replace 12345678 to your IMEI or use -s with serial number
# optionally -v to specify a version; omit for “latest”
# use --resume to pick up where you left off
# add --no-decrypt to skip the auto‑decrypt stepJust decrypt a file you already downloaded:
# Using IMEI (for ENC4 files)
./gnsf.py \
-m SM-S928B \
decrypt \
-v FULL_VERSION_NAME_HERE \
-V 4 \
-i firmware.enc4 \
-o firmware.tar.md5 \
--imei 123456789012345
# Using Serial Number (for ENC4 files)
./gnsf.py \
-m SM-S928B \
decrypt \
-v FULL_VERSION_NAME_HERE \
-V 4 \
-i firmware.enc4 \
-o firmware.tar.md5 \
-s R5CY10Z0STW
# For ENC2 files (no device ID needed)
./gnsf.py \
-m SM-S928B \
decrypt \
-v FULL_VERSION_NAME_HERE \
-V 2 \
-i firmware.enc2 \
-o firmware.tar.md5If you prefer a graphical interface over the command line, GNSF also comes with a GUI version:
Windows users can download ready-to-use executable files for both GUI and console versions from the GitHub Releases page - no Python installation required!
- Python 3.6+
- Tkinter (included with most Python installations)
# Navigate to the GNSF directory
cd gnsf
# Run the GUI
python gnsf-GUI.py# Navigate to the GNSF directory
cd gnsf
# Run the GUI
python3 gnsf-GUI.pyOr make it executable and double-click in Finder:
chmod +x gnsf-GUI.py# Navigate to the GNSF directory
cd gnsf
# Ensure Tkinter is installed (Ubuntu/Debian example)
sudo apt-get install python3-tk
# Run the GUI
python3 gnsf-GUI.pyOr make it executable:
chmod +x gnsf-GUI.py
./gnsf-GUI.py- Easy firmware checking across multiple regions
- Download progress with speed and ETA display
- Auto-opening of download folder when complete
- Support for both IMEI and Serial Number input
- Auto-completion and validation for IMEI numbers
- All the power of the CLI with a user-friendly interface
- If you only give the first 8 digits of your IMEI with
-i, the tool will pad & Luhn‑check the rest for you. - Serial Numbers (
-s) must be 1-35 alphanumeric characters (letters and digits only). - For firmware download and ENC4 decryption, you can use either IMEI or Serial Number - both work equally well.
.enc2files use V2 decryption (no device ID needed),.enc4use V4 (requires IMEI or Serial Number). GNSF figures it out automatically when downloading.
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, and add tests if you can.
This project is MIT‑licensed. See the LICENSE file for details.
Happy flashing! 🚀
If you need to check available firmware before downloading or want to monitor the latest releases:
- 🌐 Samsung Firmware Monitor - A comprehensive online database where you can 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