diff --git a/.github/workflows/build-app-wxpython.yml b/.github/workflows/build-app-wxpython.yml index 222ef5b..a2c784c 100644 --- a/.github/workflows/build-app-wxpython.yml +++ b/.github/workflows/build-app-wxpython.yml @@ -29,7 +29,7 @@ jobs: rm -rf *pay*.dmg /Library/Frameworks/Python.framework/Versions/3.11/bin/python3 -m pip install -r requirements.txt - aria2c -x 16 "https://github.com/hackdoc/PatcherSupportPkg/releases/download/1.9.9pre1/Universal-Binaries.dmg" + aria2c -x 16 "https://github.com/hackdoc/PatcherSupportPkg/releases/download/1.9.9pre2/Universal-Binaries.dmg" - name: Force Universal2 charset for Python run: | diff --git a/.github/workflows/build-self.yml b/.github/workflows/build-self.yml deleted file mode 100644 index ae063d9..0000000 --- a/.github/workflows/build-self.yml +++ /dev/null @@ -1,56 +0,0 @@ -name: CI - Build self - -on: - push: - paths-ignore: - - 'docs/**' - workflow_dispatch: - release: - types: [published] - -jobs: - build: - name: Build self - runs-on: self-hosted - if: github.repository_owner == 'hackdoc' - permissions: - contents: write - env: - # GitHub Information - branch: ${{ github.ref }} - commiturl: ${{ github.event.head_commit.url }}${{ github.event.release.html_url }} - commitdate: ${{ github.event.head_commit.timestamp }}${{ github.event.release.published_at }} - - steps: - - uses: actions/checkout@v4 - - name: Install Dependencies - run: | - rm -rf Univ* - rm -rf *pay*.dmg - /Library/Frameworks/Python.framework/Versions/3.11/bin/python3 -m pip install -r requirements.txt - /usr/local/aria2/bin/aria2c -x 16 "https://gitapi.simplehac.top/https://github.com/hackdoc/PatcherSupportPkg/releases/download/1.9.9pre1/Universal-Binaries.dmg" - - - name: Force Universal2 charset for Python - run: | - /Library/Frameworks/Python.framework/Versions/3.11/bin/python3 -m pip uninstall -y charset_normalizer - /Library/Frameworks/Python.framework/Versions/3.11/bin/python3 -m pip download --platform macosx_10_9_universal2 --only-binary=:all: charset-normalizer - /Library/Frameworks/Python.framework/Versions/3.11/bin/python3 -m pip install charset_normalizer-*-macosx_10_9_universal2.whl - - - name: Prepare Assets (--prepare-assets) - run: > - /Library/Frameworks/Python.framework/Versions/3.11/bin/python3 Build-Project.command - --run-as-individual-steps - --prepare-assets - - - name: Prepare Application (--prepare-application) - run: > - /Library/Frameworks/Python.framework/Versions/3.11/bin/python3 Build-Project.command - --git-branch "${{ env.branch }}" --git-commit-url "${{ env.commiturl }}" --git-commit-date "${{ env.commitdate }}" - --reset-pyinstaller-cache - --run-as-individual-steps - --prepare-application - - - name: Prepare Package (--prepare-package) - run: > - /Library/Frameworks/Python.framework/Versions/3.11/bin/python3 Build-Project.command - --prepare-package \ No newline at end of file diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 3e590b1..1aafa45 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -25,5 +25,5 @@ jobs: /Library/Frameworks/Python.framework/Versions/3.11/bin/python3 -m pip install -r requirements.txt /Library/Frameworks/Python.framework/Versions/3.11/bin/python3 -m pip install packaging rm -rf Univ* - aria2c -x 16 "https://github.com/hackdoc/PatcherSupportPkg/releases/download/1.9.9pre1/Universal-Binaries.dmg" + aria2c -x 16 "https://github.com/hackdoc/PatcherSupportPkg/releases/download/1.9.9pre2/Universal-Binaries.dmg" /Library/Frameworks/Python.framework/Versions/3.11/bin/python3 OCLP-R-GUI.command --validate diff --git a/oclp_r/support/kdk_handler.py b/oclp_r/support/kdk_handler.py index 5921ada..616aeb7 100644 --- a/oclp_r/support/kdk_handler.py +++ b/oclp_r/support/kdk_handler.py @@ -24,7 +24,7 @@ KDK_INSTALL_PATH: str = "/Library/Developer/KDKs" KDK_INFO_PLIST: str = "KDKInfo.plist" -KDK_API_LINK_ORG: str = "https://dortania.github.io/KdkSupportPkg/manifest.json" +KDK_API_LINK_ORG: str = "https://pyquick.github.io/KdkSupportPkg/manifest.json" KDK_API_LINK_PROXY:str = "https://oclpapi.simplehac.cn/KdkSupportPkg/manifest.json" KDK_ASSET_LIST: list = None diff --git a/oclp_r/support/validation.py b/oclp_r/support/validation.py index b51435f..bff29e8 100644 --- a/oclp_r/support/validation.py +++ b/oclp_r/support/validation.py @@ -233,7 +233,7 @@ def _validate_sys_patch(self) -> None: atexit.register(self._unmount_dmg) - for supported_os in [os_data.os_data.big_sur, os_data.os_data.monterey, os_data.os_data.ventura, os_data.os_data.sonoma, os_data.os_data.sequoia]: + for supported_os in [os_data.os_data.big_sur, os_data.os_data.monterey, os_data.os_data.ventura, os_data.os_data.sonoma, os_data.os_data.sequoia, os_data.os_data.tahoe]: for i in range(0, 10): self._validate_root_patch_files(supported_os, i) diff --git a/oclp_r/sys_patch/patchsets/detect.py b/oclp_r/sys_patch/patchsets/detect.py index 195deb5..57480cf 100644 --- a/oclp_r/sys_patch/patchsets/detect.py +++ b/oclp_r/sys_patch/patchsets/detect.py @@ -48,7 +48,7 @@ t1_security, cpu_missing_avx, voodoo_audio, - whatevergreen, + ) from ... import constants @@ -130,7 +130,6 @@ def __init__(self, constants: constants.Constants, legacy_wireless.LegacyWireless, modern_wireless.ModernWireless, - whatevergreen.WEG, legacy_audio.LegacyAudio, modern_audio.ModernAudio, voodoo_audio.VoodooAudio, diff --git a/oclp_r/sys_patch/patchsets/hardware/misc/modern_audio.py b/oclp_r/sys_patch/patchsets/hardware/misc/modern_audio.py index e4cd129..be9b771 100644 --- a/oclp_r/sys_patch/patchsets/hardware/misc/modern_audio.py +++ b/oclp_r/sys_patch/patchsets/hardware/misc/modern_audio.py @@ -31,9 +31,12 @@ def present(self) -> bool: AppleHDA was outright removed in macOS 26, so this patch set is always present if OS requires it """ - return self._constants.audio_type=="AppleHDA" and utilities.check_kext_loaded("as.vit9696.AppleALC") !="" - - + return self._constants.audio_type=="AppleHDA" and utilities.check_kext_loaded("as.vit9696.AppleALC") !="" and utilities.check_kext_loaded("org.voodoo.driver.VoodooHDA") =="" + def requires_kernel_debug_kit(self) -> bool: + """ + Apple no longer provides standalone kexts in the base OS + """ + return True def native_os(self) -> bool: """ - Everything before macOS Tahoe 26 is considered native @@ -61,20 +64,6 @@ def _modern_audio_patches(self) -> dict: """ return { "Modern Audio": { - PatchType.REMOVE_SYSTEM_VOLUME: { - "/System/Library/Extensions":[ - "VoodooHDA.kext", - ], - "/Library/Extensions":[ - "VoodooHDA.kext", - ], - "/Library/PreferencePanes":[ - "VoodooHDA.prefPane", - ], - "/System/Library/PreferencePanes":[ - "VoodooHDA.prefPane", - ], - }, PatchType.OVERWRITE_SYSTEM_VOLUME: { "/System/Library/Extensions": { "AppleHDA.kext": "26.0 Beta 1", diff --git a/oclp_r/sys_patch/patchsets/hardware/misc/voodoo_audio.py b/oclp_r/sys_patch/patchsets/hardware/misc/voodoo_audio.py index 5d5aea3..b5a7cd4 100644 --- a/oclp_r/sys_patch/patchsets/hardware/misc/voodoo_audio.py +++ b/oclp_r/sys_patch/patchsets/hardware/misc/voodoo_audio.py @@ -20,7 +20,7 @@ def name(self) -> str: def present(self) -> bool: - return self._constants.audio_type=="VoodooHDA" and utilities.check_kext_loaded("as.vit9696.AppleALC") =="" + return self._constants.audio_type=="VoodooHDA" and utilities.check_kext_loaded("as.vit9696.AppleALC") =="" and utilities.check_kext_loaded("org.voodoo.driver.VoodooHDA")=="" def native_os(self) -> bool: @@ -43,9 +43,6 @@ def _voodoo_audio_patches(self) -> dict: if self._xnu_major >= os_data.tahoe and self._os_build != "25A5279m": return { "Voodoo Audio": { - PatchType.REMOVE_SYSTEM_VOLUME:[ - "AppleHDA.kext", - ], PatchType.OVERWRITE_SYSTEM_VOLUME: { "/Library/Extensions": { "VoodooHDA.kext":"11.3", @@ -59,9 +56,6 @@ def _voodoo_audio_patches(self) -> dict: else: return { "Voodoo Audio": { - PatchType.REMOVE_SYSTEM_VOLUME:[ - "AppleHDA.kext", - ], PatchType.OVERWRITE_SYSTEM_VOLUME: { "/Library/Extensions": { "VoodooHDA.kext":"11.3", diff --git a/oclp_r/sys_patch/patchsets/hardware/misc/whatevergreen.py b/oclp_r/sys_patch/patchsets/hardware/misc/whatevergreen.py deleted file mode 100644 index 011a74d..0000000 --- a/oclp_r/sys_patch/patchsets/hardware/misc/whatevergreen.py +++ /dev/null @@ -1,75 +0,0 @@ -""" -whatevergreen.py: GPU(RX580+) patch set for macOS 26 -""" - -from ..base import BaseHardware, HardwareVariant - -from ...base import PatchType - -from .....constants import Constants - -from .....datasets.os_data import os_data - - -from .....support import utilities - -class WEG(BaseHardware): - - def __init__(self, xnu_major, xnu_minor, os_build, global_constants: Constants) -> None: - super().__init__(xnu_major, xnu_minor, os_build, global_constants) - - - def name(self) -> str: - """ - Display name for end users - """ - return f"{self.hardware_variant()}: WEG Patch" - - - def present(self) -> bool: - - return True - - - def check_if_patch(self) -> bool: - - return utilities.check_kext_loaded("as.vit9696.WhateverGreen") != "" - - - - def native_os(self) -> bool: - if self._xnu_major < os_data.tahoe.value or self.check_if_patch(): - return True - - return False - - - def hardware_variant(self) -> HardwareVariant: - """ - Type of hardware variant - """ - return HardwareVariant.MISCELLANEOUS - - - def _weg_patches(self) -> dict: - """ - Patches for Whatevergreen - """ - return { - "WEG Patch": { - PatchType.OVERWRITE_SYSTEM_VOLUME: { - "/System/Library/Extensions": { - "WhateverGreen.kext": "WEG", - "Lilu.kext": "WEG", - }, - }, - }, - } - - - def patches(self) -> dict: - if self.native_os() is True : - return {} - if self.check_if_patch() is True: - return {} - return self._weg_patches() \ No newline at end of file diff --git a/oclp_r/wx_gui/gui_kdk_dl.py b/oclp_r/wx_gui/gui_kdk_dl.py index 18f2990..9dd73d6 100644 --- a/oclp_r/wx_gui/gui_kdk_dl.py +++ b/oclp_r/wx_gui/gui_kdk_dl.py @@ -17,7 +17,7 @@ utilities, network_handler, ) -KDK_API_LINK_ORIGIN:str = "https://dortania.github.io/KdkSupportPkg/manifest.json" +KDK_API_LINK_ORIGIN:str = "https://pyquick.github.io/KdkSupportPkg/manifest.json" KDK_API_LINK_PROXY:str = "https://oclpapi.simplehac.cn/KdkSupportPkg/manifest.json" class KDKDownloadFrame(wx.Frame): def __init__(self, parent: wx.Frame, title: str, global_constants: constants.Constants,screen_location: tuple = None): @@ -69,7 +69,6 @@ def _fetch_installers(): kdk_data_build=[] maxnx=[] for i in range(len(self.kdk_data)): - self.kdk_data[i].pop("kernel_versions") self.kdk_data[i]['seen']=((self.kdk_data[i]['seen']).split("T"))[0] if self.constants.github_proxy_link!="SimpleHac" and self.constants.github_proxy_link!="Default": self.kdk_data[i]['url']=self.kdk_data[i]['url'].replace("https://gitapi.simplehac.top/","") diff --git a/oclp_r/wx_gui/gui_macos_installer_download.py b/oclp_r/wx_gui/gui_macos_installer_download.py index 5ada00d..0fddeb0 100644 --- a/oclp_r/wx_gui/gui_macos_installer_download.py +++ b/oclp_r/wx_gui/gui_macos_installer_download.py @@ -196,6 +196,9 @@ def _fetch_simplehac_dmgs(): aes=requests.get(aesurl,verify=False) if res.status_code == 200: dmgdata=res.json() + dmgdata['dmgFiles'] = sorted(dmgdata['dmgFiles'], key=lambda x: x['build']) + + print(dmgdata) logging.info("JSON data:") dmgwell=json.dumps(dmgdata, indent=4, ensure_ascii=False) if aes.status_code == 200: diff --git a/oclp_r/wx_gui/gui_settings.py b/oclp_r/wx_gui/gui_settings.py index eba67b0..f23edc0 100644 --- a/oclp_r/wx_gui/gui_settings.py +++ b/oclp_r/wx_gui/gui_settings.py @@ -33,8 +33,9 @@ os_data, cpu_data ) +from ..support import utilities - +import platform class SettingsFrame(wx.Frame): """ Modal-based Settings Frame @@ -44,7 +45,7 @@ def __init__(self, parent: wx.Frame, title: str, global_constants: constants.Con self.constants: constants.Constants = global_constants self.title: str = title self.parent: wx.Frame = parent - + self.xnu_major = int(platform.release().split(".")[0]) self.hyperlink_colour = (25, 179, 231) self.settings = self._settings() @@ -201,6 +202,10 @@ def _generate_elements(self, frame: wx.Frame = None) -> None: choice.Bind(wx.EVT_CHOICE, lambda event, variable=setting: self.settings[tab][variable]["override_function"](event)) else: choice.Bind(wx.EVT_CHOICE, lambda event, variable=setting: self.on_choice(event, variable)) + if "condition" in setting_info: + choice.Enable(setting_info["condition"]) + if setting_info["condition"] is False: + choice.Disable() height += 10 elif setting_info["type"] == "button": button = wx.Button(panel, label=setting, pos=(width + 25, 10 + height), size = (200,-1)) @@ -230,8 +235,14 @@ def _generate_elements(self, frame: wx.Frame = None) -> None: if height > lowest_height_reached: lowest_height_reached = height - - + def audio_check(self): + if utilities.check_kext_loaded("com.apple.driver.AppleHDA")!="" or utilities.check_kext_loaded("as.vit9696.AppleALC") !="": + self.constants.audio_type="AppleHDA" + return False + if utilities.check_kext_loaded("com.apple.driver.AppleHDA") and self.xnu_major>=os_data.os_data.tahoe: + self.constants.audio_type="AppleHDA" + return False + return True def _settings(self) -> dict: """ Generates a dictionary of settings to be used in the GUI @@ -729,11 +740,12 @@ def _settings(self) -> dict: " on Monterey and newer.", " Not recommended.", ], + "condition":self.audio_check() }, "wrap_around 1": { "type": "wrap_around", }, - "Allow Tahoe Old USB Exts Patch": { + "Allow Tahoe Modern USB Patch": { "type": "checkbox", "value": self.constants.allow_usb_patch, "variable": "allow_usb_patch", @@ -859,7 +871,7 @@ def _settings(self) -> dict: "variable": "github_proxy_link", "constants_variable": "github_proxy_link", "description": [ - "Default : https://dortania.github.io/", + "Default : https://(pyquick/dortania).github.io/", "SimpleHac : https://gitapi.simplehac.top/", "gh-proxy : https://gh-proxy.com/", "ghfast : https://ghfast.top/",