diff --git a/Info.plist b/Info.plist index 568f13d7e..ace383470 100644 --- a/Info.plist +++ b/Info.plist @@ -27,6 +27,6 @@ LSMultipleInstancesProhibited NSHumanReadableCopyright - Copyright 2020 Dortania + Copyright 2021 Dortania diff --git a/README.md b/README.md index a2db4cc65..cf25fb7e6 100644 --- a/README.md +++ b/README.md @@ -1,101 +1,50 @@ # OpenCore Legacy Patcher - + -A python script for building and booting OpenCore on legacy Macs, see [Supported SMBIOS](#supported-smbios) on whether your model is supported. +A python script for building and booting OpenCore on legacy Macs, see [Supported SMBIOS](/docs/MODELS.md) on whether your model is supported. -## Supported SMBIOS +Supported features: -Any hardware supporting SSE4.1 CPU and 64-Bit firmware work on this patcher. To check your hardware model, run the below command on the applicable machine: +* System Integrity Protection, FileVault 2 and .im4m Secure Boot +* Native OTA OS updates +* Recovery OS, Safe Mode and Single-user Mode booting +* Zero firmware patching required(ie. APFS ROM patching) +* GPU Switching on MacBook Pro models(2012 and newer) -```bash -system_profiler SPHardwareDataType | grep 'Model Identifier' -``` +Note: Only clean-installs and upgrades are supported, installs already patched with [Patched-Sur](https://github.com/BenSova/Patched-Sur) or [bigmac](https://github.com/StarPlayrX/bigmac) cannot be used due to broken file integrity with APFS snapshots and SIP. -
-SMBIOS Support Table +* You can however reinstall macOS with this patcher and retain your original data -``` -MacBook5,1 -MacBook5,2 -MacBook6,1 -MacBook7,1 +## How to use -MacBookAir2,1 -MacBookAir3,1 -MacBookAir3,2 -MacBookAir4,1 -MacBookAir4,2 -MacBookAir5,1 -MacBookAir5,2 +To use, simply: -MacBookPro3,1 -MacBookPro4,1 -MacBookPro5,1 -MacBookPro5,2 -MacBookPro5,3 -MacBookPro5,4 -MacBookPro5,5 -MacBookPro6,1 -MacBookPro6,2 -MacBookPro7,1 -MacBookPro8,1 -MacBookPro8,2 -MacBookPro8,3 -MacBookPro9,1 -MacBookPro9,2 -MacBookPro10,1 -MacBookPro10,2 +1. Ensure your hardware is compatible(See [Supported SMBIOS](/docs/MODELS.md)) +2. Download and build macOS Installer +3. Download the latest release: [OpenCore Legacy Patcher Releases](https://github.com/dortania/Opencore-Legacy-Patcher/releases) +4. Run the `OpenCore-Patcher` binary +5. Run `Build OpenCore`(if building for another machine, please select `Change Model`) -Macmini3,1 -Macmini4,1 -Macmini5,1 -Macmini5,2 -Macmini5,3 -Macmini6,1 -Macmini6,2 +| First Run | Build EFI | +| :--- | :--- | +| ![](images/first-run.png) | ![](images/build-efi.png) | -iMac7,1 -iMac8,1 -iMac9,1 -iMac10,1 -iMac11,1 -iMac11,2 -iMac11,3 -iMac12,1 -iMac12,2 -iMac13,1 -iMac13,2 -iMac14,1 -iMac14,2 -iMac14,3 +6. Run `Install OpenCore to USB/internal drive` -MacPro3,1 -MacPro4,1 -MacPro5,1 +| #1 | #2 | +| :--- | :--- | +| ![](images/disk-start.png) | ![](images/disk-efi.png) | -Xserve3,1 -``` + * Ensure you install OpenCore onto a FAT32 partition to ensure your Mac is able to boot it, you may need to format your drive as GUID/GPT in Disk Utility + +7. Reboot machine while holding `Option` to select OpenCore, then boot the macOS Installer -
-
+| Mac Boot Picker | OpenCore Picker | +| :--- | :--- | +| ![](images/efi-boot.png) | ![](images/oc-boot.png) | -## How to run - -Prerequists: - -* Supported Mac(see above) -* macOS Installer installed to USB - * See here on how to download and create an installer: [Creating a macOS Installer](https://dortania.github.io/OpenCore-Install-Guide/installer-guide/mac-install.html) - * Blank USB drives formatted as GUID Partition Table are also supported - -1. [Download the release](https://github.com/dortania/Opencore-Legacy-Patcher/releases) -2. Run the `OpenCore-Patcher.command` file -3. Once opened, select option 1 and build your EFI - * if patching for a different machine, select option 3 first -4. Once finished, run option 2 at the main menu and install onto your desired drive - -Once you're done making your OpenCore installer, you can simply reboot holding the Option key. In the picker, you should see a new EFI Boot Option. Boot it and from there you'll be in the OpenCore picker. +For nightly builds, you can either run `OpenCore-Patcher.command` from [main](https://github.com/dortania/Opencore-Legacy-Patcher/archive/main.zip) or grab the binary from [Github Actions](https://github.com/dortania/Opencore-Legacy-Patcher/actions). Note the latter does not require a py3 install. ## How to uninstall OpenCore? @@ -109,25 +58,4 @@ To remove OpenCore is actually quite simply: Know that if you are on Big Sur when you remove the EFI folder, your Mac will no longer boot and show the prohibited symbol. Be ready to install an older version of macOS before you uninstall Open Core. -## Troubleshooting - -Here are some common errors users may experience while using this patcher: - -* [Stuck on `This version of Mac OS X is not supported on this platform`](#stuck-on-this-version-of-mac-os-x-is-not-supported-on-this-platform) -* [Cannot boot macOS without the USB](#cannot-boot-macos-without-the-usb) - -### Stuck on `This version of Mac OS X is not supported on this platform` - -This means macOS has detected a SMBIOS it does not support, to resolve this ensure you're booting OpenCore **before** the macOS installer in the boot picker. Reminder the option will be called `EFI Boot` - -Once you've booted OpenCore at least once, your hardware should now auto boot it until either NVRAM reset or you remove the drive with OpenCore installed. - -### Cannot boot macOS without the USB - -At this time, the OpenCore Patcher won't install macOS onto the internal drive itself during installs. Instead, you'll need to either [manually transfer](https://dortania.github.io/OpenCore-Post-Install/universal/oc2hdd.html) OpenCore to the internal drive's EFI or run this patcher's Option 2 again but select your internal drive. - -Reminder that once this is done, you'll need to select OpenCore in the boot picker again for your hardware to remember this entry and auto boot from then on. - -### Cannot run OpenCore Legacy Patcher - -If the release tab has permissions/Gatekeeper issues, please [download the main repo](https://github.com/dortania/Opencore-Legacy-Patcher/archive/main.zip) and run that instead. +## [Troubleshooting](/docs/TROUBLESHOOTING.md) diff --git a/docs/MODELS.md b/docs/MODELS.md new file mode 100644 index 000000000..3134a5f31 --- /dev/null +++ b/docs/MODELS.md @@ -0,0 +1,125 @@ +# Supported Models + +Any hardware supporting SSE4.1 CPU and 64-Bit firmware work on this patcher. To check your hardware model, run the below command on the applicable machine: + +```bash +system_profiler SPHardwareDataType | grep 'Model Identifier' +``` + +The below table will list all supported and unsupported functions of the patcher currently: + +* [MacBook](#macbook) +* [MacBook Air](#macbook-air) +* [MacBook Pro](#macbook-pro) +* [Mac mini](#mac-mini) +* [iMac](#imac) +* [Mac Pro](#mac-pro) +* [Xserve](#xserve) + +### MacBook + +| SMBIOS | Year | Supported | Comment | +| :--- | :--- | :--- | :--- | +| MacBook1,1 | Mid-2006 | NO | 32-Bit CPU limitation | +| MacBook2,1 | Late 2006 | ^^ | 32-Bit Firmware limitation | +| MacBook3,1 | Late 2007 | ^^ | ^^ | +| MacBook4,1 | Early 2008 | ^^ | ^^ | +| MacBook5,1 | Late 2008 | YES | - No GPU Acceleration in Big Sur
- No AppleHDA(Audio) Patching implemented(yet) | +| MacBook5,2 | Early 2009 | ^^ | ^^ | +| MacBook6,1 | Late 2009 | ^^ | ^^ | +| MacBook7,1 | Mid-2010 | ^^ | ^^ | + +### MacBook Air + +| SMBIOS | Year | Supported | Comment | +| :--- | :--- | :--- | :--- | +| MacBookAir1,1 | Early 2008 | NO | Requires SSE4.1 CPU | +| MacBookAir2,1 | Late 2008 | YES | - No GPU Acceleration in Big Sur
- No AppleHDA(Audio) Patching implemented(yet)
- No Wifi Patches implemented(yet) | +| MacBookAir3,1 | Late 2010 | ^^ | - No GPU Acceleration in Big Sur
- No AppleHDA(Audio) Patching implemented(yet) | +| MacBookAir3,2 | ^^ | ^^ | ^^ | +| MacBookAir4,1 | Mid-2011 | ^^ | ^^ | +| MacBookAir4,2 | ^^ | ^^ | ^^ | +| MacBookAir5,1 | Mid-2012 |^^ | Everything is supported | +| MacBookAir5,2 | ^^ | ^^ | ^^ | + +### MacBook Pro + +| SMBIOS | Year | Supported | Comment | +| :--- | :--- | :--- | :--- | +| MacBookPro1,1 | Early 2006 | NO | 32-Bit CPU limitation | +| MacBookPro1,2 | ^^ | ^^ | ^^ | +| MacBookPro2,1 | Late 2006 | ^^ | 32-Bit Firmware limitation | +| MacBookPro2,2 | Late 2006 | ^^ | ^^ | +| MacBookPro3,1 | Mid-2007 | YES | - No GPU Acceleration in Big Sur
- No AppleHDA(Audio) Patching implemented(yet) | +| MacBookPro4,1 | Early 2008 | ^^ | - No GPU Acceleration in Big Sur
- No AppleHDA(Audio) Patching implemented(yet)
- No Wifi Patches implemented(yet) | +| MacBookPro5,1 | Late 2008 | ^^ | - No GPU Acceleration in Big Sur
- No AppleHDA(Audio) Patching implemented(yet) | +| MacBookPro5,2 | Early 2009 | ^^ | ^^ | +| MacBookPro5,3 | Mid-2009 | ^^ | ^^ | +| MacBookPro5,4 | ^^ | ^^ | ^^ | +| MacBookPro5,5 | ^^ | ^^ | ^^ | +| MacBookPro6,1 | Mid-2010 | ^^ | ^^ | +| MacBookPro6,2 | ^^ | ^^ | ^^ | +| MacBookPro7,1 | ^^ | ^^ | ^^ | +| MacBookPro8,1 | Early 2011 | ^^ | - No GPU Acceleration in Big Sur
- No AppleHDA(Audio) Patching implemented(yet)
- Ethernet Connection Issues | +| MacBookPro8,2 | ^^ | ^^ | ^^ | +| MacBookPro8,3 | ^^ | ^^ | ^^ | +| MacBookPro9,1 | Mid-2012 | ^^ | Everything is supported | +| MacBookPro9,2 | ^^ | ^^ | ^^ | +| MacBookPro10,1 | ^^ | ^^ | ^^ | +| MacBookPro10,2 | Late 2012 | ^^ | ^^ | + +### Mac mini + +| SMBIOS | Year | Supported | Comment | +| :--- | :--- | :--- | :--- | +| Macmini1,1 | Early 2006 | NO | 32-Bit CPU limitation | +| Macmini2,1 | Mid-2007 | ^^ | 32-Bit Firmware limitation | +| Macmini3,1 | Early 2009 | YES | - No GPU Acceleration in Big Sur
- No AppleHDA(Audio) Patching implemented(yet) | +| Macmini4,1 | Mid-2010 | ^^ | ^^ | +| Macmini5,1 | Mid-2011 | ^^ | - No GPU Acceleration in Big Sur
- No AppleHDA(Audio) Patching implemented(yet)
- Ethernet Connection Issues | +| Macmini5,2 | ^^ | ^^ | ^^ | +| Macmini5,3 | ^^ | ^^ | ^^ | +| Macmini6,1 | Late 2012 | ^^ | Everything is supported | +| Macmini6,2 | ^^ | ^^ | ^^ | + +### iMac + +| SMBIOS | Year | Supported | Comment | +| :--- | :--- | :--- | :--- | +| iMac4,1 | Early 2006 | NO | 32-Bit CPU limitation | +| iMac4,2 | Mid-2006 | ^^ | ^^ | +| iMac5,1 | Late 2006 | ^^ | 32-Bit Firmware limitation | +| iMac5,2 | ^^ | ^^ | ^^ | +| iMac6,1 | ^^ | ^^ | ^^ | +| iMac7,1 | Mid-2007 | YES | - Requires an SSE4.1 CPU Upgrade
- No GPU Acceleration in Big Sur
- No AppleHDA(Audio) Patching implemented(yet)
- No Wifi Patches implemented (yet) | +| iMac8,1 | Early 2008 | ^^ | - No GPU Acceleration in Big Sur
- No AppleHDA(Audio) Patching implemented(yet)
- No Wifi Patches implemented (yet) | +| iMac9,1 | Early 2009 | ^^ | - No GPU Acceleration in Big Sur
- No AppleHDA(Audio) Patching implemented(yet) | +| iMac10,1 | Late 2009 | ^^ | ^^ | +| iMac11,1 | ^^ | ^^ | - No GPU Acceleration in Big Sur
- No AppleHDA(Audio) Patching implemented(yet)
- Ethernet Connection Issues | +| iMac11,2 | Mid-2010 | ^^ | ^^ | +| iMac11,3 | ^^ | ^^ | ^^ | +| iMac12,1 | Mid-2011 | ^^ | ^^ | +| iMac12,2 | ^^ | ^^ | ^^ | +| iMac13,1 | Late 2012 | ^^ | Everything is supported | +| iMac13,2 | ^^ | ^^ | ^^ | +| iMac14,1 | Late 2013 | ^^ | ^^ | +| iMac14,2 | ^^ | ^^ | ^^ | +| iMac14,3 | ^^ | ^^ | ^^ | + +### Mac Pro + +| SMBIOS | Year | Supported | Comment | +| :--- | :--- | :--- | :--- | +| MacPro1,1 | Mid-2006 | NO | 32-Bit Firmware limitation | +| MacPro2,1 | Mid-2007 | ^^ | ^^ | +| MacPro3,1 | Early 2008 | YES | - Requires an SSE4.1 CPU Upgrade
- No AppleHDA(Audio) Patching implemented(yet) | +| MacPro4,1 | Early 2009 | ^^ | Everything is supported as long as GPU is Metal capable | +| MacPro5,1 | Mid-2010 | ^^ | ^^ | + +### Xserve + +| SMBIOS | Year | Supported | Comment | +| :--- | :--- | :--- | :--- | +| Xserve1,1 | Mid-2006 | NO | 32-Bit Firmware limitation | +| Xserve2,1 | Early 2008 | ^^ | ^^ | +| Xserve3,1 | Early 2009 | YES | Everything is supported as long as GPU is Metal capable | \ No newline at end of file diff --git a/docs/TROUBLESHOOTING.md b/docs/TROUBLESHOOTING.md new file mode 100644 index 000000000..ff9f5914d --- /dev/null +++ b/docs/TROUBLESHOOTING.md @@ -0,0 +1,23 @@ +# Troubleshooting + +Here are some common errors users may experience while using this patcher: + +* [Stuck on `This version of Mac OS X is not supported on this platform`](#stuck-on-this-version-of-mac-os-x-is-not-supported-on-this-platform) +* [Cannot boot macOS without the USB](#cannot-boot-macos-without-the-usb) +* [Infinite Recovery OS Booting](#infinite-recovery-os-reboot) + +## Stuck on `This version of Mac OS X is not supported on this platform` + +This means macOS has detected a SMBIOS it does not support, to resolve this ensure you're booting OpenCore **before** the macOS installer in the boot picker. Reminder the option will be called `EFI Boot` + +Once you've booted OpenCore at least once, your hardware should now auto boot it until either NVRAM reset or you remove the drive with OpenCore installed. + +## Cannot boot macOS without the USB + +At this time, the OpenCore Patcher won't install macOS onto the internal drive itself during installs. Instead, you'll need to either [manually transfer](https://dortania.github.io/OpenCore-Post-Install/universal/oc2hdd.html) OpenCore to the internal drive's EFI or run this patcher's Option 2 again but select your internal drive. + +Reminder that once this is done, you'll need to select OpenCore in the boot picker again for your hardware to remember this entry and auto boot from then on. + +## Infinite Recovery OS Booting + +With OpenCore Legacy Patcher, we rely on Apple Secure Boot to ensure OS updates work correctly and reliably with Big Sur. However this installs NVRAM variables that will confuse your Mac if not running with openCore. To resolve, simply uninstall OpenCore and [reset NVRAM](https://support.apple.com/en-mide/HT201255). \ No newline at end of file diff --git a/OC-Patcher.png b/images/OC-Patcher.png similarity index 100% rename from OC-Patcher.png rename to images/OC-Patcher.png diff --git a/images/build-efi.png b/images/build-efi.png new file mode 100644 index 000000000..01a654c03 Binary files /dev/null and b/images/build-efi.png differ diff --git a/images/disk-efi.png b/images/disk-efi.png new file mode 100644 index 000000000..0cf7abc00 Binary files /dev/null and b/images/disk-efi.png differ diff --git a/images/disk-start.png b/images/disk-start.png new file mode 100644 index 000000000..dcbba5c67 Binary files /dev/null and b/images/disk-start.png differ diff --git a/images/efi-boot.png b/images/efi-boot.png new file mode 100644 index 000000000..fd523cffb Binary files /dev/null and b/images/efi-boot.png differ diff --git a/images/first-run.png b/images/first-run.png new file mode 100644 index 000000000..0d62cfc28 Binary files /dev/null and b/images/first-run.png differ diff --git a/images/oc-boot.png b/images/oc-boot.png new file mode 100644 index 000000000..6f967f27f Binary files /dev/null and b/images/oc-boot.png differ