Compare commits

...

87 Commits
2.0.2 ... 2.1.2

Author SHA1 Message Date
Mykola Grymalyuk
e94f6ac63d Merge branch 'main' of https://github.com/dortania/OpenCore-Legacy-Patcher 2024-11-06 10:18:51 -07:00
Mykola Grymalyuk
5e4b124b2a defaults.py: Implement additional error handling for 2.1.0 bug 2024-11-06 10:18:17 -07:00
neon ball
67df72290f Add update disabling locations for troubleshooting 2024-11-06 03:54:30 +02:00
neon ball
ab740371c8 Unify OS version image sizes 2024-11-03 11:31:56 +02:00
neon ball
d508e8e9f9 Adjust image sizes 2024-11-03 10:57:18 +02:00
neon ball
39c03e3f8b Small fix 2024-11-03 10:42:14 +02:00
neon ball
94f77c20a0 Add explainer about Spotlight indexing slowness 2024-11-03 10:40:10 +02:00
neon ball
2dc9961ffe Add FAT partition note about booting Windows 2024-11-03 10:18:11 +02:00
neon ball
24bc4432ab Small edit 2024-11-03 03:06:44 +02:00
Mykola Grymalyuk
2a578734b9 gui_settings.py: Fix typing for boolean values 2024-11-02 18:19:43 -06:00
neon ball
bb56544182 Add troubleshooting step for greyed out buttons in disk selection 2024-11-03 01:04:56 +02:00
neon ball
70e62c946a Change text location 2024-11-02 12:26:12 +02:00
neon ball
d24eb642ce Small edit 2024-11-02 12:23:57 +02:00
neon ball
81fee375a1 Fix link 2024-11-02 12:20:22 +02:00
neon ball
581c7fcb4e Change FeatureUnlock/mediaanalysisd explainer 2024-11-02 12:17:26 +02:00
neon ball
4939c1dc0f Remove mention of default settings reset as outdated information 2024-11-02 12:01:28 +02:00
neon ball
f635c21f29 Slight edits 2024-11-02 11:47:51 +02:00
neon ball
ed0e3ff66a Slight rewording 2024-11-02 11:35:59 +02:00
neon ball
7ac83d8dd6 Add note about manual config edits being not accounted for 2024-11-02 11:27:02 +02:00
neon ball
b7bca45910 Change to inform about new setting save feature 2024-11-02 11:17:53 +02:00
Mykola Grymalyuk
737aed5635 gui_settings.py: Add error handling for invalid value 2024-10-31 16:03:44 -06:00
Mykola Grymalyuk
868cfa62c1 Sync PatcherSupportPkg 2024-10-31 15:55:31 -06:00
Mykola Grymalyuk
b561a35ca9 products.py: Better handle Apple Silicon installers 2024-10-31 15:55:19 -06:00
neon ball
5542f10ea1 Ventura repatching note 2024-10-31 21:45:57 +02:00
neon ball
bccf1dc31d Monterey -> macOS 2024-10-31 21:43:27 +02:00
neon ball
b50ddb6e26 Documented Python version 3.10 -> 3.11 2024-10-23 19:03:53 +03:00
neon ball
4f980d7562 Slight changes 2024-10-21 02:12:22 +03:00
neon ball
6780fe307f Manual SIP config under details menu 2024-10-21 02:07:37 +03:00
neon ball
dfcb7fdb0c Add link 2024-10-21 01:58:33 +03:00
neon ball
97d956190e Change title 2024-10-21 01:56:17 +03:00
neon ball
41b9fcb85f Add Metal and Non-Metal explainer 2024-10-21 01:49:03 +03:00
neon ball
4015b8bb25 Align images 2024-10-21 01:26:37 +03:00
neon ball
be155127cf Adjust image sizes 2024-10-21 01:24:03 +03:00
neon ball
203b5cf127 Add link to Time Machine guide and adjust formatting 2024-10-21 01:09:54 +03:00
neon ball
fbec713b43 Adjust image 2024-10-21 01:04:12 +03:00
neon ball
734e14b0cf Adjust image 2024-10-21 00:59:21 +03:00
neon ball
ad1faf2ea2 Adjust images 2024-10-21 00:57:12 +03:00
neon ball
58435188eb Remove duplication 2024-10-21 00:49:45 +03:00
neon ball
0b92e022e9 Add more clarification and adjust images 2024-10-21 00:45:30 +03:00
neon ball
4db2e97662 Add new Sequoia image again because skill issue 2024-10-11 18:51:32 +03:00
neon ball
d1ba89049c Add Sequoia image with better crop 2024-10-11 18:48:51 +03:00
neon ball
33d60f19d0 Fix one image 2024-10-11 18:41:59 +03:00
neon ball
15d4e201f4 Align some images to flow better with the side width 2024-10-11 18:32:08 +03:00
neon ball
af67ec2bbe Adjust image sizes 2024-10-11 18:21:22 +03:00
neon ball
e30434a70e Adjust formatting 2024-10-11 18:15:12 +03:00
neon ball
3a442e67c6 Change order 2024-10-11 18:12:41 +03:00
neon ball
32a98e5b34 Update FAQ.md 2024-10-11 18:11:13 +03:00
neon ball
d9828999eb Fix capitalization 2024-10-10 20:21:15 +03:00
neon ball
07daef6f63 Change title 2024-10-10 20:19:06 +03:00
neon ball
2cccd34870 Adjust sidebar 2024-10-10 20:16:38 +03:00
neon ball
31790190be Adjust sidebar 2024-10-10 20:09:08 +03:00
neon ball
b7ecafb5ec Fix layout 2024-10-10 20:04:03 +03:00
neon ball
4f6e8c4fb8 Change MBA7,x spoof and add note 2024-10-10 20:01:37 +03:00
neon ball
e142702c3d Update titles 2024-10-10 01:17:09 +03:00
neon ball
8b5663c3c7 Rename title 2024-10-10 01:14:08 +03:00
neon ball
7c89ab6ba3 Restructure sidebar 2024-10-10 01:12:25 +03:00
neon ball
80e2aa9447 Some proof read fixes 2024-10-09 02:32:23 +03:00
neon ball
170b00694b Shorten title and move a sentence 2024-10-09 02:22:37 +03:00
neon ball
f5ffdd158a Edit note styling 2024-10-09 02:17:22 +03:00
neon ball
c504c95b50 Add new config.js
Because it just didn't want to go first time
2024-10-09 02:13:47 +03:00
neon ball
9da6c85c98 Add Time Machine guide and reorder sidebar items 2024-10-09 02:12:38 +03:00
Mykola Grymalyuk
6a58ef1dab gui_settings.py: Handle saving values of None 2024-10-05 12:21:34 -06:00
Mykola Grymalyuk
a8f76af6bc GUI: Support saving settings on-model 2024-10-05 11:14:46 -06:00
Mykola Grymalyuk
1ec6b02cd7 Increment build 2024-10-05 10:24:20 -06:00
neon ball
8ff76ba3cd Add macOS downgrade FAQ 2024-10-03 17:32:24 +03:00
neon ball
6742372e91 Remove unnecessary link section 2024-10-03 17:29:01 +03:00
neon ball
65caa6d028 Update UNINSTALL.md 2024-10-03 17:28:20 +03:00
neon ball
31cb5f9367 Fix headline 2024-10-03 17:26:11 +03:00
neon ball
9aacf826f2 Update UNINSTALL.md 2024-10-03 17:24:41 +03:00
neon ball
ca34c57fde Update UPDATE.md 2024-10-03 01:40:37 +03:00
neon ball
49c138bd19 Update UPDATE.md 2024-10-03 01:40:01 +03:00
neon ball
c8db4663ce Fix typo 2024-10-03 01:37:29 +03:00
neon ball
7fcf5fcab4 Make text match image 2024-10-03 01:35:09 +03:00
neon ball
7fcb824dc2 Fix link 2024-10-03 01:33:06 +03:00
neon ball
9455d5357b Center images 2024-10-03 01:32:03 +03:00
neon ball
3a7265e985 Reword 2024-10-03 01:29:20 +03:00
neon ball
03ac2ec155 Add info about updating 2024-10-03 01:28:49 +03:00
neon ball
cfde6978f5 Slight rewordings 2024-10-03 01:24:39 +03:00
neon ball
8ca7a2ebbb Remove random pipe 2024-10-03 01:19:22 +03:00
neon ball
7d50f96cf1 Overhaul UPDATE.md 2024-10-03 01:17:13 +03:00
neon ball
0eb351f270 Update FAQ.md 2024-09-30 23:25:10 +03:00
neon ball
3bfa50950a Add images 2024-09-30 23:18:25 +03:00
neon ball
2fb9fb866f Add sections 2024-09-30 22:52:36 +03:00
neon ball
87b5b49f06 Add a period lol 2024-09-30 22:47:25 +03:00
neon ball
4cc88d18a0 Add FAQ link to start page and other small changes 2024-09-30 22:46:27 +03:00
neon ball
5b332eeac5 Move application requirements to FAQ 2024-09-30 22:43:47 +03:00
neon ball
8f88444ac3 Clarify things 2024-09-30 22:26:53 +03:00
40 changed files with 592 additions and 166 deletions

