Compare commits

...

14 Commits
0.0.4 ... 0.0.7

Author SHA1 Message Date
Mykola Grymalyuk
9caa39c50d Add RestrictEvents kext
Ensures firmware updates cannot be performed even within the installer
2020-12-12 13:21:23 -07:00
Mykola Grymalyuk
48d714db61 Fix BlacklistAppleUpdate
Closes https://github.com/dortania/Opencore-Legacy-Patcher/issues/17
2020-12-10 21:33:47 -07:00
Mykola Grymalyuk
59ac0c3fec Fix missing SSDT-CPBG patch 2020-12-06 09:01:25 -07:00
Mykola Grymalyuk
dc7560b142 Add MacPro3,1 to HID patch 2020-12-04 21:26:01 -07:00
Mykola Grymalyuk
0f0ca7d4ec Increment build version 2020-12-04 16:09:32 -07:00
Mykola Grymalyuk
6f4bface55 Sync changelog
Closes https://github.com/dortania/Opencore-Legacy-Patcher/issues/8
2020-12-04 16:03:43 -07:00
Mykola Grymalyuk
ad5004d3e8 Add temp workaround to macserial issue 2020-12-04 15:59:20 -07:00
Mykola Grymalyuk
fff9c4b75d Update BuildOpenCore.py 2020-12-04 15:33:21 -07:00
Mykola Grymalyuk
d6224db564 Update macserial 2020-12-04 15:27:19 -07:00
Mykola Grymalyuk
6b900d7aa8 Update README.md 2020-12-04 14:29:36 -07:00
Mykola Grymalyuk
217999a8e7 Update README.md 2020-12-04 14:29:18 -07:00
Mykola Grymalyuk
b25fa91962 Fix misc issues 2020-12-03 13:42:54 -07:00
Mykola Grymalyuk
627bc817d0 Enable Hibernation support
Closes https://github.com/dortania/Opencore-Legacy-Patcher/issues/7
2020-12-03 11:45:23 -07:00
Mykola Grymalyuk
511ea4cf68 Increment build version 2020-12-03 09:42:50 -07:00
10 changed files with 116 additions and 27 deletions

View File

@@ -1,5 +1,20 @@
# OpenCore Legacy Patcher changelog # OpenCore Legacy Patcher changelog
## 0.0.7
- Add MacPro3,1 to HID patch
- Fix missing SSDT-CPBG patch
- Fix BlacklistAppleUpdate
- Add RestrictEvents kext
## 0.0.6
- Fix macserial crashing
## 0.0.5
- Enable hibernation support
- Work around USB Map failing
- Add checks whether booting with OpenCore
- Fix MouSSE injection
## 0.0.4 ## 0.0.4
- Add basic audio support for legacy chipsets - Add basic audio support for legacy chipsets
- Add patch for dual GPU machines - Add patch for dual GPU machines

View File

@@ -20,7 +20,7 @@ except NameError:
pass pass
# List build versions # List build versions
patcher_version = "0.0.4" patcher_version = "0.0.7"
CustomSMBIOS=False CustomSMBIOS=False
MainMenu=True MainMenu=True
@@ -218,6 +218,7 @@ while MainMenu:
print(" - DhinakG: Writing and maintaining this Patcher") print(" - DhinakG: Writing and maintaining this Patcher")
print(" - Khronokernel: Writing and maintaining this Patcher") print(" - Khronokernel: Writing and maintaining this Patcher")
print(" - Syncretic: AAAMouSSE and telemetrap") print(" - Syncretic: AAAMouSSE and telemetrap")
print(" - Slice: VoodooHDA")
print("") print("")
CreditMenu = input(" Press any key to exit: ") CreditMenu = input(" Press any key to exit: ")
print("Returning to main menu...") print("Returning to main menu...")

View File

@@ -127,3 +127,7 @@ Once you've booted OpenCore at least once, your hardware should now auto boot it
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. 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 remenber this entry and auto boot from then on. Reminder that once this is done, you'll need to select OpenCore in the boot picker again for your hardware to remenber 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.

View File

