diff --git a/CHANGELOG.md b/CHANGELOG.md index 06b7d3d1ef..499a6a99d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ # OpenCore Legacy Patcher changelog ## 1.3.0 +- Resolve mismatched `CFBundleExecutable` and binary name for kexts. + - Resolves ProperTree binary detection (Thanks @CorpNewt). + - Applicable extensions: + - corecrypto_T1.kext + - corecaptureElCap.kext + - IO80211ElCap.kext ## 1.2.1 - Resolve `TeraScale 2 Acceleration` checkbox in Settings not being saved diff --git a/payloads/Kexts/Misc/corecrypto_T1-v1.0.0.zip b/payloads/Kexts/Misc/corecrypto_T1-v1.0.1.zip similarity index 99% rename from payloads/Kexts/Misc/corecrypto_T1-v1.0.0.zip rename to payloads/Kexts/Misc/corecrypto_T1-v1.0.1.zip index 128abda130..d38cda1f4d 100644 Binary files a/payloads/Kexts/Misc/corecrypto_T1-v1.0.0.zip and b/payloads/Kexts/Misc/corecrypto_T1-v1.0.1.zip differ diff --git a/payloads/Kexts/Wifi/IO80211ElCap-v2.0.0.zip b/payloads/Kexts/Wifi/IO80211ElCap-v2.0.1.zip similarity index 99% rename from payloads/Kexts/Wifi/IO80211ElCap-v2.0.0.zip rename to payloads/Kexts/Wifi/IO80211ElCap-v2.0.1.zip index 752226d661..6f21b171fa 100644 Binary files a/payloads/Kexts/Wifi/IO80211ElCap-v2.0.0.zip and b/payloads/Kexts/Wifi/IO80211ElCap-v2.0.1.zip differ diff --git a/payloads/Kexts/Wifi/corecaptureElCap-v1.0.1.zip b/payloads/Kexts/Wifi/corecaptureElCap-v1.0.2.zip similarity index 95% rename from payloads/Kexts/Wifi/corecaptureElCap-v1.0.1.zip rename to payloads/Kexts/Wifi/corecaptureElCap-v1.0.2.zip index fa7bcbe543..77b9b9fe14 100644 Binary files a/payloads/Kexts/Wifi/corecaptureElCap-v1.0.1.zip and b/payloads/Kexts/Wifi/corecaptureElCap-v1.0.2.zip differ diff --git a/resources/build/support.py b/resources/build/support.py index f1e96a0eb2..8b24490880 100644 --- a/resources/build/support.py +++ b/resources/build/support.py @@ -169,6 +169,27 @@ def validate_pathing(self) -> None: logging.info(f"- Found extra driver: {driver_file.name}") raise Exception(f"Found extra driver: {driver_file.name}") + self._validate_malformed_kexts(self.constants.opencore_release_folder / Path("EFI/OC/Kexts")) + + + def _validate_malformed_kexts(self, directory: str | Path) -> None: + """ + Validate Info.plist and executable pathing for kexts + """ + for kext_folder in Path(directory).glob("*.kext"): + if not Path(kext_folder / Path("Contents/Info.plist")).exists(): + continue + + kext_data = plistlib.load(Path(kext_folder / Path("Contents/Info.plist")).open("rb")) + if "CFBundleExecutable" in kext_data: + expected_executable = Path(kext_folder / Path("Contents/MacOS") / Path(kext_data["CFBundleExecutable"])) + if not expected_executable.exists(): + logging.info(f"- Missing executable for {kext_folder.name}: Contents/MacOS/{expected_executable.name}") + raise Exception(f" - Missing executable for {kext_folder.name}: Contents/MacOS/{expected_executable.name}") + + if Path(kext_folder / Path("Contents/PlugIns")).exists(): + self._validate_malformed_kexts(kext_folder / Path("Contents/PlugIns")) + def cleanup(self) -> None: """ diff --git a/resources/constants.py b/resources/constants.py index 5b3fd66305..49419324b1 100644 --- a/resources/constants.py +++ b/resources/constants.py @@ -69,13 +69,13 @@ def __init__(self) -> None: self.apple_camera_version: str = "1.0.0" # AppleCameraInterface (14.0 Beta 1) self.t1_sse_version: str = "1.1.0" # AppleSSE (13.6 - T1 support) self.t1_key_store_version: str = "1.1.0" # AppleKeyStore (13.6 - T1 support) - self.t1_corecrypto_version: str = "1.0.0" # corecrypto (13.6 - T1 support) + self.t1_corecrypto_version: str = "1.0.1" # corecrypto (13.6 - T1 support) ## Apple - Dortania Modified self.bcm570_version: str = "1.0.2" # CatalinaBCM5701Ethernet self.i210_version: str = "1.0.0" # CatalinaIntelI210Ethernet - self.corecaptureelcap_version: str = "1.0.1" # corecaptureElCap - self.io80211elcap_version: str = "2.0.0" # IO80211ElCap + self.corecaptureelcap_version: str = "1.0.2" # corecaptureElCap + self.io80211elcap_version: str = "2.0.1" # IO80211ElCap self.io80211legacy_version: str = "1.0.0" # IO80211FamilyLegacy (Ventura) self.ioskywalk_version: str = "1.0.0" # IOSkywalkFamily (Ventura) self.bigsursdxc_version: str = "1.0.0" # BigSurSDXC