Add Modern Audio patch set foundation for macOS 26. Note that this requires PSPKG update, which needs to be done in PSPKG.

This commit is contained in:
Jazzzny
2025-07-01 13:13:30 -04:00
parent 0bfe09c3ef
commit e3c064d2c1
2 changed files with 74 additions and 1 deletions

View File

@@ -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,

View File

@@ -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()