@@ -22,8 +22,17 @@ except NameError:
pass pass
# Find SMBIOS of machine # Find SMBIOS of machine
opencore_model = subprocess.Popen(["NVRAM", "4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:oem-product"], stdout=subprocess.PIPE).communicate()[0]
if opencore_model not in ("NVRAM: Error getting variable - '4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:oem-product': (iokit/common) data was not found"):
print("Detected OpenCore machine")
opencore_model = subprocess.Popen("nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:oem-product".split(), stdout=subprocess.PIPE)
opencore_model = [line.strip().split(":oem-product ", 1)[1] for line in opencore_model.stdout.read().split("\n") if line.strip().startswith("4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:")][0]
current_model = opencore_model
else:
print("No OpenCore detected")
current_model = subprocess.Popen("system_profiler SPHardwareDataType".split(), stdout=subprocess.PIPE) current_model = subprocess.Popen("system_profiler SPHardwareDataType".split(), stdout=subprocess.PIPE)
current_model = [line.strip().split(": ", 1)[1] for line in current_model.stdout.read().split("\n") if line.strip().startswith("Model Identifier")][0] current_model = [line.strip().split(": ", 1)[1] for line in current_model.stdout.read().split("\n") if line.strip().startswith("Model Identifier")][0]
print("Current Model: %s" % current_model)
OCExist = False OCExist = False
@@ -52,13 +61,16 @@ def BuildEFI():
copy(Versions.plist_path, Versions.plist_path_build) copy(Versions.plist_path, Versions.plist_path_build)
with open(Versions.plist_path_build_full, 'r') as file : with open(Versions.plist_path_build_full, 'r') as file :
Versions.plist_data = file.read() Versions.plist_data = file.read()
# Adding must have kexts
print("- Adding Lilu %s" % Versions.lilu_version) print("- Adding Lilu v%s" % Versions.lilu_version)
copy(Versions.lilu_path, Versions.kext_path_build) copy(Versions.lilu_path, Versions.kext_path_build)
print("- Adding WhateverGreen %s" % Versions.whatevergreen_version) print("- Adding WhateverGreen v%s" % Versions.whatevergreen_version)
copy(Versions.whatevergreen_path, Versions.kext_path_build) copy(Versions.whatevergreen_path, Versions.kext_path_build)
print("- Adding RestrictEvents v%s" % Versions.restrictevents_version)
copy(Versions.restrictevents_path, Versions.kext_path_build)
# Checks for kexts # Checks for kexts
# CPU Kext Patches # CPU Kext Patches
if current_model in ModelArray.DualSocket: if current_model in ModelArray.DualSocket:
@@ -71,13 +83,13 @@ def BuildEFI():
if current_model in ModelArray.SSEEmulator: if current_model in ModelArray.SSEEmulator:
print("- Adding AAAMouSSE v%s" % Versions.mousse_version) print("- Adding AAAMouSSE v%s" % Versions.mousse_version)
copy(Versions.mousse_version, Versions.kext_path_build) copy(Versions.mousse_path, Versions.kext_path_build)
Versions.plist_data = Versions.plist_data.replace( Versions.plist_data = Versions.plist_data.replace(
"<false/><!--AAAMouSSE-->", "<false/><!--AAAMouSSE-->",
"<true/><!--AAAMouSSE-->" "<true/><!--AAAMouSSE-->"
) )
if current_model in ModelArray.MissingSSE42: if current_model in ModelArray.MissingSSE42:
print("- Adding telemetrap %s" % Versions.telemetrap_version) print("- Adding telemetrap v%s" % Versions.telemetrap_version)
copy(Versions.telemetrap_path, Versions.kext_path_build) copy(Versions.telemetrap_path, Versions.kext_path_build)
Versions.plist_data = Versions.plist_data.replace( Versions.plist_data = Versions.plist_data.replace(
"<false/><!--telemetrap-->", "<false/><!--telemetrap-->",
@@ -101,7 +113,7 @@ def BuildEFI():
"<true/><!--MarvelYukonEthernet-->" "<true/><!--MarvelYukonEthernet-->"
) )
if current_model in ModelArray.EthernetBroadcom: if current_model in ModelArray.EthernetBroadcom:
print("- Adding CatalinaBCM5701Ethernet %s" % Versions.bcm570_version) print("- Adding CatalinaBCM5701Ethernet v%s" % Versions.bcm570_version)
copy(Versions.bcm570_path, Versions.kext_path_build) copy(Versions.bcm570_path, Versions.kext_path_build)
Versions.plist_data = Versions.plist_data.replace( Versions.plist_data = Versions.plist_data.replace(
"<false/><!--CatalinaBCM5701Ethernet-->", "<false/><!--CatalinaBCM5701Ethernet-->",
@@ -203,11 +215,23 @@ def BuildEFI():
"<true/><!--VoodooHDA-->" "<true/><!--VoodooHDA-->"
) )
if current_model in ModelArray.pciSSDT:
print("- Adding SSDT-CPBG")
copy(Versions.pci_ssdt_path, Versions.acpi_path_build)
Versions.plist_data = Versions.plist_data.replace(
"<false/><!--SSDT-CPBG-->",
"<true/><!--SSDT-CPBG-->"
)
usb_map_path = os.path.join(Versions.current_path, "payloads/Kexts/Maps/Zip/" "USB-Map-%s.zip" % current_model) usb_map_path = os.path.join(Versions.current_path, "payloads/Kexts/Maps/Zip/" "USB-Map-%s.zip" % current_model)
if os.path.exists(usb_map_path): if os.path.exists(usb_map_path):
print("- Adding USB Map for %s" % current_model) print("- Adding USB Map for %s" % current_model)
copy(usb_map_path, Versions.kext_path_build) copy(usb_map_path, Versions.kext_path_build)
map_name = ("USB-Map-%s.kext" % current_model) map_name = ("USB-Map-%s.kext" % current_model)
Versions.plist_data = Versions.plist_data.replace(
"<<false/><!--USBmap-->",
"<true/><!--USBmap-->"
)
Versions.plist_data = Versions.plist_data.replace( Versions.plist_data = Versions.plist_data.replace(
"USB-Map-SMBIOS.kext", "USB-Map-SMBIOS.kext",
map_name map_name
@@ -259,6 +283,8 @@ def BuildSMBIOS():
new_model = "MacPro7,1" new_model = "MacPro7,1"
# Grab serials from macserial # Grab serials from macserial
serialPatch = subprocess.Popen(["xattr", "-cr", "./payloads/tools/macserial"], stdout=subprocess.PIPE).communicate()[0]
print(serialPatch)
serialData = subprocess.Popen((r"./payloads/tools/macserial -g -m " + new_model + " -n 1").split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT) serialData = subprocess.Popen((r"./payloads/tools/macserial -g -m " + new_model + " -n 1").split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
serialData = serialData.stdout.read().strip().split(" | ") serialData = serialData.stdout.read().strip().split(" | ")
@@ -268,6 +294,10 @@ def BuildSMBIOS():
new_model new_model
) )
if serialData == "['']":
# Used as a backup for when macserial fails
print("Failed to load macserial")
else:
# Patch Number Serial # Patch Number Serial
Versions.plist_data = Versions.plist_data.replace( Versions.plist_data = Versions.plist_data.replace(
"W00000000001", "W00000000001",

View File

@@ -343,6 +343,7 @@ LegacyHID = [
"iMac8,1", "iMac8,1",
"iMac9,1", "iMac9,1",
"iMac10,1", "iMac10,1",
"MacPro3,1"
] ]
NVMePatch = [ NVMePatch = [

View File

@@ -24,6 +24,7 @@ telemetrap_version = "1.0.0"
io80211high_sierra_version = "1.0.0" io80211high_sierra_version = "1.0.0"
io80211mojave_version = "1.0.0" io80211mojave_version = "1.0.0"
voodoohda_version = "296" voodoohda_version = "296"
restrictevents_version = "1.0.0"
# List current location # List current location
os.chdir(os.path.dirname(os.path.realpath(__file__))) os.chdir(os.path.dirname(os.path.realpath(__file__)))
@@ -45,6 +46,7 @@ nvme_driver_path = os.path.join(current_path, "payloads/Drivers/" "NvmExpressDxe
lilu_path = os.path.join(current_path, "payloads/Kexts/Acidanthera/" "Lilu-v%s.zip" % lilu_version) lilu_path = os.path.join(current_path, "payloads/Kexts/Acidanthera/" "Lilu-v%s.zip" % lilu_version)
whatevergreen_path = os.path.join(current_path, "payloads/Kexts/Acidanthera/" "WhateverGreen-v%s.zip" % whatevergreen_version) whatevergreen_path = os.path.join(current_path, "payloads/Kexts/Acidanthera/" "WhateverGreen-v%s.zip" % whatevergreen_version)
airportbcrmfixup_path = os.path.join(current_path, "payloads/Kexts/Acidanthera/" "AirportBrcmFixup-v%s.zip" % airportbcrmfixup_version) airportbcrmfixup_path = os.path.join(current_path, "payloads/Kexts/Acidanthera/" "AirportBrcmFixup-v%s.zip" % airportbcrmfixup_version)
restrictevents_path = os.path.join(current_path, "payloads/Kexts/Acidanthera/" "RestrictEvents-v%s.zip" % restrictevents_version)
bcm570_path = os.path.join(current_path, "payloads/Kexts/Ethernet/" "CatalinaBCM5701Ethernet-v%s.zip" % bcm570_version) bcm570_path = os.path.join(current_path, "payloads/Kexts/Ethernet/" "CatalinaBCM5701Ethernet-v%s.zip" % bcm570_version)
marvel_path = os.path.join(current_path, "payloads/Kexts/Ethernet/" "MarvelYukonEthernet-v%s.zip" % marvel_version) marvel_path = os.path.join(current_path, "payloads/Kexts/Ethernet/" "MarvelYukonEthernet-v%s.zip" % marvel_version)
nforce_path = os.path.join(current_path, "payloads/Kexts/Ethernet/" "nForceEthernet-v%s.zip" % nforce_version) nforce_path = os.path.join(current_path, "payloads/Kexts/Ethernet/" "nForceEthernet-v%s.zip" % nforce_version)

View File

@@ -210,6 +210,24 @@
<key>PlistPath</key> <key>PlistPath</key>
<string>Contents/Info.plist</string> <string>Contents/Info.plist</string>
</dict> </dict>
<dict>
<key>Arch</key>
<string>x86_64</string>
<key>Comment</key>
<string>Process Blocker</string>
<key>Enabled</key>
<true/><!--RestrictEvents-->
<key>MaxKernel</key>
<string></string>
<key>MinKernel</key>
<string></string>
<key>BundlePath</key>
<string>RestrictEvents.kext</string>
<key>ExecutablePath</key>
<string>Contents/MacOS/RestrictEvents</string>
<key>PlistPath</key>
<string>Contents/Info.plist</string>
</dict>
<dict> <dict>
<key>Arch</key> <key>Arch</key>
<string>x86_64</string> <string>x86_64</string>
@@ -448,7 +466,7 @@
<key>Comment</key> <key>Comment</key>
<string>USB Map</string> <string>USB Map</string>
<key>Enabled</key> <key>Enabled</key>
<true/> <false/><!--USBmap-->
<key>MaxKernel</key> <key>MaxKernel</key>
<string></string> <string></string>
<key>MinKernel</key> <key>MinKernel</key>
@@ -569,7 +587,7 @@
<key>ConsoleAttributes</key> <key>ConsoleAttributes</key>
<integer>0</integer> <integer>0</integer>
<key>HibernateMode</key> <key>HibernateMode</key>
<string>None</string> <string>Auto</string>
<key>HideAuxiliary</key> <key>HideAuxiliary</key>
<true/> <true/>
<key>PickerAttributes</key> <key>PickerAttributes</key>
@@ -625,7 +643,7 @@
<key>EnablePassword</key> <key>EnablePassword</key>
<false/> <false/>
<key>ExposeSensitiveData</key> <key>ExposeSensitiveData</key>
<integer>6</integer> <integer>15</integer>
<key>HaltLevel</key> <key>HaltLevel</key>
<integer>2147483648</integer> <integer>2147483648</integer>
<key>PasswordHash</key> <key>PasswordHash</key>

View File

@@ -212,6 +212,24 @@
<key>PlistPath</key> <key>PlistPath</key>
<string>Contents/Info.plist</string> <string>Contents/Info.plist</string>
</dict> </dict>
<dict>
<key>Arch</key>
<string>x86_64</string>
<key>Comment</key>
<string>Process Blocker</string>
<key>Enabled</key>
<true/><!--RestrictEvents-->
<key>MaxKernel</key>
<string></string>
<key>MinKernel</key>
<string></string>
<key>BundlePath</key>
<string>RestrictEvents.kext</string>
<key>ExecutablePath</key>
<string>Contents/MacOS/RestrictEvents</string>
<key>PlistPath</key>
<string>Contents/Info.plist</string>
</dict>
<dict> <dict>
<key>Arch</key> <key>Arch</key>
<string>x86_64</string> <string>x86_64</string>
@@ -450,7 +468,7 @@
<key>Comment</key> <key>Comment</key>
<string>USB Map</string> <string>USB Map</string>
<key>Enabled</key> <key>Enabled</key>
<true/> <false/><!--USBmap-->
<key>MaxKernel</key> <key>MaxKernel</key>
<string></string> <string></string>
<key>MinKernel</key> <key>MinKernel</key>
@@ -571,7 +589,7 @@
<key>ConsoleAttributes</key> <key>ConsoleAttributes</key>
<integer>0</integer> <integer>0</integer>
<key>HibernateMode</key> <key>HibernateMode</key>
<string>None</string> <string>Auto</string>
<key>HideAuxiliary</key> <key>HideAuxiliary</key>
<true/> <true/>
<key>PickerAttributes</key> <key>PickerAttributes</key>
@@ -623,13 +641,13 @@
<key>BootProtect</key> <key>BootProtect</key>
<string>Bootstrap</string> <string>Bootstrap</string>
<key>BlacklistAppleUpdate</key> <key>BlacklistAppleUpdate</key>
<false/> <true/>
<key>DmgLoading</key> <key>DmgLoading</key>
<string>Signed</string> <string>Signed</string>
<key>EnablePassword</key> <key>EnablePassword</key>
<false/> <false/>
<key>ExposeSensitiveData</key> <key>ExposeSensitiveData</key>
<integer>6</integer> <integer>15</integer>
<key>HaltLevel</key> <key>HaltLevel</key>
<integer>2147483648</integer> <integer>2147483648</integer>
<key>PasswordHash</key> <key>PasswordHash</key>

Binary file not shown.

Binary file not shown.