mirror of
https://github.com/dortania/OpenCore-Legacy-Patcher.git
synced 2026-06-19 05:40:01 +10:00
Remove trailing whitespaces
This commit is contained in:
+16
-16
@@ -46,7 +46,7 @@ class create_binary:
|
|||||||
parser.add_argument('--reset_binaries', action='store_true', help='Force redownload and imaging of payloads')
|
parser.add_argument('--reset_binaries', action='store_true', help='Force redownload and imaging of payloads')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
return args
|
return args
|
||||||
|
|
||||||
def setup_pathing(self):
|
def setup_pathing(self):
|
||||||
python_path = sys.executable
|
python_path = sys.executable
|
||||||
python_binary = python_path.split("/")[-1]
|
python_binary = python_path.split("/")[-1]
|
||||||
@@ -66,9 +66,9 @@ class create_binary:
|
|||||||
if not Path(pyinstaller_path).exists():
|
if not Path(pyinstaller_path).exists():
|
||||||
print(f" - pyinstaller not found:\n\t{pyinstaller_path}")
|
print(f" - pyinstaller not found:\n\t{pyinstaller_path}")
|
||||||
raise Exception("pyinstaller not found")
|
raise Exception("pyinstaller not found")
|
||||||
|
|
||||||
self.pyinstaller_path = pyinstaller_path
|
self.pyinstaller_path = pyinstaller_path
|
||||||
|
|
||||||
def preflight_processes(self):
|
def preflight_processes(self):
|
||||||
print("- Starting preflight processes")
|
print("- Starting preflight processes")
|
||||||
self.setup_pathing()
|
self.setup_pathing()
|
||||||
@@ -77,26 +77,26 @@ class create_binary:
|
|||||||
if not self.args.build_tui:
|
if not self.args.build_tui:
|
||||||
# payloads.dmg is only needed for GUI builds
|
# payloads.dmg is only needed for GUI builds
|
||||||
self.generate_paylods_dmg()
|
self.generate_paylods_dmg()
|
||||||
|
|
||||||
def postflight_processes(self):
|
def postflight_processes(self):
|
||||||
print("- Starting postflight processes")
|
print("- Starting postflight processes")
|
||||||
if self.args.build_tui:
|
if self.args.build_tui:
|
||||||
self.move_launcher()
|
self.move_launcher()
|
||||||
self.patch_load_command()
|
self.patch_load_command()
|
||||||
self.add_commit_data()
|
self.add_commit_data()
|
||||||
|
|
||||||
def build_binary(self):
|
def build_binary(self):
|
||||||
if Path(f"./dist/OpenCore-Patcher.app").exists():
|
if Path(f"./dist/OpenCore-Patcher.app").exists():
|
||||||
print("- Found OpenCore-Patcher.app, removing...")
|
print("- Found OpenCore-Patcher.app, removing...")
|
||||||
rm_output = subprocess.run(
|
rm_output = subprocess.run(
|
||||||
["rm", "-rf", "./dist/OpenCore-Patcher.app"],
|
["rm", "-rf", "./dist/OpenCore-Patcher.app"],
|
||||||
stdout=subprocess.PIPE, stderr=subprocess.PIPE
|
stdout=subprocess.PIPE, stderr=subprocess.PIPE
|
||||||
)
|
)
|
||||||
if rm_output.returncode != 0:
|
if rm_output.returncode != 0:
|
||||||
print("- Remove failed")
|
print("- Remove failed")
|
||||||
print(rm_output.stderr.decode('utf-8'))
|
print(rm_output.stderr.decode('utf-8'))
|
||||||
raise Exception("Remove failed")
|
raise Exception("Remove failed")
|
||||||
|
|
||||||
|
|
||||||
if self.args.build_tui:
|
if self.args.build_tui:
|
||||||
print("- Building TUI binary...")
|
print("- Building TUI binary...")
|
||||||
@@ -104,7 +104,7 @@ class create_binary:
|
|||||||
else:
|
else:
|
||||||
print("- Building GUI binary...")
|
print("- Building GUI binary...")
|
||||||
build_args = [self.pyinstaller_path, "./OpenCore-Patcher-GUI.spec", "--noconfirm"]
|
build_args = [self.pyinstaller_path, "./OpenCore-Patcher-GUI.spec", "--noconfirm"]
|
||||||
|
|
||||||
build_result = subprocess.run(build_args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
build_result = subprocess.run(build_args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
if build_result.returncode != 0:
|
if build_result.returncode != 0:
|
||||||
print("- Build failed")
|
print("- Build failed")
|
||||||
@@ -135,7 +135,7 @@ class create_binary:
|
|||||||
if self.args.reset_binaries:
|
if self.args.reset_binaries:
|
||||||
print(f" - Removing old {resource}")
|
print(f" - Removing old {resource}")
|
||||||
rm_output = subprocess.run(
|
rm_output = subprocess.run(
|
||||||
["rm", "-rf", f"./payloads/{resource}"],
|
["rm", "-rf", f"./payloads/{resource}"],
|
||||||
stdout=subprocess.PIPE, stderr=subprocess.PIPE
|
stdout=subprocess.PIPE, stderr=subprocess.PIPE
|
||||||
)
|
)
|
||||||
if rm_output.returncode != 0:
|
if rm_output.returncode != 0:
|
||||||
@@ -149,7 +149,7 @@ class create_binary:
|
|||||||
|
|
||||||
download_result = subprocess.run(
|
download_result = subprocess.run(
|
||||||
[
|
[
|
||||||
"curl", "-LO",
|
"curl", "-LO",
|
||||||
f"https://github.com/dortania/PatcherSupportPkg/releases/download/{patcher_support_pkg_version}/{resource}"
|
f"https://github.com/dortania/PatcherSupportPkg/releases/download/{patcher_support_pkg_version}/{resource}"
|
||||||
],
|
],
|
||||||
stdout=subprocess.PIPE, stderr=subprocess.PIPE
|
stdout=subprocess.PIPE, stderr=subprocess.PIPE
|
||||||
@@ -175,7 +175,7 @@ class create_binary:
|
|||||||
if self.args.reset_binaries:
|
if self.args.reset_binaries:
|
||||||
print(" - Removing old payloads.dmg")
|
print(" - Removing old payloads.dmg")
|
||||||
rm_output = subprocess.run(
|
rm_output = subprocess.run(
|
||||||
["rm", "-rf", "./payloads.dmg"],
|
["rm", "-rf", "./payloads.dmg"],
|
||||||
stdout=subprocess.PIPE, stderr=subprocess.PIPE
|
stdout=subprocess.PIPE, stderr=subprocess.PIPE
|
||||||
)
|
)
|
||||||
if rm_output.returncode != 0:
|
if rm_output.returncode != 0:
|
||||||
@@ -199,7 +199,7 @@ class create_binary:
|
|||||||
print(" - DMG generation failed")
|
print(" - DMG generation failed")
|
||||||
print(dmg_output.stderr.decode('utf-8'))
|
print(dmg_output.stderr.decode('utf-8'))
|
||||||
raise Exception("DMG generation failed")
|
raise Exception("DMG generation failed")
|
||||||
|
|
||||||
print(" - DMG generation complete")
|
print(" - DMG generation complete")
|
||||||
|
|
||||||
def add_commit_data(self):
|
def add_commit_data(self):
|
||||||
@@ -215,17 +215,17 @@ class create_binary:
|
|||||||
"Commit Date": self.args.commit_date
|
"Commit Date": self.args.commit_date
|
||||||
}
|
}
|
||||||
plistlib.dump(plist, Path(plist_path).open("wb"), sort_keys=True)
|
plistlib.dump(plist, Path(plist_path).open("wb"), sort_keys=True)
|
||||||
|
|
||||||
def patch_load_command(self):
|
def patch_load_command(self):
|
||||||
# Patches LC_VERSION_MIN_MACOSX in Load Command to report 10.10
|
# Patches LC_VERSION_MIN_MACOSX in Load Command to report 10.10
|
||||||
#
|
#
|
||||||
# By default Pyinstaller will create binaries supporting 10.13+
|
# By default Pyinstaller will create binaries supporting 10.13+
|
||||||
# However this limitation is entirely arbitrary for our libraries
|
# However this limitation is entirely arbitrary for our libraries
|
||||||
# and instead we're able to support 10.10 without issues.
|
# and instead we're able to support 10.10 without issues.
|
||||||
#
|
#
|
||||||
# To verify set version:
|
# To verify set version:
|
||||||
# otool -l ./dist/OpenCore-Patcher.app/Contents/MacOS/OpenCore-Patcher
|
# otool -l ./dist/OpenCore-Patcher.app/Contents/MacOS/OpenCore-Patcher
|
||||||
#
|
#
|
||||||
# cmd LC_VERSION_MIN_MACOSX
|
# cmd LC_VERSION_MIN_MACOSX
|
||||||
# cmdsize 16
|
# cmdsize 16
|
||||||
# version 10.13
|
# version 10.13
|
||||||
@@ -243,7 +243,7 @@ class create_binary:
|
|||||||
def move_launcher(self):
|
def move_launcher(self):
|
||||||
print(" - Adding TUI launcher")
|
print(" - Adding TUI launcher")
|
||||||
mv_output = subprocess.run(
|
mv_output = subprocess.run(
|
||||||
["cp", "./payloads/launcher.sh", "./dist/OpenCore-Patcher.app/Contents/MacOS/Launcher"],
|
["cp", "./payloads/launcher.sh", "./dist/OpenCore-Patcher.app/Contents/MacOS/Launcher"],
|
||||||
stdout=subprocess.PIPE, stderr=subprocess.PIPE
|
stdout=subprocess.PIPE, stderr=subprocess.PIPE
|
||||||
)
|
)
|
||||||
if mv_output.returncode != 0:
|
if mv_output.returncode != 0:
|
||||||
|
|||||||
+2
-2
@@ -178,7 +178,7 @@
|
|||||||
- Resolves Install USB Creation using incorrect installer
|
- Resolves Install USB Creation using incorrect installer
|
||||||
- Resolves `installer` failing to extract InstallAssistant in older OSes
|
- Resolves `installer` failing to extract InstallAssistant in older OSes
|
||||||
- Resolves certain Samsung NVMe drives appearing as external on Mac Pros
|
- Resolves certain Samsung NVMe drives appearing as external on Mac Pros
|
||||||
- Add FeatureUnlock configurability
|
- Add FeatureUnlock configurability
|
||||||
- Add NVRAM WriteFlash configurability for degraded/fragile systems
|
- Add NVRAM WriteFlash configurability for degraded/fragile systems
|
||||||
- Add `ThirdPartyDrives` quirk configurability
|
- Add `ThirdPartyDrives` quirk configurability
|
||||||
- Resolve Skylight dylib injection issue
|
- Resolve Skylight dylib injection issue
|
||||||
@@ -229,7 +229,7 @@
|
|||||||
- Resolve rare memory corruption due to FeatureUnlock
|
- Resolve rare memory corruption due to FeatureUnlock
|
||||||
- Raise SurPlus MaxKernel to 21.99.99
|
- Raise SurPlus MaxKernel to 21.99.99
|
||||||
- Fix Content Caching with spoofless usage
|
- Fix Content Caching with spoofless usage
|
||||||
- Allow disabling of ConnectDrivers
|
- Allow disabling of ConnectDrivers
|
||||||
- Aid with Hibernation on MacBookPro9,1/MacBookPro10,1
|
- Aid with Hibernation on MacBookPro9,1/MacBookPro10,1
|
||||||
- Add legacy iSight patch
|
- Add legacy iSight patch
|
||||||
- Applicable for MacBook4,1/5,2
|
- Applicable for MacBook4,1/5,2
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ pyz = PYZ(a.pure, a.zipped_data,
|
|||||||
cipher=block_cipher)
|
cipher=block_cipher)
|
||||||
|
|
||||||
exe = EXE(pyz,
|
exe = EXE(pyz,
|
||||||
a.scripts,
|
a.scripts,
|
||||||
[],
|
[],
|
||||||
exclude_binaries=True,
|
exclude_binaries=True,
|
||||||
name='OpenCore-Patcher',
|
name='OpenCore-Patcher',
|
||||||
@@ -39,7 +39,7 @@ exe = EXE(pyz,
|
|||||||
coll = COLLECT(exe,
|
coll = COLLECT(exe,
|
||||||
a.binaries,
|
a.binaries,
|
||||||
a.zipfiles,
|
a.zipfiles,
|
||||||
a.datas,
|
a.datas,
|
||||||
strip=False,
|
strip=False,
|
||||||
upx=True,
|
upx=True,
|
||||||
upx_exclude=[],
|
upx_exclude=[],
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ Note 2: Currently OpenCore Legacy Patcher officially supports patching to run ma
|
|||||||
|
|
||||||
* For macOS Mojave and Catalina support, we recommend the use of [dosdude1's patchers](http://dosdude1.com)
|
* For macOS Mojave and Catalina support, we recommend the use of [dosdude1's patchers](http://dosdude1.com)
|
||||||
|
|
||||||
## Getting Started
|
## Getting Started
|
||||||
|
|
||||||
To start using the project, please see our in-depth guide:
|
To start using the project, please see our in-depth guide:
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@ To start using the project, please see our in-depth guide:
|
|||||||
## Support
|
## Support
|
||||||
|
|
||||||
To get aid with the patcher, we recommend joining the [OpenCore Patcher Paradise Discord Server](https://discord.gg/rqdPgH8xSN). We're actively there and is the quickest way to receive help.
|
To get aid with the patcher, we recommend joining the [OpenCore Patcher Paradise Discord Server](https://discord.gg/rqdPgH8xSN). We're actively there and is the quickest way to receive help.
|
||||||
|
|
||||||
* Please review our docs on [how to debug with OpenCore](https://dortania.github.io/OpenCore-Legacy-Patcher/DEBUG.html) to gather important information to help others with troubleshooting.
|
* Please review our docs on [how to debug with OpenCore](https://dortania.github.io/OpenCore-Legacy-Patcher/DEBUG.html) to gather important information to help others with troubleshooting.
|
||||||
|
|
||||||
## Running from source
|
## Running from source
|
||||||
|
|||||||
+1
-1
@@ -8,7 +8,7 @@ class shim_list:
|
|||||||
shim_legacy_accel = [
|
shim_legacy_accel = [
|
||||||
"CoreWLAN.dylib",
|
"CoreWLAN.dylib",
|
||||||
]
|
]
|
||||||
|
|
||||||
shim_legacy_accel_keyboard = [
|
shim_legacy_accel_keyboard = [
|
||||||
"BacklightFixup.dylib",
|
"BacklightFixup.dylib",
|
||||||
]
|
]
|
||||||
+184
-184
@@ -31,17 +31,17 @@ class MacBookPro:
|
|||||||
MacBookPro92_Stock = device_probe.Computer(
|
MacBookPro92_Stock = device_probe.Computer(
|
||||||
real_model="MacBookPro9,2",
|
real_model="MacBookPro9,2",
|
||||||
real_board_id="Mac-6F01561E16C75D06",
|
real_board_id="Mac-6F01561E16C75D06",
|
||||||
reported_model="MacBookPro9,2",
|
reported_model="MacBookPro9,2",
|
||||||
reported_board_id="Mac-6F01561E16C75D06",
|
reported_board_id="Mac-6F01561E16C75D06",
|
||||||
gpus=[
|
gpus=[
|
||||||
device_probe.Intel(vendor_id=32902, device_id=358, class_code=196608, name="IGPU", model="Intel HD Graphics 4000", pci_path="PciRoot(0x0)/Pci(0x2,0x0)")
|
device_probe.Intel(vendor_id=32902, device_id=358, class_code=196608, name="IGPU", model="Intel HD Graphics 4000", pci_path="PciRoot(0x0)/Pci(0x2,0x0)")
|
||||||
],
|
],
|
||||||
igpu=device_probe.Intel(vendor_id=32902, device_id=358, class_code=196608, name="IGPU", model="Intel HD Graphics 4000", pci_path="PciRoot(0x0)/Pci(0x2,0x0)"),
|
igpu=device_probe.Intel(vendor_id=32902, device_id=358, class_code=196608, name="IGPU", model="Intel HD Graphics 4000", pci_path="PciRoot(0x0)/Pci(0x2,0x0)"),
|
||||||
dgpu=None,
|
dgpu=None,
|
||||||
storage=[device_probe.SATAController(vendor_id=32902, device_id=7683, class_code=67073, name="SATA", model=None, pci_path="PciRoot(0x0)/Pci(0x1f,0x2)")],
|
storage=[device_probe.SATAController(vendor_id=32902, device_id=7683, class_code=67073, name="SATA", model=None, pci_path="PciRoot(0x0)/Pci(0x1f,0x2)")],
|
||||||
wifi=device_probe.Broadcom(vendor_id=5348, device_id=17201, class_code=163840, name="ARPT", model=None, pci_path="PciRoot(0x0)/Pci(0x1c,0x1)/Pci(0x0,0x0)"),
|
wifi=device_probe.Broadcom(vendor_id=5348, device_id=17201, class_code=163840, name="ARPT", model=None, pci_path="PciRoot(0x0)/Pci(0x1c,0x1)/Pci(0x0,0x0)"),
|
||||||
cpu=device_probe.CPU(
|
cpu=device_probe.CPU(
|
||||||
name='Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz',
|
name='Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz',
|
||||||
flags=['FPU', 'VME', 'DE', 'PSE', 'TSC', 'MSR', 'PAE', 'MCE', 'CX8', 'APIC', 'SEP', 'MTRR', 'PGE', 'MCA', 'CMOV', 'PAT', 'PSE36', 'CLFSH', 'DS', 'ACPI', 'MMX', 'FXSR', 'SSE', 'SSE2', 'SS', 'HTT', 'TM', 'PBE', 'SSE3', 'PCLMULQDQ', 'DTES64', 'MON', 'DSCPL', 'VMX', 'EST', 'TM2', 'SSSE3', 'CX16', 'TPR', 'PDCM', 'SSE4.1', 'SSE4.2', 'x2APIC', 'POPCNT', 'AES', 'PCID', 'XSAVE', 'OSXSAVE', 'TSCTMR', 'AVX1.0', 'RDRAND', 'F16C']
|
flags=['FPU', 'VME', 'DE', 'PSE', 'TSC', 'MSR', 'PAE', 'MCE', 'CX8', 'APIC', 'SEP', 'MTRR', 'PGE', 'MCA', 'CMOV', 'PAT', 'PSE36', 'CLFSH', 'DS', 'ACPI', 'MMX', 'FXSR', 'SSE', 'SSE2', 'SS', 'HTT', 'TM', 'PBE', 'SSE3', 'PCLMULQDQ', 'DTES64', 'MON', 'DSCPL', 'VMX', 'EST', 'TM2', 'SSSE3', 'CX16', 'TPR', 'PDCM', 'SSE4.1', 'SSE4.2', 'x2APIC', 'POPCNT', 'AES', 'PCID', 'XSAVE', 'OSXSAVE', 'TSCTMR', 'AVX1.0', 'RDRAND', 'F16C']
|
||||||
),
|
),
|
||||||
oclp_version=None,
|
oclp_version=None,
|
||||||
@@ -49,56 +49,56 @@ class MacBookPro:
|
|||||||
)
|
)
|
||||||
|
|
||||||
MacBookPro111_Stock = device_probe.Computer(
|
MacBookPro111_Stock = device_probe.Computer(
|
||||||
real_model='MacBookPro11,1',
|
real_model='MacBookPro11,1',
|
||||||
real_board_id='Mac-189A3D4F975D5FFC',
|
real_board_id='Mac-189A3D4F975D5FFC',
|
||||||
reported_model='MacBookPro11,1',
|
reported_model='MacBookPro11,1',
|
||||||
reported_board_id='Mac-189A3D4F975D5FFC',
|
reported_board_id='Mac-189A3D4F975D5FFC',
|
||||||
gpus=[
|
gpus=[
|
||||||
device_probe.Intel(vendor_id=32902, device_id=2606, class_code=196608, name='IGPU', model='Intel Iris', acpi_path='IOACPIPlane:/_SB/PCI0@0/IGPU@20000', pci_path='PciRoot(0x0)/Pci(0x2,0x0)')
|
device_probe.Intel(vendor_id=32902, device_id=2606, class_code=196608, name='IGPU', model='Intel Iris', acpi_path='IOACPIPlane:/_SB/PCI0@0/IGPU@20000', pci_path='PciRoot(0x0)/Pci(0x2,0x0)')
|
||||||
],
|
],
|
||||||
igpu=device_probe.Intel(vendor_id=32902, device_id=2606, class_code=196608, name='IGPU', model='Intel Iris', acpi_path='IOACPIPlane:/_SB/PCI0@0/IGPU@20000', pci_path='PciRoot(0x0)/Pci(0x2,0x0)'),
|
igpu=device_probe.Intel(vendor_id=32902, device_id=2606, class_code=196608, name='IGPU', model='Intel Iris', acpi_path='IOACPIPlane:/_SB/PCI0@0/IGPU@20000', pci_path='PciRoot(0x0)/Pci(0x2,0x0)'),
|
||||||
dgpu=None,
|
dgpu=None,
|
||||||
storage=[
|
storage=[
|
||||||
device_probe.SATAController(vendor_id=6987, device_id=37251, class_code=67073, name='SSD0', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/RP06@1c0005/SSD0@0', pci_path='PciRoot(0x0)/Pci(0x1c,0x5)/Pci(0x0,0x0)')
|
device_probe.SATAController(vendor_id=6987, device_id=37251, class_code=67073, name='SSD0', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/RP06@1c0005/SSD0@0', pci_path='PciRoot(0x0)/Pci(0x1c,0x5)/Pci(0x0,0x0)')
|
||||||
],
|
],
|
||||||
usb_controllers=[
|
usb_controllers=[
|
||||||
device_probe.XHCIController(vendor_id=32902, device_id=39985, class_code=787248, name='XHC1', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/XHC1@140000', pci_path='PciRoot(0x0)/Pci(0x14,0x0)')
|
device_probe.XHCIController(vendor_id=32902, device_id=39985, class_code=787248, name='XHC1', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/XHC1@140000', pci_path='PciRoot(0x0)/Pci(0x14,0x0)')
|
||||||
],
|
],
|
||||||
wifi=device_probe.Broadcom(vendor_id=5348, device_id=17312, class_code=163840, name='ARPT', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/RP03@1c0002/ARPT@0', pci_path='PciRoot(0x0)/Pci(0x1c,0x2)/Pci(0x0,0x0)'),
|
wifi=device_probe.Broadcom(vendor_id=5348, device_id=17312, class_code=163840, name='ARPT', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/RP03@1c0002/ARPT@0', pci_path='PciRoot(0x0)/Pci(0x1c,0x2)/Pci(0x0,0x0)'),
|
||||||
cpu=device_probe.CPU(
|
cpu=device_probe.CPU(
|
||||||
name='Intel(R) Core(TM) i5-4258U CPU @ 2.40GHz',
|
name='Intel(R) Core(TM) i5-4258U CPU @ 2.40GHz',
|
||||||
flags=['FPU', 'VME', 'DE', 'PSE', 'TSC', 'MSR', 'PAE', 'MCE', 'CX8', 'APIC', 'SEP', 'MTRR', 'PGE', 'MCA', 'CMOV', 'PAT', 'PSE36', 'CLFSH', 'DS', 'ACPI', 'MMX', 'FXSR', 'SSE', 'SSE2', 'SS', 'HTT', 'TM', 'PBE', 'SSE3', 'PCLMULQDQ', 'DTES64', 'MON', 'DSCPL', 'VMX', 'EST', 'TM2', 'SSSE3', 'FMA', 'CX16', 'TPR', 'PDCM', 'SSE4.1', 'SSE4.2', 'x2APIC', 'MOVBE', 'POPCNT', 'AES', 'PCID', 'XSAVE', 'OSXSAVE', 'SEGLIM64', 'TSCTMR', 'AVX1.0', 'RDRAND', 'F16C']
|
flags=['FPU', 'VME', 'DE', 'PSE', 'TSC', 'MSR', 'PAE', 'MCE', 'CX8', 'APIC', 'SEP', 'MTRR', 'PGE', 'MCA', 'CMOV', 'PAT', 'PSE36', 'CLFSH', 'DS', 'ACPI', 'MMX', 'FXSR', 'SSE', 'SSE2', 'SS', 'HTT', 'TM', 'PBE', 'SSE3', 'PCLMULQDQ', 'DTES64', 'MON', 'DSCPL', 'VMX', 'EST', 'TM2', 'SSSE3', 'FMA', 'CX16', 'TPR', 'PDCM', 'SSE4.1', 'SSE4.2', 'x2APIC', 'MOVBE', 'POPCNT', 'AES', 'PCID', 'XSAVE', 'OSXSAVE', 'SEGLIM64', 'TSCTMR', 'AVX1.0', 'RDRAND', 'F16C']
|
||||||
),
|
),
|
||||||
oclp_version='0.4.2',
|
oclp_version='0.4.2',
|
||||||
opencore_version='DBG-077-2022-01-10',
|
opencore_version='DBG-077-2022-01-10',
|
||||||
bluetooth_chipset='BRCM20702 Hub',
|
bluetooth_chipset='BRCM20702 Hub',
|
||||||
third_party_sata_ssd=False
|
third_party_sata_ssd=False
|
||||||
)
|
)
|
||||||
|
|
||||||
MacBookPro141_SSD_Upgrade = device_probe.Computer(
|
MacBookPro141_SSD_Upgrade = device_probe.Computer(
|
||||||
real_model='MacBookPro14,1',
|
real_model='MacBookPro14,1',
|
||||||
real_board_id='Mac-B4831CEBD52A0C4C',
|
real_board_id='Mac-B4831CEBD52A0C4C',
|
||||||
reported_model='MacBookPro14,1',
|
reported_model='MacBookPro14,1',
|
||||||
reported_board_id='Mac-B4831CEBD52A0C4C',
|
reported_board_id='Mac-B4831CEBD52A0C4C',
|
||||||
gpus=[
|
gpus=[
|
||||||
device_probe.Intel(vendor_id=32902, device_id=22822, class_code=196608, name='IGPU', model='Intel Iris Plus Graphics 640', acpi_path='IOACPIPlane:/_SB/PCI0@0/IGPU@20000', pci_path='PciRoot(0x0)/Pci(0x2,0x0)')
|
device_probe.Intel(vendor_id=32902, device_id=22822, class_code=196608, name='IGPU', model='Intel Iris Plus Graphics 640', acpi_path='IOACPIPlane:/_SB/PCI0@0/IGPU@20000', pci_path='PciRoot(0x0)/Pci(0x2,0x0)')
|
||||||
],
|
],
|
||||||
igpu=device_probe.Intel(vendor_id=32902, device_id=22822, class_code=196608, name='IGPU', model='Intel Iris Plus Graphics 640', acpi_path='IOACPIPlane:/_SB/PCI0@0/IGPU@20000', pci_path='PciRoot(0x0)/Pci(0x2,0x0)'),
|
igpu=device_probe.Intel(vendor_id=32902, device_id=22822, class_code=196608, name='IGPU', model='Intel Iris Plus Graphics 640', acpi_path='IOACPIPlane:/_SB/PCI0@0/IGPU@20000', pci_path='PciRoot(0x0)/Pci(0x2,0x0)'),
|
||||||
dgpu=None,
|
dgpu=None,
|
||||||
storage=[
|
storage=[
|
||||||
device_probe.NVMeController(vendor_id=6535, device_id=20499, class_code=67586, name='SSD0', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/RP01@1c0000/SSD0@0', pci_path='PciRoot(0x0)/Pci(0x1c,0x0)/Pci(0x0,0x0)', aspm=2)
|
device_probe.NVMeController(vendor_id=6535, device_id=20499, class_code=67586, name='SSD0', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/RP01@1c0000/SSD0@0', pci_path='PciRoot(0x0)/Pci(0x1c,0x0)/Pci(0x0,0x0)', aspm=2)
|
||||||
],
|
],
|
||||||
usb_controllers=[
|
usb_controllers=[
|
||||||
device_probe.XHCIController(vendor_id=32902, device_id=40239, class_code=787248, name='XHC1', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/XHC1@140000', pci_path='PciRoot(0x0)/Pci(0x14,0x0)'),
|
device_probe.XHCIController(vendor_id=32902, device_id=40239, class_code=787248, name='XHC1', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/XHC1@140000', pci_path='PciRoot(0x0)/Pci(0x14,0x0)'),
|
||||||
device_probe.XHCIController(vendor_id=32902, device_id=5588, class_code=787248, name='XHC2', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/RP05@1c0004/UPSB@0/DSB2@20000/XHC2@0', pci_path='PciRoot(0x0)/Pci(0x1c,0x4)/Pci(0x0,0x0)/Pci(0x2,0x0)/Pci(0x0,0x0)')
|
device_probe.XHCIController(vendor_id=32902, device_id=5588, class_code=787248, name='XHC2', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/RP05@1c0004/UPSB@0/DSB2@20000/XHC2@0', pci_path='PciRoot(0x0)/Pci(0x1c,0x4)/Pci(0x0,0x0)/Pci(0x2,0x0)/Pci(0x0,0x0)')
|
||||||
],
|
],
|
||||||
wifi=device_probe.Broadcom(vendor_id=5348, device_id=17315, class_code=163840, name='ARPT', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/RP09@1d0000/ARPT@0', pci_path='PciRoot(0x0)/Pci(0x1d,0x0)/Pci(0x0,0x0)'),
|
wifi=device_probe.Broadcom(vendor_id=5348, device_id=17315, class_code=163840, name='ARPT', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/RP09@1d0000/ARPT@0', pci_path='PciRoot(0x0)/Pci(0x1d,0x0)/Pci(0x0,0x0)'),
|
||||||
cpu=device_probe.CPU(
|
cpu=device_probe.CPU(
|
||||||
name='Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz',
|
name='Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz',
|
||||||
flags=['FPU', 'VME', 'DE', 'PSE', 'TSC', 'MSR', 'PAE', 'MCE', 'CX8', 'APIC', 'SEP', 'MTRR', 'PGE', 'MCA', 'CMOV', 'PAT', 'PSE36', 'CLFSH', 'DS', 'ACPI', 'MMX', 'FXSR', 'SSE', 'SSE2', 'SS', 'HTT', 'TM', 'PBE', 'SSE3', 'PCLMULQDQ', 'DTES64', 'MON', 'DSCPL', 'VMX', 'SMX', 'EST', 'TM2', 'SSSE3', 'FMA', 'CX16', 'TPR', 'PDCM', 'SSE4.1', 'SSE4.2', 'x2APIC', 'MOVBE', 'POPCNT', 'AES', 'PCID', 'XSAVE', 'OSXSAVE', 'SEGLIM64', 'TSCTMR', 'AVX1.0', 'RDRAND', 'F16C']
|
flags=['FPU', 'VME', 'DE', 'PSE', 'TSC', 'MSR', 'PAE', 'MCE', 'CX8', 'APIC', 'SEP', 'MTRR', 'PGE', 'MCA', 'CMOV', 'PAT', 'PSE36', 'CLFSH', 'DS', 'ACPI', 'MMX', 'FXSR', 'SSE', 'SSE2', 'SS', 'HTT', 'TM', 'PBE', 'SSE3', 'PCLMULQDQ', 'DTES64', 'MON', 'DSCPL', 'VMX', 'SMX', 'EST', 'TM2', 'SSSE3', 'FMA', 'CX16', 'TPR', 'PDCM', 'SSE4.1', 'SSE4.2', 'x2APIC', 'MOVBE', 'POPCNT', 'AES', 'PCID', 'XSAVE', 'OSXSAVE', 'SEGLIM64', 'TSCTMR', 'AVX1.0', 'RDRAND', 'F16C']
|
||||||
), oclp_version='0.4.1',
|
), oclp_version='0.4.1',
|
||||||
opencore_version=None,
|
opencore_version=None,
|
||||||
bluetooth_chipset=None,
|
bluetooth_chipset=None,
|
||||||
third_party_sata_ssd=False)
|
third_party_sata_ssd=False)
|
||||||
|
|
||||||
MacBookPro171_Stock = device_probe.Computer(
|
MacBookPro171_Stock = device_probe.Computer(
|
||||||
@@ -133,11 +133,11 @@ class Macmini:
|
|||||||
storage=[],
|
storage=[],
|
||||||
wifi=device_probe.Broadcom(vendor_id=5348, device_id=17508, class_code=163840, name="ARPT", model=None, pci_path="PciRoot(0x0)/Pci(0x1c,0x0)/Pci(0x0,0x0)"),
|
wifi=device_probe.Broadcom(vendor_id=5348, device_id=17508, class_code=163840, name="ARPT", model=None, pci_path="PciRoot(0x0)/Pci(0x1c,0x0)/Pci(0x0,0x0)"),
|
||||||
cpu=device_probe.CPU(
|
cpu=device_probe.CPU(
|
||||||
name="Intel(R) Core(TM) i7-8700B CPU @ 3.20GHz",
|
name="Intel(R) Core(TM) i7-8700B CPU @ 3.20GHz",
|
||||||
flags=["FPU", "VME", "DE", "PSE", "TSC", "MSR", "PAE", "MCE", "CX8", "APIC", "SEP", "MTRR", "PGE", "MCA", "CMOV", "PAT", "PSE36", "CLFSH", "DS", "ACPI", "MMX", "FXSR", "SSE", "SSE2", "SS", "HTT", "TM", "PBE", "SSE3", "PCLMULQDQ", "DTES64", "MON", "DSCPL", "VMX", "SMX", "EST", "TM2", "SSSE3", "FMA", "CX16", "TPR", "PDCM", "SSE4.1", "SSE4.2", "x2APIC", "MOVBE", "POPCNT", "AES", "PCID", "XSAVE", "OSXSAVE", "SEGLIM64", "TSCTMR", "AVX1.0", "RDRAND", "F16C"]
|
flags=["FPU", "VME", "DE", "PSE", "TSC", "MSR", "PAE", "MCE", "CX8", "APIC", "SEP", "MTRR", "PGE", "MCA", "CMOV", "PAT", "PSE36", "CLFSH", "DS", "ACPI", "MMX", "FXSR", "SSE", "SSE2", "SS", "HTT", "TM", "PBE", "SSE3", "PCLMULQDQ", "DTES64", "MON", "DSCPL", "VMX", "SMX", "EST", "TM2", "SSSE3", "FMA", "CX16", "TPR", "PDCM", "SSE4.1", "SSE4.2", "x2APIC", "MOVBE", "POPCNT", "AES", "PCID", "XSAVE", "OSXSAVE", "SEGLIM64", "TSCTMR", "AVX1.0", "RDRAND", "F16C"]
|
||||||
),
|
),
|
||||||
oclp_version=None,
|
oclp_version=None,
|
||||||
opencore_version=None
|
opencore_version=None
|
||||||
)
|
)
|
||||||
|
|
||||||
Macmini91_Stock = device_probe.Computer(
|
Macmini91_Stock = device_probe.Computer(
|
||||||
@@ -154,7 +154,7 @@ class Macmini:
|
|||||||
storage=[],
|
storage=[],
|
||||||
wifi=device_probe.Broadcom(vendor_id=5348, device_id=17445, class_code=163840, name="wlan", model=None, pci_path=""),
|
wifi=device_probe.Broadcom(vendor_id=5348, device_id=17445, class_code=163840, name="wlan", model=None, pci_path=""),
|
||||||
cpu=device_probe.CPU(
|
cpu=device_probe.CPU(
|
||||||
name="Apple M1",
|
name="Apple M1",
|
||||||
flags=["FPU", "VME", "DE", "PSE", "TSC", "MSR", "PAE", "MCE", "CX8", "APIC", "SEP", "MTRR", "PGE", "MCA", "CMOV", "PAT", "PSE36", "CLFSH", "DS", "ACPI", "MMX", "FXSR", "SSE", "SSE2", "SS", "HTT", "TM", "PBE", "SSE3", "PCLMULQDQ", "DTSE64", "MON", "DSCPL", "VMX", "EST", "TM2", "SSSE3", "CX16", "TPR", "PDCM", "SSE4.1", "SSE4.2", "AES", "SEGLIM64"]
|
flags=["FPU", "VME", "DE", "PSE", "TSC", "MSR", "PAE", "MCE", "CX8", "APIC", "SEP", "MTRR", "PGE", "MCA", "CMOV", "PAT", "PSE36", "CLFSH", "DS", "ACPI", "MMX", "FXSR", "SSE", "SSE2", "SS", "HTT", "TM", "PBE", "SSE3", "PCLMULQDQ", "DTSE64", "MON", "DSCPL", "VMX", "EST", "TM2", "SSSE3", "CX16", "TPR", "PDCM", "SSE4.1", "SSE4.2", "AES", "SEGLIM64"]
|
||||||
),
|
),
|
||||||
oclp_version=None,
|
oclp_version=None,
|
||||||
@@ -165,47 +165,47 @@ class iMac:
|
|||||||
|
|
||||||
iMac81_Stock = device_probe.Computer(
|
iMac81_Stock = device_probe.Computer(
|
||||||
# Stock Model
|
# Stock Model
|
||||||
real_model="iMac8,1",
|
real_model="iMac8,1",
|
||||||
real_board_id="Mac-F226BEC8",
|
real_board_id="Mac-F226BEC8",
|
||||||
reported_model="iMac8,1",
|
reported_model="iMac8,1",
|
||||||
reported_board_id="Mac-F226BEC8",
|
reported_board_id="Mac-F226BEC8",
|
||||||
gpus=[
|
gpus=[
|
||||||
device_probe.AMD(vendor_id=4098, device_id=38088, class_code=196608, name="GFX0", model="ATI Radeon HD 2400", pci_path="PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)")
|
device_probe.AMD(vendor_id=4098, device_id=38088, class_code=196608, name="GFX0", model="ATI Radeon HD 2400", pci_path="PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)")
|
||||||
],
|
],
|
||||||
igpu=None,
|
igpu=None,
|
||||||
dgpu=device_probe.AMD(vendor_id=4098, device_id=38088, class_code=196608, name="GFX0", model="ATI Radeon HD 2400", pci_path="PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)"),
|
dgpu=device_probe.AMD(vendor_id=4098, device_id=38088, class_code=196608, name="GFX0", model="ATI Radeon HD 2400", pci_path="PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)"),
|
||||||
storage=[
|
storage=[
|
||||||
device_probe.SATAController(vendor_id=32902, device_id=10281, class_code=67073, name="SATA", model=None, pci_path="PciRoot(0x0)/Pci(0x1f,0x2)")
|
device_probe.SATAController(vendor_id=32902, device_id=10281, class_code=67073, name="SATA", model=None, pci_path="PciRoot(0x0)/Pci(0x1f,0x2)")
|
||||||
],
|
],
|
||||||
wifi=device_probe.Broadcom(vendor_id=5348, device_id=17192, class_code=163840, name="ARPT", model=None, pci_path="PciRoot(0x0)/Pci(0x1c,0x4)/Pci(0x0,0x0)"),
|
wifi=device_probe.Broadcom(vendor_id=5348, device_id=17192, class_code=163840, name="ARPT", model=None, pci_path="PciRoot(0x0)/Pci(0x1c,0x4)/Pci(0x0,0x0)"),
|
||||||
cpu=device_probe.CPU(
|
cpu=device_probe.CPU(
|
||||||
name="Intel(R) Core(TM)2 Duo CPU E8135 @ 2.40GHz",
|
name="Intel(R) Core(TM)2 Duo CPU E8135 @ 2.40GHz",
|
||||||
flags=["FPU", "VME", "DE", "PSE", "TSC", "MSR", "PAE", "MCE", "CX8", "APIC", "SEP", "MTRR", "PGE", "MCA", "CMOV", "PAT", "PSE36", "CLFSH", "DS", "ACPI", "MMX", "FXSR", "SSE", "SSE2", "SS", "HTT", "TM", "PBE", "SSE3", "DTES64", "MON", "DSCPL", "VMX", "EST", "TM2", "SSSE3", "CX16", "TPR", "PDCM", "SSE4.1"]
|
flags=["FPU", "VME", "DE", "PSE", "TSC", "MSR", "PAE", "MCE", "CX8", "APIC", "SEP", "MTRR", "PGE", "MCA", "CMOV", "PAT", "PSE36", "CLFSH", "DS", "ACPI", "MMX", "FXSR", "SSE", "SSE2", "SS", "HTT", "TM", "PBE", "SSE3", "DTES64", "MON", "DSCPL", "VMX", "EST", "TM2", "SSSE3", "CX16", "TPR", "PDCM", "SSE4.1"]
|
||||||
),
|
),
|
||||||
oclp_version=None,
|
oclp_version=None,
|
||||||
opencore_version=None,
|
opencore_version=None,
|
||||||
)
|
)
|
||||||
|
|
||||||
iMac112_Stock = device_probe.Computer(
|
iMac112_Stock = device_probe.Computer(
|
||||||
# Stock Model
|
# Stock Model
|
||||||
real_model="iMac11,2",
|
real_model="iMac11,2",
|
||||||
real_board_id="Mac-F2238AC8",
|
real_board_id="Mac-F2238AC8",
|
||||||
reported_model="iMac11,2",
|
reported_model="iMac11,2",
|
||||||
reported_board_id="Mac-F2238AC8",
|
reported_board_id="Mac-F2238AC8",
|
||||||
gpus=[
|
gpus=[
|
||||||
device_probe.AMD(vendor_id=4098, device_id=38024, class_code=196608, name="GFX0", model="ATI Radeon HD 4670", pci_path="PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)")
|
device_probe.AMD(vendor_id=4098, device_id=38024, class_code=196608, name="GFX0", model="ATI Radeon HD 4670", pci_path="PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)")
|
||||||
],
|
],
|
||||||
igpu=None,
|
igpu=None,
|
||||||
dgpu=device_probe.AMD(vendor_id=4098, device_id=38024, class_code=196608, name="GFX0", model="ATI Radeon HD 4670", pci_path="PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)"),
|
dgpu=device_probe.AMD(vendor_id=4098, device_id=38024, class_code=196608, name="GFX0", model="ATI Radeon HD 4670", pci_path="PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)"),
|
||||||
storage=[
|
storage=[
|
||||||
device_probe.SATAController(vendor_id=32902, device_id=15138, class_code=67073, name="SATA", model=None, pci_path="PciRoot(0x0)/Pci(0x1f,0x2)")
|
device_probe.SATAController(vendor_id=32902, device_id=15138, class_code=67073, name="SATA", model=None, pci_path="PciRoot(0x0)/Pci(0x1f,0x2)")
|
||||||
],
|
],
|
||||||
wifi=device_probe.Atheros(vendor_id=5772, device_id=42, class_code=163840, name="ARPT", model=None, pci_path="PciRoot(0x0)/Pci(0x1c,0x1)/Pci(0x0,0x0)"),
|
wifi=device_probe.Atheros(vendor_id=5772, device_id=42, class_code=163840, name="ARPT", model=None, pci_path="PciRoot(0x0)/Pci(0x1c,0x1)/Pci(0x0,0x0)"),
|
||||||
cpu=device_probe.CPU(
|
cpu=device_probe.CPU(
|
||||||
name="Intel(R) Core(TM) i3 CPU 540 @ 3.07GHz",
|
name="Intel(R) Core(TM) i3 CPU 540 @ 3.07GHz",
|
||||||
flags=["FPU", "VME", "DE", "PSE", "TSC", "MSR", "PAE", "MCE", "CX8", "APIC", "SEP", "MTRR", "PGE", "MCA", "CMOV", "PAT", "PSE36", "CLFSH", "DS", "ACPI", "MMX", "FXSR", "SSE", "SSE2", "SS", "HTT", "TM", "PBE", "SSE3", "DTES64", "MON", "DSCPL", "VMX", "EST", "TM2", "SSSE3", "CX16", "TPR", "PDCM", "SSE4.1", "SSE4.2", "POPCNT", "PCID"]
|
flags=["FPU", "VME", "DE", "PSE", "TSC", "MSR", "PAE", "MCE", "CX8", "APIC", "SEP", "MTRR", "PGE", "MCA", "CMOV", "PAT", "PSE36", "CLFSH", "DS", "ACPI", "MMX", "FXSR", "SSE", "SSE2", "SS", "HTT", "TM", "PBE", "SSE3", "DTES64", "MON", "DSCPL", "VMX", "EST", "TM2", "SSSE3", "CX16", "TPR", "PDCM", "SSE4.1", "SSE4.2", "POPCNT", "PCID"]
|
||||||
),
|
),
|
||||||
oclp_version=None,
|
oclp_version=None,
|
||||||
opencore_version=None,
|
opencore_version=None,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -228,88 +228,88 @@ class iMac:
|
|||||||
name="Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz",
|
name="Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz",
|
||||||
flags=["FPU", "VME", "DE", "PSE", "TSC", "MSR", "PAE", "MCE", "CX8", "APIC", "SEP", "MTRR", "PGE", "MCA", "CMOV", "PAT", "PSE36", "CLFSH", "DS", "ACPI", "MMX", "FXSR", "SSE", "SSE2", "SS", "HTT", "TM", "PBE", "SSE3", "PCLMULQDQ", "DTES64", "MON", "DSCPL", "VMX", "SMX", "EST", "TM2", "SSSE3", "CX16", "TPR", "PDCM", "SSE4.1", "SSE4.2", "xAPIC", "POPCNT", "AES", "PCID", "XSAVE", "OSXSAVE", "TSCTMR", "AVX1.0"]
|
flags=["FPU", "VME", "DE", "PSE", "TSC", "MSR", "PAE", "MCE", "CX8", "APIC", "SEP", "MTRR", "PGE", "MCA", "CMOV", "PAT", "PSE36", "CLFSH", "DS", "ACPI", "MMX", "FXSR", "SSE", "SSE2", "SS", "HTT", "TM", "PBE", "SSE3", "PCLMULQDQ", "DTES64", "MON", "DSCPL", "VMX", "SMX", "EST", "TM2", "SSSE3", "CX16", "TPR", "PDCM", "SSE4.1", "SSE4.2", "xAPIC", "POPCNT", "AES", "PCID", "XSAVE", "OSXSAVE", "TSCTMR", "AVX1.0"]
|
||||||
),
|
),
|
||||||
oclp_version=None,
|
oclp_version=None,
|
||||||
opencore_version=None,
|
opencore_version=None,
|
||||||
)
|
)
|
||||||
|
|
||||||
iMac122_Upgraded_Nvidia = device_probe.Computer(
|
iMac122_Upgraded_Nvidia = device_probe.Computer(
|
||||||
real_model='iMac12,2',
|
real_model='iMac12,2',
|
||||||
real_board_id='Mac-942B59F58194171B',
|
real_board_id='Mac-942B59F58194171B',
|
||||||
reported_model='iMac12,2',
|
reported_model='iMac12,2',
|
||||||
reported_board_id='Mac-942B59F58194171B',
|
reported_board_id='Mac-942B59F58194171B',
|
||||||
gpus=[
|
gpus=[
|
||||||
device_probe.Intel(vendor_id=32902, device_id=258, class_code=229376, name='IGPU', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/IGPU@20000', pci_path='PciRoot(0x0)/Pci(0x2,0x0)'),
|
device_probe.Intel(vendor_id=32902, device_id=258, class_code=229376, name='IGPU', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/IGPU@20000', pci_path='PciRoot(0x0)/Pci(0x2,0x0)'),
|
||||||
device_probe.NVIDIA(vendor_id=4318, device_id=4092, class_code=196608, name='GFX0', model='Quadro K1000M by Nick[D]vB', acpi_path='IOACPIPlane:/_SB/PCI0@0/P0P2@10000/GFX0@0', pci_path='PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)')],
|
device_probe.NVIDIA(vendor_id=4318, device_id=4092, class_code=196608, name='GFX0', model='Quadro K1000M by Nick[D]vB', acpi_path='IOACPIPlane:/_SB/PCI0@0/P0P2@10000/GFX0@0', pci_path='PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)')],
|
||||||
igpu=device_probe.Intel(vendor_id=32902, device_id=258, class_code=229376, name='IGPU', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/IGPU@20000', pci_path='PciRoot(0x0)/Pci(0x2,0x0)'),
|
igpu=device_probe.Intel(vendor_id=32902, device_id=258, class_code=229376, name='IGPU', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/IGPU@20000', pci_path='PciRoot(0x0)/Pci(0x2,0x0)'),
|
||||||
dgpu=device_probe.NVIDIA(vendor_id=4318, device_id=4092, class_code=196608, name='GFX0', model='Quadro K1000M by Nick[D]vB', acpi_path='IOACPIPlane:/_SB/PCI0@0/P0P2@10000/GFX0@0', pci_path='PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)'),
|
dgpu=device_probe.NVIDIA(vendor_id=4318, device_id=4092, class_code=196608, name='GFX0', model='Quadro K1000M by Nick[D]vB', acpi_path='IOACPIPlane:/_SB/PCI0@0/P0P2@10000/GFX0@0', pci_path='PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)'),
|
||||||
storage=[
|
storage=[
|
||||||
device_probe.SATAController(vendor_id=32902, device_id=7170, class_code=67073, name='SATA', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/SATA@1f0002', pci_path='PciRoot(0x0)/Pci(0x1f,0x2)')
|
device_probe.SATAController(vendor_id=32902, device_id=7170, class_code=67073, name='SATA', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/SATA@1f0002', pci_path='PciRoot(0x0)/Pci(0x1f,0x2)')
|
||||||
],
|
],
|
||||||
usb_controllers=[
|
usb_controllers=[
|
||||||
device_probe.EHCIController(vendor_id=32902, device_id=7213, class_code=787232, name='EHC2', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/EHC2@1a0007', pci_path='PciRoot(0x0)/Pci(0x1a,0x7)'),
|
device_probe.EHCIController(vendor_id=32902, device_id=7213, class_code=787232, name='EHC2', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/EHC2@1a0007', pci_path='PciRoot(0x0)/Pci(0x1a,0x7)'),
|
||||||
device_probe.EHCIController(vendor_id=32902, device_id=7206, class_code=787232, name='EHC1', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/EHC1@1d0007', pci_path='PciRoot(0x0)/Pci(0x1d,0x7)')
|
device_probe.EHCIController(vendor_id=32902, device_id=7206, class_code=787232, name='EHC1', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/EHC1@1d0007', pci_path='PciRoot(0x0)/Pci(0x1d,0x7)')
|
||||||
],
|
],
|
||||||
wifi=device_probe.Broadcom(vendor_id=5348, device_id=17201, class_code=163840, name='ARPT', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/RP02@1c0001/ARPT@0', pci_path='PciRoot(0x0)/Pci(0x1c,0x1)/Pci(0x0,0x0)'),
|
wifi=device_probe.Broadcom(vendor_id=5348, device_id=17201, class_code=163840, name='ARPT', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/RP02@1c0001/ARPT@0', pci_path='PciRoot(0x0)/Pci(0x1c,0x1)/Pci(0x0,0x0)'),
|
||||||
cpu=device_probe.CPU(
|
cpu=device_probe.CPU(
|
||||||
name='Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz',
|
name='Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz',
|
||||||
flags=['FPU', 'VME', 'DE', 'PSE', 'TSC', 'MSR', 'PAE', 'MCE', 'CX8', 'APIC', 'SEP', 'MTRR', 'PGE', 'MCA', 'CMOV', 'PAT', 'PSE36', 'CLFSH', 'DS', 'ACPI', 'MMX', 'FXSR', 'SSE', 'SSE2', 'SS', 'HTT', 'TM', 'PBE', 'SSE3', 'PCLMULQDQ', 'DTES64', 'MON', 'DSCPL', 'VMX', 'SMX', 'EST', 'TM2', 'SSSE3', 'CX16', 'TPR', 'PDCM', 'SSE4.1', 'SSE4.2', 'x2APIC', 'POPCNT', 'AES', 'PCID', 'XSAVE', 'OSXSAVE', 'TSCTMR', 'AVX1.0']
|
flags=['FPU', 'VME', 'DE', 'PSE', 'TSC', 'MSR', 'PAE', 'MCE', 'CX8', 'APIC', 'SEP', 'MTRR', 'PGE', 'MCA', 'CMOV', 'PAT', 'PSE36', 'CLFSH', 'DS', 'ACPI', 'MMX', 'FXSR', 'SSE', 'SSE2', 'SS', 'HTT', 'TM', 'PBE', 'SSE3', 'PCLMULQDQ', 'DTES64', 'MON', 'DSCPL', 'VMX', 'SMX', 'EST', 'TM2', 'SSSE3', 'CX16', 'TPR', 'PDCM', 'SSE4.1', 'SSE4.2', 'x2APIC', 'POPCNT', 'AES', 'PCID', 'XSAVE', 'OSXSAVE', 'TSCTMR', 'AVX1.0']
|
||||||
),
|
),
|
||||||
oclp_version='0.3.3',
|
oclp_version='0.3.3',
|
||||||
opencore_version=None,
|
opencore_version=None,
|
||||||
bluetooth_chipset='BRCM2046 Hub',
|
bluetooth_chipset='BRCM2046 Hub',
|
||||||
third_party_sata_ssd=True
|
third_party_sata_ssd=True
|
||||||
)
|
)
|
||||||
|
|
||||||
iMac151_Stock = device_probe.Computer(
|
iMac151_Stock = device_probe.Computer(
|
||||||
real_model='iMac15,1',
|
real_model='iMac15,1',
|
||||||
real_board_id='Mac-42FD25EABCABB274',
|
real_board_id='Mac-42FD25EABCABB274',
|
||||||
reported_model='iMac15,1',
|
reported_model='iMac15,1',
|
||||||
reported_board_id='Mac-42FD25EABCABB274',
|
reported_board_id='Mac-42FD25EABCABB274',
|
||||||
gpus=[
|
gpus=[
|
||||||
device_probe.Intel(vendor_id=32902, device_id=1042, class_code=196608, name='IGPU', model='Intel Iris Pro', acpi_path=None, pci_path='PciRoot(0x0)/Pci(0x2,0x0)'),
|
device_probe.Intel(vendor_id=32902, device_id=1042, class_code=196608, name='IGPU', model='Intel Iris Pro', acpi_path=None, pci_path='PciRoot(0x0)/Pci(0x2,0x0)'),
|
||||||
device_probe.AMD(vendor_id=4098, device_id=26640, class_code=196608, name='GFX0', model='AMD Radeon R9 M290X', acpi_path=None, pci_path='PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)')
|
device_probe.AMD(vendor_id=4098, device_id=26640, class_code=196608, name='GFX0', model='AMD Radeon R9 M290X', acpi_path=None, pci_path='PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)')
|
||||||
],
|
],
|
||||||
igpu=device_probe.Intel(vendor_id=32902, device_id=1042, class_code=196608, name='IGPU', model='Intel Iris Pro', acpi_path=None, pci_path='PciRoot(0x0)/Pci(0x2,0x0)'),
|
igpu=device_probe.Intel(vendor_id=32902, device_id=1042, class_code=196608, name='IGPU', model='Intel Iris Pro', acpi_path=None, pci_path='PciRoot(0x0)/Pci(0x2,0x0)'),
|
||||||
dgpu=device_probe.AMD(vendor_id=4098, device_id=26640, class_code=196608, name='GFX0', model='AMD Radeon R9 M290X', acpi_path=None, pci_path='PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)'),
|
dgpu=device_probe.AMD(vendor_id=4098, device_id=26640, class_code=196608, name='GFX0', model='AMD Radeon R9 M290X', acpi_path=None, pci_path='PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)'),
|
||||||
storage=[
|
storage=[
|
||||||
device_probe.SATAController(vendor_id=32902, device_id=35842, class_code=67073, name='SATA', model=None, acpi_path=None, pci_path='PciRoot(0x0)/Pci(0x1f,0x2)'),
|
device_probe.SATAController(vendor_id=32902, device_id=35842, class_code=67073, name='SATA', model=None, acpi_path=None, pci_path='PciRoot(0x0)/Pci(0x1f,0x2)'),
|
||||||
device_probe.SATAController(vendor_id=6987, device_id=37251, class_code=67073, name='SSD0', model=None, acpi_path=None, pci_path='PciRoot(0x0)/Pci(0x1c,0x0)/Pci(0x0,0x0)')
|
device_probe.SATAController(vendor_id=6987, device_id=37251, class_code=67073, name='SSD0', model=None, acpi_path=None, pci_path='PciRoot(0x0)/Pci(0x1c,0x0)/Pci(0x0,0x0)')
|
||||||
],
|
],
|
||||||
wifi=device_probe.Broadcom(vendor_id=5348, device_id=17312, class_code=163840, name='ARPT', model=None, acpi_path=None, pci_path='PciRoot(0x0)/Pci(0x1c,0x2)/Pci(0x0,0x0)'),
|
wifi=device_probe.Broadcom(vendor_id=5348, device_id=17312, class_code=163840, name='ARPT', model=None, acpi_path=None, pci_path='PciRoot(0x0)/Pci(0x1c,0x2)/Pci(0x0,0x0)'),
|
||||||
cpu=device_probe.CPU(
|
cpu=device_probe.CPU(
|
||||||
name='Intel(R) Core(TM) i5-4690 CPU @ 3.50GHz',
|
name='Intel(R) Core(TM) i5-4690 CPU @ 3.50GHz',
|
||||||
flags=['FPU', 'VME', 'DE', 'PSE', 'TSC', 'MSR', 'PAE', 'MCE', 'CX8', 'APIC', 'SEP', 'MTRR', 'PGE', 'MCA', 'CMOV', 'PAT', 'PSE36', 'CLFSH', 'DS', 'ACPI', 'MMX', 'FXSR', 'SSE', 'SSE2', 'SS', 'HTT', 'TM', 'PBE', 'SSE3', 'PCLMULQDQ', 'DTES64', 'MON', 'DSCPL', 'VMX', 'SMX', 'EST', 'TM2', 'SSSE3', 'FMA', 'CX16', 'TPR', 'PDCM', 'SSE4.1', 'SSE4.2', 'x2APIC', 'MOVBE', 'POPCNT', 'AES', 'PCID', 'XSAVE', 'OSXSAVE', 'SEGLIM64', 'TSCTMR', 'AVX1.0', 'RDRAND', 'F16C']
|
flags=['FPU', 'VME', 'DE', 'PSE', 'TSC', 'MSR', 'PAE', 'MCE', 'CX8', 'APIC', 'SEP', 'MTRR', 'PGE', 'MCA', 'CMOV', 'PAT', 'PSE36', 'CLFSH', 'DS', 'ACPI', 'MMX', 'FXSR', 'SSE', 'SSE2', 'SS', 'HTT', 'TM', 'PBE', 'SSE3', 'PCLMULQDQ', 'DTES64', 'MON', 'DSCPL', 'VMX', 'SMX', 'EST', 'TM2', 'SSSE3', 'FMA', 'CX16', 'TPR', 'PDCM', 'SSE4.1', 'SSE4.2', 'x2APIC', 'MOVBE', 'POPCNT', 'AES', 'PCID', 'XSAVE', 'OSXSAVE', 'SEGLIM64', 'TSCTMR', 'AVX1.0', 'RDRAND', 'F16C']
|
||||||
),
|
),
|
||||||
oclp_version=None,
|
oclp_version=None,
|
||||||
opencore_version=None,
|
opencore_version=None,
|
||||||
bluetooth_chipset='BRCM20702 Hub',
|
bluetooth_chipset='BRCM20702 Hub',
|
||||||
third_party_sata_ssd=False
|
third_party_sata_ssd=False
|
||||||
)
|
)
|
||||||
|
|
||||||
iMac201_Stock = device_probe.Computer(
|
iMac201_Stock = device_probe.Computer(
|
||||||
real_model='iMac20,1',
|
real_model='iMac20,1',
|
||||||
real_board_id='Mac-CFF7D910A743CAAF',
|
real_board_id='Mac-CFF7D910A743CAAF',
|
||||||
reported_model='iMac20,1',
|
reported_model='iMac20,1',
|
||||||
reported_board_id='Mac-CFF7D910A743CAAF',
|
reported_board_id='Mac-CFF7D910A743CAAF',
|
||||||
gpus=[
|
gpus=[
|
||||||
device_probe.Intel(vendor_id=32902, device_id=39880, class_code=196608, name='IGPU', model='Intel HD Graphics CFL', acpi_path='IOACPIPlane:/_SB/PCI0@0/IGPU@20000', pci_path='PciRoot(0x0)/Pci(0x2,0x0)'),
|
device_probe.Intel(vendor_id=32902, device_id=39880, class_code=196608, name='IGPU', model='Intel HD Graphics CFL', acpi_path='IOACPIPlane:/_SB/PCI0@0/IGPU@20000', pci_path='PciRoot(0x0)/Pci(0x2,0x0)'),
|
||||||
device_probe.AMD(vendor_id=4098, device_id=29504, class_code=196608, name='GFX0', model='AMD Radeon Pro 5300', acpi_path='IOACPIPlane:/_SB/PCI0@0/PEG0@10000/EGP0@0/EGP1@0/GFX0@0', pci_path='PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)')
|
device_probe.AMD(vendor_id=4098, device_id=29504, class_code=196608, name='GFX0', model='AMD Radeon Pro 5300', acpi_path='IOACPIPlane:/_SB/PCI0@0/PEG0@10000/EGP0@0/EGP1@0/GFX0@0', pci_path='PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)')
|
||||||
],
|
],
|
||||||
igpu=device_probe.Intel(vendor_id=32902, device_id=39880, class_code=196608, name='IGPU', model='Intel HD Graphics CFL', acpi_path='IOACPIPlane:/_SB/PCI0@0/IGPU@20000', pci_path='PciRoot(0x0)/Pci(0x2,0x0)'),
|
igpu=device_probe.Intel(vendor_id=32902, device_id=39880, class_code=196608, name='IGPU', model='Intel HD Graphics CFL', acpi_path='IOACPIPlane:/_SB/PCI0@0/IGPU@20000', pci_path='PciRoot(0x0)/Pci(0x2,0x0)'),
|
||||||
dgpu=device_probe.AMD(vendor_id=4098, device_id=29504, class_code=196608, name='GFX0', model='AMD Radeon Pro 5300', acpi_path='IOACPIPlane:/_SB/PCI0@0/PEG0@10000/EGP0@0/EGP1@0/GFX0@0', pci_path='PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)'),
|
dgpu=device_probe.AMD(vendor_id=4098, device_id=29504, class_code=196608, name='GFX0', model='AMD Radeon Pro 5300', acpi_path='IOACPIPlane:/_SB/PCI0@0/PEG0@10000/EGP0@0/EGP1@0/GFX0@0', pci_path='PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)'),
|
||||||
storage=[],
|
storage=[],
|
||||||
usb_controllers=[
|
usb_controllers=[
|
||||||
device_probe.XHCIController(vendor_id=32902, device_id=1773, class_code=787248, name='XHC1', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/XHC1@140000', pci_path='PciRoot(0x0)/Pci(0x14,0x0)'),
|
device_probe.XHCIController(vendor_id=32902, device_id=1773, class_code=787248, name='XHC1', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/XHC1@140000', pci_path='PciRoot(0x0)/Pci(0x14,0x0)'),
|
||||||
device_probe.XHCIController(vendor_id=32902, device_id=5612, class_code=787248, name='XHC2', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/RP05@1c0004/UPSB@0/DSB2@20000/XHC2@0', pci_path='PciRoot(0x0)/Pci(0x1c,0x4)/Pci(0x0,0x0)/Pci(0x2,0x0)/Pci(0x0,0x0)')
|
device_probe.XHCIController(vendor_id=32902, device_id=5612, class_code=787248, name='XHC2', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/RP05@1c0004/UPSB@0/DSB2@20000/XHC2@0', pci_path='PciRoot(0x0)/Pci(0x1c,0x4)/Pci(0x0,0x0)/Pci(0x2,0x0)/Pci(0x0,0x0)')
|
||||||
],
|
],
|
||||||
wifi=device_probe.Broadcom(vendor_id=5348, device_id=17508, class_code=163840, name='ARPT', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/RP01@1c0000/ARPT@0', pci_path='PciRoot(0x0)/Pci(0x1c,0x0)/Pci(0x0,0x0)'),
|
wifi=device_probe.Broadcom(vendor_id=5348, device_id=17508, class_code=163840, name='ARPT', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/RP01@1c0000/ARPT@0', pci_path='PciRoot(0x0)/Pci(0x1c,0x0)/Pci(0x0,0x0)'),
|
||||||
cpu=device_probe.CPU(
|
cpu=device_probe.CPU(
|
||||||
name='Intel(R) Core(TM) i5-10500 CPU @ 3.10GHz',
|
name='Intel(R) Core(TM) i5-10500 CPU @ 3.10GHz',
|
||||||
flags=['FPU', 'VME', 'DE', 'PSE', 'TSC', 'MSR', 'PAE', 'MCE', 'CX8', 'APIC', 'SEP', 'MTRR', 'PGE', 'MCA', 'CMOV', 'PAT', 'PSE36', 'CLFSH', 'DS', 'ACPI', 'MMX', 'FXSR', 'SSE', 'SSE2', 'SS', 'HTT', 'TM', 'PBE', 'SSE3', 'PCLMULQDQ', 'DTES64', 'MON', 'DSCPL', 'VMX', 'SMX', 'EST', 'TM2', 'SSSE3', 'FMA', 'CX16', 'TPR', 'PDCM', 'SSE4.1', 'SSE4.2', 'x2APIC', 'MOVBE', 'POPCNT', 'AES', 'PCID', 'XSAVE', 'OSXSAVE', 'SEGLIM64', 'TSCTMR', 'AVX1.0', 'RDRAND', 'F16C']
|
flags=['FPU', 'VME', 'DE', 'PSE', 'TSC', 'MSR', 'PAE', 'MCE', 'CX8', 'APIC', 'SEP', 'MTRR', 'PGE', 'MCA', 'CMOV', 'PAT', 'PSE36', 'CLFSH', 'DS', 'ACPI', 'MMX', 'FXSR', 'SSE', 'SSE2', 'SS', 'HTT', 'TM', 'PBE', 'SSE3', 'PCLMULQDQ', 'DTES64', 'MON', 'DSCPL', 'VMX', 'SMX', 'EST', 'TM2', 'SSSE3', 'FMA', 'CX16', 'TPR', 'PDCM', 'SSE4.1', 'SSE4.2', 'x2APIC', 'MOVBE', 'POPCNT', 'AES', 'PCID', 'XSAVE', 'OSXSAVE', 'SEGLIM64', 'TSCTMR', 'AVX1.0', 'RDRAND', 'F16C']
|
||||||
),
|
),
|
||||||
oclp_version=None,
|
oclp_version=None,
|
||||||
opencore_version=None,
|
opencore_version=None,
|
||||||
bluetooth_chipset=None,
|
bluetooth_chipset=None,
|
||||||
third_party_sata_ssd=False
|
third_party_sata_ssd=False
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -394,8 +394,8 @@ class MacPro:
|
|||||||
real_board_id="Mac-F42C88C8",
|
real_board_id="Mac-F42C88C8",
|
||||||
reported_model="MacPro3,1",
|
reported_model="MacPro3,1",
|
||||||
reported_board_id="Mac-F42C88C8",
|
reported_board_id="Mac-F42C88C8",
|
||||||
gpus=[device_probe.NVIDIA(vendor_id=4318, device_id=4737, class_code=196608, name="GFX0", model="NVIDIA GeForce GT 710", pci_path="PciRoot(0x0)/Pci(0x5,0x0)/Pci(0x0,0x0)")],
|
gpus=[device_probe.NVIDIA(vendor_id=4318, device_id=4737, class_code=196608, name="GFX0", model="NVIDIA GeForce GT 710", pci_path="PciRoot(0x0)/Pci(0x5,0x0)/Pci(0x0,0x0)")],
|
||||||
igpu=None,
|
igpu=None,
|
||||||
dgpu=device_probe.NVIDIA(vendor_id=4318, device_id=4737, class_code=196608, name="GFX0", model="NVIDIA GeForce GT 710", pci_path="PciRoot(0x0)/Pci(0x5,0x0)/Pci(0x0,0x0)"),
|
dgpu=device_probe.NVIDIA(vendor_id=4318, device_id=4737, class_code=196608, name="GFX0", model="NVIDIA GeForce GT 710", pci_path="PciRoot(0x0)/Pci(0x5,0x0)/Pci(0x0,0x0)"),
|
||||||
storage=[
|
storage=[
|
||||||
device_probe.SATAController(vendor_id=32902, device_id=9857, class_code=67073, name="SATA", model=None, pci_path="PciRoot(0x0)/Pci(0x1f,0x2)")
|
device_probe.SATAController(vendor_id=32902, device_id=9857, class_code=67073, name="SATA", model=None, pci_path="PciRoot(0x0)/Pci(0x1f,0x2)")
|
||||||
@@ -413,112 +413,112 @@ class MacPro:
|
|||||||
|
|
||||||
MacPro41_Upgrade = device_probe.Computer(
|
MacPro41_Upgrade = device_probe.Computer(
|
||||||
# Upgraded model with AMD HD7950, Atheros PCIe card
|
# Upgraded model with AMD HD7950, Atheros PCIe card
|
||||||
real_model="MacPro4,1",
|
real_model="MacPro4,1",
|
||||||
real_board_id="Mac-F221BEC8",
|
real_board_id="Mac-F221BEC8",
|
||||||
reported_model="MacPro4,1",
|
reported_model="MacPro4,1",
|
||||||
reported_board_id="Mac-F221BEC8",
|
reported_board_id="Mac-F221BEC8",
|
||||||
gpus=[device_probe.AMD(vendor_id=4098, device_id=26522, class_code=196608, name="PXS1", model="AMD Radeon HD 7950", pci_path="PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)")],
|
gpus=[device_probe.AMD(vendor_id=4098, device_id=26522, class_code=196608, name="PXS1", model="AMD Radeon HD 7950", pci_path="PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)")],
|
||||||
igpu=None,
|
igpu=None,
|
||||||
dgpu=None,
|
dgpu=None,
|
||||||
storage=[device_probe.SATAController(vendor_id=32902, device_id=14882, class_code=67073, name="SATA", model=None, pci_path="PciRoot(0x0)/Pci(0x1f,0x2)")],
|
storage=[device_probe.SATAController(vendor_id=32902, device_id=14882, class_code=67073, name="SATA", model=None, pci_path="PciRoot(0x0)/Pci(0x1f,0x2)")],
|
||||||
wifi=device_probe.Atheros(vendor_id=5772, device_id=48, class_code=163840, name="PXS4", model=None, pci_path="PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x4,0x0)/Pci(0x0,0x0)"),
|
wifi=device_probe.Atheros(vendor_id=5772, device_id=48, class_code=163840, name="PXS4", model=None, pci_path="PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x4,0x0)/Pci(0x0,0x0)"),
|
||||||
cpu=device_probe.CPU(
|
cpu=device_probe.CPU(
|
||||||
name="Intel(R) Xeon(R) CPU W3520 @ 2.67GHz",
|
name="Intel(R) Xeon(R) CPU W3520 @ 2.67GHz",
|
||||||
flags=["FPU", "VME", "DE", "PSE", "TSC", "MSR", "PAE", "MCE", "CX8", "APIC", "SEP", "MTRR", "PGE", "MCA", "CMOV", "PAT", "PSE36", "CLFSH", "DS", "ACPI", "MMX", "FXSR", "SSE", "SSE2", "SS", "HTT", "TM", "PBE", "SSE3", "DTES64", "MON", "DSCPL", "VMX", "EST", "TM2", "SSSE3", "CX16", "TPR", "PDCM", "SSE4.1", "SSE4.2", "POPCNT"]
|
flags=["FPU", "VME", "DE", "PSE", "TSC", "MSR", "PAE", "MCE", "CX8", "APIC", "SEP", "MTRR", "PGE", "MCA", "CMOV", "PAT", "PSE36", "CLFSH", "DS", "ACPI", "MMX", "FXSR", "SSE", "SSE2", "SS", "HTT", "TM", "PBE", "SSE3", "DTES64", "MON", "DSCPL", "VMX", "EST", "TM2", "SSSE3", "CX16", "TPR", "PDCM", "SSE4.1", "SSE4.2", "POPCNT"]
|
||||||
),
|
),
|
||||||
oclp_version=None,
|
oclp_version=None,
|
||||||
opencore_version=None
|
opencore_version=None
|
||||||
)
|
)
|
||||||
|
|
||||||
MacPro41_Modern_AMD = device_probe.Computer(
|
MacPro41_Modern_AMD = device_probe.Computer(
|
||||||
# Upgraded model with AMD RX470, BCM94360CD, Intel 660p
|
# Upgraded model with AMD RX470, BCM94360CD, Intel 660p
|
||||||
# Booted through OpenCore
|
# Booted through OpenCore
|
||||||
real_model="MacPro4,1",
|
real_model="MacPro4,1",
|
||||||
real_board_id="Mac-F221BEC8",
|
real_board_id="Mac-F221BEC8",
|
||||||
reported_model="MacPro4,1",
|
reported_model="MacPro4,1",
|
||||||
reported_board_id="Mac-27AD2F918AE68F61",
|
reported_board_id="Mac-27AD2F918AE68F61",
|
||||||
gpus=[device_probe.AMD(vendor_id=4098, device_id=26591, class_code=196608, name="GFX0", model="Radeon RX 470/570", pci_path="PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)")],
|
gpus=[device_probe.AMD(vendor_id=4098, device_id=26591, class_code=196608, name="GFX0", model="Radeon RX 470/570", pci_path="PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)")],
|
||||||
igpu=None,
|
igpu=None,
|
||||||
dgpu=device_probe.AMD(vendor_id=4098, device_id=26591, class_code=196608, name="GFX0", model="Radeon RX 470/570", pci_path="PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)"),
|
dgpu=device_probe.AMD(vendor_id=4098, device_id=26591, class_code=196608, name="GFX0", model="Radeon RX 470/570", pci_path="PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)"),
|
||||||
storage=[
|
storage=[
|
||||||
device_probe.SATAController(vendor_id=32902, device_id=14882, class_code=67073, name="SATA", model=None, pci_path="PciRoot(0x0)/Pci(0x1f,0x2)"),
|
device_probe.SATAController(vendor_id=32902, device_id=14882, class_code=67073, name="SATA", model=None, pci_path="PciRoot(0x0)/Pci(0x1f,0x2)"),
|
||||||
device_probe.NVMeController(vendor_id=32902, device_id=61864, class_code=67586, name="PXS3", model=None, pci_path="PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x2,0x0)/Pci(0x0,0x0)", aspm=2)
|
device_probe.NVMeController(vendor_id=32902, device_id=61864, class_code=67586, name="PXS3", model=None, pci_path="PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x2,0x0)/Pci(0x0,0x0)", aspm=2)
|
||||||
],
|
],
|
||||||
wifi=device_probe.Broadcom(vendor_id=5348, device_id=17312, class_code=163840, name="ARPT", model=None, pci_path="PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x4,0x0)/Pci(0x0,0x0)"),
|
wifi=device_probe.Broadcom(vendor_id=5348, device_id=17312, class_code=163840, name="ARPT", model=None, pci_path="PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x4,0x0)/Pci(0x0,0x0)"),
|
||||||
cpu=device_probe.CPU(
|
cpu=device_probe.CPU(
|
||||||
name="Intel(R) Xeon(R) CPU W3520 @ 2.67GHz",
|
name="Intel(R) Xeon(R) CPU W3520 @ 2.67GHz",
|
||||||
flags=["FPU", "VME", "DE", "PSE", "TSC", "MSR", "PAE", "MCE", "CX8", "APIC", "SEP", "MTRR", "PGE", "MCA", "CMOV", "PAT", "PSE36", "CLFSH", "DS", "ACPI", "MMX", "FXSR", "SSE", "SSE2", "SS", "HTT", "TM", "PBE", "SSE3", "DTES64", "MON", "DSCPL", "VMX", "EST", "TM2", "SSSE3", "CX16", "TPR", "PDCM", "SSE4.1", "SSE4.2", "POPCNT"]
|
flags=["FPU", "VME", "DE", "PSE", "TSC", "MSR", "PAE", "MCE", "CX8", "APIC", "SEP", "MTRR", "PGE", "MCA", "CMOV", "PAT", "PSE36", "CLFSH", "DS", "ACPI", "MMX", "FXSR", "SSE", "SSE2", "SS", "HTT", "TM", "PBE", "SSE3", "DTES64", "MON", "DSCPL", "VMX", "EST", "TM2", "SSSE3", "CX16", "TPR", "PDCM", "SSE4.1", "SSE4.2", "POPCNT"]
|
||||||
),
|
),
|
||||||
oclp_version="0.2.5",
|
oclp_version="0.2.5",
|
||||||
opencore_version="REL-071-2021-07-02"
|
opencore_version="REL-071-2021-07-02"
|
||||||
)
|
)
|
||||||
|
|
||||||
MacPro41_51__Flashed_Modern_AMD = device_probe.Computer(
|
MacPro41_51__Flashed_Modern_AMD = device_probe.Computer(
|
||||||
# 4,1 flashed to 5,1, RX5700XT, BCM94360CD, WD SN750 NVMe
|
# 4,1 flashed to 5,1, RX5700XT, BCM94360CD, WD SN750 NVMe
|
||||||
real_model="MacPro5,1",
|
real_model="MacPro5,1",
|
||||||
real_board_id="Mac-F221BEC8",
|
real_board_id="Mac-F221BEC8",
|
||||||
reported_model="MacPro5,1",
|
reported_model="MacPro5,1",
|
||||||
reported_board_id="Mac-F221BEC8",
|
reported_board_id="Mac-F221BEC8",
|
||||||
gpus=[device_probe.AMD(vendor_id=4098, device_id=29471, class_code=196608, name="GFX0", model="AMD Radeon RX 5700 XT", pci_path="PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)")],
|
gpus=[device_probe.AMD(vendor_id=4098, device_id=29471, class_code=196608, name="GFX0", model="AMD Radeon RX 5700 XT", pci_path="PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)")],
|
||||||
igpu=None,
|
igpu=None,
|
||||||
dgpu=device_probe.AMD(vendor_id=4098, device_id=29471, class_code=196608, name="GFX0", model="AMD Radeon RX 5700 XT", pci_path="PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)"),
|
dgpu=device_probe.AMD(vendor_id=4098, device_id=29471, class_code=196608, name="GFX0", model="AMD Radeon RX 5700 XT", pci_path="PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)"),
|
||||||
storage=[
|
storage=[
|
||||||
device_probe.SATAController(vendor_id=32902, device_id=14882, class_code=67073, name="SATA", model=None, pci_path="PciRoot(0x0)/Pci(0x1f,0x2)"),
|
device_probe.SATAController(vendor_id=32902, device_id=14882, class_code=67073, name="SATA", model=None, pci_path="PciRoot(0x0)/Pci(0x1f,0x2)"),
|
||||||
device_probe.NVMeController(vendor_id=5559, device_id=20482, class_code=67586, name="PXS3", model=None, pci_path="PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x2,0x0)/Pci(0x0,0x0)", aspm=2)
|
device_probe.NVMeController(vendor_id=5559, device_id=20482, class_code=67586, name="PXS3", model=None, pci_path="PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x2,0x0)/Pci(0x0,0x0)", aspm=2)
|
||||||
],
|
],
|
||||||
|
|
||||||
wifi=device_probe.Broadcom(vendor_id=5348, device_id=17312, class_code=163840, name="PXS4", model=None, pci_path="PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x4,0x0)/Pci(0x0,0x0)"),
|
wifi=device_probe.Broadcom(vendor_id=5348, device_id=17312, class_code=163840, name="PXS4", model=None, pci_path="PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x4,0x0)/Pci(0x0,0x0)"),
|
||||||
cpu=device_probe.CPU(
|
cpu=device_probe.CPU(
|
||||||
name="Intel(R) Xeon(R) CPU X5670 @ 2.93GHz",
|
name="Intel(R) Xeon(R) CPU X5670 @ 2.93GHz",
|
||||||
flags=["FPU", "VME", "DE", "PSE", "TSC", "MSR", "PAE", "MCE", "CX8", "APIC", "SEP", "MTRR", "PGE", "MCA", "CMOV", "PAT", "PSE36", "CLFSH", "DS", "ACPI", "MMX", "FXSR", "SSE", "SSE2", "SS", "HTT", "TM", "PBE", "SSE3", "PCLMULQDQ", "DTES64", "MON", "DSCPL", "VMX", "SMX", "EST", "TM2", "SSSE3", "CX16", "TPR", "PDCM", "SSE4.1", "SSE4.2", "POPCNT", "AES", "PCID"]
|
flags=["FPU", "VME", "DE", "PSE", "TSC", "MSR", "PAE", "MCE", "CX8", "APIC", "SEP", "MTRR", "PGE", "MCA", "CMOV", "PAT", "PSE36", "CLFSH", "DS", "ACPI", "MMX", "FXSR", "SSE", "SSE2", "SS", "HTT", "TM", "PBE", "SSE3", "PCLMULQDQ", "DTES64", "MON", "DSCPL", "VMX", "SMX", "EST", "TM2", "SSSE3", "CX16", "TPR", "PDCM", "SSE4.1", "SSE4.2", "POPCNT", "AES", "PCID"]
|
||||||
),
|
),
|
||||||
oclp_version="0.2.5",
|
oclp_version="0.2.5",
|
||||||
opencore_version="REL-071-2021-07-02"
|
opencore_version="REL-071-2021-07-02"
|
||||||
)
|
)
|
||||||
|
|
||||||
MacPro41_51_Flashed_NVIDIA_WEB_DRIVERS = device_probe.Computer(
|
MacPro41_51_Flashed_NVIDIA_WEB_DRIVERS = device_probe.Computer(
|
||||||
real_model='MacPro5,1',
|
real_model='MacPro5,1',
|
||||||
real_board_id='Mac-F221BEC8',
|
real_board_id='Mac-F221BEC8',
|
||||||
reported_model='MacPro5,1',
|
reported_model='MacPro5,1',
|
||||||
reported_board_id='Mac-F221BEC8',
|
reported_board_id='Mac-F221BEC8',
|
||||||
build_model='MacPro5,1',
|
build_model='MacPro5,1',
|
||||||
gpus=[
|
gpus=[
|
||||||
device_probe.NVIDIA(vendor_id=4318, device_id=5051, class_code=196608, name='GFX0', model='NVIDIA Quadro K620', acpi_path='IOACPIPlane:/_SB/PCI0@0/IOU0@30000/PXS1@ffff', pci_path='PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)', disable_metal=True, force_compatible=True)
|
device_probe.NVIDIA(vendor_id=4318, device_id=5051, class_code=196608, name='GFX0', model='NVIDIA Quadro K620', acpi_path='IOACPIPlane:/_SB/PCI0@0/IOU0@30000/PXS1@ffff', pci_path='PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)', disable_metal=True, force_compatible=True)
|
||||||
],
|
],
|
||||||
igpu=None,
|
igpu=None,
|
||||||
dgpu=device_probe.NVIDIA(vendor_id=4318, device_id=5051, class_code=196608, name='GFX0', model='NVIDIA Quadro K620', acpi_path='IOACPIPlane:/_SB/PCI0@0/IOU0@30000/PXS1@ffff', pci_path='PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)', disable_metal=True, force_compatible=True),
|
dgpu=device_probe.NVIDIA(vendor_id=4318, device_id=5051, class_code=196608, name='GFX0', model='NVIDIA Quadro K620', acpi_path='IOACPIPlane:/_SB/PCI0@0/IOU0@30000/PXS1@ffff', pci_path='PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)', disable_metal=True, force_compatible=True),
|
||||||
storage=[
|
storage=[
|
||||||
device_probe.SATAController(vendor_id=32902, device_id=14882, class_code=67073, name='SATA', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/SATA@1f0002', pci_path='PciRoot(0x0)/Pci(0x1f,0x2)', disable_metal=False, force_compatible=False)
|
device_probe.SATAController(vendor_id=32902, device_id=14882, class_code=67073, name='SATA', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/SATA@1f0002', pci_path='PciRoot(0x0)/Pci(0x1f,0x2)', disable_metal=False, force_compatible=False)
|
||||||
],
|
],
|
||||||
usb_controllers=[
|
usb_controllers=[
|
||||||
device_probe.EHCIController(vendor_id=32902, device_id=14908, class_code=787232, name='EHC2', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/EHC2@1a0007', pci_path='PciRoot(0x0)/Pci(0x1a,0x7)', disable_metal=False, force_compatible=False),
|
device_probe.EHCIController(vendor_id=32902, device_id=14908, class_code=787232, name='EHC2', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/EHC2@1a0007', pci_path='PciRoot(0x0)/Pci(0x1a,0x7)', disable_metal=False, force_compatible=False),
|
||||||
device_probe.EHCIController(vendor_id=32902, device_id=14906, class_code=787232, name='EHC1', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/EHC1@1d0007', pci_path='PciRoot(0x0)/Pci(0x1d,0x7)', disable_metal=False, force_compatible=False),
|
device_probe.EHCIController(vendor_id=32902, device_id=14906, class_code=787232, name='EHC1', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/EHC1@1d0007', pci_path='PciRoot(0x0)/Pci(0x1d,0x7)', disable_metal=False, force_compatible=False),
|
||||||
device_probe.UHCIController(vendor_id=32902, device_id=14903, class_code=787200, name='UHC4', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/UHC4@1a0000', pci_path='PciRoot(0x0)/Pci(0x1a,0x0)', disable_metal=False, force_compatible=False),
|
device_probe.UHCIController(vendor_id=32902, device_id=14903, class_code=787200, name='UHC4', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/UHC4@1a0000', pci_path='PciRoot(0x0)/Pci(0x1a,0x0)', disable_metal=False, force_compatible=False),
|
||||||
device_probe.UHCIController(vendor_id=32902, device_id=14904, class_code=787200, name='UHC5', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/UHC5@1a0001', pci_path='PciRoot(0x0)/Pci(0x1a,0x1)', disable_metal=False, force_compatible=False),
|
device_probe.UHCIController(vendor_id=32902, device_id=14904, class_code=787200, name='UHC5', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/UHC5@1a0001', pci_path='PciRoot(0x0)/Pci(0x1a,0x1)', disable_metal=False, force_compatible=False),
|
||||||
device_probe.UHCIController(vendor_id=32902, device_id=14905, class_code=787200, name='UHC6', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/UHC6@1a0002', pci_path='PciRoot(0x0)/Pci(0x1a,0x2)', disable_metal=False, force_compatible=False),
|
device_probe.UHCIController(vendor_id=32902, device_id=14905, class_code=787200, name='UHC6', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/UHC6@1a0002', pci_path='PciRoot(0x0)/Pci(0x1a,0x2)', disable_metal=False, force_compatible=False),
|
||||||
device_probe.UHCIController(vendor_id=32902, device_id=14900, class_code=787200, name='UHC1', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/UHC1@1d0000', pci_path='PciRoot(0x0)/Pci(0x1d,0x0)', disable_metal=False, force_compatible=False),
|
device_probe.UHCIController(vendor_id=32902, device_id=14900, class_code=787200, name='UHC1', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/UHC1@1d0000', pci_path='PciRoot(0x0)/Pci(0x1d,0x0)', disable_metal=False, force_compatible=False),
|
||||||
device_probe.UHCIController(vendor_id=32902, device_id=14901, class_code=787200, name='UHC2', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/UHC2@1d0001', pci_path='PciRoot(0x0)/Pci(0x1d,0x1)', disable_metal=False, force_compatible=False),
|
device_probe.UHCIController(vendor_id=32902, device_id=14901, class_code=787200, name='UHC2', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/UHC2@1d0001', pci_path='PciRoot(0x0)/Pci(0x1d,0x1)', disable_metal=False, force_compatible=False),
|
||||||
device_probe.UHCIController(vendor_id=32902, device_id=14902, class_code=787200, name='UHC3', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/UHC3@1d0002', pci_path='PciRoot(0x0)/Pci(0x1d,0x2)', disable_metal=False, force_compatible=False)
|
device_probe.UHCIController(vendor_id=32902, device_id=14902, class_code=787200, name='UHC3', model=None, acpi_path='IOACPIPlane:/_SB/PCI0@0/UHC3@1d0002', pci_path='PciRoot(0x0)/Pci(0x1d,0x2)', disable_metal=False, force_compatible=False)
|
||||||
],
|
],
|
||||||
sdxc_controller=[],
|
sdxc_controller=[],
|
||||||
ethernet=[
|
ethernet=[
|
||||||
device_probe.IntelEthernet(vendor_id=32902, device_id=4342, class_code=131072, name='ETH1', model='Intel 82574L', acpi_path='IOACPIPlane:/_SB/PCI0@0/RP04@1c0003/ETH1@0', pci_path='PciRoot(0x0)/Pci(0x1c,0x3)/Pci(0x0,0x0)', disable_metal=False, force_compatible=False),
|
device_probe.IntelEthernet(vendor_id=32902, device_id=4342, class_code=131072, name='ETH1', model='Intel 82574L', acpi_path='IOACPIPlane:/_SB/PCI0@0/RP04@1c0003/ETH1@0', pci_path='PciRoot(0x0)/Pci(0x1c,0x3)/Pci(0x0,0x0)', disable_metal=False, force_compatible=False),
|
||||||
device_probe.IntelEthernet(vendor_id=32902, device_id=4342, class_code=131072, name='ETH0', model='Intel 82574L', acpi_path='IOACPIPlane:/_SB/PCI0@0/RP03@1c0002/ETH0@0', pci_path='PciRoot(0x0)/Pci(0x1c,0x2)/Pci(0x0,0x0)', disable_metal=False, force_compatible=False)
|
device_probe.IntelEthernet(vendor_id=32902, device_id=4342, class_code=131072, name='ETH0', model='Intel 82574L', acpi_path='IOACPIPlane:/_SB/PCI0@0/RP03@1c0002/ETH0@0', pci_path='PciRoot(0x0)/Pci(0x1c,0x2)/Pci(0x0,0x0)', disable_metal=False, force_compatible=False)
|
||||||
],
|
],
|
||||||
wifi=None,
|
wifi=None,
|
||||||
cpu=device_probe.CPU(
|
cpu=device_probe.CPU(
|
||||||
name='Intel(R) Xeon(R) CPU X5670 @ 2.93GHz',
|
name='Intel(R) Xeon(R) CPU X5670 @ 2.93GHz',
|
||||||
flags=['FPU', 'VME', 'DE', 'PSE', 'TSC', 'MSR', 'PAE', 'MCE', 'CX8', 'APIC', 'SEP', 'MTRR', 'PGE', 'MCA', 'CMOV', 'PAT', 'PSE36', 'CLFSH', 'DS', 'ACPI', 'MMX', 'FXSR', 'SSE', 'SSE2', 'SS', 'HTT', 'TM', 'PBE', 'SSE3', 'PCLMULQDQ', 'DTES64', 'MON', 'DSCPL', 'VMX', 'SMX', 'EST', 'TM2', 'SSSE3', 'CX16', 'TPR', 'PDCM', 'SSE4.1', 'SSE4.2', 'POPCNT', 'AES', 'PCID']
|
flags=['FPU', 'VME', 'DE', 'PSE', 'TSC', 'MSR', 'PAE', 'MCE', 'CX8', 'APIC', 'SEP', 'MTRR', 'PGE', 'MCA', 'CMOV', 'PAT', 'PSE36', 'CLFSH', 'DS', 'ACPI', 'MMX', 'FXSR', 'SSE', 'SSE2', 'SS', 'HTT', 'TM', 'PBE', 'SSE3', 'PCLMULQDQ', 'DTES64', 'MON', 'DSCPL', 'VMX', 'SMX', 'EST', 'TM2', 'SSSE3', 'CX16', 'TPR', 'PDCM', 'SSE4.1', 'SSE4.2', 'POPCNT', 'AES', 'PCID']
|
||||||
),
|
),
|
||||||
oclp_version='0.4.6',
|
oclp_version='0.4.6',
|
||||||
opencore_version='REL-080-2022-04-18',
|
opencore_version='REL-080-2022-04-18',
|
||||||
opencore_path='PciRoot(0x0)/Pci(0x1D,0x7)/USB(0x4,0x0)/HD(2,GPT,AEC1E933-C311-40E2-BBCE-FC4B14BCD770,0x64800,0x38E3000)/EFI\\OC\\OpenCore.efi',
|
opencore_path='PciRoot(0x0)/Pci(0x1D,0x7)/USB(0x4,0x0)/HD(2,GPT,AEC1E933-C311-40E2-BBCE-FC4B14BCD770,0x64800,0x38E3000)/EFI\\OC\\OpenCore.efi',
|
||||||
bluetooth_chipset='BRCM2046 Hub',
|
bluetooth_chipset='BRCM2046 Hub',
|
||||||
ambient_light_sensor=False,
|
ambient_light_sensor=False,
|
||||||
third_party_sata_ssd=True,
|
third_party_sata_ssd=True,
|
||||||
secure_boot_model='x86legacyap',
|
secure_boot_model='x86legacyap',
|
||||||
secure_boot_policy=0,
|
secure_boot_policy=0,
|
||||||
oclp_sys_version='v0.4.6',
|
oclp_sys_version='v0.4.6',
|
||||||
oclp_sys_date='September 03, 2019 @ 23:13:43',
|
oclp_sys_date='September 03, 2019 @ 23:13:43',
|
||||||
firmware_vendor='Apple'
|
firmware_vendor='Apple'
|
||||||
)
|
)
|
||||||
+1
-1
@@ -35,7 +35,7 @@ class os_conversion:
|
|||||||
return str((kernel - 9))
|
return str((kernel - 9))
|
||||||
else:
|
else:
|
||||||
return str((f"10.{kernel - 4}"))
|
return str((f"10.{kernel - 4}"))
|
||||||
|
|
||||||
def is_os_newer(source_major, source_minor, target_major, target_minor):
|
def is_os_newer(source_major, source_minor, target_major, target_minor):
|
||||||
# Check if OS version 1 is newer than OS version 2
|
# Check if OS version 1 is newer than OS version 2
|
||||||
if source_major < target_major:
|
if source_major < target_major:
|
||||||
|
|||||||
@@ -345,7 +345,7 @@ def SystemPatchDictionary(os_major, os_minor, non_metal_os_support):
|
|||||||
"NVDAResmanTeslaWeb.kext": "WebDriver-387.10.10.10.40.140",
|
"NVDAResmanTeslaWeb.kext": "WebDriver-387.10.10.10.40.140",
|
||||||
},
|
},
|
||||||
|
|
||||||
# Disabled due to issues with Pref pane stripping 'nvda_drv' NVRAM
|
# Disabled due to issues with Pref pane stripping 'nvda_drv' NVRAM
|
||||||
# variables
|
# variables
|
||||||
# "/Library/PreferencePanes": {
|
# "/Library/PreferencePanes": {
|
||||||
# "NVIDIA Driver Manager.prefPane": "WebDriver-387.10.10.10.40.140",
|
# "NVIDIA Driver Manager.prefPane": "WebDriver-387.10.10.10.40.140",
|
||||||
|
|||||||
@@ -102,4 +102,3 @@ class gui_help_menu:
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
self.frame_modal.ShowWindowModal()
|
self.frame_modal.ShowWindowModal()
|
||||||
|
|
||||||
+113
-113
@@ -19,7 +19,7 @@ import hashlib
|
|||||||
from resources import constants, defaults, build, install, installer, sys_patch_download, utilities, sys_patch_detect, sys_patch, run, generate_smbios, updates, integrity_verification, global_settings
|
from resources import constants, defaults, build, install, installer, sys_patch_download, utilities, sys_patch_detect, sys_patch, run, generate_smbios, updates, integrity_verification, global_settings
|
||||||
from data import model_array, os_data, smbios_data, sip_data
|
from data import model_array, os_data, smbios_data, sip_data
|
||||||
from gui import menu_redirect, gui_help
|
from gui import menu_redirect, gui_help
|
||||||
|
|
||||||
|
|
||||||
class wx_python_gui:
|
class wx_python_gui:
|
||||||
def __init__(self, versions, frame=None, frame_modal=None):
|
def __init__(self, versions, frame=None, frame_modal=None):
|
||||||
@@ -51,7 +51,7 @@ class wx_python_gui:
|
|||||||
self.app = wx.App()
|
self.app = wx.App()
|
||||||
if frame is None:
|
if frame is None:
|
||||||
self.frame = wx.Frame(
|
self.frame = wx.Frame(
|
||||||
None, title="OpenCore Legacy Patcher",
|
None, title="OpenCore Legacy Patcher",
|
||||||
size=(self.WINDOW_WIDTH_MAIN, self.WINDOW_HEIGHT_MAIN),
|
size=(self.WINDOW_WIDTH_MAIN, self.WINDOW_HEIGHT_MAIN),
|
||||||
style = wx.DEFAULT_FRAME_STYLE & ~(wx.RESIZE_BORDER | wx.MAXIMIZE_BOX)
|
style = wx.DEFAULT_FRAME_STYLE & ~(wx.RESIZE_BORDER | wx.MAXIMIZE_BOX)
|
||||||
)
|
)
|
||||||
@@ -69,14 +69,14 @@ class wx_python_gui:
|
|||||||
self.frame.SetMenuBar(self.menubar)
|
self.frame.SetMenuBar(self.menubar)
|
||||||
else:
|
else:
|
||||||
self.frame = frame
|
self.frame = frame
|
||||||
|
|
||||||
# Modal Frames
|
# Modal Frames
|
||||||
self.frame_modal = frame_modal
|
self.frame_modal = frame_modal
|
||||||
|
|
||||||
if current_uid == 0:
|
if current_uid == 0:
|
||||||
self.file_menu.Enable(wx.ID_REDO, False)
|
self.file_menu.Enable(wx.ID_REDO, False)
|
||||||
|
|
||||||
|
|
||||||
def OnCloseFrame(self, event=None):
|
def OnCloseFrame(self, event=None):
|
||||||
self.frame.SetTransparent(0)
|
self.frame.SetTransparent(0)
|
||||||
wx.GetApp().Yield()
|
wx.GetApp().Yield()
|
||||||
@@ -84,7 +84,7 @@ class wx_python_gui:
|
|||||||
self.frame.Destroy()
|
self.frame.Destroy()
|
||||||
self.app.ExitMainLoop()
|
self.app.ExitMainLoop()
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
def reboot_system(self, event=None, message=""):
|
def reboot_system(self, event=None, message=""):
|
||||||
self.popup = wx.MessageDialog(
|
self.popup = wx.MessageDialog(
|
||||||
self.frame,
|
self.frame,
|
||||||
@@ -98,7 +98,7 @@ class wx_python_gui:
|
|||||||
# Reboots with Count Down prompt (user can still dismiss if needed)
|
# Reboots with Count Down prompt (user can still dismiss if needed)
|
||||||
subprocess.call(['osascript', '-e', 'tell app "loginwindow" to «event aevtrrst»'])
|
subprocess.call(['osascript', '-e', 'tell app "loginwindow" to «event aevtrrst»'])
|
||||||
self.OnCloseFrame(event)
|
self.OnCloseFrame(event)
|
||||||
|
|
||||||
def reset_window(self):
|
def reset_window(self):
|
||||||
self.frame.DestroyChildren()
|
self.frame.DestroyChildren()
|
||||||
self.frame.SetSize(self.WINDOW_WIDTH_MAIN, self.WINDOW_HEIGHT_MAIN)
|
self.frame.SetSize(self.WINDOW_WIDTH_MAIN, self.WINDOW_HEIGHT_MAIN)
|
||||||
@@ -108,7 +108,7 @@ class wx_python_gui:
|
|||||||
|
|
||||||
# Re-enable sleep if we failed to do so before returning to the main menu
|
# Re-enable sleep if we failed to do so before returning to the main menu
|
||||||
utilities.enable_sleep_after_running()
|
utilities.enable_sleep_after_running()
|
||||||
|
|
||||||
def reset_frame_modal(self):
|
def reset_frame_modal(self):
|
||||||
if not self.frame_modal:
|
if not self.frame_modal:
|
||||||
self.frame_modal = wx.Dialog(self.frame)
|
self.frame_modal = wx.Dialog(self.frame)
|
||||||
@@ -122,14 +122,14 @@ class wx_python_gui:
|
|||||||
# Calling ShowWithoutActivating() resets the frame position
|
# Calling ShowWithoutActivating() resets the frame position
|
||||||
if self.constants.detected_os >= os_data.os_data.big_sur:
|
if self.constants.detected_os >= os_data.os_data.big_sur:
|
||||||
self.frame_modal.ShowWithoutActivating()
|
self.frame_modal.ShowWithoutActivating()
|
||||||
|
|
||||||
def use_non_metal_alternative(self):
|
def use_non_metal_alternative(self):
|
||||||
if self.constants.detected_os >= os_data.os_data.monterey:
|
if self.constants.detected_os >= os_data.os_data.monterey:
|
||||||
if Path("/System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/SkyLightOld.dylib").exists():
|
if Path("/System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/SkyLightOld.dylib").exists():
|
||||||
if self.constants.host_is_non_metal is True:
|
if self.constants.host_is_non_metal is True:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def is_unpack_finished(self):
|
def is_unpack_finished(self):
|
||||||
if not self.constants.unpack_thread.is_alive():
|
if not self.constants.unpack_thread.is_alive():
|
||||||
if Path(self.constants.payload_kexts_path).exists():
|
if Path(self.constants.payload_kexts_path).exists():
|
||||||
@@ -154,7 +154,7 @@ class wx_python_gui:
|
|||||||
|
|
||||||
elif progress_bar.GetValue() == 100:
|
elif progress_bar.GetValue() == 100:
|
||||||
self.pulse_forward = False
|
self.pulse_forward = False
|
||||||
|
|
||||||
if self.pulse_forward:
|
if self.pulse_forward:
|
||||||
progress_bar.SetValue(progress_bar.GetValue() + 1)
|
progress_bar.SetValue(progress_bar.GetValue() + 1)
|
||||||
else:
|
else:
|
||||||
@@ -163,7 +163,7 @@ class wx_python_gui:
|
|||||||
|
|
||||||
def preflight_check(self):
|
def preflight_check(self):
|
||||||
if (
|
if (
|
||||||
self.constants.computer.build_model != None and
|
self.constants.computer.build_model != None and
|
||||||
self.constants.computer.build_model != self.constants.computer.real_model and
|
self.constants.computer.build_model != self.constants.computer.real_model and
|
||||||
self.constants.host_is_hackintosh is False
|
self.constants.host_is_hackintosh is False
|
||||||
):
|
):
|
||||||
@@ -179,7 +179,7 @@ class wx_python_gui:
|
|||||||
else:
|
else:
|
||||||
# Spawn thread to check for updates
|
# Spawn thread to check for updates
|
||||||
threading.Thread(target=self.check_for_updates).start()
|
threading.Thread(target=self.check_for_updates).start()
|
||||||
|
|
||||||
def check_for_updates(self, event=None):
|
def check_for_updates(self, event=None):
|
||||||
ignore_updates = global_settings.global_settings().read_property("IgnoreAppUpdates")
|
ignore_updates = global_settings.global_settings().read_property("IgnoreAppUpdates")
|
||||||
if ignore_updates is not True:
|
if ignore_updates is not True:
|
||||||
@@ -191,9 +191,9 @@ class wx_python_gui:
|
|||||||
github_link = dict[entry]["Github Link"]
|
github_link = dict[entry]["Github Link"]
|
||||||
print(f"New version: {version}")
|
print(f"New version: {version}")
|
||||||
self.dialog = wx.MessageDialog(
|
self.dialog = wx.MessageDialog(
|
||||||
parent=self.frame,
|
parent=self.frame,
|
||||||
message=f"Current Version: {self.constants.patcher_version}\nNew version: {version}\nWould you like to view?",
|
message=f"Current Version: {self.constants.patcher_version}\nNew version: {version}\nWould you like to view?",
|
||||||
caption="Update Available for OpenCore Legacy Patcher!",
|
caption="Update Available for OpenCore Legacy Patcher!",
|
||||||
style=wx.YES_NO | wx.CANCEL | wx.ICON_QUESTION
|
style=wx.YES_NO | wx.CANCEL | wx.ICON_QUESTION
|
||||||
)
|
)
|
||||||
self.dialog.SetYesNoCancelLabels("View on Github", "Always Ignore", "Ignore Once")
|
self.dialog.SetYesNoCancelLabels("View on Github", "Always Ignore", "Ignore Once")
|
||||||
@@ -207,7 +207,7 @@ class wx_python_gui:
|
|||||||
else:
|
else:
|
||||||
self.constants.ignore_updates = True
|
self.constants.ignore_updates = True
|
||||||
print("- Ignoring App Updates due to defaults")
|
print("- Ignoring App Updates due to defaults")
|
||||||
|
|
||||||
def relaunch_as_root(self, event=None):
|
def relaunch_as_root(self, event=None):
|
||||||
|
|
||||||
# Add Dialog Box asking if it's ok to relaunch as root
|
# Add Dialog Box asking if it's ok to relaunch as root
|
||||||
@@ -290,7 +290,7 @@ class wx_python_gui:
|
|||||||
|
|
||||||
wx.GetApp().Yield()
|
wx.GetApp().Yield()
|
||||||
subprocess.Popen(
|
subprocess.Popen(
|
||||||
args,
|
args,
|
||||||
stdout=subprocess.PIPE,
|
stdout=subprocess.PIPE,
|
||||||
stderr=subprocess.STDOUT
|
stderr=subprocess.STDOUT
|
||||||
)
|
)
|
||||||
@@ -303,7 +303,7 @@ class wx_python_gui:
|
|||||||
break
|
break
|
||||||
# Close Current Application
|
# Close Current Application
|
||||||
self.OnCloseFrame(event)
|
self.OnCloseFrame(event)
|
||||||
|
|
||||||
def not_yet_implemented_menu(self, event=None):
|
def not_yet_implemented_menu(self, event=None):
|
||||||
self.frame.DestroyChildren()
|
self.frame.DestroyChildren()
|
||||||
self.frame.SetSize(self.WINDOW_WIDTH_MAIN, self.WINDOW_HEIGHT_MAIN)
|
self.frame.SetSize(self.WINDOW_WIDTH_MAIN, self.WINDOW_HEIGHT_MAIN)
|
||||||
@@ -349,7 +349,7 @@ class wx_python_gui:
|
|||||||
self.subheader.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
|
self.subheader.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))
|
||||||
self.subheader.SetPosition(
|
self.subheader.SetPosition(
|
||||||
wx.Point(
|
wx.Point(
|
||||||
self.header.GetPosition().x,
|
self.header.GetPosition().x,
|
||||||
self.header.GetPosition().y + self.header.GetSize().height + 5
|
self.header.GetPosition().y + self.header.GetSize().height + 5
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -365,7 +365,7 @@ class wx_python_gui:
|
|||||||
)
|
)
|
||||||
self.build_install.Bind(wx.EVT_BUTTON, self.build_install_menu)
|
self.build_install.Bind(wx.EVT_BUTTON, self.build_install_menu)
|
||||||
self.build_install.Centre(wx.HORIZONTAL)
|
self.build_install.Centre(wx.HORIZONTAL)
|
||||||
|
|
||||||
# Disable button if real_model not in model_array.SupportedSMBIOS
|
# Disable button if real_model not in model_array.SupportedSMBIOS
|
||||||
if (
|
if (
|
||||||
(
|
(
|
||||||
@@ -412,7 +412,7 @@ class wx_python_gui:
|
|||||||
self.settings = wx.Button(self.frame, label="Settings", size=(200,30))
|
self.settings = wx.Button(self.frame, label="Settings", size=(200,30))
|
||||||
self.settings.SetPosition(
|
self.settings.SetPosition(
|
||||||
wx.Point(
|
wx.Point(
|
||||||
self.create_installer.GetPosition().x,
|
self.create_installer.GetPosition().x,
|
||||||
self.create_installer.GetPosition().y + self.create_installer.GetSize().height
|
self.create_installer.GetPosition().y + self.create_installer.GetSize().height
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -464,8 +464,8 @@ class wx_python_gui:
|
|||||||
self.constants.start_build_install = False
|
self.constants.start_build_install = False
|
||||||
|
|
||||||
if self.app.MainLoop() is None:
|
if self.app.MainLoop() is None:
|
||||||
self.app.MainLoop()
|
self.app.MainLoop()
|
||||||
|
|
||||||
def help_menu(self, event=None):
|
def help_menu(self, event=None):
|
||||||
# Define Menu
|
# Define Menu
|
||||||
# Header: Get help with OpenCore Legacy Patcher
|
# Header: Get help with OpenCore Legacy Patcher
|
||||||
@@ -546,7 +546,7 @@ class wx_python_gui:
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
self.frame_modal.ShowWindowModal()
|
self.frame_modal.ShowWindowModal()
|
||||||
|
|
||||||
def build_install_menu(self, event=None):
|
def build_install_menu(self, event=None):
|
||||||
# Define Menu
|
# Define Menu
|
||||||
# - Header: Build and Install OpenCore
|
# - Header: Build and Install OpenCore
|
||||||
@@ -611,7 +611,7 @@ class wx_python_gui:
|
|||||||
self.frame_modal.ShowWindowModal()
|
self.frame_modal.ShowWindowModal()
|
||||||
|
|
||||||
self.build_start()
|
self.build_start()
|
||||||
|
|
||||||
def build_start(self, event=None):
|
def build_start(self, event=None):
|
||||||
self.build_opencore.Disable()
|
self.build_opencore.Disable()
|
||||||
|
|
||||||
@@ -629,9 +629,9 @@ class wx_python_gui:
|
|||||||
|
|
||||||
# Throw popup asking to install OpenCore
|
# Throw popup asking to install OpenCore
|
||||||
self.dialog = wx.MessageDialog(
|
self.dialog = wx.MessageDialog(
|
||||||
parent=self.frame_modal,
|
parent=self.frame_modal,
|
||||||
message=f"Would you like to install OpenCore now?",
|
message=f"Would you like to install OpenCore now?",
|
||||||
caption="Finished building your OpenCore configuration!",
|
caption="Finished building your OpenCore configuration!",
|
||||||
style=wx.YES_NO | wx.ICON_QUESTION
|
style=wx.YES_NO | wx.ICON_QUESTION
|
||||||
)
|
)
|
||||||
self.dialog.SetYesNoLabels("Install to disk", "View build log")
|
self.dialog.SetYesNoLabels("Install to disk", "View build log")
|
||||||
@@ -639,12 +639,12 @@ class wx_python_gui:
|
|||||||
self.install_menu()
|
self.install_menu()
|
||||||
else:
|
else:
|
||||||
self.build_opencore.Enable()
|
self.build_opencore.Enable()
|
||||||
|
|
||||||
def install_menu(self, event=None):
|
def install_menu(self, event=None):
|
||||||
self.frame.DestroyChildren()
|
self.frame.DestroyChildren()
|
||||||
self.frame.SetSize(self.WINDOW_WIDTH_BUILD, -1)
|
self.frame.SetSize(self.WINDOW_WIDTH_BUILD, -1)
|
||||||
i = 0
|
i = 0
|
||||||
|
|
||||||
# Header
|
# Header
|
||||||
self.header = wx.StaticText(self.frame, label="Install OpenCore")
|
self.header = wx.StaticText(self.frame, label="Install OpenCore")
|
||||||
self.header.SetFont(wx.Font(18, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD))
|
self.header.SetFont(wx.Font(18, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD))
|
||||||
@@ -701,7 +701,7 @@ class wx_python_gui:
|
|||||||
# Request Disks Present
|
# Request Disks Present
|
||||||
def get_disks():
|
def get_disks():
|
||||||
self.list_disks = install.tui_disk_installation(self.constants).list_disks()
|
self.list_disks = install.tui_disk_installation(self.constants).list_disks()
|
||||||
|
|
||||||
thread_disk = threading.Thread(target=get_disks)
|
thread_disk = threading.Thread(target=get_disks)
|
||||||
thread_disk.start()
|
thread_disk.start()
|
||||||
self.progress_bar.Pulse()
|
self.progress_bar.Pulse()
|
||||||
@@ -716,7 +716,7 @@ class wx_python_gui:
|
|||||||
self.color_note.Show()
|
self.color_note.Show()
|
||||||
self.missing_disks.SetLabel("Missing disks? Ensure they're FAT32 or formatted as GUID/GPT")
|
self.missing_disks.SetLabel("Missing disks? Ensure they're FAT32 or formatted as GUID/GPT")
|
||||||
self.missing_disks.Centre(wx.HORIZONTAL)
|
self.missing_disks.Centre(wx.HORIZONTAL)
|
||||||
|
|
||||||
if list_disks:
|
if list_disks:
|
||||||
if self.constants.booted_oc_disk is not None:
|
if self.constants.booted_oc_disk is not None:
|
||||||
# disk6s1 -> disk6
|
# disk6s1 -> disk6
|
||||||
@@ -754,7 +754,7 @@ class wx_python_gui:
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
self.install_button.Centre(wx.HORIZONTAL)
|
self.install_button.Centre(wx.HORIZONTAL)
|
||||||
|
|
||||||
|
|
||||||
self.reload_button = wx.Button(self.frame, label="Search for Disks Again", size=(170,-1))
|
self.reload_button = wx.Button(self.frame, label="Search for Disks Again", size=(170,-1))
|
||||||
self.reload_button.SetPosition(
|
self.reload_button.SetPosition(
|
||||||
@@ -777,7 +777,7 @@ class wx_python_gui:
|
|||||||
self.return_to_main_menu.Centre(wx.HORIZONTAL)
|
self.return_to_main_menu.Centre(wx.HORIZONTAL)
|
||||||
|
|
||||||
self.frame.SetSize(self.WINDOW_WIDTH_BUILD, self.return_to_main_menu.GetPosition().y + self.return_to_main_menu.GetSize().height + 40)
|
self.frame.SetSize(self.WINDOW_WIDTH_BUILD, self.return_to_main_menu.GetPosition().y + self.return_to_main_menu.GetSize().height + 40)
|
||||||
|
|
||||||
def install_oc_disk_select(self, disk, disk_data):
|
def install_oc_disk_select(self, disk, disk_data):
|
||||||
self.reset_frame_modal()
|
self.reset_frame_modal()
|
||||||
self.frame_modal.SetSize(self.WINDOW_WIDTH_BUILD - 40, -1)
|
self.frame_modal.SetSize(self.WINDOW_WIDTH_BUILD - 40, -1)
|
||||||
@@ -817,7 +817,7 @@ class wx_python_gui:
|
|||||||
if self.constants.booted_oc_disk == list_partitions[partition]['partition']:
|
if self.constants.booted_oc_disk == list_partitions[partition]['partition']:
|
||||||
# Set label colour to red
|
# Set label colour to red
|
||||||
self.install_button.SetForegroundColour((25, 179, 231))
|
self.install_button.SetForegroundColour((25, 179, 231))
|
||||||
|
|
||||||
self.return_to_main_menu = wx.Button(self.frame_modal, label="Return")
|
self.return_to_main_menu = wx.Button(self.frame_modal, label="Return")
|
||||||
self.return_to_main_menu.SetPosition(
|
self.return_to_main_menu.SetPosition(
|
||||||
wx.Point(
|
wx.Point(
|
||||||
@@ -868,7 +868,7 @@ class wx_python_gui:
|
|||||||
self.stdout_text.GetPosition().x,
|
self.stdout_text.GetPosition().x,
|
||||||
self.stdout_text.GetPosition().y + self.stdout_text.GetSize().height + 10
|
self.stdout_text.GetPosition().y + self.stdout_text.GetSize().height + 10
|
||||||
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
self.return_to_main_menu.Bind(wx.EVT_BUTTON, self.main_menu)
|
self.return_to_main_menu.Bind(wx.EVT_BUTTON, self.main_menu)
|
||||||
self.return_to_main_menu.Centre(wx.HORIZONTAL)
|
self.return_to_main_menu.Centre(wx.HORIZONTAL)
|
||||||
@@ -990,7 +990,7 @@ class wx_python_gui:
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
self.patch_label.Centre(wx.HORIZONTAL)
|
self.patch_label.Centre(wx.HORIZONTAL)
|
||||||
|
|
||||||
# Start Root Patching
|
# Start Root Patching
|
||||||
self.start_root_patching = wx.Button(self.frame_modal, label="Start Root Patching", size=(170, -1))
|
self.start_root_patching = wx.Button(self.frame_modal, label="Start Root Patching", size=(170, -1))
|
||||||
self.start_root_patching.SetPosition(
|
self.start_root_patching.SetPosition(
|
||||||
@@ -1012,7 +1012,7 @@ class wx_python_gui:
|
|||||||
self.start_root_patching.GetPosition().y + self.start_root_patching.GetSize().height + 3
|
self.start_root_patching.GetPosition().y + self.start_root_patching.GetSize().height + 3
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.revert_root_patches.Centre(wx.HORIZONTAL)
|
self.revert_root_patches.Centre(wx.HORIZONTAL)
|
||||||
if self.constants.detected_os < os_data.os_data.big_sur:
|
if self.constants.detected_os < os_data.os_data.big_sur:
|
||||||
self.revert_root_patches.Disable()
|
self.revert_root_patches.Disable()
|
||||||
@@ -1098,9 +1098,9 @@ class wx_python_gui:
|
|||||||
if download_result is None:
|
if download_result is None:
|
||||||
# Create popup window to inform user of error
|
# Create popup window to inform user of error
|
||||||
self.popup = wx.MessageDialog(
|
self.popup = wx.MessageDialog(
|
||||||
self.frame_modal,
|
self.frame_modal,
|
||||||
"A problem occured trying to download PatcherSupportPkg binaries\n\nIf you continue to have this error, download an Offline build from Github\nThese builds don't require a network connection to root patch",
|
"A problem occured trying to download PatcherSupportPkg binaries\n\nIf you continue to have this error, download an Offline build from Github\nThese builds don't require a network connection to root patch",
|
||||||
"Network Error",
|
"Network Error",
|
||||||
wx.YES_NO | wx.ICON_ERROR
|
wx.YES_NO | wx.ICON_ERROR
|
||||||
)
|
)
|
||||||
self.popup.SetYesNoLabels("View on Github", "Ignore")
|
self.popup.SetYesNoLabels("View on Github", "Ignore")
|
||||||
@@ -1211,7 +1211,7 @@ class wx_python_gui:
|
|||||||
self.return_to_main_menu.Enable()
|
self.return_to_main_menu.Enable()
|
||||||
|
|
||||||
wx.GetApp().Yield()
|
wx.GetApp().Yield()
|
||||||
|
|
||||||
def root_patch_revert(self, event=None):
|
def root_patch_revert(self, event=None):
|
||||||
self.reset_frame_modal()
|
self.reset_frame_modal()
|
||||||
self.frame_modal.SetSize(self.WINDOW_WIDTH_BUILD, -1)
|
self.frame_modal.SetSize(self.WINDOW_WIDTH_BUILD, -1)
|
||||||
@@ -1395,11 +1395,11 @@ class wx_python_gui:
|
|||||||
if ias is None:
|
if ias is None:
|
||||||
def ia():
|
def ia():
|
||||||
self.available_installers = installer.list_downloadable_macOS_installers(self.constants.payload_path, "PublicSeed")
|
self.available_installers = installer.list_downloadable_macOS_installers(self.constants.payload_path, "PublicSeed")
|
||||||
|
|
||||||
print("- Downloading installer catalog...")
|
print("- Downloading installer catalog...")
|
||||||
thread_ia = threading.Thread(target=ia)
|
thread_ia = threading.Thread(target=ia)
|
||||||
thread_ia.start()
|
thread_ia.start()
|
||||||
|
|
||||||
while thread_ia.is_alive() or self.is_unpack_finished() is False:
|
while thread_ia.is_alive() or self.is_unpack_finished() is False:
|
||||||
self.pulse_alternative(self.progress_bar)
|
self.pulse_alternative(self.progress_bar)
|
||||||
wx.GetApp().Yield()
|
wx.GetApp().Yield()
|
||||||
@@ -1460,7 +1460,7 @@ class wx_python_gui:
|
|||||||
)
|
)
|
||||||
self.install_selection.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD))
|
self.install_selection.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD))
|
||||||
self.install_selection.Centre(wx.HORIZONTAL)
|
self.install_selection.Centre(wx.HORIZONTAL)
|
||||||
|
|
||||||
self.load_all_installers = wx.Button(self.frame_modal, label="Reload with all installers")
|
self.load_all_installers = wx.Button(self.frame_modal, label="Reload with all installers")
|
||||||
self.load_all_installers.SetPosition(
|
self.load_all_installers.SetPosition(
|
||||||
wx.Point(
|
wx.Point(
|
||||||
@@ -1498,7 +1498,7 @@ class wx_python_gui:
|
|||||||
self.frame.SetSize(self.header.GetSize().width + 200, -1)
|
self.frame.SetSize(self.header.GetSize().width + 200, -1)
|
||||||
self.header.SetFont(wx.Font(18, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD))
|
self.header.SetFont(wx.Font(18, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD))
|
||||||
self.header.Centre(wx.HORIZONTAL)
|
self.header.Centre(wx.HORIZONTAL)
|
||||||
|
|
||||||
# Label: Download...
|
# Label: Download...
|
||||||
self.download_label = wx.StaticText(self.frame, label="Starting download shortly...")
|
self.download_label = wx.StaticText(self.frame, label="Starting download shortly...")
|
||||||
self.download_label.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.BOLD))
|
self.download_label.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.BOLD))
|
||||||
@@ -1556,7 +1556,7 @@ class wx_python_gui:
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
self.verifying_chunk_label.Centre(wx.HORIZONTAL)
|
self.verifying_chunk_label.Centre(wx.HORIZONTAL)
|
||||||
|
|
||||||
|
|
||||||
# Progress Bar
|
# Progress Bar
|
||||||
self.progress_bar = wx.Gauge(self.frame, range=1200, size=(300, 25))
|
self.progress_bar = wx.Gauge(self.frame, range=1200, size=(300, 25))
|
||||||
@@ -1567,7 +1567,7 @@ class wx_python_gui:
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
self.progress_bar.Centre(wx.HORIZONTAL)
|
self.progress_bar.Centre(wx.HORIZONTAL)
|
||||||
|
|
||||||
|
|
||||||
# Button: Return to Main Menu
|
# Button: Return to Main Menu
|
||||||
self.return_to_main_menu = wx.Button(self.frame, label="Return to Main Menu")
|
self.return_to_main_menu = wx.Button(self.frame, label="Return to Main Menu")
|
||||||
@@ -1620,7 +1620,7 @@ class wx_python_gui:
|
|||||||
print("Invalid integrity file provided")
|
print("Invalid integrity file provided")
|
||||||
else:
|
else:
|
||||||
print("Failed to download integrity file, skipping integrity check.")
|
print("Failed to download integrity file, skipping integrity check.")
|
||||||
|
|
||||||
wx.App.Get().Yield()
|
wx.App.Get().Yield()
|
||||||
self.header.SetLabel("Installing InstallAssistant.pkg")
|
self.header.SetLabel("Installing InstallAssistant.pkg")
|
||||||
self.header.Centre(wx.HORIZONTAL)
|
self.header.Centre(wx.HORIZONTAL)
|
||||||
@@ -1631,7 +1631,7 @@ class wx_python_gui:
|
|||||||
self.progress_bar.Pulse()
|
self.progress_bar.Pulse()
|
||||||
while thread_install.is_alive():
|
while thread_install.is_alive():
|
||||||
wx.App.Get().Yield()
|
wx.App.Get().Yield()
|
||||||
|
|
||||||
self.progress_bar.SetValue(self.progress_bar.GetRange())
|
self.progress_bar.SetValue(self.progress_bar.GetRange())
|
||||||
self.return_to_main_menu.SetLabel("Flash Installer")
|
self.return_to_main_menu.SetLabel("Flash Installer")
|
||||||
self.verifying_chunk_label.SetLabel("Finished extracting to Applications folder!")
|
self.verifying_chunk_label.SetLabel("Finished extracting to Applications folder!")
|
||||||
@@ -1700,7 +1700,7 @@ class wx_python_gui:
|
|||||||
self.return_to_main_menu.Centre(wx.HORIZONTAL)
|
self.return_to_main_menu.Centre(wx.HORIZONTAL)
|
||||||
|
|
||||||
self.frame.SetSize(-1, self.return_to_main_menu.GetPosition().y + self.return_to_main_menu.GetSize().height + 40)
|
self.frame.SetSize(-1, self.return_to_main_menu.GetPosition().y + self.return_to_main_menu.GetSize().height + 40)
|
||||||
|
|
||||||
def format_usb_menu(self, installer_name, installer_path):
|
def format_usb_menu(self, installer_name, installer_path):
|
||||||
self.frame.DestroyChildren()
|
self.frame.DestroyChildren()
|
||||||
print(installer_path)
|
print(installer_path)
|
||||||
@@ -1886,7 +1886,7 @@ class wx_python_gui:
|
|||||||
self.progress_label.Centre(wx.HORIZONTAL)
|
self.progress_label.Centre(wx.HORIZONTAL)
|
||||||
if self.finished_cim_process is True:
|
if self.finished_cim_process is True:
|
||||||
self.finished_cim_process = False
|
self.finished_cim_process = False
|
||||||
# Only prompt user with option to install OC to disk if
|
# Only prompt user with option to install OC to disk if
|
||||||
# the model is supported.
|
# the model is supported.
|
||||||
if (
|
if (
|
||||||
(
|
(
|
||||||
@@ -1902,9 +1902,9 @@ class wx_python_gui:
|
|||||||
popup_message.ShowModal()
|
popup_message.ShowModal()
|
||||||
else:
|
else:
|
||||||
self.dialog = wx.MessageDialog(
|
self.dialog = wx.MessageDialog(
|
||||||
parent=self.frame,
|
parent=self.frame,
|
||||||
message="Would you like to continue and Install OpenCore to this disk?",
|
message="Would you like to continue and Install OpenCore to this disk?",
|
||||||
caption="Sucessfully created the macOS installer!",
|
caption="Sucessfully created the macOS installer!",
|
||||||
style=wx.YES_NO | wx.ICON_QUESTION
|
style=wx.YES_NO | wx.ICON_QUESTION
|
||||||
)
|
)
|
||||||
self.dialog.SetYesNoLabels("Install OpenCore to disk", "Skip")
|
self.dialog.SetYesNoLabels("Install OpenCore to disk", "Skip")
|
||||||
@@ -2105,7 +2105,7 @@ class wx_python_gui:
|
|||||||
self.bootpicker_checkbox.ToolTip = wx.ToolTip("""Shows OpenCore's Boot Picker on machine start\nToggling this off will hide the picker, and only load when holding either Option or Escape""")
|
self.bootpicker_checkbox.ToolTip = wx.ToolTip("""Shows OpenCore's Boot Picker on machine start\nToggling this off will hide the picker, and only load when holding either Option or Escape""")
|
||||||
|
|
||||||
# Buttons
|
# Buttons
|
||||||
|
|
||||||
# Button: SIP Settings
|
# Button: SIP Settings
|
||||||
if self.constants.custom_sip_value:
|
if self.constants.custom_sip_value:
|
||||||
sip_string = "Custom"
|
sip_string = "Custom"
|
||||||
@@ -2178,7 +2178,7 @@ class wx_python_gui:
|
|||||||
print("Disallow Native Models")
|
print("Disallow Native Models")
|
||||||
self.constants.allow_oc_everywhere = False
|
self.constants.allow_oc_everywhere = False
|
||||||
self.constants.serial_settings = "Minimal"
|
self.constants.serial_settings = "Minimal"
|
||||||
|
|
||||||
def verbose_checkbox_click(self, event=None):
|
def verbose_checkbox_click(self, event=None):
|
||||||
if self.verbose_checkbox.GetValue():
|
if self.verbose_checkbox.GetValue():
|
||||||
print("Verbose mode enabled")
|
print("Verbose mode enabled")
|
||||||
@@ -2186,7 +2186,7 @@ class wx_python_gui:
|
|||||||
else:
|
else:
|
||||||
print("Verbose mode disabled")
|
print("Verbose mode disabled")
|
||||||
self.constants.verbose_debug = False
|
self.constants.verbose_debug = False
|
||||||
|
|
||||||
def kext_checkbox_click(self, event=None):
|
def kext_checkbox_click(self, event=None):
|
||||||
if self.kext_checkbox.GetValue():
|
if self.kext_checkbox.GetValue():
|
||||||
print("Kext mode enabled")
|
print("Kext mode enabled")
|
||||||
@@ -2196,7 +2196,7 @@ class wx_python_gui:
|
|||||||
print("Kext mode disabled")
|
print("Kext mode disabled")
|
||||||
self.constants.kext_debug = False
|
self.constants.kext_debug = False
|
||||||
self.constants.kext_variant = "RELEASE"
|
self.constants.kext_variant = "RELEASE"
|
||||||
|
|
||||||
def oc_checkbox_click(self, event=None):
|
def oc_checkbox_click(self, event=None):
|
||||||
if self.opencore_checkbox.GetValue():
|
if self.opencore_checkbox.GetValue():
|
||||||
print("OC mode enabled")
|
print("OC mode enabled")
|
||||||
@@ -2206,7 +2206,7 @@ class wx_python_gui:
|
|||||||
print("OC mode disabled")
|
print("OC mode disabled")
|
||||||
self.constants.opencore_debug = False
|
self.constants.opencore_debug = False
|
||||||
self.constants.opencore_build = "RELEASE"
|
self.constants.opencore_build = "RELEASE"
|
||||||
|
|
||||||
def sip_checkbox_click(self, event=None):
|
def sip_checkbox_click(self, event=None):
|
||||||
if self.sip_checkbox.GetValue():
|
if self.sip_checkbox.GetValue():
|
||||||
print("SIP mode enabled")
|
print("SIP mode enabled")
|
||||||
@@ -2214,7 +2214,7 @@ class wx_python_gui:
|
|||||||
else:
|
else:
|
||||||
print("SIP mode disabled")
|
print("SIP mode disabled")
|
||||||
self.constants.sip_status = False
|
self.constants.sip_status = False
|
||||||
|
|
||||||
def secureboot_checkbox_click(self, event=None):
|
def secureboot_checkbox_click(self, event=None):
|
||||||
if self.secureboot_checkbox.GetValue():
|
if self.secureboot_checkbox.GetValue():
|
||||||
print("SecureBoot mode enabled")
|
print("SecureBoot mode enabled")
|
||||||
@@ -2222,7 +2222,7 @@ class wx_python_gui:
|
|||||||
else:
|
else:
|
||||||
print("SecureBoot mode disabled")
|
print("SecureBoot mode disabled")
|
||||||
self.constants.secure_status = False
|
self.constants.secure_status = False
|
||||||
|
|
||||||
def show_picker_checkbox_click(self, event=None):
|
def show_picker_checkbox_click(self, event=None):
|
||||||
if self.bootpicker_checkbox.GetValue():
|
if self.bootpicker_checkbox.GetValue():
|
||||||
print("Show Picker mode enabled")
|
print("Show Picker mode enabled")
|
||||||
@@ -2230,7 +2230,7 @@ class wx_python_gui:
|
|||||||
else:
|
else:
|
||||||
print("Show Picker mode disabled")
|
print("Show Picker mode disabled")
|
||||||
self.constants.showpicker = False
|
self.constants.showpicker = False
|
||||||
|
|
||||||
def dev_settings_menu(self, event=None):
|
def dev_settings_menu(self, event=None):
|
||||||
self.reset_frame_modal()
|
self.reset_frame_modal()
|
||||||
|
|
||||||
@@ -2261,14 +2261,14 @@ class wx_python_gui:
|
|||||||
self.gpu_dropdown.Append(gpu)
|
self.gpu_dropdown.Append(gpu)
|
||||||
self.gpu_dropdown.SetSelection(0)
|
self.gpu_dropdown.SetSelection(0)
|
||||||
self.gpu_dropdown.SetPosition(wx.Point(
|
self.gpu_dropdown.SetPosition(wx.Point(
|
||||||
self.label_model.GetPosition().x,
|
self.label_model.GetPosition().x,
|
||||||
self.label_model.GetPosition().y + self.label_model.GetSize().height / 1.5))
|
self.label_model.GetPosition().y + self.label_model.GetSize().height / 1.5))
|
||||||
self.gpu_dropdown.Bind(wx.EVT_CHOICE, self.gpu_selection_click)
|
self.gpu_dropdown.Bind(wx.EVT_CHOICE, self.gpu_selection_click)
|
||||||
self.gpu_dropdown.Centre(wx.HORIZONTAL)
|
self.gpu_dropdown.Centre(wx.HORIZONTAL)
|
||||||
self.gpu_dropdown.SetToolTip(wx.ToolTip("Configures MXM GPU Vendor logic on pre-built models\nIf you are not using MXM iMacs, please leave this setting as is."))
|
self.gpu_dropdown.SetToolTip(wx.ToolTip("Configures MXM GPU Vendor logic on pre-built models\nIf you are not using MXM iMacs, please leave this setting as is."))
|
||||||
if self.computer.real_model not in ["iMac10,1", "iMac11,1", "iMac11,2", "iMac11,3", "iMac12,1", "iMac12,2"]:
|
if self.computer.real_model not in ["iMac10,1", "iMac11,1", "iMac11,2", "iMac11,3", "iMac12,1", "iMac12,2"]:
|
||||||
self.gpu_dropdown.Disable()
|
self.gpu_dropdown.Disable()
|
||||||
|
|
||||||
# Disable Thunderbolt
|
# Disable Thunderbolt
|
||||||
self.disable_thunderbolt_checkbox = wx.CheckBox(self.frame_modal, label="Disable Thunderbolt")
|
self.disable_thunderbolt_checkbox = wx.CheckBox(self.frame_modal, label="Disable Thunderbolt")
|
||||||
self.disable_thunderbolt_checkbox.SetValue(self.constants.disable_tb)
|
self.disable_thunderbolt_checkbox.SetValue(self.constants.disable_tb)
|
||||||
@@ -2298,7 +2298,7 @@ class wx_python_gui:
|
|||||||
self.disable_thunderbolt_checkbox.GetPosition().x,
|
self.disable_thunderbolt_checkbox.GetPosition().x,
|
||||||
self.set_terascale_accel_checkbox.GetPosition().y + self.set_terascale_accel_checkbox.GetSize().height))
|
self.set_terascale_accel_checkbox.GetPosition().y + self.set_terascale_accel_checkbox.GetSize().height))
|
||||||
self.force_web_drivers_checkbox.SetToolTip(wx.ToolTip("This option will force Nvidia Web Driver support onto Nvidia Tesla and Kepler GPUs. This should only be used for development purposes."))
|
self.force_web_drivers_checkbox.SetToolTip(wx.ToolTip("This option will force Nvidia Web Driver support onto Nvidia Tesla and Kepler GPUs. This should only be used for development purposes."))
|
||||||
|
|
||||||
|
|
||||||
# Windows GMUX
|
# Windows GMUX
|
||||||
self.windows_gmux_checkbox = wx.CheckBox(self.frame_modal, label="Windows GMUX")
|
self.windows_gmux_checkbox = wx.CheckBox(self.frame_modal, label="Windows GMUX")
|
||||||
@@ -2314,7 +2314,7 @@ class wx_python_gui:
|
|||||||
self.hibernation_checkbox.SetValue(self.constants.disable_connectdrivers)
|
self.hibernation_checkbox.SetValue(self.constants.disable_connectdrivers)
|
||||||
self.hibernation_checkbox.Bind(wx.EVT_CHECKBOX, self.hibernation_click)
|
self.hibernation_checkbox.Bind(wx.EVT_CHECKBOX, self.hibernation_click)
|
||||||
self.hibernation_checkbox.SetPosition(wx.Point(
|
self.hibernation_checkbox.SetPosition(wx.Point(
|
||||||
self.windows_gmux_checkbox.GetPosition().x,
|
self.windows_gmux_checkbox.GetPosition().x,
|
||||||
self.windows_gmux_checkbox.GetPosition().y + self.windows_gmux_checkbox.GetSize().height))
|
self.windows_gmux_checkbox.GetPosition().y + self.windows_gmux_checkbox.GetSize().height))
|
||||||
self.hibernation_checkbox.SetToolTip(wx.ToolTip("This will disable the ConnectDrivers in OpenCore\nRecommended to toggle if your machine is having issues with hibernation.\nMainly applicable for MacBookPro9,1 and MacBookPro10,1"))
|
self.hibernation_checkbox.SetToolTip(wx.ToolTip("This will disable the ConnectDrivers in OpenCore\nRecommended to toggle if your machine is having issues with hibernation.\nMainly applicable for MacBookPro9,1 and MacBookPro10,1"))
|
||||||
|
|
||||||
@@ -2323,7 +2323,7 @@ class wx_python_gui:
|
|||||||
self.disable_battery_throttling_checkbox.SetValue(self.constants.disable_msr_power_ctl)
|
self.disable_battery_throttling_checkbox.SetValue(self.constants.disable_msr_power_ctl)
|
||||||
self.disable_battery_throttling_checkbox.Bind(wx.EVT_CHECKBOX, self.disable_battery_throttling_click)
|
self.disable_battery_throttling_checkbox.Bind(wx.EVT_CHECKBOX, self.disable_battery_throttling_click)
|
||||||
self.disable_battery_throttling_checkbox.SetPosition(wx.Point(
|
self.disable_battery_throttling_checkbox.SetPosition(wx.Point(
|
||||||
self.hibernation_checkbox.GetPosition().x,
|
self.hibernation_checkbox.GetPosition().x,
|
||||||
self.hibernation_checkbox.GetPosition().y + self.hibernation_checkbox.GetSize().height))
|
self.hibernation_checkbox.GetPosition().y + self.hibernation_checkbox.GetSize().height))
|
||||||
self.disable_battery_throttling_checkbox.SetToolTip(wx.ToolTip("This will forcefully disable MSR Power Control on Arrendale and newer Macs\nMainly applicable for systems with severe throttling due to missing battery or display"))
|
self.disable_battery_throttling_checkbox.SetToolTip(wx.ToolTip("This will forcefully disable MSR Power Control on Arrendale and newer Macs\nMainly applicable for systems with severe throttling due to missing battery or display"))
|
||||||
|
|
||||||
@@ -2332,7 +2332,7 @@ class wx_python_gui:
|
|||||||
self.disable_xcpm_checkbox.SetValue(self.constants.disable_xcpm)
|
self.disable_xcpm_checkbox.SetValue(self.constants.disable_xcpm)
|
||||||
self.disable_xcpm_checkbox.Bind(wx.EVT_CHECKBOX, self.disable_xcpm_click)
|
self.disable_xcpm_checkbox.Bind(wx.EVT_CHECKBOX, self.disable_xcpm_click)
|
||||||
self.disable_xcpm_checkbox.SetPosition(wx.Point(
|
self.disable_xcpm_checkbox.SetPosition(wx.Point(
|
||||||
self.disable_battery_throttling_checkbox.GetPosition().x,
|
self.disable_battery_throttling_checkbox.GetPosition().x,
|
||||||
self.disable_battery_throttling_checkbox.GetPosition().y + self.disable_battery_throttling_checkbox.GetSize().height))
|
self.disable_battery_throttling_checkbox.GetPosition().y + self.disable_battery_throttling_checkbox.GetSize().height))
|
||||||
self.disable_xcpm_checkbox.SetToolTip(wx.ToolTip("This will forcefully disable XCPM on Ivy Bridge EP and newer Macs\nMainly applicable for systems with severe throttling due to missing battery or display"))
|
self.disable_xcpm_checkbox.SetToolTip(wx.ToolTip("This will forcefully disable XCPM on Ivy Bridge EP and newer Macs\nMainly applicable for systems with severe throttling due to missing battery or display"))
|
||||||
|
|
||||||
@@ -2363,7 +2363,7 @@ class wx_python_gui:
|
|||||||
self.apple_alc_checkbox.SetValue(self.constants.set_alc_usage)
|
self.apple_alc_checkbox.SetValue(self.constants.set_alc_usage)
|
||||||
self.apple_alc_checkbox.Bind(wx.EVT_CHECKBOX, self.apple_alc_click)
|
self.apple_alc_checkbox.Bind(wx.EVT_CHECKBOX, self.apple_alc_click)
|
||||||
self.apple_alc_checkbox.SetPosition(wx.Point(
|
self.apple_alc_checkbox.SetPosition(wx.Point(
|
||||||
self.disable_cpu_friend_checkbox.GetPosition().x,
|
self.disable_cpu_friend_checkbox.GetPosition().x,
|
||||||
self.disable_cpu_friend_checkbox.GetPosition().y + self.disable_cpu_friend_checkbox.GetSize().height))
|
self.disable_cpu_friend_checkbox.GetPosition().y + self.disable_cpu_friend_checkbox.GetSize().height))
|
||||||
self.apple_alc_checkbox.SetToolTip(wx.ToolTip("This will set whether AppleALC is allowed to be used during config building.\nMainly applicable for MacPro3,1s that do not have boot screen support, thus preventing AppleALC from working."))
|
self.apple_alc_checkbox.SetToolTip(wx.ToolTip("This will set whether AppleALC is allowed to be used during config building.\nMainly applicable for MacPro3,1s that do not have boot screen support, thus preventing AppleALC from working."))
|
||||||
|
|
||||||
@@ -2385,7 +2385,7 @@ class wx_python_gui:
|
|||||||
self.set_enhanced_3rd_party_ssd_checkbox.SetToolTip(wx.ToolTip("This will set whether OpenCore is allowed to force Apple Vendor on 3rd Party SATA SSDs\nSome benefits from this patch include better SSD performance, TRIM support and hibernation support.\nDisable this option if your SSD does not support TRIM correctly"))
|
self.set_enhanced_3rd_party_ssd_checkbox.SetToolTip(wx.ToolTip("This will set whether OpenCore is allowed to force Apple Vendor on 3rd Party SATA SSDs\nSome benefits from this patch include better SSD performance, TRIM support and hibernation support.\nDisable this option if your SSD does not support TRIM correctly"))
|
||||||
if self.computer.third_party_sata_ssd is False and not self.constants.custom_model:
|
if self.computer.third_party_sata_ssd is False and not self.constants.custom_model:
|
||||||
self.set_enhanced_3rd_party_ssd_checkbox.Disable()
|
self.set_enhanced_3rd_party_ssd_checkbox.Disable()
|
||||||
|
|
||||||
# Set Ignore App Updates
|
# Set Ignore App Updates
|
||||||
self.set_ignore_app_updates_checkbox = wx.CheckBox(self.frame_modal, label="Ignore App Updates")
|
self.set_ignore_app_updates_checkbox = wx.CheckBox(self.frame_modal, label="Ignore App Updates")
|
||||||
self.set_ignore_app_updates_checkbox.SetValue(self.constants.ignore_updates)
|
self.set_ignore_app_updates_checkbox.SetValue(self.constants.ignore_updates)
|
||||||
@@ -2395,7 +2395,7 @@ class wx_python_gui:
|
|||||||
self.set_enhanced_3rd_party_ssd_checkbox.GetPosition().y + self.set_enhanced_3rd_party_ssd_checkbox.GetSize().height))
|
self.set_enhanced_3rd_party_ssd_checkbox.GetPosition().y + self.set_enhanced_3rd_party_ssd_checkbox.GetSize().height))
|
||||||
self.set_ignore_app_updates_checkbox.SetToolTip(wx.ToolTip("This will set whether OpenCore will ignore App Updates on launch.\nEnable this option if you do not want to be prompted for App Updates"))
|
self.set_ignore_app_updates_checkbox.SetToolTip(wx.ToolTip("This will set whether OpenCore will ignore App Updates on launch.\nEnable this option if you do not want to be prompted for App Updates"))
|
||||||
|
|
||||||
|
|
||||||
# Button: Developer Debug Info
|
# Button: Developer Debug Info
|
||||||
self.debug_button = wx.Button(self.frame_modal, label="Developer Debug Info")
|
self.debug_button = wx.Button(self.frame_modal, label="Developer Debug Info")
|
||||||
self.debug_button.Bind(wx.EVT_BUTTON, self.additional_info_menu)
|
self.debug_button.Bind(wx.EVT_BUTTON, self.additional_info_menu)
|
||||||
@@ -2403,7 +2403,7 @@ class wx_python_gui:
|
|||||||
self.set_ignore_app_updates_checkbox.GetPosition().x,
|
self.set_ignore_app_updates_checkbox.GetPosition().x,
|
||||||
self.set_ignore_app_updates_checkbox.GetPosition().y + self.set_ignore_app_updates_checkbox.GetSize().height + 5))
|
self.set_ignore_app_updates_checkbox.GetPosition().y + self.set_ignore_app_updates_checkbox.GetSize().height + 5))
|
||||||
self.debug_button.Center(wx.HORIZONTAL)
|
self.debug_button.Center(wx.HORIZONTAL)
|
||||||
|
|
||||||
# Button: return to main menu
|
# Button: return to main menu
|
||||||
self.return_to_main_menu_button = wx.Button(self.frame_modal, label="Return to Settings")
|
self.return_to_main_menu_button = wx.Button(self.frame_modal, label="Return to Settings")
|
||||||
self.return_to_main_menu_button.Bind(wx.EVT_BUTTON, self.settings_menu)
|
self.return_to_main_menu_button.Bind(wx.EVT_BUTTON, self.settings_menu)
|
||||||
@@ -2413,7 +2413,7 @@ class wx_python_gui:
|
|||||||
self.return_to_main_menu_button.Center(wx.HORIZONTAL)
|
self.return_to_main_menu_button.Center(wx.HORIZONTAL)
|
||||||
|
|
||||||
# set frame_modal size below return to main menu button
|
# set frame_modal size below return to main menu button
|
||||||
|
|
||||||
self.frame_modal.SetSize(wx.Size(-1, self.return_to_main_menu_button.GetPosition().y + self.return_to_main_menu_button.GetSize().height + 40))
|
self.frame_modal.SetSize(wx.Size(-1, self.return_to_main_menu_button.GetPosition().y + self.return_to_main_menu_button.GetSize().height + 40))
|
||||||
self.frame_modal.ShowWindowModal()
|
self.frame_modal.ShowWindowModal()
|
||||||
|
|
||||||
@@ -2431,7 +2431,7 @@ class wx_python_gui:
|
|||||||
else:
|
else:
|
||||||
print("Firewire Disabled")
|
print("Firewire Disabled")
|
||||||
self.constants.firewire_boot = False
|
self.constants.firewire_boot = False
|
||||||
|
|
||||||
def nvme_click(self, event=None):
|
def nvme_click(self, event=None):
|
||||||
if self.nvme_boot_checkbox.GetValue():
|
if self.nvme_boot_checkbox.GetValue():
|
||||||
print("NVMe Enabled")
|
print("NVMe Enabled")
|
||||||
@@ -2439,7 +2439,7 @@ class wx_python_gui:
|
|||||||
else:
|
else:
|
||||||
print("NVMe Disabled")
|
print("NVMe Disabled")
|
||||||
self.constants.nvme_boot = False
|
self.constants.nvme_boot = False
|
||||||
|
|
||||||
def nvme_power_management_click(self, event=None):
|
def nvme_power_management_click(self, event=None):
|
||||||
if self.nvme_power_management_checkbox.GetValue():
|
if self.nvme_power_management_checkbox.GetValue():
|
||||||
print("NVMe Power Management Enabled")
|
print("NVMe Power Management Enabled")
|
||||||
@@ -2447,7 +2447,7 @@ class wx_python_gui:
|
|||||||
else:
|
else:
|
||||||
print("NVMe Power Management Disabled")
|
print("NVMe Power Management Disabled")
|
||||||
self.constants.allow_nvme_fixing = False
|
self.constants.allow_nvme_fixing = False
|
||||||
|
|
||||||
def xhci_click(self, event=None):
|
def xhci_click(self, event=None):
|
||||||
if self.xhci_boot_checkbox.GetValue():
|
if self.xhci_boot_checkbox.GetValue():
|
||||||
print("XHCI Enabled")
|
print("XHCI Enabled")
|
||||||
@@ -2455,7 +2455,7 @@ class wx_python_gui:
|
|||||||
else:
|
else:
|
||||||
print("XHCI Disabled")
|
print("XHCI Disabled")
|
||||||
self.constants.xhci_boot = False
|
self.constants.xhci_boot = False
|
||||||
|
|
||||||
def wake_on_wlan_click(self, event=None):
|
def wake_on_wlan_click(self, event=None):
|
||||||
if self.wake_on_wlan_checkbox.GetValue():
|
if self.wake_on_wlan_checkbox.GetValue():
|
||||||
print("Wake on WLAN Enabled")
|
print("Wake on WLAN Enabled")
|
||||||
@@ -2463,7 +2463,7 @@ class wx_python_gui:
|
|||||||
else:
|
else:
|
||||||
print("Wake on WLAN Disabled")
|
print("Wake on WLAN Disabled")
|
||||||
self.constants.enable_wake_on_wlan = False
|
self.constants.enable_wake_on_wlan = False
|
||||||
|
|
||||||
def content_caching_click(self, event=None):
|
def content_caching_click(self, event=None):
|
||||||
if self.content_caching_checkbox.GetValue():
|
if self.content_caching_checkbox.GetValue():
|
||||||
print("Content Caching Enabled")
|
print("Content Caching Enabled")
|
||||||
@@ -2471,7 +2471,7 @@ class wx_python_gui:
|
|||||||
else:
|
else:
|
||||||
print("Content Caching Disabled")
|
print("Content Caching Disabled")
|
||||||
self.constants.set_content_caching = False
|
self.constants.set_content_caching = False
|
||||||
|
|
||||||
def disable_tb_click(self, event=None):
|
def disable_tb_click(self, event=None):
|
||||||
if self.disable_thunderbolt_checkbox.GetValue():
|
if self.disable_thunderbolt_checkbox.GetValue():
|
||||||
print("Disable Thunderbolt Enabled")
|
print("Disable Thunderbolt Enabled")
|
||||||
@@ -2479,7 +2479,7 @@ class wx_python_gui:
|
|||||||
else:
|
else:
|
||||||
print("Disable Thunderbolt Disabled")
|
print("Disable Thunderbolt Disabled")
|
||||||
self.constants.disable_tb = False
|
self.constants.disable_tb = False
|
||||||
|
|
||||||
def ts2_accel_click(self, event=None):
|
def ts2_accel_click(self, event=None):
|
||||||
if self.set_terascale_accel_checkbox.GetValue():
|
if self.set_terascale_accel_checkbox.GetValue():
|
||||||
print("TS2 Acceleration Enabled")
|
print("TS2 Acceleration Enabled")
|
||||||
@@ -2489,7 +2489,7 @@ class wx_python_gui:
|
|||||||
print("TS2 Acceleration Disabled")
|
print("TS2 Acceleration Disabled")
|
||||||
global_settings.global_settings().write_property("MacBookPro_TeraScale_2_Accel", False)
|
global_settings.global_settings().write_property("MacBookPro_TeraScale_2_Accel", False)
|
||||||
self.constants.allow_ts2_accel = False
|
self.constants.allow_ts2_accel = False
|
||||||
|
|
||||||
def force_web_drivers_click(self, event=None):
|
def force_web_drivers_click(self, event=None):
|
||||||
if self.force_web_drivers_checkbox.GetValue():
|
if self.force_web_drivers_checkbox.GetValue():
|
||||||
print("Force Web Drivers Enabled")
|
print("Force Web Drivers Enabled")
|
||||||
@@ -2500,22 +2500,22 @@ class wx_python_gui:
|
|||||||
global_settings.global_settings().write_property("Force_Web_Drivers", False)
|
global_settings.global_settings().write_property("Force_Web_Drivers", False)
|
||||||
self.constants.force_nv_web = False
|
self.constants.force_nv_web = False
|
||||||
|
|
||||||
def windows_gmux_click(self, event=None):
|
def windows_gmux_click(self, event=None):
|
||||||
if self.windows_gmux_checkbox.GetValue():
|
if self.windows_gmux_checkbox.GetValue():
|
||||||
print("Windows GMUX Enabled")
|
print("Windows GMUX Enabled")
|
||||||
self.constants.dGPU_switch = True
|
self.constants.dGPU_switch = True
|
||||||
else:
|
else:
|
||||||
print("Windows GMUX Disabled")
|
print("Windows GMUX Disabled")
|
||||||
self.constants.dGPU_switch = False
|
self.constants.dGPU_switch = False
|
||||||
|
|
||||||
def hibernation_click(self, event=None):
|
def hibernation_click(self, event=None):
|
||||||
if self.hibernation_checkbox.GetValue():
|
if self.hibernation_checkbox.GetValue():
|
||||||
print("Hibernation Enabled")
|
print("Hibernation Enabled")
|
||||||
self.constants.disable_connectdrivers = True
|
self.constants.disable_connectdrivers = True
|
||||||
else:
|
else:
|
||||||
print("Hibernation Disabled")
|
print("Hibernation Disabled")
|
||||||
self.constants.disable_connectdrivers = False
|
self.constants.disable_connectdrivers = False
|
||||||
|
|
||||||
def disable_battery_throttling_click(self, event=None):
|
def disable_battery_throttling_click(self, event=None):
|
||||||
if self.disable_battery_throttling_checkbox.GetValue():
|
if self.disable_battery_throttling_checkbox.GetValue():
|
||||||
print("Disable Battery Throttling Enabled")
|
print("Disable Battery Throttling Enabled")
|
||||||
@@ -2523,7 +2523,7 @@ class wx_python_gui:
|
|||||||
else:
|
else:
|
||||||
print("Disable Battery Throttling Disabled")
|
print("Disable Battery Throttling Disabled")
|
||||||
self.constants.disable_msr_power_ctl = False
|
self.constants.disable_msr_power_ctl = False
|
||||||
|
|
||||||
def disable_xcpm_click(self, event=None):
|
def disable_xcpm_click(self, event=None):
|
||||||
if self.disable_xcpm_checkbox.GetValue():
|
if self.disable_xcpm_checkbox.GetValue():
|
||||||
print("Disable XCPM Enabled")
|
print("Disable XCPM Enabled")
|
||||||
@@ -2547,7 +2547,7 @@ class wx_python_gui:
|
|||||||
else:
|
else:
|
||||||
print("Disable CPUFriend Disabled")
|
print("Disable CPUFriend Disabled")
|
||||||
self.constants.disallow_cpufriend = False
|
self.constants.disallow_cpufriend = False
|
||||||
|
|
||||||
def apple_alc_click(self, event=None):
|
def apple_alc_click(self, event=None):
|
||||||
if self.apple_alc_checkbox.GetValue():
|
if self.apple_alc_checkbox.GetValue():
|
||||||
print("AppleALC Usage Enabled")
|
print("AppleALC Usage Enabled")
|
||||||
@@ -2555,7 +2555,7 @@ class wx_python_gui:
|
|||||||
else:
|
else:
|
||||||
print("AppleALC Usage Disabled")
|
print("AppleALC Usage Disabled")
|
||||||
self.constants.set_alc_usage = False
|
self.constants.set_alc_usage = False
|
||||||
|
|
||||||
def set_enhanced_3rd_party_ssd_click(self, event=None):
|
def set_enhanced_3rd_party_ssd_click(self, event=None):
|
||||||
if self.set_enhanced_3rd_party_ssd_checkbox.GetValue():
|
if self.set_enhanced_3rd_party_ssd_checkbox.GetValue():
|
||||||
print("Enhanced 3rd Party SSDs Enabled")
|
print("Enhanced 3rd Party SSDs Enabled")
|
||||||
@@ -2588,10 +2588,10 @@ class wx_python_gui:
|
|||||||
else:
|
else:
|
||||||
self.constants.imac_vendor = "None"
|
self.constants.imac_vendor = "None"
|
||||||
self.constants.metal_build = False
|
self.constants.metal_build = False
|
||||||
|
|
||||||
print(f"GPU Vendor: {self.constants.imac_vendor}")
|
print(f"GPU Vendor: {self.constants.imac_vendor}")
|
||||||
print(f"GPU Model: {self.constants.imac_model}")
|
print(f"GPU Model: {self.constants.imac_model}")
|
||||||
|
|
||||||
def fu_selection_click(self, event=None):
|
def fu_selection_click(self, event=None):
|
||||||
fu_choice = self.feature_unlock_dropdown.GetStringSelection()
|
fu_choice = self.feature_unlock_dropdown.GetStringSelection()
|
||||||
if fu_choice == "Enabled":
|
if fu_choice == "Enabled":
|
||||||
@@ -2603,7 +2603,7 @@ class wx_python_gui:
|
|||||||
else:
|
else:
|
||||||
self.constants.fu_status = False
|
self.constants.fu_status = False
|
||||||
self.constants.fu_arguments = None
|
self.constants.fu_arguments = None
|
||||||
|
|
||||||
def set_writeflash_click(self, event=None):
|
def set_writeflash_click(self, event=None):
|
||||||
if self.set_writeflash_checkbox.GetValue():
|
if self.set_writeflash_checkbox.GetValue():
|
||||||
print("Write Flash Enabled")
|
print("Write Flash Enabled")
|
||||||
@@ -2736,10 +2736,10 @@ class wx_python_gui:
|
|||||||
|
|
||||||
def smbios_serial_click(self, event):
|
def smbios_serial_click(self, event):
|
||||||
self.constants.custom_serial_number = self.smbios_serial_textbox.GetValue()
|
self.constants.custom_serial_number = self.smbios_serial_textbox.GetValue()
|
||||||
|
|
||||||
def smbios_board_serial_click(self, event):
|
def smbios_board_serial_click(self, event):
|
||||||
self.constants.custom_board_serial_number = self.smbios_board_serial_textbox.GetValue()
|
self.constants.custom_board_serial_number = self.smbios_board_serial_textbox.GetValue()
|
||||||
|
|
||||||
def generate_new_serials_clicked(self, event):
|
def generate_new_serials_clicked(self, event):
|
||||||
macserial_output = subprocess.run([self.constants.macserial_path] + f"-g -m {self.constants.custom_model or self.computer.real_model} -n 1".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
macserial_output = subprocess.run([self.constants.macserial_path] + f"-g -m {self.constants.custom_model or self.computer.real_model} -n 1".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||||
macserial_output = macserial_output.stdout.decode().strip().split(" | ")
|
macserial_output = macserial_output.stdout.decode().strip().split(" | ")
|
||||||
@@ -2762,12 +2762,12 @@ class wx_python_gui:
|
|||||||
selection = self.smbios_dropdown.GetStringSelection()
|
selection = self.smbios_dropdown.GetStringSelection()
|
||||||
print(f"SMBIOS Spoof Level: {selection}")
|
print(f"SMBIOS Spoof Level: {selection}")
|
||||||
self.constants.serial_settings = selection
|
self.constants.serial_settings = selection
|
||||||
|
|
||||||
def smbios_model_click(self, event=None):
|
def smbios_model_click(self, event=None):
|
||||||
selection = self.smbios_model_dropdown.GetStringSelection()
|
selection = self.smbios_model_dropdown.GetStringSelection()
|
||||||
print(f"SMBIOS Spoof Model: {selection}")
|
print(f"SMBIOS Spoof Model: {selection}")
|
||||||
self.constants.override_smbios = selection
|
self.constants.override_smbios = selection
|
||||||
|
|
||||||
def additional_info_menu(self, event=None):
|
def additional_info_menu(self, event=None):
|
||||||
self.reset_frame_modal()
|
self.reset_frame_modal()
|
||||||
self.frame_modal.SetSize(wx.Size(500, -1))
|
self.frame_modal.SetSize(wx.Size(500, -1))
|
||||||
@@ -2801,14 +2801,14 @@ class wx_python_gui:
|
|||||||
)
|
)
|
||||||
self.model_dump_textbox.SetSize(
|
self.model_dump_textbox.SetSize(
|
||||||
wx.Size(
|
wx.Size(
|
||||||
self.frame_modal.GetSize().width - 5,
|
self.frame_modal.GetSize().width - 5,
|
||||||
self.model_dump_textbox.GetSize().height + self.model_dump_textbox.GetSize().height
|
self.model_dump_textbox.GetSize().height + self.model_dump_textbox.GetSize().height
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
self.model_dump_textbox.Center(wx.HORIZONTAL)
|
self.model_dump_textbox.Center(wx.HORIZONTAL)
|
||||||
self.model_dump_textbox.SetEditable(False)
|
self.model_dump_textbox.SetEditable(False)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Label: Launcher Binary
|
# Label: Launcher Binary
|
||||||
self.launcher_binary_label = wx.StaticText(self.frame_modal, label="Launcher Binary")
|
self.launcher_binary_label = wx.StaticText(self.frame_modal, label="Launcher Binary")
|
||||||
@@ -2852,12 +2852,12 @@ class wx_python_gui:
|
|||||||
)
|
)
|
||||||
self.return_to_main_menu_button.Bind(wx.EVT_BUTTON, self.settings_menu)
|
self.return_to_main_menu_button.Bind(wx.EVT_BUTTON, self.settings_menu)
|
||||||
self.return_to_main_menu_button.Center(wx.HORIZONTAL)
|
self.return_to_main_menu_button.Center(wx.HORIZONTAL)
|
||||||
|
|
||||||
# Set frame_modal below return to main menu button
|
# Set frame_modal below return to main menu button
|
||||||
self.frame_modal.SetSize(wx.Size(-1, self.return_to_main_menu_button.GetPosition().y + self.return_to_main_menu_button.GetSize().height + 40))
|
self.frame_modal.SetSize(wx.Size(-1, self.return_to_main_menu_button.GetPosition().y + self.return_to_main_menu_button.GetSize().height + 40))
|
||||||
self.frame_modal.ShowWindowModal()
|
self.frame_modal.ShowWindowModal()
|
||||||
|
|
||||||
|
|
||||||
def sip_config_menu(self, event=None):
|
def sip_config_menu(self, event=None):
|
||||||
self.reset_frame_modal()
|
self.reset_frame_modal()
|
||||||
self.frame_modal.SetSize(wx.Size(400, 600))
|
self.frame_modal.SetSize(wx.Size(400, 600))
|
||||||
@@ -2878,12 +2878,12 @@ class wx_python_gui:
|
|||||||
self.sip_label.SetPosition(
|
self.sip_label.SetPosition(
|
||||||
wx.Point(self.sip_label.GetPosition().x - 25, -1)
|
wx.Point(self.sip_label.GetPosition().x - 25, -1)
|
||||||
)
|
)
|
||||||
|
|
||||||
hyperlink_label = hyperlink.HyperLinkCtrl(
|
hyperlink_label = hyperlink.HyperLinkCtrl(
|
||||||
self.frame_modal,
|
self.frame_modal,
|
||||||
-1,
|
-1,
|
||||||
"XNU's csr.h",
|
"XNU's csr.h",
|
||||||
pos=(self.sip_label.GetPosition().x + self.sip_label.GetSize().width, self.sip_label.GetPosition().y),
|
pos=(self.sip_label.GetPosition().x + self.sip_label.GetSize().width, self.sip_label.GetPosition().y),
|
||||||
URL="https://github.com/apple/darwin-xnu/blob/main/bsd/sys/csr.h",
|
URL="https://github.com/apple/darwin-xnu/blob/main/bsd/sys/csr.h",
|
||||||
)
|
)
|
||||||
hyperlink_label.SetForegroundColour((25, 179, 231))
|
hyperlink_label.SetForegroundColour((25, 179, 231))
|
||||||
@@ -2894,7 +2894,7 @@ class wx_python_gui:
|
|||||||
self.sip_value = 0x00
|
self.sip_value = 0x00
|
||||||
else:
|
else:
|
||||||
self.sip_value = 0x802
|
self.sip_value = 0x802
|
||||||
|
|
||||||
self.sip_label_2 = wx.StaticText(self.frame_modal, label=f"Currently configured SIP: {hex(self.sip_value)}")
|
self.sip_label_2 = wx.StaticText(self.frame_modal, label=f"Currently configured SIP: {hex(self.sip_value)}")
|
||||||
self.sip_label_2.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD))
|
self.sip_label_2.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD))
|
||||||
self.sip_label_2.SetPosition(
|
self.sip_label_2.SetPosition(
|
||||||
@@ -2932,7 +2932,7 @@ class wx_python_gui:
|
|||||||
|
|
||||||
warning_string = """
|
warning_string = """
|
||||||
OpenCore Legacy Patcher by default knows the most ideal
|
OpenCore Legacy Patcher by default knows the most ideal
|
||||||
SIP value for your system. Override this value only if you
|
SIP value for your system. Override this value only if you
|
||||||
understand the consequences. Reckless usage of this
|
understand the consequences. Reckless usage of this
|
||||||
menu can break your installation.
|
menu can break your installation.
|
||||||
"""
|
"""
|
||||||
@@ -2955,7 +2955,7 @@ OpenCore Legacy Patcher by default knows the most ideal
|
|||||||
self.sip_checkbox.Bind(wx.EVT_CHECKBOX, self.update_sip_value)
|
self.sip_checkbox.Bind(wx.EVT_CHECKBOX, self.update_sip_value)
|
||||||
if self.sip_value & sip_data.system_integrity_protection.csr_values_extended[sip_bit]["value"] == sip_data.system_integrity_protection.csr_values_extended[sip_bit]["value"]:
|
if self.sip_value & sip_data.system_integrity_protection.csr_values_extended[sip_bit]["value"] == sip_data.system_integrity_protection.csr_values_extended[sip_bit]["value"]:
|
||||||
self.sip_checkbox.SetValue(True)
|
self.sip_checkbox.SetValue(True)
|
||||||
|
|
||||||
# Button: returns to the main menu
|
# Button: returns to the main menu
|
||||||
self.return_to_main_menu_button = wx.Button(self.frame_modal, label="Return to Settings")
|
self.return_to_main_menu_button = wx.Button(self.frame_modal, label="Return to Settings")
|
||||||
self.return_to_main_menu_button.SetPosition(
|
self.return_to_main_menu_button.SetPosition(
|
||||||
@@ -2987,7 +2987,7 @@ OpenCore Legacy Patcher by default knows the most ideal
|
|||||||
|
|
||||||
def misc_settings_menu(self, event):
|
def misc_settings_menu(self, event):
|
||||||
self.reset_frame_modal()
|
self.reset_frame_modal()
|
||||||
|
|
||||||
# Header
|
# Header
|
||||||
self.header = wx.StaticText(self.frame_modal, label="Misc Settings", style=wx.ALIGN_CENTRE, pos=wx.Point(10, 10))
|
self.header = wx.StaticText(self.frame_modal, label="Misc Settings", style=wx.ALIGN_CENTRE, pos=wx.Point(10, 10))
|
||||||
self.header.SetFont(wx.Font(18, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD))
|
self.header.SetFont(wx.Font(18, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD))
|
||||||
@@ -3039,7 +3039,7 @@ OpenCore Legacy Patcher by default knows the most ideal
|
|||||||
self.firewire_boot_checkbox.SetToolTip(wx.ToolTip("Enable FireWire Boot support in macOS 10.15 and newer.\nMainly applicable for Macs with FireWire or Thunderbolt to FireWire adapters"))
|
self.firewire_boot_checkbox.SetToolTip(wx.ToolTip("Enable FireWire Boot support in macOS 10.15 and newer.\nMainly applicable for Macs with FireWire or Thunderbolt to FireWire adapters"))
|
||||||
if generate_smbios.check_firewire(self.computer.real_model) is False and not self.constants.custom_model:
|
if generate_smbios.check_firewire(self.computer.real_model) is False and not self.constants.custom_model:
|
||||||
self.firewire_boot_checkbox.Disable()
|
self.firewire_boot_checkbox.Disable()
|
||||||
|
|
||||||
# XHCI Boot
|
# XHCI Boot
|
||||||
self.xhci_boot_checkbox = wx.CheckBox(self.frame_modal, label="XHCI Boot")
|
self.xhci_boot_checkbox = wx.CheckBox(self.frame_modal, label="XHCI Boot")
|
||||||
self.xhci_boot_checkbox.SetValue(self.constants.xhci_boot)
|
self.xhci_boot_checkbox.SetValue(self.constants.xhci_boot)
|
||||||
@@ -3053,7 +3053,7 @@ OpenCore Legacy Patcher by default knows the most ideal
|
|||||||
self.nvme_boot_checkbox.Bind(wx.EVT_CHECKBOX, self.nvme_click)
|
self.nvme_boot_checkbox.Bind(wx.EVT_CHECKBOX, self.nvme_click)
|
||||||
self.nvme_boot_checkbox.SetPosition(wx.Point(self.xhci_boot_checkbox.GetPosition().x, self.xhci_boot_checkbox.GetPosition().y + self.xhci_boot_checkbox.GetSize().height))
|
self.nvme_boot_checkbox.SetPosition(wx.Point(self.xhci_boot_checkbox.GetPosition().x, self.xhci_boot_checkbox.GetPosition().y + self.xhci_boot_checkbox.GetSize().height))
|
||||||
self.nvme_boot_checkbox.SetToolTip(wx.ToolTip("Enables NVMe support in UEFI for non-native systems (ie. MacPro3,1)\nRequires OpenCore to be stored on a natively bootable volume however"))
|
self.nvme_boot_checkbox.SetToolTip(wx.ToolTip("Enables NVMe support in UEFI for non-native systems (ie. MacPro3,1)\nRequires OpenCore to be stored on a natively bootable volume however"))
|
||||||
|
|
||||||
# NVMe Power Management
|
# NVMe Power Management
|
||||||
self.nvme_power_management_checkbox = wx.CheckBox(self.frame_modal, label="NVMe Power Management")
|
self.nvme_power_management_checkbox = wx.CheckBox(self.frame_modal, label="NVMe Power Management")
|
||||||
self.nvme_power_management_checkbox.SetValue(self.constants.allow_nvme_fixing)
|
self.nvme_power_management_checkbox.SetValue(self.constants.allow_nvme_fixing)
|
||||||
@@ -3146,7 +3146,7 @@ OpenCore Legacy Patcher by default knows the most ideal
|
|||||||
is_blur_enabled = True
|
is_blur_enabled = True
|
||||||
else:
|
else:
|
||||||
is_blur_enabled = False
|
is_blur_enabled = False
|
||||||
|
|
||||||
is_rim_enabled = subprocess.run(["defaults", "read", "-g", "Moraea_RimBeta"], stdout=subprocess.PIPE).stdout.decode("utf-8").strip()
|
is_rim_enabled = subprocess.run(["defaults", "read", "-g", "Moraea_RimBeta"], stdout=subprocess.PIPE).stdout.decode("utf-8").strip()
|
||||||
if is_rim_enabled in ["1", "true"]:
|
if is_rim_enabled in ["1", "true"]:
|
||||||
is_rim_enabled = True
|
is_rim_enabled = True
|
||||||
@@ -3187,14 +3187,14 @@ OpenCore Legacy Patcher by default knows the most ideal
|
|||||||
else:
|
else:
|
||||||
subprocess.run(["defaults", "write", "-g", "Moraea_BlurBeta", "-bool", "false"])
|
subprocess.run(["defaults", "write", "-g", "Moraea_BlurBeta", "-bool", "false"])
|
||||||
print("Beta Blur Enabled:", event.IsChecked())
|
print("Beta Blur Enabled:", event.IsChecked())
|
||||||
|
|
||||||
def enable_dark_menubar_click(self, event=None):
|
def enable_dark_menubar_click(self, event=None):
|
||||||
if event.IsChecked():
|
if event.IsChecked():
|
||||||
subprocess.run(["defaults", "write", "-g", "Moraea_DarkMenuBar", "-bool", "true"])
|
subprocess.run(["defaults", "write", "-g", "Moraea_DarkMenuBar", "-bool", "true"])
|
||||||
else:
|
else:
|
||||||
subprocess.run(["defaults", "write", "-g", "Moraea_DarkMenuBar", "-bool", "false"])
|
subprocess.run(["defaults", "write", "-g", "Moraea_DarkMenuBar", "-bool", "false"])
|
||||||
print("Dark Menu Bar Enabled:", event.IsChecked())
|
print("Dark Menu Bar Enabled:", event.IsChecked())
|
||||||
|
|
||||||
def enable_beta_rim_click(self, event=None):
|
def enable_beta_rim_click(self, event=None):
|
||||||
if event.IsChecked():
|
if event.IsChecked():
|
||||||
subprocess.run(["defaults", "write", "-g", "Moraea_RimBeta", "-bool", "true"])
|
subprocess.run(["defaults", "write", "-g", "Moraea_RimBeta", "-bool", "true"])
|
||||||
|
|||||||
@@ -11,10 +11,10 @@ class RedirectText(object):
|
|||||||
wx.GetApp().Yield()
|
wx.GetApp().Yield()
|
||||||
if self.sleep:
|
if self.sleep:
|
||||||
time.sleep(0.01)
|
time.sleep(0.01)
|
||||||
|
|
||||||
def fileno(self):
|
def fileno(self):
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
def flush(self):
|
def flush(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@@ -28,7 +28,7 @@ class RedirectLabel(object):
|
|||||||
self.out.Centre(wx.HORIZONTAL)
|
self.out.Centre(wx.HORIZONTAL)
|
||||||
wx.GetApp().Yield()
|
wx.GetApp().Yield()
|
||||||
time.sleep(0.01)
|
time.sleep(0.01)
|
||||||
|
|
||||||
def flush(self):
|
def flush(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ class arguments:
|
|||||||
if "Library/InstallerSandboxes/" in str(settings.payload_path):
|
if "Library/InstallerSandboxes/" in str(settings.payload_path):
|
||||||
print("- Running from Installer Sandbox")
|
print("- Running from Installer Sandbox")
|
||||||
thread = threading.Thread(target=sys_patch.PatchSysVolume(settings.custom_model or settings.computer.real_model, settings, None).start_patch)
|
thread = threading.Thread(target=sys_patch.PatchSysVolume(settings.custom_model or settings.computer.real_model, settings, None).start_patch)
|
||||||
thread.start()
|
thread.start()
|
||||||
while thread.is_alive():
|
while thread.is_alive():
|
||||||
utilities.block_os_updaters()
|
utilities.block_os_updaters()
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
|
|||||||
+11
-11
@@ -53,7 +53,7 @@ class BuildOpenCore:
|
|||||||
else:
|
else:
|
||||||
print("- Adding Internal Drive icon")
|
print("- Adding Internal Drive icon")
|
||||||
shutil.copy(self.constants.icon_path_internal, self.constants.opencore_release_folder)
|
shutil.copy(self.constants.icon_path_internal, self.constants.opencore_release_folder)
|
||||||
|
|
||||||
def chainload_diags(self):
|
def chainload_diags(self):
|
||||||
Path(self.constants.opencore_release_folder / Path("System/Library/CoreServices/.diagnostics/Drivers/HardwareDrivers")).mkdir(parents=True, exist_ok=True)
|
Path(self.constants.opencore_release_folder / Path("System/Library/CoreServices/.diagnostics/Drivers/HardwareDrivers")).mkdir(parents=True, exist_ok=True)
|
||||||
if self.constants.boot_efi is True:
|
if self.constants.boot_efi is True:
|
||||||
@@ -147,7 +147,7 @@ class BuildOpenCore:
|
|||||||
# Credit to Parrotgeek1 for boot.efi and hv_vmm_present patch sets
|
# Credit to Parrotgeek1 for boot.efi and hv_vmm_present patch sets
|
||||||
# print("- Enabling Board ID exemption patch")
|
# print("- Enabling Board ID exemption patch")
|
||||||
# self.get_item_by_kv(self.config["Booter"]["Patch"], "Comment", "Skip Board ID check")["Enabled"] = True
|
# self.get_item_by_kv(self.config["Booter"]["Patch"], "Comment", "Skip Board ID check")["Enabled"] = True
|
||||||
|
|
||||||
print("- Enabling VMM exemption patch")
|
print("- Enabling VMM exemption patch")
|
||||||
self.get_item_by_kv(self.config["Kernel"]["Patch"], "Comment", "Reroute kern.hv_vmm_present patch (1)")["Enabled"] = True
|
self.get_item_by_kv(self.config["Kernel"]["Patch"], "Comment", "Reroute kern.hv_vmm_present patch (1)")["Enabled"] = True
|
||||||
self.get_item_by_kv(self.config["Kernel"]["Patch"], "Comment", "Reroute kern.hv_vmm_present patch (2)")["Enabled"] = True
|
self.get_item_by_kv(self.config["Kernel"]["Patch"], "Comment", "Reroute kern.hv_vmm_present patch (2)")["Enabled"] = True
|
||||||
@@ -166,14 +166,14 @@ class BuildOpenCore:
|
|||||||
if self.get_kext_by_bundle_path("Lilu.kext")["Enabled"] is True:
|
if self.get_kext_by_bundle_path("Lilu.kext")["Enabled"] is True:
|
||||||
# Required for Lilu in 11.0+
|
# Required for Lilu in 11.0+
|
||||||
self.config["Kernel"]["Quirks"]["DisableLinkeditJettison"] = True
|
self.config["Kernel"]["Quirks"]["DisableLinkeditJettison"] = True
|
||||||
|
|
||||||
if self.constants.fu_status is True:
|
if self.constants.fu_status is True:
|
||||||
# Enable FeatureUnlock.kext
|
# Enable FeatureUnlock.kext
|
||||||
self.enable_kext("FeatureUnlock.kext", self.constants.featureunlock_version, self.constants.featureunlock_path)
|
self.enable_kext("FeatureUnlock.kext", self.constants.featureunlock_version, self.constants.featureunlock_path)
|
||||||
if self.constants.fu_arguments is not None:
|
if self.constants.fu_arguments is not None:
|
||||||
print(f"- Adding additional FeatureUnlock args: {self.constants.fu_arguments}")
|
print(f"- Adding additional FeatureUnlock args: {self.constants.fu_arguments}")
|
||||||
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += self.constants.fu_arguments
|
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += self.constants.fu_arguments
|
||||||
|
|
||||||
if smbios_data.smbios_dictionary[self.model]["CPU Generation"] <= cpu_data.cpu_data.sandy_bridge.value or self.constants.disable_xcpm is True:
|
if smbios_data.smbios_dictionary[self.model]["CPU Generation"] <= cpu_data.cpu_data.sandy_bridge.value or self.constants.disable_xcpm is True:
|
||||||
# With macOS 12.3 Beta 1, Apple dropped the 'plugin-type' check within X86PlatformPlugin
|
# With macOS 12.3 Beta 1, Apple dropped the 'plugin-type' check within X86PlatformPlugin
|
||||||
# Because of this, X86PP will match onto the CPU instead of ACPI_SMC_PlatformPlugin
|
# Because of this, X86PP will match onto the CPU instead of ACPI_SMC_PlatformPlugin
|
||||||
@@ -240,7 +240,7 @@ class BuildOpenCore:
|
|||||||
# In macOS 12.4 and 12.5 Beta 1, Apple added AVX1.0 usage in AppleFSCompressionTypeZlib
|
# In macOS 12.4 and 12.5 Beta 1, Apple added AVX1.0 usage in AppleFSCompressionTypeZlib
|
||||||
# Pre-Sandy Bridge CPUs don't support AVX1.0, thus we'll downgrade the kext to 12.3.1's
|
# Pre-Sandy Bridge CPUs don't support AVX1.0, thus we'll downgrade the kext to 12.3.1's
|
||||||
# Currently a (hopefully) temporary workaround for the issue, proper fix needs to be investigated
|
# Currently a (hopefully) temporary workaround for the issue, proper fix needs to be investigated
|
||||||
# Ref:
|
# Ref:
|
||||||
# https://forums.macrumors.com/threads/macos-12-monterey-on-unsupported-macs-thread.2299557/post-31120235
|
# https://forums.macrumors.com/threads/macos-12-monterey-on-unsupported-macs-thread.2299557/post-31120235
|
||||||
# https://forums.macrumors.com/threads/monterand-probably-the-start-of-an-ongoing-saga.2320479/post-31123553
|
# https://forums.macrumors.com/threads/monterand-probably-the-start-of-an-ongoing-saga.2320479/post-31123553
|
||||||
|
|
||||||
@@ -398,7 +398,7 @@ class BuildOpenCore:
|
|||||||
if smbios_data.smbios_dictionary[self.model]["CPU Generation"] <= cpu_data.cpu_data.penryn.value:
|
if smbios_data.smbios_dictionary[self.model]["CPU Generation"] <= cpu_data.cpu_data.penryn.value:
|
||||||
print("- Adding IOHIDFamily patch")
|
print("- Adding IOHIDFamily patch")
|
||||||
self.get_item_by_kv(self.config["Kernel"]["Patch"], "Identifier", "com.apple.iokit.IOHIDFamily")["Enabled"] = True
|
self.get_item_by_kv(self.config["Kernel"]["Patch"], "Identifier", "com.apple.iokit.IOHIDFamily")["Enabled"] = True
|
||||||
|
|
||||||
# Legacy iSight patches
|
# Legacy iSight patches
|
||||||
try:
|
try:
|
||||||
if smbios_data.smbios_dictionary[self.model]["Legacy iSight"] is True:
|
if smbios_data.smbios_dictionary[self.model]["Legacy iSight"] is True:
|
||||||
@@ -467,7 +467,7 @@ class BuildOpenCore:
|
|||||||
Path(self.constants.agdp_contents_folder).mkdir()
|
Path(self.constants.agdp_contents_folder).mkdir()
|
||||||
shutil.copy(agdp_map_path, self.constants.agdp_contents_folder)
|
shutil.copy(agdp_map_path, self.constants.agdp_contents_folder)
|
||||||
self.get_kext_by_bundle_path("AGDP-Override.kext")["Enabled"] = True
|
self.get_kext_by_bundle_path("AGDP-Override.kext")["Enabled"] = True
|
||||||
|
|
||||||
if self.constants.serial_settings != "None":
|
if self.constants.serial_settings != "None":
|
||||||
# AGPM Patch
|
# AGPM Patch
|
||||||
if self.model in model_array.DualGPUPatch:
|
if self.model in model_array.DualGPUPatch:
|
||||||
@@ -534,7 +534,7 @@ class BuildOpenCore:
|
|||||||
self.enable_kext("IOFireWireSBP2.kext", self.constants.fw_kext, self.constants.fw_sbp2_path)
|
self.enable_kext("IOFireWireSBP2.kext", self.constants.fw_kext, self.constants.fw_sbp2_path)
|
||||||
self.enable_kext("IOFireWireSerialBusProtocolTransport.kext", self.constants.fw_kext, self.constants.fw_bus_path)
|
self.enable_kext("IOFireWireSerialBusProtocolTransport.kext", self.constants.fw_kext, self.constants.fw_bus_path)
|
||||||
self.get_kext_by_bundle_path("IOFireWireFamily.kext/Contents/PlugIns/AppleFWOHCI.kext")["Enabled"] = True
|
self.get_kext_by_bundle_path("IOFireWireFamily.kext/Contents/PlugIns/AppleFWOHCI.kext")["Enabled"] = True
|
||||||
|
|
||||||
|
|
||||||
def backlight_path_detection(self):
|
def backlight_path_detection(self):
|
||||||
if not self.constants.custom_model and self.computer.dgpu and self.computer.dgpu.pci_path:
|
if not self.constants.custom_model and self.computer.dgpu and self.computer.dgpu.pci_path:
|
||||||
@@ -863,7 +863,7 @@ class BuildOpenCore:
|
|||||||
print("- Adding SATA Hibernation Patch")
|
print("- Adding SATA Hibernation Patch")
|
||||||
self.config["Kernel"]["Quirks"]["ThirdPartyDrives"] = True
|
self.config["Kernel"]["Quirks"]["ThirdPartyDrives"] = True
|
||||||
break
|
break
|
||||||
|
|
||||||
# Apple RAID Card check
|
# Apple RAID Card check
|
||||||
if not self.constants.custom_model:
|
if not self.constants.custom_model:
|
||||||
if self.computer.storage:
|
if self.computer.storage:
|
||||||
@@ -1124,7 +1124,7 @@ class BuildOpenCore:
|
|||||||
self.config["PlatformInfo"]["Generic"]["SystemUUID"] = str(uuid.uuid4()).upper()
|
self.config["PlatformInfo"]["Generic"]["SystemUUID"] = str(uuid.uuid4()).upper()
|
||||||
self.config["NVRAM"]["Add"]["4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102"]["OCLP-Spoofed-SN"] = sn
|
self.config["NVRAM"]["Add"]["4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102"]["OCLP-Spoofed-SN"] = sn
|
||||||
self.config["NVRAM"]["Add"]["4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102"]["OCLP-Spoofed-MLB"] = mlb
|
self.config["NVRAM"]["Add"]["4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102"]["OCLP-Spoofed-MLB"] = mlb
|
||||||
|
|
||||||
|
|
||||||
if self.constants.serial_settings == "Moderate":
|
if self.constants.serial_settings == "Moderate":
|
||||||
print("- Using Moderate SMBIOS patching")
|
print("- Using Moderate SMBIOS patching")
|
||||||
@@ -1148,7 +1148,7 @@ class BuildOpenCore:
|
|||||||
print("- Detected UEFI 1.2 or older Mac, updating BoardProduct")
|
print("- Detected UEFI 1.2 or older Mac, updating BoardProduct")
|
||||||
self.config["PlatformInfo"]["DataHub"]["BoardProduct"] = self.spoofed_board
|
self.config["PlatformInfo"]["DataHub"]["BoardProduct"] = self.spoofed_board
|
||||||
self.config["PlatformInfo"]["UpdateDataHub"] = True
|
self.config["PlatformInfo"]["UpdateDataHub"] = True
|
||||||
|
|
||||||
if self.constants.custom_serial_number != "" and self.constants.custom_board_serial_number != "":
|
if self.constants.custom_serial_number != "" and self.constants.custom_board_serial_number != "":
|
||||||
print("- Adding custom serial numbers")
|
print("- Adding custom serial numbers")
|
||||||
self.config["PlatformInfo"]["Automatic"] = True
|
self.config["PlatformInfo"]["Automatic"] = True
|
||||||
|
|||||||
+22
-22
@@ -67,7 +67,7 @@ Valid Options:
|
|||||||
1. None (stock GPU)
|
1. None (stock GPU)
|
||||||
2. Nvidia Kepler
|
2. Nvidia Kepler
|
||||||
3. AMD Polaris
|
3. AMD Polaris
|
||||||
4. AMD Legacy GCN
|
4. AMD Legacy GCN
|
||||||
Q. Return to previous menu
|
Q. Return to previous menu
|
||||||
|
|
||||||
Note: Patcher will detect whether hardware has been upgraded regardless, this
|
Note: Patcher will detect whether hardware has been upgraded regardless, this
|
||||||
@@ -466,7 +466,7 @@ OpenCore will enable NVMe support in it's picker
|
|||||||
print("Returning to previous menu")
|
print("Returning to previous menu")
|
||||||
else:
|
else:
|
||||||
self.allow_nvme()
|
self.allow_nvme()
|
||||||
|
|
||||||
def allow_nvme_pwr_mgmt(self):
|
def allow_nvme_pwr_mgmt(self):
|
||||||
utilities.cls()
|
utilities.cls()
|
||||||
utilities.header(["Allow NVMe Power Management Adjustments"])
|
utilities.header(["Allow NVMe Power Management Adjustments"])
|
||||||
@@ -479,7 +479,7 @@ within macOS.
|
|||||||
Note that some NVMe drives don't support macOS's
|
Note that some NVMe drives don't support macOS's
|
||||||
power management settings, and can result in boot
|
power management settings, and can result in boot
|
||||||
issues. Disable this option if you experience
|
issues. Disable this option if you experience
|
||||||
IONVMeFamily kernel panics. Mainly applicable for
|
IONVMeFamily kernel panics. Mainly applicable for
|
||||||
Skylake and newer Macs.
|
Skylake and newer Macs.
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
@@ -493,7 +493,7 @@ Skylake and newer Macs.
|
|||||||
print("Returning to previous menu")
|
print("Returning to previous menu")
|
||||||
else:
|
else:
|
||||||
self.allow_nvme()
|
self.allow_nvme()
|
||||||
|
|
||||||
def allow_xhci(self):
|
def allow_xhci(self):
|
||||||
utilities.cls()
|
utilities.cls()
|
||||||
utilities.header(["Allow NVMe UEFI Support"])
|
utilities.header(["Allow NVMe UEFI Support"])
|
||||||
@@ -554,7 +554,7 @@ be prepared if enabling.
|
|||||||
Some 2013-14 MacBook Pro's have issues with the built-in thunderbolt,
|
Some 2013-14 MacBook Pro's have issues with the built-in thunderbolt,
|
||||||
resulting in kernel panics and random shutdowns.
|
resulting in kernel panics and random shutdowns.
|
||||||
|
|
||||||
To alliviate, you can disable the thunderbolt controller on MacBookPro11,x
|
To alliviate, you can disable the thunderbolt controller on MacBookPro11,x
|
||||||
machines with this option.
|
machines with this option.
|
||||||
|
|
||||||
Note: This option only works on MacBookPro11,x, file an issue if you know of
|
Note: This option only works on MacBookPro11,x, file an issue if you know of
|
||||||
@@ -650,7 +650,7 @@ for Windows may prefer to only work with the dGPU and eGPU active.
|
|||||||
print("Returning to previous menu")
|
print("Returning to previous menu")
|
||||||
else:
|
else:
|
||||||
self.dGPU_switch_support()
|
self.dGPU_switch_support()
|
||||||
|
|
||||||
def set_3rd_party_drices(self):
|
def set_3rd_party_drices(self):
|
||||||
utilities.cls()
|
utilities.cls()
|
||||||
utilities.header(["Set enhanced 3rd Party SSD Support"])
|
utilities.header(["Set enhanced 3rd Party SSD Support"])
|
||||||
@@ -673,7 +673,7 @@ TRIM is not ideal.
|
|||||||
print("Returning to previous menu")
|
print("Returning to previous menu")
|
||||||
else:
|
else:
|
||||||
self.set_3rd_party_drices()
|
self.set_3rd_party_drices()
|
||||||
|
|
||||||
def set_software_demux(self):
|
def set_software_demux(self):
|
||||||
utilities.cls()
|
utilities.cls()
|
||||||
utilities.header(["Set Software Demux"])
|
utilities.header(["Set Software Demux"])
|
||||||
@@ -701,7 +701,7 @@ https://dortania.github.io/OpenCore-Legacy-Patcher/ACCEL.html#unable-to-switch-g
|
|||||||
print("Returning to previous menu")
|
print("Returning to previous menu")
|
||||||
else:
|
else:
|
||||||
self.set_software_demux()
|
self.set_software_demux()
|
||||||
|
|
||||||
def set_battery_throttle(self):
|
def set_battery_throttle(self):
|
||||||
utilities.cls()
|
utilities.cls()
|
||||||
utilities.header(["Disable Firmware Throttling"])
|
utilities.header(["Disable Firmware Throttling"])
|
||||||
@@ -714,7 +714,7 @@ low power mode.
|
|||||||
|
|
||||||
Enabling this option will patch 'MSR_POWER_CTL' to be unset allowing
|
Enabling this option will patch 'MSR_POWER_CTL' to be unset allowing
|
||||||
proper CPU behaviour as if hardware is present. Note that this can cause
|
proper CPU behaviour as if hardware is present. Note that this can cause
|
||||||
instability in situations where the CPU is being taxed and pulls more
|
instability in situations where the CPU is being taxed and pulls more
|
||||||
power than the laptop's PSU can supply.
|
power than the laptop's PSU can supply.
|
||||||
|
|
||||||
Note: Only supported on Nehalem and newer Macs (2010+)
|
Note: Only supported on Nehalem and newer Macs (2010+)
|
||||||
@@ -766,7 +766,7 @@ By default OCLP will only allow SurPlus to be used on Big Sur and Monterey.
|
|||||||
This is for safety reasons in the event newer OSes may break compatibility
|
This is for safety reasons in the event newer OSes may break compatibility
|
||||||
and result in boot loops.
|
and result in boot loops.
|
||||||
|
|
||||||
Enabling this option will allow SurPlus to have no MaxKernel set, and
|
Enabling this option will allow SurPlus to have no MaxKernel set, and
|
||||||
therefore allow it to run on anything newer than 11.2.3. However if you
|
therefore allow it to run on anything newer than 11.2.3. However if you
|
||||||
do toggle this setting, ensure you have a known-good OS to return to in
|
do toggle this setting, ensure you have a known-good OS to return to in
|
||||||
the event there's issues.
|
the event there's issues.
|
||||||
@@ -782,17 +782,17 @@ the event there's issues.
|
|||||||
print("Returning to previous menu")
|
print("Returning to previous menu")
|
||||||
else:
|
else:
|
||||||
self.set_surplus()
|
self.set_surplus()
|
||||||
|
|
||||||
def set_hibernation_workaround(self):
|
def set_hibernation_workaround(self):
|
||||||
utilities.cls()
|
utilities.cls()
|
||||||
utilities.header(["Set Hibernation Workaround"])
|
utilities.header(["Set Hibernation Workaround"])
|
||||||
print(
|
print(
|
||||||
"""
|
"""
|
||||||
For users with Hibernation issues, you can flip this option to disable certain
|
For users with Hibernation issues, you can flip this option to disable certain
|
||||||
OpenCore settings that may affect the stability of Hibernation. Namely
|
OpenCore settings that may affect the stability of Hibernation. Namely
|
||||||
OpenCore's ConnectDrivers option.
|
OpenCore's ConnectDrivers option.
|
||||||
|
|
||||||
Flipping this setting will disable automatic loading of additional drives in
|
Flipping this setting will disable automatic loading of additional drives in
|
||||||
OpenCore's boot menu other than what was booted.
|
OpenCore's boot menu other than what was booted.
|
||||||
|
|
||||||
Note: This option should only be flipped under the following circumstances:
|
Note: This option should only be flipped under the following circumstances:
|
||||||
@@ -813,7 +813,7 @@ Note: This option should only be flipped under the following circumstances:
|
|||||||
print("Returning to previous menu")
|
print("Returning to previous menu")
|
||||||
else:
|
else:
|
||||||
self.set_hibernation_workaround()
|
self.set_hibernation_workaround()
|
||||||
|
|
||||||
def set_custom_sip_value(self):
|
def set_custom_sip_value(self):
|
||||||
utilities.cls()
|
utilities.cls()
|
||||||
utilities.header(["Set Custom SIP Value"])
|
utilities.header(["Set Custom SIP Value"])
|
||||||
@@ -835,7 +835,7 @@ To disable SIP outright, set it to 0xFEF
|
|||||||
except ValueError:
|
except ValueError:
|
||||||
print("Invalid input, returning to previous menu")
|
print("Invalid input, returning to previous menu")
|
||||||
self.set_custom_sip_value()
|
self.set_custom_sip_value()
|
||||||
|
|
||||||
def set_fu_settings(self):
|
def set_fu_settings(self):
|
||||||
utilities.cls()
|
utilities.cls()
|
||||||
utilities.header(["Set FeatureUnlock Settings"])
|
utilities.header(["Set FeatureUnlock Settings"])
|
||||||
@@ -871,7 +871,7 @@ Supported Options:
|
|||||||
else:
|
else:
|
||||||
print("Invalid input, returning to previous menu")
|
print("Invalid input, returning to previous menu")
|
||||||
self.set_fu_settings()
|
self.set_fu_settings()
|
||||||
|
|
||||||
def set_allow_native_spoofs(self):
|
def set_allow_native_spoofs(self):
|
||||||
utilities.cls()
|
utilities.cls()
|
||||||
utilities.header(["Allow Native Spoofs"])
|
utilities.header(["Allow Native Spoofs"])
|
||||||
@@ -895,7 +895,7 @@ available however not officially supported.
|
|||||||
print("Returning to previous menu")
|
print("Returning to previous menu")
|
||||||
else:
|
else:
|
||||||
self.set_allow_native_spoofs()
|
self.set_allow_native_spoofs()
|
||||||
|
|
||||||
def set_nvram_write(self):
|
def set_nvram_write(self):
|
||||||
utilities.cls()
|
utilities.cls()
|
||||||
utilities.header(["Set NVRAM Write"])
|
utilities.header(["Set NVRAM Write"])
|
||||||
@@ -919,7 +919,7 @@ Supported Options:
|
|||||||
else:
|
else:
|
||||||
print("Invalid input, returning to previous menu")
|
print("Invalid input, returning to previous menu")
|
||||||
self.set_nvram_write()
|
self.set_nvram_write()
|
||||||
|
|
||||||
def set_cc_support(self):
|
def set_cc_support(self):
|
||||||
utilities.cls()
|
utilities.cls()
|
||||||
utilities.header(["Set Content Caching Support"])
|
utilities.header(["Set Content Caching Support"])
|
||||||
@@ -1187,7 +1187,7 @@ system_profiler SPHardwareDataType | grep 'Model Identifier'
|
|||||||
menu.add_menu_option(option[0], function=option[1])
|
menu.add_menu_option(option[0], function=option[1])
|
||||||
|
|
||||||
response = menu.start()
|
response = menu.start()
|
||||||
|
|
||||||
def download_macOS(self):
|
def download_macOS(self):
|
||||||
utilities.cls()
|
utilities.cls()
|
||||||
utilities.header(["Create macOS installer"])
|
utilities.header(["Create macOS installer"])
|
||||||
@@ -1221,7 +1221,7 @@ B. Exit
|
|||||||
print("Failed to start download")
|
print("Failed to start download")
|
||||||
input("Press any key to continue...")
|
input("Press any key to continue...")
|
||||||
|
|
||||||
|
|
||||||
def download_macOS_installer(self):
|
def download_macOS_installer(self):
|
||||||
response = None
|
response = None
|
||||||
while not (response and response == -1):
|
while not (response and response == -1):
|
||||||
@@ -1241,7 +1241,7 @@ B. Exit
|
|||||||
for option in options:
|
for option in options:
|
||||||
menu.add_menu_option(option[0], function=option[1])
|
menu.add_menu_option(option[0], function=option[1])
|
||||||
response = menu.start()
|
response = menu.start()
|
||||||
|
|
||||||
def find_local_installer(self):
|
def find_local_installer(self):
|
||||||
response = None
|
response = None
|
||||||
while not (response and response == -1):
|
while not (response and response == -1):
|
||||||
@@ -1255,7 +1255,7 @@ B. Exit
|
|||||||
for option in options:
|
for option in options:
|
||||||
menu.add_menu_option(option[0], function=option[1])
|
menu.add_menu_option(option[0], function=option[1])
|
||||||
response = menu.start()
|
response = menu.start()
|
||||||
|
|
||||||
def list_disks(self, installer_path):
|
def list_disks(self, installer_path):
|
||||||
disk = installer.select_disk_to_format()
|
disk = installer.select_disk_to_format()
|
||||||
if disk != None:
|
if disk != None:
|
||||||
|
|||||||
+17
-17
@@ -179,7 +179,7 @@ class Constants:
|
|||||||
self.force_latest_psp = False # Force latest PatcherSupportPkg
|
self.force_latest_psp = False # Force latest PatcherSupportPkg
|
||||||
self.disable_msr_power_ctl = False # Disable MSR Power Control (missing battery throttling)
|
self.disable_msr_power_ctl = False # Disable MSR Power Control (missing battery throttling)
|
||||||
self.software_demux = False # Enable Software Demux patch set
|
self.software_demux = False # Enable Software Demux patch set
|
||||||
self.force_vmm = False # Force VMM patch
|
self.force_vmm = False # Force VMM patch
|
||||||
self.custom_sip_value = None # Set custom SIP value
|
self.custom_sip_value = None # Set custom SIP value
|
||||||
self.walkthrough = False # Enable Walkthrough
|
self.walkthrough = False # Enable Walkthrough
|
||||||
self.disable_connectdrivers = False # Disable ConnectDrivers (hibernation)
|
self.disable_connectdrivers = False # Disable ConnectDrivers (hibernation)
|
||||||
@@ -208,7 +208,7 @@ class Constants:
|
|||||||
@property
|
@property
|
||||||
def plist_template(self):
|
def plist_template(self):
|
||||||
return self.payload_path / Path("Config/config.plist")
|
return self.payload_path / Path("Config/config.plist")
|
||||||
|
|
||||||
# Launch Agent
|
# Launch Agent
|
||||||
@property
|
@property
|
||||||
def auto_patch_launch_agent_path(self):
|
def auto_patch_launch_agent_path(self):
|
||||||
@@ -222,7 +222,7 @@ class Constants:
|
|||||||
@property
|
@property
|
||||||
def windows_ssdt_path(self):
|
def windows_ssdt_path(self):
|
||||||
return self.payload_path / Path("ACPI/SSDT-PCI.aml")
|
return self.payload_path / Path("ACPI/SSDT-PCI.aml")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def demux_ssdt_path(self):
|
def demux_ssdt_path(self):
|
||||||
return self.payload_path / Path("ACPI/SSDT-DGPU.aml")
|
return self.payload_path / Path("ACPI/SSDT-DGPU.aml")
|
||||||
@@ -239,7 +239,7 @@ class Constants:
|
|||||||
@property
|
@property
|
||||||
def xhci_driver_path(self):
|
def xhci_driver_path(self):
|
||||||
return self.payload_path / Path("Drivers/XhciDxe.efi")
|
return self.payload_path / Path("Drivers/XhciDxe.efi")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def usb_bus_driver_path(self):
|
def usb_bus_driver_path(self):
|
||||||
return self.payload_path / Path("Drivers/UsbBusDxe.efi")
|
return self.payload_path / Path("Drivers/UsbBusDxe.efi")
|
||||||
@@ -247,11 +247,11 @@ class Constants:
|
|||||||
@property
|
@property
|
||||||
def diags_launcher_path(self):
|
def diags_launcher_path(self):
|
||||||
return self.payload_path / Path("Drivers/diags.efi")
|
return self.payload_path / Path("Drivers/diags.efi")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def list_txt_path(self):
|
def list_txt_path(self):
|
||||||
return self.payload_path / Path("List.txt")
|
return self.payload_path / Path("List.txt")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def installer_sh_path(self):
|
def installer_sh_path(self):
|
||||||
return self.payload_path / Path("Installer.sh")
|
return self.payload_path / Path("Installer.sh")
|
||||||
@@ -304,11 +304,11 @@ class Constants:
|
|||||||
@property
|
@property
|
||||||
def mce_path(self):
|
def mce_path(self):
|
||||||
return self.payload_kexts_path / Path(f"Misc/AppleMCEReporterDisabler-v{self.mce_version}.zip")
|
return self.payload_kexts_path / Path(f"Misc/AppleMCEReporterDisabler-v{self.mce_version}.zip")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def bigsursdxc_path(self):
|
def bigsursdxc_path(self):
|
||||||
return self.payload_kexts_path / Path(f"Misc/BigSurSDXC-v{self.bigsursdxc_version}.zip")
|
return self.payload_kexts_path / Path(f"Misc/BigSurSDXC-v{self.bigsursdxc_version}.zip")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def apfs_zlib_path(self):
|
def apfs_zlib_path(self):
|
||||||
return self.payload_kexts_path / Path(f"Misc/NoAVXFSCompressionTypeZlib-v{self.apfs_zlib_version}.zip")
|
return self.payload_kexts_path / Path(f"Misc/NoAVXFSCompressionTypeZlib-v{self.apfs_zlib_version}.zip")
|
||||||
@@ -352,7 +352,7 @@ class Constants:
|
|||||||
@property
|
@property
|
||||||
def btspoof_path(self):
|
def btspoof_path(self):
|
||||||
return self.payload_kexts_path / Path(f"Misc/Bluetooth-Spoof-v{self.btspoof_version}.zip")
|
return self.payload_kexts_path / Path(f"Misc/Bluetooth-Spoof-v{self.btspoof_version}.zip")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def aspp_override_path(self):
|
def aspp_override_path(self):
|
||||||
return self.payload_kexts_path / Path(f"Misc/ASPP-Override-v{self.aspp_override_version}.zip")
|
return self.payload_kexts_path / Path(f"Misc/ASPP-Override-v{self.aspp_override_version}.zip")
|
||||||
@@ -376,7 +376,7 @@ class Constants:
|
|||||||
@property
|
@property
|
||||||
def cslvfixup_path(self):
|
def cslvfixup_path(self):
|
||||||
return self.payload_kexts_path / Path(f"Acidanthera/CSLVFixup-v{self.cslvfixup_version}.zip")
|
return self.payload_kexts_path / Path(f"Acidanthera/CSLVFixup-v{self.cslvfixup_version}.zip")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def autopkg_path(self):
|
def autopkg_path(self):
|
||||||
return self.payload_kexts_path / Path(f"Acidanthera/AutoPkgInstaller-v{self.autopkg_version}-{self.kext_variant}.zip")
|
return self.payload_kexts_path / Path(f"Acidanthera/AutoPkgInstaller-v{self.autopkg_version}-{self.kext_variant}.zip")
|
||||||
@@ -384,11 +384,11 @@ class Constants:
|
|||||||
@property
|
@property
|
||||||
def innie_path(self):
|
def innie_path(self):
|
||||||
return self.payload_kexts_path / Path(f"Misc/Innie-v{self.innie_version}.zip")
|
return self.payload_kexts_path / Path(f"Misc/Innie-v{self.innie_version}.zip")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def simplemsr_path(self):
|
def simplemsr_path(self):
|
||||||
return self.payload_kexts_path / Path(f"Misc/SimpleMSR-v{self.simplemsr_version}.zip")
|
return self.payload_kexts_path / Path(f"Misc/SimpleMSR-v{self.simplemsr_version}.zip")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def gpu_wake_path(self):
|
def gpu_wake_path(self):
|
||||||
return self.payload_kexts_path / Path(f"Misc/AMDGPUWakeHandler-v{self.gpu_wake_version}.zip")
|
return self.payload_kexts_path / Path(f"Misc/AMDGPUWakeHandler-v{self.gpu_wake_version}.zip")
|
||||||
@@ -396,11 +396,11 @@ class Constants:
|
|||||||
@property
|
@property
|
||||||
def apple_trackpad_path(self):
|
def apple_trackpad_path(self):
|
||||||
return self.payload_kexts_path / Path(f"Misc/AppleUSBTrackpad-v{self.apple_trackpad}.zip")
|
return self.payload_kexts_path / Path(f"Misc/AppleUSBTrackpad-v{self.apple_trackpad}.zip")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def apple_isight_path(self):
|
def apple_isight_path(self):
|
||||||
return self.payload_kexts_path / Path(f"Misc/LegacyUSBVideoSupport-v{self.apple_isight_version}.zip")
|
return self.payload_kexts_path / Path(f"Misc/LegacyUSBVideoSupport-v{self.apple_isight_version}.zip")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def apple_raid_path(self):
|
def apple_raid_path(self):
|
||||||
return self.payload_kexts_path / Path(f"Misc/AppleRAIDCard-v{self.apple_raid_version}.zip")
|
return self.payload_kexts_path / Path(f"Misc/AppleRAIDCard-v{self.apple_raid_version}.zip")
|
||||||
@@ -518,7 +518,7 @@ class Constants:
|
|||||||
@property
|
@property
|
||||||
def ocvalidate_path(self):
|
def ocvalidate_path(self):
|
||||||
return self.payload_path / Path(f"Tools/ocvalidate-{self.opencore_version}")
|
return self.payload_path / Path(f"Tools/ocvalidate-{self.opencore_version}")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def oclp_helper_path(self):
|
def oclp_helper_path(self):
|
||||||
return self.payload_path / Path("Tools/OCLP-Helper")
|
return self.payload_path / Path("Tools/OCLP-Helper")
|
||||||
@@ -551,7 +551,7 @@ class Constants:
|
|||||||
@property
|
@property
|
||||||
def installer_pkg_path(self):
|
def installer_pkg_path(self):
|
||||||
return self.payload_path / Path("AutoPkg-Assets.pkg")
|
return self.payload_path / Path("AutoPkg-Assets.pkg")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def installer_pkg_zip_path(self):
|
def installer_pkg_zip_path(self):
|
||||||
return self.payload_path / Path("AutoPkg-Assets.pkg.zip")
|
return self.payload_path / Path("AutoPkg-Assets.pkg.zip")
|
||||||
@@ -560,7 +560,7 @@ class Constants:
|
|||||||
@property
|
@property
|
||||||
def payload_local_binaries_root_path(self):
|
def payload_local_binaries_root_path(self):
|
||||||
return self.payload_path / Path("Universal-Binaries")
|
return self.payload_path / Path("Universal-Binaries")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def payload_local_binaries_root_path_zip(self):
|
def payload_local_binaries_root_path_zip(self):
|
||||||
return self.payload_path / Path("Universal-Binaries.zip")
|
return self.payload_path / Path("Universal-Binaries.zip")
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ class generate_defaults:
|
|||||||
# If either variables are missing, we assume something is wrong with the spoofed variables and reset
|
# If either variables are missing, we assume something is wrong with the spoofed variables and reset
|
||||||
settings.custom_serial_number = ""
|
settings.custom_serial_number = ""
|
||||||
settings.custom_board_serial_number = ""
|
settings.custom_board_serial_number = ""
|
||||||
|
|
||||||
if settings.computer.usb_controllers:
|
if settings.computer.usb_controllers:
|
||||||
try:
|
try:
|
||||||
if smbios_data.smbios_dictionary[model]["CPU Generation"] < cpu_data.cpu_data.ivy_bridge.value:
|
if smbios_data.smbios_dictionary[model]["CPU Generation"] < cpu_data.cpu_data.ivy_bridge.value:
|
||||||
@@ -48,7 +48,7 @@ class generate_defaults:
|
|||||||
if arg_result not in ["true", "1", "false", "0"]:
|
if arg_result not in ["true", "1", "false", "0"]:
|
||||||
subprocess.run(["defaults", "write", "-g", arg, "-bool", "TRUE"])
|
subprocess.run(["defaults", "write", "-g", arg, "-bool", "TRUE"])
|
||||||
|
|
||||||
if settings.computer.gpus:
|
if settings.computer.gpus:
|
||||||
for gpu in settings.computer.gpus:
|
for gpu in settings.computer.gpus:
|
||||||
if gpu.arch == device_probe.NVIDIA.Archs.Kepler:
|
if gpu.arch == device_probe.NVIDIA.Archs.Kepler:
|
||||||
# 12.0 (B7+): Kepler are now unsupported
|
# 12.0 (B7+): Kepler are now unsupported
|
||||||
@@ -67,7 +67,7 @@ class generate_defaults:
|
|||||||
settings.sip_status = False
|
settings.sip_status = False
|
||||||
settings.allow_fv_root = True # Allow FileVault on broken seal
|
settings.allow_fv_root = True # Allow FileVault on broken seal
|
||||||
|
|
||||||
if settings.computer.gpus:
|
if settings.computer.gpus:
|
||||||
for gpu in settings.computer.gpus:
|
for gpu in settings.computer.gpus:
|
||||||
if gpu.arch in [
|
if gpu.arch in [
|
||||||
device_probe.AMD.Archs.Legacy_GCN_7000,
|
device_probe.AMD.Archs.Legacy_GCN_7000,
|
||||||
@@ -110,7 +110,7 @@ class generate_defaults:
|
|||||||
settings.secure_status = False # Modified root volume
|
settings.secure_status = False # Modified root volume
|
||||||
settings.allow_fv_root = True # Allow FileVault on broken seal
|
settings.allow_fv_root = True # Allow FileVault on broken seal
|
||||||
# settings.amfi_status = True # Signed bundles, Don't need to explicitly set currently
|
# settings.amfi_status = True # Signed bundles, Don't need to explicitly set currently
|
||||||
|
|
||||||
if "Book" in model:
|
if "Book" in model:
|
||||||
settings.set_content_caching = False
|
settings.set_content_caching = False
|
||||||
else:
|
else:
|
||||||
@@ -147,7 +147,7 @@ class generate_defaults:
|
|||||||
settings.fu_arguments = None
|
settings.fu_arguments = None
|
||||||
if smbios_data.smbios_dictionary[model]["CPU Generation"] >= cpu_data.cpu_data.skylake.value:
|
if smbios_data.smbios_dictionary[model]["CPU Generation"] >= cpu_data.cpu_data.skylake.value:
|
||||||
# On 2016-2017 MacBook Pros, 15" devices used a stock Samsung SSD with IONVMeController
|
# On 2016-2017 MacBook Pros, 15" devices used a stock Samsung SSD with IONVMeController
|
||||||
# Technically this should be patched based on NVMeFix.kext logic,
|
# Technically this should be patched based on NVMeFix.kext logic,
|
||||||
# however Apple deemed the SSD unsupported for enhanced performance
|
# however Apple deemed the SSD unsupported for enhanced performance
|
||||||
# In addition, some upgraded NVMe drives still have issues with enhanced power management
|
# In addition, some upgraded NVMe drives still have issues with enhanced power management
|
||||||
# Safest to disable by default, allow user to configure afterwards
|
# Safest to disable by default, allow user to configure afterwards
|
||||||
|
|||||||
+14
-14
@@ -223,7 +223,7 @@ class NVIDIAEthernet(EthernetController):
|
|||||||
|
|
||||||
class Chipsets(enum.Enum):
|
class Chipsets(enum.Enum):
|
||||||
nForceEthernet = "nForceEthernet"
|
nForceEthernet = "nForceEthernet"
|
||||||
|
|
||||||
chipset: Chipsets = field(init=False)
|
chipset: Chipsets = field(init=False)
|
||||||
|
|
||||||
def detect_chipset(self):
|
def detect_chipset(self):
|
||||||
@@ -331,7 +331,7 @@ class IntelEthernet(EthernetController):
|
|||||||
AppleIntelI210Ethernet = "AppleIntelI210Ethernet Supported"
|
AppleIntelI210Ethernet = "AppleIntelI210Ethernet Supported"
|
||||||
Intel82574L = "Intel82574L Supported"
|
Intel82574L = "Intel82574L Supported"
|
||||||
Unknown = "Unknown"
|
Unknown = "Unknown"
|
||||||
|
|
||||||
chipset: Chipsets = field(init=False)
|
chipset: Chipsets = field(init=False)
|
||||||
|
|
||||||
def detect_chipset(self):
|
def detect_chipset(self):
|
||||||
@@ -380,7 +380,7 @@ class BroadcomEthernet(EthernetController):
|
|||||||
class Chipsets(enum.Enum):
|
class Chipsets(enum.Enum):
|
||||||
AppleBCM5701Ethernet = "AppleBCM5701Ethernet supported"
|
AppleBCM5701Ethernet = "AppleBCM5701Ethernet supported"
|
||||||
Unknown = "Unknown"
|
Unknown = "Unknown"
|
||||||
|
|
||||||
chipset: Chipsets = field(init=False)
|
chipset: Chipsets = field(init=False)
|
||||||
|
|
||||||
def detect_chipset(self):
|
def detect_chipset(self):
|
||||||
@@ -416,7 +416,7 @@ class Aquantia(EthernetController):
|
|||||||
# pylint: disable=invalid-name
|
# pylint: disable=invalid-name
|
||||||
AppleEthernetAquantiaAqtion = "AppleEthernetAquantiaAqtion supported"
|
AppleEthernetAquantiaAqtion = "AppleEthernetAquantiaAqtion supported"
|
||||||
Unknown = "Unknown"
|
Unknown = "Unknown"
|
||||||
|
|
||||||
chipset: Chipsets = field(init=False)
|
chipset: Chipsets = field(init=False)
|
||||||
|
|
||||||
def detect_chipset(self):
|
def detect_chipset(self):
|
||||||
@@ -432,7 +432,7 @@ class Marvell(EthernetController):
|
|||||||
class Chipsets(enum.Enum):
|
class Chipsets(enum.Enum):
|
||||||
MarvelYukonEthernet = "MarvelYukonEthernet supported"
|
MarvelYukonEthernet = "MarvelYukonEthernet supported"
|
||||||
Unknown = "Unknown"
|
Unknown = "Unknown"
|
||||||
|
|
||||||
chipset: Chipsets = field(init=False)
|
chipset: Chipsets = field(init=False)
|
||||||
|
|
||||||
def detect_chipset(self):
|
def detect_chipset(self):
|
||||||
@@ -448,7 +448,7 @@ class SysKonnect(EthernetController):
|
|||||||
class Chipsets(enum.Enum):
|
class Chipsets(enum.Enum):
|
||||||
MarvelYukonEthernet = "MarvelYukonEthernet supported"
|
MarvelYukonEthernet = "MarvelYukonEthernet supported"
|
||||||
Unknown = "Unknown"
|
Unknown = "Unknown"
|
||||||
|
|
||||||
chipset: Chipsets = field(init=False)
|
chipset: Chipsets = field(init=False)
|
||||||
|
|
||||||
def detect_chipset(self):
|
def detect_chipset(self):
|
||||||
@@ -556,13 +556,13 @@ class Computer:
|
|||||||
self.wifi = vendor.from_ioregistry(device, anti_spoof=True) # type: ignore
|
self.wifi = vendor.from_ioregistry(device, anti_spoof=True) # type: ignore
|
||||||
break
|
break
|
||||||
ioreg.IOObjectRelease(device)
|
ioreg.IOObjectRelease(device)
|
||||||
|
|
||||||
def ambient_light_sensor_probe(self):
|
def ambient_light_sensor_probe(self):
|
||||||
device = next(ioreg.ioiterator_to_list(ioreg.IOServiceGetMatchingServices(ioreg.kIOMasterPortDefault, ioreg.IOServiceNameMatching("ALS0".encode()), None)[1]), None)
|
device = next(ioreg.ioiterator_to_list(ioreg.IOServiceGetMatchingServices(ioreg.kIOMasterPortDefault, ioreg.IOServiceNameMatching("ALS0".encode()), None)[1]), None)
|
||||||
if device:
|
if device:
|
||||||
self.ambient_light_sensor = True
|
self.ambient_light_sensor = True
|
||||||
ioreg.IOObjectRelease(device)
|
ioreg.IOObjectRelease(device)
|
||||||
|
|
||||||
def sdxc_controller_probe(self):
|
def sdxc_controller_probe(self):
|
||||||
sdxc_controllers = ioreg.ioiterator_to_list(
|
sdxc_controllers = ioreg.ioiterator_to_list(
|
||||||
ioreg.IOServiceGetMatchingServices(
|
ioreg.IOServiceGetMatchingServices(
|
||||||
@@ -618,7 +618,7 @@ class Computer:
|
|||||||
for device in uhci_controllers:
|
for device in uhci_controllers:
|
||||||
self.usb_controllers.append(UHCIController.from_ioregistry(device))
|
self.usb_controllers.append(UHCIController.from_ioregistry(device))
|
||||||
ioreg.IOObjectRelease(device)
|
ioreg.IOObjectRelease(device)
|
||||||
|
|
||||||
def ethernet_probe(self):
|
def ethernet_probe(self):
|
||||||
ethernet_controllers = ioreg.ioiterator_to_list(
|
ethernet_controllers = ioreg.ioiterator_to_list(
|
||||||
ioreg.IOServiceGetMatchingServices(
|
ioreg.IOServiceGetMatchingServices(
|
||||||
@@ -627,7 +627,7 @@ class Computer:
|
|||||||
None,
|
None,
|
||||||
)[1]
|
)[1]
|
||||||
)
|
)
|
||||||
|
|
||||||
for device in ethernet_controllers:
|
for device in ethernet_controllers:
|
||||||
vendor: Type[EthernetController] = PCIDevice.from_ioregistry(device).vendor_detect(inherits=EthernetController) # type: ignore
|
vendor: Type[EthernetController] = PCIDevice.from_ioregistry(device).vendor_detect(inherits=EthernetController) # type: ignore
|
||||||
if vendor:
|
if vendor:
|
||||||
@@ -658,7 +658,7 @@ class Computer:
|
|||||||
for device in sata_controllers:
|
for device in sata_controllers:
|
||||||
self.storage.append(SATAController.from_ioregistry(device))
|
self.storage.append(SATAController.from_ioregistry(device))
|
||||||
ioreg.IOObjectRelease(device)
|
ioreg.IOObjectRelease(device)
|
||||||
|
|
||||||
for device in sas_controllers:
|
for device in sas_controllers:
|
||||||
self.storage.append(SASController.from_ioregistry(device))
|
self.storage.append(SASController.from_ioregistry(device))
|
||||||
ioreg.IOObjectRelease(device)
|
ioreg.IOObjectRelease(device)
|
||||||
@@ -730,7 +730,7 @@ class Computer:
|
|||||||
self.bluetooth_chipset = "BRCM2046 Hub"
|
self.bluetooth_chipset = "BRCM2046 Hub"
|
||||||
elif "Bluetooth" in usb_data:
|
elif "Bluetooth" in usb_data:
|
||||||
self.bluetooth_chipset = "Generic"
|
self.bluetooth_chipset = "Generic"
|
||||||
|
|
||||||
def sata_disk_probe(self):
|
def sata_disk_probe(self):
|
||||||
# Get all SATA Controllers/Disks from 'system_profiler SPSerialATADataType'
|
# Get all SATA Controllers/Disks from 'system_profiler SPSerialATADataType'
|
||||||
# Determine whether SATA SSD is present and Apple-made
|
# Determine whether SATA SSD is present and Apple-made
|
||||||
@@ -748,11 +748,11 @@ class Computer:
|
|||||||
# Bail out of loop as we only need to know if there are any third-party SSDs present
|
# Bail out of loop as we only need to know if there are any third-party SSDs present
|
||||||
break
|
break
|
||||||
except KeyError:
|
except KeyError:
|
||||||
# Notes:
|
# Notes:
|
||||||
# - SATA Optical Disk Drives don't report 'spsata_medium_type'
|
# - SATA Optical Disk Drives don't report 'spsata_medium_type'
|
||||||
# - 'spsata_physical_interconnect' was not introduced till 10.9
|
# - 'spsata_physical_interconnect' was not introduced till 10.9
|
||||||
continue
|
continue
|
||||||
|
|
||||||
def oclp_sys_patch_probe(self):
|
def oclp_sys_patch_probe(self):
|
||||||
path = Path("/System/Library/CoreServices/OpenCore-Legacy-Patcher.plist")
|
path = Path("/System/Library/CoreServices/OpenCore-Legacy-Patcher.plist")
|
||||||
if path.exists():
|
if path.exists():
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ class global_settings:
|
|||||||
self.global_settings_plist = f"{self.global_settings_folder}/{self.file_name}"
|
self.global_settings_plist = f"{self.global_settings_folder}/{self.file_name}"
|
||||||
self.generate_settings_file()
|
self.generate_settings_file()
|
||||||
self.convert_defaults_to_global_settings()
|
self.convert_defaults_to_global_settings()
|
||||||
|
|
||||||
def generate_settings_file(self):
|
def generate_settings_file(self):
|
||||||
if Path(self.global_settings_plist).exists():
|
if Path(self.global_settings_plist).exists():
|
||||||
return
|
return
|
||||||
@@ -25,7 +25,7 @@ class global_settings:
|
|||||||
if property_name in plist:
|
if property_name in plist:
|
||||||
return plist[property_name]
|
return plist[property_name]
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def write_property(self, property_name, property_value):
|
def write_property(self, property_name, property_value):
|
||||||
plist = plistlib.load(Path(self.global_settings_plist).open("rb"))
|
plist = plistlib.load(Path(self.global_settings_plist).open("rb"))
|
||||||
plist[property_name] = property_value
|
plist[property_name] = property_value
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ class tui_disk_installation:
|
|||||||
selected_disk = supported_disks[disk_identifier]
|
selected_disk = supported_disks[disk_identifier]
|
||||||
|
|
||||||
supported_partitions = {}
|
supported_partitions = {}
|
||||||
|
|
||||||
for partition in selected_disk["partitions"]:
|
for partition in selected_disk["partitions"]:
|
||||||
if selected_disk["partitions"][partition]["fs"] not in ("msdos", "EFI"):
|
if selected_disk["partitions"][partition]["fs"] not in ("msdos", "EFI"):
|
||||||
continue
|
continue
|
||||||
@@ -130,7 +130,7 @@ Please build OpenCore first!"""
|
|||||||
response = menu.start()
|
response = menu.start()
|
||||||
|
|
||||||
if response == -1:
|
if response == -1:
|
||||||
return
|
return
|
||||||
self.install_opencore(f"{disk_identifier}s{response}")
|
self.install_opencore(f"{disk_identifier}s{response}")
|
||||||
|
|
||||||
def install_opencore(self, full_disk_identifier):
|
def install_opencore(self, full_disk_identifier):
|
||||||
@@ -147,7 +147,7 @@ Please build OpenCore first!"""
|
|||||||
):
|
):
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# TODO: Apple Script fails in Yosemite(?) and older
|
# TODO: Apple Script fails in Yosemite(?) and older
|
||||||
args = [
|
args = [
|
||||||
"osascript",
|
"osascript",
|
||||||
@@ -241,7 +241,7 @@ Please build OpenCore first!"""
|
|||||||
else:
|
else:
|
||||||
print("- Adding Internal Drive icon")
|
print("- Adding Internal Drive icon")
|
||||||
shutil.copy(self.constants.icon_path_internal, mount_path)
|
shutil.copy(self.constants.icon_path_internal, mount_path)
|
||||||
|
|
||||||
print("- Cleaning install location")
|
print("- Cleaning install location")
|
||||||
if not self.constants.recovery_status:
|
if not self.constants.recovery_status:
|
||||||
print("- Unmounting EFI partition")
|
print("- Unmounting EFI partition")
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ def list_downloadable_macOS_installers(download_path, catalog):
|
|||||||
link = "https://swscan.apple.com/content/catalogs/others/index-12beta-12-10.16-10.15-10.14-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog"
|
link = "https://swscan.apple.com/content/catalogs/others/index-12beta-12-10.16-10.15-10.14-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog"
|
||||||
else:
|
else:
|
||||||
link = "https://swscan.apple.com/content/catalogs/others/index-12customerseed-12-10.16-10.15-10.14-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog"
|
link = "https://swscan.apple.com/content/catalogs/others/index-12customerseed-12-10.16-10.15-10.14-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog"
|
||||||
|
|
||||||
if utilities.verify_network_connection(link) is True:
|
if utilities.verify_network_connection(link) is True:
|
||||||
try:
|
try:
|
||||||
catalog_plist = plistlib.loads(requests.get(link).content)
|
catalog_plist = plistlib.loads(requests.get(link).content)
|
||||||
@@ -287,7 +287,7 @@ def select_disk_to_format():
|
|||||||
|
|
||||||
if response == -1:
|
if response == -1:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -25,10 +25,10 @@ class reroute_payloads:
|
|||||||
self.unmount_active_dmgs()
|
self.unmount_active_dmgs()
|
||||||
output = subprocess.run(
|
output = subprocess.run(
|
||||||
[
|
[
|
||||||
"hdiutil", "attach", "-noverify", f"{self.constants.payload_path}.dmg",
|
"hdiutil", "attach", "-noverify", f"{self.constants.payload_path}.dmg",
|
||||||
"-mountpoint", Path(self.temp_dir.name / Path("payloads")),
|
"-mountpoint", Path(self.temp_dir.name / Path("payloads")),
|
||||||
"-nobrowse",
|
"-nobrowse",
|
||||||
"-shadow", Path(self.temp_dir.name / Path("payloads_overlay")),
|
"-shadow", Path(self.temp_dir.name / Path("payloads_overlay")),
|
||||||
"-passphrase", "password"
|
"-passphrase", "password"
|
||||||
],
|
],
|
||||||
stdout=subprocess.PIPE, stderr=subprocess.STDOUT
|
stdout=subprocess.PIPE, stderr=subprocess.STDOUT
|
||||||
@@ -46,7 +46,7 @@ class reroute_payloads:
|
|||||||
def unmount_active_dmgs(self, unmount_all_active=True):
|
def unmount_active_dmgs(self, unmount_all_active=True):
|
||||||
# Find all DMGs that are mounted, and forcefully unmount them
|
# Find all DMGs that are mounted, and forcefully unmount them
|
||||||
# If our disk image was previously mounted, we need to unmount it to use again
|
# If our disk image was previously mounted, we need to unmount it to use again
|
||||||
# This can happen if we crash during a previous scession, however 'atexit' class should hopefully avoid this
|
# This can happen if we crash during a previous scession, however 'atexit' class should hopefully avoid this
|
||||||
dmg_info = subprocess.run(["hdiutil", "info", "-plist"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
dmg_info = subprocess.run(["hdiutil", "info", "-plist"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||||
dmg_info = plistlib.loads(dmg_info.stdout)
|
dmg_info = plistlib.loads(dmg_info.stdout)
|
||||||
|
|
||||||
@@ -58,12 +58,12 @@ class reroute_payloads:
|
|||||||
if self.temp_dir.name in image["shadow-path"]:
|
if self.temp_dir.name in image["shadow-path"]:
|
||||||
print("- Unmounting personal payloads.dmg")
|
print("- Unmounting personal payloads.dmg")
|
||||||
subprocess.run(
|
subprocess.run(
|
||||||
["hdiutil", "detach", image["system-entities"][0]["dev-entry"], "-force"],
|
["hdiutil", "detach", image["system-entities"][0]["dev-entry"], "-force"],
|
||||||
stdout=subprocess.PIPE, stderr=subprocess.STDOUT
|
stdout=subprocess.PIPE, stderr=subprocess.STDOUT
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
print(f"- Unmounting payloads.dmg at: {image['system-entities'][0]['dev-entry']}")
|
print(f"- Unmounting payloads.dmg at: {image['system-entities'][0]['dev-entry']}")
|
||||||
subprocess.run(
|
subprocess.run(
|
||||||
["hdiutil", "detach", image["system-entities"][0]["dev-entry"], "-force"],
|
["hdiutil", "detach", image["system-entities"][0]["dev-entry"], "-force"],
|
||||||
stdout=subprocess.PIPE, stderr=subprocess.STDOUT
|
stdout=subprocess.PIPE, stderr=subprocess.STDOUT
|
||||||
)
|
)
|
||||||
+2
-2
@@ -113,7 +113,7 @@ class Run:
|
|||||||
stderr = comm.get("stderr", False)
|
stderr = comm.get("stderr", False)
|
||||||
mess = comm.get("message", None)
|
mess = comm.get("message", None)
|
||||||
show = comm.get("show", False)
|
show = comm.get("show", False)
|
||||||
|
|
||||||
if not mess == None:
|
if not mess == None:
|
||||||
print(mess)
|
print(mess)
|
||||||
|
|
||||||
@@ -129,7 +129,7 @@ class Run:
|
|||||||
args.insert(0, out[0].replace("\n", "")) # add to start of list
|
args.insert(0, out[0].replace("\n", "")) # add to start of list
|
||||||
elif type(args) is str:
|
elif type(args) is str:
|
||||||
args = out[0].replace("\n", "") + " " + args # add to start of string
|
args = out[0].replace("\n", "") + " " + args # add to start of string
|
||||||
|
|
||||||
if show:
|
if show:
|
||||||
print(" ".join(args))
|
print(" ".join(args))
|
||||||
|
|
||||||
|
|||||||
+12
-12
@@ -51,7 +51,7 @@ class PatchSysVolume:
|
|||||||
hardware_details = sys_patch_detect.detect_root_patch(self.computer.real_model, self.constants).detect_patch_set()
|
hardware_details = sys_patch_detect.detect_root_patch(self.computer.real_model, self.constants).detect_patch_set()
|
||||||
self.hardware_details = hardware_details
|
self.hardware_details = hardware_details
|
||||||
self.init_pathing(custom_root_mount_path=None, custom_data_mount_path=None)
|
self.init_pathing(custom_root_mount_path=None, custom_data_mount_path=None)
|
||||||
|
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
# Ensures that each time we're patching, we're using a clean repository
|
# Ensures that each time we're patching, we're using a clean repository
|
||||||
if Path(self.constants.payload_local_binaries_root_path).exists():
|
if Path(self.constants.payload_local_binaries_root_path).exists():
|
||||||
@@ -70,7 +70,7 @@ class PatchSysVolume:
|
|||||||
self.mount_location_data = ""
|
self.mount_location_data = ""
|
||||||
self.mount_extensions = f"{self.mount_location}/System/Library/Extensions"
|
self.mount_extensions = f"{self.mount_location}/System/Library/Extensions"
|
||||||
self.mount_application_support = f"{self.mount_location_data}/Library/Application Support"
|
self.mount_application_support = f"{self.mount_location_data}/Library/Application Support"
|
||||||
|
|
||||||
|
|
||||||
def mount_root_vol(self):
|
def mount_root_vol(self):
|
||||||
# Returns boolean if Root Volume is available
|
# Returns boolean if Root Volume is available
|
||||||
@@ -120,7 +120,7 @@ class PatchSysVolume:
|
|||||||
args = ["kmutil", "install", "--volume-root", self.mount_location, "--update-all"]
|
args = ["kmutil", "install", "--volume-root", self.mount_location, "--update-all"]
|
||||||
|
|
||||||
if self.needs_kmutil_exemptions is True:
|
if self.needs_kmutil_exemptions is True:
|
||||||
# When installing to '/Library/Extensions', following args skip kext consent
|
# When installing to '/Library/Extensions', following args skip kext consent
|
||||||
# prompt in System Preferences when SIP's disabled
|
# prompt in System Preferences when SIP's disabled
|
||||||
print(" (You will get a prompt by System Preferences, ignore for now)")
|
print(" (You will get a prompt by System Preferences, ignore for now)")
|
||||||
args.append("--no-authentication")
|
args.append("--no-authentication")
|
||||||
@@ -194,7 +194,7 @@ class PatchSysVolume:
|
|||||||
else:
|
else:
|
||||||
print("- Creating SkylightPlugins folder")
|
print("- Creating SkylightPlugins folder")
|
||||||
utilities.process_status(utilities.elevated(["mkdir", "-p", f"{self.mount_application_support}/SkyLightPlugins/"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT))
|
utilities.process_status(utilities.elevated(["mkdir", "-p", f"{self.mount_application_support}/SkyLightPlugins/"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT))
|
||||||
|
|
||||||
def delete_nonmetal_enforcement(self):
|
def delete_nonmetal_enforcement(self):
|
||||||
for arg in ["useMetal", "useIOP"]:
|
for arg in ["useMetal", "useIOP"]:
|
||||||
result = subprocess.run(["defaults", "read", "/Library/Preferences/com.apple.CoreDisplay", arg], stdout=subprocess.PIPE).stdout.decode("utf-8").strip()
|
result = subprocess.run(["defaults", "read", "/Library/Preferences/com.apple.CoreDisplay", arg], stdout=subprocess.PIPE).stdout.decode("utf-8").strip()
|
||||||
@@ -211,7 +211,7 @@ class PatchSysVolume:
|
|||||||
if Path(destination_path_file).exists():
|
if Path(destination_path_file).exists():
|
||||||
utilities.process_status(utilities.elevated(["rm", destination_path_file], stdout=subprocess.PIPE, stderr=subprocess.STDOUT))
|
utilities.process_status(utilities.elevated(["rm", destination_path_file], stdout=subprocess.PIPE, stderr=subprocess.STDOUT))
|
||||||
utilities.process_status(utilities.elevated(["cp", f"{self.constants.payload_path}/{file_name}", destination_path], stdout=subprocess.PIPE, stderr=subprocess.STDOUT))
|
utilities.process_status(utilities.elevated(["cp", f"{self.constants.payload_path}/{file_name}", destination_path], stdout=subprocess.PIPE, stderr=subprocess.STDOUT))
|
||||||
|
|
||||||
def patch_root_vol(self):
|
def patch_root_vol(self):
|
||||||
print(f"- Running patches for {self.model}")
|
print(f"- Running patches for {self.model}")
|
||||||
if self.patch_set_dictionary != {}:
|
if self.patch_set_dictionary != {}:
|
||||||
@@ -219,11 +219,11 @@ class PatchSysVolume:
|
|||||||
else:
|
else:
|
||||||
self.execute_patchset(sys_patch_detect.detect_root_patch(self.computer.real_model, self.constants).generate_patchset(self.hardware_details))
|
self.execute_patchset(sys_patch_detect.detect_root_patch(self.computer.real_model, self.constants).generate_patchset(self.hardware_details))
|
||||||
|
|
||||||
if self.constants.wxpython_variant is True and self.constants.detected_os >= os_data.os_data.big_sur:
|
if self.constants.wxpython_variant is True and self.constants.detected_os >= os_data.os_data.big_sur:
|
||||||
sys_patch_auto.AutomaticSysPatch.install_auto_patcher_launch_agent(self.constants)
|
sys_patch_auto.AutomaticSysPatch.install_auto_patcher_launch_agent(self.constants)
|
||||||
|
|
||||||
self.rebuild_snapshot()
|
self.rebuild_snapshot()
|
||||||
|
|
||||||
def execute_patchset(self, required_patches):
|
def execute_patchset(self, required_patches):
|
||||||
source_files_path = str(self.constants.payload_local_binaries_root_path)
|
source_files_path = str(self.constants.payload_local_binaries_root_path)
|
||||||
self.preflight_checks(required_patches, source_files_path)
|
self.preflight_checks(required_patches, source_files_path)
|
||||||
@@ -235,7 +235,7 @@ class PatchSysVolume:
|
|||||||
for remove_patch_file in required_patches[patch]["Remove"][remove_patch_directory]:
|
for remove_patch_file in required_patches[patch]["Remove"][remove_patch_directory]:
|
||||||
destination_folder_path = str(self.mount_location) + remove_patch_directory
|
destination_folder_path = str(self.mount_location) + remove_patch_directory
|
||||||
self.remove_file(destination_folder_path, remove_patch_file)
|
self.remove_file(destination_folder_path, remove_patch_file)
|
||||||
|
|
||||||
|
|
||||||
for method_install in ["Install", "Install Non-Root"]:
|
for method_install in ["Install", "Install Non-Root"]:
|
||||||
if method_install in required_patches[patch]:
|
if method_install in required_patches[patch]:
|
||||||
@@ -270,12 +270,12 @@ class PatchSysVolume:
|
|||||||
self.clean_skylight_plugins()
|
self.clean_skylight_plugins()
|
||||||
# Make sure non-Metal Enforcement preferences are not present
|
# Make sure non-Metal Enforcement preferences are not present
|
||||||
self.delete_nonmetal_enforcement()
|
self.delete_nonmetal_enforcement()
|
||||||
|
|
||||||
# Make sure SNB kexts are compatible with the host
|
# Make sure SNB kexts are compatible with the host
|
||||||
if "Intel Sandy Bridge" in required_patches:
|
if "Intel Sandy Bridge" in required_patches:
|
||||||
sys_patch_helpers.sys_patch_helpers(self.constants).snb_board_id_patch(source_files_path)
|
sys_patch_helpers.sys_patch_helpers(self.constants).snb_board_id_patch(source_files_path)
|
||||||
|
|
||||||
for patch in required_patches:
|
for patch in required_patches:
|
||||||
# Check if all files are present
|
# Check if all files are present
|
||||||
for method_type in ["Install", "Install Non-Root"]:
|
for method_type in ["Install", "Install Non-Root"]:
|
||||||
if method_type in required_patches[patch]:
|
if method_type in required_patches[patch]:
|
||||||
@@ -380,7 +380,7 @@ class PatchSysVolume:
|
|||||||
print("- Starting Patch Process")
|
print("- Starting Patch Process")
|
||||||
print(f"- Determining Required Patch set for Darwin {self.constants.detected_os}")
|
print(f"- Determining Required Patch set for Darwin {self.constants.detected_os}")
|
||||||
self.patch_set_dictionary = sys_patch_detect.detect_root_patch(self.computer.real_model, self.constants).generate_patchset(self.hardware_details)
|
self.patch_set_dictionary = sys_patch_detect.detect_root_patch(self.computer.real_model, self.constants).generate_patchset(self.hardware_details)
|
||||||
|
|
||||||
if self.patch_set_dictionary == {}:
|
if self.patch_set_dictionary == {}:
|
||||||
change_menu = None
|
change_menu = None
|
||||||
print("- No Root Patches required for your machine!")
|
print("- No Root Patches required for your machine!")
|
||||||
|
|||||||
+11
-11
@@ -44,7 +44,7 @@ class AutomaticSysPatch:
|
|||||||
warning_str = ""
|
warning_str = ""
|
||||||
if utilities.verify_network_connection("https://api.github.com/repos/dortania/OpenCore-Legacy-Patcher/releases/latest") is False:
|
if utilities.verify_network_connection("https://api.github.com/repos/dortania/OpenCore-Legacy-Patcher/releases/latest") is False:
|
||||||
warning_str = f"""\n\nWARNING: We're unable to verify whether there are any new releases of OpenCore Legacy Patcher on Github. Be aware that you may be using an outdated version for this OS. If you're unsure, verify on Github that OpenCore Legacy Patcher {settings.patcher_version} is the latest official release"""
|
warning_str = f"""\n\nWARNING: We're unable to verify whether there are any new releases of OpenCore Legacy Patcher on Github. Be aware that you may be using an outdated version for this OS. If you're unsure, verify on Github that OpenCore Legacy Patcher {settings.patcher_version} is the latest official release"""
|
||||||
|
|
||||||
args = [
|
args = [
|
||||||
"osascript",
|
"osascript",
|
||||||
"-e",
|
"-e",
|
||||||
@@ -52,7 +52,7 @@ class AutomaticSysPatch:
|
|||||||
f'with icon POSIX file "{settings.app_icon_path}"',
|
f'with icon POSIX file "{settings.app_icon_path}"',
|
||||||
]
|
]
|
||||||
output = subprocess.run(
|
output = subprocess.run(
|
||||||
args,
|
args,
|
||||||
stdout=subprocess.PIPE,
|
stdout=subprocess.PIPE,
|
||||||
stderr=subprocess.STDOUT
|
stderr=subprocess.STDOUT
|
||||||
)
|
)
|
||||||
@@ -66,7 +66,7 @@ class AutomaticSysPatch:
|
|||||||
" without altering line endings"
|
" without altering line endings"
|
||||||
]
|
]
|
||||||
subprocess.run(
|
subprocess.run(
|
||||||
args,
|
args,
|
||||||
stdout=subprocess.PIPE,
|
stdout=subprocess.PIPE,
|
||||||
stderr=subprocess.STDOUT
|
stderr=subprocess.STDOUT
|
||||||
)
|
)
|
||||||
@@ -85,7 +85,7 @@ class AutomaticSysPatch:
|
|||||||
f'with icon POSIX file "{settings.app_icon_path}"',
|
f'with icon POSIX file "{settings.app_icon_path}"',
|
||||||
]
|
]
|
||||||
output = subprocess.run(
|
output = subprocess.run(
|
||||||
args,
|
args,
|
||||||
stdout=subprocess.PIPE,
|
stdout=subprocess.PIPE,
|
||||||
stderr=subprocess.STDOUT
|
stderr=subprocess.STDOUT
|
||||||
)
|
)
|
||||||
@@ -101,10 +101,10 @@ class AutomaticSysPatch:
|
|||||||
AutomaticSysPatch.determine_if_boot_matches(settings)
|
AutomaticSysPatch.determine_if_boot_matches(settings)
|
||||||
else:
|
else:
|
||||||
print("- Auto Patch option is not supported on TUI, please use GUI")
|
print("- Auto Patch option is not supported on TUI, please use GUI")
|
||||||
|
|
||||||
def determine_if_boot_matches(settings):
|
def determine_if_boot_matches(settings):
|
||||||
# Goal of this function is to determine whether the user
|
# Goal of this function is to determine whether the user
|
||||||
# is using a USB drive to Boot OpenCore but macOS does not
|
# is using a USB drive to Boot OpenCore but macOS does not
|
||||||
# reside on the same drive as the USB.
|
# reside on the same drive as the USB.
|
||||||
|
|
||||||
# If we determine them to be mismatched, notify the user
|
# If we determine them to be mismatched, notify the user
|
||||||
@@ -121,7 +121,7 @@ class AutomaticSysPatch:
|
|||||||
if settings.booted_oc_disk:
|
if settings.booted_oc_disk:
|
||||||
root_disk = settings.booted_oc_disk.strip("disk")
|
root_disk = settings.booted_oc_disk.strip("disk")
|
||||||
root_disk = "disk" + root_disk.split("s")[0]
|
root_disk = "disk" + root_disk.split("s")[0]
|
||||||
|
|
||||||
print(f" - Boot Drive: {settings.booted_oc_disk} ({root_disk})")
|
print(f" - Boot Drive: {settings.booted_oc_disk} ({root_disk})")
|
||||||
macOS_disk = utilities.get_disk_path()
|
macOS_disk = utilities.get_disk_path()
|
||||||
print(f" - macOS Drive: {macOS_disk}")
|
print(f" - macOS Drive: {macOS_disk}")
|
||||||
@@ -134,7 +134,7 @@ class AutomaticSysPatch:
|
|||||||
print(f"- Boot drive matches macOS drive ({disk})")
|
print(f"- Boot drive matches macOS drive ({disk})")
|
||||||
disk_match = True
|
disk_match = True
|
||||||
break
|
break
|
||||||
|
|
||||||
if disk_match is False:
|
if disk_match is False:
|
||||||
# Check if OpenCore is on a USB drive
|
# Check if OpenCore is on a USB drive
|
||||||
print("- Boot Drive does not match macOS drive, checking if OpenCore is on a USB drive")
|
print("- Boot Drive does not match macOS drive, checking if OpenCore is on a USB drive")
|
||||||
@@ -151,7 +151,7 @@ class AutomaticSysPatch:
|
|||||||
f'with icon POSIX file "{settings.app_icon_path}"',
|
f'with icon POSIX file "{settings.app_icon_path}"',
|
||||||
]
|
]
|
||||||
output = subprocess.run(
|
output = subprocess.run(
|
||||||
args,
|
args,
|
||||||
stdout=subprocess.PIPE,
|
stdout=subprocess.PIPE,
|
||||||
stderr=subprocess.STDOUT
|
stderr=subprocess.STDOUT
|
||||||
)
|
)
|
||||||
@@ -166,7 +166,7 @@ class AutomaticSysPatch:
|
|||||||
|
|
||||||
else:
|
else:
|
||||||
print("- Failed to find disk OpenCore launched from")
|
print("- Failed to find disk OpenCore launched from")
|
||||||
|
|
||||||
|
|
||||||
def install_auto_patcher_launch_agent(settings):
|
def install_auto_patcher_launch_agent(settings):
|
||||||
# Installs the following:
|
# Installs the following:
|
||||||
@@ -177,7 +177,7 @@ class AutomaticSysPatch:
|
|||||||
# As we'd simply be duplicating ourselves
|
# As we'd simply be duplicating ourselves
|
||||||
if not settings.launcher_binary.startswith("/Library/Application Support/Dortania/"):
|
if not settings.launcher_binary.startswith("/Library/Application Support/Dortania/"):
|
||||||
print("- Installing Auto Patcher Launch Agent")
|
print("- Installing Auto Patcher Launch Agent")
|
||||||
|
|
||||||
if not Path("Library/Application Support/Dortania").exists():
|
if not Path("Library/Application Support/Dortania").exists():
|
||||||
print("- Creating /Library/Application Support/Dortania/")
|
print("- Creating /Library/Application Support/Dortania/")
|
||||||
utilities.process_status(utilities.elevated(["mkdir", "-p", "/Library/Application Support/Dortania"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT))
|
utilities.process_status(utilities.elevated(["mkdir", "-p", "/Library/Application Support/Dortania"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT))
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ class detect_root_patch:
|
|||||||
# Patch Requirements
|
# Patch Requirements
|
||||||
self.amfi_must_disable = False
|
self.amfi_must_disable = False
|
||||||
self.supports_metal = False
|
self.supports_metal = False
|
||||||
self.needs_nv_web_checks = False
|
self.needs_nv_web_checks = False
|
||||||
|
|
||||||
# Validation Checks
|
# Validation Checks
|
||||||
self.sip_enabled = False
|
self.sip_enabled = False
|
||||||
@@ -45,7 +45,7 @@ class detect_root_patch:
|
|||||||
self.missing_nv_web_nvram = False
|
self.missing_nv_web_nvram = False
|
||||||
self.missing_nv_web_opengl = False
|
self.missing_nv_web_opengl = False
|
||||||
self.missing_nv_compat = False
|
self.missing_nv_compat = False
|
||||||
|
|
||||||
def detect_gpus(self):
|
def detect_gpus(self):
|
||||||
gpus = self.constants.computer.gpus
|
gpus = self.constants.computer.gpus
|
||||||
non_metal_os = os_data.os_data.catalina
|
non_metal_os = os_data.os_data.catalina
|
||||||
@@ -71,7 +71,7 @@ class detect_root_patch:
|
|||||||
device_probe.NVIDIA.Archs.Tesla,
|
device_probe.NVIDIA.Archs.Tesla,
|
||||||
device_probe.NVIDIA.Archs.Fermi,
|
device_probe.NVIDIA.Archs.Fermi,
|
||||||
device_probe.NVIDIA.Archs.Kepler,
|
device_probe.NVIDIA.Archs.Kepler,
|
||||||
device_probe.NVIDIA.Archs.Maxwell,
|
device_probe.NVIDIA.Archs.Maxwell,
|
||||||
device_probe.NVIDIA.Archs.Pascal,
|
device_probe.NVIDIA.Archs.Pascal,
|
||||||
]:
|
]:
|
||||||
if self.constants.detected_os > os_data.os_data.mojave:
|
if self.constants.detected_os > os_data.os_data.mojave:
|
||||||
@@ -110,7 +110,7 @@ class detect_root_patch:
|
|||||||
self.iron_gpu = False
|
self.iron_gpu = False
|
||||||
self.sandy_gpu = False
|
self.sandy_gpu = False
|
||||||
self.legacy_keyboard_backlight = False
|
self.legacy_keyboard_backlight = False
|
||||||
|
|
||||||
def check_dgpu_status(self):
|
def check_dgpu_status(self):
|
||||||
dgpu = self.constants.computer.dgpu
|
dgpu = self.constants.computer.dgpu
|
||||||
if dgpu:
|
if dgpu:
|
||||||
@@ -129,7 +129,7 @@ class detect_root_patch:
|
|||||||
if igpu and not dgpu:
|
if igpu and not dgpu:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def check_legacy_keyboard_backlight(self):
|
def check_legacy_keyboard_backlight(self):
|
||||||
# iMac12,x+ have an 'ACPI0008' device, but it's not a keyboard backlight
|
# iMac12,x+ have an 'ACPI0008' device, but it's not a keyboard backlight
|
||||||
# Best to assume laptops will have a keyboard backlight
|
# Best to assume laptops will have a keyboard backlight
|
||||||
@@ -171,10 +171,10 @@ class detect_root_patch:
|
|||||||
if gpu.force_compatible is True:
|
if gpu.force_compatible is True:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def check_whatevergreen(self):
|
def check_whatevergreen(self):
|
||||||
return utilities.check_kext_loaded("WhateverGreen", self.constants.detected_os)
|
return utilities.check_kext_loaded("WhateverGreen", self.constants.detected_os)
|
||||||
|
|
||||||
def check_sip(self):
|
def check_sip(self):
|
||||||
if self.constants.detected_os > os_data.os_data.catalina:
|
if self.constants.detected_os > os_data.os_data.catalina:
|
||||||
if self.nvidia_web is True:
|
if self.nvidia_web is True:
|
||||||
@@ -227,7 +227,7 @@ class detect_root_patch:
|
|||||||
self.legacy_gmux = True
|
self.legacy_gmux = True
|
||||||
else:
|
else:
|
||||||
self.legacy_gmux = True
|
self.legacy_gmux = True
|
||||||
|
|
||||||
self.root_patch_dict = {
|
self.root_patch_dict = {
|
||||||
"Graphics: Nvidia Tesla": self.nvidia_tesla,
|
"Graphics: Nvidia Tesla": self.nvidia_tesla,
|
||||||
"Graphics: Nvidia Kepler": self.kepler_gpu,
|
"Graphics: Nvidia Kepler": self.kepler_gpu,
|
||||||
@@ -256,16 +256,16 @@ class detect_root_patch:
|
|||||||
"Validation: nvda_drv(_vrl) variable missing": self.missing_nv_web_nvram if self.nvidia_web is True else False,
|
"Validation: nvda_drv(_vrl) variable missing": self.missing_nv_web_nvram if self.nvidia_web is True else False,
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return self.root_patch_dict
|
return self.root_patch_dict
|
||||||
|
|
||||||
def verify_patch_allowed(self, print_errors=False):
|
def verify_patch_allowed(self, print_errors=False):
|
||||||
sip_dict = self.check_sip()
|
sip_dict = self.check_sip()
|
||||||
sip = sip_dict[0]
|
sip = sip_dict[0]
|
||||||
sip_value = sip_dict[1]
|
sip_value = sip_dict[1]
|
||||||
|
|
||||||
self.sip_enabled, self.sbm_enabled, self.amfi_enabled, self.fv_enabled, self.dosdude_patched = utilities.patching_status(sip, self.constants.detected_os)
|
self.sip_enabled, self.sbm_enabled, self.amfi_enabled, self.fv_enabled, self.dosdude_patched = utilities.patching_status(sip, self.constants.detected_os)
|
||||||
|
|
||||||
if self.nvidia_web is True:
|
if self.nvidia_web is True:
|
||||||
self.missing_nv_web_nvram = not self.check_nv_web_nvram()
|
self.missing_nv_web_nvram = not self.check_nv_web_nvram()
|
||||||
self.missing_nv_web_opengl = not self.check_nv_web_opengl()
|
self.missing_nv_web_opengl = not self.check_nv_web_opengl()
|
||||||
@@ -293,29 +293,29 @@ class detect_root_patch:
|
|||||||
if self.amfi_enabled is True and self.amfi_must_disable is True:
|
if self.amfi_enabled is True and self.amfi_must_disable is True:
|
||||||
print("\nCannot patch! Please disable AMFI.")
|
print("\nCannot patch! Please disable AMFI.")
|
||||||
print("For Hackintoshes, please add amfi_get_out_of_my_way=1 to boot-args")
|
print("For Hackintoshes, please add amfi_get_out_of_my_way=1 to boot-args")
|
||||||
|
|
||||||
if self.dosdude_patched is True:
|
if self.dosdude_patched is True:
|
||||||
print("\nCannot patch! Detected machine has already been patched by another patcher")
|
print("\nCannot patch! Detected machine has already been patched by another patcher")
|
||||||
print("Please ensure your install is either clean or patched with OpenCore Legacy Patcher")
|
print("Please ensure your install is either clean or patched with OpenCore Legacy Patcher")
|
||||||
|
|
||||||
if self.nvidia_web is True:
|
if self.nvidia_web is True:
|
||||||
if self.missing_nv_web_opengl is True:
|
if self.missing_nv_web_opengl is True:
|
||||||
print("\nCannot patch! Force OpenGL property missing")
|
print("\nCannot patch! Force OpenGL property missing")
|
||||||
print("Please ensure ngfxgl=1 is set in boot-args")
|
print("Please ensure ngfxgl=1 is set in boot-args")
|
||||||
|
|
||||||
if self.missing_nv_compat is True:
|
if self.missing_nv_compat is True:
|
||||||
print("\nCannot patch! Force Nvidia compatibility property missing")
|
print("\nCannot patch! Force Nvidia compatibility property missing")
|
||||||
print("Please ensure ngfxcompat=1 is set in boot-args")
|
print("Please ensure ngfxcompat=1 is set in boot-args")
|
||||||
|
|
||||||
if self.missing_nv_web_nvram is True:
|
if self.missing_nv_web_nvram is True:
|
||||||
print("\nCannot patch! nvda_drv(_vrl) variable missing")
|
print("\nCannot patch! nvda_drv(_vrl) variable missing")
|
||||||
print("Please ensure nvda_drv_vrl=1 is set in boot-args")
|
print("Please ensure nvda_drv_vrl=1 is set in boot-args")
|
||||||
|
|
||||||
if self.missing_whatever_green is True:
|
if self.missing_whatever_green is True:
|
||||||
print("\nCannot patch! WhateverGreen.kext missing")
|
print("\nCannot patch! WhateverGreen.kext missing")
|
||||||
print("Please ensure WhateverGreen.kext is installed")
|
print("Please ensure WhateverGreen.kext is installed")
|
||||||
|
|
||||||
|
|
||||||
if any(
|
if any(
|
||||||
[
|
[
|
||||||
# General patch checks
|
# General patch checks
|
||||||
@@ -334,7 +334,7 @@ class detect_root_patch:
|
|||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def generate_patchset(self, hardware_details):
|
def generate_patchset(self, hardware_details):
|
||||||
all_hardware_patchset = sys_patch_dict.SystemPatchDictionary(self.constants.detected_os, self.constants.detected_os_minor, self.constants.legacy_accel_support)
|
all_hardware_patchset = sys_patch_dict.SystemPatchDictionary(self.constants.detected_os, self.constants.detected_os_minor, self.constants.legacy_accel_support)
|
||||||
required_patches = {}
|
required_patches = {}
|
||||||
@@ -406,5 +406,5 @@ class detect_root_patch:
|
|||||||
print(f" - {required_patches[patch_name]['Display Name']}")
|
print(f" - {required_patches[patch_name]['Display Name']}")
|
||||||
else:
|
else:
|
||||||
print(" - No patch sets found for booted model")
|
print(" - No patch sets found for booted model")
|
||||||
|
|
||||||
return required_patches
|
return required_patches
|
||||||
@@ -10,7 +10,7 @@ class grab_patcher_support_pkg:
|
|||||||
|
|
||||||
def __init__(self, constants):
|
def __init__(self, constants):
|
||||||
self.constants = constants
|
self.constants = constants
|
||||||
|
|
||||||
def generate_pkg_link(self):
|
def generate_pkg_link(self):
|
||||||
link = f"{self.constants.url_patcher_support_pkg}{self.constants.patcher_support_pkg_version}/Universal-Binaries.zip"
|
link = f"{self.constants.url_patcher_support_pkg}{self.constants.patcher_support_pkg_version}/Universal-Binaries.zip"
|
||||||
return link
|
return link
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ class sys_patch_helpers:
|
|||||||
|
|
||||||
def __init__(self, constants):
|
def __init__(self, constants):
|
||||||
self.constants = constants
|
self.constants = constants
|
||||||
|
|
||||||
|
|
||||||
def snb_board_id_patch(self, source_files_path):
|
def snb_board_id_patch(self, source_files_path):
|
||||||
# AppleIntelSNBGraphicsFB hard codes the supported Board IDs for Sandy Bridge iGPUs
|
# AppleIntelSNBGraphicsFB hard codes the supported Board IDs for Sandy Bridge iGPUs
|
||||||
@@ -43,7 +43,7 @@ class sys_patch_helpers:
|
|||||||
print(f"- Error: Could not find {path}")
|
print(f"- Error: Could not find {path}")
|
||||||
raise Exception("Failed to find AppleIntelSNBGraphicsFB.kext, cannot patch!!!")
|
raise Exception("Failed to find AppleIntelSNBGraphicsFB.kext, cannot patch!!!")
|
||||||
|
|
||||||
|
|
||||||
def generate_patchset_plist(self, patchset, file_name):
|
def generate_patchset_plist(self, patchset, file_name):
|
||||||
source_path = f"{self.constants.payload_path}"
|
source_path = f"{self.constants.payload_path}"
|
||||||
source_path_file = f"{source_path}/{file_name}"
|
source_path_file = f"{source_path}/{file_name}"
|
||||||
|
|||||||
+12
-12
@@ -198,13 +198,13 @@ def check_metal_support(device_probe, computer):
|
|||||||
for gpu in computer.gpus:
|
for gpu in computer.gpus:
|
||||||
if (
|
if (
|
||||||
(gpu.arch in [
|
(gpu.arch in [
|
||||||
device_probe.NVIDIA.Archs.Tesla,
|
device_probe.NVIDIA.Archs.Tesla,
|
||||||
device_probe.NVIDIA.Archs.Fermi,
|
device_probe.NVIDIA.Archs.Fermi,
|
||||||
device_probe.NVIDIA.Archs.Maxwell,
|
device_probe.NVIDIA.Archs.Maxwell,
|
||||||
device_probe.NVIDIA.Archs.Pascal,
|
device_probe.NVIDIA.Archs.Pascal,
|
||||||
device_probe.AMD.Archs.TeraScale_1,
|
device_probe.AMD.Archs.TeraScale_1,
|
||||||
device_probe.AMD.Archs.TeraScale_2,
|
device_probe.AMD.Archs.TeraScale_2,
|
||||||
device_probe.Intel.Archs.Iron_Lake,
|
device_probe.Intel.Archs.Iron_Lake,
|
||||||
device_probe.Intel.Archs.Sandy_Bridge
|
device_probe.Intel.Archs.Sandy_Bridge
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
@@ -248,7 +248,7 @@ def check_secure_boot_level():
|
|||||||
# - Either x86legacy or T2 without ApECID, returns 1
|
# - Either x86legacy or T2 without ApECID, returns 1
|
||||||
# - Disabled, returns 0
|
# - Disabled, returns 0
|
||||||
# Ref: https://github.com/acidanthera/OpenCorePkg/blob/f7c1a3d483fa2535b6a62c25a4f04017bfeee09a/Library/OcMainLib/OpenCoreUefi.c#L490-L502
|
# Ref: https://github.com/acidanthera/OpenCorePkg/blob/f7c1a3d483fa2535b6a62c25a4f04017bfeee09a/Library/OcMainLib/OpenCoreUefi.c#L490-L502
|
||||||
#
|
#
|
||||||
# Genuine Mac logic:
|
# Genuine Mac logic:
|
||||||
# - On genuine non-T2 Macs, they always return 0
|
# - On genuine non-T2 Macs, they always return 0
|
||||||
# - T2 Macs will return based on their Starup Policy (Full(2), Medium(1), Disabled(0))
|
# - T2 Macs will return based on their Starup Policy (Full(2), Medium(1), Disabled(0))
|
||||||
@@ -446,7 +446,7 @@ def download_file(link, location, is_gui=None, verify_checksum=False):
|
|||||||
if total_file_size > 1024:
|
if total_file_size > 1024:
|
||||||
total_downloaded_string = f" ({round(float(dl / total_file_size * 100), 2)}%)"
|
total_downloaded_string = f" ({round(float(dl / total_file_size * 100), 2)}%)"
|
||||||
print(f"{round(count / 1024 / 1024, 2)}MB Downloaded{file_size_string}{total_downloaded_string}\nAverage Download Speed: {round(dl//(time.perf_counter() - start) / 100000 / 8, 2)} MB/s")
|
print(f"{round(count / 1024 / 1024, 2)}MB Downloaded{file_size_string}{total_downloaded_string}\nAverage Download Speed: {round(dl//(time.perf_counter() - start) / 100000 / 8, 2)} MB/s")
|
||||||
|
|
||||||
if verify_checksum is True:
|
if verify_checksum is True:
|
||||||
# Verify checksum
|
# Verify checksum
|
||||||
# Note that this can be quite taxing on slower Macs
|
# Note that this can be quite taxing on slower Macs
|
||||||
@@ -505,11 +505,11 @@ def find_apfs_physical_volume(device):
|
|||||||
return physical_disks
|
return physical_disks
|
||||||
|
|
||||||
def clean_device_path(device_path: str):
|
def clean_device_path(device_path: str):
|
||||||
# ex:
|
# ex:
|
||||||
# 'PciRoot(0x0)/Pci(0xA,0x0)/Sata(0x0,0x0,0x0)/HD(1,GPT,C0778F23-3765-4C8E-9BFA-D60C839E7D2D,0x28,0x64000)/EFI\OC\OpenCore.efi'
|
# 'PciRoot(0x0)/Pci(0xA,0x0)/Sata(0x0,0x0,0x0)/HD(1,GPT,C0778F23-3765-4C8E-9BFA-D60C839E7D2D,0x28,0x64000)/EFI\OC\OpenCore.efi'
|
||||||
# 'PciRoot(0x0)/Pci(0x1A,0x7)/USB(0x0,0x0)/USB(0x2,0x0)/HD(2,GPT,4E929909-2074-43BA-9773-61EBC110A670,0x64800,0x38E3000)/EFI\OC\OpenCore.efi'
|
# 'PciRoot(0x0)/Pci(0x1A,0x7)/USB(0x0,0x0)/USB(0x2,0x0)/HD(2,GPT,4E929909-2074-43BA-9773-61EBC110A670,0x64800,0x38E3000)/EFI\OC\OpenCore.efi'
|
||||||
# 'PciRoot(0x0)/Pci(0x1A,0x7)/USB(0x0,0x0)/USB(0x1,0x0)/\EFI\OC\OpenCore.efi'
|
# 'PciRoot(0x0)/Pci(0x1A,0x7)/USB(0x0,0x0)/USB(0x1,0x0)/\EFI\OC\OpenCore.efi'
|
||||||
# return:
|
# return:
|
||||||
# 'C0778F23-3765-4C8E-9BFA-D60C839E7D2D'
|
# 'C0778F23-3765-4C8E-9BFA-D60C839E7D2D'
|
||||||
# '4E929909-2074-43BA-9773-61EBC110A670'
|
# '4E929909-2074-43BA-9773-61EBC110A670'
|
||||||
# 'None'
|
# 'None'
|
||||||
@@ -540,7 +540,7 @@ def find_disk_off_uuid(uuid):
|
|||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
def grab_mount_point_from_disk(disk):
|
def grab_mount_point_from_disk(disk):
|
||||||
data = plistlib.loads(subprocess.run(f"diskutil info -plist {disk}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
data = plistlib.loads(subprocess.run(f"diskutil info -plist {disk}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
||||||
@@ -567,7 +567,7 @@ def validate_link(link):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
def block_os_updaters():
|
def block_os_updaters():
|
||||||
# Disables any processes that would be likely to mess with
|
# Disables any processes that would be likely to mess with
|
||||||
# the root volume while we're working with it.
|
# the root volume while we're working with it.
|
||||||
bad_processes = [
|
bad_processes = [
|
||||||
"softwareupdate",
|
"softwareupdate",
|
||||||
@@ -578,7 +578,7 @@ def block_os_updaters():
|
|||||||
output = subprocess.check_output(["ps", "-ax"])
|
output = subprocess.check_output(["ps", "-ax"])
|
||||||
lines = output.splitlines()
|
lines = output.splitlines()
|
||||||
for line in lines:
|
for line in lines:
|
||||||
entry = line.split()
|
entry = line.split()
|
||||||
pid = entry[0].decode()
|
pid = entry[0].decode()
|
||||||
current_process = entry[3].decode()
|
current_process = entry[3].decode()
|
||||||
for bad_process in bad_processes:
|
for bad_process in bad_processes:
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ def validate(settings):
|
|||||||
raise Exception(f"Validation failed for predefined model: {settings.computer.real_model}")
|
raise Exception(f"Validation failed for predefined model: {settings.computer.real_model}")
|
||||||
else:
|
else:
|
||||||
print(f"Validation succeeded for predefined model: {settings.computer.real_model}")
|
print(f"Validation succeeded for predefined model: {settings.computer.real_model}")
|
||||||
|
|
||||||
|
|
||||||
def validate_root_patch_files(major_kernel, minor_kernel):
|
def validate_root_patch_files(major_kernel, minor_kernel):
|
||||||
patchset = sys_patch_dict.SystemPatchDictionary(major_kernel, minor_kernel, settings.legacy_accel_support)
|
patchset = sys_patch_dict.SystemPatchDictionary(major_kernel, minor_kernel, settings.legacy_accel_support)
|
||||||
@@ -79,12 +79,12 @@ def validate(settings):
|
|||||||
if not Path(source_file).exists():
|
if not Path(source_file).exists():
|
||||||
print(f"File not found: {source_file}")
|
print(f"File not found: {source_file}")
|
||||||
raise Exception(f"Failed to find {source_file}")
|
raise Exception(f"Failed to find {source_file}")
|
||||||
|
|
||||||
print(f"Validating Root Patch Dictionary integrity for Darwin {major_kernel}.{minor_kernel}")
|
print(f"Validating Root Patch Dictionary integrity for Darwin {major_kernel}.{minor_kernel}")
|
||||||
if not sys_patch_helpers.sys_patch_helpers(settings).generate_patchset_plist(patchset, "OpenCore-Legacy-Patcher"):
|
if not sys_patch_helpers.sys_patch_helpers(settings).generate_patchset_plist(patchset, "OpenCore-Legacy-Patcher"):
|
||||||
raise Exception("Failed to generate patchset plist")
|
raise Exception("Failed to generate patchset plist")
|
||||||
|
|
||||||
|
|
||||||
def validate_sys_patch():
|
def validate_sys_patch():
|
||||||
if Path(settings.payload_local_binaries_root_path_zip).exists():
|
if Path(settings.payload_local_binaries_root_path_zip).exists():
|
||||||
print("Validating Root Patch File integrity")
|
print("Validating Root Patch File integrity")
|
||||||
|
|||||||
Reference in New Issue
Block a user