sys_patch: Resolve PCIe Camera on 14.1

This commit is contained in:
Mykola Grymalyuk
2023-10-14 21:55:29 -06:00
parent af57596559
commit 760db35d15
4 changed files with 29 additions and 12 deletions

View File

@@ -8,8 +8,9 @@
- Resolve full screen menubar covering the app toolbar
- Resolve unfocused password windows
- Resolve USB 1.1 kernel panics on macOS 14.1
- Resolve PCIe FaceTime camera support on macOS 14.1
- Increment Binaries:
- PatcherSupportPkg 1.3.6 - release
- PatcherSupportPkg 1.3.7 - release
- AirportBrcmFixup 2.1.8 - release
- BlueToolFixup 2.6.8 - release
- RestrictEvents 1.1.3 - release

View File

@@ -13,7 +13,7 @@ class SystemPatchDictionary():
Patchset Schema:
Supports 6 types of higher level keys:
Supports following types of higher level keys:
- OS Support: Supported OSes by patches
- Minimum OS Support: Minimum supported OS version
- OS Major: Major XNU Kernel version
@@ -30,6 +30,9 @@ class SystemPatchDictionary():
- Remove: Files to remove
- Location:
- File (array: [ "File" ])
- Remove Non-Root: Files to remove from data partition
- Location:
- File (array: [ "File" ])
- Processes: Additional processes to run
- Process (dict: { "Process": "Requires Root" })
- Display Name: User-friendly name (string, "" if user-friendly name is not required)
@@ -1287,6 +1290,7 @@ class SystemPatchDictionary():
},
},
},
# With macOS 14.1, daemon won't load if not on root volume
"PCIe FaceTime Camera": {
"Display Name": "Miscellaneous: PCIe FaceTime Camera",
"OS Support": {
@@ -1299,14 +1303,22 @@ class SystemPatchDictionary():
"OS Minor": 99
},
},
"Install Non-Root": {
"/Library/CoreMediaIO/Plug-Ins/DAL": {
"Install": {
"/System/Library/CoreMediaIO/Plug-Ins/DAL": {
"AppleCamera.plugin": "14.0 Beta 1"
},
"/Library/LaunchDaemons": {
"/System/Library/LaunchDaemons": {
"com.apple.cmio.AppleCameraAssistant.plist": "14.0 Beta 1"
},
},
"Remove Non-Root": {
"/Library/CoreMediaIO/Plug-Ins/DAL": [
"AppleCamera.plugin"
],
"/Library/LaunchDaemons": [
"com.apple.cmio.AppleCameraAssistant.plist"
],
}
},
},
}

View File

@@ -14,7 +14,7 @@ class Constants:
def __init__(self) -> None:
# Patcher Versioning
self.patcher_version: str = "1.1.0" # OpenCore-Legacy-Patcher
self.patcher_support_pkg_version: str = "1.3.6" # PatcherSupportPkg
self.patcher_support_pkg_version: str = "1.3.7" # PatcherSupportPkg
self.copyright_date: str = "Copyright © 2020-2023 Dortania"
self.patcher_name: str = "OpenCore Legacy Patcher"

View File

@@ -665,12 +665,16 @@ class PatchSysVolume:
self._preflight_checks(required_patches, source_files_path)
for patch in required_patches:
logging.info("- Installing Patchset: " + patch)
if "Remove" in required_patches[patch]:
for remove_patch_directory in required_patches[patch]["Remove"]:
logging.info("- Remove Files at: " + remove_patch_directory)
for remove_patch_file in required_patches[patch]["Remove"][remove_patch_directory]:
destination_folder_path = str(self.mount_location) + remove_patch_directory
self._remove_file(destination_folder_path, remove_patch_file)
for method_remove in ["Remove", "Remove Non-Root"]:
if method_remove in required_patches[patch]:
for remove_patch_directory in required_patches[patch][method_remove]:
logging.info("- Remove Files at: " + remove_patch_directory)
for remove_patch_file in required_patches[patch][method_remove][remove_patch_directory]:
if method_remove == "Remove":
destination_folder_path = str(self.mount_location) + remove_patch_directory
else:
destination_folder_path = str(self.mount_location_data) + remove_patch_directory
self._remove_file(destination_folder_path, remove_patch_file)
for method_install in ["Install", "Install Non-Root"]: