mirror of
https://github.com/MikuLeaks/KianaBH3.git
synced 2025-12-12 21:04:41 +01:00
update to 8.5.0
This commit is contained in:
@@ -52,7 +52,7 @@ public class AudioData
|
|||||||
|
|
||||||
public class AudioPreDownloadData
|
public class AudioPreDownloadData
|
||||||
{
|
{
|
||||||
[JsonPropertyName("enable_time")] public long EnableTime { get; set; }
|
[JsonPropertyName("enable_time")] public double EnableTime { get; set; }
|
||||||
[JsonPropertyName("platform")] public Dictionary<string, string> Platform { get; set; } = new();
|
[JsonPropertyName("platform")] public Dictionary<string, string> Platform { get; set; } = new();
|
||||||
[JsonPropertyName("revision")] public int Revision { get; set; }
|
[JsonPropertyName("revision")] public int Revision { get; set; }
|
||||||
}
|
}
|
||||||
@@ -64,7 +64,7 @@ public class VideoEncryptData
|
|||||||
|
|
||||||
public class PlatformInfo
|
public class PlatformInfo
|
||||||
{
|
{
|
||||||
[JsonPropertyName("enable_time")] public long EnableTime { get; set; }
|
[JsonPropertyName("enable_time")] public double EnableTime { get; set; }
|
||||||
[JsonPropertyName("revision")] public string Revision { get; set; } = "";
|
[JsonPropertyName("revision")] public string Revision { get; set; } = "";
|
||||||
[JsonPropertyName("suffix")] public string Suffix { get; set; } = "";
|
[JsonPropertyName("suffix")] public string Suffix { get; set; } = "";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
using KianaBH.Internationalization;
|
using KianaBH.Internationalization;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using KianaBH.Util.Extensions;
|
using KianaBH.Util.Extensions;
|
||||||
|
using System.Text.Json;
|
||||||
|
|
||||||
namespace KianaBH.Util;
|
namespace KianaBH.Util;
|
||||||
|
|
||||||
@@ -77,6 +78,40 @@ public static class ConfigManager
|
|||||||
SaveData(Hotfix, HotfixFilePath);
|
SaveData(Hotfix, HotfixFilePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void SaveHotfixData(string version, string decryptedText)
|
||||||
|
{
|
||||||
|
LoadHotfixData();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using var doc = JsonDocument.Parse(decryptedText);
|
||||||
|
if (!doc.RootElement.TryGetProperty("manifest", out var manifestElement))
|
||||||
|
{
|
||||||
|
Logger.Warn($"[AUTO-HOTFIX] Manifest not found in decrypted hotfix for version {version}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var manifestJson = manifestElement.GetRawText();
|
||||||
|
var manifestData = System.Text.Json.JsonSerializer.Deserialize<HotfixManfiset>(manifestJson);
|
||||||
|
|
||||||
|
if (manifestData == null)
|
||||||
|
{
|
||||||
|
Logger.Warn($"[AUTO-HOTFIX] Failed to parse manifest for version {version}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Hotfix.Hotfixes[version] = manifestData;
|
||||||
|
|
||||||
|
SaveData(Hotfix, HotfixFilePath);
|
||||||
|
|
||||||
|
Logger.Info($"[AUTO-HOTFIX] Saved hotfix manifest for version {version}");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.Error($"[AUTO-HOTFIX] Failed to save hotfix data: {ex.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static void SaveData(object data, string path)
|
private static void SaveData(object data, string path)
|
||||||
{
|
{
|
||||||
var json = JsonConvert.SerializeObject(data, Formatting.Indented);
|
var json = JsonConvert.SerializeObject(data, Formatting.Indented);
|
||||||
|
|||||||
@@ -32,4 +32,25 @@ public static class DispatchEncryption
|
|||||||
|
|
||||||
return Convert.ToBase64String(encryptedBytes);
|
return Convert.ToBase64String(encryptedBytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string? DecryptDispatchContent(string version, string base64Data)
|
||||||
|
{
|
||||||
|
if (!ConfigManager.Hotfix.AesKeys.TryGetValue(version, out var aesKey))
|
||||||
|
return null;
|
||||||
|
|
||||||
|
var keyBytes = aesKey.Split(' ')
|
||||||
|
.Select(b => Convert.ToByte(b, 16))
|
||||||
|
.ToArray();
|
||||||
|
|
||||||
|
using var aes = Aes.Create();
|
||||||
|
aes.Mode = CipherMode.ECB;
|
||||||
|
aes.Padding = PaddingMode.PKCS7;
|
||||||
|
aes.Key = keyBytes;
|
||||||
|
|
||||||
|
var decryptor = aes.CreateDecryptor();
|
||||||
|
var dataBytes = Convert.FromBase64String(base64Data);
|
||||||
|
var decryptedBytes = decryptor.TransformFinalBlock(dataBytes, 0, dataBytes.Length);
|
||||||
|
|
||||||
|
return Encoding.UTF8.GetString(decryptedBytes);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
public static class GameConstants
|
public static class GameConstants
|
||||||
{
|
{
|
||||||
public const string GAME_VERSION = "8.2.0";
|
public const string GAME_VERSION = "8.5.0";
|
||||||
public const int MAX_STAMINA = 300;
|
public const int MAX_STAMINA = 300;
|
||||||
public const int STAMINA_RECOVERY_TIME = 360; // 6 minutes
|
public const int STAMINA_RECOVERY_TIME = 360; // 6 minutes
|
||||||
public const int STAMINA_RESERVE_RECOVERY_TIME = 1080; // 18 minutes
|
public const int STAMINA_RESERVE_RECOVERY_TIME = 1080; // 18 minutes
|
||||||
|
|||||||
@@ -1,21 +1,737 @@
|
|||||||
{
|
{
|
||||||
"UseLocalCache": false,
|
"UseLocalCache": false,
|
||||||
"Hotfixes": {
|
"Hotfixes": {
|
||||||
"8.2.0_os_pc":{"Asb":{"Android":{"EnableTime":0,"Revision":"8.2.0.1","Suffix":"bd94adf56362eb867e85bec5fac2ff64"},"Iphone":{"EnableTime":0,"Revision":"8.2.0.1","Suffix":"dfc7a720fcff0a38eff5fd39dd226be3"},"Pc":{"EnableTime":0,"Revision":"8.2.0.1","Suffix":"9e126d53a77b950adf7eeab1ce4c8be3"}},"AsbPreDownload":{"Android":{"EncryptKey":"","EnableTime":0,"Revision":"8.2.0.0","Suffix":"e201402a751b93be40d8d5667eae6c57"},"Iphone":{"EncryptKey":"","EnableTime":0,"Revision":"8.2.0.0","Suffix":"b24e5746d5c3b4e89664c9dce0b54990"}},"Audio":{"Platform":{"Android":"manifest_72379c553cacdc14de7b08eacf30742b.m","Windows":"manifest_451a3477478a452ad6d9d7d4efc8a7cc.m","iOS":"manifest_44481832f8d5ddf09c37c4c7cc2896e8.m"},"Revision":750064},"AudioPreDownload":{"EnableTime":0,"Platform":{"Android":"manifest_e6bba2f4b17b0fa2b8088554c631c89a.m","Windows":"manifest_78e29a53978043c1f285dee54cb23609.m","iOS":"manifest_520e04c4be6cd2c3114a22b2cb26bdb4.m"},"Revision":749901},"VideoEncrypt":{"FileName":"product_os_video_encrypt_70f8648c65dfdcb9bc4a7272e59d0d58"}},
|
"8.2.0_os_pc": {
|
||||||
"8.2.0_global_pc":{"Asb":{"android":{"enable_time":0,"revision":"8.2.0.1","suffix":"f909ea8698c9f116a31c3892c21571a8"},"iphone":{"enable_time":0,"revision":"8.2.0.1","suffix":"072d7971083a1194adfb091be4e969c5"},"pc":{"enable_time":0,"revision":"8.2.0.1","suffix":"a4f72d175b17b53a8e449cd48ffb091a"}},"AsbPreDownload":{"android":{"enable_time":1745341200,"encrypt_key":"07E47334EB583829553AAB154F8A442A","revision":"8.2.0.0","suffix":"7d8addd08dfcb809ed64a20a32f4a023"},"iphone":{"enable_time":1745341200,"encrypt_key":"07E47334EB583829553AAB154F8A442A","revision":"8.2.0.0","suffix":"c8d02fc0a8dc652ed78496e703b18a1a"}},"Audio":{"platform":{"Android":"manifest_72379c553cacdc14de7b08eacf30742b.m","Windows":"manifest_451a3477478a452ad6d9d7d4efc8a7cc.m","iOS":"manifest_44481832f8d5ddf09c37c4c7cc2896e8.m"},"revision":750064},"AudioPreDownload":{"enable_time":1745341200,"platform":{"Android":"manifest_e6bba2f4b17b0fa2b8088554c631c89a.m","Windows":"manifest_78e29a53978043c1f285dee54cb23609.m","iOS":"manifest_520e04c4be6cd2c3114a22b2cb26bdb4.m"},"revision":749901},"VideoEncrypt":{"filename":"product_west_video_encrypt_099462b4c385f4ab36c4fdcad88486f8"}},
|
"Asb": {
|
||||||
"8.2.0_gf_pc":{"Asb":{"android":{"enable_time":0,"revision":"8.3.0.2","suffix":"f5f1a80d8319a96bcea859d31d19c4dd"},"iphone":{"enable_time":0,"revision":"8.3.0.2","suffix":"81d684360c644612f7d8cbb815465b37"},"pc":{"enable_time":0,"revision":"8.3.0.2","suffix":"8bce638d856f677f82778a0980fef38b"}},"AsbPreDownload":{"android":{"enable_time":1748318400,"encrypt_key":"96332C2FA6AD9115CE8884747E0454A7","revision":"8.3.0.0","suffix":"bff38644dfcc28d847f4079b6b78f209"},"iphone":{"enable_time":1748318400,"encrypt_key":"96332C2FA6AD9115CE8884747E0454A7","revision":"8.3.0.0","suffix":"e0c70df3b93cc2e2dbef4efce40c694e"}},"Audio":{"platform":{"Android":"manifest_c50f0232a02c3f1cc5450e06115e67cf.m","Windows":"manifest_ab9dbe41ba6a4c9251d1e8aae0cc0c73.m","iOS":"manifest_ac0e5c5a3bc50a53a796f03287c3bb5d.m"},"revision":753506},"AudioPreDownload":{"enable_time":1748318400,"platform":{"Android":"manifest_faa7b7d2c34cdbf6c0426a979b5dff3d.m","Windows":"manifest_d21d0c0b54d0ffd725172f4d9d5220f2.m","iOS":"manifest_64ded762ca04d233ff2f0c1c56fe33a7.m"},"revision":752275},"VideoEncrypt":{"filename":"product_video_encrypt_8e2595dd6e9022cf94915d033cc0c488"}},
|
"Android": {
|
||||||
"8.2.0_jp_pc":{"Asb":{"android":{"enable_time":0,"revision":"8.2.0.1","suffix":"ee4b67a962fd2f3ac1b9f576d5dbf0af"},"iphone":{"enable_time":0,"revision":"8.2.0.1","suffix":"5004342b65a0a5fbad74ee7a6e185e3b"},"pc":{"enable_time":0,"revision":"8.2.0.1","suffix":"2e222cfd4b2da4a42eec9219e6cd57b0"}},"AsbPreDownload":{"android":{"enable_time":1745290800,"encrypt_key":"07E47334EB583829553AAB154F8A442A","revision":"8.2.0.0","suffix":"0a0d9db32c08a0084e55b5b242f2f901"},"iphone":{"enable_time":1745290800,"encrypt_key":"07E47334EB583829553AAB154F8A442A","revision":"8.2.0.0","suffix":"e17d5e1769a4c72ebe575d03666640f3"}},"Audio":{"platform":{"Android":"manifest_72379c553cacdc14de7b08eacf30742b.m","Windows":"manifest_451a3477478a452ad6d9d7d4efc8a7cc.m","iOS":"manifest_44481832f8d5ddf09c37c4c7cc2896e8.m"},"revision":750064},"AudioPreDownload":{"enable_time":1745290800,"platform":{"Android":"manifest_e6bba2f4b17b0fa2b8088554c631c89a.m","Windows":"manifest_78e29a53978043c1f285dee54cb23609.m","iOS":"manifest_520e04c4be6cd2c3114a22b2cb26bdb4.m"},"revision":749901},"VideoEncrypt":{"filename":"product_jp_video_encrypt_371861cb164c2b1100e80e0611a14bf8"}},
|
"EnableTime": 0.0,
|
||||||
"8.2.0_kr_pc":{"Asb":{"android":{"enable_time":0,"revision":"8.2.0.1","suffix":"39ff39a65a48c514f375e3c70a51028b"},"iphone":{"enable_time":0,"revision":"8.2.0.1","suffix":"2471dae3368f661815b252cd8a031fc3"},"pc":{"enable_time":0,"revision":"8.2.0.1","suffix":"9c4ec7419136ffe6bfc18554d3a00264"}},"AsbPreDownload":{"android":{"enable_time":1745290800,"encrypt_key":"07E47334EB583829553AAB154F8A442A","revision":"8.2.0.0","suffix":"b8d8c127e316b9f3f1feb218572e6d8c"},"iphone":{"enable_time":1745290800,"encrypt_key":"07E47334EB583829553AAB154F8A442A","revision":"8.2.0.0","suffix":"984ce00a117c7c49a162a54d96bf7eaa"}},"Audio":{"platform":{"Android":"manifest_72379c553cacdc14de7b08eacf30742b.m","Windows":"manifest_451a3477478a452ad6d9d7d4efc8a7cc.m","iOS":"manifest_44481832f8d5ddf09c37c4c7cc2896e8.m"},"revision":750064},"AudioPreDownload":{"enable_time":1745290800,"platform":{"Android":"manifest_e6bba2f4b17b0fa2b8088554c631c89a.m","Windows":"manifest_78e29a53978043c1f285dee54cb23609.m","iOS":"manifest_520e04c4be6cd2c3114a22b2cb26bdb4.m"},"revision":749901},"VideoEncrypt":{"filename":"product_kr_video_encrypt_86ba299ea5d830e971ddef114ed0db3f"}},
|
"Revision": "8.2.0.1",
|
||||||
"8.2.0_tw_pc":{"Asb":{"android":{"enable_time":0,"revision":"8.2.0.1","suffix":"cad1e6f198b9ab5fca1c108bc06edd88"},"iphone":{"enable_time":0,"revision":"8.2.0.1","suffix":"6ff0ccd7bae526522ecfb8cd57918565"},"pc":{"enable_time":0,"revision":"8.2.0.1","suffix":"531972fab6501729f4a9a0b2b97786f6"}},"AsbPreDownload":{"android":{"enable_time":1745294400,"encrypt_key":"07E47334EB583829553AAB154F8A442A","revision":"8.2.0.0","suffix":"b78c9d9c0795d8b87d9d439dea099840"},"iphone":{"enable_time":1745294400,"encrypt_key":"07E47334EB583829553AAB154F8A442A","revision":"8.2.0.0","suffix":"9606642009c034873557e2923d08a25c"}},"Audio":{"platform":{"Android":"manifest_72379c553cacdc14de7b08eacf30742b.m","Windows":"manifest_451a3477478a452ad6d9d7d4efc8a7cc.m","iOS":"manifest_44481832f8d5ddf09c37c4c7cc2896e8.m"},"revision":750064},"AudioPreDownload":{"enable_time":1745294400,"platform":{"Android":"manifest_e6bba2f4b17b0fa2b8088554c631c89a.m","Windows":"manifest_78e29a53978043c1f285dee54cb23609.m","iOS":"manifest_520e04c4be6cd2c3114a22b2cb26bdb4.m"},"revision":749901},"VideoEncrypt":{"filename":"product_asia_video_encrypt_4a156c48c46752110f2a0437edb5c866"}},
|
"Suffix": "bd94adf56362eb867e85bec5fac2ff64"
|
||||||
"8.3.0_gf_pc":{"Asb":{"android":{"enable_time":0,"revision":"8.3.0.8","suffix":"35badee39edb1450060c82d4d45a2d14"},"iphone":{"enable_time":0,"revision":"8.3.0.8","suffix":"5ff9ae1b2f217117a6ab5c0a1d5e0e0c"},"pc":{"enable_time":0,"revision":"8.3.0.8","suffix":"bb6665a0aa885d0f6f5f71ae11c5a625"}},"AsbPreDownload":{"android":{"enable_time":1748318400,"encrypt_key":"96332C2FA6AD9115CE8884747E0454A7","revision":"8.3.0.0","suffix":"bff38644dfcc28d847f4079b6b78f209"},"iphone":{"enable_time":1748318400,"encrypt_key":"96332C2FA6AD9115CE8884747E0454A7","revision":"8.3.0.0","suffix":"e0c70df3b93cc2e2dbef4efce40c694e"}},"Audio":{"platform":{"Android":"manifest_fbbea8fe36490219e2e57cbc2f8598b8.m","Windows":"manifest_72092f9a49a6a282084f43e93e512b15.m","iOS":"manifest_fbc4eebe6c4f5eb0a3f9f44648fab3f5.m"},"revision":754243},"AudioPreDownload":{"enable_time":1748318400,"platform":{"Android":"manifest_faa7b7d2c34cdbf6c0426a979b5dff3d.m","Windows":"manifest_d21d0c0b54d0ffd725172f4d9d5220f2.m","iOS":"manifest_64ded762ca04d233ff2f0c1c56fe33a7.m"},"revision":752275},"VideoEncrypt":{"filename":"product_video_encrypt_17f26b71f43728b94058a89bf41475be"}},
|
},
|
||||||
"8.3.0_os_pc":{"Asb":{"android":{"enable_time":0,"revision":"8.3.0.0","suffix":"58dde605404394655d6b9ec2e3c6c52c"},"iphone":{"enable_time":0,"revision":"8.3.0.0","suffix":"35784b91422f118f857d4e8f2faeb250"},"pc":{"enable_time":0,"revision":"8.3.0.0","suffix":"0a10c24fef1e0b402c74f63b9272f0b0"}},"AsbPreDownload":{"android":{"enable_time":1750737600,"encrypt_key":"96332C2FA6AD9115CE8884747E0454A7","revision":"8.3.0.0","suffix":"58dde605404394655d6b9ec2e3c6c52c"},"iphone":{"enable_time":1750737600,"encrypt_key":"96332C2FA6AD9115CE8884747E0454A7","revision":"8.3.0.0","suffix":"35784b91422f118f857d4e8f2faeb250"}},"Audio":{"platform":{"Android":"manifest_4d89bb62c543ddbebd294711773748eb.m","Windows":"manifest_d3c1f0505a9d26bac3ed6fa92749b198.m","iOS":"manifest_4a755e678fcbcd82fafe7efbf7aa4374.m"},"revision":755798},"AudioPreDownload":{"enable_time":1750737600,"platform":{"Android":"manifest_4d89bb62c543ddbebd294711773748eb.m","Windows":"manifest_d3c1f0505a9d26bac3ed6fa92749b198.m","iOS":"manifest_4a755e678fcbcd82fafe7efbf7aa4374.m"},"revision":755798},"VideoEncrypt":{"filename":"product_os_video_encrypt_30348c78d7811519e3e1525d486c9e56"}},
|
"Iphone": {
|
||||||
"8.3.0_global_pc":{"Asb":{"android":{"enable_time":0,"revision":"8.3.0.0","suffix":"11925f0eb302731f4b6b36dcfd21b527"},"iphone":{"enable_time":0,"revision":"8.3.0.0","suffix":"9f0f5212e9856607173f65620b2229f0"},"pc":{"enable_time":0,"revision":"8.3.0.0","suffix":"adadbc204f9315d28f847c85cfe10795"}},"AsbPreDownload":{"android":{"enable_time":1750784400,"encrypt_key":"96332C2FA6AD9115CE8884747E0454A7","revision":"8.3.0.0","suffix":"11925f0eb302731f4b6b36dcfd21b527"},"iphone":{"enable_time":1750784400,"encrypt_key":"96332C2FA6AD9115CE8884747E0454A7","revision":"8.3.0.0","suffix":"9f0f5212e9856607173f65620b2229f0"}},"Audio":{"platform":{"Android":"manifest_4d89bb62c543ddbebd294711773748eb.m","Windows":"manifest_d3c1f0505a9d26bac3ed6fa92749b198.m","iOS":"manifest_4a755e678fcbcd82fafe7efbf7aa4374.m"},"revision":755798},"AudioPreDownload":{"enable_time":1750784400,"platform":{"Android":"manifest_4d89bb62c543ddbebd294711773748eb.m","Windows":"manifest_d3c1f0505a9d26bac3ed6fa92749b198.m","iOS":"manifest_4a755e678fcbcd82fafe7efbf7aa4374.m"},"revision":755798},"VideoEncrypt":{"filename":"product_west_video_encrypt_1e8f6240eb4d8dec86f861919c469551"}},
|
"EnableTime": 0.0,
|
||||||
"8.3.0_jp_pc":{"Asb":{"android":{"enable_time":0,"revision":"8.3.0.0","suffix":"38f68044b48eb11781cc81bbccc44968"},"iphone":{"enable_time":0,"revision":"8.3.0.0","suffix":"24b8c0cd9a3a217bdc891f1014307c1b"},"pc":{"enable_time":0,"revision":"8.3.0.0","suffix":"499a86fcdb4a5f8d45640d572f26dc2c"}},"AsbPreDownload":{"android":{"enable_time":1750734000,"encrypt_key":"96332C2FA6AD9115CE8884747E0454A7","revision":"8.3.0.0","suffix":"38f68044b48eb11781cc81bbccc44968"},"iphone":{"enable_time":1750734000,"encrypt_key":"96332C2FA6AD9115CE8884747E0454A7","revision":"8.3.0.0","suffix":"24b8c0cd9a3a217bdc891f1014307c1b"}},"Audio":{"platform":{"Android":"manifest_4d89bb62c543ddbebd294711773748eb.m","Windows":"manifest_d3c1f0505a9d26bac3ed6fa92749b198.m","iOS":"manifest_4a755e678fcbcd82fafe7efbf7aa4374.m"},"revision":755798},"AudioPreDownload":{"enable_time":1750734000,"platform":{"Android":"manifest_4d89bb62c543ddbebd294711773748eb.m","Windows":"manifest_d3c1f0505a9d26bac3ed6fa92749b198.m","iOS":"manifest_4a755e678fcbcd82fafe7efbf7aa4374.m"},"revision":755798},"VideoEncrypt":{"filename":"product_jp_video_encrypt_61a6f2020aed085edf3979e8e38ae5da"}},
|
"Revision": "8.2.0.1",
|
||||||
"8.3.0_kr_pc":{"Asb":{"android":{"enable_time":0,"revision":"8.3.0.0","suffix":"e42c3bb8522240554e19169edb601c9f"},"iphone":{"enable_time":0,"revision":"8.3.0.0","suffix":"a116a80b68e3c9bde4fbb300a573e0ee"},"pc":{"enable_time":0,"revision":"8.3.0.0","suffix":"ad2013f4b77aa0de723bb37fd074751f"}},"AsbPreDownload":{"android":{"enable_time":1750734000,"encrypt_key":"96332C2FA6AD9115CE8884747E0454A7","revision":"8.3.0.0","suffix":"e42c3bb8522240554e19169edb601c9f"},"iphone":{"enable_time":1750734000,"encrypt_key":"96332C2FA6AD9115CE8884747E0454A7","revision":"8.3.0.0","suffix":"a116a80b68e3c9bde4fbb300a573e0ee"}},"Audio":{"platform":{"Android":"manifest_4d89bb62c543ddbebd294711773748eb.m","Windows":"manifest_d3c1f0505a9d26bac3ed6fa92749b198.m","iOS":"manifest_4a755e678fcbcd82fafe7efbf7aa4374.m"},"revision":755798},"AudioPreDownload":{"enable_time":1750734000,"platform":{"Android":"manifest_4d89bb62c543ddbebd294711773748eb.m","Windows":"manifest_d3c1f0505a9d26bac3ed6fa92749b198.m","iOS":"manifest_4a755e678fcbcd82fafe7efbf7aa4374.m"},"revision":755798},"VideoEncrypt":{"filename":"product_kr_video_encrypt_fe4aed33155528f56389a3c57ad6b2b8"}}
|
"Suffix": "dfc7a720fcff0a38eff5fd39dd226be3"
|
||||||
|
},
|
||||||
|
"Pc": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.2.0.1",
|
||||||
|
"Suffix": "9e126d53a77b950adf7eeab1ce4c8be3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AsbPreDownload": {
|
||||||
|
"Android": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.2.0.0",
|
||||||
|
"Suffix": "e201402a751b93be40d8d5667eae6c57"
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.2.0.0",
|
||||||
|
"Suffix": "b24e5746d5c3b4e89664c9dce0b54990"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Audio": {
|
||||||
|
"Platform": {
|
||||||
|
"Android": "manifest_72379c553cacdc14de7b08eacf30742b.m",
|
||||||
|
"Windows": "manifest_451a3477478a452ad6d9d7d4efc8a7cc.m",
|
||||||
|
"iOS": "manifest_44481832f8d5ddf09c37c4c7cc2896e8.m"
|
||||||
|
},
|
||||||
|
"Revision": 750064
|
||||||
|
},
|
||||||
|
"AudioPreDownload": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Platform": {
|
||||||
|
"Android": "manifest_e6bba2f4b17b0fa2b8088554c631c89a.m",
|
||||||
|
"Windows": "manifest_78e29a53978043c1f285dee54cb23609.m",
|
||||||
|
"iOS": "manifest_520e04c4be6cd2c3114a22b2cb26bdb4.m"
|
||||||
|
},
|
||||||
|
"Revision": 749901
|
||||||
|
},
|
||||||
|
"VideoEncrypt": {
|
||||||
|
"FileName": "product_os_video_encrypt_70f8648c65dfdcb9bc4a7272e59d0d58"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"8.2.0_global_pc": {
|
||||||
|
"Asb": {
|
||||||
|
"Android": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.2.0.1",
|
||||||
|
"Suffix": "f909ea8698c9f116a31c3892c21571a8"
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.2.0.1",
|
||||||
|
"Suffix": "072d7971083a1194adfb091be4e969c5"
|
||||||
|
},
|
||||||
|
"Pc": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.2.0.1",
|
||||||
|
"Suffix": "a4f72d175b17b53a8e449cd48ffb091a"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AsbPreDownload": {
|
||||||
|
"Android": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.2.0.0",
|
||||||
|
"Suffix": "7d8addd08dfcb809ed64a20a32f4a023"
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.2.0.0",
|
||||||
|
"Suffix": "c8d02fc0a8dc652ed78496e703b18a1a"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Audio": {
|
||||||
|
"Platform": {
|
||||||
|
"Android": "manifest_72379c553cacdc14de7b08eacf30742b.m",
|
||||||
|
"Windows": "manifest_451a3477478a452ad6d9d7d4efc8a7cc.m",
|
||||||
|
"iOS": "manifest_44481832f8d5ddf09c37c4c7cc2896e8.m"
|
||||||
|
},
|
||||||
|
"Revision": 750064
|
||||||
|
},
|
||||||
|
"AudioPreDownload": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Platform": {
|
||||||
|
"Android": "manifest_e6bba2f4b17b0fa2b8088554c631c89a.m",
|
||||||
|
"Windows": "manifest_78e29a53978043c1f285dee54cb23609.m",
|
||||||
|
"iOS": "manifest_520e04c4be6cd2c3114a22b2cb26bdb4.m"
|
||||||
|
},
|
||||||
|
"Revision": 749901
|
||||||
|
},
|
||||||
|
"VideoEncrypt": {
|
||||||
|
"FileName": "product_west_video_encrypt_099462b4c385f4ab36c4fdcad88486f8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"8.2.0_gf_pc": {
|
||||||
|
"Asb": {
|
||||||
|
"Android": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.2",
|
||||||
|
"Suffix": "f5f1a80d8319a96bcea859d31d19c4dd"
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.2",
|
||||||
|
"Suffix": "81d684360c644612f7d8cbb815465b37"
|
||||||
|
},
|
||||||
|
"Pc": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.2",
|
||||||
|
"Suffix": "8bce638d856f677f82778a0980fef38b"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AsbPreDownload": {
|
||||||
|
"Android": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.0",
|
||||||
|
"Suffix": "bff38644dfcc28d847f4079b6b78f209"
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.0",
|
||||||
|
"Suffix": "e0c70df3b93cc2e2dbef4efce40c694e"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Audio": {
|
||||||
|
"Platform": {
|
||||||
|
"Android": "manifest_c50f0232a02c3f1cc5450e06115e67cf.m",
|
||||||
|
"Windows": "manifest_ab9dbe41ba6a4c9251d1e8aae0cc0c73.m",
|
||||||
|
"iOS": "manifest_ac0e5c5a3bc50a53a796f03287c3bb5d.m"
|
||||||
|
},
|
||||||
|
"Revision": 753506
|
||||||
|
},
|
||||||
|
"AudioPreDownload": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Platform": {
|
||||||
|
"Android": "manifest_faa7b7d2c34cdbf6c0426a979b5dff3d.m",
|
||||||
|
"Windows": "manifest_d21d0c0b54d0ffd725172f4d9d5220f2.m",
|
||||||
|
"iOS": "manifest_64ded762ca04d233ff2f0c1c56fe33a7.m"
|
||||||
|
},
|
||||||
|
"Revision": 752275
|
||||||
|
},
|
||||||
|
"VideoEncrypt": {
|
||||||
|
"FileName": "product_video_encrypt_8e2595dd6e9022cf94915d033cc0c488"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"8.2.0_jp_pc": {
|
||||||
|
"Asb": {
|
||||||
|
"Android": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.2.0.1",
|
||||||
|
"Suffix": "ee4b67a962fd2f3ac1b9f576d5dbf0af"
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.2.0.1",
|
||||||
|
"Suffix": "5004342b65a0a5fbad74ee7a6e185e3b"
|
||||||
|
},
|
||||||
|
"Pc": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.2.0.1",
|
||||||
|
"Suffix": "2e222cfd4b2da4a42eec9219e6cd57b0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AsbPreDownload": {
|
||||||
|
"Android": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.2.0.0",
|
||||||
|
"Suffix": "0a0d9db32c08a0084e55b5b242f2f901"
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.2.0.0",
|
||||||
|
"Suffix": "e17d5e1769a4c72ebe575d03666640f3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Audio": {
|
||||||
|
"Platform": {
|
||||||
|
"Android": "manifest_72379c553cacdc14de7b08eacf30742b.m",
|
||||||
|
"Windows": "manifest_451a3477478a452ad6d9d7d4efc8a7cc.m",
|
||||||
|
"iOS": "manifest_44481832f8d5ddf09c37c4c7cc2896e8.m"
|
||||||
|
},
|
||||||
|
"Revision": 750064
|
||||||
|
},
|
||||||
|
"AudioPreDownload": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Platform": {
|
||||||
|
"Android": "manifest_e6bba2f4b17b0fa2b8088554c631c89a.m",
|
||||||
|
"Windows": "manifest_78e29a53978043c1f285dee54cb23609.m",
|
||||||
|
"iOS": "manifest_520e04c4be6cd2c3114a22b2cb26bdb4.m"
|
||||||
|
},
|
||||||
|
"Revision": 749901
|
||||||
|
},
|
||||||
|
"VideoEncrypt": {
|
||||||
|
"FileName": "product_jp_video_encrypt_371861cb164c2b1100e80e0611a14bf8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"8.2.0_kr_pc": {
|
||||||
|
"Asb": {
|
||||||
|
"Android": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.2.0.1",
|
||||||
|
"Suffix": "39ff39a65a48c514f375e3c70a51028b"
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.2.0.1",
|
||||||
|
"Suffix": "2471dae3368f661815b252cd8a031fc3"
|
||||||
|
},
|
||||||
|
"Pc": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.2.0.1",
|
||||||
|
"Suffix": "9c4ec7419136ffe6bfc18554d3a00264"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AsbPreDownload": {
|
||||||
|
"Android": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.2.0.0",
|
||||||
|
"Suffix": "b8d8c127e316b9f3f1feb218572e6d8c"
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.2.0.0",
|
||||||
|
"Suffix": "984ce00a117c7c49a162a54d96bf7eaa"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Audio": {
|
||||||
|
"Platform": {
|
||||||
|
"Android": "manifest_72379c553cacdc14de7b08eacf30742b.m",
|
||||||
|
"Windows": "manifest_451a3477478a452ad6d9d7d4efc8a7cc.m",
|
||||||
|
"iOS": "manifest_44481832f8d5ddf09c37c4c7cc2896e8.m"
|
||||||
|
},
|
||||||
|
"Revision": 750064
|
||||||
|
},
|
||||||
|
"AudioPreDownload": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Platform": {
|
||||||
|
"Android": "manifest_e6bba2f4b17b0fa2b8088554c631c89a.m",
|
||||||
|
"Windows": "manifest_78e29a53978043c1f285dee54cb23609.m",
|
||||||
|
"iOS": "manifest_520e04c4be6cd2c3114a22b2cb26bdb4.m"
|
||||||
|
},
|
||||||
|
"Revision": 749901
|
||||||
|
},
|
||||||
|
"VideoEncrypt": {
|
||||||
|
"FileName": "product_kr_video_encrypt_86ba299ea5d830e971ddef114ed0db3f"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"8.2.0_tw_pc": {
|
||||||
|
"Asb": {
|
||||||
|
"Android": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.2.0.1",
|
||||||
|
"Suffix": "cad1e6f198b9ab5fca1c108bc06edd88"
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.2.0.1",
|
||||||
|
"Suffix": "6ff0ccd7bae526522ecfb8cd57918565"
|
||||||
|
},
|
||||||
|
"Pc": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.2.0.1",
|
||||||
|
"Suffix": "531972fab6501729f4a9a0b2b97786f6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AsbPreDownload": {
|
||||||
|
"Android": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.2.0.0",
|
||||||
|
"Suffix": "b78c9d9c0795d8b87d9d439dea099840"
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.2.0.0",
|
||||||
|
"Suffix": "9606642009c034873557e2923d08a25c"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Audio": {
|
||||||
|
"Platform": {
|
||||||
|
"Android": "manifest_72379c553cacdc14de7b08eacf30742b.m",
|
||||||
|
"Windows": "manifest_451a3477478a452ad6d9d7d4efc8a7cc.m",
|
||||||
|
"iOS": "manifest_44481832f8d5ddf09c37c4c7cc2896e8.m"
|
||||||
|
},
|
||||||
|
"Revision": 750064
|
||||||
|
},
|
||||||
|
"AudioPreDownload": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Platform": {
|
||||||
|
"Android": "manifest_e6bba2f4b17b0fa2b8088554c631c89a.m",
|
||||||
|
"Windows": "manifest_78e29a53978043c1f285dee54cb23609.m",
|
||||||
|
"iOS": "manifest_520e04c4be6cd2c3114a22b2cb26bdb4.m"
|
||||||
|
},
|
||||||
|
"Revision": 749901
|
||||||
|
},
|
||||||
|
"VideoEncrypt": {
|
||||||
|
"FileName": "product_asia_video_encrypt_4a156c48c46752110f2a0437edb5c866"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"8.3.0_gf_pc": {
|
||||||
|
"Asb": {
|
||||||
|
"Android": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.8",
|
||||||
|
"Suffix": "35badee39edb1450060c82d4d45a2d14"
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.8",
|
||||||
|
"Suffix": "5ff9ae1b2f217117a6ab5c0a1d5e0e0c"
|
||||||
|
},
|
||||||
|
"Pc": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.8",
|
||||||
|
"Suffix": "bb6665a0aa885d0f6f5f71ae11c5a625"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AsbPreDownload": {
|
||||||
|
"Android": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.0",
|
||||||
|
"Suffix": "bff38644dfcc28d847f4079b6b78f209"
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.0",
|
||||||
|
"Suffix": "e0c70df3b93cc2e2dbef4efce40c694e"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Audio": {
|
||||||
|
"Platform": {
|
||||||
|
"Android": "manifest_fbbea8fe36490219e2e57cbc2f8598b8.m",
|
||||||
|
"Windows": "manifest_72092f9a49a6a282084f43e93e512b15.m",
|
||||||
|
"iOS": "manifest_fbc4eebe6c4f5eb0a3f9f44648fab3f5.m"
|
||||||
|
},
|
||||||
|
"Revision": 754243
|
||||||
|
},
|
||||||
|
"AudioPreDownload": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Platform": {
|
||||||
|
"Android": "manifest_faa7b7d2c34cdbf6c0426a979b5dff3d.m",
|
||||||
|
"Windows": "manifest_d21d0c0b54d0ffd725172f4d9d5220f2.m",
|
||||||
|
"iOS": "manifest_64ded762ca04d233ff2f0c1c56fe33a7.m"
|
||||||
|
},
|
||||||
|
"Revision": 752275
|
||||||
|
},
|
||||||
|
"VideoEncrypt": {
|
||||||
|
"FileName": "product_video_encrypt_17f26b71f43728b94058a89bf41475be"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"8.3.0_os_pc": {
|
||||||
|
"Asb": {
|
||||||
|
"Android": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.0",
|
||||||
|
"Suffix": "58dde605404394655d6b9ec2e3c6c52c"
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.0",
|
||||||
|
"Suffix": "35784b91422f118f857d4e8f2faeb250"
|
||||||
|
},
|
||||||
|
"Pc": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.0",
|
||||||
|
"Suffix": "0a10c24fef1e0b402c74f63b9272f0b0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AsbPreDownload": {
|
||||||
|
"Android": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.0",
|
||||||
|
"Suffix": "58dde605404394655d6b9ec2e3c6c52c"
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.0",
|
||||||
|
"Suffix": "35784b91422f118f857d4e8f2faeb250"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Audio": {
|
||||||
|
"Platform": {
|
||||||
|
"Android": "manifest_4d89bb62c543ddbebd294711773748eb.m",
|
||||||
|
"Windows": "manifest_d3c1f0505a9d26bac3ed6fa92749b198.m",
|
||||||
|
"iOS": "manifest_4a755e678fcbcd82fafe7efbf7aa4374.m"
|
||||||
|
},
|
||||||
|
"Revision": 755798
|
||||||
|
},
|
||||||
|
"AudioPreDownload": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Platform": {
|
||||||
|
"Android": "manifest_4d89bb62c543ddbebd294711773748eb.m",
|
||||||
|
"Windows": "manifest_d3c1f0505a9d26bac3ed6fa92749b198.m",
|
||||||
|
"iOS": "manifest_4a755e678fcbcd82fafe7efbf7aa4374.m"
|
||||||
|
},
|
||||||
|
"Revision": 755798
|
||||||
|
},
|
||||||
|
"VideoEncrypt": {
|
||||||
|
"FileName": "product_os_video_encrypt_30348c78d7811519e3e1525d486c9e56"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"8.3.0_global_pc": {
|
||||||
|
"Asb": {
|
||||||
|
"Android": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.0",
|
||||||
|
"Suffix": "11925f0eb302731f4b6b36dcfd21b527"
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.0",
|
||||||
|
"Suffix": "9f0f5212e9856607173f65620b2229f0"
|
||||||
|
},
|
||||||
|
"Pc": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.0",
|
||||||
|
"Suffix": "adadbc204f9315d28f847c85cfe10795"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AsbPreDownload": {
|
||||||
|
"Android": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.0",
|
||||||
|
"Suffix": "11925f0eb302731f4b6b36dcfd21b527"
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.0",
|
||||||
|
"Suffix": "9f0f5212e9856607173f65620b2229f0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Audio": {
|
||||||
|
"Platform": {
|
||||||
|
"Android": "manifest_4d89bb62c543ddbebd294711773748eb.m",
|
||||||
|
"Windows": "manifest_d3c1f0505a9d26bac3ed6fa92749b198.m",
|
||||||
|
"iOS": "manifest_4a755e678fcbcd82fafe7efbf7aa4374.m"
|
||||||
|
},
|
||||||
|
"Revision": 755798
|
||||||
|
},
|
||||||
|
"AudioPreDownload": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Platform": {
|
||||||
|
"Android": "manifest_4d89bb62c543ddbebd294711773748eb.m",
|
||||||
|
"Windows": "manifest_d3c1f0505a9d26bac3ed6fa92749b198.m",
|
||||||
|
"iOS": "manifest_4a755e678fcbcd82fafe7efbf7aa4374.m"
|
||||||
|
},
|
||||||
|
"Revision": 755798
|
||||||
|
},
|
||||||
|
"VideoEncrypt": {
|
||||||
|
"FileName": "product_west_video_encrypt_1e8f6240eb4d8dec86f861919c469551"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"8.3.0_jp_pc": {
|
||||||
|
"Asb": {
|
||||||
|
"Android": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.0",
|
||||||
|
"Suffix": "38f68044b48eb11781cc81bbccc44968"
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.0",
|
||||||
|
"Suffix": "24b8c0cd9a3a217bdc891f1014307c1b"
|
||||||
|
},
|
||||||
|
"Pc": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.0",
|
||||||
|
"Suffix": "499a86fcdb4a5f8d45640d572f26dc2c"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AsbPreDownload": {
|
||||||
|
"Android": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.0",
|
||||||
|
"Suffix": "38f68044b48eb11781cc81bbccc44968"
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.0",
|
||||||
|
"Suffix": "24b8c0cd9a3a217bdc891f1014307c1b"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Audio": {
|
||||||
|
"Platform": {
|
||||||
|
"Android": "manifest_4d89bb62c543ddbebd294711773748eb.m",
|
||||||
|
"Windows": "manifest_d3c1f0505a9d26bac3ed6fa92749b198.m",
|
||||||
|
"iOS": "manifest_4a755e678fcbcd82fafe7efbf7aa4374.m"
|
||||||
|
},
|
||||||
|
"Revision": 755798
|
||||||
|
},
|
||||||
|
"AudioPreDownload": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Platform": {
|
||||||
|
"Android": "manifest_4d89bb62c543ddbebd294711773748eb.m",
|
||||||
|
"Windows": "manifest_d3c1f0505a9d26bac3ed6fa92749b198.m",
|
||||||
|
"iOS": "manifest_4a755e678fcbcd82fafe7efbf7aa4374.m"
|
||||||
|
},
|
||||||
|
"Revision": 755798
|
||||||
|
},
|
||||||
|
"VideoEncrypt": {
|
||||||
|
"FileName": "product_jp_video_encrypt_61a6f2020aed085edf3979e8e38ae5da"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"8.3.0_kr_pc": {
|
||||||
|
"Asb": {
|
||||||
|
"Android": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.0",
|
||||||
|
"Suffix": "e42c3bb8522240554e19169edb601c9f"
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.0",
|
||||||
|
"Suffix": "a116a80b68e3c9bde4fbb300a573e0ee"
|
||||||
|
},
|
||||||
|
"Pc": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.0",
|
||||||
|
"Suffix": "ad2013f4b77aa0de723bb37fd074751f"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AsbPreDownload": {
|
||||||
|
"Android": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.0",
|
||||||
|
"Suffix": "e42c3bb8522240554e19169edb601c9f"
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.3.0.0",
|
||||||
|
"Suffix": "a116a80b68e3c9bde4fbb300a573e0ee"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Audio": {
|
||||||
|
"Platform": {
|
||||||
|
"Android": "manifest_4d89bb62c543ddbebd294711773748eb.m",
|
||||||
|
"Windows": "manifest_d3c1f0505a9d26bac3ed6fa92749b198.m",
|
||||||
|
"iOS": "manifest_4a755e678fcbcd82fafe7efbf7aa4374.m"
|
||||||
|
},
|
||||||
|
"Revision": 755798
|
||||||
|
},
|
||||||
|
"AudioPreDownload": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Platform": {
|
||||||
|
"Android": "manifest_4d89bb62c543ddbebd294711773748eb.m",
|
||||||
|
"Windows": "manifest_d3c1f0505a9d26bac3ed6fa92749b198.m",
|
||||||
|
"iOS": "manifest_4a755e678fcbcd82fafe7efbf7aa4374.m"
|
||||||
|
},
|
||||||
|
"Revision": 755798
|
||||||
|
},
|
||||||
|
"VideoEncrypt": {
|
||||||
|
"FileName": "product_kr_video_encrypt_fe4aed33155528f56389a3c57ad6b2b8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"8.2.0": {
|
||||||
|
"Asb": {
|
||||||
|
"Android": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "",
|
||||||
|
"Suffix": ""
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "",
|
||||||
|
"Suffix": ""
|
||||||
|
},
|
||||||
|
"Pc": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "",
|
||||||
|
"Suffix": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AsbPreDownload": {
|
||||||
|
"Android": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "",
|
||||||
|
"Suffix": ""
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "",
|
||||||
|
"Suffix": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Audio": {
|
||||||
|
"Platform": {},
|
||||||
|
"Revision": 0
|
||||||
|
},
|
||||||
|
"AudioPreDownload": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Platform": {},
|
||||||
|
"Revision": 0
|
||||||
|
},
|
||||||
|
"VideoEncrypt": {
|
||||||
|
"FileName": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"8.5.0_os_pc": {
|
||||||
|
"Asb": {
|
||||||
|
"Android": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.5.0.0",
|
||||||
|
"Suffix": "e5afe91d3a54086eb65da9f0e801f5dc"
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.5.0.0",
|
||||||
|
"Suffix": "9083702df7869d3dad636b3992b0078c"
|
||||||
|
},
|
||||||
|
"Pc": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "8.5.0.0",
|
||||||
|
"Suffix": "3a67c019f62441dea7fe34d6e75b5e37"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AsbPreDownload": {
|
||||||
|
"Android": {
|
||||||
|
"EncryptKey": "194BB004413E5E24BE0BC00D30CA7504",
|
||||||
|
"EnableTime": 1761019200.0,
|
||||||
|
"Revision": "8.5.0.0",
|
||||||
|
"Suffix": "e5afe91d3a54086eb65da9f0e801f5dc"
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EncryptKey": "194BB004413E5E24BE0BC00D30CA7504",
|
||||||
|
"EnableTime": 1761019200.0,
|
||||||
|
"Revision": "8.5.0.0",
|
||||||
|
"Suffix": "9083702df7869d3dad636b3992b0078c"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Audio": {
|
||||||
|
"Platform": {
|
||||||
|
"Android": "manifest_b1fc77a17a4f1bb15f1e7e0a27dcb9f3.m",
|
||||||
|
"Windows": "manifest_be8c39976a1cb39a3b795218d6af3ce6.m",
|
||||||
|
"iOS": "manifest_eed3a8d64377d79434127f9b939fb190.m"
|
||||||
|
},
|
||||||
|
"Revision": 767132
|
||||||
|
},
|
||||||
|
"AudioPreDownload": {
|
||||||
|
"EnableTime": 1761019200.0,
|
||||||
|
"Platform": {
|
||||||
|
"Android": "manifest_b1fc77a17a4f1bb15f1e7e0a27dcb9f3.m",
|
||||||
|
"Windows": "manifest_be8c39976a1cb39a3b795218d6af3ce6.m",
|
||||||
|
"iOS": "manifest_eed3a8d64377d79434127f9b939fb190.m"
|
||||||
|
},
|
||||||
|
"Revision": 767132
|
||||||
|
},
|
||||||
|
"VideoEncrypt": {
|
||||||
|
"FileName": "product_os_video_encrypt_6c9cfc2a0635fd9683ca9231363bddd1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"8.5.0": {
|
||||||
|
"Asb": {
|
||||||
|
"Android": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "",
|
||||||
|
"Suffix": ""
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "",
|
||||||
|
"Suffix": ""
|
||||||
|
},
|
||||||
|
"Pc": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "",
|
||||||
|
"Suffix": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AsbPreDownload": {
|
||||||
|
"Android": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "",
|
||||||
|
"Suffix": ""
|
||||||
|
},
|
||||||
|
"Iphone": {
|
||||||
|
"EncryptKey": "",
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Revision": "",
|
||||||
|
"Suffix": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Audio": {
|
||||||
|
"Platform": {},
|
||||||
|
"Revision": 0
|
||||||
|
},
|
||||||
|
"AudioPreDownload": {
|
||||||
|
"EnableTime": 0.0,
|
||||||
|
"Platform": {},
|
||||||
|
"Revision": 0
|
||||||
|
},
|
||||||
|
"VideoEncrypt": {
|
||||||
|
"FileName": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"AesKeys": {
|
"AesKeys": {
|
||||||
"8.2.0": "62 63 63 34 32 62 32 65 38 66 32 31 39 66 62 38 33 38 32 64 64 36 65 64 36 65 64 34 36 34 36 38",
|
"8.2.0": "62 63 63 34 32 62 32 65 38 66 32 31 39 66 62 38 33 38 32 64 64 36 65 64 36 65 64 34 36 34 36 38",
|
||||||
"8.3.0": "66 64 38 65 32 66 39 33 31 38 35 38 39 63 32 30 34 34 38 39 37 61 30 32 64 33 37 65 35 62 37 61",
|
"8.3.0": "66 64 38 65 32 66 39 33 31 38 35 38 39 63 32 30 34 34 38 39 37 61 30 32 64 33 37 65 35 62 37 61",
|
||||||
"8.4.0": "31 38 61 39 37 37 64 37 33 62 63 64 37 65 33 61 37 32 31 32 32 35 62 30 31 37 34 64 66 31 37 39"
|
"8.4.0": "31 38 61 39 37 37 64 37 33 62 63 64 37 65 33 61 37 32 31 32 32 35 62 30 31 37 34 64 66 31 37 39",
|
||||||
|
"8.5.0": "33 38 34 64 38 34 31 38 64 34 64 35 66 32 34 32 38 33 61 30 30 34 32 35 61 65 62 38 30 62 34 64"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -14,11 +14,11 @@ public class QueryDispatchController : ControllerBase
|
|||||||
{
|
{
|
||||||
var version = HotfixContainer.ExtractVersionNumber(query.Version);
|
var version = HotfixContainer.ExtractVersionNumber(query.Version);
|
||||||
var hotfix_version = query.Version!;
|
var hotfix_version = query.Version!;
|
||||||
if (!ConfigManager.Hotfix.Hotfixes.ContainsKey(hotfix_version))
|
//if (!ConfigManager.Hotfix.Hotfixes.ContainsKey(hotfix_version))
|
||||||
{
|
//{
|
||||||
logger.Warn($"Client sent requesting unsupported game version: {hotfix_version}");
|
// logger.Warn($"Client sent requesting unsupported game version: {hotfix_version}");
|
||||||
return BadRequest();
|
// return BadRequest();
|
||||||
}
|
//}
|
||||||
|
|
||||||
var response = new QueryDispatchResponse
|
var response = new QueryDispatchResponse
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -11,16 +11,79 @@ namespace KianaBH.SdkServer.Handlers.Dispatch;
|
|||||||
public class QueryGatewayController : ControllerBase
|
public class QueryGatewayController : ControllerBase
|
||||||
{
|
{
|
||||||
[HttpGet("/query_gateway")]
|
[HttpGet("/query_gateway")]
|
||||||
public IActionResult QueryGateway([FromQuery] DispatchQuery query, Logger logger)
|
public async Task<IActionResult> QueryGateway([FromQuery] DispatchQuery query, Logger logger)
|
||||||
{
|
{
|
||||||
var version = HotfixContainer.ExtractVersionNumber(query.Version);
|
var version = HotfixContainer.ExtractVersionNumber(query.Version);
|
||||||
var hotfix_version = query.Version!;
|
var hotfix_version = query.Version!;
|
||||||
|
|
||||||
if (!ConfigManager.Hotfix.Hotfixes.TryGetValue(hotfix_version, out var hotfix))
|
if (!ConfigManager.Hotfix.Hotfixes.TryGetValue(hotfix_version, out var hotfix))
|
||||||
|
{
|
||||||
|
if (ConfigManager.Hotfix.AesKeys.TryGetValue(version, out var aesKey))
|
||||||
|
{
|
||||||
|
var parts = hotfix_version.Split('_');
|
||||||
|
var region = string.Join('_', parts.SkipWhile(p => char.IsDigit(p[0])));
|
||||||
|
|
||||||
|
var domainMap = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
|
||||||
|
{
|
||||||
|
{ "gf_pc_beta", "outer-dp-beta-release.bh3.com" },
|
||||||
|
{ "os_pc", "outer-dp-overseas01.honkaiimpact3.com" },
|
||||||
|
{ "global_pc", "outer-dp-usa01.honkaiimpact3.com" },
|
||||||
|
{ "gf_pc", "outer-dp-pc01.bh3.com" },
|
||||||
|
{ "jp_pc", "outer-dp-jp01.honkaiimpact3.com" },
|
||||||
|
{ "kr_pc", "outer-dp-kr01.honkaiimpact3.com" },
|
||||||
|
{ "tw_pc", "outer-dp-asia01.honkaiimpact3.com" }
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!domainMap.TryGetValue(region, out var domain))
|
||||||
|
{
|
||||||
|
logger.Warn($"[AUTO-HOTFIX] Unknown region '{region}' for version {hotfix_version}");
|
||||||
|
return BadRequest();
|
||||||
|
}
|
||||||
|
|
||||||
|
var hotfixUrl = $"https://proxy1.neonteam.dev/{domain}/query_gameserver?version={hotfix_version}&t={query.Timestamp}&uid={query.Uid}&token={query.Token}";
|
||||||
|
|
||||||
|
using var http = new HttpClient();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var httpResponse = await http.GetAsync(hotfixUrl);
|
||||||
|
if (!httpResponse.IsSuccessStatusCode)
|
||||||
|
{
|
||||||
|
logger.Warn($"[AUTO-HOTFIX] Failed to fetch hotfix from {hotfixUrl}: {httpResponse.StatusCode}");
|
||||||
|
return BadRequest();
|
||||||
|
}
|
||||||
|
|
||||||
|
var base64 = (await httpResponse.Content.ReadAsStringAsync()).Trim();
|
||||||
|
|
||||||
|
string? decryptedText = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
decryptedText = DispatchEncryption.DecryptDispatchContent(version, base64);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
logger.Error($"[AUTO-HOTFIX] Decrypt error: {ex.Message}");
|
||||||
|
}
|
||||||
|
|
||||||
|
ConfigManager.SaveHotfixData(hotfix_version, decryptedText!);
|
||||||
|
|
||||||
|
if (!ConfigManager.Hotfix.Hotfixes.TryGetValue(hotfix_version, out hotfix))
|
||||||
|
{
|
||||||
|
logger.Warn($"[AUTO-HOTFIX] Failed to retrieve hotfix after saving for version {hotfix_version}");
|
||||||
|
return BadRequest();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
logger.Error($"[AUTO-HOTFIX] Exception while fetching hotfix: {ex.Message}");
|
||||||
|
return BadRequest();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
logger.Warn($"Client sent requesting unsupported game version: {hotfix_version}");
|
logger.Warn($"Client sent requesting unsupported game version: {hotfix_version}");
|
||||||
return BadRequest();
|
return BadRequest();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var serverInfo = new QueryGatewayResponse.ServerInfo
|
var serverInfo = new QueryGatewayResponse.ServerInfo
|
||||||
{
|
{
|
||||||
@@ -93,8 +156,8 @@ public static partial class UrlProvider
|
|||||||
],
|
],
|
||||||
"gf" when version.Contains("beta") =>
|
"gf" when version.Contains("beta") =>
|
||||||
[
|
[
|
||||||
"https://autopatchbeta.bh3.com/asset_bundle/beta_dev/1.0",
|
"https://autopatchbeta.bh3.com/asset_bundle/beta_release/1.0",
|
||||||
"https://bh3rd-beta.bh3.com/asset_bundle/beta_release/1.0",
|
"https://bh3rd-beta.bh3.com/asset_bundle/beta_release/1.0"
|
||||||
],
|
],
|
||||||
"gf" =>
|
"gf" =>
|
||||||
[
|
[
|
||||||
@@ -143,7 +206,7 @@ public static partial class UrlProvider
|
|||||||
"gf" when version.Contains("beta") =>
|
"gf" when version.Contains("beta") =>
|
||||||
[
|
[
|
||||||
"autopatchbeta.bh3.com/tmp/CGAudio",
|
"autopatchbeta.bh3.com/tmp/CGAudio",
|
||||||
"autopatchbeta.bh3.com/tmp/CGAudio",
|
"bh3rd-beta.bh3.com/tmp/CGAudio"
|
||||||
],
|
],
|
||||||
_ =>
|
_ =>
|
||||||
[
|
[
|
||||||
|
|||||||
Reference in New Issue
Block a user