View File

@@ -1,5 +1,33 @@
# OpenCore Legacy Patcher changelog
## 2.1.2
- Add additional error handling for when building OpenCore errors out
- Prevents broken EFI from being installed to disk
- Add additional error handling for broken settings file from OCLP 2.1.0
- If typing for settings is wrong, app will skip setting it, delete from settings file and use default
- Delete `/Users/Shared/.com.dortania.opencore-legacy-patcher.plist` and restart app to avoid this issue
- Add additional warning about OCLP 2.1.0 bug where certain settings saved incorrectly
- Delete `/Users/Shared/.com.dortania.opencore-legacy-patcher.plist` and restart app if `TypeError: unsupported type: <class 'NoneType'>` error occurs
## 2.1.1
- Resolve boolean GUI settings saving incorrectly as Python's None type
## 2.1.0
- Disable FeatureUnlock by default
- Intended to maintain long term stability
- If features unlocked by FeatureUnlock desired, can be enabled in settings
- Disable mediaanalysisd on Metal 3802-based GPUs
- Intended to maintain long term stability
- If Live Text support desired, can be enabled in settings
- Support for retaining GUI settings when building on-model
- When switching to a different model, model-specific GUI settings will be reset
- Note resetting saved settings not implemented yet
- Delete `/Users/Shared/.com.dortania.opencore-legacy-patcher.plist` and restart app to reset settings
- Resolve macOS 15.1 (24B2083) Apple Silicon installer appearing as download option
- Resolve WhatsApp crashing on 15.1
- Increment binaries:
- PatcherSupportPkg 1.8.4 - release
## 2.0.2
- Fix Nvidia Kepler patches not installing on Monterey
- Fix `iMac7,1` and `iMac8,1` failing to apply root patches on macOS Sequoia

View File

@@ -31,8 +31,8 @@ pip3 install -r requirements.txt
If you have any installation errors, see the following troubleshooting options:
* Use Python 3.10
* Our build server currently uses Python 3.10 for generating binaries used in releases
* Use Python 3.11
* Our build server currently uses Python 3.11 for generating binaries used in releases
* Use .whl snapshots for installing additional dependencies
## Running OpenCore Legacy Patcher

View File

@@ -74,73 +74,58 @@ module.exports = {
},
{
title: 'Setting up',
title: 'How to install',
collapsable: false,
sidebarDepth: 1,
children: [
'INSTALLER',
'BUILD',
]
},
{
title: 'Installation',
collapsable: false,
sidebarDepth: 1,
children: [
'BOOT',
'BUILD',
'BOOT',
'POST-INSTALL',
]
},
{
title: 'macOS Sequoia',
title: 'macOS Support',
collapsable: false,
sidebarDepth: 1,
children: [
'SEQUOIA-DROP',
'SONOMA-DROP',
'VENTURA-DROP',
'MONTEREY-DROP',
]
},
{
title: 'macOS Sonoma',
{
title: 'Application',
collapsable: false,
sidebarDepth: 1,
children: [
'SONOMA-DROP',
'UPDATE',
'UNINSTALL',
'PROCESS',
]
},
{
title: 'macOS Ventura',
{
title: 'Troubleshooting',
collapsable: false,
sidebarDepth: 1,
children: [
'VENTURA-DROP',
'TROUBLESHOOTING',
'ACCEL',
'DEBUG',
]
},
{
title: 'macOS Monterey',
collapsable: false,
sidebarDepth: 1,
children: [
'MONTEREY-DROP',
]
},
},
{
title: 'Misc',
collapsable: false,
sidebarDepth: 1,
children: [
'ACCEL',
'TROUBLESHOOTING',
'DEBUG',
'UPDATE',
'UNINSTALL',
'TIMEMACHINE',
'ICNS',
'WINDOWS',
'UNIVERSALCONTROL',
'PROCESS',
]
},
{

View File

@@ -1,4 +1,4 @@
# Working Around Legacy Acceleration Issues
# Working Around Non-Metal Issues
* [Broken Background Blurs](#broken-background-blurs)
* [Downloading older non-Metal Apps](#downloading-older-non-metal-apps)
@@ -46,7 +46,11 @@ Metal is Apple's in-house graphics API that acts as a replacement for OpenGL/Ope
By default with the non-Metal acceleration patches, many background blur menus may act distorted when moving a cursor over it. With 0.4.1 and newer, users can enable a new Beta Blur feature to try and resolve the issue:
![](./images/OCLP-GUI-Settings-Beta-Blur.png)
![]()
<div align="left">
<img src="./images/OCLP-GUI-Settings-Beta-Blur.png" alt="Beta Blur settings" width="600" />
</div>
Do note that enabling beta blurs can be more demanding on slower hardware
## Downloading older non-Metal Apps

View File

@@ -6,7 +6,10 @@ Reboot the machine while holding `Option` to select the EFI Boot entry with the
* This will be the Mac Boot Picker
![](./images/efi-boot.png)
<div align="left">
<img src="./images/efi-boot.png" alt="EFI boot" width="800" />
</div>
::: details Note for Mac Pros/Xserves/iMacs with unflashed GPUs
@@ -27,7 +30,10 @@ Now you'll want to get a list of drive identifiers. To do so, run the following
diskutil list
```
The command should produce a list of drives installed in your system:
![](./images/Unflashed-Boot-1.png)
<div align="left">
<img src="./images/Unflashed-Boot-1.png" alt="Unflashed boot" width="800" />
</div>
Keep track of the drive with the OCLP install. You will need the drive identifer for later.
@@ -37,7 +43,11 @@ Run the following command (Replace X with the drive number):
```sh
diskutil mount diskXs1
```
![](./images/Unflashed-Boot-2.png)
<div align="left">
<img src="./images/Unflashed-Boot-2.png" alt="Unflashed boot 2" width="800" />
</div>
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:
@@ -45,7 +55,10 @@ Now you'll want to use the `bless` command to set the default boot device:
bless --mount /Volumes/EFI --setBoot --file /Volumes/EFI/System/Library/CoreServices/boot.efi
```
Once the command is run, it should produce no output.
![](./images/Unflashed-Boot-3.png)
<div align="left">
<img src="./images/Unflashed-Boot-3.png" alt="Unflashed boot 3" width="800" />
</div>
If the command produces an output, ensure that you've typed it in correctly.
@@ -56,15 +69,20 @@ Now that you've loaded OpenCore, "select Install macOS":
* This will be the OpenCore Picker
![](./images/oc-boot.png)
<div align="left">
<img src="./images/oc-boot.png" alt="OpenCore boot" width="800" />
</div>
You will soon reach the installer screen! If you enabled verbose mode when building OCLP, a lot of text will run across the screen. From there, it's just like any normal macOS install. For an example of how the boot process looks, see the following video:
* [OpenCore Legacy Patcher Boot Process](https://www.youtube.com/watch?v=AN3zsbQV_n4)
If your Mac is looping back into the beginning of the setup after the first reboot, turn it off, start it again and hold `Option`. This time, select the option with a grey hard disk icon, it can say "macOS Installer" or the name you gave the disk during the installer process. Keep repeating this step after every reboot if necessary.
If your Mac is looping back into the beginning of the setup after the first reboot, turn it off, start it again and hold Option. This time (after choosing `EFI Boot` first) select the option with a grey hard disk icon in the OpenCore picker. It can either say `macOS Installer` or the name you gave the disk during the installer process. Keep repeating this step after every reboot if necessary.
![](./images/oclp-stuck-firstreboot.png)
<div align="left">
<img src="./images/oclp-stuck-firstreboot.png" alt="Stuck on first reboot" width="800" />
</div>
::: warning
@@ -77,7 +95,7 @@ If your Mac is looping back into the beginning of the setup after the first rebo
**T1 Macs**: When installing macOS Sonoma or newer on a T1 system, full disk wipe will remove T1 functionality (touchbar etc). Therefore when installing, only wipe the volume containing the operating system.
<div align="center">
<div align="left">
<img src="./images/wipe-volume.png" alt="WipeVolume" width="800" />
</div>

View File

@@ -11,8 +11,8 @@ Next, run the `OpenCore-Patcher.app`
Here we'll select Build and Install OpenCore and start building:
<div align="center">
<img src="./images/OCLP-GUI-Main-Menu.png" alt="OCLP GUI Main Menu" width="800" />
<div align="left">
<img src="./images/OCLP-GUI-Main-Menu.png" alt="OCLP GUI Main Menu" width="700" />
</div>
::: warning
@@ -23,7 +23,8 @@ If you're building OpenCore for a different model than you're currently running,
| Start Building | Finished Building |
| :--- | :--- |
| ![](./images/OCLP-GUI-Build-Start.png) | ![OCLP GUI Build Finished](./images/OCLP-GUI-Build-Finished.png) |
| <img src="./images/OCLP-GUI-Build-Start.png" alt="Build start" width="600" /> | <img src="./images/OCLP-GUI-Build-Finished.png" alt="Build finished" width="600" /> |
Once it finishes building, you'll want to select the Install OpenCore button:
@@ -32,6 +33,8 @@ Once it finishes building, you'll want to select the Install OpenCore button:
| Select Drive | Select Partition |
| :--- | :--- |
| ![](./images/OCLP-GUI-EFI-Select-Disk.png) | ![](./images/OCLP-GUI-EFI-Select-Partition.png) |
| <img src="./images/OCLP-GUI-EFI-Select-Disk.png" alt="Select disk" width="600" /> | <img src="./images/OCLP-GUI-EFI-Select-Partition.png" alt="Select partition" width="600" /> |
# Once finished, head to [Booting OpenCore and macOS](./BOOT.md)

View File

@@ -10,7 +10,10 @@ The easiest way to debug yourself is via Patcher Settings. Here there are many d
* "Enable OpenCore DEBUG"
* "Enable Kext DEBUG"
![](./images/ocdebugimage.png)
<div align="left">
<img src="./images/ocdebugimage.png" alt="OCLP debug" width="600" />
</div>
When you've enabled these 3 options, rebuild OpenCore and install to your drive. This will provide much greater debug information as well as write logs to the EFI Partition.
@@ -18,11 +21,15 @@ When you've enabled these 3 options, rebuild OpenCore and install to your drive.
With "Enable OpenCore DEBUG" set, on every boot there will be a .txt file generated on the EFI Partition. To grab these logs, [download and run MountEFI](https://github.com/corpnewt/MountEFI):
![](./images/mountefi.png)
<div align="left">
<img src="./images/mountefi.png" alt="Mount EFI" width="600" />
</div>
Once you've mounted the EFI Partition of the drive you have macOS on, you should see some nice logs:
![](./images/logs-efi.png)
<div align="left">
<img src="./images/logs-efi.png" alt="Mount EFI" width="800" />
</div>
## Obtaining Kernel logs from macOS

View File

@@ -1,24 +1,57 @@
# FAQ
* [Application requirements](#application-requirements)
* [How do I make sure I'm all up to date?](#how-do-i-make-sure-i-m-all-up-to-date)
* [Why are the settings "not saving"?](#why-are-the-settings-not-saving)
* [Can I use the same USB install media as a universal installer?](#can-i-use-the-same-usb-install-media-as-a-universal-installer)
* [Can I use OTA updates?](#can-i-use-ota-updates)
* [Can I update to macOS betas?](#can-i-update-to-macos-betas)
* [Can I use automatic updates?](#can-i-use-automatic-updates)
* [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)
* [Crashing in random places](#crashing-in-random-places)
* [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)
* [Where is Apple Intelligence?](#where-is-apple-intelligence)
## 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 Sequoia 15.x**.
* Other versions may work, albeit in a broken state. No support is provided for any version outside of the above.
## How do I make sure I'm all up to date?
Updating the OCLP installation is a three step process, first the application, second the bootloader and finally root patches.
Refer to [Updating OpenCore and patches](https://dortania.github.io/OpenCore-Legacy-Patcher/UPDATE.html) for how to update the application and patches.
## Why are the settings "not saving"?
Starting with OpenCore Legacy Patcher 2.1.0, the status of settings in the GUI will now be saved under ```/Users/Shared/.com.dortania.opencore-legacy-patcher.plist```. The application will utilize this file to keep track of and retain settings for relaunches and application updates, no longer requiring a reconfiguring each time. The user interface will reset if any model other than "Host Model" is selected, as building for a different model will require different settings.
In case of issues, delete the file and restart the application to revert the GUI to default settings, then rebuild OpenCore with newly configured settings.
::: warning
Only settings made within OCLP are accounted for, modifications made directly into the ```config.plist``` file in the EFI partition outside of OCLP **will continue to reset**. Additionally, modifying ```config.plist``` manually may lead to a state where settings showed in the GUI are not in sync compared to settings in use, due to the application not knowing whether the file has been manually modified.
:::
::: details Explainer for older versions (click to expand)
OpenCore Legacy Patcher is a config build tool and as such the user interface always reverts to safe defaults, the user interface therefore **does not** reflect the status of settings. Settings are accounted for and saved by the OpenCore building process and you will always have to build OpenCore again after settings change.
Settings are saved to a config.plist file inside your EFI partition.
In SIP settings, booted SIP is reported in text form e.g. "0x803" but the checkboxes **do not** reflect the applied settings. Refer to [SIP Settings](https://dortania.github.io/OpenCore-Legacy-Patcher/POST-INSTALL.html#sip-settings) for more information.
:::
## Can I use the same USB install media as a universal installer?
OpenCore configurations are device specific, due to different quirks needed for different systems. If you are building OpenCore for a different system that you're running, you will have to select the targeted model from Settings before building OpenCore on the USB media.
@@ -31,31 +64,70 @@ You can. However it is extremely recommended to use USB drive for major OS upgra
General updates are usually fine, though it is always a good idea to wait few days to see whether patches break and have to be fixed.
## Can I use automatic updates?
It is extremely recommended to disable automatic updates (even downloading) when using OCLP, as Apple has recently changed the way automatic updates work. You can still manually initiate an update when you're ready to do so. For a related "System version mismatch" error while root patching, 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 troubleshooting.
### Disabling updates
**macOS Ventura and newer:**
System Settings -> General -> Software Update -> (i) button next to Automatic Updates -> Disable "Download new updates when available".
**macOS Big Sur and Monterey:**
System Preferences -> Software Update -> Advanced -> Disable "Download new updates when available".
## 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.
## Can I use automatic updates?
It is extremely recommended to disable automatic updates (even downloading) when using OCLP, as Apple has recently changed the way automatic updates work. You can still manually initiate an update when you're ready to do so.
## Can I downgrade macOS while keeping data?
For a related "System version mismatch" error while root patching, 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 troubleshooting.
macOS doesn't allow direct downgrades, as such you will have to wipe the disk in order to revert. Backup your data beforehand either via Time Machine, ASR or some other solution.
## Why is my system slow?
This can mean many things. Firstly, newer operating systems are harder to run and can appear more slow.
This can mean many things. Firstly, newer operating systems are harder to run and can appear more slow.
Additionally if your macOS installation is recent, Spotlight starts creating a full disk index which can cause high CPU load, high temps and general slowness. It's recommended to keep the system running for few hours, once Spotlight has indexed the load will ease. A way to check whether it's caused by Spotlight is to open Activity Monitor, choosing "All Processes" from the "View" menu item to, then sorting by the CPU value to see if a process called ```mds_stores``` is using a lot of CPU resources.
However, if your system is being **really** slow and you have no transparency in Dock and menubar, this typically indicates that root patches are not installed and as such there is no acceleration. Make sure to install root patches to get proper drivers and functionality. Refer to [Applying post install volume patches](https://dortania.github.io/OpenCore-Legacy-Patcher/POST-INSTALL.html#applying-post-install-volume-patches) and the [Troubleshooting](https://dortania.github.io/OpenCore-Legacy-Patcher/TROUBLESHOOTING.html) section for more information.
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.
## Crashing in random places
## What is Metal and Non-Metal?
There are two rather common things that can cause weird crashing. First is a process called "mediaanalysisd" on 3802-based systems* and secondly FeatureUnlock. You can try disabling these settings in OCLP to try and gain higher stability.
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.
Be advised that by disabling FeatureUnlock, you will lose some macOS functionality. The features enabled by FeatureUnlock are listed [here](https://github.com/acidanthera/FeatureUnlock).
GPUs that support Metal are as follows:
* Intel HD 4000 series (Ivy Bridge/3rd gen) and newer
* AMD HD 7000 series and newer (GCN 1)
* NVIDIA GTX 600 and 700 series (Kepler)
Everything older than mentioned are Non-Metal and therefore only support OpenGL. A great rule of thumb is that Macs older than 2012 are non-Metal, with the exception of systems with upgradable GPUs. Non-Metal also includes NVIDIA Maxwell (GTX 900 series) and Pascal (GTX 1000 series) when used with patched Web Drivers on newer than macOS High Sierra.
Refer to [Supported models](https://dortania.github.io/OpenCore-Legacy-Patcher/MODELS.html) and [Working Around Non-Metal Issues](https://dortania.github.io/OpenCore-Legacy-Patcher/ACCEL.html) pages for more information.
Due to deprecation of OpenGL, many newer applications may require Metal rendering and as such will fail to run on systems with Non-Metal GPUs.
## 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.
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 | mediaanalysisd |
| :--- | :--- |
| ![FeatureUnlock](./images/OCLP_FeatureUnlock_Setting.png) | ![mediaanalysisd](./images/OCLP_Disable_mediaanalysisd_Setting.png) |
::: details *3802 systems list (click to expand)
*3802 systems include:
* NVIDIA
* Kepler (600-800 series GPUs)
* Intel
@@ -64,6 +136,7 @@ Be advised that by disabling FeatureUnlock, you will lose some macOS functionali
These GPUs are typically met in systems from 2012-2015.
:::
## Why isn't iPhone Mirroring working?

View File

@@ -1,10 +1,10 @@
# Download and build macOS Installers
# Creating macOS Installers
This document is centered around downloading and writing the macOS installer to a USB drive. If you're already familiar with how to do this, you can skip this section.
* Note: A 32GB drive is recommended, later versions of Sonoma and Sequoia cannot fit installer and patches to a 16GB disk. 16GB drive may work for older versions.
## Creating the installer
## Downloading the installer
To start off, you'll want to grab the app:
@@ -20,13 +20,17 @@ For this example, we'll assume you'll need an installer. Select the "Download ma
| :--- | :--- | --- |
| ![OCLP GUI Main Menu](./images/OCLP-GUI-Main-Menu.png) | ![OCLP GUI Installer Create Installer Menu](./images/OCLP-GUI-Create-Installer-Menu.png) | ![OCLP GUI Installer Download Listed Products](./images/OCLP-GUI-Installer-Download-Listed-Products.png) |
## Creating the installer
Once the download is finished, you can proceed to write the installer onto a USB drive.
* Note: The entire USB drive will be formatted
| Select Downloaded Installer | Select disk to format |
| :--- | :--- |
| ![](./images/OCLP-GUI-Installer-Select-Local-Installer.png) | ![](./images/OCLP-GUI-Installer-Format-USB.png) |
| <img src="./images/OCLP-GUI-Installer-Select-Local-Installer.png" alt="Select local installer" width="600" /> | <img src="./images/OCLP-GUI-Installer-Format-USB.png" alt="Select disk to format" width="600" /> |
Now the patcher will start the installer flashing!

View File

@@ -1,14 +1,5 @@
# 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 Sequoia 15.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.
@@ -32,7 +23,7 @@ The below tables can be used to reference issues with a particular model, and se
### MacBook
| Model Name | Identifier | Tagged Issues |
| Model Name | Identifier | Additional info |
| :--- | :--- | :--- |
| MacBook (13-inch, Aluminum, Late 2008) | `MacBook5,1` | - [non-Metal GPU (macOS 11+)](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108)<br>- [USB 1.1 (macOS 13+)](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/1021)|
| MacBook (13-inch, Early 2009)<br>MacBook (13-inch, Mid 2009) | `MacBook5,2` | - [non-Metal GPU (macOS 11+)](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108)<br>- [USB 1.1 (macOS 13+)](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/1021)<br>- Trackpad gestures are partially broken |
@@ -40,11 +31,11 @@ The below tables can be used to reference issues with a particular model, and se
| MacBook (13-inch, Mid 2010) | `MacBook7,1` | ^^ |
| MacBook (Retina, 12-inch, Early 2015) | `MacBook8,1` | - [Legacy Metal (macOS 13+)](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/1008) |
| MacBook (Retina, 12-inch, Early 2016) | `MacBook9,1` | ^^ |
| MacBook (Retina, 12-inch, 2017) | `MacBook10,1` | - Supported by OpenCore Legacy Patcher |
| MacBook (Retina, 12-inch, 2017) | `MacBook10,1` | - Native graphics support |
### MacBook Air
| Model Name | Identifier | Tagged Issues |
| Model Name | Identifier | Additional info |
| :--- | :--- | :--- |
| MacBook Air (13-inch, Late 2008)<br>MacBook Air (13-inch, Mid 2009) | `MacBookAir2,1` | - [non-Metal GPU (macOS 11+)](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108)<br>- [USB 1.1 (macOS 13+)](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/1021)|
| MacBook Air (11-inch, Late 2010) | `MacBookAir3,1` | ^^ |
@@ -63,7 +54,7 @@ The below tables can be used to reference issues with a particular model, and se
### MacBook Pro
| Model Name | Identifier | Tagged Issues |
| Model Name | Identifier | Additional info |
| :--- | :--- | :--- |
| MacBook Pro (15-inch, Early 2008)<br>MacBook Pro (17-inch, Early 2008) | `MacBookPro4,1` | - [non-Metal GPU (macOS 11+)](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108)<br>- [USB 1.1 (macOS 13+)](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/1021)|
| MacBook Pro (15-inch, Late 2008)<br>MacBook Pro (15-inch, Early 2009) | `MacBookPro5,1` | ^^ |
@@ -87,7 +78,7 @@ The below tables can be used to reference issues with a particular model, and se
| MacBook Pro (13-inch, 2016, 2 Thunderbolt 3 ports) | `MacBookPro13,1` | ^^ |
| MacBook Pro (13-inch, 2016, 4 Thunderbolt 3 ports) | `MacBookPro13,2` | ^^ |
| MacBook Pro (15-inch, 2016) | `MacBookPro13,3` | ^^ |
| MacBook Pro (13-inch, 2017, 2 Thunderbolt 3 ports) | `MacBookPro14,1` | - Supported by OpenCore Legacy Patcher |
| MacBook Pro (13-inch, 2017, 2 Thunderbolt 3 ports) | `MacBookPro14,1` | - Native graphics support |
| MacBook Pro (13-inch, 2017, 4 Thunderbolt 3 ports) | `MacBookPro14,2` | ^^ |
| MacBook Pro (15-inch, 2017) | `MacBookPro14,3` | - [Legacy Metal (macOS 14+)](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/1008) |
| MacBook Pro (13-inch, 2018, 4 Thunderbolt 3 ports)<br>MacBook Pro (13-inch, 2019, 4 Thunderbolt 3 ports) | `MacBookPro15,2` | - Supported by Apple |
@@ -99,7 +90,7 @@ The below tables can be used to reference issues with a particular model, and se
### Mac mini
| Model Name | Identifier | Tagged Issues |
| Model Name | Identifier | Additional info |
| :--- | :--- | :--- |
| Mac mini (Early 2009) | `Macmini3,1` | - [non-Metal GPU (macOS 11+)](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108)<br>- [USB 1.1 (macOS 13+)](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/1021) |
| Mac mini (Mid 2010) | `Macmini4,1` | ^^ |
@@ -109,7 +100,7 @@ The below tables can be used to reference issues with a particular model, and se
| Mac mini (Late 2018) | `Macmini8,1` | - Supported by Apple |
### iMac
| Model Name | Identifier | Tagged Issues |
| Model Name | Identifier | Additional info |
| :--- | :--- | :--- |
| iMac (20-inch, Mid 2007)<br>iMac (24-inch, Mid 2007) | `iMac7,1` | - [Requires SSE4.1 CPU](https://lowendmac.com/2018/penryn-t9300-9500-cpu-upgrades-for-the-2007-imac/)<br>- [non-Metal GPU (macOS 11+)](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108)<br>- [USB 1.1 (macOS 13+)](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/1021)<br>- Remove stock Bluetooth to prevent panics |
| iMac (20-inch, Early 2008)<br>iMac (24-inch, Early 2008) | `iMac8,1` | - [non-Metal GPU (macOS 11+)](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108)<br>- [USB 1.1 (macOS 13+)](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/1021) |
@@ -130,7 +121,7 @@ The below tables can be used to reference issues with a particular model, and se
| iMac (21.5-inch, Late 2015) | `iMac16,1` | ^^ |
| iMac (Retina 4K, 21.5-inch, Late 2015) | `iMac16,2` | ^^ |
| iMac (Retina 5K, 27-inch, Late 2015) | `iMac17,1` | ^^ |
| iMac (21.5-inch, 2017) | `iMac18,1` | - Supported by OpenCore Legacy Patcher |
| iMac (21.5-inch, 2017) | `iMac18,1` | - Native graphics support |
| iMac (Retina 4K, 21.5-inch, 2017) | `iMac18,2` | ^^ |
| iMac (Retina 5K, 27-inch, 2017) | `iMac18,3` | ^^ |
| iMac (Retina 5K, 27-inch, 2019) | `iMac19,1` | - Supported by Apple |
@@ -140,7 +131,7 @@ The below tables can be used to reference issues with a particular model, and se
### Mac Pro
| Model Name | Identifier | Tagged Issues |
| Model Name | Identifier | Additional info |
| :--- | :--- | :--- |
| Mac Pro (Early 2008) | `MacPro3,1` | - [Recommend upgrade to Metal GPU](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/1008)<br>- [non-Metal GPU (macOS 11+)](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108)<br>- [USB 1.1 (macOS 13+)](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/1021)<br>- Remove stock Bluetooth to prevent panics |
| Mac Pro (Early 2009) | `MacPro4,1` | - [Recommend upgrade to Metal GPU](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/1008)<br>- [non-Metal GPU (macOS 11+)](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108)<br>- [USB 1.1 (macOS 13+)](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/1021) |
@@ -150,7 +141,7 @@ The below tables can be used to reference issues with a particular model, and se
### Xserve
| Model Name | Identifier | Tagged Issues |
| Model Name | Identifier | Additional info |
| :--- | :--- | :--- |
| Xserve (Early 2008) | `Xserve2,1` | - Recommend upgrade to Metal GPU<br>- [non-Metal GPU (macOS 11+)](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108)<br>- [USB 1.1 (macOS 13+)](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/1021)
| Xserve (Early 2009) | `Xserve3,1` | ^^ |

View File

@@ -1,4 +1,4 @@
# macOS Monterey Support
# macOS Monterey
![](./images/macos-monterey.png)

View File

@@ -22,7 +22,7 @@ And voila! No more USB drive required.
To do this, run the OpenCore Patcher and head to Patcher Settings, then uncheck "Show OpenCore Bootpicker" on the Build tab:
<div align="center">
<div align="left">
<img src="./images/OCLP-GUI-Settings-ShowPicker.png" alt="GUI Settings ShowPicker" width="600" />
</div>
@@ -31,7 +31,9 @@ Once you've toggled it off, build your OpenCore EFI once again and install to yo
## SIP settings
SIP, or System Integrity Protection, needs to be lowered on systems where root patching is required to patch data on disk. This will vary between OS versions and the model in question. OCLP by default will determine the proper SIP options for the OS version and Mac model, in most cases the user has no need to touch these settings. However, this part explains how the SIP settings work in OCLP, where lowered SIP is needed and where full SIP could be enabled.
SIP, or System Integrity Protection, needs to be lowered on systems where root patching is required to patch data on disk. This will vary between OS versions and the model in question.
OCLP by default will determine the proper SIP options for the OS version and Mac model, in most cases the user has no need to touch these settings.
:::warning
@@ -39,13 +41,17 @@ If you're unsure whether you should change the SIP settings, leave them as-is. S
:::
SIP settings can be accessed from the Security tab shown in the images. To change SIP settings, make the changes here, return in main menu and rebuild OpenCore using the first option.
| SIP Enabled | SIP Lowered (Root Patching) | SIP Disabled |
| SIP Enabled | SIP Lowered (OCLP default) | SIP Disabled |
| :--- | :--- | :--- |
| ![](./images/OCLP-GUI-Settings-SIP-Enabled.png) | ![](./images/OCLP-GUI-Settings-SIP-Root-Patch.png) | ![](./images/OCLP-GUI-Settings-SIP-Disabled.png) |
The guide in the dropdown below explains how the SIP settings work in OCLP, where lowered SIP is needed and where full SIP could be enabled.
::: details Configuring SIP manually (click to expand)
SIP settings can be accessed from the Security tab shown in the images. To change SIP settings, make the changes here, return in main menu and rebuild OpenCore using the first option.
In the cases where SIP can be enabled, manually enabling it is needed.
Easiest way to check whether you can fully enable SIP is the "Post Install Root Patch" section, if that section tells your system doesn't need patches (or you don't install the patches e.g. in case you don't need WiFi on a Mac Pro with upgraded GPU running Monterey) then it is safe to assume full SIP can be enabled.
@@ -65,22 +71,26 @@ Pre-2012 systems, also known as "non-Metal", as well as NVIDIA Kepler and Intel
All Metal capable systems from 2012 onward (incl. NVIDIA Kepler and Intel HD 4000) as well as Mac Pros with upgraded GPU can run with full SIP enabled.
Non-Metal systems still require lowered SIP.
:::
## Applying Post Install Volume Patches
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.** 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.
:::warning
If you need to use Migration Assistant to bring over data to your new macOS install, it is **highly recommended** to avoid restoring from inside Setup Assistant and waiting to install root patches until after the transfer is complete. If root patches were automatically installed, you can use the options available in the OCLP app to remove them.
Using Migration Assistant while patches are installed can lead to an unbootable system, requiring a reinstall of macOS.
For more information on how to restore a Time Machine backup, [refer to the guide here.](https://dortania.github.io/OpenCore-Legacy-Patcher/TIMEMACHINE.html)
:::
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.** 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.
| Automatic install prompt | Status |
| :--- | :--- |
| ![](./images/OCLP-GUI-root-patch-update.png) | ![](./images/OCLP-GUI-Root-Patch-Status.png) |

View File

@@ -1,4 +1,4 @@
# macOS Sequoia Support
# macOS Sequoia
![](./images/macos-sequoia.png)

View File

@@ -1,4 +1,4 @@
# macOS Sonoma Support
# macOS Sonoma
![](./images/sonoma.png)

View File

@@ -7,8 +7,6 @@ OpenCore is a sophisticated boot loader used to inject and patch data in memory,
## How do I get started?
1. The first step of ensuring whether your model is supported is by checking the [Supported Models](./MODELS.md) page.
2. [Download and build macOS Installer](./INSTALLER.md)
3. [Run the `OpenCore-Patcher.app`](./BUILD.md)
4. [Reboot and boot OpenCore](./BOOT.md)
1. Read the [FAQ](./FAQ.md) for application requirements and other information.
2. Check that your model is supported from the [Supported Models](./MODELS.md) page.
3. Once you've verified your model is supported, you can jump into the process in [Download and build macOS Installer](./INSTALLER.md)

25
docs/TIMEMACHINE.md Normal file
View File

@@ -0,0 +1,25 @@
# Restoring Time Machine backup
OCLP automatically installs root patches when installing from the USB drive for the first time to ensure smooth operation of the first time settings.
However, as an unfortunate side effect, restoring via Time Machine breaks while root patches are installed and restoring a root patched machine requires a few tricks to avoid a kernel panic.
To ensure a smooth Time Machine restore, follow the steps listed under:
1. In first time settings (Setup Assistant), do not restore the backup. Instead do all settings like you would want to start fresh.
2. Once you reach desktop, open the OCLP application and revert root patches in the Post Install Volume Patches section.
3. Restart your machine.
* Note: Your Mac will feel slow due to lack of graphics drivers and resolution may be wrong. WiFi will also be unavailable in most cases, if your backup is on a network drive, use Ethernet.
4. Login and start Migration Assistant.
5. Go through the restoring process.
6. Once finished, go into the OCLP app and reinstall the root patches.
Now you should be fully restored with Time Machine and also running with all patches.
::: warning Sequoia Note
Time Machine restoring seems to be currently broken on Sequoia even after uninstalling root patches, leading to a loop with "Migration Finished" window. Currently the only way is to restore on older OS and then upgrade to Sequoia.
:::

View File

@@ -1,10 +1,11 @@
# Troubleshooting
# General troubleshooting
Here are some common errors that users may experience while using this patcher:
* [OpenCore Legacy Patcher not launching](#opencore-legacy-patcher-not-launching)
* ["You don't have permission to save..." error when creating USB installer](#you-don-t-have-permission-to-save-error-when-creating-usb-installer)
* [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)
* [System version mismatch error when root patching](#system-version-mismatch-error-when-root-patching)
@@ -39,8 +40,8 @@ If the application won't launch (e.g. icon will bounce in the Dock), try launchi
In some cases, a following error saying "The bless of the installer disk failed" stating the reason as "You don't have permission to save..." may appear.
<div align="center">
<img src="./images/Error-No-Permission-To-Save.png" alt="NoPermissionToSave" width="400" />
<div align="left">
<img src="./images/Error-No-Permission-To-Save.png" alt="NoPermissionToSave" width="600" />
</div>
@@ -65,6 +66,12 @@ Once you've booted OpenCore at least once, your hardware should now auto-boot it
However, if the 🚫 Symbol only appears after the boot process has already started (the bootscreen appears/verbose boot starts), it could mean that your USB drive has failed to pass macOS' integrity checks. To resolve this, create a new installer using a different USB drive (preferably of a different model.)
## Stuck on hard disk selection with greyed out buttons in installer
Switch installer language to English. If the language selector doesn't show up, [reset NVRAM](https://support.apple.com/en-mide/102603) and boot into the installer again.
You can switch back to different language once macOS has installed.
## Cannot boot macOS without the USB
By default, the OpenCore Patcher won't install OpenCore onto the internal drive itself during installs.
@@ -87,6 +94,14 @@ Currently there is a "PurgePendingUpdate" tool available [on the Discord server]
Disabling automatic macOS updates is extremely recommended once recovered, to prevent it from happening again.
**macOS Ventura and newer:**
System Settings -> General -> Software Update -> (i) button next to Automatic Updates -> Disable "Download new updates when available".
**macOS Big Sur and Monterey:**
System Preferences -> Software Update -> Advanced -> Disable "Download new updates when available".
## Stuck on boot after root patching
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)
@@ -188,13 +203,17 @@ Due to Apple dropping NVIDIA Kepler support in macOS Monterey, [MacBookPro11,3's
If you're having trouble with DisplayPort output on Mac Pros, try enabling Minimal Spoofing in Settings -> SMBIOS Settings and rebuild/install OpenCore. This will trick macOS drivers into thinking you have a newer MacPro7,1 and resolve the issue.
![](./images/OCLP-GUI-SMBIOS-Minimal.png)
<div align="left">
<img src="./images/OCLP-GUI-SMBIOS-Minimal.png" alt="GUI SMBIOS minimal" width="800" />
</div>
## Volume Hash Mismatch Error in macOS Monterey
A semi-common popup some users face is the "Volume Hash Mismatch" error:
<p align="center">
<p align="left">
<img src="./images/Hash-Mismatch.png">
</p>
@@ -233,7 +252,7 @@ Because this step can take a few hours or more depending on drive speeds, be pat
## 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.
If you finished installing macOS 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. In macOS Ventura and newer, repatching is needed after reversion.
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` + `.`
@@ -270,8 +289,9 @@ Applicable models include:
| Mac mini | Mid 2011 and older | Macmini3,1 - Macmini5,x | |
| Mac Pro | Mid 2010 and older | MacPro3,1 - MacPro5,1 | |
![](./images/usb11-chart.png)
<div align="left">
<img src="./images/usb11-chart.png" alt="USB1.1 chart" width="800" />
</div>
## No T1 functionality after installing Sonoma or newer

View File

@@ -1,4 +1,28 @@
# Uninstalling OpenCore
# Uninstall
This guide tells you different ways to uninstall OCLP and/or patches.
## Delete everything and revert back to native macOS
Boot a native macOS installer, go to Disk Utility and choose View -> Show All Devices. Wipe the full disk by choosing the top option on the left sidebar and start macOS installation.
[Reset NVRAM](https://support.apple.com/HT204063) afterwards.
## Uninstalling the application
### Version 1.5.0 and newer
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)
### Version 1.4.3 and older.
Navigate to `/Library/Application Support/` and delete the Dortania folder.
## 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
@@ -13,11 +37,9 @@
:::warning
Note that after you remove OpenCore, your Mac will no longer boot and show the "prohibited" symbol. Be ready to install a natively-supported version of macOS before you uninstall OpenCore.
Note that after you remove OpenCore, your Mac will no longer boot and show the "prohibited" symbol. Be prepared to have a bootable USB drive with either OpenCore or natively-supported version of macOS before you uninstall the bootloader.
* This does not apply to native Macs just using OpenCore to achieve features like AirPlay to Mac and Sidecar, but it is still recommended to reinstall macOS after removing OpenCore, if using SMBIOS spoofing to enable Universal Control and other features.
:::
## Uninstalling the application
If you want to remove the application without reinstalling the OS, navigate to `/Library/Application Support/` and delete the Dortania folder.

View File

@@ -3,7 +3,11 @@
Introduced in macOS 12 Monterey, Universal Control is a feature that allows a Mac to control other Macs and/or iPads, share input devices, and share files across them simultaneously. With OpenCore and FeatureUnlock, Universal Control can be unlocked for most unsupported Macs, as long as they meet the technical requirements listed on this page.
* Note: The following page is primarily for tinkerers, no proper support is provided outside of Discord support (see bottom of page).
::: warning Note
These features are not actively tested and may break at any time. The following page is primarily for tinkerers, no proper support is provided outside of Discord support (see bottom of page).
:::
## Enabling Universal Control
@@ -202,7 +206,38 @@ Before we continue, please keep in mind that SMBIOS Spoofing is an advanced feat
### How to spoof
Ventura has dropped more models which includes all of the blacklisted Macs in question, making the procedure slightly different. It is important to follow the guide for the version you're on, failing to do so is likely to cause boot issues.
::: details macOS Sequoia
Firstly run OpenCore Legacy Patcher.
Then go to **Settings** and **SMBIOS** tab, set SMBIOS Spoof Level to **Moderate**. Set SMBIOS Spoof Model **one listed next to your native model in the table for spoofed models below.**
Notice that "Allow native models" and "Allow Native Spoofs" **are NOT** enabled unlike on Monterey, this is on purpose. They are no longer relevant on Sonoma and enabling them will cause boot issues.
| Main Settings view | SMBIOS settings |
| :--- | :--- |
| ![](./images/ventura_uc1.png) | ![](./images/ventura_uc2.png) |
::: details Table for spoofed models (click to expand)
Spoofing to any model with native Sonoma support should work, but these are the earliest Macs natively supported by Sonoma and thus chosen for the sake of simplicity.
**Reminder:** Macs that are not listed on this table work without spoofing, including systems that do not natively support Ventura as long as the other requirements are met, since they aren't blacklisted.
| Mac by name | Native SMBIOS | Spoof SMBIOS |
|-------------|---------------|--------------|
| MacBook Air Early 2015 11" / 13" | MacBookAir7,x | MacBookAir9,1 |
| MacBook Pro Early 2015 13" | MacBookPro12,x | MacBookPro15,2 |
| MacBook Pro Mid 2015 15" | MacBookPro11,4 / 11,5 | MacBookPro15,2 |
| iMac Late 2015 21" | iMac16,x | iMac19,2 |
| Mac mini Late 2014 | Macmini7,x | MacMini8,1 |
| Mac Pro Late 2013 | MacPro6,x | MacPro7,1 |
:::
::: details macOS Sonoma

View File

@@ -1,22 +1,45 @@
# Updating OpenCore and Patches
With OpenCore Legacy Patcher, there's generally very little reason for users to update the OpenCore installation on their machine unless you feel there's a benefit with new versions for your setup, e.g. Bluetooth has stopped working with a new macOS update.
For those who do wish to update, simply [download the latest release](https://github.com/dortania/OpenCore-Legacy-Patcher/releases) and rerun the patcher:
![](./images/OCLP-GUI-Main-Menu.png)
Then, rebuild your OpenCore build and install again. OpenCore Will now be updated!
To check what version of OpenCore and the Patcher you're currently running, you can run the following in the terminal:
```bash
# OpenCore Version
nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:opencore-version
# Patcher Version
nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:OCLP-Version
```
![](./images/oclp-version.png)
From this, we can see that we're running a RELEASE version of OpenCore 0.8.0 built on April 18th, 2022 with Patcher Version 0.4.5!
# Updating OpenCore and Patches
This guide explains how to get fully up to date application, bootloader and patches.
## Updating the application
Latest versions of OCLP can download updates by themselves, you will get notified of a new update with the changelog.
[You can also manually download the latest release here.](https://github.com/dortania/OpenCore-Legacy-Patcher/releases)
<div align="left">
<img src="./images/OCLP_Update_Available.png" alt="Update Avaialble" />
</div>
## Updating patches
After the update, the application asks if you want to update OpenCore and root patches.
If you do not need to change any settings, you can click "Yes" and follow the procedure. If you want to change settings, select "No" from here and do your settings, then manually build and install OpenCore to update to the latest version of the bootloader.
Finally install new root patches to ensure you're running on the latest fixes for on-disk patches.
<div align="left">
<img src="./images/OCLP_Update_Successful.png" alt="Update Successful" />
</div>
## Checking OCLP and OpenCore versions
To check what version of OpenCore bootloader and the Patcher you're currently running, you can run the following in the terminal:
```bash
# OpenCore Version
nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:opencore-version
# Patcher Version
nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:OCLP-Version
```
<div align="left">
<img src="./images/oclp-version.png" alt="OCLP version" width="600" />
</div>
From this, we can see that we're running a RELEASE version of OpenCore 0.9.0 built on January 1st, 2023 with Patcher Version 0.6.0!

View File

@@ -1,4 +1,4 @@
# macOS Ventura Support
# macOS Ventura
![](./images/ventura.png)

View File

@@ -3,6 +3,13 @@
Modern versions of Windows officially support two types of firmware: UEFI and BIOS. Users may want to boot Windows through the OCLP Bootpicker, but only UEFI Installations of Windows will show up in the OCLP Bootpicker.
Many older Macs do not "officially" support UEFI Windows installations, leading to installation failures and strange behaviour, but OCLP can be used to prevent almost all of these issues.
::: warning
When booting Windows with OpenCore, it's highly recommended to create a new 200MB **MS-DOS (FAT)** partition in Disk Utility to install OpenCore in. This will prevent Windows from overwriting OpenCore with its own bootloader in the EFI partition and causing boot issues.
::::
## Minimum Requirements
This guide will focus on the installation of modern Windows (10/11) without using Boot Camp Assistant.
@@ -232,4 +239,4 @@ Intel's iGPU drivers for the HD 3000 series do not support UEFI booting in Windo
### NVIDIA Tesla Black Screen after driver installation
The NVIDIA Tesla GPUs found in 2008-2010 Macs do not support UEFI booting in Windows. You cannot use UEFI Windows without low-level patching on these machines.
The NVIDIA Tesla GPUs found in 2008-2010 Macs do not support UEFI booting in Windows. You cannot use UEFI Windows without low-level patching on these machines.

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 588 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 454 KiB

After

Width:  |  Height:  |  Size: 629 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 399 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 KiB

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 374 KiB

After

Width:  |  Height:  |  Size: 1.0 MiB

View File

@@ -13,8 +13,8 @@ from .detections import device_probe
class Constants:
def __init__(self) -> None:
# Patcher Versioning
self.patcher_version: str = "2.0.2" # OpenCore-Legacy-Patcher
self.patcher_support_pkg_version: str = "1.8.3" # PatcherSupportPkg
self.patcher_version: str = "2.1.2" # OpenCore-Legacy-Patcher
self.patcher_support_pkg_version: str = "1.8.4" # PatcherSupportPkg
self.copyright_date: str = "Copyright © 2020-2024 Dortania"
self.patcher_name: str = "OpenCore Legacy Patcher"
@@ -186,8 +186,8 @@ class Constants:
self.custom_board_serial_number: str = "" # Set SMBIOS board serial number
## FeatureUnlock Settings
self.fu_status: bool = True # Enable FeatureUnlock
self.fu_arguments: str = None # Set FeatureUnlock arguments
self.fu_status: bool = False # Enable FeatureUnlock
self.fu_arguments: str = None # Set FeatureUnlock arguments
## Security Settings
self.sip_status: bool = True # System Integrity Protection

View File

@@ -72,7 +72,7 @@ xw
return
support.BuildSupport(self.model, self.constants, self.config).enable_kext("FeatureUnlock.kext", self.constants.featureunlock_version, self.constants.featureunlock_path)
if self.constants.fu_arguments is not None:
if self.constants.fu_arguments is not None and self.constants.fu_arguments != "":
logging.info(f"- Adding additional FeatureUnlock args: {self.constants.fu_arguments}")
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += self.constants.fu_arguments

View File

@@ -55,7 +55,7 @@ class CatalogProducts:
# Ensure Apple Silicon specific Installers are not listed
if "VMM-x86_64" not in data["MobileAssetProperties"]["SupportedDeviceModels"]:
if self.vmm_only:
return {}
return {"Missing VMM Support": True}
version = data["MobileAssetProperties"]["OSVersion"]
build = data["MobileAssetProperties"]["Build"]
@@ -82,7 +82,7 @@ class CatalogProducts:
With macOS Sequoia, the Info.plist is no longer present in the InstallAssistant's assets
"""
_does_support_vmm = False
for entry in data["Assets"]:
if "SupportedDeviceModels" not in entry:
continue
@@ -94,6 +94,8 @@ class CatalogProducts:
if self.vmm_only:
continue
_does_support_vmm = True
build = entry["Build"]
version = entry["OSVersion"]
@@ -109,6 +111,10 @@ class CatalogProducts:
"Catalog": CatalogURL().catalog_url_to_seed(catalog_url),
}
if _does_support_vmm is False:
if self.vmm_only:
return {"Missing VMM Support": True}
return {}
@@ -325,9 +331,18 @@ class CatalogProducts:
if plist_contents:
if Path(package["URL"]).name == "Info.plist":
_product_map.update(self._legacy_parse_info_plist(plist_contents))
result = self._legacy_parse_info_plist(plist_contents)
else:
_product_map.update(self._parse_mobile_asset_plist(plist_contents))
result = self._parse_mobile_asset_plist(plist_contents)
if result == {"Missing VMM Support": True}:
_product_map = {}
break
_product_map.update(result)
if _product_map == {}:
continue
if _product_map["Version"] is not None:
_product_map["Title"] = self._build_installer_name(_product_map["Version"], _product_map["Catalog"])

View File

@@ -2,8 +2,12 @@
defaults.py: Generate default data for host/target
"""
import logging
import plistlib
import subprocess
from pathlib import Path
from .. import constants
from ..detections import device_probe
@@ -22,19 +26,52 @@ from ..datasets import (
class GenerateDefaults:
def __init__(self, model: str, host_is_target: bool, global_constants: constants.Constants) -> None:
def __init__(self, model: str, host_is_target: bool, global_constants: constants.Constants, ignore_settings_file: bool = False) -> None:
self.constants: constants.Constants = global_constants
self.model: str = model
self.host_is_target: bool = host_is_target
self.ignore_settings_file: bool = ignore_settings_file
# Reset Variables
self.constants.sip_status = True
self.constants.secure_status = False
self.constants.disable_cs_lv = False
self.constants.disable_amfi = False
self.constants.fu_status = True
self.constants.fu_status = False
# Reset Variables - GUI override
# Match constants.py for model specific settings
# TODO: Write a sane system for this...
self.constants.firewire_boot = False
self.constants.xhci_boot = False
self.constants.nvme_boot = False
self.constants.force_quad_thread = False
self.constants.enable_wake_on_wlan = False
self.constants.disable_tb = False
self.constants.dGPU_switch = False
self.constants.disallow_cpufriend = False
self.constants.disable_mediaanalysisd = False
self.constants.set_alc_usage = True
self.constants.nvram_write = True
self.constants.allow_nvme_fixing = True
self.constants.allow_3rd_party_drives = True
self.constants.disable_fw_throttle = False
self.constants.software_demux = False
self.constants.disable_connectdrivers = False
self.constants.amd_gop_injection = False
self.constants.nvidia_kepler_gop_injection = False
self.constants.disable_cs_lv = False
self.constants.disable_amfi = False
self.constants.secure_status = False
self.constants.serial_settings = "None"
self.constants.override_smbios = "Default"
self.constants.allow_native_spoofs = False
self.constants.allow_oc_everywhere = False
self.constants.sip_status = True
self.constants.custom_sip_value = None
self.constants.fu_arguments = None
@@ -55,6 +92,8 @@ class GenerateDefaults:
self._misc_hardwares_probe()
self._smbios_probe()
self._check_amfipass_supported()
self._load_gui_defaults()
def _general_probe(self) -> None:
"""
@@ -185,7 +224,6 @@ class GenerateDefaults:
is_modern_wifi = True
else:
print("Checking WiFi")
if self.model not in smbios_data.smbios_dictionary:
return
if (
@@ -217,11 +255,10 @@ class GenerateDefaults:
self.constants.disable_cs_lv = True
self.constants.disable_amfi = True
if is_legacy_wifi is True:
# 13.0: Enabling AirPlay to Mac patches breaks Control Center on legacy chipsets
# AirPlay to Mac was unsupported regardless, so we can safely disable it
self.constants.fu_status = True
self.constants.fu_arguments = " -disable_sidecar_mac"
# if is_legacy_wifi is True:
# # 13.0: Enabling AirPlay to Mac patches breaks Control Center on legacy chipsets
# # AirPlay to Mac was unsupported regardless, so we can safely disable it
# self.constants.fu_arguments = " -disable_sidecar_mac"
def _misc_hardwares_probe(self) -> None:
@@ -274,6 +311,7 @@ class GenerateDefaults:
device_probe.NVIDIA.Archs.Kepler,
]:
self.constants.disable_amfi = True
self.constants.disable_mediaanalysisd = True
if arch in [
device_probe.AMD.Archs.Legacy_GCN_7000,
@@ -365,3 +403,46 @@ class GenerateDefaults:
self.constants.disable_amfi = False
self.constants.disable_cs_lv = False
def _load_gui_defaults(self) -> None:
"""
Load GUI defaults from global settings
"""
if not self.host_is_target:
return
if self.ignore_settings_file is True:
return
settings_plist = global_settings.GlobalEnviromentSettings().global_settings_plist
if not Path(settings_plist).exists():
return
try:
plist = plistlib.load(Path(settings_plist).open("rb"))
except Exception as e:
logging.error("Error: Unable to read global settings file")
logging.error(e)
return
for key in plist:
if not key.startswith("GUI:"):
continue
constants_key = key.replace("GUI:", "")
if plist[key] == "PYTHON_NONE_VALUE":
plist[key] = None
if hasattr(self.constants, constants_key):
# Check if type is different
original_type = type(getattr(self.constants, constants_key))
new_type = type(plist[key])
if original_type != new_type:
logging.error(f"Global settings type mismatch for {constants_key}: {original_type} vs {new_type}")
logging.error(f"Removing {key} from global settings")
global_settings.GlobalEnviromentSettings().delete_property(key)
continue
logging.info(f"Setting {constants_key} to {plist[key]}")
setattr(self.constants, constants_key, plist[key])

View File

@@ -44,6 +44,25 @@ class GlobalEnviromentSettings:
return None
def delete_property(self, property_name: str) -> None:
"""
Deletes a property from the global settings file
"""
if Path(self.global_settings_plist).exists():
try:
plist = plistlib.load(Path(self.global_settings_plist).open("rb"))
except Exception as e:
logging.error("Error: Unable to read global settings file")
logging.error(e)
return
if property_name in plist:
del plist[property_name]
try:
plistlib.dump(plist, Path(self.global_settings_plist).open("wb"))
except PermissionError:
logging.info("Failed to write to global settings")
def write_property(self, property_name: str, property_value) -> None:
"""
Writes a property to the global settings file

View File

@@ -40,7 +40,7 @@ class AuxiliaryKernelCollection(BaseKernelCache):
collection to be used.
"""
print("- Forcing Auxiliary Kernel Collection usage")
logging.info("- Forcing Auxiliary Kernel Collection usage")
result = subprocess_wrapper.run_as_root(["/usr/bin/killall", "syspolicyd", "kernelmanagerd"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
if result.returncode != 0:
logging.info("- Unable to kill syspolicyd and kernelmanagerd")

View File

@@ -366,7 +366,7 @@ class HardwarePatchsetDetection:
logging.error("Stripping out Non-Metal GPUs")
for hardware in list(present_hardware):
if hardware.hardware_variant_graphics_subclass() == HardwareVariantGraphicsSubclass.NON_METAL_GRAPHICS:
print(f" Stripping out {hardware.name()}")
logging.info(f" Stripping out {hardware.name()}")
present_hardware.remove(hardware)
if metal_3802_gpu_present and metal_31001_gpu_present and self._xnu_major >= os_data.sequoia.value:

View File

@@ -28,6 +28,8 @@ class BuildFrame(wx.Frame):
super(BuildFrame, self).__init__(parent, title=title, size=(350, 200), style=wx.DEFAULT_FRAME_STYLE & ~(wx.RESIZE_BORDER | wx.MAXIMIZE_BOX))
gui_support.GenerateMenubar(self, global_constants).generate()
self.build_successful: bool = False
self.install_button: wx.Button = None
self.text_box: wx.TextCtrl = None
self.frame_modal: wx.Dialog = None
@@ -107,6 +109,18 @@ class BuildFrame(wx.Frame):
wx.Yield()
self.return_button.Enable()
# Check if config.plist was built
if self.build_successful is False:
dialog = wx.MessageDialog(
parent=self,
message="An error occurred while building OpenCore",
caption="Error building OpenCore",
style=wx.OK | wx.ICON_ERROR
)
dialog.ShowModal()
return
dialog = wx.MessageDialog(
parent=self,
message=f"Would you like to install OpenCore now?",
@@ -126,9 +140,16 @@ class BuildFrame(wx.Frame):
logger.addHandler(gui_support.ThreadHandler(self.text_box))
try:
build.BuildOpenCore(self.constants.custom_model or self.constants.computer.real_model, self.constants)
except:
self.build_successful = True
except Exception as e:
logging.error("An internal error occurred while building:\n")
logging.error(traceback.format_exc())
# Handle bug from 2.1.0 where None type was stored in config.plist from global settings
if "TypeError: unsupported type: <class 'NoneType'>" in traceback.format_exc():
logging.error("If you continue to see this error, delete the following file and restart the application:")
logging.error("Path: /Users/Shared/.com.dortania.opencore-legacy-patcher.plist")
logger.removeHandler(logger.handlers[2])

View File

@@ -158,7 +158,16 @@ class SettingsFrame(wx.Frame):
if setting_info["type"] == "checkbox":
# Add checkbox, and description underneath
checkbox = wx.CheckBox(panel, label=setting, pos=(10 + width, 10 + height), size = (300,-1))
checkbox.SetValue(setting_info["value"] if setting_info["value"] else False)
value = False
if "value" in setting_info:
try:
value = bool(setting_info["value"])
except ValueError:
logging.error(f"Invalid value for {setting}, got {setting_info['value']} (type: {type(setting_info['value'])})")
value = False
checkbox.SetValue(value)
checkbox.SetFont(gui_support.font_factory(13, wx.FONTWEIGHT_BOLD))
event = lambda event, warning=setting_info["warning"] if "warning" in setting_info else "", override=bool(setting_info["override_function"]) if "override_function" in setting_info else False: self.on_checkbox(event, warning, override)
checkbox.Bind(wx.EVT_CHECKBOX, event)
@@ -1106,11 +1115,18 @@ Hardware Information:
def _update_setting(self, variable, value):
logging.info(f"Updating Local Setting: {variable} = {value}")
setattr(self.constants, variable, value)
tmp_value = value
if tmp_value is None:
tmp_value = "PYTHON_NONE_VALUE"
global_settings.GlobalEnviromentSettings().write_property(f"GUI:{variable}", tmp_value)
def _update_global_settings(self, variable, value, global_setting = None):
logging.info(f"Updating Global Setting: {variable} = {value}")
global_settings.GlobalEnviromentSettings().write_property(variable, value)
tmp_value = value
if tmp_value is None:
tmp_value = "PYTHON_NONE_VALUE"
global_settings.GlobalEnviromentSettings().write_property(variable, tmp_value)
if global_setting is not None:
self._update_setting(global_setting, value)
@@ -1160,11 +1176,16 @@ Hardware Information:
if hex(self.sip_value) == "0x0":
self.constants.custom_sip_value = None
self.constants.sip_status = True
global_settings.GlobalEnviromentSettings().write_property("GUI:custom_sip_value", "PYTHON_NONE_VALUE")
global_settings.GlobalEnviromentSettings().write_property("GUI:sip_status", True)
elif hex(self.sip_value) == "0x803":
self.constants.custom_sip_value = None
self.constants.sip_status = False
global_settings.GlobalEnviromentSettings().write_property("GUI:custom_sip_value", "PYTHON_NONE_VALUE")
global_settings.GlobalEnviromentSettings().write_property("GUI:sip_status", False)
else:
self.constants.custom_sip_value = hex(self.sip_value)
global_settings.GlobalEnviromentSettings().write_property("GUI:custom_sip_value", hex(self.sip_value))
self.sip_configured_label.SetLabel(f"Currently configured SIP: {hex(self.sip_value)}")
@@ -1191,10 +1212,12 @@ Hardware Information:
def on_custom_serial_number_textbox(self, event: wx.Event) -> None:
self.constants.custom_serial_number = event.GetEventObject().GetValue()
global_settings.GlobalEnviromentSettings().write_property("GUI:custom_serial_number", self.constants.custom_serial_number)
def on_custom_board_serial_number_textbox(self, event: wx.Event) -> None:
self.constants.custom_board_serial_number = event.GetEventObject().GetValue()
global_settings.GlobalEnviromentSettings().write_property("GUI:custom_board_serial_number", self.constants.custom_board_serial_number)
def _populate_fu_override(self, panel: wx.Panel) -> None:
@@ -1207,7 +1230,7 @@ Hardware Information:
gpu_combo_box.Bind(wx.EVT_CHOICE, self.fu_selection_click)
if self.constants.fu_status is False:
gpu_combo_box.SetStringSelection("Disabled")
elif self.constants.fu_arguments is None:
elif self.constants.fu_arguments is None or self.constants.fu_arguments == "":
gpu_combo_box.SetStringSelection("Enabled")
else:
gpu_combo_box.SetStringSelection("Partial")
@@ -1219,17 +1242,23 @@ Hardware Information:
logging.info("Updating FU Status: Enabled")
self.constants.fu_status = True
self.constants.fu_arguments = None
global_settings.GlobalEnviromentSettings().write_property("GUI:fu_status", True)
global_settings.GlobalEnviromentSettings().write_property("GUI:fu_arguments", "PYTHON_NONE_VALUE")
return
if value == "Partial":
logging.info("Updating FU Status: Partial")
self.constants.fu_status = True
self.constants.fu_arguments = " -disable_sidecar_mac"
global_settings.GlobalEnviromentSettings().write_property("GUI:fu_status", True)
global_settings.GlobalEnviromentSettings().write_property("GUI:fu_arguments", " -disable_sidecar_mac")
return
logging.info("Updating FU Status: Disabled")
self.constants.fu_status = False
self.constants.fu_arguments = None
global_settings.GlobalEnviromentSettings().write_property("GUI:fu_status", False)
global_settings.GlobalEnviromentSettings().write_property("GUI:fu_arguments", "PYTHON_NONE_VALUE")
def _populate_graphics_override(self, panel: wx.Panel) -> None:
@@ -1269,6 +1298,9 @@ Hardware Information:
self.constants.imac_model = "Navi"
else:
raise Exception("Unknown GPU Model")
global_settings.GlobalEnviromentSettings().write_property("GUI:imac_vendor", "AMD")
global_settings.GlobalEnviromentSettings().write_property("GUI:metal_build", True)
global_settings.GlobalEnviromentSettings().write_property("GUI:imac_model", self.constants.imac_model)
elif "Nvidia" in gpu_choice:
self.constants.imac_vendor = "Nvidia"
self.constants.metal_build = True
@@ -1278,9 +1310,14 @@ Hardware Information:
self.constants.imac_model = "GT"
else:
raise Exception("Unknown GPU Model")
global_settings.GlobalEnviromentSettings().write_property("GUI:imac_vendor", "Nvidia")
global_settings.GlobalEnviromentSettings().write_property("GUI:metal_build", True)
global_settings.GlobalEnviromentSettings().write_property("GUI:imac_model", self.constants.imac_model)
else:
self.constants.imac_vendor = "None"
self.constants.metal_build = False
global_settings.GlobalEnviromentSettings().write_property("GUI:imac_vendor", "None")
global_settings.GlobalEnviromentSettings().write_property("GUI:metal_build", False)
def _get_system_settings(self, variable) -> bool: