mirror of
https://github.com/dortania/OpenCore-Legacy-Patcher.git
synced 2026-04-15 21:28:55 +10:00
Compare commits
20 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b25fa91962 | ||
|
|
627bc817d0 | ||
|
|
511ea4cf68 | ||
|
|
1a37abbb4b | ||
|
|
e284214dfb | ||
|
|
33df90c399 | ||
|
|
80e65bb6ab | ||
|
|
513fe5cb36 | ||
|
|
eb5280f827 | ||
|
|
bafff66417 | ||
|
|
f71c8925c6 | ||
|
|
9ace5c9624 | ||
|
|
939ee3f188 | ||
|
|
a57fa2d572 | ||
|
|
ce16e87101 | ||
|
|
abc704e6e3 | ||
|
|
8480c1d7c6 | ||
|
|
3b8168644f | ||
|
|
8756a2daa3 | ||
|
|
89d434e708 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,4 +1,5 @@
|
||||
.DS_Store
|
||||
/App
|
||||
/Build-Folder
|
||||
/.vscode
|
||||
__pycache__/
|
||||
|
||||
52
Build-App.command
Executable file
52
Build-App.command
Executable file
@@ -0,0 +1,52 @@
|
||||
#!/usr/bin/env python
|
||||
from __future__ import print_function
|
||||
|
||||
from shutil import copy
|
||||
from shutil import rmtree
|
||||
from distutils.dir_util import copy_tree
|
||||
|
||||
import os
|
||||
import json
|
||||
import subprocess
|
||||
import sys
|
||||
import zipfile
|
||||
|
||||
os.chdir(os.path.dirname(os.path.realpath(__file__)))
|
||||
current_path = os.getcwd()
|
||||
|
||||
print(current_path)
|
||||
|
||||
# File location
|
||||
command_path = os.path.join(current_path, "OpenCore-Patcher.command")
|
||||
resources_path = os.path.join(current_path, "Resources/")
|
||||
payloads_path = os.path.join(current_path, "payloads/")
|
||||
icns_path = os.path.join(current_path, "OC-Patcher.icns")
|
||||
plist_path = os.path.join(current_path, "Info.plist")
|
||||
|
||||
app_path = os.path.join(current_path, "App/")
|
||||
app_app_path = os.path.join(current_path, "App/OpenCore-Patcher.app/")
|
||||
contents_path = os.path.join(current_path, "App/OpenCore-Patcher.app/Contents/")
|
||||
app_macos_path = os.path.join(current_path, "App/OpenCore-Patcher.app/Contents/MacOS/")
|
||||
app_macos_payload_path = os.path.join(current_path, "App/OpenCore-Patcher.app/Contents/MacOS/payloads")
|
||||
app_macos_resources_path = os.path.join(current_path, "App/OpenCore-Patcher.app/Contents/MacOS/Resources")
|
||||
app_resources_path = os.path.join(current_path, "App/OpenCore-Patcher.app/Contents/Resources/")
|
||||
|
||||
|
||||
if os.path.exists(app_path):
|
||||
print("Cleaning App folder")
|
||||
rmtree(app_path)
|
||||
|
||||
print("Creating new App folder")
|
||||
os.mkdir(app_path)
|
||||
os.mkdir(app_app_path)
|
||||
os.mkdir(contents_path)
|
||||
os.mkdir(app_macos_path)
|
||||
os.mkdir(app_resources_path)
|
||||
|
||||
copy(command_path, app_macos_path)
|
||||
copy_tree(resources_path, app_macos_resources_path)
|
||||
copy_tree(payloads_path, app_macos_payload_path)
|
||||
copy(icns_path, app_resources_path)
|
||||
copy(plist_path, contents_path)
|
||||
copy(icns_path, app_macos_path)
|
||||
|
||||
10
CHANGELOG.md
10
CHANGELOG.md
@@ -1,5 +1,15 @@
|
||||
# OpenCore Legacy Patcher changelog
|
||||
|
||||
## 0.0.5
|
||||
- Enable hibernation support
|
||||
- Work around USB Map failing
|
||||
- Add checks whether booting with OpenCore
|
||||
- Fix MouSSE injection
|
||||
|
||||
## 0.0.4
|
||||
- Add basic audio support for legacy chipsets
|
||||
- Add patch for dual GPU machines
|
||||
|
||||
## 0.0.3
|
||||
- Fix Wireless patch logic
|
||||
|
||||
|
||||
32
Info.plist
Normal file
32
Info.plist
Normal file
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>OpenCore-Patcher.command</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>OC-Patcher.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.dortania.OpenCore-Patcher</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>0.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>OpenCore-Patcher</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>0.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>0.0</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>10.4</string>
|
||||
<key>LSMultipleInstancesProhibited</key>
|
||||
<true/>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Copyright 2020 Dortania</string>
|
||||
</dict>
|
||||
</plist>
|
||||
BIN
OC-Patcher.icns
Normal file
BIN
OC-Patcher.icns
Normal file
Binary file not shown.
BIN
OC-Patcher.png
Normal file
BIN
OC-Patcher.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 270 KiB |
@@ -12,8 +12,15 @@ import zipfile
|
||||
|
||||
from Resources import *
|
||||
|
||||
|
||||
# Allow py2 and 3 support
|
||||
try:
|
||||
input = raw_input
|
||||
except NameError:
|
||||
pass
|
||||
|
||||
# List build versions
|
||||
patcher_version = "0.0.3"
|
||||
patcher_version = "0.0.5"
|
||||
|
||||
CustomSMBIOS=False
|
||||
MainMenu=True
|
||||
@@ -53,7 +60,7 @@ while MainMenu:
|
||||
print(" 5. Exit")
|
||||
print("")
|
||||
|
||||
MainMenu = raw_input('Please select an option: ')
|
||||
MainMenu = input('Please select an option: ')
|
||||
|
||||
if MainMenu=="1":
|
||||
OpenCoreBuilderMenu=True
|
||||
@@ -69,7 +76,7 @@ while MainMenu:
|
||||
print(" 3. Return to main menu")
|
||||
print("")
|
||||
|
||||
OpenCoreBuilderMenu = raw_input('Please select an option: ')
|
||||
OpenCoreBuilderMenu = input('Please select an option: ')
|
||||
|
||||
if OpenCoreBuilderMenu=="1":
|
||||
AutoBuilderMenu=True
|
||||
@@ -83,7 +90,7 @@ while MainMenu:
|
||||
print (" %s" % Versions.current_path)
|
||||
print("")
|
||||
BuildOpenCore.BuildEFI()
|
||||
BuildOpenCore.BuildGUI()
|
||||
#BuildOpenCore.BuildGUI()
|
||||
BuildOpenCore.BuildSMBIOS()
|
||||
BuildOpenCore.SavePlist()
|
||||
BuildOpenCore.CleanBuildFolder()
|
||||
@@ -91,7 +98,7 @@ while MainMenu:
|
||||
print("Your OpenCore EFI has been built at:")
|
||||
print(" %s" % Versions.opencore_path_done)
|
||||
print("")
|
||||
AutoBuilderMenu = raw_input("Press any key to return to previous menu: ")
|
||||
AutoBuilderMenu = input("Press any key to return to previous menu: ")
|
||||
if AutoBuilderMenu=="1":
|
||||
print("Returning to previous menu...")
|
||||
AutoBuilderMenu=False
|
||||
@@ -106,7 +113,7 @@ while MainMenu:
|
||||
print("")
|
||||
print(" Supported versions: 0.6.3, 0.6.4")
|
||||
print("")
|
||||
OpenCoreOption = raw_input('Please enter the OpenCore you want (Press enter to exit): ')
|
||||
OpenCoreOption = input('Please enter the OpenCore you want (Press enter to exit): ')
|
||||
if OpenCoreOption == "":
|
||||
print("Exiting...")
|
||||
ChangeOCversion=False
|
||||
@@ -115,7 +122,7 @@ while MainMenu:
|
||||
print("")
|
||||
print(" New SMBIOS: %s" % OpenCoreOption)
|
||||
print("")
|
||||
ChangeOCversionYN = raw_input("Is this correcy? (y/n)")
|
||||
ChangeOCversionYN = input("Is this correct? (y/n)")
|
||||
if ChangeOCversionYN in {"y", "Y", "yes", "Yes"}:
|
||||
ChangeOCversion=False
|
||||
Versions.opencore_version = OpenCoreOption
|
||||
@@ -143,7 +150,7 @@ while MainMenu:
|
||||
print(" 2. Return to main menu")
|
||||
print("")
|
||||
|
||||
OpenCoreInstallerMenu = raw_input('Please select an option: ')
|
||||
OpenCoreInstallerMenu = input('Please select an option: ')
|
||||
|
||||
if OpenCoreInstallerMenu=="1":
|
||||
os.system('clear')
|
||||
@@ -156,7 +163,7 @@ while MainMenu:
|
||||
print("OpenCore folder missing!")
|
||||
print("Please build OpenCore first")
|
||||
print("")
|
||||
OpenCoreInstallerMenu = raw_input("Press any key to exit: ")
|
||||
OpenCoreInstallerMenu = input("Press any key to exit: ")
|
||||
if OpenCoreInstallerMenu=="1":
|
||||
print("Returning to main menu...")
|
||||
OpenCoreInstallerMenu=False
|
||||
@@ -181,7 +188,7 @@ while MainMenu:
|
||||
print("")
|
||||
print(" system_profiler SPHardwareDataType | grep 'Model Identifier'")
|
||||
print("")
|
||||
SMBIOSOption = raw_input('Please enter the SMBIOS of your machine (Press enter to exit): ')
|
||||
SMBIOSOption = input('Please enter the SMBIOS of your machine (Press enter to exit): ')
|
||||
if SMBIOSOption == "":
|
||||
print("Exiting...")
|
||||
SMBIOSMenu=False
|
||||
@@ -190,7 +197,7 @@ while MainMenu:
|
||||
print("")
|
||||
print(" New SMBIOS: %s" % SMBIOSOption)
|
||||
print("")
|
||||
SMBIOSMenuYN = raw_input("Is this correcy? (y/n)")
|
||||
SMBIOSMenuYN = input("Is this correct? (y/n)")
|
||||
if SMBIOSMenuYN in {"y", "Y", "yes", "Yes"}:
|
||||
SMBIOSMenu=False
|
||||
BuildOpenCore.current_model = SMBIOSOption
|
||||
@@ -211,8 +218,9 @@ while MainMenu:
|
||||
print(" - DhinakG: Writing and maintaining this Patcher")
|
||||
print(" - Khronokernel: Writing and maintaining this Patcher")
|
||||
print(" - Syncretic: AAAMouSSE and telemetrap")
|
||||
print(" - Slice: VoodooHDA")
|
||||
print("")
|
||||
CreditMenu = raw_input(" Press any key to exit: ")
|
||||
CreditMenu = input(" Press any key to exit: ")
|
||||
print("Returning to main menu...")
|
||||
CreditMenu=False
|
||||
MainMenu=True
|
||||
|
||||
49
README.md
49
README.md
@@ -1,14 +1,10 @@
|
||||
# OpenCore Legacy Patcher
|
||||
|
||||
<img src="OC-Patcher.png" width="256">
|
||||
|
||||
A python script for building and booting OpenCore on legacy Macs, see [Supported SMBIOS](#supported-smbios) on whether your model is supported.
|
||||
|
||||
Current TO-DO's with this patcher:
|
||||
|
||||
* [ ] Create macOS Installer
|
||||
* [ ] Legacy GPU Patches
|
||||
* ie. 2011 and older
|
||||
* [ ] Legacy Audio Patches
|
||||
* ie. 2011 and older
|
||||
See [here](https://github.com/dortania/Opencore-Legacy-Patcher/issues/1) for current TO-DOs on this patcher.
|
||||
|
||||
## Supported SMBIOS
|
||||
|
||||
@@ -102,3 +98,42 @@ Prerequists:
|
||||
4. Once finished, run option 2 a 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.
|
||||
|
||||
## How to uninstall OpenCore?
|
||||
|
||||
To remve OpenCore is actually quite simply:
|
||||
|
||||
1. Remove OpenCore either from the USB or internal drive
|
||||
* You'll need to mount the drive's EFI partition, and delete the EFI folder
|
||||
* [See here for example how to mount](https://dortania.github.io/OpenCore-Post-Install/universal/oc2hdd.html)
|
||||
2. Reset NVRAM
|
||||
* [Reset NVRAM or PRAM on your Mac](https://support.apple.com/HT204063)
|
||||
|
||||
## 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 remenber this entry and auto boot from then on.
|
||||
|
||||
### OpenCore won't show up in the boot picker
|
||||
|
||||
If OpenCore refuses to show up in the boot picker even with the above troubleshooting step, you can try to disable SIP and run this command(With your EFI drive mounted):
|
||||
|
||||
```sh
|
||||
sudo bless --verbose --file /Volumes/EFI/EFI/OC/Bootstrap/Bootstrap.efi --folder /Volumes/EFI/EFI/OC/Bootstrap --setBoot
|
||||
```
|
||||
|
||||
* Note: NVRAM write is disabled with SIP, so disables SIP first before running
|
||||
@@ -12,12 +12,27 @@ import subprocess
|
||||
import sys
|
||||
import zipfile
|
||||
|
||||
import Versions
|
||||
import ModelArray
|
||||
from Resources import Versions
|
||||
from Resources import ModelArray
|
||||
|
||||
# Allow py2 and 3 support
|
||||
try:
|
||||
input = raw_input
|
||||
except NameError:
|
||||
pass
|
||||
|
||||
# Find SMBIOS of machine
|
||||
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]
|
||||
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 = [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
|
||||
|
||||
@@ -65,7 +80,7 @@ def BuildEFI():
|
||||
|
||||
if current_model in ModelArray.SSEEmulator:
|
||||
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(
|
||||
"<false/><!--AAAMouSSE-->",
|
||||
"<true/><!--AAAMouSSE-->"
|
||||
@@ -153,50 +168,71 @@ def BuildEFI():
|
||||
if current_model in ModelArray.EthernetNvidia:
|
||||
# Nvidia chipsets all have the same path to ARPT
|
||||
Versions.plist_data = Versions.plist_data.replace(
|
||||
"#PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0)",
|
||||
"PciRoot(0x0)/Pci(0x15,0x0)Pci(0x0,0x0)"
|
||||
"#PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)",
|
||||
"PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)"
|
||||
)
|
||||
if current_model in ("MacBookAir2,1", "MacBookAir3,1", "MacBookAir3,2" ):
|
||||
Versions.plist_data = Versions.plist_data.replace(
|
||||
"#PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0)",
|
||||
"PciRoot(0x0)/Pci(0x15,0x0)Pci(0x0,0x0)"
|
||||
"#PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)",
|
||||
"PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)"
|
||||
)
|
||||
elif current_model in ("iMac7,1", "iMac8,1" ):
|
||||
Versions.plist_data = Versions.plist_data.replace(
|
||||
"#PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0)",
|
||||
"PciRoot(0x0)/Pci(0x1C,0x4)Pci(0x0,0x0)"
|
||||
"#PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)",
|
||||
"PciRoot(0x0)/Pci(0x1C,0x4)/Pci(0x0,0x0)"
|
||||
)
|
||||
elif current_model in ("iMac13,1", "iMac13,2"):
|
||||
Versions.plist_data = Versions.plist_data.replace(
|
||||
"#PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0)",
|
||||
"PciRoot(0x0)/Pci(0x1C,0x3)Pci(0x0,0x0)"
|
||||
"#PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)",
|
||||
"PciRoot(0x0)/Pci(0x1C,0x3)/Pci(0x0,0x0)"
|
||||
)
|
||||
elif current_model in ("MacPro5,1"):
|
||||
Versions.plist_data = Versions.plist_data.replace(
|
||||
"#PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0)",
|
||||
"PciRoot(0x0)/Pci(0x1C,0x5)Pci(0x0,0x0)"
|
||||
"#PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)",
|
||||
"PciRoot(0x0)/Pci(0x1C,0x5)/Pci(0x0,0x0)"
|
||||
)
|
||||
else:
|
||||
# Assumes we have a laptop with Intel chipset
|
||||
Versions.plist_data = Versions.plist_data.replace(
|
||||
"#PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0)",
|
||||
"PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0)"
|
||||
"#PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)",
|
||||
"PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)"
|
||||
)
|
||||
if current_model in ModelArray.LegacyHID:
|
||||
print("- Adding legacy IOHIDFamily Patch")
|
||||
Versions.plist_data = Versions.plist_data.replace(
|
||||
"<false/><!--IOHIDFamily-->",
|
||||
"<true/><!--IOHIDFamily-->"
|
||||
)
|
||||
|
||||
if current_model in ModelArray.LegacyAudio:
|
||||
print("- Adding VoodooHDA v%s" % Versions.voodoohda_version)
|
||||
copy(Versions.voodoohda_path, Versions.kext_path_build)
|
||||
Versions.plist_data = Versions.plist_data.replace(
|
||||
"<false/><!--VoodooHDA-->",
|
||||
"<true/><!--VoodooHDA-->"
|
||||
)
|
||||
|
||||
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):
|
||||
print("- Adding USB Map for %s" % current_model)
|
||||
copy(usb_map_path, Versions.kext_path_build)
|
||||
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(
|
||||
"USB-Map-SMBIOS.kext",
|
||||
map_name
|
||||
)
|
||||
|
||||
if current_model in ModelArray.DualGPUPatch:
|
||||
print("- Adding dual GPU patch")
|
||||
Versions.plist_data = Versions.plist_data.replace(
|
||||
"debug=0x100",
|
||||
"debug=0x100 agdpmod=pikera"
|
||||
)
|
||||
|
||||
|
||||
def BuildGUI():
|
||||
print("- Adding OpenCanopy GUI")
|
||||
@@ -306,12 +342,12 @@ def ListDiskutil():
|
||||
print("Loading diskutil...(This may take some time)")
|
||||
diskList = subprocess.Popen(["diskutil", "list"], stdout=subprocess.PIPE).communicate()[0]
|
||||
print(diskList)
|
||||
ChosenDisk = raw_input('Please select the disk you want to install OpenCore to(ie. disk1): ')
|
||||
ChosenDisk = input('Please select the disk you want to install OpenCore to(ie. disk1): ')
|
||||
ChosenDisk = ChosenDisk + "s1"
|
||||
print("Trying to mount %s" % ChosenDisk)
|
||||
diskMount = subprocess.Popen(["sudo", "diskutil", "mount", ChosenDisk], stdout=subprocess.PIPE).communicate()[0]
|
||||
print(diskMount)
|
||||
DiskMenu = raw_input("Press any key to continue: ")
|
||||
DiskMenu = input("Press any key to continue: ")
|
||||
|
||||
def MoveOpenCore():
|
||||
print("")
|
||||
|
||||
@@ -198,45 +198,45 @@ WifiBCM943224 = [
|
||||
]
|
||||
|
||||
WifiBCM94331 = [
|
||||
"MacBook5,1", # PciRoot(0x0)/Pci(0x15,0x0)Pci(0x0,0x0) 15-00
|
||||
"MacBook5,2", # PciRoot(0x0)/Pci(0x15,0x0)Pci(0x0,0x0) 15-00
|
||||
"MacBook6,1", # PciRoot(0x0)/Pci(0x15,0x0)Pci(0x0,0x0) 15-00
|
||||
"MacBook7,1", # PciRoot(0x0)/Pci(0x15,0x0)Pci(0x0,0x0) 15-00
|
||||
"MacBookAir2,1", # PciRoot(0x0)/Pci(0x15,0x0)Pci(0x0,0x0) 15-00
|
||||
"MacBookAir3,1", # PciRoot(0x0)/Pci(0x15,0x0)Pci(0x0,0x0) 15-00
|
||||
"MacBookAir3,2", # PciRoot(0x0)/Pci(0x15,0x0)Pci(0x0,0x0) 15-00
|
||||
"MacBookAir4,1", # PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0) 1c-01
|
||||
"MacBookAir4,2", # PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0) 1c-01
|
||||
"MacBookAir5,1", # PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0) 1c-01
|
||||
"MacBookAir5,2", # PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0) 1c-01
|
||||
"MacBookPro5,1", # PciRoot(0x0)/Pci(0x15,0x0)Pci(0x0,0x0) 15-00
|
||||
"MacBookPro5,2", # PciRoot(0x0)/Pci(0x15,0x0)Pci(0x0,0x0) 15-00
|
||||
"MacBookPro5,3", # PciRoot(0x0)/Pci(0x15,0x0)Pci(0x0,0x0) 15-00
|
||||
"MacBookPro5,4", # PciRoot(0x0)/Pci(0x15,0x0)Pci(0x0,0x0) 15-00
|
||||
"MacBookPro5,5", # PciRoot(0x0)/Pci(0x15,0x0)Pci(0x0,0x0) 15-00
|
||||
"MacBookPro6,1", # PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0) 1c-01
|
||||
"MacBookPro6,2", # PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0) 1c-01
|
||||
"MacBookPro7,1", # PciRoot(0x0)/Pci(0x15,0x0)Pci(0x0,0x0) 15-00
|
||||
"MacBookPro8,1", # PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0) 1c-01
|
||||
"MacBookPro8,2", # PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0) 1c-01
|
||||
"MacBookPro8,3", # PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0) 1c-01
|
||||
"MacBookPro9,1", # PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0) 1c-01
|
||||
"MacBookPro9,2", # PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0) 1c-01
|
||||
"MacBookPro10,1",# PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0) 1c-01
|
||||
"MacBookPro10,2",# PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0) 1c-01
|
||||
"Macmini3,1", # PciRoot(0x0)/Pci(0x15,0x0)Pci(0x0,0x0) 15-00
|
||||
"Macmini4,1", # PciRoot(0x0)/Pci(0x15,0x0)Pci(0x0,0x0) 15-00
|
||||
"Macmini5,1", # PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0) 1c-01
|
||||
"Macmini5,2", # PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0) 1c-01
|
||||
"Macmini5,3", # PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0) 1c-01
|
||||
"Macmini6,1", # PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0) 1c-01
|
||||
"Macmini6,2", # PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0) 1c-01
|
||||
"iMac7,1", # PciRoot(0x0)/Pci(0x1C,0x4)Pci(0x0,0x0) 1c-04
|
||||
"iMac8,1", # PciRoot(0x0)/Pci(0x1C,0x4)Pci(0x0,0x0) 1c-04
|
||||
"iMac9,1", # PciRoot(0x0)/Pci(0x15,0x0)Pci(0x0,0x0) 15-00
|
||||
"iMac13,1", # PciRoot(0x0)/Pci(0x1C,0x3)Pci(0x0,0x0) 1c-03
|
||||
"iMac13,2", # PciRoot(0x0)/Pci(0x1C,0x3)Pci(0x0,0x0) 1c-03
|
||||
"MacPro5,1" # PciRoot(0x0)/Pci(0x1C,0x5)Pci(0x0,0x0) 1c-05
|
||||
"MacBook5,1", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
||||
"MacBook5,2", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
||||
"MacBook6,1", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
||||
"MacBook7,1", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
||||
"MacBookAir2,1", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
||||
"MacBookAir3,1", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
||||
"MacBookAir3,2", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
||||
"MacBookAir4,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||
"MacBookAir4,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||
"MacBookAir5,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||
"MacBookAir5,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||
"MacBookPro5,1", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
||||
"MacBookPro5,2", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
||||
"MacBookPro5,3", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
||||
"MacBookPro5,4", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
||||
"MacBookPro5,5", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
||||
"MacBookPro6,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||
"MacBookPro6,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||
"MacBookPro7,1", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
||||
"MacBookPro8,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||
"MacBookPro8,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||
"MacBookPro8,3", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||
"MacBookPro9,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||
"MacBookPro9,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||
"MacBookPro10,1",# PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||
"MacBookPro10,2",# PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||
"Macmini3,1", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
||||
"Macmini4,1", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
||||
"Macmini5,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||
"Macmini5,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||
"Macmini5,3", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||
"Macmini6,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||
"Macmini6,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||
"iMac7,1", # PciRoot(0x0)/Pci(0x1C,0x4)/Pci(0x0,0x0)
|
||||
"iMac8,1", # PciRoot(0x0)/Pci(0x1C,0x4)/Pci(0x0,0x0)
|
||||
"iMac9,1", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
||||
"iMac13,1", # PciRoot(0x0)/Pci(0x1C,0x3)/Pci(0x0,0x0)
|
||||
"iMac13,2", # PciRoot(0x0)/Pci(0x1C,0x3)/Pci(0x0,0x0)
|
||||
"MacPro5,1" # PciRoot(0x0)/Pci(0x1C,0x5)/Pci(0x0,0x0)
|
||||
]
|
||||
|
||||
## Audio
|
||||
@@ -367,6 +367,26 @@ SidecarPatch = [
|
||||
"iMac14,3"
|
||||
]
|
||||
|
||||
DualGPUPatch = [
|
||||
"MacBookPro5,1",
|
||||
"MacBookPro5,2",
|
||||
"MacBookPro5,3",
|
||||
"MacBookPro5,4",
|
||||
"MacBookPro5,5",
|
||||
"MacBookPro6,1",
|
||||
"MacBookPro6,2",
|
||||
"MacBookPro8,2",
|
||||
"MacBookPro8,3",
|
||||
"MacBookPro9,1",
|
||||
"MacBookPro10,1",
|
||||
"Macmini5,2",
|
||||
"iMac12,1",
|
||||
"iMac12,2",
|
||||
"iMac13,2",
|
||||
"iMac14,2",
|
||||
"iMac14,3",
|
||||
]
|
||||
|
||||
# 11" Air
|
||||
MacBookAir61 = [
|
||||
"MacBookAir3,1",
|
||||
|
||||
@@ -23,6 +23,7 @@ mousse_version = "0.93"
|
||||
telemetrap_version = "1.0.0"
|
||||
io80211high_sierra_version = "1.0.0"
|
||||
io80211mojave_version = "1.0.0"
|
||||
voodoohda_version = "296"
|
||||
|
||||
# List current location
|
||||
os.chdir(os.path.dirname(os.path.realpath(__file__)))
|
||||
@@ -52,6 +53,7 @@ mousse_path = os.path.join(current_path, "payloads/Kexts/SSE/" "AAAMouSSE-v%s.zi
|
||||
telemetrap_path = os.path.join(current_path, "payloads/Kexts/SSE/" "telemetrap-v%s.zip" % telemetrap_version)
|
||||
io80211high_sierra_path = os.path.join(current_path, "payloads/Kexts/Wifi/" "IO80211HighSierra-v%s.zip" % io80211high_sierra_version)
|
||||
io80211mojave_path = os.path.join(current_path, "payloads/Kexts/Wifi/" "IO80211Mojave-v%s.zip" % io80211mojave_version)
|
||||
voodoohda_path = os.path.join(current_path, "payloads/Kexts/Audio/" "VoodooHDA-v%s.zip" % voodoohda_version)
|
||||
|
||||
# Build Location
|
||||
opencore_path_build = os.path.join(current_path, "Build-Folder/" "OpenCore-v%s.zip" % opencore_version)
|
||||
@@ -68,5 +70,6 @@ gui_path_build = os.path.join(current_path, "Build-Folder/" "OpenCore-v%s/EFI/OC
|
||||
macserial_path = os.path.join(current_path, "payloads/" "Tools")
|
||||
|
||||
# Icons
|
||||
app_icon_path = os.path.join(current_path, "OC-Patcher.icns")
|
||||
icon_path = os.path.join(current_path, "payloads/Icon/" ".VolumeIcon.icns")
|
||||
gui_path = os.path.join(current_path, "payloads/Icon/" "Resources.zip")
|
||||
@@ -159,7 +159,7 @@
|
||||
<dict>
|
||||
<key>Add</key>
|
||||
<dict>
|
||||
<key>#PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0)</key>
|
||||
<key>#PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)</key>
|
||||
<dict>
|
||||
<key>device-id</key>
|
||||
<data>ukMAAA==</data>
|
||||
@@ -424,13 +424,31 @@
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>Comment</key>
|
||||
<string>VoodooHDA</string>
|
||||
<key>Enabled</key>
|
||||
<false/><!--VoodooHDA-->
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string>18.0.0</string>
|
||||
<key>BundlePath</key>
|
||||
<string>VoodooHDA.kext</string>
|
||||
<key>ExecutablePath</key>
|
||||
<string>Contents/MacOS/VoodooHDA</string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>Comment</key>
|
||||
<string>USB Map</string>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<false/><!--USBmap-->
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
@@ -551,7 +569,7 @@
|
||||
<key>ConsoleAttributes</key>
|
||||
<integer>0</integer>
|
||||
<key>HibernateMode</key>
|
||||
<string>None</string>
|
||||
<string>Auto</string>
|
||||
<key>HideAuxiliary</key>
|
||||
<true/>
|
||||
<key>PickerAttributes</key>
|
||||
@@ -607,7 +625,7 @@
|
||||
<key>EnablePassword</key>
|
||||
<false/>
|
||||
<key>ExposeSensitiveData</key>
|
||||
<integer>6</integer>
|
||||
<integer>15</integer>
|
||||
<key>HaltLevel</key>
|
||||
<integer>2147483648</integer>
|
||||
<key>PasswordHash</key>
|
||||
|
||||
@@ -161,7 +161,7 @@
|
||||
<dict>
|
||||
<key>Add</key>
|
||||
<dict>
|
||||
<key>#PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0)</key>
|
||||
<key>#PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)</key>
|
||||
<dict>
|
||||
<key>device-id</key>
|
||||
<data>ukMAAA==</data>
|
||||
@@ -426,13 +426,31 @@
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>Comment</key>
|
||||
<string>VoodooHDA</string>
|
||||
<key>Enabled</key>
|
||||
<false/><!--VoodooHDA-->
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string>18.0.0</string>
|
||||
<key>BundlePath</key>
|
||||
<string>VoodooHDA.kext</string>
|
||||
<key>ExecutablePath</key>
|
||||
<string>Contents/MacOS/VoodooHDA</string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>Comment</key>
|
||||
<string>USB Map</string>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<false/><!--USBmap-->
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
@@ -553,7 +571,7 @@
|
||||
<key>ConsoleAttributes</key>
|
||||
<integer>0</integer>
|
||||
<key>HibernateMode</key>
|
||||
<string>None</string>
|
||||
<string>Auto</string>
|
||||
<key>HideAuxiliary</key>
|
||||
<true/>
|
||||
<key>PickerAttributes</key>
|
||||
@@ -611,7 +629,7 @@
|
||||
<key>EnablePassword</key>
|
||||
<false/>
|
||||
<key>ExposeSensitiveData</key>
|
||||
<integer>6</integer>
|
||||
<integer>15</integer>
|
||||
<key>HaltLevel</key>
|
||||
<integer>2147483648</integer>
|
||||
<key>PasswordHash</key>
|
||||
|
||||
BIN
payloads/Kexts/Audio/VoodooHDA-v296.zip
Normal file
BIN
payloads/Kexts/Audio/VoodooHDA-v296.zip
Normal file
Binary file not shown.
Reference in New Issue
Block a user