Files
OpenCore-Legacy-Patcher/resources/sys_patch_download.py
2022-04-24 15:01:43 -06:00

52 lines
2.6 KiB
Python

# Download PatcherSupportPkg for usage with Root Patching
# Copyright (C) 2020-2022, Dhinak G, Mykola Grymalyuk
from data import os_data
from resources import utilities
from pathlib import Path
import shutil
class grab_patcher_support_pkg:
def __init__(self, constants):
self.constants = constants
def generate_pkg_link(self):
if self.constants.detected_os == os_data.os_data.monterey:
os_ver = "12-Monterey"
elif self.constants.detected_os == os_data.os_data.big_sur:
os_ver = "11-Big-Sur"
elif self.constants.detected_os == os_data.os_data.catalina:
os_ver = "10.15-Catalina"
elif self.constants.detected_os == os_data.os_data.mojave:
os_ver = "10.14-Mojave"
else:
raise Exception(f"Unsupported OS: {self.constants.detected_os}")
framework_link = f"{self.constants.url_patcher_support_pkg}{self.constants.patcher_support_pkg_version}/{os_ver}.zip"
extensions_link = f"{self.constants.url_patcher_support_pkg}{self.constants.patcher_support_pkg_version}/Universal-Extensions.zip"
return os_ver, extensions_link, framework_link
def download_files(self):
os_ver, extensions_link, framework_link = self.generate_pkg_link()
if Path(self.constants.payload_apple_root_path).exists():
print("- Removing old Apple Binaries folder")
# Delete folder
shutil.rmtree(self.constants.payload_apple_root_path)
if Path(self.constants.payload_apple_root_path_zip).exists():
print("- Removing old Apple Binaries zip")
Path(self.constants.payload_apple_root_path_zip).unlink()
download_result = None
local_framework_zip = Path(self.constants.payload_path) / f"{os_ver}.zip"
local_extensions_zip = Path(self.constants.payload_path) / f"Universal-Extensions.zip"
if Path(local_framework_zip).exists() and Path(local_extensions_zip).exists():
print(f"- Found local {os_ver} zip, skipping download")
print(f"- Duplicating into Apple.zip")
shutil.copy(local_framework_zip, self.constants.payload_apple_root_path_zip)
download_result = True
else:
print(f"- No local version found, donwloading...")
if utilities.download_file(extensions_link, self.constants.payload_universal_extensions_zip_path):
download_result = utilities.download_file(framework_link, self.constants.payload_apple_root_path_zip)
return download_result, os_ver, extensions_link, framework_link