mirror of
https://github.com/dortania/OpenCore-Legacy-Patcher.git
synced 2026-04-15 13:18:56 +10:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f1210def89 | ||
|
|
03842d4e77 | ||
|
|
34676702f4 | ||
|
|
352d917a7d | ||
|
|
f1b47f6a78 | ||
|
|
15d58966f6 | ||
|
|
49cb9ccb66 |
14
CHANGELOG.md
14
CHANGELOG.md
@@ -1,5 +1,19 @@
|
||||
# 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
|
||||
- Resolve 3802-GPU support for macOS 14.2 Beta 2 and newer.
|
||||
- Applicable GPUs:
|
||||
- Intel Ivy Bridge and Haswell iGPUs
|
||||
- Nvidia Kepler dGPUs
|
||||
- Increment Binaries:
|
||||
- PatcherSupportPkg 1.4.6 - release
|
||||
|
||||
## 1.2.1
|
||||
- Resolve `TeraScale 2 Acceleration` checkbox in Settings not being saved
|
||||
- Thanks @rtd1250
|
||||
|
||||
@@ -71,6 +71,7 @@ class SystemPatchDictionary():
|
||||
self.macOS_12_5: float = 21.6
|
||||
self.macOS_13_3: float = 22.4
|
||||
self.macOS_14_1: float = 23.1
|
||||
self.macOS_14_2: float = 23.2
|
||||
|
||||
self._generate_sys_patch_dict()
|
||||
|
||||
@@ -388,6 +389,11 @@ class SystemPatchDictionary():
|
||||
**({ "MTLCompiler.framework": "13.2.1" } if self.os_major == os_data.os_data.ventura else {}),
|
||||
**({ "GPUCompiler.framework": "13.2.1" } if self.os_major == os_data.os_data.ventura else {}),
|
||||
"RenderBox.framework": "13.2.1-3802" if self.os_major == os_data.os_data.ventura else "14.0-3802",
|
||||
|
||||
# More issues for 3802, now with 14.2 Beta 2+...
|
||||
# If there is a god, they clearly despise us and legacy Macs.
|
||||
**({ "MTLCompiler.framework": "14.2 Beta 1" } if self.os_float >= self.macOS_14_2 else {}),
|
||||
**({ "GPUCompiler.framework": "14.2 Beta 1" } if self.os_float >= self.macOS_14_2 else {}),
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@@ -70,7 +70,7 @@ This issue is fully resolved for 13.2.1 and lower starting from 0.2.5.
|
||||
|
||||
::: details Workaround for 0.2.4, Ventura 13.3+
|
||||
|
||||
Due to the usage of amfi_get_out_of_my_way=1, macOS will fail to prompt users for special permissions upon application start as well as omit the entires in System Preferences. To work around this, we recommend users install tccplus to manage permissions.
|
||||
Due to the usage of amfi_get_out_of_my_way=1, macOS will fail to prompt users for special permissions upon application start as well as omit the entries in System Preferences. To work around this, we recommend users install tccplus to manage permissions.
|
||||
|
||||
[Download TCCPlus](https://github.com/jslegendre/tccplus)
|
||||
|
||||
|
||||
@@ -1,18 +1,7 @@
|
||||
# Supporting the patcher
|
||||
|
||||
OpenCore Legacy Patcher is a hobby project for us developers, and while we love helping out the community, it's very difficult for us to troubleshoot issues remotely. The best way for us to get to work on the patcher, fix issues and add enhancements is having the hardware in-hand. As a hobby project, neither of the main developers can afford to buy every legacy Mac to test on.
|
||||
We have opened OpenCollective in order to manage donations as well as be transparent about where the donated money is going. If you want to support the patcher with money donation, you can do so below.
|
||||
|
||||
The best way to support us in all honesty is to donate any old hardware you no longer need, as this allows us to have machines to test locally and push fixes much faster. While we appreciate cash donations, this makes it much more difficult for us to handle as an organization.
|
||||
[OpenCollective](https://opencollective.com/opencore-legacy-patcher)
|
||||
|
||||
Main sections of help we'd appreciate:
|
||||
|
||||
* Donating any Mac you own
|
||||
* Does require SSE4,1 CPU to test on Sierra and newer however
|
||||
|
||||
Additionally, hardware info dumps are greatly beneficial for us to determine what patches a machine might need:
|
||||
|
||||
* [IORegistryExplorer](https://github.com/khronokernel/IORegistryClone/blob/master/ioreg-210.zip?raw=true)
|
||||
* `File -> SaveAs` and open an issue on Github
|
||||
* Note: We want IOReg dumps of hardware not running on OpenCore, instead running a clean, officially supported OS by the machine
|
||||
|
||||
If you have any legacy hardware you're willing to donate or want to buy us hardware, please reach out on our Discord server.
|
||||
If you wish, you can also donate legacy hardware you don't need anymore as long as it makes sense logistically. In this case, reach out on the Discord server.
|
||||
|
||||
@@ -26,7 +26,7 @@ For this example, we'll assume you'll need an installer. Selecting this option w
|
||||
| :--- | :--- | :--- |
|
||||
|  |  | 
|
||||
|
||||
Since the patcher officially supports Big Sur and newer for patching, only those entires will be shown. For ourselves, we'll select macOS 12 as that's the latest public release at the time of writing. This will download and install the macOS installer to your applications folder.
|
||||
Since the patcher officially supports Big Sur and newer for patching, only those entries will be shown. For ourselves, we'll select macOS 12 as that's the latest public release at the time of writing. This will download and install the macOS installer to your applications folder.
|
||||
|
||||
* Note that some machines (namely 2012 and older) may not be currently supported on macOS Ventura. If you see this prompt, you'll need to use an older version of macOS.
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -169,6 +169,27 @@ class BuildSupport:
|
||||
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:
|
||||
"""
|
||||
|
||||
@@ -13,8 +13,8 @@ from data import os_data
|
||||
class Constants:
|
||||
def __init__(self) -> None:
|
||||
# Patcher Versioning
|
||||
self.patcher_version: str = "1.2.1" # OpenCore-Legacy-Patcher
|
||||
self.patcher_support_pkg_version: str = "1.4.5" # PatcherSupportPkg
|
||||
self.patcher_version: str = "1.3.0" # OpenCore-Legacy-Patcher
|
||||
self.patcher_support_pkg_version: str = "1.4.6" # PatcherSupportPkg
|
||||
self.copyright_date: str = "Copyright © 2020-2023 Dortania"
|
||||
self.patcher_name: str = "OpenCore Legacy Patcher"
|
||||
|
||||
@@ -69,13 +69,13 @@ class Constants:
|
||||
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
|
||||
|
||||
@@ -235,23 +235,30 @@ class SysPatchHelpers:
|
||||
- lib (entire directory)
|
||||
|
||||
Note: With macOS Sonoma, 32023 compiler is used instead and so this patch is not needed
|
||||
until macOS 14.2 Beta 2 with version '32023.26'.
|
||||
|
||||
Parameters:
|
||||
mount_point: The mount point of the target volume
|
||||
"""
|
||||
|
||||
if self.constants.detected_os != os_data.os_data.ventura:
|
||||
return
|
||||
if self.constants.detected_os_minor < 4:
|
||||
if os_data.os_data.sonoma < self.constants.detected_os < os_data.os_data.ventura:
|
||||
return
|
||||
|
||||
LIBRARY_DIR = f"{mount_point}/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/31001/Libraries/lib/clang"
|
||||
GPU_VERSION = "31001.669"
|
||||
if self.constants.detected_os == os_data.os_data.ventura:
|
||||
if self.constants.detected_os_minor < 4: # 13.3
|
||||
return
|
||||
BASE_VERSION = "31001"
|
||||
GPU_VERSION = f"{BASE_VERSION}.669"
|
||||
elif self.constants.detected_os == os_data.os_data.sonoma:
|
||||
if self.constants.detected_os_minor < 2: # 14.2 Beta 2
|
||||
return
|
||||
BASE_VERSION = "32023"
|
||||
GPU_VERSION = f"{BASE_VERSION}.26"
|
||||
|
||||
LIBRARY_DIR = f"{mount_point}/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/{BASE_VERSION}/Libraries/lib/clang"
|
||||
DEST_DIR = f"{LIBRARY_DIR}/{GPU_VERSION}"
|
||||
|
||||
if not Path(DEST_DIR).exists():
|
||||
return
|
||||
raise Exception(f"Failed to find GPUCompiler libraries at {DEST_DIR}")
|
||||
|
||||
for file in Path(LIBRARY_DIR).iterdir():
|
||||
if file.is_file():
|
||||
@@ -260,7 +267,7 @@ class SysPatchHelpers:
|
||||
continue
|
||||
|
||||
# Partial match as each OS can increment the version
|
||||
if not file.name.startswith("31001."):
|
||||
if not file.name.startswith(f"{BASE_VERSION}."):
|
||||
continue
|
||||
|
||||
logging.info(f"Merging GPUCompiler.framework libraries to match binary")
|
||||
|
||||
Reference in New Issue
Block a user