From e3c064d2c177a826c9fd9ff05e31fa39b9a16807 Mon Sep 17 00:00:00 2001 From: Jazzzny Date: Tue, 1 Jul 2025 13:13:30 -0400 Subject: [PATCH] Add Modern Audio patch set foundation for macOS 26. Note that this requires PSPKG update, which needs to be done in PSPKG. --- .../sys_patch/patchsets/detect.py | 5 +- .../patchsets/hardware/misc/modern_audio.py | 70 +++++++++++++++++++ 2 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 opencore_legacy_patcher/sys_patch/patchsets/hardware/misc/modern_audio.py diff --git a/opencore_legacy_patcher/sys_patch/patchsets/detect.py b/opencore_legacy_patcher/sys_patch/patchsets/detect.py index a8f33bcbc..8f04b23fc 100644 --- a/opencore_legacy_patcher/sys_patch/patchsets/detect.py +++ b/opencore_legacy_patcher/sys_patch/patchsets/detect.py @@ -41,6 +41,7 @@ from .hardware.misc import ( gmux, keyboard_backlight, legacy_audio, + modern_audio, pcie_webcam, t1_security, usb11, @@ -127,10 +128,12 @@ class HardwarePatchsetDetection: legacy_wireless.LegacyWireless, modern_wireless.ModernWireless, + legacy_audio.LegacyAudio, + modern_audio.ModernAudio, + display_backlight.DisplayBacklight, gmux.GraphicsMultiplexer, keyboard_backlight.KeyboardBacklight, - legacy_audio.LegacyAudio, pcie_webcam.PCIeFaceTimeCamera, t1_security.T1SecurityChip, usb11.USB11Controller, diff --git a/opencore_legacy_patcher/sys_patch/patchsets/hardware/misc/modern_audio.py b/opencore_legacy_patcher/sys_patch/patchsets/hardware/misc/modern_audio.py new file mode 100644 index 000000000..338c36527 --- /dev/null +++ b/opencore_legacy_patcher/sys_patch/patchsets/hardware/misc/modern_audio.py @@ -0,0 +1,70 @@ +""" +modern_audio.py: Modern Audio 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 + + +class ModernAudio(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()}: Modern Audio" + + + def present(self) -> bool: + """ + AppleHDA was outright removed in macOS 26, so this patch set is always present if OS requires it + """ + return True + + + def native_os(self) -> bool: + """ + - Everything before macOS Tahoe 26 is considered native + """ + return self._xnu_major < os_data.tahoe.value + + + def hardware_variant(self) -> HardwareVariant: + """ + Type of hardware variant + """ + return HardwareVariant.MISCELLANEOUS + + + def _modern_audio_patches(self) -> dict: + """ + Patches for Modern Audio + """ + return { + "Modern Audio": { + PatchType.OVERWRITE_SYSTEM_VOLUME: { + "/System/Library/Extensions": { + "AppleHDA.kext": "26.0 Beta 1", + }, + }, + }, + } + + + def patches(self) -> dict: + """ + Patches for modern audio + """ + if self.native_os() is True: + return {} + + return self._modern_audio_patches() \ No newline at end of file