diff --git a/CHANGELOG.md b/CHANGELOG.md index 04fd4c387..73ba86033 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/data/sys_patch_dict.py b/data/sys_patch_dict.py index 0100f4a1f..54f13a049 100644 --- a/data/sys_patch_dict.py +++ b/data/sys_patch_dict.py @@ -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" + ], + } }, }, } diff --git a/resources/constants.py b/resources/constants.py index a29cf92a9..32d44d400 100644 --- a/resources/constants.py +++ b/resources/constants.py @@ -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" diff --git a/resources/sys_patch/sys_patch.py b/resources/sys_patch/sys_patch.py index b957dd871..76557690d 100644 --- a/resources/sys_patch/sys_patch.py +++ b/resources/sys_patch/sys_patch.py @@ -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"]: