Cross plattform Firmware downloader and decryptor for Samsung devices with maximum download speed. A list of API examples are given in the documentation available at Github-Pages.
Note
This project was formerly hosted at nlscc/samloader
, and has moved from samloader/samloader
to a refactored and updated version with enhanced CLI support and an API documentation.
You can easily install it by using the pip
package manager.
pip install git+https://github.com/MatrixEditor/samloader3.git
The interface procided here is separated into two layers. In The first one, one can set basic options, such as the device's country code, model name, IMEI number or a global timeout value. Next, you will operate on a shell that takes commands with arguments as input.
$ python3 -m samloader3 -M "SM-A336B" -R "SFR" -I "12345678901234"
(sl3)> # type commands here
Utilizing the list
command you can list all available firmwares for a specific model within
the selected region.
Note
Make sure to always set the device's model name and region code, otherwise you won't get any valid results. For simplicity, we don't write the model and region code explicitly.
Using this command without any arguments will result in a table view that displays all available versions:
Tip
If you just want to list the latest firmware use -l
and if you want to print out the version
strings only, use -q
. Using -v VERSION
you can also view details on one specific version.
With this updated version of samloader
, you can download multiple firmware files at one (though, most likely not a real use case) and accelerate to the maximum download speed. Using one version
string from the output before, simply run the following command:
(sl3)> download -o "/path/to/destination/" "$version1" "$version2" ...
As these files can be huge, once canceled, the donwload will resume at the current download
position. You can disable that behaviour using --no-cache
. With a special version identifier (*
) you can download all firmware binaries at once.
Warning
Because of some issues with python.rich, parallel download is disabled by default. It can be
enabled using --parallel
.
To decrypt files directly after downloading them, use --decrypt
.
The decryption command (decrypt
) is designd to operate on one file only. You just have
to provide a version number and the file path:
(sl3)> decrypt -v "$version" "/path/to/firmware.zip.enc4"
Tip
If you only want to generate the decryption key, use --key-only
. Note that the actual
key is the MD5 value
Distributed under the GNU General Public License (V3). See LICENSE for more information.