summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorNikos Toutountzoglou2024-06-03 20:05:21 +0200
committerNikos Toutountzoglou2024-06-03 20:05:21 +0200
commit878a47789e54948c666a8e2c9111eb9813bb8c62 (patch)
treefed26247c3cb42727cbfa7d217db7a0a9d353f39
parent1c27917cc23837439ee44fa79dc414a732c0c506 (diff)
downloadaur-syndical.tar.gz
IMEI issue fix
-rw-r--r--.SRCINFO6
-rw-r--r--PKGBUILD14
-rw-r--r--imei-fix.patch112
3 files changed, 127 insertions, 5 deletions
diff --git a/.SRCINFO b/.SRCINFO
index ed3243be7296..c8706d8ace31 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,15 +1,17 @@
pkgbase = syndical
pkgdesc = An alternative to SamLoader - cleaner code, easier to understand and tamper with.
pkgver = 1.1.0
- pkgrel = 1
+ pkgrel = 2
url = https://github.com/Samsung-Loki/Syndical
arch = any
- license = MPL2
+ license = MPL-2.0
makedepends = dotnet-sdk-7.0
depends = dotnet-runtime-7.0
depends = openssl-1.1
optdepends = android-udev: Adds udev rules for non-root users (Group adbusers)
source = syndical-1.1.0.tar.gz::https://github.com/Samsung-Loki/Syndical/archive/refs/tags/v1.1.0.tar.gz
+ source = imei-fix.patch
sha256sums = 7d8b4156a3fe9b0bb28b358d2fdc61912ab04daae20177fac7aa8430bcd845a0
+ sha256sums = 5434c1d2f8f055fa1c438af8e0ad226f17a572b3fa123a148aafddf36f99bfb8
pkgname = syndical
diff --git a/PKGBUILD b/PKGBUILD
index dcae9a98a0d6..6088abada723 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,7 +2,7 @@
pkgname=syndical
pkgver=1.1.0
-pkgrel=1
+pkgrel=2
_pkgname="Syndical-${pkgver}"
_exe="TheAirBlow.Syndical.Application"
pkgdesc="An alternative to SamLoader - cleaner code, easier to understand and tamper with."
@@ -12,8 +12,16 @@ license=('MPL-2.0')
depends=('dotnet-runtime-7.0' 'openssl-1.1')
makedepends=('dotnet-sdk-7.0')
optdepends=('android-udev: Adds udev rules for non-root users (Group adbusers)')
-source=("${pkgname}-${pkgver}.tar.gz::https://github.com/Samsung-Loki/Syndical/archive/refs/tags/v${pkgver}.tar.gz")
-sha256sums=('7d8b4156a3fe9b0bb28b358d2fdc61912ab04daae20177fac7aa8430bcd845a0')
+source=("${pkgname}-${pkgver}.tar.gz::https://github.com/Samsung-Loki/Syndical/archive/refs/tags/v${pkgver}.tar.gz"
+ 'imei-fix.patch')
+sha256sums=('7d8b4156a3fe9b0bb28b358d2fdc61912ab04daae20177fac7aa8430bcd845a0'
+ '5434c1d2f8f055fa1c438af8e0ad226f17a572b3fa123a148aafddf36f99bfb8')
+
+prepare() {
+ cd "${_pkgname}"
+ # IMEI fix
+ patch -Np1 -i "$srcdir/imei-fix.patch"
+}
build() {
# https://learn.microsoft.com/en-us/dotnet/core/tools/#cli-commands
diff --git a/imei-fix.patch b/imei-fix.patch
new file mode 100644
index 000000000000..8d50d58157ae
--- /dev/null
+++ b/imei-fix.patch
@@ -0,0 +1,112 @@
+diff --unified --recursive --text a/README.md b/README.md
+--- a/README.md 2023-12-24 15:24:30.000000000 +0100
++++ b/README.md 2024-06-03 19:21:04.293268724 +0200
+@@ -40,6 +40,7 @@
+ -o, --output Filename for decrypted/downloaded file
+ -M, --model Required. Device model
+ -r, --region Required. Device region
++ -I, --imei Required. Device serial or imei number
+ -f, --factory Download factory firmware (Binary Nature)
+ -h, --disable-hash-check Disables hash check in Download mode
+ -r, --disable-resume Disables resume in Download mode
+@@ -56,19 +57,19 @@
+ ### Examples
+ Download:
+ ```
+-./Syndical.Application -m Download -v A207FXXU2CUI2/A207FOXM2CUI2/A207FXXU2CUI2/A207FXXU2CUI2 -M SM-A207F -r SER -f
++./Syndical.Application -m Download -v A207FXXU2CUI2/A207FOXM2CUI2/A207FXXU2CUI2/A207FXXU2CUI2 -M SM-A207F -r SER -I 354260115477798 -f
+ ```
+ Decrypt:
+ ```
+-./Syndical.Application -m Decrypt -v A207FXXU2CUI2/A207FOXM2CUI2/A207FXXU2CUI2/A207FXXU2CUI2 -M SM-A207F -r SER -f
++./Syndical.Application -m Decrypt -v A207FXXU2CUI2/A207FOXM2CUI2/A207FXXU2CUI2/A207FXXU2CUI2 -M SM-A207F -r SER -I 354260115477798 -f
+ ```
+ Download & Decrypt:
+ ```
+-./Syndical.Application -m DownloadDecrypt -v A207FXXU2CUI2/A207FOXM2CUI2/A207FXXU2CUI2/A207FXXU2CUI2 -M SM-A207F -r SER -f
++./Syndical.Application -m DownloadDecrypt -v A207FXXU2CUI2/A207FOXM2CUI2/A207FXXU2CUI2/A207FXXU2CUI2 -M SM-A207F -r SER -I 354260115477798 -f
+ ```
+ Fetch device firmware list:
+ ```
+-./Syndical.Application -m Fetch -M SM-A207F -r SER
++./Syndical.Application -m Fetch -M SM-A207F -r SER -I 354260115477798
+ ```
+ If `--factory` is present, `BINARY_NATURE` is set to 1 instead of 0.
+
+diff --unified --recursive --text a/TheAirBlow.Syndical.Application/Program.cs b/TheAirBlow.Syndical.Application/Program.cs
+--- a/TheAirBlow.Syndical.Application/Program.cs 2023-12-24 15:24:30.000000000 +0100
++++ b/TheAirBlow.Syndical.Application/Program.cs 2024-06-03 19:21:46.260325951 +0200
+@@ -46,6 +46,9 @@
+
+ [Option('r', "region", Required = true, HelpText = "Device region")]
+ public string Region { get; set; }
++
++ [Option('I', "imei", Required = true, HelpText = "Device serial or imei number")]
++ public string Imei { get; set; }
+
+ [Option('f', "factory", Required = false, HelpText = "Download factory firmware (Binary Nature)")]
+ public bool FactoryFirmware { get; set; }
+@@ -91,7 +94,7 @@
+
+ AnsiConsole.MarkupLine("[yellow]Fetching firmware information...[/]");
+ var infoD = clientDownloadD.GetFirmwareInformation(o.FirmwareVersion, o.Model,
+- o.Region, typeDownloadD);
++ o.Region, o.Imei, typeDownloadD);
+
+ AnsiConsole.MarkupLine("[yellow]Initializing download...[/]");
+ clientDownloadD.InitializeDownload(infoD);
+@@ -178,7 +181,7 @@
+
+ AnsiConsole.MarkupLine("[yellow]Fetching firmware information...[/]");
+ var infoDecrypt = clientDecrypt.GetFirmwareInformation(o.FirmwareVersion, o.Model,
+- o.Region, typeDecrypt);
++ o.Region, o.Imei, typeDecrypt);
+
+ var srcDecrypt = string.IsNullOrEmpty(o.InputFilename) ? infoDecrypt.FileName : o.InputFilename;
+ var destDecrypt = string.IsNullOrEmpty(o.OutputFilename) ? infoDecrypt.FileName
+@@ -251,7 +254,7 @@
+
+ AnsiConsole.MarkupLine("[yellow]Fetching firmware information...[/]");
+ var info = clientDownload.GetFirmwareInformation(o.FirmwareVersion, o.Model,
+- o.Region, typeDownload);
++ o.Region, o.Imei, typeDownload);
+
+ AnsiConsole.MarkupLine("[yellow]Initializing download...[/]");
+ clientDownload.InitializeDownload(info);
+@@ -376,12 +379,12 @@
+ task.IsIndeterminate(false);
+ task.Description = "[green]Fetching firmware information[/]";
+ task.MaxValue = list.Old.Count + 1;
+- var info = new List<FirmwareInfo> { client.GetFirmwareInformation(list.Latest.NormalizedVersion, o.Model, o.Region, type) };
++ var info = new List<FirmwareInfo> { client.GetFirmwareInformation(list.Latest.NormalizedVersion, o.Model, o.Region, o.Imei, type) };
+ task.Increment(1);
+ foreach (var fw in list.Old) {
+ try {
+ info.Add(client.GetFirmwareInformation(fw.NormalizedVersion, o.Model,
+- o.Region, type));
++ o.Region, o.Imei, type));
+ } catch {
+ AnsiConsole.MarkupLine($"[yellow]Unable to fetch firmware for {fw.NormalizedVersion}[/]");
+ info.Add(new FirmwareInfo { Version = fw.NormalizedVersion, OsVersion = "/UNKNOWN/", FileSize = 0 });
+
+diff --unified --recursive --text a/TheAirBlow.Syndical.Library/FusClient.cs b/TheAirBlow.Syndical.Library/FusClient.cs
+--- a/TheAirBlow.Syndical.Library/FusClient.cs 2023-12-24 15:24:30.000000000 +0100
++++ b/TheAirBlow.Syndical.Library/FusClient.cs 2024-06-03 19:24:37.801922404 +0200
+@@ -126,14 +126,15 @@
+ /// <param name="version">Firmware version</param>
+ /// <param name="model">Device model</param>
+ /// <param name="region">Device region</param>
++ /// <param name="imei">Device serial or imei number</param>
+ /// <param name="type">Firmware type</param>
+ /// <returns>Firmware information</returns>
+- public FirmwareInfo GetFirmwareInformation(string version, string model, string region, FirmwareInfo.FirmwareType type)
++ public FirmwareInfo GetFirmwareInformation(string version, string model, string region, string imei, FirmwareInfo.FirmwareType type)
+ {
+ var xml = BuildFusXml(new Dictionary<string, string> {
+ {"ACCESS_MODE", "2"},
+ {"CLIENT_PRODUCT", "Syndical"},
+- {"DEVICE_IMEI_PUSH", "12345678901234"},
++ {"DEVICE_IMEI_PUSH", imei},
+ {"BINARY_NATURE", type == FirmwareInfo.FirmwareType.Factory ? "1" : "0"},
+ {"DEVICE_FW_VERSION", version},
+ {"DEVICE_LOCAL_CODE", region},