Fix External Display Support on MacBookPro10,1
@@ -7,6 +7,8 @@
|
||||
- Moderate: Update entire SMBIOS, keep original serials
|
||||
- Advanced: Update entire SMBIOS, generate new serials
|
||||
- Fix crash on MacBookPro4,1
|
||||
- Fix External Display Support on MacBookPro10,1
|
||||
- Inject Patcher version into NVRAM for easier debugging
|
||||
|
||||
## 0.0.15
|
||||
- Add user-configurable OpenCore DEBUG builds
|
||||
|
||||
@@ -23,7 +23,7 @@ Note 2: Currently OpenCore Legacy Patcher only supports macOS 11, Big Sur instal
|
||||
To use, simply:
|
||||
|
||||
1. Ensure your hardware is compatible(See [Supported SMBIOS](/docs/MODELS.md))
|
||||
2. Download and build macOS Installer
|
||||
2. [Download and build macOS Installer](./docs/INSTALLER.md)
|
||||
3. Download the latest release: [OpenCore Legacy Patcher Releases](https://github.com/dortania/Opencore-Legacy-Patcher/releases)
|
||||
4. Run the `OpenCore-Patcher.app`
|
||||
5. Run `Build OpenCore`(if building for another machine, please select `Change Model`)
|
||||
|
||||
@@ -390,7 +390,6 @@ DualGPUPatch = [
|
||||
"MacBookPro8,2",
|
||||
"MacBookPro8,3",
|
||||
"MacBookPro9,1",
|
||||
"MacBookPro10,1",
|
||||
"Macmini5,2",
|
||||
"iMac12,1",
|
||||
"iMac12,2",
|
||||
@@ -400,6 +399,10 @@ DualGPUPatch = [
|
||||
"Dortania1,1"
|
||||
]
|
||||
|
||||
DualGPUPatchRetina = [
|
||||
"MacBookPro10,1",
|
||||
]
|
||||
|
||||
HiDPIpicker = [
|
||||
"MacBookPro10,1",
|
||||
"MacBookPro10,2",
|
||||
|
||||
@@ -69,6 +69,7 @@ class BuildOpenCore:
|
||||
self.config["#Revision"]["Build-Version"] = f"{self.constants.patcher_version} - {date.today()}"
|
||||
self.config["#Revision"]["OpenCore-Version"] = f"{self.constants.opencore_version} - {self.constants.opencore_build} - {self.constants.opencore_commit}"
|
||||
self.config["#Revision"]["Original-Model"] = self.model
|
||||
self.config["NVRAM"]["Add"]["4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102"]["OCLP-Version"] = f"{self.constants.patcher_version}"
|
||||
|
||||
for name, version, path, check in [
|
||||
# Essential kexts
|
||||
@@ -272,9 +273,7 @@ class BuildOpenCore:
|
||||
self.spoofed_model = spoofed_model
|
||||
self.spoofed_board = spoofed_board
|
||||
self.config["#Revision"]["Spoofed-Model"] = self.spoofed_model
|
||||
macserial_output = subprocess.run([self.constants.macserial_path] + f"-g -m {self.spoofed_model} -n 1".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||
self.macserial_output = macserial_output.stdout.decode().strip().split(" | ")
|
||||
|
||||
|
||||
# Setup menu
|
||||
def minimal_serial_patch(self):
|
||||
self.config["PlatformInfo"]["PlatformNVRAM"]["BID"] = self.spoofed_board
|
||||
@@ -287,14 +286,16 @@ class BuildOpenCore:
|
||||
self.config["UEFI"]["ProtocolOverrides"]["DataHub"] = True
|
||||
self.config["PlatformInfo"]["Generic"]["SystemProductName"] = self.spoofed_model
|
||||
def adanced_serial_patch(self):
|
||||
macserial_output = subprocess.run([self.constants.macserial_path] + f"-g -m {self.spoofed_model} -n 1".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||
macserial_output = macserial_output.stdout.decode().strip().split(" | ")
|
||||
self.config["PlatformInfo"]["Automatic"] = True
|
||||
self.config["PlatformInfo"]["UpdateDataHub"] = True
|
||||
self.config["PlatformInfo"]["UpdateNVRAM"] = True
|
||||
self.config["UEFI"]["ProtocolOverrides"]["DataHub"] = True
|
||||
self.config["PlatformInfo"]["Generic"]["ROM"] = binascii.unhexlify("112233445566")
|
||||
self.config["PlatformInfo"]["Generic"]["SystemProductName"] = self.spoofed_model
|
||||
self.config["PlatformInfo"]["Generic"]["SystemSerialNumber"] = self.macserial_output[0]
|
||||
self.config["PlatformInfo"]["Generic"]["MLB"] = self.macserial_output[1]
|
||||
self.config["PlatformInfo"]["Generic"]["SystemSerialNumber"] = macserial_output[0]
|
||||
self.config["PlatformInfo"]["Generic"]["MLB"] = macserial_output[1]
|
||||
self.config["PlatformInfo"]["Generic"]["SystemUUID"] = str(uuid.uuid4()).upper()
|
||||
|
||||
if self.constants.serial_settings == "Moderate":
|
||||
|
||||
53
docs/INSTALLER.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# How to download and build macOS Installers
|
||||
|
||||
* [Downloading](#downloading)
|
||||
* [Building](#building)
|
||||
|
||||
This doc is centered around downloading and writting the macOS installer to a USB. If you're already familair with how to do this, you can skip.
|
||||
|
||||
* Note: 16GB+ USB will be required for the installer
|
||||
|
||||
## Downloading
|
||||
|
||||
The simplest way to download macOS installs would be to use installinstallmacos:
|
||||
|
||||
```sh
|
||||
mkdir ~/macOS-installer && cd ~/macOS-installer && curl -O https://raw.githubusercontent.com/munki/macadmin-scripts/main/installinstallmacos.py && sudo python installinstallmacos.py
|
||||
```
|
||||
|
||||

|
||||
|
||||
As you can see, we get a nice list of macOS installers. If you need a particular versions of macOS, you can select it by typing the number next to it. For this example we'll choose 10:
|
||||
|
||||

|
||||
|
||||
This is going to take a while as we're downloading the entire 12GB+ macOS installer.
|
||||
|
||||
Once finished, you'll find in your `~/macOS-Installer/` folder a DMG containing the macOS Installer, called `Install_macOS_11.1-20C69.dmg` for example. Mount it and you'll find the installer application.
|
||||
|
||||
* Note: We recommend to move the Install macOS.app into the `/Applications` folder, as we'll be executing commands from there.
|
||||
* Note 2: Running Cmd+Shift+G in Finder will allow you to easily jump to `~/macOS-installer`
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## Building
|
||||
|
||||
Now we'll be formatting the USB to prep for both the macOS installer and OpenCore. We'll want to use macOS Extended (HFS+) with a GUID partition map(Using GUID is important for the patcher). This will create two partitions: the main `MyVolume` and a second called `EFI` which is used as a boot partition where your Mac's firmware will check for boot files.
|
||||
|
||||
* Note: By default, Disk Utility only shows partitions – press Cmd/Win+2 to show all devices (alternatively you can press the View button)
|
||||
|
||||

|
||||
|
||||
Next run the `createinstallmedia` command provided by [Apple](https://support.apple.com/en-us/HT201372). Note that the command is made for USB's formatted with the name `MyVolume`:
|
||||
|
||||
```sh
|
||||
sudo /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume
|
||||
```
|
||||
|
||||
* Note: You can also replace the `createinstallmedia` path with that of where your installer's located (same idea with the drive name).
|
||||
|
||||
* 
|
||||
|
||||
# Once finished, [return to the README to finish up](../README.md)
|
||||
@@ -16,7 +16,7 @@ Once you've booted OpenCore at least once, your hardware should now auto boot it
|
||||
|
||||
## Cannot boot macOS without the USB
|
||||
|
||||
At this time, the OpenCore Patcher won't install OpenCore 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.
|
||||
By default, the OpenCore Patcher won't install OpenCore 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.
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 558 KiB After Width: | Height: | Size: 370 KiB |
BIN
images/createinstallmedia.png
Normal file
|
After Width: | Height: | Size: 292 KiB |
|
Before Width: | Height: | Size: 9.5 MiB After Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 427 KiB After Width: | Height: | Size: 304 KiB |
BIN
images/format-usb.png
Normal file
|
After Width: | Height: | Size: 706 KiB |
BIN
images/munki-dmg.png
Normal file
|
After Width: | Height: | Size: 349 KiB |
BIN
images/munki-done-2.png
Normal file
|
After Width: | Height: | Size: 392 KiB |
BIN
images/munki-process.png
Normal file
|
After Width: | Height: | Size: 791 KiB |
BIN
images/munki.png
Normal file
|
After Width: | Height: | Size: 291 KiB |
|
Before Width: | Height: | Size: 9.0 MiB After Width: | Height: | Size: 77 KiB |
@@ -818,6 +818,8 @@
|
||||
<dict>
|
||||
<key>rtc-blacklist</key>
|
||||
<data></data>
|
||||
<key>OCLP-Version</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
<key>7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
|
||||
<dict>
|
||||
@@ -841,6 +843,7 @@
|
||||
<key>4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102</key>
|
||||
<array>
|
||||
<string>rtc-blacklist</string>
|
||||
<string>OCLP-Version</string>
|
||||
</array>
|
||||
<key>7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
|
||||
<array>
|
||||
|
||||