Fix External Display Support on MacBookPro10,1

This commit is contained in:
Mykola Grymalyuk
2021-03-09 13:56:39 -07:00
parent b84f701ff4
commit 41091a3967
17 changed files with 70 additions and 8 deletions

View File

@@ -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

View File

@@ -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`)

View File

@@ -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",

View File

@@ -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
View 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
```
![](../images/munki.png)
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:
![](../images/munki-process.png)
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`
![](../images/munki-done.png)
![](../images/munki-dmg.png)
## 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)
![Formatting the USB](../images/format-usb.png)
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).
* ![](../images/createinstallmedia.png)
# Once finished, [return to the README to finish up](../README.md)

View File

@@ -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.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 558 KiB

After

Width:  |  Height:  |  Size: 370 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 MiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 427 KiB

After

Width:  |  Height:  |  Size: 304 KiB

BIN
images/format-usb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 706 KiB

BIN
images/munki-dmg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 349 KiB

BIN
images/munki-done-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 KiB

BIN
images/munki-process.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 791 KiB

BIN
images/munki.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 MiB

After

Width:  |  Height:  |  Size: 77 KiB

View File

@@ -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>