mirror of
https://github.com/LSPosed/MagiskOnWSALocal.git
synced 2025-01-08 11:37:39 +08:00
Check WSA download link version
I don't know why Microsoft's server returns multiple versions at the same time
This commit is contained in:
parent
aefda92b20
commit
9a4f25e538
@ -477,13 +477,13 @@ update_gapps_zip_name() {
|
||||
fi
|
||||
GAPPS_PATH=$DOWNLOAD_DIR/$GAPPS_ZIP_NAME
|
||||
}
|
||||
WSA_MAIN_VER=0
|
||||
WSA_MAJOR_VER=0
|
||||
update_ksu_zip_name() {
|
||||
KERNEL_VER="5.15.78.1"
|
||||
if [ "$WSA_MAIN_VER" -lt "2303" ]; then
|
||||
if [ "$WSA_MAJOR_VER" -lt "2303" ]; then
|
||||
abort "KernelSU is not supported on WSA version below 2303"
|
||||
fi
|
||||
if [ "$WSA_MAIN_VER" -ge "2304" ]; then
|
||||
if [ "$WSA_MAJOR_VER" -ge "2304" ]; then
|
||||
KERNEL_VER="5.15.94.4"
|
||||
fi
|
||||
KERNELSU_ZIP_NAME=kernelsu-$ARCH-$KERNEL_VER.zip
|
||||
@ -498,9 +498,9 @@ if [ -z ${OFFLINE+x} ]; then
|
||||
# shellcheck disable=SC1090
|
||||
source "$WSA_WORK_ENV" || abort
|
||||
else
|
||||
WSA_MAIN_VER=$(python3 getWSAMainVersion.py "$ARCH" "$WSA_ZIP_PATH")
|
||||
WSA_MAJOR_VER=$(python3 getWSAMainVersion.py "$ARCH" "$WSA_ZIP_PATH")
|
||||
fi
|
||||
if [[ "$WSA_MAIN_VER" -lt 2211 ]]; then
|
||||
if [[ "$WSA_MAJOR_VER" -lt 2211 ]]; then
|
||||
ANDROID_API=32
|
||||
fi
|
||||
if [ "$ROOT_SOL" = "magisk" ] || [ "$GAPPS_BRAND" != "none" ]; then
|
||||
@ -527,8 +527,8 @@ if [ -z ${OFFLINE+x} ]; then
|
||||
exit 1
|
||||
fi
|
||||
else # Offline mode
|
||||
WSA_MAIN_VER=$(python3 getWSAMainVersion.py "$ARCH" "$WSA_ZIP_PATH")
|
||||
if [[ "$WSA_MAIN_VER" -lt 2211 ]]; then
|
||||
WSA_MAJOR_VER=$(python3 getWSAMainVersion.py "$ARCH" "$WSA_ZIP_PATH")
|
||||
if [[ "$WSA_MAJOR_VER" -lt 2211 ]]; then
|
||||
ANDROID_API=32
|
||||
fi
|
||||
declare -A FILES_CHECK_LIST=([WSA_ZIP_PATH]="$WSA_ZIP_PATH" [xaml_PATH]="$xaml_PATH" [vclibs_PATH]="$vclibs_PATH" [UWPVCLibs_PATH]="$UWPVCLibs_PATH")
|
||||
@ -639,7 +639,7 @@ if [ "$GAPPS_BRAND" != 'none' ]; then
|
||||
echo -e "Extract done\n"
|
||||
fi
|
||||
|
||||
if [[ "$WSA_MAIN_VER" -ge 2302 ]]; then
|
||||
if [[ "$WSA_MAJOR_VER" -ge 2302 ]]; then
|
||||
echo "Convert vhdx to RAW image"
|
||||
vhdx_to_raw_img "$WORK_DIR/wsa/$ARCH/system_ext.vhdx" "$WORK_DIR/wsa/$ARCH/system_ext.img" || abort
|
||||
vhdx_to_raw_img "$WORK_DIR/wsa/$ARCH/product.vhdx" "$WORK_DIR/wsa/$ARCH/product.img" || abort
|
||||
@ -648,7 +648,7 @@ if [[ "$WSA_MAIN_VER" -ge 2302 ]]; then
|
||||
echo -e "Convert vhdx to RAW image done\n"
|
||||
fi
|
||||
|
||||
if [[ "$WSA_MAIN_VER" -ge 2304 ]]; then
|
||||
if [[ "$WSA_MAJOR_VER" -ge 2304 ]]; then
|
||||
echo "Mount images"
|
||||
sudo mkdir -p -m 755 "$ROOT_MNT_RO" || abort
|
||||
sudo chown "0:0" "$ROOT_MNT_RO" || abort
|
||||
@ -664,7 +664,7 @@ if [[ "$WSA_MAIN_VER" -ge 2304 ]]; then
|
||||
mk_overlayfs product "$PRODUCT_MNT_RO" "$PRODUCT_MNT_RW" "$PRODUCT_MNT" || abort
|
||||
mk_overlayfs system_ext "$SYSTEM_EXT_MNT_RO" "$SYSTEM_EXT_MNT_RW" "$SYSTEM_EXT_MNT" || abort
|
||||
echo -e "Create overlayfs for EROFS done\n"
|
||||
elif [[ "$WSA_MAIN_VER" -ge 2302 ]]; then
|
||||
elif [[ "$WSA_MAJOR_VER" -ge 2302 ]]; then
|
||||
echo "Remove read-only flag for read-only EXT4 image"
|
||||
ro_ext4_img_to_rw "$WORK_DIR/wsa/$ARCH/system_ext.img" || abort
|
||||
ro_ext4_img_to_rw "$WORK_DIR/wsa/$ARCH/product.img" || abort
|
||||
@ -672,7 +672,7 @@ elif [[ "$WSA_MAIN_VER" -ge 2302 ]]; then
|
||||
ro_ext4_img_to_rw "$WORK_DIR/wsa/$ARCH/vendor.img" || abort
|
||||
echo -e "Remove read-only flag for read-only EXT4 image done\n"
|
||||
fi
|
||||
if [[ "$WSA_MAIN_VER" -lt 2304 ]]; then
|
||||
if [[ "$WSA_MAJOR_VER" -lt 2304 ]]; then
|
||||
echo "Calculate the required space"
|
||||
EXTRA_SIZE=10240
|
||||
|
||||
@ -906,7 +906,7 @@ if [ "$GAPPS_BRAND" != 'none' ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "$WSA_MAIN_VER" -ge 2304 ]]; then
|
||||
if [[ "$WSA_MAJOR_VER" -ge 2304 ]]; then
|
||||
echo "Create EROFS images"
|
||||
mk_erofs_umount "$VENDOR_MNT" "$WORK_DIR/wsa/$ARCH/vendor.img" "$VENDOR_MNT_RW" || abort
|
||||
mk_erofs_umount "$PRODUCT_MNT" "$WORK_DIR/wsa/$ARCH/product.img" "$PRODUCT_MNT_RW" || abort
|
||||
@ -935,7 +935,7 @@ else
|
||||
echo -e "Shrink images done\n"
|
||||
fi
|
||||
|
||||
if [[ "$WSA_MAIN_VER" -ge 2302 ]]; then
|
||||
if [[ "$WSA_MAJOR_VER" -ge 2302 ]]; then
|
||||
echo "Convert images to vhdx"
|
||||
qemu-img convert -q -f raw -o subformat=fixed -O vhdx "$WORK_DIR/wsa/$ARCH/system_ext.img" "$WORK_DIR/wsa/$ARCH/system_ext.vhdx" || abort
|
||||
qemu-img convert -q -f raw -o subformat=fixed -O vhdx "$WORK_DIR/wsa/$ARCH/product.img" "$WORK_DIR/wsa/$ARCH/product.vhdx" || abort
|
||||
|
@ -82,13 +82,13 @@ with zipfile.ZipFile(wsa_zip_path) as zip:
|
||||
ver_no = zip_name.split("_")
|
||||
long_ver = ver_no[1]
|
||||
ver = long_ver.split(".")
|
||||
main_ver = ver[0]
|
||||
major_ver = ver[0]
|
||||
rel = ver_no[3].split(".")
|
||||
rel_long = str(rel[0])
|
||||
with open(env_file, 'r') as environ_file:
|
||||
env = Prop(environ_file.read())
|
||||
env.WSA_VER = long_ver
|
||||
env.WSA_MAIN_VER = main_ver
|
||||
env.WSA_MAJOR_VER = major_ver
|
||||
env.WSA_REL = rel_long
|
||||
with open(env_file, 'w') as environ_file:
|
||||
environ_file.write(str(env))
|
||||
|
@ -30,6 +30,7 @@ from typing import Any, OrderedDict
|
||||
from xml.dom import minidom
|
||||
|
||||
from requests import Session
|
||||
from packaging import version
|
||||
|
||||
|
||||
class Prop(OrderedDict):
|
||||
@ -124,9 +125,10 @@ if not download_dir.is_dir():
|
||||
download_dir.mkdir()
|
||||
|
||||
tmpdownlist = open(download_dir/tempScript, 'a')
|
||||
download_files = {}
|
||||
|
||||
|
||||
def send_req(i, v, out_file, out_file_name):
|
||||
def send_req(i, v, out_file_name):
|
||||
out = session.post(
|
||||
'https://fe3.delivery.mp.microsoft.com/ClientWebService/client.asmx/secured',
|
||||
data=FE3_file_content.format(user, i, v, release_type),
|
||||
@ -136,13 +138,11 @@ def send_req(i, v, out_file, out_file_name):
|
||||
for l in doc.getElementsByTagName("FileLocation"):
|
||||
url = l.getElementsByTagName("Url")[0].firstChild.nodeValue
|
||||
if len(url) != 99:
|
||||
print(f"download link: {url}\npath: {out_file}\n", flush=True)
|
||||
tmpdownlist.writelines(url + '\n')
|
||||
tmpdownlist.writelines(f' dir={download_dir}\n')
|
||||
tmpdownlist.writelines(f' out={out_file_name}\n')
|
||||
download_files[out_file_name] = url
|
||||
|
||||
|
||||
threads = []
|
||||
wsa_build_ver = 0
|
||||
for filename, values in identities.items():
|
||||
if re.match(f"Microsoft\.UI\.Xaml\..*_{arch}_.*\.appx", filename):
|
||||
out_file_name = f"{values[1]}_{arch}.appx"
|
||||
@ -154,24 +154,39 @@ for filename, values in identities.items():
|
||||
out_file_name = f"{values[1]}_{arch}.appx"
|
||||
out_file = download_dir / out_file_name
|
||||
elif re.match(f"MicrosoftCorporationII\.WindowsSubsystemForAndroid_.*\.msixbundle", filename):
|
||||
wsa_long_ver = re.search(u'\d{4}.\d{5}.\d{1,}.\d{1,}', filename).group()
|
||||
print(f'WSA Version={wsa_long_ver}\n', flush=True)
|
||||
main_ver = wsa_long_ver.split(".")[0]
|
||||
tmp_wsa_build_ver = re.search(u'\d{4}.\d{5}.\d{1,}.\d{1,}', filename).group()
|
||||
if(wsa_build_ver == 0):
|
||||
wsa_build_ver = tmp_wsa_build_ver
|
||||
else:
|
||||
if version.parse(wsa_build_ver) < version.parse(tmp_wsa_build_ver):
|
||||
wsa_build_ver = tmp_wsa_build_ver
|
||||
else:
|
||||
continue
|
||||
version_splited = wsa_build_ver.split(".")
|
||||
major_ver = version_splited[0]
|
||||
minor_ver = version_splited[1]
|
||||
build_ver = version_splited[2]
|
||||
revision_ver = version_splited[3]
|
||||
with open(os.environ['WSA_WORK_ENV'], 'r') as environ_file:
|
||||
env = Prop(environ_file.read())
|
||||
env.WSA_VER = wsa_long_ver
|
||||
env.WSA_MAIN_VER = main_ver
|
||||
env.WSA_VER = wsa_build_ver
|
||||
env.WSA_MAJOR_VER = major_ver
|
||||
with open(os.environ['WSA_WORK_ENV'], 'w') as environ_file:
|
||||
environ_file.write(str(env))
|
||||
out_file_name = f"wsa-{release_type}.zip"
|
||||
out_file = download_dir / out_file_name
|
||||
else:
|
||||
continue
|
||||
th = Thread(target=send_req, args=(values[0][0], values[0][1], out_file, out_file_name))
|
||||
th = Thread(target=send_req, args=(values[0][0], values[0][1], out_file_name))
|
||||
threads.append(th)
|
||||
th.daemon = True
|
||||
th.start()
|
||||
for th in threads:
|
||||
th.join()
|
||||
|
||||
print(f'WSA Build Version={wsa_build_ver}\n', flush=True)
|
||||
for key, value in download_files.items():
|
||||
print(f"download link: {value}\npath: {download_dir / key}\n", flush=True)
|
||||
tmpdownlist.writelines(value + '\n')
|
||||
tmpdownlist.writelines(f' dir={download_dir}\n')
|
||||
tmpdownlist.writelines(f' out={key}\n')
|
||||
tmpdownlist.close()
|
||||
|
@ -1 +1,2 @@
|
||||
requests
|
||||
packaging
|
||||
|
Loading…
Reference in New Issue
Block a user