mirror of
https://github.com/dortania/OpenCore-Legacy-Patcher.git
synced 2026-04-11 16:27:19 +10:00
Merge branch 'main' into sequoia-development
This commit is contained in:
@@ -12,6 +12,11 @@
|
||||
- Implement new Copy on Write detection mechanism for all file copying operations
|
||||
- Implemented using `getattrlist` and `VOL_CAP_INT_CLONE` flag
|
||||
- Helps improve performance on APFS volumes
|
||||
- Increase model range for S1X/S3X patching to include Haswell Macs and `MacPro6,1`
|
||||
- Helps avoid an issue where older machines with newer, unsupported SSDs would fail to boot
|
||||
- Only affects building EFI from another machine
|
||||
- Resolve AMD Navi MXM GPU detection for modded iMac9,x-12,x
|
||||
- Thanks @Ausdauersportler for the patch!
|
||||
- Increment Binaries:
|
||||
- PatcherSupportPkg 1.6.3 - release
|
||||
|
||||
|
||||
@@ -1,9 +1,25 @@
|
||||
# Supported Models
|
||||
|
||||
### Application requirements
|
||||
The patcher application requires **OS X Yosemite 10.10** or later to run.
|
||||
* **OS X El Capitan 10.11** or later is required to make installers for macOS Ventura and later.
|
||||
|
||||
The patcher is designed to target **macOS Big Sur 11.x to macOS Sonoma 14.x**.
|
||||
* Other versions may work, albeit in a broken state. No support is provided for any version outside of the above.
|
||||
|
||||
-------
|
||||
|
||||
Any Intel-based Mac listed below can install and make use of OpenCore Legacy Patcher. To check your hardware model, open System Information and look for the `Model Identifier` key.
|
||||
* This applies even if Apple supports the model natively.
|
||||
* OpenCore Legacy Patcher does not support PowerPC- or Apple Silicon-based Macs.
|
||||
* If your model is not listed below, it is not supported by this patcher.
|
||||
|
||||
::: warning Note
|
||||
It is **extremely recommended** to update your Mac to its latest native version before using OpenCore Legacy Patcher, to ensure you're on the highest firmware.
|
||||
:::
|
||||
|
||||
|
||||
|
||||
The below tables can be used to reference issues with a particular model, and see which OS would work best on your machine.
|
||||
* [MacBook](#macbook)
|
||||
* [MacBook Air](#macbook-air)
|
||||
@@ -13,14 +29,6 @@ The below tables can be used to reference issues with a particular model, and se
|
||||
* [Mac Pro](#mac-pro)
|
||||
* [Xserve](#xserve)
|
||||
|
||||
::: details OpenCore Patcher application
|
||||
The patcher application requires **OS X Yosemite 10.10** or later to run.
|
||||
* **OS X El Capitan 10.11** or later is required to make installers for macOS Ventura and later.
|
||||
|
||||
The patcher is designed to target **macOS Big Sur 11.x to macOS Sonoma 14.x**.
|
||||
* Other versions may work, albeit in a broken state. No support is provided for any version outside of the above.
|
||||
:::
|
||||
|
||||
|
||||
### MacBook
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ Here are some common errors that users may experience while using this patcher:
|
||||
* [Cannot boot macOS without the USB](#cannot-boot-macos-without-the-usb)
|
||||
* [Infinite Recovery OS Booting](#infinite-recovery-os-reboot)
|
||||
* [Stuck on boot after root patching](#stuck-on-boot-after-root-patching)
|
||||
* ["Unable to resolve dependencies, error code 71" when root patching](#unable-to-resolve-dependencies-error-code-71-when-root-patching)
|
||||
* [Reboot when entering Hibernation (`Sleep Wake Failure`)](#reboot-when-entering-hibernation-sleep-wake-failure)
|
||||
* [How to Boot Recovery through OpenCore Legacy Patcher](#how-to-boot-recovery-through-opencore-legacy-patcher)
|
||||
* [Stuck on "Your Mac needs a firmware update"](#stuck-on-your-mac-needs-a-firmware-update)
|
||||
@@ -104,7 +105,30 @@ cd "/Volumes/Macintosh HD - Data/Library/Extensions" && ls | grep -v "HighPoint*
|
||||
|
||||
Then restart and now your system should be restored to the unpatched snapshot and should be able to boot again.
|
||||
|
||||
## "Unable to resolve dependencies, error code 71" when root patching
|
||||
|
||||
If you're getting this error, it typically means you have some offending kernel extensions, to fix this you will have to clear them.
|
||||
|
||||
Semi-automated way:
|
||||
|
||||
1. Open Terminal
|
||||
2. Type `sudo zsh`
|
||||
3. Type `cd "/Volumes/Macintosh HD/Library/Extensions" && ls | grep -v "HighPoint*\|SoftRAID*" | xargs rm -rf`
|
||||
* Make sure to rename "Macintosh HD" to what your drive name is
|
||||
4. Run OCLP root patcher again
|
||||
|
||||
Manual way:
|
||||
|
||||
1. Navigate to /Library/Extensions
|
||||
2. Delete everything **except** HighPointIOP.kext, HighPointRR.kext and SoftRAID.kext
|
||||
3. Run OCLP root patcher again
|
||||
|
||||
If there is no success, navigate to "/Library/Developer/KDKs" and delete everything.
|
||||
|
||||
If still no success, type `sudo bless --mount "/Volumes/Macintosh HD/" --bootefi --last-sealed-snapshot`
|
||||
* Make sure again to rename "Macintosh HD" to what your drive name is
|
||||
|
||||
Run OCLP root patcher again.
|
||||
|
||||
## Reboot when entering Hibernation (`Sleep Wake Failure`)
|
||||
|
||||
|
||||
@@ -142,11 +142,15 @@ class BuildGraphicsAudio:
|
||||
iMac MXM dGPU Backlight DevicePath Detection
|
||||
"""
|
||||
|
||||
if not self.constants.custom_model and self.computer.dgpu and self.computer.dgpu.pci_path:
|
||||
if not self.constants.custom_model:
|
||||
for i, device in enumerate(self.computer.gpus):
|
||||
logging.info(f"- Found dGPU ({i + 1}): {utilities.friendly_hex(device.vendor_id)}:{utilities.friendly_hex(device.device_id)}")
|
||||
self.config["#Revision"][f"Hardware-iMac-dGPU-{i + 1}"] = f"{utilities.friendly_hex(device.vendor_id)}:{utilities.friendly_hex(device.device_id)}"
|
||||
|
||||
# Work-around for AMD Navi MXM cards with PCIe bridge
|
||||
if not self.computer.dgpu:
|
||||
self.computer.dgpu=self.computer.gpus[i]
|
||||
|
||||
if device.pci_path != self.computer.dgpu.pci_path:
|
||||
logging.info("- device path and GFX0 Device path are different")
|
||||
self.gfx0_path = device.pci_path
|
||||
|
||||
@@ -150,9 +150,10 @@ class BuildStorage:
|
||||
|
||||
# Restore S1X/S3X NVMe support removed in 14.0 Beta 2
|
||||
# Apple's usage of the S1X and S3X is quite sporadic and inconsistent, so we'll try a catch all for units with NVMe drives
|
||||
# Additionally expanded to cover all Mac models with the 12+16 pin SSD layout, for older machines with newer drives
|
||||
if self.constants.custom_model and self.model in smbios_data.smbios_dictionary:
|
||||
if "CPU Generation" in smbios_data.smbios_dictionary[self.model]:
|
||||
if cpu_data.CPUGen.broadwell <= smbios_data.smbios_dictionary[self.model]["CPU Generation"] <= cpu_data.CPUGen.kaby_lake:
|
||||
if (cpu_data.CPUGen.haswell <= smbios_data.smbios_dictionary[self.model]["CPU Generation"] <= cpu_data.CPUGen.kaby_lake) or self.model in [ "MacPro6,1" ]:
|
||||
support.BuildSupport(self.model, self.constants, self.config).enable_kext("IOS3XeFamily.kext", self.constants.s3x_nvme_version, self.constants.s3x_nvme_path)
|
||||
|
||||
# Apple RAID Card check
|
||||
@@ -193,4 +194,4 @@ class BuildStorage:
|
||||
|
||||
if self.constants.apfs_trim_timeout is False:
|
||||
logging.info(f"- Disabling APFS TRIM timeout")
|
||||
self.config["Kernel"]["Quirks"]["SetApfsTrimTimeout"] = 0
|
||||
self.config["Kernel"]["Quirks"]["SetApfsTrimTimeout"] = 0
|
||||
|
||||
@@ -107,7 +107,6 @@ class KernelCacheSupport:
|
||||
return updated_install_location
|
||||
|
||||
|
||||
|
||||
def clean_auxiliary_kc(self) -> None:
|
||||
"""
|
||||
Clean the Auxiliary Kernel Collection
|
||||
|
||||
@@ -405,9 +405,9 @@ class PatchSysVolume:
|
||||
destination_folder_path = str(self.mount_location_data) + install_patch_directory
|
||||
|
||||
updated_destination_folder_path = kc_support_obj.add_auxkc_support(install_file, source_folder_path, install_patch_directory, destination_folder_path)
|
||||
|
||||
if kc_support_obj.check_kexts_needs_authentication(install_file) is True:
|
||||
self.constants.needs_to_open_preferences = True
|
||||
if updated_destination_folder_path != destination_folder_path:
|
||||
if kc_support_obj.check_kexts_needs_authentication(install_file) is True:
|
||||
self.constants.needs_to_open_preferences = True
|
||||
|
||||
if destination_folder_path != updated_destination_folder_path:
|
||||
# Update required_patches to reflect the new destination folder path
|
||||
|
||||
Reference in New Issue
Block a user