mirror of
https://github.com/dortania/OpenCore-Legacy-Patcher.git
synced 2026-04-15 21:28:55 +10:00
Compare commits
37 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1a871fd93c | ||
|
|
c2f773aa6e | ||
|
|
3635fc1d0c | ||
|
|
67bf7c5095 | ||
|
|
d1459344e4 | ||
|
|
27b48c97f9 | ||
|
|
8098cc6520 | ||
|
|
d1bf5abd2b | ||
|
|
28e57d5d00 | ||
|
|
33d1b294eb | ||
|
|
3c91e6e9ed | ||
|
|
803cfcb255 | ||
|
|
653f7cc56a | ||
|
|
bb715537bc | ||
|
|
16c0e880cd | ||
|
|
3881fcfad1 | ||
|
|
1f6bff465a | ||
|
|
664444edbc | ||
|
|
bad8d24edd | ||
|
|
743076a411 | ||
|
|
10af52634f | ||
|
|
87fad93941 | ||
|
|
df4e30a814 | ||
|
|
041a291a14 | ||
|
|
ff4a875704 | ||
|
|
0673714d5b | ||
|
|
12d0bbc155 | ||
|
|
12d57e0c66 | ||
|
|
4437eaaf69 | ||
|
|
73babf41fd | ||
|
|
77c53d393c | ||
|
|
fdc45f928d | ||
|
|
886e9a6341 | ||
|
|
f8242874ab | ||
|
|
9c0b4f4ff2 | ||
|
|
550686c88c | ||
|
|
e39247960b |
28
.github/workflows/build-app-wxpython.yml
vendored
28
.github/workflows/build-app-wxpython.yml
vendored
@@ -2,7 +2,7 @@ name: CI - Build wxPython
|
||||
|
||||
on:
|
||||
push:
|
||||
paths-ignore:
|
||||
paths-ignore:
|
||||
- 'docs/**'
|
||||
workflow_dispatch:
|
||||
release:
|
||||
@@ -84,23 +84,6 @@ jobs:
|
||||
--run-as-individual-steps
|
||||
--prepare-package
|
||||
|
||||
- name: Prepare Update Shim (--prepare-shim)
|
||||
run: >
|
||||
/Library/Frameworks/Python.framework/Versions/3.11/bin/python3 Build-Project.command
|
||||
--application-signing-identity "${{ env.ORG_MAC_DEVELOPER_ID_APPLICATION_IDENTITY }}"
|
||||
--notarization-apple-id "${{ env.ORG_MAC_NOTARIZATION_APPLE_ID }}" --notarization-password "${{ env.ORG_MAC_NOTARIZATION_PASSWORD }}" --notarization-team-id "${{ env.ORG_MAC_NOTARIZATION_TEAM_ID }}"
|
||||
--run-as-individual-steps
|
||||
--prepare-shim
|
||||
|
||||
- name: Prepare App for Upload
|
||||
run: /bin/mv ./dist/OpenCore-Patcher.app.zip ./OpenCore-Patcher-GUI.app.zip
|
||||
|
||||
- name: Upload App to Artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: OpenCore-Patcher.app (GUI)
|
||||
path: OpenCore-Patcher-GUI.app.zip
|
||||
|
||||
- name: Upload AutoPkg Package to Artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
@@ -119,15 +102,6 @@ jobs:
|
||||
name: OpenCore-Patcher-Uninstaller.pkg
|
||||
path: ./dist/OpenCore-Patcher-Uninstaller.pkg
|
||||
|
||||
- name: Upload Binary to Release
|
||||
if: github.event_name == 'release'
|
||||
uses: svenstaro/upload-release-action@e74ff71f7d8a4c4745b560a485cc5fdb9b5b999d
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: OpenCore-Patcher-GUI.app.zip
|
||||
tag: ${{ github.ref }}
|
||||
file_glob: true
|
||||
|
||||
- name: Upload AutoPkg Package to Release
|
||||
if: github.event_name == 'release'
|
||||
uses: svenstaro/upload-release-action@e74ff71f7d8a4c4745b560a485cc5fdb9b5b999d
|
||||
|
||||
@@ -7,7 +7,6 @@ import os
|
||||
import sys
|
||||
import time
|
||||
import argparse
|
||||
import plistlib
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
@@ -15,12 +14,9 @@ from ci_tooling.build_modules import (
|
||||
application,
|
||||
disk_images,
|
||||
package,
|
||||
sign_notarize,
|
||||
shim
|
||||
sign_notarize
|
||||
)
|
||||
|
||||
from opencore_legacy_patcher import constants
|
||||
|
||||
|
||||
def main() -> None:
|
||||
"""
|
||||
@@ -55,10 +51,6 @@ def main() -> None:
|
||||
parser.add_argument("--prepare-package", action="store_true", help="CI: Prepare Package", default=False)
|
||||
parser.add_argument("--prepare-assets", action="store_true", help="CI: Prepare Assets", default=False)
|
||||
|
||||
# CI/CD Parameters for additional steps
|
||||
# If not specified, will not run additional steps
|
||||
parser.add_argument("--prepare-shim", action="store_true", help="CI: Prepare Update Shim", default=False)
|
||||
|
||||
# Analytics Parameters
|
||||
parser.add_argument("--analytics-key", type=str, help="Analytics Key", default=None)
|
||||
parser.add_argument("--analytics-endpoint", type=str, help="Analytics Endpoint", default=None)
|
||||
@@ -136,31 +128,6 @@ def main() -> None:
|
||||
notarization_team_id=args.notarization_team_id,
|
||||
).sign_and_notarize()
|
||||
|
||||
# Create Update Shim
|
||||
if args.prepare_shim:
|
||||
shim.GenerateShim().generate()
|
||||
if Path("dist/OpenCore-Patcher.app").exists():
|
||||
if Path("dist/OpenCore-Patcher (Original).app").exists():
|
||||
Path("dist/OpenCore-Patcher (Original).app").unlink()
|
||||
Path("dist/OpenCore-Patcher.app").rename("dist/OpenCore-Patcher (Original).app")
|
||||
Path("dist/OpenCore-Patcher (Shim).app").rename("dist/OpenCore-Patcher.app")
|
||||
|
||||
# Update app version in Info.plist
|
||||
plist_path = Path("dist/OpenCore-Patcher.app/Contents/Info.plist")
|
||||
contents = plistlib.load(plist_path.open("rb"))
|
||||
contents["CFBundleVersion"] = constants.Constants().patcher_version
|
||||
contents["CFBundleShortVersionString"] = constants.Constants().patcher_version
|
||||
plistlib.dump(contents, plist_path.open("wb"))
|
||||
|
||||
sign_notarize.SignAndNotarize(
|
||||
path=Path("dist/OpenCore-Patcher.app"),
|
||||
signing_identity=args.application_signing_identity,
|
||||
notarization_apple_id=args.notarization_apple_id,
|
||||
notarization_password=args.notarization_password,
|
||||
notarization_team_id=args.notarization_team_id,
|
||||
entitlements=Path("./ci_tooling/entitlements/entitlements.plist"),
|
||||
).sign_and_notarize()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
_start = time.time()
|
||||
|
||||
31
CHANGELOG.md
31
CHANGELOG.md
@@ -1,5 +1,36 @@
|
||||
# OpenCore Legacy Patcher changelog
|
||||
|
||||
## 2.3.1
|
||||
- Resolve error on OpenCore Vaulted configs
|
||||
- Regression from 2.3.0
|
||||
|
||||
|
||||
## 2.3.0
|
||||
- Disable crash analytics
|
||||
- Disabled server side for years, removing client side
|
||||
- `OpenCore-Patcher-GUI.app.zip` removed from release
|
||||
- Deprecated in 1.5.0, use `OpenCore-Patcher.pkg` for installation
|
||||
- Sync copyright label to 2025
|
||||
- Resolve MetallibSupportPkg failing to be cached on units without Kernel Debug Kit requirements
|
||||
- Resolve Broadwell widget rendering on macOS Sequoia
|
||||
- Resolve non-Metal crashing on macOS Big Sur and Sequoia (15.4)
|
||||
- Resolve T1 erroring on macOS Sequoia (15.4)
|
||||
- Enabled non-metal beta menubar styling globally
|
||||
- No changes to GUI settings
|
||||
- Increment binaries:
|
||||
- OpenCorePkg 1.0.4 - release
|
||||
- Lilu 1.7.0 - release
|
||||
- WhateverGreen 1.6.9 - release
|
||||
- AirPortBrcmFixup 2.1.9 - release
|
||||
- NVMeFix 1.1.2 - release
|
||||
- RestrictEvents 1.1.5 - release
|
||||
- FeatureUnlock 1.1.7 - release
|
||||
- DebugEnhancer 1.1.0 - release
|
||||
- CPUFriend 1.2.9 - release
|
||||
- BlueToolFixup 2.6.9 - release
|
||||
- CryptexFixup 1.0.4 - release
|
||||
- PatcherSupportPkg 1.9.2 - release
|
||||
|
||||
## 2.2.0
|
||||
- Resolved non-metal accessibility zoom on macOS Sonoma/Sequoia
|
||||
- Resolved non-metal photos app on macOS Sequoia
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Copyright (c) 2020-2024 Dhinak G, Mykola Grymalyuk, and individual contributors.
|
||||
Copyright (c) 2020-2025 Dhinak G, Mykola Grymalyuk, and individual contributors.
|
||||
|
||||
All rights reserved.
|
||||
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
"""
|
||||
shim.py: Generate Update Shim
|
||||
"""
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
from opencore_legacy_patcher.volume import generate_copy_arguments
|
||||
from opencore_legacy_patcher.support import subprocess_wrapper
|
||||
|
||||
|
||||
class GenerateShim:
|
||||
|
||||
def __init__(self) -> None:
|
||||
self._shim_path = "./ci_tooling/update_shim/OpenCore-Patcher.app"
|
||||
self._shim_pkg = f"{self._shim_path}/Contents/Resources/OpenCore-Patcher.pkg"
|
||||
|
||||
self._build_pkg = "./dist/OpenCore-Patcher.pkg"
|
||||
self._output_shim = "./dist/OpenCore-Patcher (Shim).app"
|
||||
|
||||
|
||||
def generate(self) -> None:
|
||||
"""
|
||||
Generate Update Shim
|
||||
"""
|
||||
print("Generating Update Shim")
|
||||
if Path(self._shim_pkg).exists():
|
||||
Path(self._shim_pkg).unlink()
|
||||
|
||||
subprocess_wrapper.run_and_verify(generate_copy_arguments(self._build_pkg, self._shim_pkg))
|
||||
|
||||
if Path(self._output_shim).exists():
|
||||
Path(self._output_shim).unlink()
|
||||
|
||||
subprocess_wrapper.run_and_verify(generate_copy_arguments(self._shim_path, self._output_shim))
|
||||
@@ -1,30 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>OpenCore-Patcher</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>OpenCore-Patcher</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>AppIcon.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.dortania.opencore-legacy-patcher</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>OpenCore Legacy Patcher</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>10.10.0</string>
|
||||
<key>NSHighResolutionCapable</key>
|
||||
<true/>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Copyright © 2020-2024 Dortania</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>NSApplication</string>
|
||||
<key>NSRequiresAquaSystemAppearance</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,8 +0,0 @@
|
||||
# OpenCore-Patcher Update Shim
|
||||
|
||||
To handle the new PKG installation method, old versions of OpenCore Legacy Patcher updating to newer versions will still require 'OpenCore-Patcher.app' to be available for download.
|
||||
|
||||
Thus the goal of this app is to install an embedded PKG under ./OpenCore-Patcher.app/Contents/Resources/OpenCore-Patcher.pkg to handle the update process.
|
||||
|
||||
Source is available at:
|
||||
* https://github.com/dortania/OCLP-Helper
|
||||
49
docs/FAQ.md
49
docs/FAQ.md
@@ -11,6 +11,7 @@
|
||||
* [Can I update to macOS betas?](#can-i-update-to-macos-betas)
|
||||
* [Can I downgrade macOS while keeping data?](#can-i-downgrade-macos-while-keeping-data)
|
||||
* [Why is my system slow?](#why-is-my-system-slow)
|
||||
* [Applications crashing with "illegal instruction"](#applications-crashing-with-illegal-instruction)
|
||||
* [What is Metal and non-Metal?](#what-is-metal-and-non-metal)
|
||||
* [What are FeatureUnlock and mediaanalysisd?](#what-are-featureunlock-and-mediaanalysisd)
|
||||
* [Why isn't iPhone Mirroring working?](#why-isn-t-iphone-mirroring-working)
|
||||
@@ -20,7 +21,8 @@
|
||||
|
||||
## 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.
|
||||
* **El Capitan 10.11** or later is required to make installers for macOS Ventura
|
||||
* **High Sierra 10.13** or later is required to make installers for macOS Sonoma and newer.
|
||||
|
||||
The patcher is designed to target **macOS Big Sur 11.x to macOS Sequoia 15.x**.
|
||||
* Other versions may work, albeit in a broken state. No support is provided for any version outside of the above.
|
||||
@@ -87,8 +89,9 @@ macOS by default uses a sealed system volume that is unwritable. When the seal i
|
||||
|
||||
## Can I update to macOS betas?
|
||||
|
||||
If you are feeling brave and don't mind having to possibly recover your system. However, be advised that no help will be given in situations where a beta was installed.
|
||||
OCLP patch development and testing happens at the beta phase in order to target a stable release, as such it is impossible for OCLP to support betas properly and previous versions may be incompatible. Only install a beta if you know what you're doing, have your expectations in check and don't mind having to fully reset to recover your system.
|
||||
|
||||
Be advised that no help will be given in situations where a beta was installed.
|
||||
|
||||
## Can I downgrade macOS while keeping data?
|
||||
|
||||
@@ -104,6 +107,33 @@ However, if your system is being **really** slow and you have no transparency in
|
||||
|
||||
Patches can also break if automatic updates are enabled and an update modifies the system volume, refer to [System version mismatch error when root patching](https://dortania.github.io/OpenCore-Legacy-Patcher/TROUBLESHOOTING.html#system-version-mismatch-error-when-root-patching) for more information.
|
||||
|
||||
## Applications crashing with "illegal instruction"
|
||||
|
||||
If the crash log includes a string saying "illegal instruction", this typically means the application requires AVX or AVX2 CPU instructions.
|
||||
|
||||
Since macOS Ventura, AVX2 is required from all Macs supported by it. While OCLP is able to patch macOS to boot without it, many applications are beginning to utilize AVX and AVX2 as well in newer versions because all supported Macs are expected to have them. This creates an issue for older systems where some applications cannot be ran on CPUs lacking such instructions. Some older Macs may need older versions of applications and cannot update to newer versions. AVX was introduced in Sandy Bridge CPU generation and AVX2 in Haswell generation.
|
||||
|
||||
In essence, this means that some models are now aging rapidly and newer OS won't always provide support for newer applications because of hardware requirements. If an application still supports macOS versions older than Ventura, it may have a chance of running on an older OS version on the old system, since some Macs running them natively don't support AVX2 and the app takes a different path.
|
||||
|
||||
Earliest Mac models supporting AVX instruction:
|
||||
|
||||
- Macmini5,x (2011)
|
||||
- iMac12,x (2011)
|
||||
- MacBookPro8,x (2011)
|
||||
- MacBookAir4,x (2011)
|
||||
- MacBook8,x (2015)
|
||||
- MacPro6,1 (2013)
|
||||
|
||||
Earliest Mac models supporting AVX2 instruction:
|
||||
|
||||
- Macmini7,x (2014)
|
||||
- iMac14,x (2013)
|
||||
- MacBookPro11,x (2013)
|
||||
- MacBookAir6,x (2013)
|
||||
- MacBook8,x (2015)
|
||||
- MacPro7,1 (2019)
|
||||
|
||||
|
||||
## What is Metal and Non-Metal?
|
||||
|
||||
Metal is Apple's proprietary graphics API which fully superseded OpenGL rendering of the operating system starting from macOS Mojave. When the word "Non-Metal" is used, it describes GPUs that are not Metal supported and require using OpenGL instead.
|
||||
@@ -123,9 +153,20 @@ Due to deprecation of OpenGL, many newer applications may require Metal renderin
|
||||
|
||||
## What are FeatureUnlock and mediaanalysisd?
|
||||
|
||||
FeatureUnlock is an extension to enable some macOS features, such as Sidecar or Universal Control. All features enabled by FeatureUnlock are listed [here](https://github.com/acidanthera/FeatureUnlock). Medianalysisd is utilized for face detection in Photos, as well as the Live Text feature.
|
||||
**Important:** These features have the potential to cause instability in many places and as such a decision has been made to disable them by default (mediaanalysisd only on 3802-based* systems) starting from OpenCore Legacy Patcher version 2.1.0. If you want to enable these features at the risk of additional instability, you can do so in the OCLP settings and rebuilding OpenCore.
|
||||
|
||||
These features have the potential to cause instability in many places and as such a decision has been made to disable them by default (mediaanalysisd only on 3802-based* systems) starting from OpenCore Legacy Patcher version 2.1.0. If you want to enable these features at the risk of additional instability, you can do so in the OCLP settings and rebuilding OpenCore.
|
||||
FeatureUnlock is an extension to enable some macOS features, including:
|
||||
- Sidecar
|
||||
- Universal Control
|
||||
- AirPlay to Mac
|
||||
- Continuity Camera
|
||||
- NightShift (non-Metal)
|
||||
|
||||
Further information, requirements and the models affected for FeatureUnlock features can be found [here](https://github.com/acidanthera/FeatureUnlock).
|
||||
|
||||
Medianalysisd is utilized for
|
||||
- Face detection in Photos
|
||||
- Live Text
|
||||
|
||||
| FeatureUnlock | mediaanalysisd |
|
||||
| :--- | :--- |
|
||||
|
||||
@@ -48,7 +48,7 @@ The below tables can be used to reference issues with a particular model, and se
|
||||
| MacBook Air (13-inch, Mid 2013)<br>MacBook Air (13-inch, Early 2014) | `MacBookAir6,2` | ^^ |
|
||||
| MacBook Air (11-inch, Early 2015) | `MacBookAir7,1` | ^^ |
|
||||
| MacBook Air (13-inch, Early 2015)<br>MacBook Air (13-inch, 2017) | `MacBookAir7,2` | ^^ |
|
||||
| MacBook Air (Retina, 13-inch, 2018) | `MacBookAir8,1` | - Supported natively up to Sonoma<br>- Currently not supported on Sequoia due to T2 issues<br> |
|
||||
| MacBook Air (Retina, 13-inch, 2018) | `MacBookAir8,1` | - Supported natively up to Sonoma<br>- [Currently not supported with OpenCore due to T2 issues](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/1136)<br> |
|
||||
| MacBook Air (Retina, 13-inch, 2019) | `MacBookAir8,2` | ^^ |
|
||||
| MacBook Air (Retina, 13-inch, 2020) | `MacBookAir9,1` | Supported by Apple |
|
||||
|
||||
|
||||
@@ -79,7 +79,17 @@ Non-Metal systems still require lowered SIP.
|
||||
|
||||
Post Install Volume Patches, sometimes also called root patches, are patches that have to be installed to disk for some older Macs to gain back functionality.
|
||||
|
||||
OCLP will automatically root patch your system during a first time install **if the USB install media was created within OCLP and the proper model was selected before installer creation.** Users will also be prompted to install these patches after macOS updates or whenever patches are not detected on the system. We recommend rebuilding OpenCore with the latest version of OCLP to take advantage of these new features.
|
||||
These patches include things such as:
|
||||
|
||||
- Graphics drivers
|
||||
- WiFi drivers
|
||||
- Bluetooth drivers
|
||||
- Touchbar / T1 drivers
|
||||
- Built-in camera (iSight) drivers
|
||||
- USB 1.1 drivers
|
||||
- Other patches for compatibility with older drivers
|
||||
|
||||
OCLP will automatically root patch your system during a first time install **if the USB install media was created within OCLP and the proper model was selected before installer creation.** Users will also be prompted to install these patches after macOS updates or whenever patches are not detected on the system. We recommend rebuilding OpenCore with the latest version of OCLP to take advantage of these new features.
|
||||
|
||||
Users can also see whether applicable patches have been installed, date and version the system was root patched with in the Post-Install Menu.
|
||||
|
||||
|
||||
@@ -22,5 +22,5 @@ features:
|
||||
details: Unlock Sidecar, AirPlay to Mac, Night Shift, and Universal Control, even on natively supported models!
|
||||
- title: A helpful community
|
||||
details: Whether it's getting started or learning the specifics, you can always find answers with our amazing community of tinkerers, developers, and dreamers.
|
||||
footer: Copyright © Dortania 2020-2024
|
||||
footer: Copyright © Dortania 2020-2025
|
||||
---
|
||||
|
||||
@@ -7,7 +7,7 @@ Here are some common errors that users may experience while using this patcher:
|
||||
* [Stuck on `This version of Mac OS X is not supported on this platform` or (🚫) Prohibited Symbol](#stuck-on-this-version-of-mac-os-x-is-not-supported-on-this-platform-or-🚫-prohibited-symbol)
|
||||
* [Stuck on hard disk selection with greyed out buttons in installer](#stuck-on-hard-disk-selection-with-greyed-out-buttons-in-installer)
|
||||
* [Cannot boot macOS without the USB](#cannot-boot-macos-without-the-usb)
|
||||
* [Infinite Recovery OS Booting](#infinite-recovery-os-reboot)
|
||||
* [Infinite Recovery OS Booting](#infinite-recovery-os-booting)
|
||||
* [Internal disk missing when building OpenCore](#internal-disk-missing-when-building-opencore)
|
||||
* [System version mismatch error when root patching](#system-version-mismatch-error-when-root-patching)
|
||||
* [Stuck on boot after root patching](#stuck-on-boot-after-root-patching)
|
||||
@@ -18,8 +18,8 @@ Here are some common errors that users may experience while using this patcher:
|
||||
* [No Brightness Control](#no-brightness-control)
|
||||
* [Cannot connect Wi-Fi on Monterey with legacy cards](#cannot-connect-Wi-Fi-on-Monterey-with-legacy-cards)
|
||||
* [No Graphics Acceleration](#no-graphics-acceleration)
|
||||
* [Black Screen on MacBookPro11,3 in macOS Monterey](#black-screen-on-macbookpro113-in-macos-monterey)
|
||||
* [No DisplayPort Output on Mac Pros with NVIDIA Kepler](#no-displayport-output-on-mac-pros-with-NVIDIA-kepler)
|
||||
* [Black Screen on MacBookPro11,3 in macOS Monterey](#black-screen-on-macbookpro11-3-in-macos-monterey)
|
||||
* [No DisplayPort Output on Mac Pros with NVIDIA Kepler](#no-displayport-output-on-mac-pros-with-nvidia-kepler)
|
||||
* [Volume Hash Mismatch Error in macOS Monterey](#volume-hash-mismatch-error-in-macos-monterey)
|
||||
* [Cannot Disable SIP in recoveryOS](#cannot-disable-sip-in-recoveryos)
|
||||
* [Stuck on "Less than a minute remaining..."](#stuck-on-less-than-a-minute-remaining)
|
||||
@@ -124,6 +124,8 @@ System Preferences -> Software Update -> Advanced -> Disable "Download new updat
|
||||
|
||||
## Stuck on boot after root patching
|
||||
|
||||
**Applies to macOS Monterey and newer. Big Sur does not support snapshot reversion.**
|
||||
|
||||
Boot into recovery by pressing space when your disk is selected on the OCLP bootpicker (if you have it hidden, hold ESC while starting up)
|
||||
|
||||
* **Note:** If your disk name is something else than "Macintosh HD", make sure to change the path accordingly. You can figure out your disk name by typing `ls /Volumes`.
|
||||
@@ -317,4 +319,11 @@ Applicable models include:
|
||||
|
||||
If you notice your Touchbar etc not working, this means loss of T1 functionality.
|
||||
|
||||
Wiping the entire disk using Disk Utility with Sonoma or newer causes the T1 firmware to be removed, which due to removed support, the macOS Sonoma+ installer will not restore. To restore T1 functionality, Ventura or older has to be reinstalled. This can be done in another volume or external disk as well, as long as the OS is booted once. After this you can wipe the old OS or unplug the external disk.
|
||||
Wiping the entire disk using Disk Utility with Sonoma or newer causes the T1 firmware to be removed, which due to removed support, the macOS Sonoma+ installer will not restore. If the firmware is missing from EFI, T1 will not work regardless whether OCLP reinstates the driver during root patching. To restore T1 functionality, Ventura or older has to be reinstalled. This can be done in another volume or external disk as well, as long as the OS is booted once. After this you can wipe the old OS or unplug the external disk.
|
||||
|
||||
|
||||
To prevent this from happening in the future, with T1 systems only wipe the volume containing the operating system.
|
||||
|
||||
<div align="left">
|
||||
<img src="./images/wipe-volume.png" alt="WipeVolume" width="800" />
|
||||
</div>
|
||||
|
||||
@@ -8,23 +8,17 @@ Boot a native macOS installer, go to Disk Utility and choose View -> Show All De
|
||||
|
||||
[Reset NVRAM](https://support.apple.com/HT204063) afterwards.
|
||||
|
||||
## Uninstalling the application
|
||||
## Manual methods
|
||||
|
||||
### Version 1.5.0 and newer
|
||||
### Uninstalling the application
|
||||
|
||||
Version 1.5.0 and newer use a Privileged Helper Tool that requires more thorough uninstallation than previous versions. Download the uninstaller package from [the releases page.](https://github.com/dortania/OpenCore-Legacy-Patcher/releases)
|
||||
To fully uninstall the OCLP application including LaunchAgent and PrivilegedHelperTool, download the uninstaller package from [the releases page.](https://github.com/dortania/OpenCore-Legacy-Patcher/releases)
|
||||
|
||||
### Version 1.4.3 and older.
|
||||
|
||||
Navigate to `/Library/Application Support/` and delete the Dortania folder.
|
||||
|
||||
## Reverting root patches
|
||||
### Reverting root patches
|
||||
|
||||
Open the OCLP application and go into the Post Install Root Patch menu, choose Revert Root Patches.
|
||||
|
||||
If you're planning to revert back to native version, you don't have to do this. Root patches get wiped when you wipe the disk.
|
||||
|
||||
## Uninstalling the bootloader
|
||||
### Uninstalling the bootloader
|
||||
|
||||
1. Remove OpenCore either from the USB or internal drive
|
||||
|
||||
|
||||
@@ -13,9 +13,9 @@ from .detections import device_probe
|
||||
class Constants:
|
||||
def __init__(self) -> None:
|
||||
# Patcher Versioning
|
||||
self.patcher_version: str = "2.2.0" # OpenCore-Legacy-Patcher
|
||||
self.patcher_support_pkg_version: str = "1.9.1" # PatcherSupportPkg
|
||||
self.copyright_date: str = "Copyright © 2020-2024 Dortania"
|
||||
self.patcher_version: str = "2.3.1" # OpenCore-Legacy-Patcher
|
||||
self.patcher_support_pkg_version: str = "1.9.2" # PatcherSupportPkg
|
||||
self.copyright_date: str = "Copyright © 2020-2025 Dortania"
|
||||
self.patcher_name: str = "OpenCore Legacy Patcher"
|
||||
|
||||
# URLs
|
||||
@@ -28,25 +28,25 @@ class Constants:
|
||||
|
||||
# OpenCore Versioning
|
||||
# https://github.com/acidanthera/OpenCorePkg
|
||||
self.opencore_version: str = "1.0.1"
|
||||
self.opencore_version: str = "1.0.4"
|
||||
|
||||
# Kext Versioning
|
||||
## Acidanthera
|
||||
## https://github.com/acidanthera
|
||||
self.lilu_version: str = "1.6.8" # Lilu
|
||||
self.whatevergreen_version: str = "1.6.7" # WhateverGreen
|
||||
self.whatevergreen_navi_version: str = "1.6.7-Navi" # WhateverGreen (Navi Patch)
|
||||
self.airportbcrmfixup_version: str = "2.1.8" # AirPortBrcmFixup
|
||||
self.nvmefix_version: str = "1.1.1" # NVMeFix
|
||||
self.lilu_version: str = "1.7.0" # Lilu
|
||||
self.whatevergreen_version: str = "1.6.9" # WhateverGreen
|
||||
self.whatevergreen_navi_version: str = "1.6.9-Navi" # WhateverGreen (Navi Patch)
|
||||
self.airportbcrmfixup_version: str = "2.1.9" # AirPortBrcmFixup
|
||||
self.nvmefix_version: str = "1.1.2" # NVMeFix
|
||||
self.applealc_version: str = "1.6.3" # AppleALC
|
||||
self.restrictevents_version: str = "1.1.4" # RestrictEvents
|
||||
self.featureunlock_version: str = "1.1.6" # FeatureUnlock
|
||||
self.debugenhancer_version: str = "1.0.9" # DebugEnhancer
|
||||
self.cpufriend_version: str = "1.2.8" # CPUFriend
|
||||
self.bluetool_version: str = "2.6.8" # BlueToolFixup (BrcmPatchRAM)
|
||||
self.restrictevents_version: str = "1.1.5" # RestrictEvents
|
||||
self.featureunlock_version: str = "1.1.7" # FeatureUnlock
|
||||
self.debugenhancer_version: str = "1.1.0" # DebugEnhancer
|
||||
self.cpufriend_version: str = "1.2.9" # CPUFriend
|
||||
self.bluetool_version: str = "2.6.9" # BlueToolFixup (BrcmPatchRAM)
|
||||
self.cslvfixup_version: str = "2.6.1" # CSLVFixup
|
||||
self.autopkg_version: str = "1.0.4" # AutoPkgInstaller
|
||||
self.cryptexfixup_version: str = "1.0.3" # CryptexFixup
|
||||
self.cryptexfixup_version: str = "1.0.4" # CryptexFixup
|
||||
|
||||
## Apple
|
||||
## https://www.apple.com
|
||||
|
||||
@@ -200,7 +200,6 @@ class InitializeLoggingSupport:
|
||||
return
|
||||
|
||||
if self.constants.cli_mode is True:
|
||||
threading.Thread(target=analytics_handler.Analytics(self.constants).send_crash_report, args=(self.log_filepath,)).start()
|
||||
return
|
||||
|
||||
error_msg = f"OpenCore Legacy Patcher encountered the following internal error:\n\n"
|
||||
@@ -208,17 +207,7 @@ class InitializeLoggingSupport:
|
||||
if tb:
|
||||
error_msg += f"\n\n{traceback.extract_tb(tb)[-1]}"
|
||||
|
||||
cant_log: bool = global_settings.GlobalEnviromentSettings().read_property("DisableCrashAndAnalyticsReporting")
|
||||
if not isinstance(cant_log, bool):
|
||||
cant_log = False
|
||||
|
||||
if self.constants.commit_info[0].startswith("refs/tags"):
|
||||
cant_log = True
|
||||
|
||||
if cant_log is True:
|
||||
error_msg += "\n\nReveal log file?"
|
||||
else:
|
||||
error_msg += "\n\nSend crash report to Dortania?"
|
||||
error_msg += "\n\nReveal log file?"
|
||||
|
||||
# Ask user if they want to send crash report
|
||||
try:
|
||||
@@ -230,11 +219,7 @@ class InitializeLoggingSupport:
|
||||
if result[applescript.AEType(b'bhit')] != "Yes":
|
||||
return
|
||||
|
||||
if cant_log is True:
|
||||
subprocess.run(["/usr/bin/open", "--reveal", self.log_filepath])
|
||||
return
|
||||
|
||||
threading.Thread(target=analytics_handler.Analytics(self.constants).send_crash_report, args=(self.log_filepath,)).start()
|
||||
subprocess.run(["/usr/bin/open", "--reveal", self.log_filepath])
|
||||
|
||||
|
||||
def custom_thread_excepthook(args) -> None:
|
||||
|
||||
@@ -100,6 +100,9 @@ class PatchSysVolume:
|
||||
|
||||
self.skip_root_kmutil_requirement = not self.hardware_details[HardwarePatchsetSettings.KERNEL_DEBUG_KIT_REQUIRED] if self.constants.detected_os >= os_data.os_data.ventura else False
|
||||
|
||||
self.requires_kdk_caching = self.hardware_details[HardwarePatchsetSettings.KERNEL_DEBUG_KIT_REQUIRED] and self.constants.detected_os >= os_data.os_data.ventura
|
||||
self.requires_metallib_caching = self.hardware_details[HardwarePatchsetSettings.METALLIB_SUPPORT_PKG_REQUIRED] and self.constants.detected_os >= os_data.os_data.sequoia
|
||||
|
||||
self.mount_obj = RootVolumeMount(self.constants.detected_os)
|
||||
|
||||
|
||||
@@ -345,7 +348,7 @@ class PatchSysVolume:
|
||||
|
||||
if self.constants.wxpython_variant is True and self.constants.detected_os >= os_data.os_data.big_sur:
|
||||
needs_daemon = False
|
||||
if self.constants.detected_os >= os_data.os_data.ventura and self.skip_root_kmutil_requirement is False:
|
||||
if self.requires_kdk_caching is True or self.requires_metallib_caching is True:
|
||||
needs_daemon = True
|
||||
InstallAutomaticPatchingServices(self.constants).install_auto_patcher_launch_agent(kdk_caching_needed=needs_daemon)
|
||||
|
||||
|
||||
@@ -296,6 +296,8 @@
|
||||
<false/>
|
||||
<key>AvoidRuntimeDefrag</key>
|
||||
<false/>
|
||||
<key>ClearTaskSwitchBit</key>
|
||||
<false/>
|
||||
<key>DevirtualiseMmio</key>
|
||||
<false/>
|
||||
<key>DisableSingleUser</key>
|
||||
@@ -3191,6 +3193,8 @@
|
||||
</dict>
|
||||
<key>ReservedMemory</key>
|
||||
<array/>
|
||||
<key>Unload</key>
|
||||
<array/>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
BIN
payloads/Kexts/Acidanthera/AirportBrcmFixup-v2.1.9-DEBUG.zip
Normal file
BIN
payloads/Kexts/Acidanthera/AirportBrcmFixup-v2.1.9-DEBUG.zip
Normal file
Binary file not shown.
BIN
payloads/Kexts/Acidanthera/AirportBrcmFixup-v2.1.9-RELEASE.zip
Normal file
BIN
payloads/Kexts/Acidanthera/AirportBrcmFixup-v2.1.9-RELEASE.zip
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
payloads/Kexts/Acidanthera/BlueToolFixup-v2.6.9-DEBUG.zip
Normal file
BIN
payloads/Kexts/Acidanthera/BlueToolFixup-v2.6.9-DEBUG.zip
Normal file
Binary file not shown.
BIN
payloads/Kexts/Acidanthera/BlueToolFixup-v2.6.9-RELEASE.zip
Normal file
BIN
payloads/Kexts/Acidanthera/BlueToolFixup-v2.6.9-RELEASE.zip
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
payloads/Kexts/Acidanthera/CPUFriend-v1.2.9-DEBUG.zip
Normal file
BIN
payloads/Kexts/Acidanthera/CPUFriend-v1.2.9-DEBUG.zip
Normal file
Binary file not shown.
BIN
payloads/Kexts/Acidanthera/CPUFriend-v1.2.9-RELEASE.zip
Normal file
BIN
payloads/Kexts/Acidanthera/CPUFriend-v1.2.9-RELEASE.zip
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
payloads/Kexts/Acidanthera/CryptexFixup-v1.0.4-DEBUG.zip
Normal file
BIN
payloads/Kexts/Acidanthera/CryptexFixup-v1.0.4-DEBUG.zip
Normal file
Binary file not shown.
BIN
payloads/Kexts/Acidanthera/CryptexFixup-v1.0.4-RELEASE.zip
Normal file
BIN
payloads/Kexts/Acidanthera/CryptexFixup-v1.0.4-RELEASE.zip
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
payloads/Kexts/Acidanthera/DebugEnhancer-v1.1.0-DEBUG.zip
Normal file
BIN
payloads/Kexts/Acidanthera/DebugEnhancer-v1.1.0-DEBUG.zip
Normal file
Binary file not shown.
BIN
payloads/Kexts/Acidanthera/DebugEnhancer-v1.1.0-RELEASE.zip
Normal file
BIN
payloads/Kexts/Acidanthera/DebugEnhancer-v1.1.0-RELEASE.zip
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
payloads/Kexts/Acidanthera/FeatureUnlock-v1.1.7-DEBUG.zip
Normal file
BIN
payloads/Kexts/Acidanthera/FeatureUnlock-v1.1.7-DEBUG.zip
Normal file
Binary file not shown.
BIN
payloads/Kexts/Acidanthera/FeatureUnlock-v1.1.7-RELEASE.zip
Normal file
BIN
payloads/Kexts/Acidanthera/FeatureUnlock-v1.1.7-RELEASE.zip
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
payloads/Kexts/Acidanthera/Lilu-v1.7.0-DEBUG.zip
Normal file
BIN
payloads/Kexts/Acidanthera/Lilu-v1.7.0-DEBUG.zip
Normal file
Binary file not shown.
BIN
payloads/Kexts/Acidanthera/Lilu-v1.7.0-RELEASE.zip
Normal file
BIN
payloads/Kexts/Acidanthera/Lilu-v1.7.0-RELEASE.zip
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
payloads/Kexts/Acidanthera/NVMeFix-v1.1.2-DEBUG.zip
Normal file
BIN
payloads/Kexts/Acidanthera/NVMeFix-v1.1.2-DEBUG.zip
Normal file
Binary file not shown.
BIN
payloads/Kexts/Acidanthera/NVMeFix-v1.1.2-RELEASE.zip
Normal file
BIN
payloads/Kexts/Acidanthera/NVMeFix-v1.1.2-RELEASE.zip
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
payloads/Kexts/Acidanthera/RestrictEvents-v1.1.5-DEBUG.zip
Normal file
BIN
payloads/Kexts/Acidanthera/RestrictEvents-v1.1.5-DEBUG.zip
Normal file
Binary file not shown.
BIN
payloads/Kexts/Acidanthera/RestrictEvents-v1.1.5-RELEASE.zip
Normal file
BIN
payloads/Kexts/Acidanthera/RestrictEvents-v1.1.5-RELEASE.zip
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
payloads/Kexts/Acidanthera/WhateverGreen-v1.6.9-DEBUG.zip
Normal file
BIN
payloads/Kexts/Acidanthera/WhateverGreen-v1.6.9-DEBUG.zip
Normal file
Binary file not shown.
BIN
payloads/Kexts/Acidanthera/WhateverGreen-v1.6.9-Navi-DEBUG.zip
Normal file
BIN
payloads/Kexts/Acidanthera/WhateverGreen-v1.6.9-Navi-DEBUG.zip
Normal file
Binary file not shown.
BIN
payloads/Kexts/Acidanthera/WhateverGreen-v1.6.9-Navi-RELEASE.zip
Normal file
BIN
payloads/Kexts/Acidanthera/WhateverGreen-v1.6.9-Navi-RELEASE.zip
Normal file
Binary file not shown.
BIN
payloads/Kexts/Acidanthera/WhateverGreen-v1.6.9-RELEASE.zip
Normal file
BIN
payloads/Kexts/Acidanthera/WhateverGreen-v1.6.9-RELEASE.zip
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -49,6 +49,17 @@ UNUSED_DRIVERS = [
|
||||
"Dhcp4Dxe.efi",
|
||||
"ArpDxe.efi",
|
||||
"FirmwareSettingsEntry.efi",
|
||||
"UefiPxeBcDxe.efi",
|
||||
"RngDxe.efi",
|
||||
"TlsDxe.efi",
|
||||
"Udp6Dxe.efi",
|
||||
"Hash2DxeCrypto.efi",
|
||||
"Dhcp6Dxe.efi",
|
||||
"Ip6Dxe.efi",
|
||||
"Mtftp4Dxe.efi",
|
||||
"RamDiskDxe.efi",
|
||||
"Mtftp6Dxe.efi",
|
||||
"OpenNetworkBoot.efi",
|
||||
]
|
||||
|
||||
UNUSED_TOOLS = [
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -60,7 +60,8 @@ fi
|
||||
|
||||
echo "Signing OpenCore..."
|
||||
./RsaTool -sign "${OCPath}/vault.plist" "${OCPath}/vault.sig" "${PubKey}" || abort "Failed to patch ${PubKey}"
|
||||
off=$(($(./strings -a -t d "${OCBin}" | /usr/bin/grep "=BEGIN OC VAULT=" | /usr/bin/awk '{print $1}') + 16))
|
||||
|
||||
off=$((0x$(/usr/bin/hexdump -C "${OCBin}" | /usr/bin/grep "=BEGIN OC VAULT=" | /usr/bin/awk '{print $1}') + 16))
|
||||
if [ "${off}" -le 16 ]; then
|
||||
abort "${OCBin} is borked"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user