From 615c125030e3f448e4ac5d34f812cd4c0027cc06 Mon Sep 17 00:00:00 2001 From: Howard Wu <40033067+Howard20181@users.noreply.github.com> Date: Sun, 18 Dec 2022 18:53:47 +0800 Subject: [PATCH] Support for custom Microsoft account identity Create a file named `.ms_account` in the download directory and write `user_code=` in it to import it automatically --- scripts/generateWSALinks.py | 30 ++++++++++++++--- xml/FE3FileUrl.xml | 67 ++++++++++++++++++------------------- xml/GetCookie.xml | 62 ++++++++++++++++++++-------------- xml/WUIDRequest.xml | 11 +++--- 4 files changed, 97 insertions(+), 73 deletions(-) diff --git a/scripts/generateWSALinks.py b/scripts/generateWSALinks.py index be219a8..adb4c99 100644 --- a/scripts/generateWSALinks.py +++ b/scripts/generateWSALinks.py @@ -27,6 +27,20 @@ import warnings import re from pathlib import Path import os +from typing import OrderedDict + +class Prop(OrderedDict): + def __init__(self, props: str=...) -> None: + super().__init__() + for i, line in enumerate(props.splitlines(False)): + if '=' in line: + k, v = line.split('=', 2) + self[k] = v + else: + self[f".{i}"] = line + + def get(self, key: str) -> str: + return self[key] warnings.filterwarnings("ignore") @@ -37,11 +51,17 @@ release_name_map = {"retail": "Retail", "RP": "Release Preview", release_type = sys.argv[2] if sys.argv[2] != "" else "Retail" release_name = release_name_map[release_type] download_dir = Path.cwd().parent / "download" if sys.argv[3] == "" else Path(sys.argv[3]).resolve() +ms_account_conf = download_dir/".ms_account" tempScript = sys.argv[4] cat_id = '858014f3-3934-4abe-8078-4aa193e74ca8' +user = '' +if ms_account_conf.is_file(): + with open(ms_account_conf, "r") as f: + conf = Prop(f.read()) + user = conf.get('user_code') print(f"Generating WSA download link: arch={arch} release_type={release_name}", flush=True) with open(Path.cwd().parent / ("xml/GetCookie.xml"), "r") as f: - cookie_content = f.read() + cookie_content = f.read().format(user) out = requests.post( 'https://fe3.delivery.mp.microsoft.com/ClientWebService/client.asmx', @@ -53,7 +73,7 @@ doc = minidom.parseString(out.text) cookie = doc.getElementsByTagName('EncryptedData')[0].firstChild.nodeValue with open(Path.cwd().parent / "xml/WUIDRequest.xml", "r") as f: - cat_id_content = f.read().format(cookie, cat_id, release_type) + cat_id_content = f.read().format(user, cookie, cat_id, release_type) out = requests.post( 'https://fe3.delivery.mp.microsoft.com/ClientWebService/client.asmx', @@ -79,7 +99,7 @@ for node in doc.getElementsByTagName('SecuredFragment'): update_identity.attributes['RevisionNumber'].value, filename)] with open(Path.cwd().parent / "xml/FE3FileUrl.xml", "r") as f: - file_content = f.read() + FE3_file_content = f.read() if not download_dir.is_dir(): download_dir.mkdir() @@ -93,7 +113,7 @@ for i, v, f in identities: # out_file = download_dir / out_file_name elif re.match(f"MicrosoftCorporationII\.WindowsSubsystemForAndroid_.*\.msixbundle", f): wsa_long_ver = re.search(u'\d{4}.\d{5}.\d{1,}.\d{1,}', f).group() - print(f'WSA Version={wsa_long_ver}\n') + print(f'WSA Version={wsa_long_ver}\n', flush=True) main_ver = wsa_long_ver.split(".")[0] with open(os.environ['WSA_WORK_ENV'], 'a') as environ_file: environ_file.write(f"DOWN_WSA_VERSION={wsa_long_ver}\n") @@ -104,7 +124,7 @@ for i, v, f in identities: continue out = requests.post( 'https://fe3.delivery.mp.microsoft.com/ClientWebService/client.asmx/secured', - data=file_content.format(i, v, release_type), + data=FE3_file_content.format(user, i, v, release_type), headers={'Content-Type': 'application/soap+xml; charset=utf-8'}, verify=False ) diff --git a/xml/FE3FileUrl.xml b/xml/FE3FileUrl.xml index 840504a..093c314 100644 --- a/xml/FE3FileUrl.xml +++ b/xml/FE3FileUrl.xml @@ -1,40 +1,37 @@ - - - http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/GetExtendedUpdateInfo2 - urn:uuid:2cc99c2e-3b3e-4fb1-9e31-0cd30e6f43a0 - https://fe3.delivery.mp.microsoft.com/ClientWebService/client.asmx/secured - + http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/GetExtendedUpdateInfo2 + urn:uuid:2cc99c2e-3b3e-4fb1-9e31-0cd30e6f43a0 + https://fe3.delivery.mp.microsoft.com/ClientWebService/client.asmx/secured + - - 2017-08-01T00:29:01.868Z - 2017-08-01T00:34:01.868Z - - + 2017-08-01T00:29:01.868Z + 2017-08-01T00:34:01.868Z + + - - dAA9AEUAdwBBAHcAQQBzAE4AMwBCAEEAQQBVADEAYgB5AHMAZQBtAGIAZQBEAFYAQwArADMAZgBtADcAbwBXAHkASAA3AGIAbgBnAEcAWQBtAEEAQQBMAGoAbQBqAFYAVQB2AFEAYwA0AEsAVwBFAC8AYwBDAEwANQBYAGUANABnAHYAWABkAGkAegBHAGwAZABjADEAZAAvAFcAeQAvAHgASgBQAG4AVwBRAGUAYwBtAHYAbwBjAGkAZwA5AGoAZABwAE4AawBIAG0AYQBzAHAAVABKAEwARAArAFAAYwBBAFgAbQAvAFQAcAA3AEgAagBzAEYANAA0AEgAdABsAC8AMQBtAHUAcgAwAFMAdQBtAG8AMABZAGEAdgBqAFIANwArADQAcABoAC8AcwA4ADEANgBFAFkANQBNAFIAbQBnAFIAQwA2ADMAQwBSAEoAQQBVAHYAZgBzADQAaQB2AHgAYwB5AEwAbAA2AHoAOABlAHgAMABrAFgAOQBPAHcAYQB0ADEAdQBwAFMAOAAxAEgANgA4AEEASABzAEoAegBnAFQAQQBMAG8AbgBBADIAWQBBAEEAQQBpAGcANQBJADMAUQAvAFYASABLAHcANABBAEIAcQA5AFMAcQBhADEAQgA4AGsAVQAxAGEAbwBLAEEAdQA0AHYAbABWAG4AdwBWADMAUQB6AHMATgBtAEQAaQBqAGgANQBkAEcAcgBpADgAQQBlAEUARQBWAEcAbQBXAGgASQBCAE0AUAAyAEQAVwA0ADMAZABWAGkARABUAHoAVQB0AHQARQBMAEgAaABSAGYAcgBhAGIAWgBsAHQAQQBUAEUATABmAHMARQBGAFUAYQBRAFMASgB4ADUAeQBRADgAagBaAEUAZQAyAHgANABCADMAMQB2AEIAMgBqAC8AUgBLAGEAWQAvAHEAeQB0AHoANwBUAHYAdAB3AHQAagBzADYAUQBYAEIAZQA4AHMAZwBJAG8AOQBiADUAQQBCADcAOAAxAHMANgAvAGQAUwBFAHgATgBEAEQAYQBRAHoAQQBYAFAAWABCAFkAdQBYAFEARQBzAE8AegA4AHQAcgBpAGUATQBiAEIAZQBUAFkAOQBiAG8AQgBOAE8AaQBVADcATgBSAEYAOQAzAG8AVgArAFYAQQBiAGgAcAAwAHAAUgBQAFMAZQBmAEcARwBPAHEAdwBTAGcANwA3AHMAaAA5AEoASABNAHAARABNAFMAbgBrAHEAcgAyAGYARgBpAEMAUABrAHcAVgBvAHgANgBuAG4AeABGAEQAbwBXAC8AYQAxAHQAYQBaAHcAegB5AGwATABMADEAMgB3AHUAYgBtADUAdQBtAHAAcQB5AFcAYwBLAFIAagB5AGgAMgBKAFQARgBKAFcANQBnAFgARQBJADUAcAA4ADAARwB1ADIAbgB4AEwAUgBOAHcAaQB3AHIANwBXAE0AUgBBAFYASwBGAFcATQBlAFIAegBsADkAVQBxAGcALwBwAFgALwB2AGUATAB3AFMAawAyAFMAUwBIAGYAYQBLADYAagBhAG8AWQB1AG4AUgBHAHIAOABtAGIARQBvAEgAbABGADYASgBDAGEAYQBUAEIAWABCAGMAdgB1AGUAQwBKAG8AOQA4AGgAUgBBAHIARwB3ADQAKwBQAEgAZQBUAGIATgBTAEUAWABYAHoAdgBaADYAdQBXADUARQBBAGYAZABaAG0AUwA4ADgAVgBKAGMAWgBhAEYASwA3AHgAeABnADAAdwBvAG4ANwBoADAAeABDADYAWgBCADAAYwBZAGoATAByAC8ARwBlAE8AegA5AEcANABRAFUASAA5AEUAawB5ADAAZAB5AEYALwByAGUAVQAxAEkAeQBpAGEAcABwAGgATwBQADgAUwAyAHQANABCAHIAUABaAFgAVAB2AEMAMABQADcAegBPACsAZgBHAGsAeABWAG0AKwBVAGYAWgBiAFEANQA1AHMAdwBFAD0AJgBwAD0A - - - - - - - - - {} - {} - - - - FileUrl - FileDecryption - - BranchReadinessLevel=CB;CurrentBranch=rs_prerelease;OEMModel=Virtual Machine;FlightRing={};AttrDataVer=21;SystemManufacturer=Microsoft Corporation;InstallLanguage=en-US;OSUILocale=en-US;InstallationType=Client;FlightingBranchName=external;FirmwareVersion=Hyper-V UEFI Release v2.5;SystemProductName=Virtual Machine;OSSkuId=48;FlightContent=Branch;App=WU;OEMName_Uncleaned=Microsoft Corporation;AppVer=10.0.22621.900;OSArchitecture=AMD64;SystemSKU=None;UpdateManagementGroup=2;IsFlightingEnabled=1;IsDeviceRetailDemo=0;TelemetryLevel=3;OSVersion=10.0.22621.900;DeviceFamily=Windows.Desktop; - - + + {} + + + + + + + + + {} + {} + + + + FileUrl + FileDecryption + + BranchReadinessLevel=CB;CurrentBranch=rs_prerelease;OEMModel=Virtual Machine;FlightRing={};AttrDataVer=21;SystemManufacturer=Microsoft Corporation;InstallLanguage=en-US;OSUILocale=en-US;InstallationType=Client;FlightingBranchName=external;FirmwareVersion=Hyper-V UEFI Release v2.5;SystemProductName=Virtual Machine;OSSkuId=48;FlightContent=Branch;App=WU;OEMName_Uncleaned=Microsoft Corporation;AppVer=10.0.22621.900;OSArchitecture=AMD64;SystemSKU=None;UpdateManagementGroup=2;IsFlightingEnabled=1;IsDeviceRetailDemo=0;TelemetryLevel=3;OSVersion=10.0.22621.900;DeviceFamily=Windows.Desktop; + + diff --git a/xml/GetCookie.xml b/xml/GetCookie.xml index e8de3a5..6006128 100644 --- a/xml/GetCookie.xml +++ b/xml/GetCookie.xml @@ -1,27 +1,37 @@ - -
- http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/GetCookie - urn:uuid:b9b43757-2247-4d7b-ae8f-a71ba8a22386 - https://fe3.delivery.mp.microsoft.com/ClientWebService/client.asmx - - - 2017-12-02T00:16:15.210Z - 2017-12-29T06:25:43.943Z - - - - - - - -
- - - - - 2015-10-21T17:01:07.1472913Z - 2017-12-02T00:16:15.217Z - 1.40 - - + +
+ http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/GetCookie + urn:uuid:b9b43757-2247-4d7b-ae8f-a71ba8a22386 + https://fe3.delivery.mp.microsoft.com/ClientWebService/client.asmx + + + 2017-12-02T00:16:15.210Z + 2017-12-29T06:25:43.943Z + + + + {} + + + +
+ + + + + 2015-10-21T17:01:07.1472913Z + 2017-12-02T00:16:15.217Z + 1.40 + +
\ No newline at end of file diff --git a/xml/WUIDRequest.xml b/xml/WUIDRequest.xml index c6a7eeb..4c2a32b 100644 --- a/xml/WUIDRequest.xml +++ b/xml/WUIDRequest.xml @@ -1,5 +1,4 @@ - http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/SyncUpdates @@ -7,8 +6,7 @@ https://fe3.delivery.mp.microsoft.com/ClientWebService/client.asmx - + 2017-08-05T02:03:05.038Z 2017-08-05T02:08:05.038Z @@ -16,14 +14,13 @@ xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wuws="http://schemas.microsoft.com/msus/2014/10/WindowsUpdateAuthorization"> - dAA9AEUAdwBBAHcAQQBzAE4AMwBCAEEAQQBVADEAYgB5AHMAZQBtAGIAZQBEAFYAQwArADMAZgBtADcAbwBXAHkASAA3AGIAbgBnAEcAWQBtAEEAQQBMAGoAbQBqAFYAVQB2AFEAYwA0AEsAVwBFAC8AYwBDAEwANQBYAGUANABnAHYAWABkAGkAegBHAGwAZABjADEAZAAvAFcAeQAvAHgASgBQAG4AVwBRAGUAYwBtAHYAbwBjAGkAZwA5AGoAZABwAE4AawBIAG0AYQBzAHAAVABKAEwARAArAFAAYwBBAFgAbQAvAFQAcAA3AEgAagBzAEYANAA0AEgAdABsAC8AMQBtAHUAcgAwAFMAdQBtAG8AMABZAGEAdgBqAFIANwArADQAcABoAC8AcwA4ADEANgBFAFkANQBNAFIAbQBnAFIAQwA2ADMAQwBSAEoAQQBVAHYAZgBzADQAaQB2AHgAYwB5AEwAbAA2AHoAOABlAHgAMABrAFgAOQBPAHcAYQB0ADEAdQBwAFMAOAAxAEgANgA4AEEASABzAEoAegBnAFQAQQBMAG8AbgBBADIAWQBBAEEAQQBpAGcANQBJADMAUQAvAFYASABLAHcANABBAEIAcQA5AFMAcQBhADEAQgA4AGsAVQAxAGEAbwBLAEEAdQA0AHYAbABWAG4AdwBWADMAUQB6AHMATgBtAEQAaQBqAGgANQBkAEcAcgBpADgAQQBlAEUARQBWAEcAbQBXAGgASQBCAE0AUAAyAEQAVwA0ADMAZABWAGkARABUAHoAVQB0AHQARQBMAEgAaABSAGYAcgBhAGIAWgBsAHQAQQBUAEUATABmAHMARQBGAFUAYQBRAFMASgB4ADUAeQBRADgAagBaAEUAZQAyAHgANABCADMAMQB2AEIAMgBqAC8AUgBLAGEAWQAvAHEAeQB0AHoANwBUAHYAdAB3AHQAagBzADYAUQBYAEIAZQA4AHMAZwBJAG8AOQBiADUAQQBCADcAOAAxAHMANgAvAGQAUwBFAHgATgBEAEQAYQBRAHoAQQBYAFAAWABCAFkAdQBYAFEARQBzAE8AegA4AHQAcgBpAGUATQBiAEIAZQBUAFkAOQBiAG8AQgBOAE8AaQBVADcATgBSAEYAOQAzAG8AVgArAFYAQQBiAGgAcAAwAHAAUgBQAFMAZQBmAEcARwBPAHEAdwBTAGcANwA3AHMAaAA5AEoASABNAHAARABNAFMAbgBrAHEAcgAyAGYARgBpAEMAUABrAHcAVgBvAHgANgBuAG4AeABGAEQAbwBXAC8AYQAxAHQAYQBaAHcAegB5AGwATABMADEAMgB3AHUAYgBtADUAdQBtAHAAcQB5AFcAYwBLAFIAagB5AGgAMgBKAFQARgBKAFcANQBnAFgARQBJADUAcAA4ADAARwB1ADIAbgB4AEwAUgBOAHcAaQB3AHIANwBXAE0AUgBBAFYASwBGAFcATQBlAFIAegBsADkAVQBxAGcALwBwAFgALwB2AGUATAB3AFMAawAyAFMAUwBIAGYAYQBLADYAagBhAG8AWQB1AG4AUgBHAHIAOABtAGIARQBvAEgAbABGADYASgBDAGEAYQBUAEIAWABCAGMAdgB1AGUAQwBKAG8AOQA4AGgAUgBBAHIARwB3ADQAKwBQAEgAZQBUAGIATgBTAEUAWABYAHoAdgBaADYAdQBXADUARQBBAGYAZABaAG0AUwA4ADgAVgBKAGMAWgBhAEYASwA3AHgAeABnADAAdwBvAG4ANwBoADAAeABDADYAWgBCADAAYwBZAGoATAByAC8ARwBlAE8AegA5AEcANABRAFUASAA5AEUAawB5ADAAZAB5AEYALwByAGUAVQAxAEkAeQBpAGEAcABwAGgATwBQADgAUwAyAHQANABCAHIAUABaAFgAVAB2AEMAMABQADcAegBPACsAZgBHAGsAeABWAG0AKwBVAGYAWgBiAFEANQA1AHMAdwBFAD0AJgBwAD0A + {} - + 2045-03-11T02:02:48Z {}