mirror of
https://github.com/dortania/OpenCore-Legacy-Patcher.git
synced 2026-04-17 21:24:40 +10:00
build: Add mediaanalysisd configuration
This commit is contained in:
@@ -106,6 +106,12 @@ class BuildMiscellaneous:
|
||||
logging.info("- Disabling memory error reporting")
|
||||
re_block_args.append("pcie")
|
||||
|
||||
# Resolve mediaanalysisd crashing on 3802 GPUs
|
||||
# Applicable for systems that are the primary iCloud Photos library host, with large amounts of unprocessed faces
|
||||
if self.constants.disable_mediaanalysisd is True:
|
||||
logging.info("- Disabling mediaanalysisd")
|
||||
re_block_args.append("media")
|
||||
|
||||
return re_block_args
|
||||
|
||||
|
||||
@@ -182,14 +188,14 @@ class BuildMiscellaneous:
|
||||
support.BuildSupport(self.model, self.constants, self.config).get_kext_by_bundle_path("AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCButtons.kext")["Enabled"] = True
|
||||
support.BuildSupport(self.model, self.constants, self.config).get_kext_by_bundle_path("AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext")["Enabled"] = True
|
||||
support.BuildSupport(self.model, self.constants, self.config).get_kext_by_bundle_path("AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyEventDriver.kext")["Enabled"] = True
|
||||
|
||||
|
||||
if self.computer.internal_keyboard_type == "Legacy":
|
||||
support.BuildSupport(self.model, self.constants, self.config).enable_kext("LegacyKeyboardInjector.kext", self.constants.legacy_keyboard, self.constants.legacy_keyboard_path)
|
||||
if self.computer.trackpad_type == "Legacy":
|
||||
support.BuildSupport(self.model, self.constants, self.config).enable_kext("AppleUSBTrackpad.kext", self.constants.apple_trackpad, self.constants.apple_trackpad_path)
|
||||
elif self.computer.trackpad_type == "Modern":
|
||||
support.BuildSupport(self.model, self.constants, self.config).enable_kext("AppleUSBMultitouch.kext", self.constants.multitouch_version, self.constants.multitouch_path)
|
||||
|
||||
|
||||
#Predefined fallback
|
||||
else:
|
||||
# Multi Touch Top Case support for macOS Ventura+
|
||||
@@ -202,7 +208,7 @@ class BuildMiscellaneous:
|
||||
support.BuildSupport(self.model, self.constants, self.config).get_kext_by_bundle_path("AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext")["Enabled"] = True
|
||||
support.BuildSupport(self.model, self.constants, self.config).get_kext_by_bundle_path("AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyEventDriver.kext")["Enabled"] = True
|
||||
support.BuildSupport(self.model, self.constants, self.config).enable_kext("AppleUSBMultitouch.kext", self.constants.multitouch_version, self.constants.multitouch_path)
|
||||
|
||||
|
||||
# Two-finger Top Case support for macOS High Sierra+
|
||||
if self.model in ["MacBook4,1", "MacBook5,2"]:
|
||||
support.BuildSupport(self.model, self.constants, self.config).enable_kext("AppleUSBTrackpad.kext", self.constants.apple_trackpad, self.constants.apple_trackpad_path) # Also requires AppleUSBTopCase.kext
|
||||
|
||||
@@ -215,6 +215,7 @@ class Constants:
|
||||
self.disable_connectdrivers: bool = False # Disable ConnectDrivers (hibernation)
|
||||
self.set_content_caching: bool = False # Set Content Caching
|
||||
self.set_vmm_cpuid: bool = False # Set VMM bit inside CPUID
|
||||
self.disable_mediaanalysisd: bool = False # Set mediaanalysisd to spawn
|
||||
self.set_alc_usage: bool = True # Set AppleALC usage
|
||||
self.allow_3rd_party_drives: bool = True # Allow ThridPartyDrives quirk
|
||||
self.allow_nvme_fixing: bool = True # Allow NVMe Kernel Space Patches
|
||||
|
||||
@@ -394,6 +394,17 @@ class SettingsFrame(wx.Frame):
|
||||
"for unsupported models.",
|
||||
],
|
||||
},
|
||||
"Disable mediaanalysisd service": {
|
||||
"type": "checkbox",
|
||||
"value": self.constants.disable_mediaanalysisd,
|
||||
"variable": "disable_mediaanalysisd",
|
||||
"description": [
|
||||
"For systems that are the primary iCloud",
|
||||
"Photo Library host with a 3802-based GPU,",
|
||||
"this may aid in prolonged idle stability.",
|
||||
],
|
||||
"condition": gui_support.CheckProperties(self.constants).host_has_3802_gpu()
|
||||
},
|
||||
"wrap_around 1": {
|
||||
"type": "wrap_around",
|
||||
},
|
||||
|
||||
@@ -13,7 +13,7 @@ import packaging.version
|
||||
from pathlib import Path
|
||||
|
||||
from resources.wx_gui import gui_about
|
||||
from resources import constants
|
||||
from resources import constants, device_probe
|
||||
from data import model_array, os_data, smbios_data
|
||||
|
||||
|
||||
@@ -179,6 +179,26 @@ class CheckProperties:
|
||||
|
||||
return packaging.version.parse(oclp_plist["PatcherSupportPkg"])
|
||||
|
||||
def host_has_3802_gpu(self) -> bool:
|
||||
"""
|
||||
Check if either host, or override model, has a 3802 GPU
|
||||
"""
|
||||
gpu_dict = [] if self.constants.custom_model else self.constants.computer.gpus
|
||||
model = self.constants.custom_model if self.constants.custom_model else self.constants.computer.real_model
|
||||
if gpu_dict == []:
|
||||
gpu_dict = smbios_data.smbios_dictionary[model]["Stock GPUs"] if model in smbios_data.smbios_dictionary else []
|
||||
|
||||
for gpu in gpu_dict:
|
||||
if not self.constants.custom_model:
|
||||
gpu = gpu.arch
|
||||
if gpu in [
|
||||
device_probe.Intel.Archs.Ivy_Bridge,
|
||||
device_probe.Intel.Archs.Haswell,
|
||||
device_probe.NVIDIA.Archs.Kepler,
|
||||
]:
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
class PayloadMount:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user