mirror of
https://github.com/dortania/OpenCore-Legacy-Patcher.git
synced 2026-04-15 13:18:56 +10:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8e9220cbc9 | ||
|
|
506cb00937 | ||
|
|
f3b3daab10 | ||
|
|
a952e732d2 | ||
|
|
474e2247a0 | ||
|
|
65516814f7 | ||
|
|
f9c14459be | ||
|
|
f97964ce82 | ||
|
|
2798d8a676 | ||
|
|
09f5533a74 | ||
|
|
f2a5e780b4 | ||
|
|
a8d8621c31 |
2
.github/workflows/build-app-wxpython.yml
vendored
2
.github/workflows/build-app-wxpython.yml
vendored
@@ -16,7 +16,7 @@ jobs:
|
||||
commitdate: ${{ github.event.head_commit.timestamp }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- run: /Library/Frameworks/Python.framework/Versions/3.9/bin/python3 Build-Binary.command --reset_binaries --branch ${{ env.branch }} --commit ${{ env.commiturl }} --commit_date ${{ env.commitdate }}
|
||||
- run: /Library/Frameworks/Python.framework/Versions/3.9/bin/python3 Build-Binary.command --reset_binaries --branch "${{ env.branch }}" --commit "${{ env.commiturl }}" --commit_date "${{ env.commitdate }}"
|
||||
- run: 'codesign -s "Developer ID Application: Mykola Grymalyuk (S74BDJXQMD)" -v --force --deep --timestamp --entitlements ./payloads/entitlements.plist -o runtime "dist/OpenCore-Patcher.app"'
|
||||
- run: cd dist; ditto -c -k --sequesterRsrc --keepParent OpenCore-Patcher.app ../OpenCore-Patcher-wxPython.app.zip
|
||||
- run: ./../sign-wxpython.sh
|
||||
|
||||
10
.github/workflows/build-app.yml
vendored
10
.github/workflows/build-app.yml
vendored
@@ -16,7 +16,7 @@ jobs:
|
||||
commitdate: ${{ github.event.head_commit.timestamp }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- run: /Library/Frameworks/Python.framework/Versions/3.9/bin/python3 Build-Binary.command --build_tui --reset_binaries --branch ${{ env.branch }} --commit ${{ env.commiturl }} --commit_date ${{ env.commitdate }}
|
||||
- run: /Library/Frameworks/Python.framework/Versions/3.9/bin/python3 Build-Binary.command --build_tui --reset_binaries --branch "${{ env.branch }}" --commit "${{ env.commiturl }}" --commit_date "${{ env.commitdate }}"
|
||||
- run: 'codesign -s "Developer ID Application: Mykola Grymalyuk (S74BDJXQMD)" -v --force --deep --timestamp --entitlements ./payloads/entitlements.plist -o runtime "dist/OpenCore-Patcher.app"'
|
||||
- run: cd dist; zip -r ../OpenCore-Patcher-TUI.app.zip OpenCore-Patcher.app
|
||||
- run: ./../sign-tui.sh
|
||||
@@ -26,13 +26,5 @@ jobs:
|
||||
name: OpenCore-Patcher-TUI.app
|
||||
path: OpenCore-Patcher-TUI.app.zip
|
||||
|
||||
- name: Upload to Release
|
||||
if: github.event_name == 'release'
|
||||
uses: svenstaro/upload-release-action@e74ff71f7d8a4c4745b560a485cc5fdb9b5b999d
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: OpenCore-Patcher-TUI.app.zip
|
||||
tag: ${{ github.ref }}
|
||||
file_glob: true
|
||||
- name: Validate OpenCore
|
||||
run: ./dist/OpenCore-Patcher.app/Contents/MacOS/OpenCore-Patcher --validate
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
# OpenCore Legacy Patcher changelog
|
||||
|
||||
## 0.4.7
|
||||
- Fix crashing on defaults parsing
|
||||
|
||||
## 0.4.6
|
||||
- Fix Bluetooth support in 12.4 Release
|
||||
- Applicable for BCM2046 and BCM2070 chipsets
|
||||
|
||||
46
docs/BOOT.md
46
docs/BOOT.md
@@ -8,6 +8,50 @@ Reboot machine while holding `Option` to select the EFI Boot entry with the Open
|
||||
|
||||

|
||||
|
||||
::: details Note for Mac Pros/Xserves/iMacs with unflashed GPUs
|
||||
|
||||
(Adapted from the [OpenCore on the Mac Pro guide](https://forums.macrumors.com/threads/opencore-on-the-mac-pro.2207814/))
|
||||
|
||||
For Mac Pro, Xserve and, iMac users with non-flashed GPUs, you can still easily boot OpenCore and view the entire boot process.
|
||||
|
||||
Firstly, open the Terminal and run the following command:
|
||||
```sh
|
||||
sudo nvram "recovery-boot-mode=unused" && sudo reboot recovery
|
||||
```
|
||||
This will make your machine reboot into the Recovery Environment. Alternatively, holding Command + R when your machine is starting up will also let you enter the Recovery.
|
||||
|
||||
Secondly, open the Recovery Environment's Terminal (Menu bar > Utilities > Terminal).
|
||||
|
||||
Now you'll want to get a list of drive identifiers. To do so, run the following command:
|
||||
```sh
|
||||
diskutil list
|
||||
```
|
||||
The command should produce a list of drives installed in your system:
|
||||

|
||||
|
||||
Keep track of the drive with the OCLP install. You will need the drive identifer for later.
|
||||
|
||||
Now you'll want to mount the EFI partition (where OCLP is installed, though may differ if you've installed OCLP to a FAT-32 volume).
|
||||
|
||||
Run the following command (Replace X with the drive number):
|
||||
```sh
|
||||
diskutil mount diskXs1
|
||||
```
|
||||

|
||||
If everything is correct, the EFI partion should be mounted.
|
||||
|
||||
Now you'll want to use the bless command to set the default boot device:
|
||||
```sh
|
||||
bless --mount /Volumes/EFI --setBoot --file /Volumes/EFI/System/Library/CoreServices/boot.efi
|
||||
```
|
||||
Once the command is run, it should produce no output.
|
||||

|
||||
|
||||
If the command produces an output, ensure that you've typed it in correctly.
|
||||
|
||||
Now you can reboot your machine. OCLP is now the default boot option!
|
||||
:::
|
||||
|
||||
Now that you've loaded OpenCore, now select Install macOS:
|
||||
|
||||
* This will be the OpenCore Picker
|
||||
@@ -23,7 +67,7 @@ If your Mac is looping back into the beginning of the setup after the first rebo
|
||||

|
||||
|
||||
|
||||
::: warning
|
||||
::: warning
|
||||
|
||||
**MacBookPro11,3 Note**: When booting macOS Monterey, you'll need to boot into safe mode if acceleration patches are not installed yet. [Otherwise you'll hit a black screen due to missing NVIDIA drivers.](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/522) Safe Mode can be entered by holding Shift+Enter when selecting macOS Monterey in OCLP's Boot Menu.
|
||||
|
||||
|
||||
@@ -53,14 +53,6 @@ Post Install Volume Patches, sometimes also called root patches, are patches tha
|
||||
|
||||
OCLP v0.4.4 and higher include an autopatcher, which will automatically root patch your system but **only if the USB install media was created within OCLP.**
|
||||
|
||||
::: details Note for Mac Pros when swapping a GPU from non-metal to Metal
|
||||
|
||||
If you finished installing Monterey with the original card installed (to see bootpicker for example) and swapped your GPU to a Metal supported one, you may notice that you're missing acceleration. To fix this, open OCLP and revert root patches to get your Metal-supported GPU work again.
|
||||
|
||||
Alternatively, you can remove "AutoPkg-Assets.pkg" from /Library/Packages on the USB drive before proceeding with the installation. To see the folder, enable hidden files with `Command` + `Shift` + `.`
|
||||
:::
|
||||
|
||||
|
||||
Users with OCLP v0.4.4 or higher 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.
|
||||
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ Here are some common errors users may experience while using this patcher:
|
||||
* [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)
|
||||
* [No acceleration after a Metal GPU swap on Mac Pro](#no-acceleration-after-a-metal-gpu-swap-on-mac-pro)
|
||||
|
||||
|
||||
## Stuck on `This version of Mac OS X is not supported on this platform`
|
||||
@@ -142,3 +143,12 @@ Because of this, we recommend placing a USB 2.0/3.0 hub between your devices and
|
||||
A common area for systems to get "stuck", namely for units that are missing the `AES` CPU instruction/older mobile hardware. During this stange a lot of heavy cryptography is performed, which can make systems appear to be stuck when in reality they are working quite hard to finish up the installation.
|
||||
|
||||
Because this step can take a few hours or more depending on drive speeds, be patient at this stage and do not manually reboot your machine as this will break the installation and require you to reinstall. If you think your system has stalled, press the Caps Lock key. If the light turns on, your system is busy.
|
||||
|
||||
## No acceleration after a Metal GPU swap on Mac Pro
|
||||
|
||||
If you finished installing Monterey with the original card installed (to see bootpicker for example) and swapped your GPU to a Metal supported one, you may notice that you're missing acceleration. To fix this, open OCLP and revert root patches to get your Metal-supported GPU work again.
|
||||
|
||||
Alternatively, you can remove "AutoPkg-Assets.pkg" from /Library/Packages on the USB drive before proceeding with the installation. To see the folder, enable hidden files with `Command` + `Shift` + `.`
|
||||
|
||||
The reason for this is that the autopatcher will assume you will be using the original card and therefore does non-metal patching, which includes removing some drivers for other cards. This causes Metal cards to not accelerate when swapped.
|
||||
|
||||
|
||||
BIN
images/Unflashed-Boot-1.png
Normal file
BIN
images/Unflashed-Boot-1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 164 KiB |
BIN
images/Unflashed-Boot-2.png
Normal file
BIN
images/Unflashed-Boot-2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 170 KiB |
BIN
images/Unflashed-Boot-3.png
Normal file
BIN
images/Unflashed-Boot-3.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 172 KiB |
@@ -12,7 +12,7 @@ from data import os_data
|
||||
class Constants:
|
||||
def __init__(self):
|
||||
# Patcher Versioning
|
||||
self.patcher_version = "0.4.6" # OpenCore-Legacy-Patcher
|
||||
self.patcher_version = "0.4.7" # OpenCore-Legacy-Patcher
|
||||
self.patcher_support_pkg_version = "0.5.1" # PatcherSupportPkg
|
||||
self.url_patcher_support_pkg = "https://github.com/dortania/PatcherSupportPkg/releases/download/"
|
||||
self.nightly_url_patcher_support_pkg = "https://nightly.link/dortania/PatcherSupportPkg/workflows/build/master/"
|
||||
|
||||
@@ -18,18 +18,26 @@ class global_settings:
|
||||
def generate_settings_file(self):
|
||||
if Path(self.global_settings_plist).exists():
|
||||
return
|
||||
plistlib.dump({"Developed by Dortania": True,}, Path(self.global_settings_plist).open("wb"))
|
||||
try:
|
||||
plistlib.dump({"Developed by Dortania": True,}, Path(self.global_settings_plist).open("wb"))
|
||||
except PermissionError:
|
||||
print("- Permission error: Unable to write to global settings file")
|
||||
|
||||
def read_property(self, property_name):
|
||||
plist = plistlib.load(Path(self.global_settings_plist).open("rb"))
|
||||
if property_name in plist:
|
||||
return plist[property_name]
|
||||
if Path(self.global_settings_plist).exists():
|
||||
plist = plistlib.load(Path(self.global_settings_plist).open("rb"))
|
||||
if property_name in plist:
|
||||
return plist[property_name]
|
||||
return None
|
||||
|
||||
def write_property(self, property_name, property_value):
|
||||
plist = plistlib.load(Path(self.global_settings_plist).open("rb"))
|
||||
plist[property_name] = property_value
|
||||
plistlib.dump(plist, Path(self.global_settings_plist).open("wb"))
|
||||
if Path(self.global_settings_plist).exists():
|
||||
plist = plistlib.load(Path(self.global_settings_plist).open("rb"))
|
||||
plist[property_name] = property_value
|
||||
try:
|
||||
plistlib.dump(plist, Path(self.global_settings_plist).open("wb"))
|
||||
except PermissionError:
|
||||
print("- Failed to write to global settings file")
|
||||
|
||||
|
||||
def convert_defaults_to_global_settings(self):
|
||||
@@ -41,7 +49,14 @@ class global_settings:
|
||||
# merge defaults with global settings
|
||||
global_settings_plist = plistlib.load(Path(self.global_settings_plist).open("rb"))
|
||||
global_settings_plist.update(defaults_plist)
|
||||
plistlib.dump(global_settings_plist, Path(self.global_settings_plist).open("wb"))
|
||||
try:
|
||||
plistlib.dump(global_settings_plist, Path(self.global_settings_plist).open("wb"))
|
||||
except PermissionError:
|
||||
print("- Permission error: Unable to write to global settings file")
|
||||
return
|
||||
|
||||
# delete defaults plist
|
||||
Path(defaults_path).unlink()
|
||||
try:
|
||||
Path(defaults_path).unlink()
|
||||
except PermissionError:
|
||||
print("- Permission error: Unable to delete defaults plist")
|
||||
@@ -68,7 +68,6 @@ class detect_root_patch:
|
||||
self.kepler_gpu = True
|
||||
self.supports_metal = True
|
||||
elif gpu.arch in [
|
||||
device_probe.NVIDIA.Archs.Tesla,
|
||||
device_probe.NVIDIA.Archs.Fermi,
|
||||
device_probe.NVIDIA.Archs.Kepler,
|
||||
device_probe.NVIDIA.Archs.Maxwell,
|
||||
|
||||
Reference in New Issue
Block a user