mirror of
https://github.com/dortania/OpenCore-Legacy-Patcher.git
synced 2026-04-21 18:40:16 +10:00
Compare commits
91 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e76ceb7cf4 | ||
|
|
22b9853452 | ||
|
|
8c7e991779 | ||
|
|
b2fcb77c24 | ||
|
|
2ac80fda32 | ||
|
|
31e48c7d96 | ||
|
|
18bbe60088 | ||
|
|
5a0ad4379e | ||
|
|
8971a3c4a9 | ||
|
|
37cd66265b | ||
|
|
faad02a7fa | ||
|
|
06d4c86ad8 | ||
|
|
a5998cb226 | ||
|
|
e86b48e0fc | ||
|
|
53a59c0ce3 | ||
|
|
fe5045edbe | ||
|
|
6a357d8cdf | ||
|
|
5005d1f1eb | ||
|
|
b801afcff0 | ||
|
|
758c1d9649 | ||
|
|
9e6d742c6d | ||
|
|
de1b893049 | ||
|
|
0483b5651a | ||
|
|
7680c20221 | ||
|
|
349bdb2936 | ||
|
|
60dc7c4490 | ||
|
|
7aaaa79571 | ||
|
|
b83495702b | ||
|
|
d482443f0e | ||
|
|
d4b55ad0e4 | ||
|
|
77cff8a6f3 | ||
|
|
2e62f1f65c | ||
|
|
87359ee642 | ||
|
|
0b8c4b20b6 | ||
|
|
3049d1adef | ||
|
|
e3e9be01a2 | ||
|
|
f178b22423 | ||
|
|
797b56b9f9 | ||
|
|
d08807e301 | ||
|
|
c78f7d0bdb | ||
|
|
bd4564f98e | ||
|
|
25a5a3d168 | ||
|
|
4b54711434 | ||
|
|
6eec2e95b8 | ||
|
|
03ed8ed1f0 | ||
|
|
9720d90493 | ||
|
|
d0eada1d85 | ||
|
|
06b3cf2e90 | ||
|
|
bbd379a584 | ||
|
|
2b04a06adc | ||
|
|
703e926b96 | ||
|
|
3d10404da5 | ||
|
|
41a189444b | ||
|
|
6ae572f74f | ||
|
|
fa045e96e7 | ||
|
|
2a12e861ac | ||
|
|
31c0845667 | ||
|
|
a97c6c9baa | ||
|
|
e4c433730f | ||
|
|
30be583a3d | ||
|
|
bbed0b4921 | ||
|
|
3e784c0ae5 | ||
|
|
182b6c4291 | ||
|
|
b1f16fca1d | ||
|
|
9787645542 | ||
|
|
af3d4c4af5 | ||
|
|
bdc8c2a4fc | ||
|
|
be89e2ae11 | ||
|
|
55f3905dd4 | ||
|
|
6f0048814f | ||
|
|
7895413ce2 | ||
|
|
9254e67fc9 | ||
|
|
d815ece3c4 | ||
|
|
14bad15df4 | ||
|
|
d830e72b62 | ||
|
|
70b5399126 | ||
|
|
1d8d3ef757 | ||
|
|
9f3ee178a5 | ||
|
|
91335ab271 | ||
|
|
8320355925 | ||
|
|
0b225fbbbd | ||
|
|
6a18334663 | ||
|
|
af940152a1 | ||
|
|
66f5e8d969 | ||
|
|
b3b7508237 | ||
|
|
361f9767dd | ||
|
|
f20c9808ed | ||
|
|
b6ac9f3a6f | ||
|
|
8365144834 | ||
|
|
85b422b0fb | ||
|
|
6ebc9a08ae |
3
.github/ISSUE_TEMPLATE/bug_report.md
vendored
3
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -27,5 +27,8 @@ If applicable, add the generated OpenCore Build to help explain your problem.
|
|||||||
- OS Patching (ie. macOS 11.2.3, Big Sur)
|
- OS Patching (ie. macOS 11.2.3, Big Sur)
|
||||||
- Model Patching (ie. MacPro5,1)
|
- Model Patching (ie. MacPro5,1)
|
||||||
|
|
||||||
|
For in-depth hardware logs, we highly encourage users to run [IORegistryExplorer](https://github.com/khronokernel/IORegistryClone/blob/master/ioreg-210.zip?raw=true) and send the output
|
||||||
|
* ie. `File -> SaveAs`
|
||||||
|
|
||||||
**Additional context**
|
**Additional context**
|
||||||
Add any other context about the problem here.
|
Add any other context about the problem here.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
name: CI
|
name: CI - Build App
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
@@ -18,7 +18,7 @@ jobs:
|
|||||||
# python3 -m pip install -U pip
|
# python3 -m pip install -U pip
|
||||||
# pip3 install pyinstaller
|
# pip3 install pyinstaller
|
||||||
|
|
||||||
- run: pyinstaller Opencore-Patcher.spec
|
- run: pyinstaller OpenCore-Patcher.spec
|
||||||
- run: ./after_pyinstaller.sh
|
- run: ./after_pyinstaller.sh
|
||||||
- run: 'codesign -s "Developer ID Application: Mykola Grymalyuk (S74BDJXQMD)" -v --deep --timestamp --entitlements entitlements.plist -o runtime "dist/OpenCore-Patcher.app"'
|
- run: 'codesign -s "Developer ID Application: Mykola Grymalyuk (S74BDJXQMD)" -v --deep --timestamp --entitlements entitlements.plist -o runtime "dist/OpenCore-Patcher.app"'
|
||||||
|
|
||||||
29
.github/workflows/build-cli.yml
vendored
Normal file
29
.github/workflows/build-cli.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
name: CI - Build CLI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
workflow_dispatch:
|
||||||
|
release:
|
||||||
|
types: [published]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Build CLI
|
||||||
|
runs-on: self-hosted
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- run: pyinstaller OCLP-CLI.spec
|
||||||
|
- run: cd dist; zip ../OCLP-CLI.zip OCLP-CLI
|
||||||
|
- name: Upload Binary to Artifacts
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: OCLP-CLI
|
||||||
|
path: OCLP-CLI.zip
|
||||||
|
- name: Upload to Release
|
||||||
|
if: github.event_name == 'release'
|
||||||
|
uses: svenstaro/upload-release-action@e74ff71f7d8a4c4745b560a485cc5fdb9b5b999d
|
||||||
|
with:
|
||||||
|
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
file: OCLP-CLI.zip
|
||||||
|
tag: ${{ github.ref }}
|
||||||
|
file_glob: true
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
name: Build/Test/Deploy
|
name: CI - Build Site
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches-ignore:
|
branches-ignore:
|
||||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,6 +1,6 @@
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
OCLP-GUI.command
|
OCLP-GUI.command
|
||||||
/payloads/Apple-Binaries-OCLP-main
|
/payloads/Apple
|
||||||
/payloads/__MACOSX
|
/payloads/__MACOSX
|
||||||
/App
|
/App
|
||||||
/Build-Folder
|
/Build-Folder
|
||||||
|
|||||||
46
CHANGELOG.md
46
CHANGELOG.md
@@ -1,5 +1,47 @@
|
|||||||
# OpenCore Legacy Patcher changelog
|
# OpenCore Legacy Patcher changelog
|
||||||
|
|
||||||
|
## 0.1.1
|
||||||
|
- Fix iMac11,3 GFX0 pathing
|
||||||
|
- Add MouSSE support to iMac10,1 with Metal AMD GPU
|
||||||
|
- Fix iMac11,1 and iMac11,3 Nvidia boot issues after PRAM reset
|
||||||
|
- Fix DRM support on Nvidia-only configurations
|
||||||
|
- Support optional setting between DRM and QuickSync support on iMacs13,x and iMac14,x
|
||||||
|
- Add public beta support for Legacy GPU Acceleration (v0.0.4)
|
||||||
|
- Note ATI/AMD TeraScale 2 unsupported (HD 5/6000)
|
||||||
|
- Add better kmutil crash handling
|
||||||
|
- Fix build crashing when no wifi card is present
|
||||||
|
- Allow Legacy Acceleration Patches on Mac Pros and Xserves
|
||||||
|
- Fix USB kernel panics on iMac7,1
|
||||||
|
- Fix AppleALC support in Mojave
|
||||||
|
- Fix TeraScale 1 GPU detection
|
||||||
|
- Enable Graphics Acceleration on legacy GPUs by default
|
||||||
|
- Fix incorrectly disabling SIP/SMB on Metal GPUs
|
||||||
|
- Fix error output when rebuilding kernel cache fails
|
||||||
|
- Fix Acceleration Linking for Intel Ironlake iGPUs
|
||||||
|
|
||||||
|
## 0.1.0
|
||||||
|
- Fix crash on iMacs with Metal GPUs
|
||||||
|
|
||||||
|
## 0.0.23
|
||||||
|
- Fix MacBookPro4,1 15" and 17" audio support
|
||||||
|
- Fix iMac7,1 24" and iMac9,1 24" audio support
|
||||||
|
- Fix Macmini4,1 audio support
|
||||||
|
- Increment binaries
|
||||||
|
- AppleALC 1a3e5cb (1.6.0 rolling - 04-14-2021)
|
||||||
|
- Enhance Wifi model detection
|
||||||
|
- Hide OpenShell.efi by default
|
||||||
|
- Add Brightness Control patches for legacy Nvidia, AMD and Intel GPUs
|
||||||
|
- Models with brightness control issues in Catalina partially supported
|
||||||
|
- Add user configurable Bootstrap setting
|
||||||
|
- Enhance GPU Detection logic
|
||||||
|
- Increment AppleBackLightFixup v1.0.1
|
||||||
|
- Add panel type F10T9cde
|
||||||
|
- Enhance HDMI audio support on Mac Pros and Xserves
|
||||||
|
- Strip unused kext entries during build
|
||||||
|
- Add gfxutil support for better DeviceProperty path detection
|
||||||
|
- Add basic CLI support
|
||||||
|
- Disable SIP and SecureBootModel by default on legacy GPUs
|
||||||
|
|
||||||
## 0.0.22
|
## 0.0.22
|
||||||
- Add ExFat support for models missing driver
|
- Add ExFat support for models missing driver
|
||||||
- Aids BootCamp support for EFI based installs on 2010 and older Macs
|
- Aids BootCamp support for EFI based installs on 2010 and older Macs
|
||||||
@@ -11,7 +53,7 @@
|
|||||||
## 0.0.21
|
## 0.0.21
|
||||||
- Fix botched images in OpenCanopy
|
- Fix botched images in OpenCanopy
|
||||||
- Add support for 3rd party OpenCore usage detection during building
|
- Add support for 3rd party OpenCore usage detection during building
|
||||||
- Mainly for users transtioning from Ausdauersportler's OpenCore configuration
|
- Mainly for users transitioning from Ausdauersportler's OpenCore configuration
|
||||||
|
|
||||||
## 0.0.20
|
## 0.0.20
|
||||||
- Fix CPU Calculation on early MCP79 chipsets (ie. iMac9,1, MacBook5,x)
|
- Fix CPU Calculation on early MCP79 chipsets (ie. iMac9,1, MacBook5,x)
|
||||||
@@ -158,4 +200,4 @@
|
|||||||
- Add El Capitan era wireless cards
|
- Add El Capitan era wireless cards
|
||||||
|
|
||||||
## 0.0.1
|
## 0.0.1
|
||||||
- Inital developer preview
|
- Initial developer preview
|
||||||
|
|||||||
179
OCLP-CLI.command
Executable file
179
OCLP-CLI.command
Executable file
@@ -0,0 +1,179 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# Copyright (C) 2020-2021 Mykola Grymalyuk
|
||||||
|
|
||||||
|
from __future__ import print_function
|
||||||
|
|
||||||
|
import binascii
|
||||||
|
import plistlib
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
import platform
|
||||||
|
import argparse
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
from Resources import Build, ModelArray, Constants, SysPatch, Utilities, CliMenu
|
||||||
|
|
||||||
|
|
||||||
|
class OpenCoreLegacyPatcher():
|
||||||
|
def __init__(self):
|
||||||
|
self.constants = Constants.Constants()
|
||||||
|
self.current_model: str = None
|
||||||
|
opencore_model: str = subprocess.run("nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:oem-product".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.decode()
|
||||||
|
if not opencore_model.startswith("nvram: Error getting variable"):
|
||||||
|
opencore_model = [line.strip().split(":oem-product ", 1)[1] for line in opencore_model.split("\n") if line.strip().startswith("4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:")][0]
|
||||||
|
self.current_model = opencore_model
|
||||||
|
else:
|
||||||
|
self.current_model = subprocess.run("system_profiler SPHardwareDataType".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||||
|
self.current_model = [line.strip().split(": ", 1)[1] for line in self.current_model.stdout.decode().split("\n") if line.strip().startswith("Model Identifier")][0]
|
||||||
|
self.constants.detected_os = int(platform.uname().release.partition(".")[0])
|
||||||
|
if self.current_model in ModelArray.NoAPFSsupport:
|
||||||
|
self.constants.serial_settings = "Moderate"
|
||||||
|
if self.current_model in ModelArray.LegacyGPU:
|
||||||
|
try:
|
||||||
|
dgpu_devices = plistlib.loads(subprocess.run("ioreg -r -n GFX0 -a".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
||||||
|
dgpu_vendor = self.hexswap(binascii.hexlify(dgpu_devices[0]["vendor-id"]).decode()[:4])
|
||||||
|
dgpu_device = self.hexswap(binascii.hexlify(dgpu_devices[0]["device-id"]).decode()[:4])
|
||||||
|
except ValueError:
|
||||||
|
dgpu_vendor = ""
|
||||||
|
dgpu_device = ""
|
||||||
|
|
||||||
|
if (dgpu_vendor == self.constants.pci_amd_ati and dgpu_device in ModelArray.AMDMXMGPUs) or (dgpu_vendor == self.constants.pci_nvidia and dgpu_device in ModelArray.NVIDIAMXMGPUs):
|
||||||
|
self.constants.sip_status = True
|
||||||
|
self.constants.secure_status = True
|
||||||
|
else:
|
||||||
|
self.constants.sip_status = False
|
||||||
|
self.constants.secure_status = False
|
||||||
|
|
||||||
|
# Logic for when user runs custom OpenCore build and do not expose it
|
||||||
|
# Note: This logic currently only applies for iMacPro1,1 users, see below threads on the culprits:
|
||||||
|
# - https://forums.macrumors.com/threads/2011-imac-graphics-card-upgrade.1596614/post-17425857
|
||||||
|
# - https://forums.macrumors.com/threads/opencore-on-the-mac-pro.2207814/
|
||||||
|
# PLEASE FOR THE LOVE OF GOD JUST SET ExposeSensitiveData CORRECTLY!!!
|
||||||
|
if self.current_model == "iMacPro1,1":
|
||||||
|
serial: str = subprocess.run("system_profiler SPHardwareDataType | grep Serial".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.decode()
|
||||||
|
serial = [line.strip().split("Number (system): ", 1)[1] for line in serial.split("\n") if line.strip().startswith("Serial")][0]
|
||||||
|
true_model = subprocess.run([str(self.constants.macserial_path), "--info", str(serial)], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||||
|
true_model = [i.partition(" - ")[2] for i in true_model.stdout.decode().split("\n") if "Model: " in i][0]
|
||||||
|
print(f"True Model: {true_model}")
|
||||||
|
if not true_model.startswith("Unknown"):
|
||||||
|
self.current_model = true_model
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
|
||||||
|
# Generic building args
|
||||||
|
parser.add_argument('--build', help='Build OpenCore', action='store_true', required=False)
|
||||||
|
parser.add_argument('--verbose', help='Enable verbose boot', action='store_true', required=False)
|
||||||
|
parser.add_argument('--debug_oc', help='Enable OpenCore DEBUG', action='store_true', required=False)
|
||||||
|
parser.add_argument('--debug_kext', help='Enable kext DEBUG', action='store_true', required=False)
|
||||||
|
parser.add_argument('--skip_wifi', help='Skip wifi patches', action='store_true', required=False)
|
||||||
|
parser.add_argument('--hide_picker', help='Hide OpenCore picker', action='store_true', required=False)
|
||||||
|
parser.add_argument('--disable_sip', help='Disable SIP', action='store_true', required=False)
|
||||||
|
parser.add_argument('--disable_smb', help='Disable SecureBootModel', action='store_true', required=False)
|
||||||
|
parser.add_argument('--vault', help='Enable OpenCore Vaulting', action='store_true', required=False)
|
||||||
|
|
||||||
|
# Building args requiring value values
|
||||||
|
parser.add_argument('--model', action='store', help='Set custom model', required=False)
|
||||||
|
parser.add_argument('--metal_gpu', action='store', help='Set Metal GPU Vendor', required=False)
|
||||||
|
parser.add_argument('--smbios_spoof', action='store', help='Set SMBIOS patching mode', required=False)
|
||||||
|
|
||||||
|
# SysPatch args
|
||||||
|
parser.add_argument('--patch_sys_vol', help='Patches root volume', action='store_true', required=False)
|
||||||
|
parser.add_argument('--unpatch_sys_vol', help='Unpatches root volume, EXPERIMENTAL', action='store_true', required=False)
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
self.constants.gui_mode = True
|
||||||
|
self.constants.current_path = Path.cwd()
|
||||||
|
|
||||||
|
if getattr(sys, "frozen", False) and hasattr(sys, "_MEIPASS"):
|
||||||
|
print("- Rerouting payloads location")
|
||||||
|
self.constants.payload_path = sys._MEIPASS / Path("payloads")
|
||||||
|
else:
|
||||||
|
print("- Using default payloads location")
|
||||||
|
|
||||||
|
if args.verbose:
|
||||||
|
print("- Set verbose configuration")
|
||||||
|
self.constants.verbose_debug = True
|
||||||
|
if args.debug_oc:
|
||||||
|
print("- Set OpenCore DEBUG configuration")
|
||||||
|
self.constants.opencore_debug = True
|
||||||
|
self.constants.opencore_build = "DEBUG"
|
||||||
|
if args.debug_kext:
|
||||||
|
print("- Set kext DEBUG configuration")
|
||||||
|
self.constants.kext_debug = True
|
||||||
|
if args.skip_wifi:
|
||||||
|
print("- Set wifi skip configuration")
|
||||||
|
self.constants.wifi_build = True
|
||||||
|
if args.hide_picker:
|
||||||
|
print("- Set HidePicker configuration")
|
||||||
|
self.constants.showpicker = False
|
||||||
|
if args.disable_sip:
|
||||||
|
print("- Set Disable SIP configuration")
|
||||||
|
self.constants.sip_status = False
|
||||||
|
if args.disable_smb:
|
||||||
|
print("- Set Disable SecureBootModel configuration")
|
||||||
|
self.constants.secure_status = False
|
||||||
|
if args.vault:
|
||||||
|
print("- Set Vault configuration")
|
||||||
|
self.constants.vault = True
|
||||||
|
if args.metal_gpu:
|
||||||
|
if args.metal_gpu == "Nvidia":
|
||||||
|
print("- Set Metal GPU patches to Nvidia")
|
||||||
|
self.constants.metal_build = True
|
||||||
|
self.constants.imac_vendor = "Nvidia"
|
||||||
|
elif args.metal_gpu == "AMD":
|
||||||
|
print("- Set Metal GPU patches to AMD")
|
||||||
|
self.constants.metal_build = True
|
||||||
|
self.constants.imac_vendor = "AMD"
|
||||||
|
else:
|
||||||
|
print(f"- Unknown GPU arg passed: {args.metal_gpu}")
|
||||||
|
self.constants.metal_build = False
|
||||||
|
self.constants.imac_vendor = "None"
|
||||||
|
if args.smbios_spoof:
|
||||||
|
if args.smbios_spoof == "Minimal":
|
||||||
|
self.constants.serial_settings = "Minimal"
|
||||||
|
elif args.smbios_spoof == "Moderate":
|
||||||
|
self.constants.serial_settings = "Moderate"
|
||||||
|
elif args.smbios_spoof == "Advanced":
|
||||||
|
self.constants.serial_settings = "Advanced"
|
||||||
|
else:
|
||||||
|
print(f"- Unknown SMBIOS arg passed: {args.smbios_spoof}")
|
||||||
|
|
||||||
|
if args.build:
|
||||||
|
if args.model:
|
||||||
|
print(f"- Using custom model: {args.model}")
|
||||||
|
self.constants.custom_model = args.model
|
||||||
|
self.build_opencore()
|
||||||
|
else:
|
||||||
|
print(f"- Using detected model: {self.current_model}")
|
||||||
|
self.build_opencore()
|
||||||
|
if args.patch_sys_vol:
|
||||||
|
print("- Set System Volume patching")
|
||||||
|
self.patch_vol()
|
||||||
|
elif args.unpatch_sys_vol:
|
||||||
|
print("- Set System Volume unpatching")
|
||||||
|
self.unpatch_vol()
|
||||||
|
|
||||||
|
def hexswap(self, input_hex: str):
|
||||||
|
hex_pairs = [input_hex[i:i + 2] for i in range(0, len(input_hex), 2)]
|
||||||
|
hex_rev = hex_pairs[::-1]
|
||||||
|
hex_str = "".join(["".join(x) for x in hex_rev])
|
||||||
|
return hex_str.upper()
|
||||||
|
|
||||||
|
def patch_vol(self):
|
||||||
|
SysPatch.PatchSysVolume(self.constants.custom_model or self.current_model, self.constants).start_patch()
|
||||||
|
|
||||||
|
def unpatch_vol(self):
|
||||||
|
SysPatch.PatchSysVolume(self.constants.custom_model or self.current_model, self.constants).start_unpatch()
|
||||||
|
|
||||||
|
def build_opencore(self):
|
||||||
|
Build.BuildOpenCore(self.constants.custom_model or self.current_model, self.constants).build_opencore()
|
||||||
|
|
||||||
|
def install_opencore(self):
|
||||||
|
Build.BuildOpenCore(self.constants.custom_model or self.current_model, self.constants).copy_efi()
|
||||||
|
|
||||||
|
OpenCoreLegacyPatcher()
|
||||||
|
|
||||||
|
# Example arg for OCLP command line
|
||||||
|
# ./OCLP-CLI --build --verbose --debug_oc --debug_kext --model iMac11,2
|
||||||
34
OCLP-CLI.spec
Normal file
34
OCLP-CLI.spec
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
# -*- mode: python ; coding: utf-8 -*-
|
||||||
|
import sys, os
|
||||||
|
sys.path.append(os.path.abspath(os.getcwd()))
|
||||||
|
from Resources import Constants
|
||||||
|
block_cipher = None
|
||||||
|
|
||||||
|
|
||||||
|
a = Analysis(['OCLP-CLI.command'],
|
||||||
|
binaries=[],
|
||||||
|
datas=[('payloads', 'payloads'), ('Resources', 'Resources')],
|
||||||
|
hiddenimports=[],
|
||||||
|
hookspath=[],
|
||||||
|
runtime_hooks=[],
|
||||||
|
excludes=[],
|
||||||
|
win_no_prefer_redirects=False,
|
||||||
|
win_private_assemblies=False,
|
||||||
|
cipher=block_cipher,
|
||||||
|
noarchive=False)
|
||||||
|
pyz = PYZ(a.pure, a.zipped_data,
|
||||||
|
cipher=block_cipher)
|
||||||
|
exe = EXE(pyz,
|
||||||
|
a.scripts,
|
||||||
|
a.binaries,
|
||||||
|
a.zipfiles,
|
||||||
|
a.datas,
|
||||||
|
[],
|
||||||
|
name='OCLP-CLI',
|
||||||
|
debug=False,
|
||||||
|
bootloader_ignore_signals=False,
|
||||||
|
strip=False,
|
||||||
|
upx=True,
|
||||||
|
upx_exclude=[],
|
||||||
|
runtime_tmpdir=None,
|
||||||
|
console=True )
|
||||||
@@ -3,12 +3,14 @@
|
|||||||
|
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
|
|
||||||
|
import binascii
|
||||||
|
import plistlib
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
import platform
|
import platform
|
||||||
|
|
||||||
from Resources import build, ModelArray, Constants, SysPatch, utilities, CliMenu
|
from Resources import Build, ModelArray, Constants, SysPatch, Utilities, CliMenu
|
||||||
|
|
||||||
|
|
||||||
class OpenCoreLegacyPatcher():
|
class OpenCoreLegacyPatcher():
|
||||||
@@ -25,6 +27,21 @@ class OpenCoreLegacyPatcher():
|
|||||||
self.constants.detected_os = int(platform.uname().release.partition(".")[0])
|
self.constants.detected_os = int(platform.uname().release.partition(".")[0])
|
||||||
if self.current_model in ModelArray.NoAPFSsupport:
|
if self.current_model in ModelArray.NoAPFSsupport:
|
||||||
self.constants.serial_settings = "Moderate"
|
self.constants.serial_settings = "Moderate"
|
||||||
|
if self.current_model in ModelArray.LegacyGPU:
|
||||||
|
try:
|
||||||
|
dgpu_devices = plistlib.loads(subprocess.run("ioreg -r -n GFX0 -a".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
||||||
|
dgpu_vendor = self.hexswap(binascii.hexlify(dgpu_devices[0]["vendor-id"]).decode()[:4])
|
||||||
|
dgpu_device = self.hexswap(binascii.hexlify(dgpu_devices[0]["device-id"]).decode()[:4])
|
||||||
|
except ValueError:
|
||||||
|
dgpu_vendor = ""
|
||||||
|
dgpu_device = ""
|
||||||
|
|
||||||
|
if (dgpu_vendor == self.constants.pci_amd_ati and dgpu_device in ModelArray.AMDMXMGPUs) or (dgpu_vendor == self.constants.pci_nvidia and dgpu_device in ModelArray.NVIDIAMXMGPUs):
|
||||||
|
self.constants.sip_status = True
|
||||||
|
self.constants.secure_status = True
|
||||||
|
else:
|
||||||
|
self.constants.sip_status = False
|
||||||
|
self.constants.secure_status = False
|
||||||
|
|
||||||
# Logic for when user runs custom OpenCore build and do not expose it
|
# Logic for when user runs custom OpenCore build and do not expose it
|
||||||
# Note: This logic currently only applies for iMacPro1,1 users, see below threads on the culprits:
|
# Note: This logic currently only applies for iMacPro1,1 users, see below threads on the culprits:
|
||||||
@@ -39,16 +56,21 @@ class OpenCoreLegacyPatcher():
|
|||||||
print(f"True Model: {true_model}")
|
print(f"True Model: {true_model}")
|
||||||
if not true_model.startswith("Unknown"):
|
if not true_model.startswith("Unknown"):
|
||||||
self.current_model = true_model
|
self.current_model = true_model
|
||||||
|
def hexswap(self, input_hex: str):
|
||||||
|
hex_pairs = [input_hex[i:i + 2] for i in range(0, len(input_hex), 2)]
|
||||||
|
hex_rev = hex_pairs[::-1]
|
||||||
|
hex_str = "".join(["".join(x) for x in hex_rev])
|
||||||
|
return hex_str.upper()
|
||||||
|
|
||||||
def build_opencore(self):
|
def build_opencore(self):
|
||||||
build.BuildOpenCore(self.constants.custom_model or self.current_model, self.constants).build_opencore()
|
Build.BuildOpenCore(self.constants.custom_model or self.current_model, self.constants).build_opencore()
|
||||||
|
|
||||||
def install_opencore(self):
|
def install_opencore(self):
|
||||||
build.BuildOpenCore(self.constants.custom_model or self.current_model, self.constants).copy_efi()
|
Build.BuildOpenCore(self.constants.custom_model or self.current_model, self.constants).copy_efi()
|
||||||
|
|
||||||
def change_model(self):
|
def change_model(self):
|
||||||
utilities.cls()
|
Utilities.cls()
|
||||||
utilities.header(["Select Different Model"])
|
Utilities.header(["Select Different Model"])
|
||||||
print("""
|
print("""
|
||||||
Tip: Run the following command on the target machine to find the model identifier:
|
Tip: Run the following command on the target machine to find the model identifier:
|
||||||
|
|
||||||
@@ -66,15 +88,13 @@ system_profiler SPHardwareDataType | grep 'Model Identifier'
|
|||||||
if self.constants.custom_model in ModelArray.NoAPFSsupport:
|
if self.constants.custom_model in ModelArray.NoAPFSsupport:
|
||||||
self.constants.serial_settings = "Moderate"
|
self.constants.serial_settings = "Moderate"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def patcher_settings(self):
|
def patcher_settings(self):
|
||||||
response = None
|
response = None
|
||||||
while not (response and response == -1):
|
while not (response and response == -1):
|
||||||
title = [
|
title = [
|
||||||
"Adjust Patcher Settings"
|
"Adjust Patcher Settings"
|
||||||
]
|
]
|
||||||
menu = utilities.TUIMenu(title, "Please select an option: ", auto_number=True, top_level=True)
|
menu = Utilities.TUIMenu(title, "Please select an option: ", auto_number=True, top_level=True)
|
||||||
options = [
|
options = [
|
||||||
# TODO: Enable setting OS target when more OSes become supported by the patcher
|
# TODO: Enable setting OS target when more OSes become supported by the patcher
|
||||||
#[f"Change OS version:\t\t\tCurrently macOS {self.constants.os_support}", self.change_os],
|
#[f"Change OS version:\t\t\tCurrently macOS {self.constants.os_support}", self.change_os],
|
||||||
@@ -87,7 +107,10 @@ system_profiler SPHardwareDataType | grep 'Model Identifier'
|
|||||||
[f"Set Vault Mode:\t\t\tCurrently {self.constants.vault}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).change_vault],
|
[f"Set Vault Mode:\t\t\tCurrently {self.constants.vault}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).change_vault],
|
||||||
[f"Set SIP and SecureBootModel:\tSIP: {self.constants.sip_status} SBM: {self.constants.secure_status}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).change_sip],
|
[f"Set SIP and SecureBootModel:\tSIP: {self.constants.sip_status} SBM: {self.constants.secure_status}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).change_sip],
|
||||||
[f"Set SMBIOS Mode:\t\t\tCurrently {self.constants.serial_settings}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).change_serial],
|
[f"Set SMBIOS Mode:\t\t\tCurrently {self.constants.serial_settings}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).change_serial],
|
||||||
[f"Set Custom Patch Repo", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).custom_repo],
|
[f"DRM Preferences:\t\t\tCurrently {self.constants.drm_support}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).drm_setting],
|
||||||
|
[f"Set Generic Bootstrap:\t\t{self.constants.boot_efi}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).bootstrap_setting],
|
||||||
|
[f"Set Acceleration Patches:\t\t{self.constants.legacy_acceleration_patch}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).accel_setting],
|
||||||
|
[f"Assume Legacy GPU:\t\t\t{self.constants.assume_legacy}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).force_accel_setting],
|
||||||
]
|
]
|
||||||
|
|
||||||
for option in options:
|
for option in options:
|
||||||
@@ -96,21 +119,23 @@ system_profiler SPHardwareDataType | grep 'Model Identifier'
|
|||||||
response = menu.start()
|
response = menu.start()
|
||||||
|
|
||||||
def credits(self):
|
def credits(self):
|
||||||
utilities.TUIOnlyPrint(["Credits"], "Press [Enter] to go back.\n",
|
Utilities.TUIOnlyPrint(["Credits"], "Press [Enter] to go back.\n",
|
||||||
["""Many thanks to the following:
|
["""Many thanks to the following:
|
||||||
|
|
||||||
- Acidanthera:\tOpenCore, kexts and other tools
|
- Acidanthera:\tOpenCore, kexts and other tools
|
||||||
- Khronokernel:\tWriting and maintaining this patcher
|
- Khronokernel:\tWriting and maintaining this patcher
|
||||||
- DhinakG:\t\tWriting and maintaining this patcher
|
- DhinakG:\t\tWriting and maintaining this patcher
|
||||||
|
- ASentientBot:\tLegacy Acceleration Patches
|
||||||
|
- Ausdauersportler:\tLinking fixes for SNBGraphicsFB and AMDX3000
|
||||||
- Syncretic:\t\tAAAMouSSE and telemetrap
|
- Syncretic:\t\tAAAMouSSE and telemetrap
|
||||||
- cdf:\t\tNightShiftEnabler"""]).start()
|
- cdf:\t\tNightShiftEnabler"""]).start()
|
||||||
|
|
||||||
def PatchVolume(self):
|
def PatchVolume(self):
|
||||||
utilities.cls()
|
Utilities.cls()
|
||||||
utilities.header(["Patching System Volume"])
|
Utilities.header(["Patching System Volume"])
|
||||||
print("""Patches Root volume to fix misc issues such as:
|
print("""Patches Root volume to fix misc issues such as:
|
||||||
|
|
||||||
- No patches currently avalible for any model
|
- Brightness control for non-Metal GPUs
|
||||||
|
|
||||||
WARNING: Root Volume Patching is still in active development, please
|
WARNING: Root Volume Patching is still in active development, please
|
||||||
have all important user data backed up. Note when the system volume
|
have all important user data backed up. Note when the system volume
|
||||||
@@ -131,7 +156,6 @@ B. Exit
|
|||||||
else:
|
else:
|
||||||
print("Returning to main menu")
|
print("Returning to main menu")
|
||||||
|
|
||||||
|
|
||||||
def main_menu(self):
|
def main_menu(self):
|
||||||
response = None
|
response = None
|
||||||
ModelArray.SupportedSMBIOS = ModelArray.SupportedSMBIOS11
|
ModelArray.SupportedSMBIOS = ModelArray.SupportedSMBIOS11
|
||||||
@@ -162,7 +186,7 @@ B. Exit
|
|||||||
else:
|
else:
|
||||||
in_between = ["This model is supported"]
|
in_between = ["This model is supported"]
|
||||||
|
|
||||||
menu = utilities.TUIMenu(title, "Please select an option: ", in_between=in_between, auto_number=True, top_level=True)
|
menu = Utilities.TUIMenu(title, "Please select an option: ", in_between=in_between, auto_number=True, top_level=True)
|
||||||
|
|
||||||
options = (
|
options = (
|
||||||
[["Build OpenCore", self.build_opencore]] if ((self.constants.custom_model or self.current_model) in ModelArray.SupportedSMBIOS) else []) + [
|
[["Build OpenCore", self.build_opencore]] if ((self.constants.custom_model or self.current_model) in ModelArray.SupportedSMBIOS) else []) + [
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ A python program for building and booting [OpenCore](https://github.com/acidanth
|
|||||||
| Support Entry | Supported OSes | Description | Comment |
|
| Support Entry | Supported OSes | Description | Comment |
|
||||||
| :--- | :--- | :--- | :--- |
|
| :--- | :--- | :--- | :--- |
|
||||||
| HostOS | macOS 10.9 - macOS 11 | Refers to OSes where running OpenCore-Patcher.app are supported | Supports 10.7+ if [Python 3.6 or higher](https://www.python.org/downloads/) is manually installed, simply run the `OpenCore-Patcher.command` located in the repo |
|
| HostOS | macOS 10.9 - macOS 11 | Refers to OSes where running OpenCore-Patcher.app are supported | Supports 10.7+ if [Python 3.6 or higher](https://www.python.org/downloads/) is manually installed, simply run the `OpenCore-Patcher.command` located in the repo |
|
||||||
| TargetOS | macOS 11 | Refers to OSes that can be patched to run with OpenCore | Unofficially supports 10.4 and newer, no support provided via this patcher |
|
| TargetOS | macOS 11 | Refers to OSes that can be patched to run with OpenCore | May support 10.4 and newer (in a potentially broken state). No support provided. |
|
||||||
|
|
||||||
Supported features:
|
Supported features:
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@ Since this patcher tricks macOS into thinking you're running a newer Mac, certai
|
|||||||
|
|
||||||
## Support
|
## Support
|
||||||
|
|
||||||
To get aid with the patcher, we recommend joining the [Unsupported Mac Discord Server](https://discord.gg/XbbWAsE) and heading over to our `#opencore-patcher` channel. We're actively there and is the quickest way to receive help. For bigger issues such as patcher crashing on build and such, we recommend opening an issue right here on GitHub:
|
To get aid with the patcher, we recommend joining the [OpenCore Patcher Paradise Discord Server](https://discord.gg/UbM8U75E). We're actively there and is the quickest way to receive help. For bigger issues such as patcher crashing on build and such, we recommend opening an issue right here on GitHub:
|
||||||
|
|
||||||
* [OpenCore Legacy Patcher's Issue's tab](https://github.com/dortania/OpenCore-Legacy-Patcher/issues)
|
* [OpenCore Legacy Patcher's Issue's tab](https://github.com/dortania/OpenCore-Legacy-Patcher/issues)
|
||||||
|
|
||||||
|
|||||||
@@ -8,10 +8,13 @@ import shutil
|
|||||||
import subprocess
|
import subprocess
|
||||||
import uuid
|
import uuid
|
||||||
import zipfile
|
import zipfile
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import platform
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from datetime import date
|
from datetime import date
|
||||||
|
|
||||||
from Resources import Constants, ModelArray, utilities
|
from Resources import Constants, ModelArray, Utilities
|
||||||
|
|
||||||
|
|
||||||
def human_fmt(num):
|
def human_fmt(num):
|
||||||
@@ -40,8 +43,32 @@ class BuildOpenCore:
|
|||||||
hex_str = "".join(["".join(x) for x in hex_rev])
|
hex_str = "".join(["".join(x) for x in hex_rev])
|
||||||
return hex_str.upper()
|
return hex_str.upper()
|
||||||
|
|
||||||
|
def check_pciid(self, print_status):
|
||||||
|
try:
|
||||||
|
self.constants.igpu_devices = plistlib.loads(subprocess.run("ioreg -r -n IGPU -a".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
||||||
|
self.constants.igpu_vendor = self.hexswap(binascii.hexlify(self.constants.igpu_devices[0]["vendor-id"]).decode()[:4])
|
||||||
|
self.constants.igpu_device = self.hexswap(binascii.hexlify(self.constants.igpu_devices[0]["device-id"]).decode()[:4])
|
||||||
|
if print_status is True:
|
||||||
|
print(f"- Detected iGPU: {self.constants.igpu_vendor}:{self.constants.igpu_device}")
|
||||||
|
except ValueError:
|
||||||
|
if print_status is True:
|
||||||
|
print("- No iGPU detected")
|
||||||
|
self.constants.igpu_devices = ""
|
||||||
|
|
||||||
|
try:
|
||||||
|
self.constants.dgpu_devices = plistlib.loads(subprocess.run("ioreg -r -n GFX0 -a".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
||||||
|
self.constants.dgpu_vendor = self.hexswap(binascii.hexlify(self.constants.dgpu_devices[0]["vendor-id"]).decode()[:4])
|
||||||
|
self.constants.dgpu_device = self.hexswap(binascii.hexlify(self.constants.dgpu_devices[0]["device-id"]).decode()[:4])
|
||||||
|
if print_status is True:
|
||||||
|
print(f"- Detected dGPU: {self.constants.dgpu_vendor}:{self.constants.dgpu_device}")
|
||||||
|
except ValueError:
|
||||||
|
if print_status is True:
|
||||||
|
print("- No dGPU detected")
|
||||||
|
self.constants.dgpu_devices = ""
|
||||||
|
|
||||||
def build_efi(self):
|
def build_efi(self):
|
||||||
utilities.cls()
|
Utilities.cls()
|
||||||
|
print(f"Building Configuration for model: {self.model}")
|
||||||
if not Path(self.constants.build_path).exists():
|
if not Path(self.constants.build_path).exists():
|
||||||
Path(self.constants.build_path).mkdir()
|
Path(self.constants.build_path).mkdir()
|
||||||
print("Created build folder")
|
print("Created build folder")
|
||||||
@@ -89,62 +116,100 @@ class BuildOpenCore:
|
|||||||
("MarvelYukonEthernet.kext", self.constants.marvel_version, self.constants.marvel_path, lambda: self.model in ModelArray.EthernetMarvell),
|
("MarvelYukonEthernet.kext", self.constants.marvel_version, self.constants.marvel_path, lambda: self.model in ModelArray.EthernetMarvell),
|
||||||
("CatalinaBCM5701Ethernet.kext", self.constants.bcm570_version, self.constants.bcm570_path, lambda: self.model in ModelArray.EthernetBroadcom),
|
("CatalinaBCM5701Ethernet.kext", self.constants.bcm570_version, self.constants.bcm570_path, lambda: self.model in ModelArray.EthernetBroadcom),
|
||||||
# Legacy audio
|
# Legacy audio
|
||||||
("AppleALC.kext", self.constants.applealc_version, self.constants.applealc_path, lambda: self.model in ModelArray.LegacyAudio),
|
("AppleALC.kext", self.constants.applealc_version, self.constants.applealc_path, lambda: self.model in ModelArray.LegacyAudio or self.model in ModelArray.MacPro71),
|
||||||
# IDE patch
|
# IDE patch
|
||||||
("AppleIntelPIIXATA.kext", self.constants.piixata_version, self.constants.piixata_path, lambda: self.model in ModelArray.IDEPatch),
|
("AppleIntelPIIXATA.kext", self.constants.piixata_version, self.constants.piixata_path, lambda: self.model in ModelArray.IDEPatch),
|
||||||
# Hibernation Tests
|
|
||||||
#("CpuTscSync.kext", self.constants.cputscsync, self.constants.cputscsync_path, lambda: True),
|
|
||||||
#("HibernationFixup.kext", self.constants.hibernationfixup, self.constants.hibernationfixup_path, lambda: True),
|
|
||||||
]:
|
]:
|
||||||
self.enable_kext(name, version, path, check)
|
self.enable_kext(name, version, path, check)
|
||||||
|
|
||||||
|
def wifi_fake_id(self):
|
||||||
|
default_path = True
|
||||||
|
self.enable_kext("AirportBrcmFixup.kext", self.constants.airportbcrmfixup_version, self.constants.airportbcrmfixup_path)
|
||||||
|
self.get_kext_by_bundle_path("AirportBrcmFixup.kext/Contents/PlugIns/AirPortBrcmNIC_Injector.kext")["Enabled"] = True
|
||||||
|
if not self.constants.custom_model:
|
||||||
|
arpt_path: str = subprocess.run([self.constants.gfxutil_path] + f"-v".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.decode()
|
||||||
|
try:
|
||||||
|
arpt_path = [line.strip().split("= ", 1)[1] for line in arpt_path.split("\n") if f"{wifi_vendor}:{wifi_device}".lower() in line.strip()][0]
|
||||||
|
print(f"- Found ARPT device at {arpt_path}")
|
||||||
|
default_path = False
|
||||||
|
except IndexError:
|
||||||
|
print("- Failed to find Device path")
|
||||||
|
default_path = True
|
||||||
|
if default_path is True:
|
||||||
|
if self.model in ModelArray.nvidiaHDEF:
|
||||||
|
# Nvidia chipsets all have the same path to ARPT
|
||||||
|
arpt_path = "PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)"
|
||||||
|
elif self.model in ("iMac7,1", "iMac8,1", "MacPro3,1", "MacBookPro4,1"):
|
||||||
|
arpt_path = "PciRoot(0x0)/Pci(0x1C,0x4)/Pci(0x0,0x0)"
|
||||||
|
elif self.model in ("iMac13,1", "iMac13,2"):
|
||||||
|
arpt_path = "PciRoot(0x0)/Pci(0x1C,0x3)/Pci(0x0,0x0)"
|
||||||
|
elif self.model in ("MacPro4,1", "MacPro5,1"):
|
||||||
|
arpt_path = "PciRoot(0x0)/Pci(0x1C,0x5)/Pci(0x0,0x0)"
|
||||||
|
else:
|
||||||
|
# Assumes we have a laptop with Intel chipset
|
||||||
|
# iMac11,x-12,x also apply
|
||||||
|
arpt_path = "PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)"
|
||||||
|
print(f"- Using known DevicePath {arpt_path}")
|
||||||
|
print("- Applying fake ID for WiFi")
|
||||||
|
self.config["DeviceProperties"]["Add"][arpt_path] = {"device-id": binascii.unhexlify("ba430000"), "compatible": "pci14e4,43ba"}
|
||||||
|
|
||||||
# WiFi patches
|
# WiFi patches
|
||||||
# TODO: -a is not supported in Lion and older, need to add proper fix
|
# TODO: -a is not supported in Lion and older, need to add proper fix
|
||||||
if self.constants.detected_os > self.constants.lion:
|
if self.constants.detected_os > self.constants.lion:
|
||||||
wifi_devices = plistlib.loads(subprocess.run("ioreg -c IOPCIDevice -r -d2 -a".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
try:
|
||||||
wifi_devices = [i for i in wifi_devices if i["vendor-id"] == binascii.unhexlify("E4140000") and i["class-code"] == binascii.unhexlify("00800200")]
|
wifi_devices = plistlib.loads(subprocess.run("ioreg -r -n ARPT -a".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
||||||
|
except ValueError:
|
||||||
|
# Work-around Mac Pros where Wifi card may not be named ARPT (ie. installed in dedicated PCIe card slot)
|
||||||
|
wifi_devices = plistlib.loads(subprocess.run("ioreg -c IOPCIDevice -r -d2 -a".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
||||||
|
vendor_atheros = binascii.unhexlify("E4140000")
|
||||||
|
vendor_broadcom = binascii.unhexlify("8C160000")
|
||||||
|
wifi_devices = [i for i in wifi_devices if i["vendor-id"] == vendor_atheros or i["vendor-id"] == vendor_broadcom and i["class-code"] == binascii.unhexlify("00800200")]
|
||||||
|
try:
|
||||||
|
wifi_vendor = self.hexswap(binascii.hexlify(wifi_devices[0]["vendor-id"]).decode()[:4])
|
||||||
|
wifi_device = self.hexswap(binascii.hexlify(wifi_devices[0]["device-id"]).decode()[:4])
|
||||||
|
wifi_ioname = wifi_devices[0]["IOName"]
|
||||||
|
if not self.constants.custom_model:
|
||||||
|
print(f"- Detected Wifi Card: {wifi_vendor}:{wifi_device}")
|
||||||
|
except IndexError:
|
||||||
|
wifi_devices = ""
|
||||||
|
|
||||||
else:
|
else:
|
||||||
wifi_devices = ""
|
wifi_devices = ""
|
||||||
print("- Can't run Wifi hardware detection on Snow Leopard and older")
|
print("- Can't run Wifi hardware detection on Snow Leopard and older")
|
||||||
if self.constants.wifi_build is True:
|
if self.constants.wifi_build is True:
|
||||||
print("- Skipping Wifi patches on request")
|
print("- Skipping Wifi patches on request")
|
||||||
elif not self.constants.custom_model and wifi_devices and self.hexswap(binascii.hexlify(wifi_devices[0]["device-id"]).decode()[:4]) in ModelArray.nativeWifi:
|
elif not self.constants.custom_model and wifi_devices:
|
||||||
print("- Found supported WiFi card, skipping wifi patches")
|
if wifi_vendor == self.constants.pci_broadcom:
|
||||||
else:
|
if wifi_device in ModelArray.BCM4360Wifi and wifi_ioname not in ["pci14e4,4353", "pci14e4,4331"]:
|
||||||
if self.model in ModelArray.WifiAtheros:
|
print("- Found supported WiFi card, skipping wifi patches")
|
||||||
|
elif wifi_ioname in ["pci14e4,4353", "pci14e4,4331"] or wifi_device in ModelArray.BCM94331Wifi:
|
||||||
|
wifi_fake_id(self)
|
||||||
|
elif wifi_device in ModelArray.BCM94322Wifi:
|
||||||
|
self.enable_kext("IO80211Mojave.kext", self.constants.io80211mojave_version, self.constants.io80211mojave_path)
|
||||||
|
self.get_kext_by_bundle_path("IO80211Mojave.kext/Contents/PlugIns/AirPortBrcm4331.kext")["Enabled"] = True
|
||||||
|
elif wifi_device in ModelArray.BCM94328Wifi:
|
||||||
|
self.enable_kext("corecaptureElCap.kext", self.constants.corecaptureelcap_version, self.constants.corecaptureelcap_path)
|
||||||
|
self.enable_kext("IO80211ElCap.kext", self.constants.io80211elcap_version, self.constants.io80211elcap_path)
|
||||||
|
self.get_kext_by_bundle_path("IO80211ElCap.kext/Contents/PlugIns/AppleAirPortBrcm43224.kext")["Enabled"] = True
|
||||||
|
elif wifi_vendor == self.constants.pci_atheros and wifi_device in ModelArray.AtherosWifi:
|
||||||
self.enable_kext("IO80211HighSierra.kext", self.constants.io80211high_sierra_version, self.constants.io80211high_sierra_path)
|
self.enable_kext("IO80211HighSierra.kext", self.constants.io80211high_sierra_version, self.constants.io80211high_sierra_path)
|
||||||
self.get_kext_by_bundle_path("IO80211HighSierra.kext/Contents/PlugIns/AirPortAtheros40.kext")["Enabled"] = True
|
self.get_kext_by_bundle_path("IO80211HighSierra.kext/Contents/PlugIns/AirPortAtheros40.kext")["Enabled"] = True
|
||||||
|
else:
|
||||||
if self.model in ModelArray.WifiBCM94331:
|
if self.model in ModelArray.WifiBCM94331:
|
||||||
self.enable_kext("AirportBrcmFixup.kext", self.constants.airportbcrmfixup_version, self.constants.airportbcrmfixup_path)
|
wifi_fake_id(self)
|
||||||
self.get_kext_by_bundle_path("AirportBrcmFixup.kext/Contents/PlugIns/AirPortBrcmNIC_Injector.kext")["Enabled"] = True
|
elif self.model in ModelArray.WifiBCM94322:
|
||||||
|
|
||||||
if self.model in ModelArray.EthernetNvidia:
|
|
||||||
# Nvidia chipsets all have the same path to ARPT
|
|
||||||
property_path = "PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)"
|
|
||||||
if self.model in ("MacBookAir2,1", "MacBookAir3,1", "MacBookAir3,2"):
|
|
||||||
property_path = "PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)"
|
|
||||||
elif self.model in ("iMac7,1", "iMac8,1"):
|
|
||||||
property_path = "PciRoot(0x0)/Pci(0x1C,0x4)/Pci(0x0,0x0)"
|
|
||||||
elif self.model in ("iMac13,1", "iMac13,2"):
|
|
||||||
property_path = "PciRoot(0x0)/Pci(0x1C,0x3)/Pci(0x0,0x0)"
|
|
||||||
elif self.model == "MacPro5,1":
|
|
||||||
property_path = "PciRoot(0x0)/Pci(0x1C,0x5)/Pci(0x0,0x0)"
|
|
||||||
else:
|
|
||||||
# Assumes we have a laptop with Intel chipset
|
|
||||||
property_path = "PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)"
|
|
||||||
print("- Applying fake ID for WiFi")
|
|
||||||
self.config["DeviceProperties"]["Add"][property_path] = {"device-id": binascii.unhexlify("ba430000"), "compatible": "pci14e4,43ba"}
|
|
||||||
if self.model in ModelArray.WifiBCM94322:
|
|
||||||
self.enable_kext("IO80211Mojave.kext", self.constants.io80211mojave_version, self.constants.io80211mojave_path)
|
self.enable_kext("IO80211Mojave.kext", self.constants.io80211mojave_version, self.constants.io80211mojave_path)
|
||||||
self.get_kext_by_bundle_path("IO80211Mojave.kext/Contents/PlugIns/AirPortBrcm4331.kext")["Enabled"] = True
|
self.get_kext_by_bundle_path("IO80211Mojave.kext/Contents/PlugIns/AirPortBrcm4331.kext")["Enabled"] = True
|
||||||
if self.model in ModelArray.WifiBCM94328:
|
elif self.model in ModelArray.WifiBCM94328:
|
||||||
self.enable_kext("corecaptureElCap.kext", self.constants.corecaptureelcap_version, self.constants.corecaptureelcap_path)
|
self.enable_kext("corecaptureElCap.kext", self.constants.corecaptureelcap_version, self.constants.corecaptureelcap_path)
|
||||||
self.enable_kext("IO80211ElCap.kext", self.constants.io80211elcap_version, self.constants.io80211elcap_path)
|
self.enable_kext("IO80211ElCap.kext", self.constants.io80211elcap_version, self.constants.io80211elcap_path)
|
||||||
self.get_kext_by_bundle_path("IO80211ElCap.kext/Contents/PlugIns/AppleAirPortBrcm43224.kext")["Enabled"] = True
|
self.get_kext_by_bundle_path("IO80211ElCap.kext/Contents/PlugIns/AppleAirPortBrcm43224.kext")["Enabled"] = True
|
||||||
|
elif self.model in ModelArray.WifiAtheros:
|
||||||
|
self.enable_kext("IO80211HighSierra.kext", self.constants.io80211high_sierra_version, self.constants.io80211high_sierra_path)
|
||||||
|
self.get_kext_by_bundle_path("IO80211HighSierra.kext/Contents/PlugIns/AirPortAtheros40.kext")["Enabled"] = True
|
||||||
|
|
||||||
# CPUFriend
|
# CPUFriend
|
||||||
pp_map_path = Path(self.constants.current_path) / Path(f"payloads/Kexts/Plists/PlatformPlugin/{self.model}/Info.plist")
|
pp_map_path = Path(self.constants.platform_plugin_plist_path) / Path(f"{self.model}/Info.plist")
|
||||||
if self.model not in ModelArray.NoAPFSsupport:
|
if self.model not in ModelArray.NoAPFSsupport:
|
||||||
Path(self.constants.pp_kext_folder).mkdir()
|
Path(self.constants.pp_kext_folder).mkdir()
|
||||||
Path(self.constants.pp_contents_folder).mkdir()
|
Path(self.constants.pp_contents_folder).mkdir()
|
||||||
@@ -163,7 +228,8 @@ class BuildOpenCore:
|
|||||||
shutil.copy(self.constants.pci_ssdt_path, self.constants.acpi_path)
|
shutil.copy(self.constants.pci_ssdt_path, self.constants.acpi_path)
|
||||||
|
|
||||||
# USB Map
|
# USB Map
|
||||||
usb_map_path = Path(self.constants.current_path) / Path(f"payloads/Kexts/Plists/AppleUSBMaps/Info.plist")
|
usb_map_path = Path(self.constants.plist_folder_path) / Path("AppleUSBMaps/Info.plist")
|
||||||
|
# iMac7,1 kernel panics with USB map installed, remove for time being until properly debugged
|
||||||
if usb_map_path.exists():
|
if usb_map_path.exists():
|
||||||
print(f"- Adding USB-Map.kext")
|
print(f"- Adding USB-Map.kext")
|
||||||
Path(self.constants.map_kext_folder).mkdir()
|
Path(self.constants.map_kext_folder).mkdir()
|
||||||
@@ -171,13 +237,13 @@ class BuildOpenCore:
|
|||||||
shutil.copy(usb_map_path, self.constants.map_contents_folder)
|
shutil.copy(usb_map_path, self.constants.map_contents_folder)
|
||||||
self.get_kext_by_bundle_path("USB-Map.kext")["Enabled"] = True
|
self.get_kext_by_bundle_path("USB-Map.kext")["Enabled"] = True
|
||||||
|
|
||||||
agdp_map_path = Path(self.constants.current_path) / Path(f"payloads/Kexts/Plists/AppleGraphicsDevicePolicy/Info.plist")
|
agdp_map_path = Path(self.constants.plist_folder_path) / Path("AppleGraphicsDevicePolicy/Info.plist")
|
||||||
agpm_map_path = Path(self.constants.current_path) / Path(f"payloads/Kexts/Plists/AppleGraphicsPowerManagement/Info.plist")
|
agpm_map_path = Path(self.constants.plist_folder_path) / Path("AppleGraphicsPowerManagement/Info.plist")
|
||||||
amc_map_path = Path(self.constants.current_path) / Path(f"payloads/Kexts/Plists/AppleMuxControl/Info.plist")
|
amc_map_path = Path(self.constants.plist_folder_path) / Path("AppleMuxControl/Info.plist")
|
||||||
|
|
||||||
if self.model == "MacBookPro9,1":
|
if self.model == "MacBookPro9,1":
|
||||||
print(f"- Adding Display Map Overrides")
|
print(f"- Adding Display Map Overrides")
|
||||||
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += " agdpmod=vit9696"
|
self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)"] = {"agdpmod": "vit9696"}
|
||||||
Path(self.constants.agdp_kext_folder).mkdir()
|
Path(self.constants.agdp_kext_folder).mkdir()
|
||||||
Path(self.constants.agdp_contents_folder).mkdir()
|
Path(self.constants.agdp_contents_folder).mkdir()
|
||||||
Path(self.constants.agpm_kext_folder).mkdir()
|
Path(self.constants.agpm_kext_folder).mkdir()
|
||||||
@@ -195,7 +261,12 @@ class BuildOpenCore:
|
|||||||
# AGPM Patch
|
# AGPM Patch
|
||||||
if self.model in ModelArray.DualGPUPatch:
|
if self.model in ModelArray.DualGPUPatch:
|
||||||
print("- Adding dual GPU patch")
|
print("- Adding dual GPU patch")
|
||||||
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += " agdpmod=pikera"
|
if self.model in ModelArray.IntelNvidiaDRM and self.constants.drm_support is True:
|
||||||
|
print("- Prioritizing DRM support over Intel QuickSync")
|
||||||
|
self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)"] = {"agdpmod": "pikera", "shikigva": 256}
|
||||||
|
self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x2,0x0)"] = {"disable-gpu-min": "20.0.0"}
|
||||||
|
else:
|
||||||
|
self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)"] = {"agdpmod": "pikera"}
|
||||||
|
|
||||||
# HiDPI OpenCanopy and FileVault
|
# HiDPI OpenCanopy and FileVault
|
||||||
if self.model in ModelArray.HiDPIpicker:
|
if self.model in ModelArray.HiDPIpicker:
|
||||||
@@ -208,36 +279,47 @@ class BuildOpenCore:
|
|||||||
hdef_path = "PciRoot(0x0)/Pci(0x8,0x0)" if self.model in ModelArray.nvidiaHDEF else "PciRoot(0x0)/Pci(0x1b,0x0)"
|
hdef_path = "PciRoot(0x0)/Pci(0x8,0x0)" if self.model in ModelArray.nvidiaHDEF else "PciRoot(0x0)/Pci(0x1b,0x0)"
|
||||||
# In AppleALC, MacPro3,1's original layout is already in use, forcing layout 13 instead
|
# In AppleALC, MacPro3,1's original layout is already in use, forcing layout 13 instead
|
||||||
if self.model == "MacPro3,1":
|
if self.model == "MacPro3,1":
|
||||||
self.config["DeviceProperties"]["Add"][hdef_path] = {"apple-layout-id": 90, "use-apple-layout-id": 1, "alc-layout-id": 13,}
|
self.config["DeviceProperties"]["Add"][hdef_path] = {"apple-layout-id": 90, "use-apple-layout-id": 1, "alc-layout-id": 13, }
|
||||||
else:
|
else:
|
||||||
self.config["DeviceProperties"]["Add"][hdef_path] = {"apple-layout-id": 90, "use-apple-layout-id": 1, "use-layout-id": 1,}
|
self.config["DeviceProperties"]["Add"][hdef_path] = {"apple-layout-id": 90, "use-apple-layout-id": 1, "use-layout-id": 1, }
|
||||||
|
|
||||||
|
|
||||||
def nvidia_patch(self):
|
def nvidia_patch(self):
|
||||||
self.constants.custom_mxm_gpu = True
|
self.constants.custom_mxm_gpu = True
|
||||||
print("- Adding Nvidia Brightness Control patches")
|
if self.model == "iMac11,1":
|
||||||
if self.model in ["iMac11,1", "iMac11,2", "iMac11,3"]:
|
print("- Adding Nvidia Brightness Control and DRM patches")
|
||||||
backlight_path = "PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)"
|
backlight_path = "PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)"
|
||||||
self.config["DeviceProperties"]["Add"][backlight_path] = {"@0,backlight-control": binascii.unhexlify("01000000"), "@0,built-in": binascii.unhexlify("01000000")}
|
self.config["DeviceProperties"]["Add"][backlight_path] = {"@0,backlight-control": binascii.unhexlify("01000000"), "@0,built-in": binascii.unhexlify("01000000"), "shikigva": 256, "agdpmod": "vit9696"}
|
||||||
shutil.copy(self.constants.backlight_path, self.constants.kexts_path)
|
shutil.copy(self.constants.backlight_path, self.constants.kexts_path)
|
||||||
self.get_kext_by_bundle_path("AppleBacklightFixup.kext")["Enabled"] = True
|
self.get_kext_by_bundle_path("AppleBacklightFixup.kext")["Enabled"] = True
|
||||||
elif self.model in ["iMac12,1", "iMac12,2"]:
|
elif self.model == "iMac11,3":
|
||||||
|
print("- Adding Nvidia Brightness Control and DRM patches")
|
||||||
|
backlight_path = "PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)"
|
||||||
|
self.config["DeviceProperties"]["Add"][backlight_path] = {"@0,backlight-control": binascii.unhexlify("01000000"), "@0,built-in": binascii.unhexlify("01000000"), "shikigva": 256, "agdpmod": "vit9696"}
|
||||||
|
shutil.copy(self.constants.backlight_path, self.constants.kexts_path)
|
||||||
|
self.get_kext_by_bundle_path("AppleBacklightFixup.kext")["Enabled"] = True
|
||||||
|
elif self.model in ["iMac11,2", "iMac12,1", "iMac12,2"]:
|
||||||
|
print("- Adding Nvidia Brightness Control and DRM patches")
|
||||||
backlight_path = "PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)"
|
backlight_path = "PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)"
|
||||||
self.config["DeviceProperties"]["Add"][backlight_path] = {"@0,backlight-control": binascii.unhexlify("01000000"), "@0,built-in": binascii.unhexlify("01000000")}
|
self.config["DeviceProperties"]["Add"][backlight_path] = {"@0,backlight-control": binascii.unhexlify("01000000"), "@0,built-in": binascii.unhexlify("01000000"), "shikigva": 256}
|
||||||
print("- Disabling unsupported iGPU")
|
print("- Disabling unsupported iGPU")
|
||||||
self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x2,0x0)"] = {"name": binascii.unhexlify("23646973706C6179"), "IOName": "#display", "class-code": binascii.unhexlify("FFFFFFFF")}
|
self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x2,0x0)"] = {"name": binascii.unhexlify("23646973706C6179"), "IOName": "#display", "class-code": binascii.unhexlify("FFFFFFFF")}
|
||||||
shutil.copy(self.constants.backlight_path, self.constants.kexts_path)
|
shutil.copy(self.constants.backlight_path, self.constants.kexts_path)
|
||||||
self.get_kext_by_bundle_path("AppleBacklightFixup.kext")["Enabled"] = True
|
self.get_kext_by_bundle_path("AppleBacklightFixup.kext")["Enabled"] = True
|
||||||
else:
|
|
||||||
print("- Failed to determine model")
|
|
||||||
|
|
||||||
def amd_patch(self):
|
def amd_patch(self):
|
||||||
self.constants.custom_mxm_gpu = True
|
self.constants.custom_mxm_gpu = True
|
||||||
print("- Adding AMD DRM patches")
|
print("- Adding AMD DRM patches")
|
||||||
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += " shikigva=80 unfairgva=1"
|
if self.model == "iMac11,1":
|
||||||
if self.model in ["iMac12,1", "iMac12,2"]:
|
self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)"] = {"shikigva": 80, "unfairgva": 1, "agdpmod": "vit9696"}
|
||||||
|
elif self.model == "iMac11,3":
|
||||||
|
self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)"] = {"shikigva": 80, "unfairgva": 1}
|
||||||
|
elif self.model in ["iMac11,2", "iMac12,1", "iMac12,2"]:
|
||||||
|
self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)"] = {"shikigva": 80, "unfairgva": 1}
|
||||||
print("- Disabling unsupported iGPU")
|
print("- Disabling unsupported iGPU")
|
||||||
self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x2,0x0)"] = {"name": binascii.unhexlify("23646973706C6179"), "IOName": "#display", "class-code": binascii.unhexlify("FFFFFFFF")}
|
self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x2,0x0)"] = {"name": binascii.unhexlify("23646973706C6179"), "IOName": "#display", "class-code": binascii.unhexlify("FFFFFFFF")}
|
||||||
|
elif self.model == "iMac10,1":
|
||||||
|
self.enable_kext("AAAMouSSE.kext", self.constants.mousse_version, self.constants.mousse_path)
|
||||||
|
|
||||||
# Check GPU Vendor
|
# Check GPU Vendor
|
||||||
if self.constants.metal_build is True:
|
if self.constants.metal_build is True:
|
||||||
@@ -248,20 +330,16 @@ class BuildOpenCore:
|
|||||||
nvidia_patch(self)
|
nvidia_patch(self)
|
||||||
else:
|
else:
|
||||||
print("- Failed to find vendor")
|
print("- Failed to find vendor")
|
||||||
elif self.constants.custom_model == "None":
|
elif not self.constants.custom_model:
|
||||||
current_gpu: str = subprocess.run("system_profiler SPDisplaysDataType".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.decode()
|
self.check_pciid(True)
|
||||||
self.constants.current_gpuv = [line.strip().split(": ", 1)[1] for line in current_gpu.split("\n") if line.strip().startswith(("Vendor"))][0]
|
if self.constants.dgpu_vendor == self.constants.pci_amd_ati and self.constants.dgpu_device in ModelArray.AMDMXMGPUs:
|
||||||
self.constants.current_gpud = [line.strip().split(": ", 1)[1] for line in current_gpu.split("\n") if line.strip().startswith(("Device ID"))][0]
|
|
||||||
print(f"- Detected GPU: {self.constants.current_gpuv} {self.constants.current_gpud}")
|
|
||||||
if (self.constants.current_gpuv == "AMD (0x1002)") & (self.constants.current_gpud in ModelArray.AMDMXMGPUs):
|
|
||||||
amd_patch(self)
|
amd_patch(self)
|
||||||
elif (self.constants.current_gpuv == "NVIDIA (0x10de)") & (self.constants.current_gpud in ModelArray.NVIDIAMXMGPUs):
|
elif self.constants.dgpu_vendor == self.constants.pci_nvidia and self.constants.dgpu_device in ModelArray.NVIDIAMXMGPUs:
|
||||||
nvidia_patch(self)
|
nvidia_patch(self)
|
||||||
elif self.model in ModelArray.MacPro71:
|
if self.model in ModelArray.MacPro71:
|
||||||
print("- Adding Mac Pro, Xserve DRM patches")
|
print("- Adding Mac Pro, Xserve DRM patches")
|
||||||
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += " shikigva=128 unfairgva=1 -wegtree"
|
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += " shikigva=128 unfairgva=1 -wegtree"
|
||||||
|
|
||||||
|
|
||||||
# Add OpenCanopy
|
# Add OpenCanopy
|
||||||
print("- Adding OpenCanopy GUI")
|
print("- Adding OpenCanopy GUI")
|
||||||
shutil.rmtree(self.constants.resources_path, onerror=rmtree_handler)
|
shutil.rmtree(self.constants.resources_path, onerror=rmtree_handler)
|
||||||
@@ -283,7 +361,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
|
||||||
|
|
||||||
#DEBUG Settings
|
# DEBUG Settings
|
||||||
if self.constants.verbose_debug is True:
|
if self.constants.verbose_debug is True:
|
||||||
print("- Enabling Verbose boot")
|
print("- Enabling Verbose boot")
|
||||||
self.config["Kernel"]["Quirks"]["PanicNoKextDump"] = True
|
self.config["Kernel"]["Quirks"]["PanicNoKextDump"] = True
|
||||||
@@ -344,15 +422,7 @@ class BuildOpenCore:
|
|||||||
spoofed_board = "Mac-7BA5B2D9E42DDD94"
|
spoofed_board = "Mac-7BA5B2D9E42DDD94"
|
||||||
elif self.model in ModelArray.iMac151:
|
elif self.model in ModelArray.iMac151:
|
||||||
# Check for upgraded GPUs on iMacs
|
# Check for upgraded GPUs on iMacs
|
||||||
if self.constants.metal_build is True:
|
if self.constants.drm_support is True:
|
||||||
print("- Spoofing to iMacPro1,1")
|
|
||||||
spoofed_model = "iMacPro1,1"
|
|
||||||
spoofed_board = "Mac-7BA5B2D9E42DDD94"
|
|
||||||
elif (self.constants.current_gpuv == "AMD (0x1002)") & (self.constants.current_gpud in ModelArray.AMDMXMGPUs) & (self.constants.custom_model == "None"):
|
|
||||||
print("- Spoofing to iMacPro1,1")
|
|
||||||
spoofed_model = "iMacPro1,1"
|
|
||||||
spoofed_board = "Mac-7BA5B2D9E42DDD94"
|
|
||||||
elif (self.constants.current_gpuv == "NVIDIA (0x10de)") & (self.constants.current_gpud in ModelArray.NVIDIAMXMGPUs) & (self.constants.custom_model == "None"):
|
|
||||||
print("- Spoofing to iMacPro1,1")
|
print("- Spoofing to iMacPro1,1")
|
||||||
spoofed_model = "iMacPro1,1"
|
spoofed_model = "iMacPro1,1"
|
||||||
spoofed_board = "Mac-7BA5B2D9E42DDD94"
|
spoofed_board = "Mac-7BA5B2D9E42DDD94"
|
||||||
@@ -377,12 +447,14 @@ class BuildOpenCore:
|
|||||||
self.config["PlatformInfo"]["PlatformNVRAM"]["BID"] = self.spoofed_board
|
self.config["PlatformInfo"]["PlatformNVRAM"]["BID"] = self.spoofed_board
|
||||||
self.config["PlatformInfo"]["SMBIOS"]["BoardProduct"] = self.spoofed_board
|
self.config["PlatformInfo"]["SMBIOS"]["BoardProduct"] = self.spoofed_board
|
||||||
self.config["PlatformInfo"]["UpdateNVRAM"] = True
|
self.config["PlatformInfo"]["UpdateNVRAM"] = True
|
||||||
|
|
||||||
def moderate_serial_patch(self):
|
def moderate_serial_patch(self):
|
||||||
self.config["PlatformInfo"]["Automatic"] = True
|
self.config["PlatformInfo"]["Automatic"] = True
|
||||||
self.config["PlatformInfo"]["UpdateDataHub"] = True
|
self.config["PlatformInfo"]["UpdateDataHub"] = True
|
||||||
self.config["PlatformInfo"]["UpdateNVRAM"] = True
|
self.config["PlatformInfo"]["UpdateNVRAM"] = True
|
||||||
self.config["UEFI"]["ProtocolOverrides"]["DataHub"] = True
|
self.config["UEFI"]["ProtocolOverrides"]["DataHub"] = True
|
||||||
self.config["PlatformInfo"]["Generic"]["SystemProductName"] = self.spoofed_model
|
self.config["PlatformInfo"]["Generic"]["SystemProductName"] = self.spoofed_model
|
||||||
|
|
||||||
def adanced_serial_patch(self):
|
def adanced_serial_patch(self):
|
||||||
macserial_output = subprocess.run([self.constants.macserial_path] + f"-g -m {self.spoofed_model} -n 1".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
macserial_output = subprocess.run([self.constants.macserial_path] + f"-g -m {self.spoofed_model} -n 1".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||||
macserial_output = macserial_output.stdout.decode().strip().split(" | ")
|
macserial_output = macserial_output.stdout.decode().strip().split(" | ")
|
||||||
@@ -438,6 +510,12 @@ class BuildOpenCore:
|
|||||||
plistlib.dump(agpm_config, Path(new_agpm_ls).open("wb"), sort_keys=True)
|
plistlib.dump(agpm_config, Path(new_agpm_ls).open("wb"), sort_keys=True)
|
||||||
plistlib.dump(amc_config, Path(new_amc_ls).open("wb"), sort_keys=True)
|
plistlib.dump(amc_config, Path(new_amc_ls).open("wb"), sort_keys=True)
|
||||||
|
|
||||||
|
#if self.model in ["MacBookPro8,2", "MacBookPro8,3"]:
|
||||||
|
# print("- Disabling unsupported TeraScale 2 dGPU")
|
||||||
|
# self.config["NVRAM"]["Add"]["FA4CE28D-B62F-4C99-9CC3-6815686E30F9"]["gpu-power-prefs"] = binascii.unhexlify("01000000")
|
||||||
|
# self.config["NVRAM"]["Delete"]["FA4CE28D-B62F-4C99-9CC3-6815686E30F9"] += ["gpu-power-prefs"]
|
||||||
|
# self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)"] = {"name": binascii.unhexlify("23646973706C6179"), "IOName": "#display", "class-code": binascii.unhexlify("FFFFFFFF")}
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_item_by_kv(iterable, key, value):
|
def get_item_by_kv(iterable, key, value):
|
||||||
item = None
|
item = None
|
||||||
@@ -474,6 +552,10 @@ class BuildOpenCore:
|
|||||||
|
|
||||||
def cleanup(self):
|
def cleanup(self):
|
||||||
print("- Cleaning up files")
|
print("- Cleaning up files")
|
||||||
|
# Remove unused kexts
|
||||||
|
for kext in list(self.config["Kernel"]["Add"]):
|
||||||
|
if not kext["Enabled"]:
|
||||||
|
self.config["Kernel"]["Add"].remove(kext)
|
||||||
plistlib.dump(self.config, Path(self.constants.plist_path).open("wb"), sort_keys=True)
|
plistlib.dump(self.config, Path(self.constants.plist_path).open("wb"), sort_keys=True)
|
||||||
for kext in self.constants.kexts_path.rglob("*.zip"):
|
for kext in self.constants.kexts_path.rglob("*.zip"):
|
||||||
with zipfile.ZipFile(kext) as zip_file:
|
with zipfile.ZipFile(kext) as zip_file:
|
||||||
@@ -501,18 +583,18 @@ class BuildOpenCore:
|
|||||||
self.cleanup()
|
self.cleanup()
|
||||||
self.sign_files()
|
self.sign_files()
|
||||||
print("")
|
print("")
|
||||||
print("Your OpenCore EFI has been built at:")
|
print(f"Your OpenCore EFI for {self.model} has been built at:")
|
||||||
print(f" {self.constants.opencore_release_folder}")
|
print(f" {self.constants.opencore_release_folder}")
|
||||||
print("")
|
print("")
|
||||||
if self.constants.gui_mode is False:
|
if self.constants.gui_mode is False:
|
||||||
input("Press [Enter] to go back.\n")
|
input("Press [Enter] to go back.\n")
|
||||||
|
|
||||||
def copy_efi(self):
|
def copy_efi(self):
|
||||||
utilities.cls()
|
Utilities.cls()
|
||||||
utilities.header(["Installing OpenCore to Drive"])
|
Utilities.header(["Installing OpenCore to Drive"])
|
||||||
|
|
||||||
if not self.constants.opencore_release_folder.exists():
|
if not self.constants.opencore_release_folder.exists():
|
||||||
utilities.TUIOnlyPrint(
|
Utilities.TUIOnlyPrint(
|
||||||
["Installing OpenCore to Drive"],
|
["Installing OpenCore to Drive"],
|
||||||
"Press [Enter] to go back.\n",
|
"Press [Enter] to go back.\n",
|
||||||
[
|
[
|
||||||
@@ -548,7 +630,7 @@ Please build OpenCore first!"""
|
|||||||
# Avoid crashing with CDs installed
|
# Avoid crashing with CDs installed
|
||||||
continue
|
continue
|
||||||
# TODO: Advanced mode
|
# TODO: Advanced mode
|
||||||
menu = utilities.TUIMenu(
|
menu = Utilities.TUIMenu(
|
||||||
["Select Disk"],
|
["Select Disk"],
|
||||||
"Please select the disk you would like to install OpenCore to: ",
|
"Please select the disk you would like to install OpenCore to: ",
|
||||||
in_between=["Missing disks? Ensure they have an EFI or FAT32 partition."],
|
in_between=["Missing disks? Ensure they have an EFI or FAT32 partition."],
|
||||||
@@ -568,7 +650,7 @@ Please build OpenCore first!"""
|
|||||||
disk_identifier = "disk" + response
|
disk_identifier = "disk" + response
|
||||||
selected_disk = all_disks[disk_identifier]
|
selected_disk = all_disks[disk_identifier]
|
||||||
|
|
||||||
menu = utilities.TUIMenu(
|
menu = Utilities.TUIMenu(
|
||||||
["Select Partition"],
|
["Select Partition"],
|
||||||
"Please select the partition you would like to install OpenCore to: ",
|
"Please select the partition you would like to install OpenCore to: ",
|
||||||
return_number_instead_of_direct_call=True,
|
return_number_instead_of_direct_call=True,
|
||||||
@@ -610,7 +692,7 @@ Please build OpenCore first!"""
|
|||||||
# cancelled prompt
|
# cancelled prompt
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
utilities.TUIOnlyPrint(
|
Utilities.TUIOnlyPrint(
|
||||||
["Copying OpenCore"], "Press [Enter] to go back.\n", ["An error occurred!"] + result.stderr.decode().split("\n") + ["", "Please report this to the devs at GitHub."]
|
["Copying OpenCore"], "Press [Enter] to go back.\n", ["An error occurred!"] + result.stderr.decode().split("\n") + ["", "Please report this to the devs at GitHub."]
|
||||||
).start()
|
).start()
|
||||||
return
|
return
|
||||||
@@ -625,8 +707,8 @@ Please build OpenCore first!"""
|
|||||||
ssd_type = False
|
ssd_type = False
|
||||||
mount_path = Path(partition_info["MountPoint"])
|
mount_path = Path(partition_info["MountPoint"])
|
||||||
disk_type = partition_info["BusProtocol"]
|
disk_type = partition_info["BusProtocol"]
|
||||||
utilities.cls()
|
Utilities.cls()
|
||||||
utilities.header(["Copying OpenCore"])
|
Utilities.header(["Copying OpenCore"])
|
||||||
|
|
||||||
if mount_path.exists():
|
if mount_path.exists():
|
||||||
if (mount_path / Path("EFI/OC")).exists():
|
if (mount_path / Path("EFI/OC")).exists():
|
||||||
@@ -635,9 +717,16 @@ Please build OpenCore first!"""
|
|||||||
if (mount_path / Path("System")).exists():
|
if (mount_path / Path("System")).exists():
|
||||||
print("- Removing preexisting System folder")
|
print("- Removing preexisting System folder")
|
||||||
shutil.rmtree(mount_path / Path("System"), onerror=rmtree_handler)
|
shutil.rmtree(mount_path / Path("System"), onerror=rmtree_handler)
|
||||||
print("- Coping OpenCore onto EFI partition")
|
print("- Copying OpenCore onto EFI partition")
|
||||||
shutil.copytree(self.constants.opencore_release_folder / Path("EFI/OC"), mount_path / Path("EFI/OC"))
|
shutil.copytree(self.constants.opencore_release_folder / Path("EFI/OC"), mount_path / Path("EFI/OC"))
|
||||||
shutil.copytree(self.constants.opencore_release_folder / Path("System"), mount_path / Path("System"))
|
shutil.copytree(self.constants.opencore_release_folder / Path("System"), mount_path / Path("System"))
|
||||||
|
if self.constants.boot_efi is True:
|
||||||
|
print("- Converting Bootstrap to BOOTx64.efi")
|
||||||
|
if (mount_path / Path("EFI/BOOT")).exists():
|
||||||
|
shutil.rmtree(mount_path / Path("EFI/BOOT"), onerror=rmtree_handler)
|
||||||
|
Path(mount_path / Path("EFI/BOOT")).mkdir()
|
||||||
|
shutil.move(mount_path / Path("System/Library/CoreServices/boot.efi"), mount_path / Path("EFI/BOOT/BOOTx64.efi"))
|
||||||
|
shutil.rmtree(mount_path / Path("System"), onerror=rmtree_handler)
|
||||||
# Array filled with common SD Card names
|
# Array filled with common SD Card names
|
||||||
# Note most USB-based SD Card readers generally report as "Storage Device", and no reliable way to detect further
|
# Note most USB-based SD Card readers generally report as "Storage Device", and no reliable way to detect further
|
||||||
if sd_type in ["SD Card Reader", "SD/MMC"]:
|
if sd_type in ["SD Card Reader", "SD/MMC"]:
|
||||||
@@ -653,9 +742,11 @@ Please build OpenCore first!"""
|
|||||||
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")
|
||||||
subprocess.run(f"dot_clean '{mount_path}'".split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
subprocess.run(f"dot_clean {mount_path}".split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
|
print("- Unmounting EFI partition")
|
||||||
|
subprocess.run(f"diskutil umount {mount_path}".split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
print("- OpenCore transfer complete")
|
print("- OpenCore transfer complete")
|
||||||
print("\nPress [Enter] to continue.\n")
|
print("\nPress [Enter] to continue.\n")
|
||||||
input()
|
input()
|
||||||
else:
|
else:
|
||||||
utilities.TUIOnlyPrint(["Copying OpenCore"], "Press [Enter] to go back.\n", ["EFI failed to mount!", "Please report this to the devs at GitHub."]).start()
|
Utilities.TUIOnlyPrint(["Copying OpenCore"], "Press [Enter] to go back.\n", ["EFI failed to mount!", "Please report this to the devs at GitHub."]).start()
|
||||||
@@ -2,9 +2,13 @@
|
|||||||
# Copyright (C) 2020-2021, Dhinak G, Mykola Grymalyuk
|
# Copyright (C) 2020-2021, Dhinak G, Mykola Grymalyuk
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
|
|
||||||
import subprocess, sys, time, platform
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
import platform
|
||||||
|
|
||||||
|
from Resources import Build, ModelArray, Constants, SysPatch, Utilities
|
||||||
|
|
||||||
from Resources import build, ModelArray, Constants, SysPatch, utilities
|
|
||||||
|
|
||||||
class MenuOptions:
|
class MenuOptions:
|
||||||
def __init__(self, model, versions):
|
def __init__(self, model, versions):
|
||||||
@@ -12,8 +16,8 @@ class MenuOptions:
|
|||||||
self.constants: Constants.Constants = versions
|
self.constants: Constants.Constants = versions
|
||||||
|
|
||||||
def change_os(self):
|
def change_os(self):
|
||||||
utilities.cls()
|
Utilities.cls()
|
||||||
utilities.header(["Select Patcher's Target OS"])
|
Utilities.header(["Select Patcher's Target OS"])
|
||||||
print(f"""
|
print(f"""
|
||||||
Minimum Target:\t{self.constants.min_os_support}
|
Minimum Target:\t{self.constants.min_os_support}
|
||||||
Maximum Target:\t{self.constants.max_os_support}
|
Maximum Target:\t{self.constants.max_os_support}
|
||||||
@@ -30,8 +34,8 @@ Current target:\t{self.constants.os_support}
|
|||||||
ModelArray.SupportedSMBIOS = ModelArray.SupportedSMBIOS12
|
ModelArray.SupportedSMBIOS = ModelArray.SupportedSMBIOS12
|
||||||
|
|
||||||
def change_verbose(self):
|
def change_verbose(self):
|
||||||
utilities.cls()
|
Utilities.cls()
|
||||||
utilities.header(["Set Verbose mode"])
|
Utilities.header(["Set Verbose mode"])
|
||||||
change_menu = input("Enable Verbose mode(y/n): ")
|
change_menu = input("Enable Verbose mode(y/n): ")
|
||||||
if change_menu in {"y", "Y", "yes", "Yes"}:
|
if change_menu in {"y", "Y", "yes", "Yes"}:
|
||||||
self.constants.verbose_debug = True
|
self.constants.verbose_debug = True
|
||||||
@@ -41,8 +45,8 @@ Current target:\t{self.constants.os_support}
|
|||||||
print("Invalid option")
|
print("Invalid option")
|
||||||
|
|
||||||
def change_oc(self):
|
def change_oc(self):
|
||||||
utilities.cls()
|
Utilities.cls()
|
||||||
utilities.header(["Set OpenCore DEBUG mode"])
|
Utilities.header(["Set OpenCore DEBUG mode"])
|
||||||
change_menu = input("Enable OpenCore DEBUG mode(y/n): ")
|
change_menu = input("Enable OpenCore DEBUG mode(y/n): ")
|
||||||
if change_menu in {"y", "Y", "yes", "Yes"}:
|
if change_menu in {"y", "Y", "yes", "Yes"}:
|
||||||
self.constants.opencore_debug = True
|
self.constants.opencore_debug = True
|
||||||
@@ -52,9 +56,10 @@ Current target:\t{self.constants.os_support}
|
|||||||
self.constants.opencore_build = "RELEASE"
|
self.constants.opencore_build = "RELEASE"
|
||||||
else:
|
else:
|
||||||
print("Invalid option")
|
print("Invalid option")
|
||||||
|
|
||||||
def change_kext(self):
|
def change_kext(self):
|
||||||
utilities.cls()
|
Utilities.cls()
|
||||||
utilities.header(["Set Kext DEBUG mode"])
|
Utilities.header(["Set Kext DEBUG mode"])
|
||||||
change_menu = input("Enable Kext DEBUG mode(y/n): ")
|
change_menu = input("Enable Kext DEBUG mode(y/n): ")
|
||||||
if change_menu in {"y", "Y", "yes", "Yes"}:
|
if change_menu in {"y", "Y", "yes", "Yes"}:
|
||||||
self.constants.kext_debug = True
|
self.constants.kext_debug = True
|
||||||
@@ -64,8 +69,8 @@ Current target:\t{self.constants.os_support}
|
|||||||
print("Invalid option")
|
print("Invalid option")
|
||||||
|
|
||||||
def change_metal(self):
|
def change_metal(self):
|
||||||
utilities.cls()
|
Utilities.cls()
|
||||||
utilities.header(["Assume Metal GPU Always in iMac"])
|
Utilities.header(["Assume Metal GPU Always in iMac"])
|
||||||
print("""This is for iMacs that have upgraded Metal GPUs, otherwise
|
print("""This is for iMacs that have upgraded Metal GPUs, otherwise
|
||||||
Patcher assumes based on stock configuration (ie. iMac10,x-12,x)
|
Patcher assumes based on stock configuration (ie. iMac10,x-12,x)
|
||||||
|
|
||||||
@@ -92,8 +97,8 @@ option is for those patching on a different machine or OCLP cannot detect.
|
|||||||
print("Invalid option")
|
print("Invalid option")
|
||||||
|
|
||||||
def change_wifi(self):
|
def change_wifi(self):
|
||||||
utilities.cls()
|
Utilities.cls()
|
||||||
utilities.header(["Assume Upgraded Wifi Always"])
|
Utilities.header(["Assume Upgraded Wifi Always"])
|
||||||
print("""This is for Macs with upgraded wifi cards(ie. BCM94360/2)
|
print("""This is for Macs with upgraded wifi cards(ie. BCM94360/2)
|
||||||
|
|
||||||
Note: Patcher will detect whether hardware has been upgraded regardless, this
|
Note: Patcher will detect whether hardware has been upgraded regardless, this
|
||||||
@@ -108,8 +113,8 @@ option is for those patching on a different machine or cannot detect.
|
|||||||
print("Invalid option")
|
print("Invalid option")
|
||||||
|
|
||||||
def change_serial(self):
|
def change_serial(self):
|
||||||
utilities.cls()
|
Utilities.cls()
|
||||||
utilities.header(["Set SMBIOS Mode"])
|
Utilities.header(["Set SMBIOS Mode"])
|
||||||
print("""This section is for setting how OpenCore generates the SMBIOS
|
print("""This section is for setting how OpenCore generates the SMBIOS
|
||||||
Recommended for adanced users who want control how serials are handled
|
Recommended for adanced users who want control how serials are handled
|
||||||
|
|
||||||
@@ -130,9 +135,10 @@ Note: For new users we recommend leaving as default(1. Minimal)
|
|||||||
self.constants.serial_settings = "Advanced"
|
self.constants.serial_settings = "Advanced"
|
||||||
else:
|
else:
|
||||||
print("Invalid option")
|
print("Invalid option")
|
||||||
|
|
||||||
def change_showpicker(self):
|
def change_showpicker(self):
|
||||||
utilities.cls()
|
Utilities.cls()
|
||||||
utilities.header(["Set OpenCore Picker mode"])
|
Utilities.header(["Set OpenCore Picker mode"])
|
||||||
print("""By default, OpenCore will show its boot picker each time on boot up,
|
print("""By default, OpenCore will show its boot picker each time on boot up,
|
||||||
however this can be disabled by default and be shown on command by repeatedly
|
however this can be disabled by default and be shown on command by repeatedly
|
||||||
pressing the "Esc" key
|
pressing the "Esc" key
|
||||||
@@ -146,13 +152,13 @@ pressing the "Esc" key
|
|||||||
print("Invalid option")
|
print("Invalid option")
|
||||||
|
|
||||||
def change_vault(self):
|
def change_vault(self):
|
||||||
utilities.cls()
|
Utilities.cls()
|
||||||
utilities.header(["Set OpenCore Vaulting"])
|
Utilities.header(["Set OpenCore Vaulting"])
|
||||||
print("""By default, this patcher will sign all your files and ensure none of the
|
print("""By default, this patcher will sign all your files and ensure none of the
|
||||||
contents can be tampered with. However for more advanced users, you may
|
contents can be tampered with. However for more advanced users, you may
|
||||||
want to be able to freely edit the config.plist and files.
|
want to be able to freely edit the config.plist and files.
|
||||||
|
|
||||||
Note: For secuirty reasons, OpenShell will be disabled when Vault is set.
|
Note: For security reasons, OpenShell will be disabled when Vault is set.
|
||||||
|
|
||||||
""")
|
""")
|
||||||
change_menu = input("Enable Vault(y/n): ")
|
change_menu = input("Enable Vault(y/n): ")
|
||||||
@@ -164,8 +170,8 @@ Note: For secuirty reasons, OpenShell will be disabled when Vault is set.
|
|||||||
print("Invalid option")
|
print("Invalid option")
|
||||||
|
|
||||||
def change_sip(self):
|
def change_sip(self):
|
||||||
utilities.cls()
|
Utilities.cls()
|
||||||
utilities.header(["Set SIP and SecureBootModel"])
|
Utilities.header(["Set SIP and SecureBootModel"])
|
||||||
print("""SIP and SecureBootModel are used to ensure proper OTA functionality,
|
print("""SIP and SecureBootModel are used to ensure proper OTA functionality,
|
||||||
however to patch the root volume both of these must be disabled.
|
however to patch the root volume both of these must be disabled.
|
||||||
Only disable is absolutely necessary. SIP value = 0xFEF
|
Only disable is absolutely necessary. SIP value = 0xFEF
|
||||||
@@ -199,8 +205,8 @@ Valid options:
|
|||||||
print("Invalid option")
|
print("Invalid option")
|
||||||
|
|
||||||
def change_imac_nvidia(self):
|
def change_imac_nvidia(self):
|
||||||
utilities.cls()
|
Utilities.cls()
|
||||||
utilities.header(["Force iMac Nvidia Patches"])
|
Utilities.header(["Force iMac Nvidia Patches"])
|
||||||
print("""Specifically for iMac10,x-12,x with Metal Nvidia GPU upgrades
|
print("""Specifically for iMac10,x-12,x with Metal Nvidia GPU upgrades
|
||||||
By default the patcher will try to detect what hardware is
|
By default the patcher will try to detect what hardware is
|
||||||
running, however this will enforce iMac Nvidia Build Patches.
|
running, however this will enforce iMac Nvidia Build Patches.
|
||||||
@@ -213,27 +219,96 @@ running, however this will enforce iMac Nvidia Build Patches.
|
|||||||
else:
|
else:
|
||||||
print("Invalid option")
|
print("Invalid option")
|
||||||
|
|
||||||
def custom_repo(self):
|
def bootstrap_setting(self):
|
||||||
utilities.cls()
|
Utilities.cls()
|
||||||
utilities.header(["Swet custom patch repo"])
|
Utilities.header(["Set Bootstrap method"])
|
||||||
print(f"""For users participating in OpenCore Patcher betas, this is
|
print("""Sets OpenCore's bootstrap method, currently the patcher supports the
|
||||||
where you can add custom repos such as Google Drive links.
|
following options.
|
||||||
|
|
||||||
Valid options:
|
Valid options:
|
||||||
|
|
||||||
1. Set custom location
|
1. System/Library/CoreServices/boot.efi (default)
|
||||||
2. Reset repo location
|
2. EFI/BOOT/BOOTx64.efi
|
||||||
3. Exit
|
3. Exit
|
||||||
|
|
||||||
Current repo:
|
Note: S*/L*/C*/boot.efi method is only installed to the EFI partition only
|
||||||
{self.constants.url_apple_binaries}
|
and not to macOS itself.
|
||||||
|
|
||||||
|
Recommended to set to BOOTx64.efi in situations where your Mac cannot
|
||||||
|
see the EFI Boot entry in the boot picker.
|
||||||
|
|
||||||
""")
|
""")
|
||||||
change_menu = input("Set custom location?: ")
|
change_menu = input("Set Bootstrap method: ")
|
||||||
if change_menu == "1":
|
if change_menu == "1":
|
||||||
self.constants.url_backup = self.constants.url_apple_binaries
|
self.constants.boot_efi = False
|
||||||
self.constants.url_apple_binaries = input("Enter new URL: ")
|
|
||||||
elif change_menu == "2":
|
elif change_menu == "2":
|
||||||
if self.constants.url_backup != "":
|
self.constants.boot_efi = True
|
||||||
self.constants.url_apple_binaries = self.constants.url_backup
|
else:
|
||||||
|
print("Invalid option")
|
||||||
|
|
||||||
|
|
||||||
|
def drm_setting(self):
|
||||||
|
Utilities.cls()
|
||||||
|
Utilities.header(["Set DRM preferences"])
|
||||||
|
print("""Sets OpenCore's DRM preferences for iMac13,x and iMac14,x.
|
||||||
|
In Big Sur, some DRM based content may be broken by
|
||||||
|
default in AppleTV, Photobooth, etc.
|
||||||
|
|
||||||
|
To resolve, you can opt to disable Intel QuickSync support in
|
||||||
|
favor of Nvidia's Software rendering. This can aid in DRM however
|
||||||
|
greatly hampers Video rendering performance in Final Cut Pro and
|
||||||
|
other programs relying on such features.
|
||||||
|
|
||||||
|
Recommend only disabling if absolutely required.
|
||||||
|
""")
|
||||||
|
change_menu = input("Enable Nvidia's Software DRM rendering(y/n): ")
|
||||||
|
if change_menu in {"y", "Y", "yes", "Yes"}:
|
||||||
|
self.constants.drm_support = True
|
||||||
|
elif change_menu in {"n", "N", "no", "No"}:
|
||||||
|
self.constants.drm_support = False
|
||||||
|
else:
|
||||||
|
print("Invalid option")
|
||||||
|
|
||||||
|
def accel_setting(self):
|
||||||
|
Utilities.cls()
|
||||||
|
Utilities.header(["Enable Beta Acceleration Patches"])
|
||||||
|
print("""Enables OCLP's experimental GPU Acceleration Patches
|
||||||
|
Note these are still in beta and we highly recommend users
|
||||||
|
not run them daily or expect stable performance.
|
||||||
|
|
||||||
|
Currently the following are supported:
|
||||||
|
|
||||||
|
- Nvidia: Tesla and Fermi (8000-500)
|
||||||
|
- AMD/ATI: TeraScale 1 (2000-4000)
|
||||||
|
- Intel: Ironlake and Sandy Bridge
|
||||||
|
|
||||||
|
For reliability, please consider running macOS Catalina or
|
||||||
|
older via Dosdude1's patchers
|
||||||
|
|
||||||
|
Note: These patches may break Big Sur booting, please have any
|
||||||
|
important data backed up in case of emergencies
|
||||||
|
""")
|
||||||
|
change_menu = input("Enable Beta Acceleration Patches(y/n): ")
|
||||||
|
if change_menu in {"y", "Y", "yes", "Yes"}:
|
||||||
|
self.constants.legacy_acceleration_patch = True
|
||||||
|
elif change_menu in {"n", "N", "no", "No"}:
|
||||||
|
self.constants.legacy_acceleration_patch = False
|
||||||
|
else:
|
||||||
|
print("Invalid option")
|
||||||
|
|
||||||
|
|
||||||
|
def force_accel_setting(self):
|
||||||
|
Utilities.cls()
|
||||||
|
Utilities.header(["Assume Legacy GPU"])
|
||||||
|
print("""Allows any model to force install Legacy Acceleration
|
||||||
|
patches. Only required for Mac Pro and Xserve users.
|
||||||
|
|
||||||
|
DO NOT RUN IF METAL GPU IS INSTALLED
|
||||||
|
""")
|
||||||
|
change_menu = input("Enable Beta Acceleration Patches(y/n): ")
|
||||||
|
if change_menu in {"y", "Y", "yes", "Yes"}:
|
||||||
|
self.constants.assume_legacy = True
|
||||||
|
elif change_menu in {"n", "N", "no", "No"}:
|
||||||
|
self.constants.assume_legacy = False
|
||||||
else:
|
else:
|
||||||
print("Invalid option")
|
print("Invalid option")
|
||||||
@@ -9,7 +9,7 @@ from pathlib import Path
|
|||||||
|
|
||||||
class Constants:
|
class Constants:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.patcher_version = "0.0.22"
|
self.patcher_version = "0.1.1"
|
||||||
self.opencore_commit = "c528597 - 2021-04-05"
|
self.opencore_commit = "c528597 - 2021-04-05"
|
||||||
self.opencore_version = "0.6.8"
|
self.opencore_version = "0.6.8"
|
||||||
self.lilu_version = "1.5.2"
|
self.lilu_version = "1.5.2"
|
||||||
@@ -29,12 +29,13 @@ class Constants:
|
|||||||
self.restrictevents_version = "1.0.0"
|
self.restrictevents_version = "1.0.0"
|
||||||
self.restrictevents_mbp_version = "1.0.1"
|
self.restrictevents_mbp_version = "1.0.1"
|
||||||
self.piixata_version = "1.0.0"
|
self.piixata_version = "1.0.0"
|
||||||
self.backlight_version = "1.0.0"
|
self.backlight_version = "1.0.1"
|
||||||
self.cpufriend_version = "1.2.3"
|
self.cpufriend_version = "1.2.3"
|
||||||
self.nightshift_version = "1.1.0"
|
self.nightshift_version = "1.1.0"
|
||||||
self.smcspoof_version = "1.0.0"
|
self.smcspoof_version = "1.0.0"
|
||||||
self.cputscsync = "1.0.3"
|
self.cputscsync = "1.0.3"
|
||||||
self.hibernationfixup = "1.3.9"
|
self.hibernationfixup = "1.3.9"
|
||||||
|
self.payload_version = "0.0.4"
|
||||||
|
|
||||||
# Get resource path
|
# Get resource path
|
||||||
self.current_path = Path(__file__).parent.parent.resolve()
|
self.current_path = Path(__file__).parent.parent.resolve()
|
||||||
@@ -44,6 +45,10 @@ class Constants:
|
|||||||
self.custom_mxm_gpu: str = None
|
self.custom_mxm_gpu: str = None
|
||||||
self.current_gpuv: str = None
|
self.current_gpuv: str = None
|
||||||
self.current_gpud: str = None
|
self.current_gpud: str = None
|
||||||
|
self.igpu_vendor = ""
|
||||||
|
self.igpu_device = ""
|
||||||
|
self.dgpu_vendor = ""
|
||||||
|
self.dgpu_device = ""
|
||||||
|
|
||||||
# Patcher Settings
|
# Patcher Settings
|
||||||
self.opencore_debug = False
|
self.opencore_debug = False
|
||||||
@@ -63,6 +68,10 @@ class Constants:
|
|||||||
self.sip_status = True
|
self.sip_status = True
|
||||||
self.secure_status = True
|
self.secure_status = True
|
||||||
self.detected_os = 0
|
self.detected_os = 0
|
||||||
|
self.boot_efi = False
|
||||||
|
self.drm_support = False
|
||||||
|
self.legacy_acceleration_patch = True
|
||||||
|
self.assume_legacy = False
|
||||||
|
|
||||||
# OS Versions
|
# OS Versions
|
||||||
self.tiger = 8
|
self.tiger = 8
|
||||||
@@ -79,16 +88,27 @@ class Constants:
|
|||||||
self.catalina = 19
|
self.catalina = 19
|
||||||
self.big_sur = 20
|
self.big_sur = 20
|
||||||
|
|
||||||
|
# Vendor IDs
|
||||||
|
self.pci_nvidia = "10DE"
|
||||||
|
self.pci_amd_ati = "1002"
|
||||||
|
self.pci_intel = "8086"
|
||||||
|
self.pci_broadcom = "14E4"
|
||||||
|
self.pci_atheros = "168C"
|
||||||
|
|
||||||
|
# Nvidia GPU Architecture
|
||||||
|
self.arch_tesla = "NV50"
|
||||||
|
self.arch_fermi = "GF100"
|
||||||
|
self.arch_kepler = "GK100"
|
||||||
|
|
||||||
# External Files
|
# External Files
|
||||||
self.url_backup = ""
|
self.url_apple_binaries = "https://github.com/dortania/Apple-Binaries-OCLP/archive/refs/tags/"
|
||||||
self.url_apple_binaries = "https://github.com/dortania/Apple-Binaries-OCLP/archive/refs/heads/main.zip"
|
|
||||||
|
|
||||||
# Payload Location
|
# Payload Location
|
||||||
# OpenCore
|
# OpenCore
|
||||||
@property
|
@property
|
||||||
def opencore_zip_source(self): return self.payload_path / Path(f"OpenCore/OpenCore-{self.opencore_build}-v{self.opencore_version}.zip")
|
def opencore_zip_source(self): return self.payload_path / Path(f"OpenCore/OpenCore-{self.opencore_build}.zip")
|
||||||
@property
|
@property
|
||||||
def plist_template(self): return self.payload_path / Path(f"Config/v{self.opencore_version}/config.plist")
|
def plist_template(self): return self.payload_path / Path(f"Config/config.plist")
|
||||||
|
|
||||||
# ACPI
|
# ACPI
|
||||||
@property
|
@property
|
||||||
@@ -149,14 +169,18 @@ class Constants:
|
|||||||
def cputscsync_path(self): return self.payload_kexts_path / Path(f"Acidanthera/CpuTscSync-v{self.cputscsync}.zip")
|
def cputscsync_path(self): return self.payload_kexts_path / Path(f"Acidanthera/CpuTscSync-v{self.cputscsync}.zip")
|
||||||
@property
|
@property
|
||||||
def hibernationfixup_path(self): return self.payload_kexts_path / Path(f"Acidanthera/HibernationFixup-v{self.hibernationfixup}.zip")
|
def hibernationfixup_path(self): return self.payload_kexts_path / Path(f"Acidanthera/HibernationFixup-v{self.hibernationfixup}.zip")
|
||||||
|
@property
|
||||||
|
def plist_folder_path(self): return self.payload_kexts_path / Path(f"Plists")
|
||||||
|
@property
|
||||||
|
def platform_plugin_plist_path(self): return self.plist_folder_path / Path(f"PlatformPlugin")
|
||||||
|
|
||||||
# Build Location
|
# Build Location
|
||||||
@property
|
@property
|
||||||
def build_path(self): return self.current_path / Path("Build-Folder/")
|
def build_path(self): return self.current_path / Path("Build-Folder/")
|
||||||
@property
|
@property
|
||||||
def opencore_release_folder(self): return self.build_path / Path(f"OpenCore-{self.opencore_build}-v{self.opencore_version}")
|
def opencore_release_folder(self): return self.build_path / Path(f"OpenCore-{self.opencore_build}")
|
||||||
@property
|
@property
|
||||||
def opencore_zip_copied(self): return self.build_path / Path(f"OpenCore-{self.opencore_build}-v{self.opencore_version}.zip")
|
def opencore_zip_copied(self): return self.build_path / Path(f"OpenCore-{self.opencore_build}.zip")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def oc_folder(self): return self.opencore_release_folder / Path("EFI/OC/")
|
def oc_folder(self): return self.opencore_release_folder / Path("EFI/OC/")
|
||||||
@@ -195,6 +219,8 @@ class Constants:
|
|||||||
@property
|
@property
|
||||||
def macserial_path(self): return self.payload_path / Path("Tools/macserial")
|
def macserial_path(self): return self.payload_path / Path("Tools/macserial")
|
||||||
@property
|
@property
|
||||||
|
def gfxutil_path(self): return self.payload_path / Path("Tools/gfxutil")
|
||||||
|
@property
|
||||||
def vault_path(self): return self.payload_path / Path("Tools/CreateVault/sign.command")
|
def vault_path(self): return self.payload_path / Path("Tools/CreateVault/sign.command")
|
||||||
|
|
||||||
# Icons
|
# Icons
|
||||||
@@ -211,9 +237,9 @@ class Constants:
|
|||||||
@property
|
@property
|
||||||
def gui_path(self): return self.payload_path / Path("Icon/Resources.zip")
|
def gui_path(self): return self.payload_path / Path("Icon/Resources.zip")
|
||||||
|
|
||||||
# Apple Paylods Paths
|
# Apple Payloads Paths
|
||||||
@property
|
@property
|
||||||
def payload_apple_root_path_unzip(self): return self.payload_path / Path("Apple-Binaries-OCLP-main")
|
def payload_apple_root_path_unzip(self): return self.payload_path / Path(f"Apple-Binaries-OCLP-{self.payload_version}")
|
||||||
@property
|
@property
|
||||||
def payload_apple_root_path_zip(self): return self.payload_path / Path("Apple.zip")
|
def payload_apple_root_path_zip(self): return self.payload_path / Path("Apple.zip")
|
||||||
@property
|
@property
|
||||||
@@ -239,18 +265,22 @@ class Constants:
|
|||||||
@property
|
@property
|
||||||
def applehda_path(self): return self.payload_apple_kexts_path / Path("Audio/AppleHDA.kext")
|
def applehda_path(self): return self.payload_apple_kexts_path / Path("Audio/AppleHDA.kext")
|
||||||
|
|
||||||
|
|
||||||
# GPU Kexts and Bundles
|
# GPU Kexts and Bundles
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def legacy_graphics(self): return self.payload_apple_kexts_path / Path("Graphics-Acceleration")
|
def legacy_graphics(self): return self.payload_apple_kexts_path / Path("Graphics-Acceleration")
|
||||||
@property
|
@property
|
||||||
def legacy_nvidia_path(self): return self.legacy_graphics / Path("Nvidia-Tesla-Fermi")
|
def legacy_nvidia_path(self): return self.legacy_graphics / Path("Nvidia-Tesla-Fermi")
|
||||||
@property
|
@property
|
||||||
|
def legacy_nvidia_kepler_path(self): return self.legacy_graphics / Path("Nvidia-Kepler")
|
||||||
|
@property
|
||||||
def legacy_amd_path(self): return self.legacy_graphics / Path("AMD-ATI")
|
def legacy_amd_path(self): return self.legacy_graphics / Path("AMD-ATI")
|
||||||
@property
|
@property
|
||||||
def legacy_intel_gen1_path(self): return self.legacy_graphics / Path("Intel-Gen5-Ironlake")
|
def legacy_intel_gen1_path(self): return self.legacy_graphics / Path("Intel-Gen5-Ironlake")
|
||||||
@property
|
@property
|
||||||
def legacy_intel_gen2_path(self): return self.legacy_graphics / Path("Intel-Gen6-SandyBridge")
|
def legacy_intel_gen2_path(self): return self.legacy_graphics / Path("Intel-Gen6-SandyBridge")
|
||||||
|
@property
|
||||||
|
def legacy_intel_gen3_path(self): return self.legacy_graphics / Path("Intel-Gen7-IvyBridge")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def legacy_brightness(self): return self.payload_apple_kexts_path / Path("Brightness-Control")
|
def legacy_brightness(self): return self.payload_apple_kexts_path / Path("Brightness-Control")
|
||||||
@@ -265,7 +295,9 @@ class Constants:
|
|||||||
|
|
||||||
# Apple LaunchDaemons
|
# Apple LaunchDaemons
|
||||||
@property
|
@property
|
||||||
def hiddhack_path(self): return self.payload_apple_lauchd_path_accel / Path("HiddHack.plist")
|
def hiddhack_path(self): return self.payload_apple_lauchd_path_accel / Path("IOHID-Fixup.plist")
|
||||||
|
@property
|
||||||
|
def legacy_hiddhack_path(self): return self.payload_apple_lauchd_path_accel / Path("HiddHack.plist")
|
||||||
|
|
||||||
# Apple PrivateFrameworks
|
# Apple PrivateFrameworks
|
||||||
@property
|
@property
|
||||||
@@ -274,18 +306,18 @@ class Constants:
|
|||||||
def skylight_path(self): return self.payload_apple_private_frameworks_path_accel / Path("SkyLight.framework")
|
def skylight_path(self): return self.payload_apple_private_frameworks_path_accel / Path("SkyLight.framework")
|
||||||
|
|
||||||
csr_values = {
|
csr_values = {
|
||||||
"CSR_ALLOW_UNTRUSTED_KEXTS ": False, # 0x1 - Introduced in El Capitan
|
"CSR_ALLOW_UNTRUSTED_KEXTS ": False, # 0x1 - Introduced in El Capitan
|
||||||
"CSR_ALLOW_UNRESTRICTED_FS ": False, # 0x2 - Introduced in El Capitan
|
"CSR_ALLOW_UNRESTRICTED_FS ": False, # 0x2 - Introduced in El Capitan
|
||||||
"CSR_ALLOW_TASK_FOR_PID ": False, # 0x4 - Introduced in El Capitan
|
"CSR_ALLOW_TASK_FOR_PID ": False, # 0x4 - Introduced in El Capitan
|
||||||
"CSR_ALLOW_KERNEL_DEBUGGER ": False, # 0x8 - Introduced in El Capitan
|
"CSR_ALLOW_KERNEL_DEBUGGER ": False, # 0x8 - Introduced in El Capitan
|
||||||
"CSR_ALLOW_APPLE_INTERNAL ": False, # 0x10 - Introduced in El Capitan
|
"CSR_ALLOW_APPLE_INTERNAL ": False, # 0x10 - Introduced in El Capitan
|
||||||
"CSR_ALLOW_UNRESTRICTED_DTRACE ": False, # 0x20 - Introduced in El Capitan
|
"CSR_ALLOW_UNRESTRICTED_DTRACE ": False, # 0x20 - Introduced in El Capitan
|
||||||
"CSR_ALLOW_UNRESTRICTED_NVRAM ": False, # 0x40 - Introduced in El Capitan
|
"CSR_ALLOW_UNRESTRICTED_NVRAM ": False, # 0x40 - Introduced in El Capitan
|
||||||
"CSR_ALLOW_DEVICE_CONFIGURATION ": False, # 0x80 - Introduced in El Capitan
|
"CSR_ALLOW_DEVICE_CONFIGURATION ": False, # 0x80 - Introduced in El Capitan
|
||||||
"CSR_ALLOW_ANY_RECOVERY_OS ": False, # 0x100 - Introduced in Sierra
|
"CSR_ALLOW_ANY_RECOVERY_OS ": False, # 0x100 - Introduced in Sierra
|
||||||
"CSR_ALLOW_UNAPPROVED_KEXTS ": False, # 0x200 - Introduced in High Sierra
|
"CSR_ALLOW_UNAPPROVED_KEXTS ": False, # 0x200 - Introduced in High Sierra
|
||||||
"CSR_ALLOW_EXECUTABLE_POLICY_OVERRIDE": False, # 0x400 - Introduced in Mojave
|
"CSR_ALLOW_EXECUTABLE_POLICY_OVERRIDE": False, # 0x400 - Introduced in Mojave
|
||||||
"CSR_ALLOW_UNAUTHENTICATED_ROOT ": False, # 0x800 - Introduced in Big Sur
|
"CSR_ALLOW_UNAUTHENTICATED_ROOT ": False, # 0x800 - Introduced in Big Sur
|
||||||
}
|
}
|
||||||
|
|
||||||
sbm_values = [
|
sbm_values = [
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ SupportedSMBIOS12 = [
|
|||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
## CPU patches
|
# CPU patches
|
||||||
|
|
||||||
MissingSSE42 = [
|
MissingSSE42 = [
|
||||||
"MacBook4,1",
|
"MacBook4,1",
|
||||||
@@ -127,7 +127,7 @@ pciSSDT = [
|
|||||||
"Dortania1,1"
|
"Dortania1,1"
|
||||||
]
|
]
|
||||||
|
|
||||||
## Ethernet patches
|
# Ethernet patches
|
||||||
|
|
||||||
EthernetNvidia = [
|
EthernetNvidia = [
|
||||||
"MacBook5,1",
|
"MacBook5,1",
|
||||||
@@ -140,7 +140,6 @@ EthernetNvidia = [
|
|||||||
"MacBookPro5,4",
|
"MacBookPro5,4",
|
||||||
"MacBookPro5,5",
|
"MacBookPro5,5",
|
||||||
"Macmini3,1",
|
"Macmini3,1",
|
||||||
"Macmini4,1",
|
|
||||||
"iMac9,1",
|
"iMac9,1",
|
||||||
"iMac10,1",
|
"iMac10,1",
|
||||||
"Dortania1,1"
|
"Dortania1,1"
|
||||||
@@ -159,6 +158,7 @@ EthernetBroadcom = [
|
|||||||
"MacBookPro8,1",
|
"MacBookPro8,1",
|
||||||
"MacBookPro8,2",
|
"MacBookPro8,2",
|
||||||
"MacBookPro8,3",
|
"MacBookPro8,3",
|
||||||
|
"Macmini4,1",
|
||||||
"Macmini5,1",
|
"Macmini5,1",
|
||||||
"Macmini5,2",
|
"Macmini5,2",
|
||||||
"Macmini5,3",
|
"Macmini5,3",
|
||||||
@@ -170,7 +170,7 @@ EthernetBroadcom = [
|
|||||||
"Dortania1,1"
|
"Dortania1,1"
|
||||||
]
|
]
|
||||||
|
|
||||||
## Wifi patches
|
# Wifi patches
|
||||||
|
|
||||||
WifiAtheros = [
|
WifiAtheros = [
|
||||||
"iMac10,1",
|
"iMac10,1",
|
||||||
@@ -213,19 +213,19 @@ WifiBCM94322 = [
|
|||||||
WifiBCM94331 = [
|
WifiBCM94331 = [
|
||||||
"MacBook6,1", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
"MacBook6,1", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
||||||
"MacBook7,1", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
"MacBook7,1", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
||||||
"MacBookAir4,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
"MacBookAir4,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||||
"MacBookAir4,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
"MacBookAir4,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||||
"MacBookAir5,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
"MacBookAir5,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||||
"MacBookAir5,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
"MacBookAir5,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||||
"MacBookPro6,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
"MacBookPro6,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||||
"MacBookPro6,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
"MacBookPro6,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||||
"MacBookPro8,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
"MacBookPro8,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||||
"MacBookPro8,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
"MacBookPro8,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||||
"MacBookPro8,3", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
"MacBookPro8,3", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||||
"MacBookPro9,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
"MacBookPro9,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||||
"MacBookPro9,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
"MacBookPro9,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||||
"MacBookPro10,1",# PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
"MacBookPro10,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||||
"MacBookPro10,2",# PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
"MacBookPro10,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||||
"Macmini4,1", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
"Macmini4,1", # PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)
|
||||||
"Macmini5,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
"Macmini5,1", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||||
"Macmini5,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
"Macmini5,2", # PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0)
|
||||||
@@ -238,7 +238,7 @@ WifiBCM94331 = [
|
|||||||
"Dortania1,1"
|
"Dortania1,1"
|
||||||
]
|
]
|
||||||
|
|
||||||
## Audio
|
# Audio
|
||||||
|
|
||||||
LegacyAudio = [
|
LegacyAudio = [
|
||||||
"MacBook4,1",
|
"MacBook4,1",
|
||||||
@@ -301,98 +301,106 @@ nvidiaHDEF = [
|
|||||||
"iMac10,1"
|
"iMac10,1"
|
||||||
]
|
]
|
||||||
|
|
||||||
## GPU
|
# GPU
|
||||||
|
|
||||||
LegacyGPU = [
|
LegacyGPU = [
|
||||||
"MacBook4,1", # GMA X3100
|
"MacBook4,1", # GMA X3100
|
||||||
"MacBook5,1", # Nvidia 9000
|
"MacBook5,1", # Nvidia 9000
|
||||||
"MacBook5,2", # Nvidia 9000
|
"MacBook5,2", # Nvidia 9000
|
||||||
"MacBook6,1", # Nvidia 9000
|
"MacBook6,1", # Nvidia 9000
|
||||||
"MacBook7,1", # Nvidia 300
|
"MacBook7,1", # Nvidia 300
|
||||||
"MacBookAir2,1", # Nvidia 9000
|
"MacBookAir2,1", # Nvidia 9000
|
||||||
"MacBookAir3,1", # Nvidia 300
|
"MacBookAir3,1", # Nvidia 300
|
||||||
"MacBookAir3,2", # Nvidia 300
|
"MacBookAir3,2", # Nvidia 300
|
||||||
"MacBookAir4,1", # Intel 3000
|
"MacBookAir4,1", # Intel 3000
|
||||||
"MacBookAir4,2", # Intel 3000
|
"MacBookAir4,2", # Intel 3000
|
||||||
"MacBookPro4,1", # Nvidia 8000
|
"MacBookPro4,1", # Nvidia 8000
|
||||||
"MacBookPro5,1", # Nvidia 9000
|
"MacBookPro5,1", # Nvidia 9000
|
||||||
"MacBookPro5,2", # Nvidia 9000
|
"MacBookPro5,2", # Nvidia 9000
|
||||||
"MacBookPro5,3", # Nvidia 9000
|
"MacBookPro5,3", # Nvidia 9000
|
||||||
"MacBookPro5,4", # Nvidia 9000
|
"MacBookPro5,4", # Nvidia 9000
|
||||||
"MacBookPro5,5", # Nvidia 9000
|
"MacBookPro5,5", # Nvidia 9000
|
||||||
"MacBookPro6,1", # Intel 100 + Nvidia 300
|
"MacBookPro6,1", # Intel 100 + Nvidia 300
|
||||||
"MacBookPro6,2", # Intel 100 + Nvidia 300
|
"MacBookPro6,2", # Intel 100 + Nvidia 300
|
||||||
"MacBookPro7,1", # Nvidia 300
|
"MacBookPro7,1", # Nvidia 300
|
||||||
"MacBookPro8,1", # Intel 3000
|
"MacBookPro8,1", # Intel 3000
|
||||||
"MacBookPro8,2", # Intel 3000 + AMD 6000
|
"MacBookPro8,2", # Intel 3000 + AMD 6000
|
||||||
"MacBookPro8,3", # Intel 3000 + AMD 6000
|
"MacBookPro8,3", # Intel 3000 + AMD 6000
|
||||||
"Macmini3,1", # Nvidia 9000
|
"Macmini3,1", # Nvidia 9000
|
||||||
"Macmini4,1", # Nvidia 300
|
"Macmini4,1", # Nvidia 300
|
||||||
"Macmini5,1", # Intel 3000
|
"Macmini5,1", # Intel 3000
|
||||||
"Macmini5,2", # AMD 6000
|
"Macmini5,2", # AMD 6000
|
||||||
"Macmini5,3", # Intel 3000
|
"Macmini5,3", # Intel 3000
|
||||||
"iMac7,1", # AMD 2000
|
"iMac7,1", # AMD 2000
|
||||||
"iMac8,1", # AMD 2000
|
"iMac8,1", # Nvidia and AMD 2400
|
||||||
"iMac9,1", # Nvidia 9000
|
"iMac9,1", # Nvidia 9000
|
||||||
#"iMac10,1", # Nvidia 9000 and AMD 4000
|
"iMac10,1", # Nvidia 9000 and AMD 4000
|
||||||
"iMac11,1", # AMD 4000
|
"iMac11,1", # AMD 4000
|
||||||
"iMac11,2", # AMD 4000 and 5000
|
"iMac11,2", # AMD 4000 and 5000
|
||||||
"iMac11,3", # AMD 5000
|
"iMac11,3", # AMD 5000
|
||||||
"iMac12,1", # AMD 6000
|
"iMac12,1", # AMD 6000
|
||||||
"iMac12,2", # AMD 6000
|
"iMac12,2", # AMD 6000
|
||||||
"Dortania1,1" # RTX 3080
|
"Dortania1,1" # RTX 3080
|
||||||
]
|
]
|
||||||
|
|
||||||
LegacyGPUNvidia = [
|
LegacyGPUNvidia = [
|
||||||
"MacBook5,1", # Nvidia 9000
|
"MacBook5,1", # Nvidia 9000
|
||||||
"MacBook5,2", # Nvidia 9000
|
"MacBook5,2", # Nvidia 9000
|
||||||
"MacBook6,1", # Nvidia 9000
|
"MacBook6,1", # Nvidia 9000
|
||||||
"MacBook7,1", # Nvidia 300
|
"MacBook7,1", # Nvidia 300
|
||||||
"MacBookAir2,1", # Nvidia 9000
|
"MacBookAir2,1", # Nvidia 9000
|
||||||
"MacBookAir3,1", # Nvidia 300
|
"MacBookAir3,1", # Nvidia 300
|
||||||
"MacBookAir3,2", # Nvidia 300
|
"MacBookAir3,2", # Nvidia 300
|
||||||
"MacBookPro4,1", # Nvidia 8000
|
"MacBookPro4,1", # Nvidia 8000
|
||||||
"MacBookPro5,1", # Nvidia 9000
|
"MacBookPro5,1", # Nvidia 9000
|
||||||
"MacBookPro5,2", # Nvidia 9000
|
"MacBookPro5,2", # Nvidia 9000
|
||||||
"MacBookPro5,3", # Nvidia 9000
|
"MacBookPro5,3", # Nvidia 9000
|
||||||
"MacBookPro5,4", # Nvidia 9000
|
"MacBookPro5,4", # Nvidia 9000
|
||||||
"MacBookPro5,5", # Nvidia 9000
|
"MacBookPro5,5", # Nvidia 9000
|
||||||
"MacBookPro6,1", # Intel 100 + Nvidia 300
|
"MacBookPro6,1", # Intel 100 + Nvidia 300
|
||||||
"MacBookPro6,2", # Intel 100 + Nvidia 300
|
"MacBookPro6,2", # Intel 100 + Nvidia 300
|
||||||
"MacBookPro7,1", # Nvidia 300
|
"MacBookPro7,1", # Nvidia 300
|
||||||
"Macmini3,1", # Nvidia 9000
|
"Macmini3,1", # Nvidia 9000
|
||||||
"Macmini4,1", # Nvidia 300
|
"Macmini4,1", # Nvidia 300
|
||||||
"iMac9,1", # Nvidia 9000
|
"iMac9,1", # Nvidia 9000
|
||||||
#"iMac10,1", # Nvidia 9000 and AMD 4000
|
# "iMac10,1", # Nvidia 9000 and AMD 4000
|
||||||
]
|
]
|
||||||
|
|
||||||
LegacyGPUAMD = [
|
LegacyGPUAMD = [
|
||||||
"MacBookPro8,2", # Intel 3000 + AMD 6000
|
"MacBookPro8,2", # Intel 3000 + AMD 6000
|
||||||
"MacBookPro8,3", # Intel 3000 + AMD 6000
|
"MacBookPro8,3", # Intel 3000 + AMD 6000
|
||||||
"Macmini5,2", # AMD 6000
|
"Macmini5,2", # AMD 6000
|
||||||
"iMac7,1", # AMD 2000
|
"iMac7,1", # AMD 2000
|
||||||
"iMac8,1", # AMD 2000
|
# "iMac8,1", # Nvidia and AMD 2000
|
||||||
#"iMac10,1", # Nvidia 9000 and AMD 4000
|
# "iMac10,1", # Nvidia 9000 and AMD 4000
|
||||||
"iMac11,1", # AMD 4000
|
"iMac11,1", # AMD 4000
|
||||||
"iMac11,2", # AMD 4000 and 5000
|
"iMac11,2", # AMD 4000 and 5000
|
||||||
"iMac11,3", # AMD 5000
|
"iMac11,3", # AMD 5000
|
||||||
"iMac12,1", # AMD 6000
|
"iMac12,1", # AMD 6000
|
||||||
"iMac12,2", # AMD 6000
|
"iMac12,2", # AMD 6000
|
||||||
|
]
|
||||||
|
|
||||||
|
LegacyGPUAMDIntelGen2 = [
|
||||||
|
"MacBookPro8,2", # Intel 3000 + AMD 6000
|
||||||
|
"MacBookPro8,3", # Intel 3000 + AMD 6000
|
||||||
|
"Macmini5,2", # AMD 6000
|
||||||
|
"iMac12,1", # AMD 6000
|
||||||
|
"iMac12,2", # AMD 6000
|
||||||
]
|
]
|
||||||
|
|
||||||
LegacyGPUIntelGen1 = [
|
LegacyGPUIntelGen1 = [
|
||||||
"MacBookPro6,1", # Intel 100 + Nvidia 300
|
"MacBookPro6,1", # Intel 100 + Nvidia 300
|
||||||
"MacBookPro6,2", # Intel 100 + Nvidia 300
|
"MacBookPro6,2", # Intel 100 + Nvidia 300
|
||||||
]
|
]
|
||||||
|
|
||||||
LegacyGPUIntelGen2 = [
|
LegacyGPUIntelGen2 = [
|
||||||
"MacBookAir4,1", # Intel 3000
|
"MacBookAir4,1", # Intel 3000
|
||||||
"MacBookAir4,2", # Intel 3000
|
"MacBookAir4,2", # Intel 3000
|
||||||
"MacBookPro8,1", # Intel 3000
|
"MacBookPro8,1", # Intel 3000
|
||||||
"MacBookPro8,2", # Intel 3000 + AMD 6000
|
"MacBookPro8,2", # Intel 3000 + AMD 6000
|
||||||
"MacBookPro8,3", # Intel 3000 + AMD 6000
|
"MacBookPro8,3", # Intel 3000 + AMD 6000
|
||||||
"Macmini5,1", # Intel 3000
|
"Macmini5,1", # Intel 3000
|
||||||
"Macmini5,3", # Intel 3000
|
"Macmini5,3", # Intel 3000
|
||||||
]
|
]
|
||||||
|
|
||||||
LegacyBrightness = [
|
LegacyBrightness = [
|
||||||
@@ -456,8 +464,6 @@ DualGPUPatch = [
|
|||||||
"MacBookPro5,1",
|
"MacBookPro5,1",
|
||||||
"MacBookPro5,2",
|
"MacBookPro5,2",
|
||||||
"MacBookPro5,3",
|
"MacBookPro5,3",
|
||||||
"MacBookPro5,4",
|
|
||||||
"MacBookPro5,5",
|
|
||||||
"MacBookPro6,1",
|
"MacBookPro6,1",
|
||||||
"MacBookPro6,2",
|
"MacBookPro6,2",
|
||||||
"MacBookPro8,2",
|
"MacBookPro8,2",
|
||||||
@@ -465,6 +471,7 @@ DualGPUPatch = [
|
|||||||
"Macmini5,2",
|
"Macmini5,2",
|
||||||
"iMac12,1",
|
"iMac12,1",
|
||||||
"iMac12,2",
|
"iMac12,2",
|
||||||
|
"iMac13,1",
|
||||||
"iMac13,2",
|
"iMac13,2",
|
||||||
"iMac14,2",
|
"iMac14,2",
|
||||||
"iMac14,3",
|
"iMac14,3",
|
||||||
@@ -475,6 +482,13 @@ DualGPUPatchRetina = [
|
|||||||
"MacBookPro10,1",
|
"MacBookPro10,1",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
IntelNvidiaDRM = [
|
||||||
|
"iMac13,1",
|
||||||
|
"iMac13,2",
|
||||||
|
"iMac14,2",
|
||||||
|
"iMac14,3",
|
||||||
|
]
|
||||||
|
|
||||||
HiDPIpicker = [
|
HiDPIpicker = [
|
||||||
"MacBookPro10,1",
|
"MacBookPro10,1",
|
||||||
"MacBookPro10,2",
|
"MacBookPro10,2",
|
||||||
@@ -552,12 +566,12 @@ iMacPro11 = [
|
|||||||
"iMac11,1",
|
"iMac11,1",
|
||||||
"iMac11,2",
|
"iMac11,2",
|
||||||
"iMac11,3",
|
"iMac11,3",
|
||||||
|
"iMac12,1",
|
||||||
|
"iMac12,2",
|
||||||
]
|
]
|
||||||
|
|
||||||
# iMac = AMD and Nvidia GPU with iGPU
|
# iMac = AMD and Nvidia GPU with iGPU
|
||||||
iMac151 = [
|
iMac151 = [
|
||||||
"iMac12,1",
|
|
||||||
"iMac12,2",
|
|
||||||
"iMac13,2",
|
"iMac13,2",
|
||||||
"iMac14,2",
|
"iMac14,2",
|
||||||
"iMac14,3"
|
"iMac14,3"
|
||||||
@@ -680,38 +694,71 @@ upgradableMXMGPUs = [
|
|||||||
|
|
||||||
# Reference: https://forums.macrumors.com/threads/2011-imac-graphics-card-upgrade.1596614/
|
# Reference: https://forums.macrumors.com/threads/2011-imac-graphics-card-upgrade.1596614/
|
||||||
NVIDIAMXMGPUs = [
|
NVIDIAMXMGPUs = [
|
||||||
"0x12b9",#Quadro K610M
|
"12B9", # Quadro K610M
|
||||||
"0x0ff6",#Quadro K1100M
|
"0FF6", # Quadro K1100M
|
||||||
"0x11fc",#Quadro K2100M
|
"11FC", # Quadro K2100M
|
||||||
"0x0ffc",#Quadro K1000M
|
"0FFC", # Quadro K1000M
|
||||||
"0x0ffb",#Quadro K2000M
|
"0FFB", # Quadro K2000M
|
||||||
"0x11b6",#Quadro K3100M
|
"11B6", # Quadro K3100M
|
||||||
"0x11b7",#Quadro K4100M
|
"11B7", # Quadro K4100M
|
||||||
"0x11bc",#Quadro K5000M
|
"11BC", # Quadro K5000M
|
||||||
"0x11b8",#Quadro K5100M
|
"11B8", # Quadro K5100M
|
||||||
"0x11e1",#GTX 765M
|
"11E1", # GTX 765M
|
||||||
"0x11e2",#GTX 765M
|
"11E2", # GTX 765M
|
||||||
"0x11e0",#GTX 770M
|
"11E0", # GTX 770M
|
||||||
"0x119e",#GTX 780M Mac Edition
|
"119E", # GTX 780M Mac Edition
|
||||||
"0x119e",#GTX 780M
|
"119E", # GTX 780M
|
||||||
"0x119f",#GTX 880M
|
"119F", # GTX 880M
|
||||||
"0x119a",#GTX 860M
|
"119A", # GTX 860M
|
||||||
"0x1392",#GTX 860M
|
"1392", # GTX 860M
|
||||||
"0x1199",#GTX 870M
|
"1199", # GTX 870M
|
||||||
"0x11a9",#GTX 870M
|
"11A9", # GTX 870M
|
||||||
]
|
]
|
||||||
|
|
||||||
AMDMXMGPUs = [
|
AMDMXMGPUs = [
|
||||||
"0x67EF",#AMD RX 460
|
"67EF", # AMD RX 460
|
||||||
"0x67e8",#AMD WX 4130/WX 4150
|
"67E8", # AMD WX 4130/WX 4150
|
||||||
"0x67e0",#AMD WX 4170
|
"67E0", # AMD WX 4170
|
||||||
"0x67c0",#AMD WX 7100
|
"67C0", # AMD WX 7100
|
||||||
|
"67DF", # AMD RX 480
|
||||||
]
|
]
|
||||||
|
|
||||||
nativeWifi = [
|
BCM4360Wifi = [
|
||||||
"ba430000",#BCM43602
|
"43BA", # BCM43602
|
||||||
"a3430000",#BCM4350
|
"43A3", # BCM4350
|
||||||
"a0430000",#BCM4360
|
"43A0", # BCM4360
|
||||||
|
]
|
||||||
|
|
||||||
|
BCM94331Wifi = [
|
||||||
|
"4331", # BCM94331
|
||||||
|
"4353", # BCM943224
|
||||||
|
]
|
||||||
|
|
||||||
|
BCM94322Wifi = [
|
||||||
|
"432B", # BCM94322
|
||||||
|
]
|
||||||
|
|
||||||
|
BCM94328Wifi = [
|
||||||
|
"4311",
|
||||||
|
"4312",
|
||||||
|
"4313",
|
||||||
|
"4318",
|
||||||
|
"4319",
|
||||||
|
"431A",
|
||||||
|
"4320",
|
||||||
|
"4324",
|
||||||
|
"4325",
|
||||||
|
"4328",
|
||||||
|
"432C",
|
||||||
|
"432D",
|
||||||
|
]
|
||||||
|
|
||||||
|
AtherosWifi = [
|
||||||
|
"0030",
|
||||||
|
"002A",
|
||||||
|
"001C",
|
||||||
|
"0023",
|
||||||
|
"0024",
|
||||||
]
|
]
|
||||||
|
|
||||||
NightShiftExclude = [
|
NightShiftExclude = [
|
||||||
@@ -825,31 +872,41 @@ NoExFat = [
|
|||||||
"Dortania1,1"
|
"Dortania1,1"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
SandyIGPU = [
|
||||||
|
"MacBookAir4,1",
|
||||||
|
"MacBookAir4,2",
|
||||||
|
"MacBookPro8,1",
|
||||||
|
"MacBookPro8,2",
|
||||||
|
"MacBookPro8,3",
|
||||||
|
"Macmini5,1",
|
||||||
|
"Macmini5,3",
|
||||||
|
]
|
||||||
|
|
||||||
DeleteNvidiaAccel11 = [
|
DeleteNvidiaAccel11 = [
|
||||||
"AMDRadeonX4000.kext",
|
"AMDRadeonX4000.kext",
|
||||||
"AMDRadeonX4000HWServices.kext",
|
"AMDRadeonX4000HWServices.kext",
|
||||||
"AMDRadeonX5000.kext",
|
"AMDRadeonX5000.kext",
|
||||||
"AMDRadeonX5000HWServices.kext",
|
"AMDRadeonX5000HWServices.kext",
|
||||||
"AMDRadeonX6000.kext",
|
"AMDRadeonX6000.kext",
|
||||||
"AMDRadeonX6000Framebuffer.kext",
|
"AMDRadeonX6000Framebuffer.kext",
|
||||||
"AMDRadeonX6000HWServices.kext",
|
"AMDRadeonX6000HWServices.kext",
|
||||||
"AppleIntelBDWGraphics.kext",
|
"AppleIntelBDWGraphics.kext",
|
||||||
"AppleIntelBDWGraphicsFramebuffer.kext",
|
"AppleIntelBDWGraphicsFramebuffer.kext",
|
||||||
"AppleIntelCFLGraphicsFramebuffer.kext",
|
"AppleIntelCFLGraphicsFramebuffer.kext",
|
||||||
"AppleIntelHD4000Graphics.kext",
|
"AppleIntelHD4000Graphics.kext",
|
||||||
"AppleIntelHD5000Graphics.kext",
|
"AppleIntelHD5000Graphics.kext",
|
||||||
"AppleIntelICLGraphics.kext",
|
"AppleIntelICLGraphics.kext",
|
||||||
"AppleIntelICLLPGraphicsFramebuffer.kext",
|
"AppleIntelICLLPGraphicsFramebuffer.kext",
|
||||||
"AppleIntelKBLGraphics.kext",
|
"AppleIntelKBLGraphics.kext",
|
||||||
"AppleIntelKBLGraphicsFramebuffer.kext",
|
"AppleIntelKBLGraphicsFramebuffer.kext",
|
||||||
"AppleIntelSKLGraphics.kext",
|
"AppleIntelSKLGraphics.kext",
|
||||||
"AppleIntelSKLGraphicsFramebuffer.kext",
|
"AppleIntelSKLGraphicsFramebuffer.kext",
|
||||||
"AppleIntelFramebufferAzul.kext",
|
"AppleIntelFramebufferAzul.kext",
|
||||||
"AppleIntelFramebufferCapri.kext",
|
"AppleIntelFramebufferCapri.kext",
|
||||||
"AppleParavirtGPU.kext",
|
"AppleParavirtGPU.kext",
|
||||||
"GeForce.kext",
|
"GeForce.kext",
|
||||||
"IOAcceleratorFamily2.kext",
|
"IOAcceleratorFamily2.kext",
|
||||||
"IOGPUFamily.kext",
|
"IOGPUFamily.kext",
|
||||||
]
|
]
|
||||||
|
|
||||||
DeleteAMDAccel11 = [
|
DeleteAMDAccel11 = [
|
||||||
@@ -860,11 +917,11 @@ DeleteAMDAccel11 = [
|
|||||||
"AMDRadeonX6000.kext",
|
"AMDRadeonX6000.kext",
|
||||||
"AMDRadeonX6000Framebuffer.kext",
|
"AMDRadeonX6000Framebuffer.kext",
|
||||||
"AMDRadeonX6000HWServices.kext",
|
"AMDRadeonX6000HWServices.kext",
|
||||||
"AMD7000Controller.kext", # AMDSupport Dependancy
|
"AMD7000Controller.kext", # AMDSupport Dependancy
|
||||||
"AMD8000Controller.kext", # AMDSupport Dependancy
|
"AMD8000Controller.kext", # AMDSupport Dependancy
|
||||||
"AMD9000Controller.kext", # AMDSupport Dependancy
|
"AMD9000Controller.kext", # AMDSupport Dependancy
|
||||||
"AMD9500Controller.kext", # AMDSupport Dependancy
|
"AMD9500Controller.kext", # AMDSupport Dependancy
|
||||||
"AMD10000Controller.kext", # AMDSupport Dependancy
|
"AMD10000Controller.kext", # AMDSupport Dependancy
|
||||||
"AppleIntelBDWGraphics.kext",
|
"AppleIntelBDWGraphics.kext",
|
||||||
"AppleIntelBDWGraphicsFramebuffer.kext",
|
"AppleIntelBDWGraphicsFramebuffer.kext",
|
||||||
"AppleIntelCFLGraphicsFramebuffer.kext",
|
"AppleIntelCFLGraphicsFramebuffer.kext",
|
||||||
@@ -886,64 +943,185 @@ DeleteAMDAccel11 = [
|
|||||||
|
|
||||||
AddNvidiaAccel11 = [
|
AddNvidiaAccel11 = [
|
||||||
"GeForceGA.bundle",
|
"GeForceGA.bundle",
|
||||||
"GeForceTesla.kext",
|
"GeForceTesla.kext",
|
||||||
"GeForceTeslaGLDriver.bundle",
|
"GeForceTeslaGLDriver.bundle",
|
||||||
"GeForceTeslaVADriver.bundle",
|
"GeForceTeslaVADriver.bundle",
|
||||||
"NVDANV50HalTesla.kext",
|
"NVDANV50HalTesla.kext",
|
||||||
"NVDAResmanTesla.kext",
|
"NVDAResmanTesla.kext",
|
||||||
"IOSurface.kext",
|
"IOSurface.kext",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
AddNvidiaKeplerAccel11 = [
|
||||||
|
"GeForce.kext",
|
||||||
|
"GeForceAIRPlugin.bundle",
|
||||||
|
"GeForceGLDriver.bundle",
|
||||||
|
"GeForceMTLDriver.bundle",
|
||||||
|
"GeForceVADriver.bundle",
|
||||||
|
"NVDAGF100Hal.kext",
|
||||||
|
"NVDAGK100Hal.kext",
|
||||||
|
"NVDAResman.kext",
|
||||||
|
"NVDAStartup.kext",
|
||||||
|
"NVSMU.kext",
|
||||||
|
]
|
||||||
|
|
||||||
AddAMDAccel11 = [
|
AddAMDAccel11 = [
|
||||||
"AMD2400Controller.kext",
|
"AMD2400Controller.kext",
|
||||||
"AMD2600Controller.kext",
|
"AMD2600Controller.kext",
|
||||||
"AMD3800Controller.kext",
|
"AMD3800Controller.kext",
|
||||||
"AMD4600Controller.kext",
|
"AMD4600Controller.kext",
|
||||||
"AMD4800Controller.kext",
|
"AMD4800Controller.kext",
|
||||||
"AMD5000Controller.kext",
|
"AMD5000Controller.kext",
|
||||||
"AMD6000Controller.kext",
|
"AMD6000Controller.kext",
|
||||||
"AMDFramebuffer.kext",
|
"AMDFramebuffer.kext",
|
||||||
"AMDLegacyFramebuffer.kext",
|
"AMDLegacyFramebuffer.kext",
|
||||||
"AMDLegacySupport.kext",
|
"AMDLegacySupport.kext",
|
||||||
"AMDRadeonVADriver.bundle",
|
"AMDRadeonVADriver.bundle",
|
||||||
"AMDRadeonVADriver2.bundle",
|
"AMDRadeonVADriver2.bundle",
|
||||||
#"AMDRadeonX3000.kext", # __ZN22IOAccelDisplayMachine210gMetaClassE link issues
|
# "AMDRadeonX3000.kext", # __ZN22IOAccelDisplayMachine210gMetaClassE link issues
|
||||||
#"AMDRadeonX3000GLDriver.bundle",
|
# "AMDRadeonX3000GLDriver.bundle",
|
||||||
"AMDShared.bundle",
|
"AMDShared.bundle",
|
||||||
"AMDSupport.kext",
|
"AMDSupport.kext",
|
||||||
"ATIRadeonX2000.kext",
|
"ATIRadeonX2000.kext",
|
||||||
"ATIRadeonX2000GA.plugin",
|
"ATIRadeonX2000GA.plugin",
|
||||||
"ATIRadeonX2000GLDriver.bundle",
|
"ATIRadeonX2000GLDriver.bundle",
|
||||||
"ATIRadeonX2000VADriver.bundle",
|
"ATIRadeonX2000VADriver.bundle",
|
||||||
"IOSurface.kext",
|
"IOSurface.kext",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
AddAMDTeraScale2Brightness11 = [
|
||||||
|
"AMD5000Controller.kext",
|
||||||
|
"AMD6000Controller.kext",
|
||||||
|
"AMDLegacyFramebuffer.kext",
|
||||||
|
"AMDLegacySupport.kext",
|
||||||
|
"AMDRadeonX3000.kext",
|
||||||
|
"AMDRadeonX3000GLDriver.bundle",
|
||||||
|
"IOAcceleratorFamily2.kext"
|
||||||
|
]
|
||||||
|
|
||||||
AddIntelGen1Accel = [
|
AddIntelGen1Accel = [
|
||||||
"AppleIntelFramebufferAzul.kext",
|
"AppleIntelHDGraphics.kext",
|
||||||
"AppleIntelFramebufferCapri.kext",
|
"AppleIntelHDGraphicsFB.kext",
|
||||||
"AppleIntelHDGraphics.kext",
|
"AppleIntelHDGraphicsGA.plugin",
|
||||||
"AppleIntelHDGraphicsFB.kext",
|
"AppleIntelHDGraphicsGLDriver.bundle",
|
||||||
"AppleIntelHDGraphicsGA.plugin",
|
"AppleIntelHDGraphicsVADriver.bundle",
|
||||||
"AppleIntelHDGraphicsGLDriver.bundle",
|
|
||||||
"AppleIntelHDGraphicsVADriver.bundle",
|
|
||||||
"IOSurface.kext",
|
"IOSurface.kext",
|
||||||
]
|
]
|
||||||
|
|
||||||
AddIntelGen2Accel = [
|
AddIntelGen2Accel = [
|
||||||
"AppleIntelHD3000Graphics.kext",
|
"AppleIntelHD3000Graphics.kext",
|
||||||
"AppleIntelHD3000GraphicsGA.plugin",
|
"AppleIntelHD3000GraphicsGA.plugin",
|
||||||
"AppleIntelHD3000GraphicsGLDriver.bundle",
|
"AppleIntelHD3000GraphicsGLDriver.bundle",
|
||||||
"AppleIntelHD3000GraphicsVADriver.bundle",
|
"AppleIntelHD3000GraphicsVADriver.bundle",
|
||||||
"AppleIntelSNBGraphicsFB.kext",
|
"AppleIntelSNBGraphicsFB.kext",
|
||||||
"AppleIntelSNBVA.bundle",
|
"AppleIntelSNBVA.bundle",
|
||||||
"IOSurface.kext",
|
"IOSurface.kext",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
AddIntelGen3Accel = [
|
||||||
|
"AppleIntelFramebufferCapri.kext",
|
||||||
|
"AppleIntelHD4000Graphics.kext",
|
||||||
|
"AppleIntelHD4000GraphicsGLDriver.bundle",
|
||||||
|
"AppleIntelHD4000GraphicsMTLDriver.bundle",
|
||||||
|
"AppleIntelHD4000GraphicsVADriver.bundle",
|
||||||
|
]
|
||||||
|
|
||||||
DeleteBrightness = [
|
DeleteBrightness = [
|
||||||
"AppleGraphicsControl.kext/Contents/PlugIns/AGDCBacklightControl.kext"
|
"AppleGraphicsControl.kext/Contents/PlugIns/AGDCBacklightControl.kext"
|
||||||
]
|
]
|
||||||
|
|
||||||
AddBrightness = [
|
AddBrightness = [
|
||||||
"AppleBacklight.kext",
|
"AppleBacklight.kext",
|
||||||
"AppleBacklightExpert.kext",
|
"AppleBacklightExpert.kext",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# List supported IDs
|
||||||
|
|
||||||
|
TeraScale1pciid = [
|
||||||
|
"9400",
|
||||||
|
"9401",
|
||||||
|
"9402",
|
||||||
|
"9403",
|
||||||
|
"9581",
|
||||||
|
"9583",
|
||||||
|
"9588",
|
||||||
|
"94C8",
|
||||||
|
"94C9",
|
||||||
|
"9500",
|
||||||
|
"9501",
|
||||||
|
"9505",
|
||||||
|
"9507",
|
||||||
|
"9504",
|
||||||
|
"9506",
|
||||||
|
"9598",
|
||||||
|
"9488",
|
||||||
|
"9599",
|
||||||
|
"9591",
|
||||||
|
"9593",
|
||||||
|
"9440",
|
||||||
|
"9442",
|
||||||
|
"944A",
|
||||||
|
"945A",
|
||||||
|
"9490",
|
||||||
|
"949E",
|
||||||
|
"9480",
|
||||||
|
"9540",
|
||||||
|
"9541",
|
||||||
|
"954E",
|
||||||
|
"954F",
|
||||||
|
"9552",
|
||||||
|
"9553",
|
||||||
|
"94A0",
|
||||||
|
]
|
||||||
|
|
||||||
|
TeraScale2pciid = [
|
||||||
|
"6738",
|
||||||
|
"6739",
|
||||||
|
"6720",
|
||||||
|
"6722",
|
||||||
|
"6768",
|
||||||
|
"6770",
|
||||||
|
"6779",
|
||||||
|
"6760",
|
||||||
|
"6761",
|
||||||
|
"68E0",
|
||||||
|
"6898",
|
||||||
|
"6899",
|
||||||
|
"68B8",
|
||||||
|
"68B0",
|
||||||
|
"68B1",
|
||||||
|
"68A0",
|
||||||
|
"68A1",
|
||||||
|
"6840",
|
||||||
|
"6841",
|
||||||
|
"68D8",
|
||||||
|
"68C0",
|
||||||
|
"68C1",
|
||||||
|
"68D9",
|
||||||
|
"6750",
|
||||||
|
"6758",
|
||||||
|
"6759",
|
||||||
|
"6740",
|
||||||
|
"6741",
|
||||||
|
"6745",
|
||||||
|
]
|
||||||
|
|
||||||
|
IronLakepciid = [
|
||||||
|
"0044",
|
||||||
|
"0046",
|
||||||
|
]
|
||||||
|
|
||||||
|
SandyBridgepiciid = [
|
||||||
|
"0106",
|
||||||
|
"0601",
|
||||||
|
"0116",
|
||||||
|
"0102",
|
||||||
|
"0126",
|
||||||
|
]
|
||||||
|
|
||||||
|
IvyBridgepciid = [
|
||||||
|
"0152",
|
||||||
|
"0156",
|
||||||
|
"0162",
|
||||||
|
"0166",
|
||||||
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -2,9 +2,8 @@
|
|||||||
# Copyright (C) 2020-2021, Dhinak G, Mykola Grymalyuk
|
# Copyright (C) 2020-2021, Dhinak G, Mykola Grymalyuk
|
||||||
# Missing Features:
|
# Missing Features:
|
||||||
# - Full System/Library Snapshotting (need to research how Apple achieves this)
|
# - Full System/Library Snapshotting (need to research how Apple achieves this)
|
||||||
# - Temorary Work-around: sudo bless --mount /System/Volumes/Update/mnt1 --bootefi --last-sealed-snapshot
|
# - Temporary Work-around: sudo bless --mount /System/Volumes/Update/mnt1 --bootefi --last-sealed-snapshot
|
||||||
# - Work-around battery throttling on laptops with no battery (IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources/)
|
# - Work-around battery throttling on laptops with no battery (IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources/)
|
||||||
# - Add kmutil error checking
|
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
|
|
||||||
import binascii
|
import binascii
|
||||||
@@ -19,7 +18,7 @@ import os
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from datetime import date
|
from datetime import date
|
||||||
|
|
||||||
from Resources import Constants, ModelArray, utilities
|
from Resources import Constants, ModelArray, Utilities
|
||||||
|
|
||||||
|
|
||||||
class PatchSysVolume:
|
class PatchSysVolume:
|
||||||
@@ -27,6 +26,12 @@ class PatchSysVolume:
|
|||||||
self.model = model
|
self.model = model
|
||||||
self.constants: Constants.Constants = versions
|
self.constants: Constants.Constants = versions
|
||||||
|
|
||||||
|
def hexswap(self, input_hex: str):
|
||||||
|
hex_pairs = [input_hex[i:i + 2] for i in range(0, len(input_hex), 2)]
|
||||||
|
hex_rev = hex_pairs[::-1]
|
||||||
|
hex_str = "".join(["".join(x) for x in hex_rev])
|
||||||
|
return hex_str.upper()
|
||||||
|
|
||||||
def csr_decode(self, sip_raw, print_status):
|
def csr_decode(self, sip_raw, print_status):
|
||||||
sip_int = int.from_bytes(sip_raw, byteorder='little')
|
sip_int = int.from_bytes(sip_raw, byteorder='little')
|
||||||
i = 0
|
i = 0
|
||||||
@@ -39,8 +44,14 @@ class PatchSysVolume:
|
|||||||
if print_status is True:
|
if print_status is True:
|
||||||
print(f"- {current_sip_bit}\t {temp}")
|
print(f"- {current_sip_bit}\t {temp}")
|
||||||
i = i + 1
|
i = i + 1
|
||||||
# TODO: Fix this garbage when I have more sanity
|
if ((self.constants.csr_values["CSR_ALLOW_UNTRUSTED_KEXTS "] is True) \
|
||||||
if ((self.constants.csr_values["CSR_ALLOW_UNTRUSTED_KEXTS "] is True) and (self.constants.csr_values["CSR_ALLOW_UNRESTRICTED_FS "] is True) and (self.constants.csr_values["CSR_ALLOW_UNRESTRICTED_DTRACE "] is True) and (self.constants.csr_values["CSR_ALLOW_UNRESTRICTED_NVRAM "] is True) and (self.constants.csr_values["CSR_ALLOW_DEVICE_CONFIGURATION "] is True) and (self.constants.csr_values["CSR_ALLOW_UNAPPROVED_KEXTS "] is True) and (self.constants.csr_values["CSR_ALLOW_EXECUTABLE_POLICY_OVERRIDE"] is True) and (self.constants.csr_values["CSR_ALLOW_UNAUTHENTICATED_ROOT "] is True)):
|
and (self.constants.csr_values["CSR_ALLOW_UNRESTRICTED_FS "] is True) \
|
||||||
|
and (self.constants.csr_values["CSR_ALLOW_UNRESTRICTED_DTRACE "] is True) \
|
||||||
|
and (self.constants.csr_values["CSR_ALLOW_UNRESTRICTED_NVRAM "] is True) \
|
||||||
|
and (self.constants.csr_values["CSR_ALLOW_DEVICE_CONFIGURATION "] is True) \
|
||||||
|
and (self.constants.csr_values["CSR_ALLOW_UNAPPROVED_KEXTS "] is True) \
|
||||||
|
and (self.constants.csr_values["CSR_ALLOW_EXECUTABLE_POLICY_OVERRIDE"] is True) \
|
||||||
|
and (self.constants.csr_values["CSR_ALLOW_UNAUTHENTICATED_ROOT "] is True)):
|
||||||
self.sip_patch_status = False
|
self.sip_patch_status = False
|
||||||
else:
|
else:
|
||||||
self.sip_patch_status = True
|
self.sip_patch_status = True
|
||||||
@@ -67,7 +78,7 @@ class PatchSysVolume:
|
|||||||
print("- Mounting drive as writable")
|
print("- Mounting drive as writable")
|
||||||
subprocess.run(f"sudo mount -o nobrowse -t apfs /dev/{self.root_mount_path} {self.mount_location}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
subprocess.run(f"sudo mount -o nobrowse -t apfs /dev/{self.root_mount_path} {self.mount_location}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||||
if Path(self.mount_extensions).exists():
|
if Path(self.mount_extensions).exists():
|
||||||
print("- Sucessfully mounted the Root Volume")
|
print("- Successfully mounted the Root Volume")
|
||||||
if patch is True:
|
if patch is True:
|
||||||
self.patch_root_vol()
|
self.patch_root_vol()
|
||||||
else:
|
else:
|
||||||
@@ -102,54 +113,94 @@ class PatchSysVolume:
|
|||||||
subprocess.run(f"sudo chmod -Rf 755 {self.mount_extensions}/{add_current_kext}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
subprocess.run(f"sudo chmod -Rf 755 {self.mount_extensions}/{add_current_kext}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||||
subprocess.run(f"sudo chown -Rf root:wheel {self.mount_extensions}/{add_current_kext}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
subprocess.run(f"sudo chown -Rf root:wheel {self.mount_extensions}/{add_current_kext}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||||
|
|
||||||
|
def add_brightness_patch(self):
|
||||||
|
print("- Merging legacy Brightness Control Patches")
|
||||||
|
self.delete_old_binaries(ModelArray.DeleteBrightness)
|
||||||
|
self.add_new_binaries(ModelArray.AddBrightness, self.constants.legacy_brightness)
|
||||||
|
subprocess.run(f"sudo ditto {self.constants.payload_apple_private_frameworks_path_brightness} {self.mount_private_frameworks}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||||
|
subprocess.run(f"sudo chmod -R 755 {self.mount_private_frameworks}/DisplayServices.framework".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||||
|
subprocess.run(f"sudo chown -R root:wheel {self.mount_private_frameworks}/DisplayServices.framework".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||||
|
|
||||||
|
def check_pciid(self):
|
||||||
|
try:
|
||||||
|
self.igpu_devices = plistlib.loads(subprocess.run("ioreg -r -n IGPU -a".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
||||||
|
self.igpu_devices = [i for i in self.igpu_devices if i["class-code"] == binascii.unhexlify("00000300")]
|
||||||
|
self.igpu_vendor = self.hexswap(binascii.hexlify(self.igpu_devices[0]["vendor-id"]).decode()[:4])
|
||||||
|
self.igpu_device = self.hexswap(binascii.hexlify(self.igpu_devices[0]["device-id"]).decode()[:4])
|
||||||
|
print(f"- Detected iGPU: {self.igpu_vendor}:{self.igpu_device}")
|
||||||
|
except ValueError:
|
||||||
|
print("- No iGPU detected")
|
||||||
|
self.igpu_devices = ""
|
||||||
|
|
||||||
|
try:
|
||||||
|
self.dgpu_devices = plistlib.loads(subprocess.run("ioreg -r -n GFX0 -a".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
||||||
|
self.dgpu_devices = [i for i in self.dgpu_devices if i["class-code"] == binascii.unhexlify("00000300")]
|
||||||
|
self.dgpu_vendor = self.hexswap(binascii.hexlify(self.dgpu_devices[0]["vendor-id"]).decode()[:4])
|
||||||
|
self.dgpu_device = self.hexswap(binascii.hexlify(self.dgpu_devices[0]["device-id"]).decode()[:4])
|
||||||
|
try:
|
||||||
|
self.nvidia_arch = self.dgpu_devices[0]["NVArch"]
|
||||||
|
except KeyError:
|
||||||
|
self.nvidia_arch = ""
|
||||||
|
print(f"- Detected dGPU: {self.dgpu_vendor}:{self.dgpu_device}")
|
||||||
|
except ValueError:
|
||||||
|
print("- No dGPU detected")
|
||||||
|
self.dgpu_devices = ""
|
||||||
|
|
||||||
def gpu_accel_patches_11(self):
|
def gpu_accel_patches_11(self):
|
||||||
# TODO: Add proper hardware checks
|
if self.dgpu_devices:
|
||||||
# Due to MUX-based laptops and headless iGPUs, it's difficult to determine what GPU is present
|
if self.dgpu_vendor == self.constants.pci_nvidia:
|
||||||
# Fix would be to parse IOReg for both IGPU and GFX0
|
if self.nvidia_arch == self.constants.arch_kepler and self.constants.assume_legacy is True and self.constants.detected_os > self.constants.big_sur:
|
||||||
if self.model in ModelArray.LegacyGPUNvidia:
|
print("- Merging legacy Nvidia Kepler Kexts and Bundles")
|
||||||
print("- Merging legacy Nvidia Kexts and Bundles")
|
self.add_new_binaries(ModelArray.AddNvidiaKeplerAccel11, self.constants.legacy_nvidia_kepler_path)
|
||||||
self.delete_old_binaries(ModelArray.DeleteNvidiaAccel11)
|
else:
|
||||||
self.add_new_binaries(ModelArray.AddNvidiaAccel11, self.constants.legacy_nvidia_path)
|
print("- Merging legacy Nvidia Telsa and Fermi Kexts and Bundles")
|
||||||
elif self.model in ModelArray.LegacyGPUAMD:
|
self.delete_old_binaries(ModelArray.DeleteNvidiaAccel11)
|
||||||
print("- Merging legacy AMD Kexts and Bundles")
|
self.add_new_binaries(ModelArray.AddNvidiaAccel11, self.constants.legacy_nvidia_path)
|
||||||
self.delete_old_binaries(ModelArray.DeleteAMDAccel11)
|
elif self.dgpu_vendor == self.constants.pci_amd_ati:
|
||||||
self.add_new_binaries(ModelArray.AddAMDAccel11, self.constants.legacy_amd_path)
|
|
||||||
if self.model in ModelArray.LegacyGPUIntelGen1:
|
|
||||||
print("- Merging legacy Intel 1st Gen Kexts and Bundles")
|
|
||||||
self.delete_old_binaries(ModelArray.DeleteNvidiaAccel11)
|
|
||||||
self.add_new_binaries(ModelArray.AddIntelGen1Accel, self.constants.legacy_intel_gen1_path)
|
|
||||||
elif self.model in ModelArray.LegacyGPUIntelGen2:
|
|
||||||
print("- Merging legacy Intel 2nd Gen Kexts and Bundles")
|
|
||||||
self.delete_old_binaries(ModelArray.DeleteNvidiaAccel11)
|
|
||||||
self.add_new_binaries(ModelArray.AddIntelGen2Accel, self.constants.legacy_intel_gen2_path)
|
|
||||||
# iMac10,1 came in both AMD and Nvidia GPU models, so we must do hardware detection
|
|
||||||
if self.model == "iMac10,1":
|
|
||||||
if self.constants.current_gpuv == "AMD (0x1002)":
|
|
||||||
print("- Merging legacy AMD Kexts and Bundles")
|
print("- Merging legacy AMD Kexts and Bundles")
|
||||||
self.delete_old_binaries(ModelArray.DeleteAMDAccel11)
|
self.delete_old_binaries(ModelArray.DeleteAMDAccel11)
|
||||||
self.add_new_binaries(ModelArray.AddAMDAccel11, self.constants.legacy_amd_path)
|
self.add_new_binaries(ModelArray.AddAMDAccel11, self.constants.legacy_amd_path)
|
||||||
else:
|
if self.igpu_devices:
|
||||||
print("- Merging legacy Nvidia Kexts and Bundles")
|
if self.igpu_vendor == self.constants.pci_intel:
|
||||||
self.delete_old_binaries(ModelArray.DeleteNvidiaAccel11)
|
if self.igpu_device in ModelArray.IronLakepciid:
|
||||||
self.add_new_binaries(ModelArray.AddNvidiaAccel11, self.constants.legacy_nvidia_path)
|
print("- Merging legacy Intel 1st Gen Kexts and Bundles")
|
||||||
|
self.delete_old_binaries(ModelArray.DeleteNvidiaAccel11)
|
||||||
|
self.add_new_binaries(ModelArray.AddIntelGen1Accel, self.constants.legacy_intel_gen1_path)
|
||||||
|
elif self.igpu_device in ModelArray.SandyBridgepiciid:
|
||||||
|
print("- Merging legacy Intel 2nd Gen Kexts and Bundles")
|
||||||
|
self.delete_old_binaries(ModelArray.DeleteNvidiaAccel11)
|
||||||
|
self.add_new_binaries(ModelArray.AddIntelGen2Accel, self.constants.legacy_intel_gen2_path)
|
||||||
|
#if self.model in ModelArray.LegacyGPUAMDIntelGen2:
|
||||||
|
# Swap custom AppleIntelSNBGraphicsFB-AMD.kext, required to fix linking
|
||||||
|
# subprocess.run(f"sudo rm -R {self.mount_extensions}/AppleIntelSNBGraphicsFB.kext".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||||
|
# subprocess.run(f"sudo cp -R {self.constants.legacy_amd_path}/AMD-Link/AppleIntelSNBGraphicsFB.kext {self.mount_extensions}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||||
|
|
||||||
|
# Code for when Ivy Bridge binares are presumably removed from macOS 12, code currently
|
||||||
|
#elif self.igpu_device in ModelArray.IvyBridgepciid:
|
||||||
|
# print("- Merging legacy Intel 3rd Gen Kexts and Bundles")
|
||||||
|
# self.add_new_binaries(ModelArray.AddIntelGen3Accel, self.constants.legacy_intel_gen3_path)
|
||||||
|
elif self.igpu_vendor == self.constants.pci_nvidia:
|
||||||
|
if not self.dgpu_devices:
|
||||||
|
# Avoid patching twice, as Nvidia iGPUs will only have Nvidia dGPUs
|
||||||
|
print("- Merging legacy Nvidia Kexts and Bundles")
|
||||||
|
self.delete_old_binaries(ModelArray.DeleteNvidiaAccel11)
|
||||||
|
self.add_new_binaries(ModelArray.AddNvidiaAccel11, self.constants.legacy_nvidia_path)
|
||||||
|
|
||||||
# Frameworks
|
# Frameworks
|
||||||
print("- Merging legacy Frameworks")
|
print("- Merging legacy Frameworks")
|
||||||
subprocess.run(f"sudo ditto {self.constants.payload_apple_frameworks_path_accel} {self.mount_frameworks}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
subprocess.run(f"sudo ditto {self.constants.payload_apple_frameworks_path_accel} {self.mount_frameworks}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||||
|
|
||||||
if self.model in ModelArray.LegacyBrightness:
|
if self.model in ModelArray.LegacyBrightness:
|
||||||
print("- Merging legacy Brightness Control Patches")
|
self.add_brightness_patch()
|
||||||
self.delete_old_binaries(ModelArray.DeleteBrightness)
|
|
||||||
self.add_new_binaries(ModelArray.AddBrightness, self.constants.legacy_brightness)
|
|
||||||
subprocess.run(f"sudo ditto {self.constants.payload_apple_private_frameworks_path_brightness} {self.mount_private_frameworks}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
|
||||||
subprocess.run(f"sudo chmod -R 755 {self.mount_private_frameworks}/DisplayServices.framework".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
|
||||||
subprocess.run(f"sudo chown -R root:wheel {self.mount_private_frameworks}/DisplayServices.framework".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
|
||||||
|
|
||||||
# LaunchDaemons
|
# LaunchDaemons
|
||||||
print("- Adding HiddHack.plist")
|
if Path(self.mount_lauchd / Path("HiddHack.plist")).exists():
|
||||||
|
print("- Removing legacy HiddHack")
|
||||||
|
subprocess.run(f"sudo rm {self.mount_lauchd}/HiddHack.plist".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||||
|
print("- Adding IOHID-Fixup.plist")
|
||||||
subprocess.run(f"sudo ditto {self.constants.payload_apple_lauchd_path_accel} {self.mount_lauchd}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
subprocess.run(f"sudo ditto {self.constants.payload_apple_lauchd_path_accel} {self.mount_lauchd}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||||
subprocess.run(f"sudo chmod 755 {self.mount_lauchd}/HiddHack.plist".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
subprocess.run(f"sudo chmod 755 {self.mount_lauchd}/IOHID-Fixup.plist".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||||
subprocess.run(f"sudo chown root:wheel {self.mount_lauchd}/HiddHack.plist".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
subprocess.run(f"sudo chown root:wheel {self.mount_lauchd}/IOHID-Fixup.plist".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||||
|
|
||||||
# PrivateFrameworks
|
# PrivateFrameworks
|
||||||
print("- Merging legacy PrivateFrameworks")
|
print("- Merging legacy PrivateFrameworks")
|
||||||
@@ -160,27 +211,21 @@ class PatchSysVolume:
|
|||||||
print("- Enabling NSDefenestratorModeEnabled")
|
print("- Enabling NSDefenestratorModeEnabled")
|
||||||
subprocess.run("defaults write -g NSDefenestratorModeEnabled -bool true".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
subprocess.run("defaults write -g NSDefenestratorModeEnabled -bool true".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||||
|
|
||||||
|
|
||||||
def patch_root_vol(self):
|
def patch_root_vol(self):
|
||||||
print(f"- Detecting patches for {self.model}")
|
print(f"- Detecting patches for {self.model}")
|
||||||
|
rebuild_required = False
|
||||||
# TODO: Create Backup of S*/L*/Extensions, Frameworks and PrivateFramework to easily revert changes
|
# TODO: Create Backup of S*/L*/Extensions, Frameworks and PrivateFramework to easily revert changes
|
||||||
# APFS snapshotting seems to ignore System Volume changes inconcistently, would like a backup to avoid total brick
|
# APFS snapshotting seems to ignore System Volume changes inconsistently, would like a backup to avoid total brick
|
||||||
# Perhaps a basic py2 script to run in recovery to restore
|
# Perhaps a basic py2 script to run in recovery to restore
|
||||||
print("- Creating backup snapshot of user data (This may take some time)")
|
|
||||||
subprocess.run("tmutil snapshot".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
|
||||||
# Ensures no .DS_Stores got in
|
# Ensures no .DS_Stores got in
|
||||||
print("- Preparing Files")
|
print("- Preparing Files")
|
||||||
subprocess.run(f"sudo find {self.constants.payload_apple_root_path} -name '.DS_Store' -delete".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
subprocess.run(f"sudo find {self.constants.payload_apple_root_path} -name '.DS_Store' -delete".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||||
|
|
||||||
current_gpu: str = subprocess.run("system_profiler SPDisplaysDataType".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.decode()
|
if self.model in ModelArray.LegacyGPU or self.constants.assume_legacy is True:
|
||||||
self.constants.current_gpuv = [line.strip().split(": ", 1)[1] for line in current_gpu.split("\n") if line.strip().startswith(("Vendor"))][0]
|
self.check_pciid()
|
||||||
self.constants.current_gpud = [line.strip().split(": ", 1)[1] for line in current_gpu.split("\n") if line.strip().startswith(("Device ID"))][0]
|
if self.dgpu_devices and self.dgpu_vendor == self.constants.pci_amd_ati and self.dgpu_device in ModelArray.AMDMXMGPUs:
|
||||||
|
|
||||||
if (self.model in ModelArray.LegacyGPU) and (Path(self.constants.hiddhack_path).exists()):
|
|
||||||
print(f"- Detected GPU: {self.constants.current_gpuv} {self.constants.current_gpud}")
|
|
||||||
if (self.constants.current_gpuv == "AMD (0x1002)") & (self.constants.current_gpud in ModelArray.AMDMXMGPUs):
|
|
||||||
print("- Detected Metal-based AMD GPU, skipping legacy patches")
|
print("- Detected Metal-based AMD GPU, skipping legacy patches")
|
||||||
elif (self.constants.current_gpuv == "NVIDIA (0x10de)") & (self.constants.current_gpud in ModelArray.NVIDIAMXMGPUs):
|
elif self.dgpu_devices and self.dgpu_vendor == self.constants.pci_nvidia and self.dgpu_device in ModelArray.NVIDIAMXMGPUs:
|
||||||
print("- Detected Metal-based Nvidia GPU, skipping legacy patches")
|
print("- Detected Metal-based Nvidia GPU, skipping legacy patches")
|
||||||
else:
|
else:
|
||||||
print("- Detected legacy GPU, attempting legacy acceleration patches")
|
print("- Detected legacy GPU, attempting legacy acceleration patches")
|
||||||
@@ -191,18 +236,29 @@ class PatchSysVolume:
|
|||||||
self.rebuild_snapshot()
|
self.rebuild_snapshot()
|
||||||
|
|
||||||
def unpatch_root_vol(self):
|
def unpatch_root_vol(self):
|
||||||
print("- Creating backup snapshot of user data (This may take some time)")
|
|
||||||
subprocess.run("tmutil snapshot".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
|
||||||
print("- Reverting to last signed APFS snapshot")
|
print("- Reverting to last signed APFS snapshot")
|
||||||
subprocess.run(f"sudo bless --mount {self.mount_location} --bootefi --last-sealed-snapshot".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
subprocess.run(f"sudo bless --mount {self.mount_location} --bootefi --last-sealed-snapshot".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||||
|
|
||||||
def rebuild_snapshot(self):
|
def rebuild_snapshot(self):
|
||||||
input("Press [ENTER] to continue with cache rebuild")
|
if self.constants.gui_mode is False:
|
||||||
|
input("Press [ENTER] to continue with cache rebuild")
|
||||||
print("- Rebuilding Kernel Cache (This may take some time)")
|
print("- Rebuilding Kernel Cache (This may take some time)")
|
||||||
subprocess.run(f"sudo kmutil install --volume-root {self.mount_location} --update-all".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
result = subprocess.run(f"sudo kmutil install --volume-root {self.mount_location} --update-all".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||||
input("Press [ENTER] to continue with snapshotting")
|
|
||||||
print("- Creating new APFS snapshot")
|
if result.returncode != 0:
|
||||||
subprocess.run(f"sudo bless --folder {self.mount_location}/System/Library/CoreServices --bootefi --create-snapshot".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
self.sucess_status = False
|
||||||
|
print("- Unable to build new kernel cache")
|
||||||
|
print("\nPlease report this to Github")
|
||||||
|
print("Reason for Patch Failure:")
|
||||||
|
print(result.stdout.decode())
|
||||||
|
print("")
|
||||||
|
else:
|
||||||
|
self.sucess_status = True
|
||||||
|
print("- Successfully built new kernel cache")
|
||||||
|
if self.constants.gui_mode is False:
|
||||||
|
input("Press [ENTER] to continue with snapshotting")
|
||||||
|
print("- Creating new APFS snapshot")
|
||||||
|
subprocess.run(f"sudo bless --folder {self.mount_location}/System/Library/CoreServices --bootefi --create-snapshot".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||||
|
|
||||||
def unmount_drive(self):
|
def unmount_drive(self):
|
||||||
print("- Unmounting Root Volume (Don't worry if this fails)")
|
print("- Unmounting Root Volume (Don't worry if this fails)")
|
||||||
@@ -236,18 +292,21 @@ class PatchSysVolume:
|
|||||||
def check_files(self):
|
def check_files(self):
|
||||||
if Path(self.constants.payload_apple_root_path).exists():
|
if Path(self.constants.payload_apple_root_path).exists():
|
||||||
print("- Found Apple Binaries")
|
print("- Found Apple Binaries")
|
||||||
patch_input = input("Would you like to redownload?(y/n): ")
|
if self.constants.gui_mode is False:
|
||||||
if patch_input in {"y", "Y", "yes", "Yes"}:
|
patch_input = input("Would you like to redownload?(y/n): ")
|
||||||
shutil.rmtree(Path(self.constants.payload_apple_root_path))
|
if patch_input in {"y", "Y", "yes", "Yes"}:
|
||||||
|
shutil.rmtree(Path(self.constants.payload_apple_root_path))
|
||||||
|
self.download_files()
|
||||||
|
else:
|
||||||
self.download_files()
|
self.download_files()
|
||||||
else:
|
else:
|
||||||
print("- Apple binaries missing")
|
print("- Apple binaries missing")
|
||||||
self.download_files()
|
self.download_files()
|
||||||
|
|
||||||
def download_files(self):
|
def download_files(self):
|
||||||
utilities.cls()
|
Utilities.cls()
|
||||||
print("- Downloading Apple binaries")
|
print("- Downloading Apple binaries")
|
||||||
popen_oclp = subprocess.Popen(f"curl -S -L {self.constants.url_apple_binaries} --output {self.constants.payload_apple_root_path_zip}".split(), stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True)
|
popen_oclp = subprocess.Popen(f"curl -S -L {self.constants.url_apple_binaries}{self.constants.payload_version}.zip --output {self.constants.payload_apple_root_path_zip}".split(), stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True)
|
||||||
for stdout_line in iter(popen_oclp.stdout.readline, ""):
|
for stdout_line in iter(popen_oclp.stdout.readline, ""):
|
||||||
print(stdout_line, end="")
|
print(stdout_line, end="")
|
||||||
popen_oclp.stdout.close()
|
popen_oclp.stdout.close()
|
||||||
@@ -260,7 +319,8 @@ class PatchSysVolume:
|
|||||||
os.rename(self.constants.payload_apple_root_path_unzip, self.constants.payload_apple_root_path)
|
os.rename(self.constants.payload_apple_root_path_unzip, self.constants.payload_apple_root_path)
|
||||||
print("- Binaries downloaded to:")
|
print("- Binaries downloaded to:")
|
||||||
print(self.constants.payload_path)
|
print(self.constants.payload_path)
|
||||||
input("Press [ENTER] to continue")
|
if self.constants.gui_mode is False:
|
||||||
|
input("Press [ENTER] to continue")
|
||||||
except zipfile.BadZipFile:
|
except zipfile.BadZipFile:
|
||||||
print("- Couldn't unzip")
|
print("- Couldn't unzip")
|
||||||
os.remove(self.constants.payload_apple_root_path_zip)
|
os.remove(self.constants.payload_apple_root_path_zip)
|
||||||
@@ -272,24 +332,28 @@ class PatchSysVolume:
|
|||||||
# Check SIP
|
# Check SIP
|
||||||
if self.constants.custom_model is not None:
|
if self.constants.custom_model is not None:
|
||||||
print("Root Patching must be done on target machine!")
|
print("Root Patching must be done on target machine!")
|
||||||
elif self.model in ModelArray.NoRootPatch11:
|
elif self.model in ModelArray.NoRootPatch11 and self.constants.assume_legacy is False:
|
||||||
print("Root Patching not required for this machine!")
|
print("Root Patching not required for this machine!")
|
||||||
elif self.model not in ModelArray.SupportedSMBIOS:
|
elif self.model not in ModelArray.SupportedSMBIOS11:
|
||||||
print("Cannot run on this machine, model is unsupported!")
|
print("Cannot run on this machine, model is unsupported!")
|
||||||
elif self.constants.detected_os < self.constants.big_sur:
|
elif self.constants.detected_os < self.constants.big_sur:
|
||||||
print(f"Cannot run on this OS, requires macOS 11!")
|
print(f"Cannot run on this OS, requires macOS 11!")
|
||||||
else:
|
else:
|
||||||
self.check_status()
|
self.check_status()
|
||||||
utilities.cls()
|
Utilities.cls()
|
||||||
if (self.sip_patch_status is False) and (self.smb_status is False):
|
if (self.sip_patch_status is False) and (self.smb_status is False):
|
||||||
print("- Detected SIP and SecureBootModel are disabled, continuing")
|
print("- Detected SIP and SecureBootModel are disabled, continuing")
|
||||||
input("\nPress [ENTER] to continue")
|
if self.constants.gui_mode is False:
|
||||||
|
input("\nPress [ENTER] to continue")
|
||||||
self.check_files()
|
self.check_files()
|
||||||
if self.constants.payload_apple_root_path.exists():
|
if self.constants.payload_apple_root_path.exists():
|
||||||
self.find_mount_root_vol(True)
|
self.find_mount_root_vol(True)
|
||||||
self.unmount_drive()
|
self.unmount_drive()
|
||||||
print("- Patching complete")
|
print("- Patching complete")
|
||||||
print("\nPlease reboot the machine for patches to take effect")
|
if self.sucess_status is True:
|
||||||
|
print("\nPlease reboot the machine for patches to take effect")
|
||||||
|
else:
|
||||||
|
print("\nPlease reboot the machine to avoid potential issues rerunning the patcher")
|
||||||
if self.sip_patch_status is True:
|
if self.sip_patch_status is True:
|
||||||
print("SIP set incorrectly, cannot patch on this machine!")
|
print("SIP set incorrectly, cannot patch on this machine!")
|
||||||
print("Please disable SIP and SecureBootModel in Patcher Settings")
|
print("Please disable SIP and SecureBootModel in Patcher Settings")
|
||||||
@@ -303,7 +367,9 @@ class PatchSysVolume:
|
|||||||
print("FileVault enabled, unable to patch!")
|
print("FileVault enabled, unable to patch!")
|
||||||
print("Please disable FileVault in System Preferences")
|
print("Please disable FileVault in System Preferences")
|
||||||
print("")
|
print("")
|
||||||
input("Press [Enter] to go exit.")
|
if self.constants.gui_mode is False:
|
||||||
|
input("Press [Enter] to go exit.")
|
||||||
|
|
||||||
def start_unpatch(self):
|
def start_unpatch(self):
|
||||||
if self.constants.custom_model is not None:
|
if self.constants.custom_model is not None:
|
||||||
print("Unpatching must be done on target machine!")
|
print("Unpatching must be done on target machine!")
|
||||||
@@ -311,10 +377,11 @@ class PatchSysVolume:
|
|||||||
print(f"Cannot run on this OS, requires macOS 11!")
|
print(f"Cannot run on this OS, requires macOS 11!")
|
||||||
else:
|
else:
|
||||||
self.check_status()
|
self.check_status()
|
||||||
utilities.cls()
|
Utilities.cls()
|
||||||
if (self.sip_patch_status is False) and (self.smb_status is False):
|
if (self.sip_patch_status is False) and (self.smb_status is False):
|
||||||
print("- Detected SIP and SecureBootModel are disabled, continuing")
|
print("- Detected SIP and SecureBootModel are disabled, continuing")
|
||||||
input("\nPress [ENTER] to continue")
|
if self.constants.gui_mode is False:
|
||||||
|
input("\nPress [ENTER] to continue")
|
||||||
self.find_mount_root_vol(False)
|
self.find_mount_root_vol(False)
|
||||||
self.unmount_drive()
|
self.unmount_drive()
|
||||||
print("- Unpatching complete")
|
print("- Unpatching complete")
|
||||||
@@ -332,5 +399,5 @@ class PatchSysVolume:
|
|||||||
print("FileVault enabled, unable to unpatch!")
|
print("FileVault enabled, unable to unpatch!")
|
||||||
print("Please disable FileVault in System Preferences")
|
print("Please disable FileVault in System Preferences")
|
||||||
print("")
|
print("")
|
||||||
input("Press [Enter] to go exit.")
|
if self.constants.gui_mode is False:
|
||||||
|
input("Press [Enter] to go exit.")
|
||||||
|
|||||||
@@ -120,9 +120,11 @@ module.exports = {
|
|||||||
collapsable: false,
|
collapsable: false,
|
||||||
sidebarDepth: 1,
|
sidebarDepth: 1,
|
||||||
children: [
|
children: [
|
||||||
|
'TESTED',
|
||||||
'TERMS',
|
'TERMS',
|
||||||
'HOW',
|
'HOW',
|
||||||
'PATCHEXPLAIN',
|
'PATCHEXPLAIN',
|
||||||
|
'CLI',
|
||||||
]
|
]
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -12,10 +12,10 @@ With OpenCore Legacy Patcher we recommend users go through the below table to un
|
|||||||
| Supported OSes | <span style="color:#30BCD5">10.7-11</span> | <span style="color:red">10.15-11</span> |
|
| Supported OSes | <span style="color:#30BCD5">10.7-11</span> | <span style="color:red">10.15-11</span> |
|
||||||
| Firmware Patching | <span style="color:#30BCD5">None required</span> | <span style="color:red">Required for models without native APFS support</span> |
|
| Firmware Patching | <span style="color:#30BCD5">None required</span> | <span style="color:red">Required for models without native APFS support</span> |
|
||||||
| BootCamp Switching | <span style="color:red">Requires EFI Conversion for Start Disk support, otherwise still supported</span> | <span style="color:#30BCD5">Native</span> |
|
| BootCamp Switching | <span style="color:red">Requires EFI Conversion for Start Disk support, otherwise still supported</span> | <span style="color:#30BCD5">Native</span> |
|
||||||
| Brightness Control on Legacy GPUs | <span style="color:red">Not supported</span> | <span style="color:#30BCD5">Supported</span> |
|
| Brightness Control on Legacy GPUs | <span style="color:#30BCD5">Supported</span> | <span style="color:#30BCD5">Supported</span> |
|
||||||
|
| Legacy GPU Acceleration | <span style="color:#30BCD5">In active development</span>, see Acceleration Progress Tracker: [Link](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108) | <span style="color:red">Currently not researching</span> |
|
||||||
| WPA Wifi Support | <span style="color:#30BCD5">Native, stable</span> | <span style="color:red">Unstable</span> |
|
| WPA Wifi Support | <span style="color:#30BCD5">Native, stable</span> | <span style="color:red">Unstable</span> |
|
||||||
| Legacy GPU Acceleration | <span style="color:red">Coming soon</span> | <span style="color:red">Coming soon</span> |
|
|
||||||
| Brightness Control on Legacy GPUs | <span style="color:red">Coming soon</span> | <span style="color:#30BCD5">Supported</span> |
|
|
||||||
| HEVC/H.265 Support for Mac Pros and iMacs with Polaris+ GPUs | <span style="color:#30BCD5">Supported</span> | <span style="color:red">Not supported</span> |
|
| HEVC/H.265 Support for Mac Pros and iMacs with Polaris+ GPUs | <span style="color:#30BCD5">Supported</span> | <span style="color:red">Not supported</span> |
|
||||||
| Big Sur-styled Boot Picker | <span style="color:#30BCD5">Available</span> | <span style="color:red">Not available</span> |
|
| Big Sur-styled Boot Picker | <span style="color:#30BCD5">Available</span> | <span style="color:red">Not available</span> |
|
||||||
| Hibernation Support | <span style="color:red">Not available</span> (Partially broken for some) | <span style="color:#30BCD5">Supported</span> |
|
| El Capitan-era Wifi cards | <span style="color:#30BCD5">Supported</span> | <span style="color:red">Not supported</span> |
|
||||||
|
| Hibernation Support | <span style="color:#30BCD5">Supports 3rd party SATA SSDs in addition to stock models</span> | <span style="color:red">Only supports stock drives</span> |
|
||||||
41
docs/CLI.md
Normal file
41
docs/CLI.md
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
# Command Line Args
|
||||||
|
|
||||||
|
With OpenCore Legacy Patcher, we include an extra binary called [OCLP-CLI](https://github.com/dortania/OpenCore-Legacy-Patcher/releases/). The purpose of this binary is to easily run our OpenCore build process for other programs to hook onto. Below is documentation on currently supported arguments.
|
||||||
|
|
||||||
|
### Build Arguments
|
||||||
|
|
||||||
|
* **--build**: Build OpenCore
|
||||||
|
* **--model xxxx**: override default model detection
|
||||||
|
* ex. **--model iMac11,2**
|
||||||
|
* **--metal_gpu xxxx**: override default GPU detection (ie. Nvidia, AMD)
|
||||||
|
* **--metal_gpu Nvidia**
|
||||||
|
* **--smbios_spoof xxxx**: set spoofing mode, defaults to Minimal if no arg provided (ie. Minimal, Moderate, Advanced)
|
||||||
|
* ex. **--smbios_spoof Moderate**
|
||||||
|
* **--verbose**: enable verbose booting
|
||||||
|
* **--debug_oc**: enable debug OpenCore
|
||||||
|
* **--debug_kext**: enable debug kexts
|
||||||
|
* **--skip_wifi**: skip wifi patch
|
||||||
|
* **--hide_picker**: hide OpenCore's picker
|
||||||
|
* **--disable_sip**: disables SIP
|
||||||
|
* **--disable_smb**: disables SecureBootModel
|
||||||
|
* **--vault**: enable OpenCore vaulting
|
||||||
|
|
||||||
|
Example usage:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./OCLP-CLI --build --verbose --debug_oc --debug_kext --model iMac11,2
|
||||||
|
```
|
||||||
|
|
||||||
|
Note, when building OpenCore the output folder will be next to the OCLP binary as OpenCore-RELEASE or OpenCore-DEBUG folder.
|
||||||
|
|
||||||
|
### Patch System Arguments
|
||||||
|
|
||||||
|
* **--patch_sys_vol**: patches root volume with detected hardware
|
||||||
|
|
||||||
|
Example usage:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo ./OCLP-CLI --patch_sys_vol
|
||||||
|
```
|
||||||
|
|
||||||
|
Note, root volume patching needs to be run as sudo
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
For those who've hit an odd bug and unsure if it's user error or patcher, the below will tell you how to get more verbose debug information as well as logs to help [file issues with us](https://github.com/dortania/OpenCore-Legacy-Patcher/issues)
|
For those who've hit an odd bug and unsure if it's user error or patcher, the below will tell you how to get more verbose debug information as well as logs to help [file issues with us](https://github.com/dortania/OpenCore-Legacy-Patcher/issues)
|
||||||
|
|
||||||
* For users who are less experienced, we recommend asking on the [Unsupported Mac Discord Server](https://discord.gg/XbbWAsE) for help.
|
* For users who are less experienced, we recommend asking on the [OpenCore Patcher Paradise Discord Server](https://discord.gg/UbM8U75E) for help.
|
||||||
|
|
||||||
## Debugging yourself
|
## Debugging yourself
|
||||||
|
|
||||||
|
|||||||
@@ -8,11 +8,12 @@ Main hardware we'd appreciate:
|
|||||||
|
|
||||||
* Any Mac you own
|
* Any Mac you own
|
||||||
* Does require SSE4,1 CPU to test on Sierra and newer however
|
* Does require SSE4,1 CPU to test on Sierra and newer however
|
||||||
* Any legacy GPU supporting macOS
|
|
||||||
* Does not require to be Mac flashed
|
Additionally, hardware info dumps are greatly beneficial for us to determine what patches a machine might need:
|
||||||
* Following generations would would be beneficial:
|
|
||||||
* Nvidia 8000 series through 500
|
* [IORegistryExplorer](https://github.com/khronokernel/IORegistryClone/blob/master/ioreg-210.zip?raw=true)
|
||||||
* AMD/ATI 2000 series through 6000
|
* `File -> SaveAs` and open an issue on Github
|
||||||
|
* Note: We want IOReg dumps of hardware not running on OpenCore, instead running a clean, supported OS
|
||||||
|
|
||||||
If you have any legacy hardware you're willing to donate, please contact us at the following email:
|
If you have any legacy hardware you're willing to donate, please contact us at the following email:
|
||||||
|
|
||||||
@@ -22,6 +23,7 @@ Current hardware we own:
|
|||||||
|
|
||||||
| Model | CPU | GPU | Owner | Notes |
|
| Model | CPU | GPU | Owner | Notes |
|
||||||
| :--- | :--- | :--- | :--- | :--- |
|
| :--- | :--- | :--- | :--- | :--- |
|
||||||
|
| MacBook7,1 | Penryn | GT320M | Dhinak | N/A |
|
||||||
| MacBook7,1 | Penryn | GT320M | Mykola | N/A |
|
| MacBook7,1 | Penryn | GT320M | Mykola | N/A |
|
||||||
| iMac11,2 | Clarksdale | HD4670 | Mykola | N/A |
|
| iMac11,2 | Clarksdale | HD4670 | Mykola | N/A |
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,12 @@ This doc is centered around downloading and writing the macOS installer to a USB
|
|||||||
The simplest way to download macOS installs would be to use installinstallmacos:
|
The simplest way to download macOS installs would be to use installinstallmacos:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
mkdir ~/macOS-installer && cd ~/macOS-installer && curl -O https://raw.githubusercontent.com/munki/macadmin-scripts/main/installinstallmacos.py && sudo python installinstallmacos.py
|
[ ! -d ~/macOS-installer/ ] && mkdir ~/macOS-installer; cd ~/macOS-installer; [ ! -f ~/macOS-installer/installinstallmacos.py ] && curl -O https://raw.githubusercontent.com/munki/macadmin-scripts/main/installinstallmacos.py; sudo python installinstallmacos.py
|
||||||
|
```
|
||||||
|
* Note: On El Capitan (10.11) and older, you'll need to specify a catalog at the end of the command:
|
||||||
|
|
||||||
|
```
|
||||||
|
--catalogurl https://swscan.apple.com/content/catalogs/others/index-11-10.15-10.14-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog
|
||||||
```
|
```
|
||||||
|
|
||||||

|

|
||||||
|
|||||||
@@ -15,4 +15,21 @@ This patcher is made of multiple external applications from different people and
|
|||||||
* [telemetrap](https://forums.macrumors.com/threads/mp3-1-others-sse-4-2-emulation-to-enable-amd-metal-driver.2206682/post-28447707) - Syncretic
|
* [telemetrap](https://forums.macrumors.com/threads/mp3-1-others-sse-4-2-emulation-to-enable-amd-metal-driver.2206682/post-28447707) - Syncretic
|
||||||
* Apple Binaries - Apple Inc.
|
* Apple Binaries - Apple Inc.
|
||||||
|
|
||||||
Remaining files within OpenCore Legacy Patcher are copyrighted to their respective author.
|
Remaining files within OpenCore Legacy Patcher are copyrighted 2020-2021 Mykola Grymalyuk & Dhinak G, under the BSD-3 Clause license:
|
||||||
|
|
||||||
|
```
|
||||||
|
Copyright (c) 2020-2021, Dhinak G
|
||||||
|
Copyright (c) 2020-2021, Mykola Grymalyuk
|
||||||
|
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
```
|
||||||
@@ -16,16 +16,12 @@ The below table will list all supported and unsupported functions of the patcher
|
|||||||
* [Mac Pro](#mac-pro)
|
* [Mac Pro](#mac-pro)
|
||||||
* [Xserve](#xserve)
|
* [Xserve](#xserve)
|
||||||
|
|
||||||
Note: In this patcher, Brightness Control is tied to GPU acceleration
|
|
||||||
|
|
||||||
Note 2: For setups that require AppleHDA patching, we highly advise users instead opt of a USB Audio adapter to avoid root patching. This ensures that [DELTA](./TERMS.md) updates, FileVault, SIP and other security features can stay in-tact.
|
|
||||||
|
|
||||||
Regarding OS support, see below:
|
Regarding OS support, see below:
|
||||||
|
|
||||||
| Support Entry | Supported OSes | Description | Comment |
|
| Support Entry | Supported OSes | Description | Comment |
|
||||||
| :--- | :--- | :--- | :--- |
|
| :--- | :--- | :--- | :--- |
|
||||||
| HostOS | macOS 10.9-11 | Refers to OSes where running OpenCore-Patcher.app are supported | Supports 10.7+ if [python 3.6 or higher](https://www.python.org/downloads/) is manually installed, simply run the `OpenCore-Patcher.command` located in the repo |
|
| HostOS | macOS 10.9 - macOS 11 | Refers to OSes where running OpenCore-Patcher.app are supported | Supports 10.7+ if [Python 3.6 or higher](https://www.python.org/downloads/) is manually installed, simply run the `OpenCore-Patcher.command` located in the repo |
|
||||||
| TargetOS | macOS 11 | Refers to OSes that can be patched to run with OpenCore | Unofficially supports 10.4 and newer, no support provided via this patcher |
|
| TargetOS | macOS 11 | Refers to OSes that can be patched to run with OpenCore | May support 10.4 and newer (in a potentially broken state). No support provided. |
|
||||||
|
|
||||||
### MacBook
|
### MacBook
|
||||||
|
|
||||||
@@ -35,8 +31,8 @@ Regarding OS support, see below:
|
|||||||
| MacBook2,1 | Late 2006 | ^^ | 32-Bit Firmware limitation |
|
| MacBook2,1 | Late 2006 | ^^ | 32-Bit Firmware limitation |
|
||||||
| MacBook3,1 | Late 2007 | ^^ | ^^ |
|
| MacBook3,1 | Late 2007 | ^^ | ^^ |
|
||||||
| MacBook4,1 | Early 2008 | <span style="color:#30BCD5"> YES </span> | - No GPU Acceleration in Mavericks and newer<br/>- No Keyboard and Trackpad<br/>- No USB<br/>- No Ethernet) |
|
| MacBook4,1 | Early 2008 | <span style="color:#30BCD5"> YES </span> | - No GPU Acceleration in Mavericks and newer<br/>- No Keyboard and Trackpad<br/>- No USB<br/>- No Ethernet) |
|
||||||
| MacBook5,1 | Late 2008 | ^^ | - No GPU Acceleration in Big Sur([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108))<br/>- Trackpad is recognized as mouse |
|
| MacBook5,1 | Late 2008 | ^^ | - No GPU Acceleration in Big Sur([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108))<br/> |
|
||||||
| MacBook5,2 | Early 2009 | ^^ | ^^ |
|
| MacBook5,2 | Early 2009 | ^^ | - No GPU Acceleration in Big Sur([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108))<br/>- Trackpad is recognized as mouse<br/>- Brightness control partially supported |
|
||||||
| MacBook6,1 | Late 2009 | ^^ | - No GPU Acceleration in Big Sur([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108))<br/> |
|
| MacBook6,1 | Late 2009 | ^^ | - No GPU Acceleration in Big Sur([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108))<br/> |
|
||||||
| MacBook7,1 | Mid-2010 | ^^ | ^^ |
|
| MacBook7,1 | Mid-2010 | ^^ | ^^ |
|
||||||
|
|
||||||
@@ -102,10 +98,10 @@ Regarding OS support, see below:
|
|||||||
| iMac5,1 | Late 2006 | ^^ | 32-Bit Firmware limitation |
|
| iMac5,1 | Late 2006 | ^^ | 32-Bit Firmware limitation |
|
||||||
| iMac5,2 | ^^ | ^^ | ^^ |
|
| iMac5,2 | ^^ | ^^ | ^^ |
|
||||||
| iMac6,1 | ^^ | ^^ | ^^ |
|
| iMac6,1 | ^^ | ^^ | ^^ |
|
||||||
| iMac7,1 | Mid-2007 | <span style="color:#30BCD5"> YES </span> | - Requires an SSE4.1 CPU Upgrade<br/>- No GPU Acceleration in Big Sur([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108))<br/> |
|
| iMac7,1 | Mid-2007 | <span style="color:#30BCD5"> YES </span> | - Requires an SSE4.1 CPU Upgrade<br/>- No GPU Acceleration in Big Sur([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108))<br/>- Brightness control partially supported on Nvidia GPUs, AMD unsupported<br/>- Stock Bluetooth 2.0 card non-functional |
|
||||||
| iMac8,1 | Early 2008 | ^^ | No GPU Acceleration in Big Sur([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108))) |
|
| iMac8,1 | Early 2008 | ^^ | - No GPU Acceleration in Big Sur([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108)))<br/>- Brightness control partially supported on Nvidia GPUs, AMD unsupported |
|
||||||
| iMac9,1 | Early 2009 | ^^ | ^^ |
|
| iMac9,1 | Early 2009 | ^^ | ^^ |
|
||||||
| iMac10,1 | Late 2009 | ^^ | ^^ |
|
| iMac10,1 | Late 2009 | ^^ | GPU is socketed, [recommend upgrading to Metal GPU](https://forums.macrumors.com/threads/2011-imac-graphics-card-upgrade.1596614/?post=17425857#post-17425857) |
|
||||||
| iMac11,1 | ^^ | ^^ | ^^ |
|
| iMac11,1 | ^^ | ^^ | ^^ |
|
||||||
| iMac11,2 | Mid-2010 | ^^ | ^^ |
|
| iMac11,2 | Mid-2010 | ^^ | ^^ |
|
||||||
| iMac11,3 | ^^ | ^^ | ^^ |
|
| iMac11,3 | ^^ | ^^ | ^^ |
|
||||||
|
|||||||
@@ -225,6 +225,10 @@ Note, GPU Acceleration Patches are not public yet, the below section is simply d
|
|||||||
* Nvidia Binaries
|
* Nvidia Binaries
|
||||||
* GeForceGA.bundle
|
* GeForceGA.bundle
|
||||||
* GeForceTesla.kext
|
* GeForceTesla.kext
|
||||||
|
* Skip IOFree Panic - Mojave+
|
||||||
|
* At Offset `0x5CF9A` replace following bytes with `0xEB`
|
||||||
|
* Avoids `addMemoryRegion/removeMemoryRegion` calls
|
||||||
|
* At Offset `0x5527` and `0x77993`, replace following bytes with `0x909090909090`
|
||||||
* GeForceTeslaGLDriver.bundle
|
* GeForceTeslaGLDriver.bundle
|
||||||
* GeForceTeslaVADriver.bundle
|
* GeForceTeslaVADriver.bundle
|
||||||
* NVDANV50HalTesla.kext
|
* NVDANV50HalTesla.kext
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ This is a sophisticated boot loader used to inject and patch data in memory, ins
|
|||||||
|
|
||||||
While many PC users from the Hackintosh community are familiar with OpenCore, OpenCore was designed as Mac and PC agnostic ensuring both platforms can use it easily. And with OpenCore Legacy Patcher, we help automate the process making running with OpenCore that much easier.
|
While many PC users from the Hackintosh community are familiar with OpenCore, OpenCore was designed as Mac and PC agnostic ensuring both platforms can use it easily. And with OpenCore Legacy Patcher, we help automate the process making running with OpenCore that much easier.
|
||||||
|
|
||||||
For advanced troubleshooting, we highly recommend users check out the [Unsupported Mac Discord Server](https://discord.gg/XbbWAsE) as this is generally the quickest way to get a hold of us developers and get help from the community.
|
For advanced troubleshooting, we highly recommend users check out the [OpenCore Patcher Paradise Discord Server](https://discord.gg/UbM8U75E) as this is generally the quickest way to get a hold of us developers and get help from the community.
|
||||||
|
|
||||||
For those who wish to support this patcher, please see the [Supporting the Patcher page](./DONATE.md)
|
For those who wish to support this patcher, please see the [Supporting the Patcher page](./DONATE.md)
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ With OpenCore Legacy Patcher, we use a lot of different terms to refer to hardwa
|
|||||||
Term | Description
|
Term | Description
|
||||||
--- | ---
|
--- | ---
|
||||||
**macOS** | Apple's own UNIX based OS used for Mac machines and "What makes a Mac a Mac".
|
**macOS** | Apple's own UNIX based OS used for Mac machines and "What makes a Mac a Mac".
|
||||||
**Windows** | Microsoft's proprietary OS that is used and supported on a wide range of devices (stay with this OS if you don't want headaches)
|
**Windows** | Microsoft's proprietary OS that is used and supported on a wide range of devices
|
||||||
**Linux** | Family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged in a Linux distribution. Note that while macOS and Linux may be UNIX-based, they're vastly different.
|
**Linux** | Family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged in a Linux distribution. Note that while macOS and Linux may be UNIX-based, they're vastly different.
|
||||||
**Bootloader** | Piece of software that loads an OS, usually made by the OS creators. OpenCore is technically not a bootloader per se (see boot manager explanation down below). Apple's Boot.efi would be the actual boot loader in a Mac.
|
**Bootloader** | Piece of software that loads an OS, usually made by the OS creators. OpenCore is technically not a bootloader per se (see boot manager explanation down below). Apple's Boot.efi would be the actual boot loader in a Mac.
|
||||||
**Boot Manager** | Piece of software that manages bootloaders – we have many of these: Clover, systemd-boot, OpenCore, rEFInd, rEFIt... These are generally seen as prepping the system for the actual boot loader.
|
**Boot Manager** | Piece of software that manages bootloaders – we have many of these: Clover, systemd-boot, OpenCore, rEFInd, rEFIt... These are generally seen as prepping the system for the actual boot loader.
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ To aid users in troubleshooting, we've compiled a list of users who've reported
|
|||||||
| :--- | :--- | :--- | :--- |
|
| :--- | :--- | :--- | :--- |
|
||||||
| MacBook4,1 | <span style="color:#30BCD5"> YES </span> | Mami | - Stock Model<br/>- Couldn't install due to broke USB support |
|
| MacBook4,1 | <span style="color:#30BCD5"> YES </span> | Mami | - Stock Model<br/>- Couldn't install due to broke USB support |
|
||||||
| MacBook5,1 | ^^ | air.man | - Stock Model<br/>- Patcher version 0.0.19 |
|
| MacBook5,1 | ^^ | air.man | - Stock Model<br/>- Patcher version 0.0.19 |
|
||||||
| MacBook5,2 | ^^ | Finder352 | ^^ |
|
| MacBook5,2 | ^^ | Finder352 | ^^ |
|
||||||
| MacBook6,1 | ^^ | Finder352 | ^^ |
|
| MacBook6,1 | ^^ | Finder352 | ^^ |
|
||||||
| MacBook7,1 | ^^ | MykolaG | ^^ |
|
| MacBook7,1 | ^^ | MykolaG | ^^ |
|
||||||
| ^^ | ^^ | Jazzzny | ^^ |
|
| ^^ | ^^ | Jazzzny | ^^ |
|
||||||
@@ -28,17 +28,17 @@ To aid users in troubleshooting, we've compiled a list of users who've reported
|
|||||||
| ^^ | ^^ | webg3 | Stock Model |
|
| ^^ | ^^ | webg3 | Stock Model |
|
||||||
| MacBookAir5,2 | ^^ | Bab-droid | - Stock Model<br/>- Patcher version 0.0.19 |
|
| MacBookAir5,2 | ^^ | Bab-droid | - Stock Model<br/>- Patcher version 0.0.19 |
|
||||||
| ^^ | ^^ | K-Hobert | - Stock model <br/>- Patcher version unknown |
|
| ^^ | ^^ | K-Hobert | - Stock model <br/>- Patcher version unknown |
|
||||||
| ^^ | ^^ | cboukouv | - Stock model <br/>- Patcher version 0.0.21 |
|
| ^^ | ^^ | cboukouv | - Stock model <br/>- Patcher version 0.0.21 |
|
||||||
|
|
||||||
### MacBook Pro
|
### MacBook Pro
|
||||||
|
|
||||||
| SMBIOS | Tested | Tester | Comment |
|
| SMBIOS | Tested | Tester | Comment |
|
||||||
| :--- | :--- | :--- | :--- |
|
| :--- | :--- | :--- | :--- |
|
||||||
| MacBookPro4,1 | <span style="color:#30BCD5"> YES </span> | cboukouv | - Stock model <br/>- Patcher version 0.0.19 |
|
| MacBookPro4,1 | <span style="color:#30BCD5"> YES </span> | cboukouv | - Stock model <br/>- Patcher version 0.0.19 |
|
||||||
| MacBookPro5,1 | ^^ | GURU_Jasho#5736 | - Stock model <br/>- Patcher version 0.0.21 |
|
| MacBookPro5,1 | ^^ | GURU_Jasho#5736 | - Stock model <br/>- Patcher version 0.0.21 |
|
||||||
| MacBookPro5,2 | ^^ | hvds | ^^ |
|
| MacBookPro5,2 | ^^ | hvds | ^^ |
|
||||||
| MacBookPro5,3 | No reports | N/A | N/A |
|
| MacBookPro5,3 | ^^ | kommtzeitkonrad | - Stock model <br/>- Patcher version 0.0.22 |
|
||||||
| MacBookPro5,4 | ^^ | ^^ | ^^ |
|
| MacBookPro5,4 | No reports | N/A | N/A |
|
||||||
| MacBookPro5,5 | ^^ | ^^ | ^^ |
|
| MacBookPro5,5 | ^^ | ^^ | ^^ |
|
||||||
| MacBookPro6,1 | ^^ | ^^ | ^^ |
|
| MacBookPro6,1 | ^^ | ^^ | ^^ |
|
||||||
| MacBookPro6,2 | <span style="color:#30BCD5"> YES </span> | Jakeluke | - Stock model, dGPU broken <br/>- Patcher version unknown |
|
| MacBookPro6,2 | <span style="color:#30BCD5"> YES </span> | Jakeluke | - Stock model, dGPU broken <br/>- Patcher version unknown |
|
||||||
@@ -47,7 +47,7 @@ To aid users in troubleshooting, we've compiled a list of users who've reported
|
|||||||
| MacBookPro8,2 | ^^ | air.man | - Stock model, dGPU disabled <br/>- Patcher version 0.0.22 |
|
| MacBookPro8,2 | ^^ | air.man | - Stock model, dGPU disabled <br/>- Patcher version 0.0.22 |
|
||||||
| ^^ | ^^ | cboukouv | - Stock model <br/>- Patcher version 0.0.19 |
|
| ^^ | ^^ | cboukouv | - Stock model <br/>- Patcher version 0.0.19 |
|
||||||
| MacBookPro8,3 | No reports | N/A | N/A |
|
| MacBookPro8,3 | No reports | N/A | N/A |
|
||||||
| MacBookPro9,1 | <span style="color:#30BCD5"> YES </span> | jbdamiano | - Stock model <br/>- Patcher version 0.0.19 |
|
| MacBookPro9,1 | <span style="color:#30BCD5"> YES </span> | jbdamiano | - Stock model <br/>- Patcher version 0.0.19 |
|
||||||
| ^^ | ^^ | dennes544 | ^^|
|
| ^^ | ^^ | dennes544 | ^^|
|
||||||
| ^^ | ^^ | cgrazy | ^^ |
|
| ^^ | ^^ | cgrazy | ^^ |
|
||||||
| ^^ | ^^ | LIPA85 | ^^ |
|
| ^^ | ^^ | LIPA85 | ^^ |
|
||||||
@@ -56,6 +56,7 @@ To aid users in troubleshooting, we've compiled a list of users who've reported
|
|||||||
| ^^ | ^^ | CyberDroid1 | - Stock model<br/>- Patcher version 0.0.16 |
|
| ^^ | ^^ | CyberDroid1 | - Stock model<br/>- Patcher version 0.0.16 |
|
||||||
| ^^ | ^^ | woefi | - BCM94331CAX upgrade<br/>- Patcher version 0.0.13 |
|
| ^^ | ^^ | woefi | - BCM94331CAX upgrade<br/>- Patcher version 0.0.13 |
|
||||||
| ^^ | ^^ | whgmkeller | - Stock model<br/>- Patcher version 0.0.11 |
|
| ^^ | ^^ | whgmkeller | - Stock model<br/>- Patcher version 0.0.11 |
|
||||||
|
| ^^ | ^^ | vinaypundith | - Patcher version 0.0.7 |
|
||||||
| MacBookPro10,1 | ^^ | traviswparker | - Stock model <br/>- Patcher version 0.0.14 |
|
| MacBookPro10,1 | ^^ | traviswparker | - Stock model <br/>- Patcher version 0.0.14 |
|
||||||
| ^^ | ^^ | il-rollino | - Upgraded BCM94360CSAX <br/>- Patcher version 0.0.21 |
|
| ^^ | ^^ | il-rollino | - Upgraded BCM94360CSAX <br/>- Patcher version 0.0.21 |
|
||||||
| MacBookPro10,2 | No reports | N/A | N/A |
|
| MacBookPro10,2 | No reports | N/A | N/A |
|
||||||
@@ -69,8 +70,8 @@ To aid users in troubleshooting, we've compiled a list of users who've reported
|
|||||||
| Macmini5,1 | ^^ | ^^ | ^^ |
|
| Macmini5,1 | ^^ | ^^ | ^^ |
|
||||||
| Macmini5,2 | ^^ | ^^ | ^^ |
|
| Macmini5,2 | ^^ | ^^ | ^^ |
|
||||||
| Macmini5,3 | ^^ | ^^ | ^^ |
|
| Macmini5,3 | ^^ | ^^ | ^^ |
|
||||||
| Macmini6,1 | <span style="color:#30BCD5"> YES </span> | cicofz | - Stock model <br/>- Patcher version 0.0.21 |
|
| Macmini6,1 | <span style="color:#30BCD5"> YES </span> | cicofz | - Stock model <br/>- Patcher version 0.0.21 |
|
||||||
| ^^ | ^^ | Stig124 | - Stock model <br/>- Patcher version 0.0.19 |
|
| ^^ | ^^ | Stig124 | - Stock model <br/>- Patcher version 0.0.19 |
|
||||||
| ^^ | ^^ | mwidjaya | - Stock model <br/>- Patcher version 0.0.18 |
|
| ^^ | ^^ | mwidjaya | - Stock model <br/>- Patcher version 0.0.18 |
|
||||||
| Macmini6,2 | ^^ | Shelbs | - Stock model <br/>- Patcher version 0.0.16 |
|
| Macmini6,2 | ^^ | Shelbs | - Stock model <br/>- Patcher version 0.0.16 |
|
||||||
|
|
||||||
@@ -82,10 +83,11 @@ To aid users in troubleshooting, we've compiled a list of users who've reported
|
|||||||
| iMac8,1 | <span style="color:#30BCD5"> YES </span> | EduCovas | - Stock Model<br/>- Patcher version 0.0.21 |
|
| iMac8,1 | <span style="color:#30BCD5"> YES </span> | EduCovas | - Stock Model<br/>- Patcher version 0.0.21 |
|
||||||
| iMac9,1 | ^^ | Allanrfox | ^^ |
|
| iMac9,1 | ^^ | Allanrfox | ^^ |
|
||||||
| ^^ | ^^ | Jakeluke | ^^ |
|
| ^^ | ^^ | Jakeluke | ^^ |
|
||||||
| iMac10,1 | No reports | N/A | N/A |
|
| iMac10,1 | ^^ | Ausdauersportler | - Upgraded with WX4150 |
|
||||||
| iMac11,1 | ^^ | ^^ | ^^ |
|
| iMac11,1 | ^^ | internetzel | - Upgraded with RX580 mobile |
|
||||||
| iMac11,2 | <span style="color:#30BCD5"> YES </span> | MykolaG | - Stock Model<br/>- Patcher version 0.0.21 |
|
| iMac11,2 | ^^ | MykolaG | - Stock Model<br/>- Patcher version 0.0.21 |
|
||||||
| ^^ | ^^ | iMac-iPad | - Stock Model<br/>- Patcher version 0.0.21 |
|
| ^^ | ^^ | iMac-iPad | - Stock Model<br/>- Patcher version 0.0.21 |
|
||||||
|
| ^^ | ^^ | vinaypundith | - Patcher version 0.0.19 |
|
||||||
| iMac11,3 | ^^ | Ausdauersportler | - Upgraded with Polaris GPU<br/>- Upgraded BCM943602CDP<br/>- Patcher version 0.0.21 |
|
| iMac11,3 | ^^ | Ausdauersportler | - Upgraded with Polaris GPU<br/>- Upgraded BCM943602CDP<br/>- Patcher version 0.0.21 |
|
||||||
| iMac12,1 | ^^ | shnockdu | - Upgraded with Kepler GPU<br/>- Patcher version 0.0.21 |
|
| iMac12,1 | ^^ | shnockdu | - Upgraded with Kepler GPU<br/>- Patcher version 0.0.21 |
|
||||||
| ^^ | ^^ | StephN999 | - Upgraded WX4150 GPU<br/>- Upgraded BCM94360CD<br/>- Patcher version 0.0.21 |
|
| ^^ | ^^ | StephN999 | - Upgraded WX4150 GPU<br/>- Upgraded BCM94360CD<br/>- Patcher version 0.0.21 |
|
||||||
@@ -109,6 +111,7 @@ To aid users in troubleshooting, we've compiled a list of users who've reported
|
|||||||
| ^^ | ^^ | AlexSakha67 | - Upgraded R9 280<br/>- Patcher version 0.0.20 |
|
| ^^ | ^^ | AlexSakha67 | - Upgraded R9 280<br/>- Patcher version 0.0.20 |
|
||||||
| ^^ | ^^ | nekton1 | - Upgraded GTX 680<br/>- Patcher version 0.0.20 |
|
| ^^ | ^^ | nekton1 | - Upgraded GTX 680<br/>- Patcher version 0.0.20 |
|
||||||
| ^^ | ^^ | Pri-est | - Patcher version 0.0.9 |
|
| ^^ | ^^ | Pri-est | - Patcher version 0.0.9 |
|
||||||
|
| ^^ | ^^ | vinaypundith | - Upgraded GTX 680<br/>- Upgraded BCM94360CD<br/>- Patcher version 0.0.6 |
|
||||||
| MacPro4,1 | ^^ | ^^ | - Patcher version 0.0.9 |
|
| MacPro4,1 | ^^ | ^^ | - Patcher version 0.0.9 |
|
||||||
| MacPro5,1 | ^^ | woefi | - Upgraded with RX 580<br/>- Patcher version 0.0.21 |
|
| MacPro5,1 | ^^ | woefi | - Upgraded with RX 580<br/>- Patcher version 0.0.21 |
|
||||||
| ^^ | ^^ | Mabrouk Oscar | - Patcher version 0.0.21 |
|
| ^^ | ^^ | Mabrouk Oscar | - Patcher version 0.0.21 |
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ Here are some common errors users may experience while using this patcher:
|
|||||||
* [Booting with a non-flashed GPU](#booting-with-a-non-flashed-gpu)
|
* [Booting with a non-flashed GPU](#booting-with-a-non-flashed-gpu)
|
||||||
* [How to Boot Big Sur Recovery](#how-to-boot-big-sur-recovery)
|
* [How to Boot Big Sur Recovery](#how-to-boot-big-sur-recovery)
|
||||||
* [Stuck on "Your Mac needs a firmware update"](#stuck-on-your-mac-needs-a-firmware-update)
|
* [Stuck on "Your Mac needs a firmware update"](#stuck-on-your-mac-needs-a-firmware-update)
|
||||||
|
* [No Brightness Control](#no-brightness-control)
|
||||||
|
|
||||||
## Stuck on `This version of Mac OS X is not supported on this platform`
|
## Stuck on `This version of Mac OS X is not supported on this platform`
|
||||||
|
|
||||||
@@ -46,6 +47,7 @@ sudo bless --verbose --file /Volumes/VOLNAME/EFI/OC/OpenCore.efi --folder /Volum
|
|||||||
|
|
||||||
* Note you will need to replace `VOLNAME` with the Volume name of your USB or hard drive with OpenCore
|
* Note you will need to replace `VOLNAME` with the Volume name of your USB or hard drive with OpenCore
|
||||||
* Note 2: Once done, you can re-enable SIP
|
* Note 2: Once done, you can re-enable SIP
|
||||||
|
* Note 3: The EFI partition OpenCore was installed on must be mounted, if it's unmounted simply rerun "Install OpenCore to drive"
|
||||||
|
|
||||||
Once you boot OpenCore for the first time, LauncherOption will install itself as the top boot priority making OpenCore always launch. Combined with `RequestBootVar`, all boot options must go through OpenCore ensuring seamless usage even with OS installation and updates.
|
Once you boot OpenCore for the first time, LauncherOption will install itself as the top boot priority making OpenCore always launch. Combined with `RequestBootVar`, all boot options must go through OpenCore ensuring seamless usage even with OS installation and updates.
|
||||||
|
|
||||||
@@ -59,3 +61,11 @@ Full error: "Your Mac needs a firmware update in order to install to this Volume
|
|||||||
|
|
||||||
|
|
||||||
This error occurs when macOS determines the firmware to not have full APFS support. To resolve is quite simple, when building OpenCore head to "Patcher Settings" and enable "Moderate SMBIOS Patching" or higher. This will ensure that the firmware reported will show as supporting full APFS capabilities.
|
This error occurs when macOS determines the firmware to not have full APFS support. To resolve is quite simple, when building OpenCore head to "Patcher Settings" and enable "Moderate SMBIOS Patching" or higher. This will ensure that the firmware reported will show as supporting full APFS capabilities.
|
||||||
|
|
||||||
|
## No Brightness Control
|
||||||
|
|
||||||
|
With OCLP v0.0.22, we've added support for brightness control on many models. However some users may have noticed that their brightness keys do not work.
|
||||||
|
|
||||||
|
To work-around, we recommend user try out the below app:
|
||||||
|
|
||||||
|
* [Brightness Slider](https://actproductions.net/free-apps/brightness-slider/)
|
||||||
@@ -3,7 +3,8 @@
|
|||||||
To remove OpenCore is actually quite simply:
|
To remove OpenCore is actually quite simply:
|
||||||
|
|
||||||
1. Remove OpenCore either from the USB or internal drive
|
1. Remove OpenCore either from the USB or internal drive
|
||||||
* You'll need to mount the drive's EFI partition, and delete the EFI folder
|
* You'll need to mount the drive's EFI partition, and delete the EFI/OC folder as well as the System folder
|
||||||
|
* Note **do not** delete the entire EFI folder, this will likely break any existing Windows and Linux installations
|
||||||
* [See here for example how to mount](https://dortania.github.io/OpenCore-Post-Install/universal/oc2hdd.html)
|
* [See here for example how to mount](https://dortania.github.io/OpenCore-Post-Install/universal/oc2hdd.html)
|
||||||
2. Reset NVRAM
|
2. Reset NVRAM
|
||||||
* [Reset NVRAM or PRAM on your Mac](https://support.apple.com/HT204063)
|
* [Reset NVRAM or PRAM on your Mac](https://support.apple.com/HT204063)
|
||||||
|
|||||||
@@ -1,156 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>BuildMachineOSBuild</key>
|
|
||||||
<string>16B2657</string>
|
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
|
||||||
<string>English</string>
|
|
||||||
<key>CFBundleExecutable</key>
|
|
||||||
<string>AppleHDA</string>
|
|
||||||
<key>CFBundleGetInfoString</key>
|
|
||||||
<string>AppleHDA 281.52, Copyright © 2000-2017 Apple Inc. All rights reserved.</string>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>com.apple.driver.AppleHDA</string>
|
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
|
||||||
<string>6.0</string>
|
|
||||||
<key>CFBundleName</key>
|
|
||||||
<string>Apple HDA Driver</string>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>KEXT</string>
|
|
||||||
<key>CFBundleShortVersionString</key>
|
|
||||||
<string>281.52</string>
|
|
||||||
<key>CFBundleSignature</key>
|
|
||||||
<string>????</string>
|
|
||||||
<key>CFBundleSupportedPlatforms</key>
|
|
||||||
<array>
|
|
||||||
<string>MacOSX</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>281.52</string>
|
|
||||||
<key>DTCompiler</key>
|
|
||||||
<string>com.apple.compilers.llvm.clang.1_0</string>
|
|
||||||
<key>DTPlatformBuild</key>
|
|
||||||
<string>9P107g</string>
|
|
||||||
<key>DTPlatformVersion</key>
|
|
||||||
<string>GM</string>
|
|
||||||
<key>DTSDKBuild</key>
|
|
||||||
<string>17G55</string>
|
|
||||||
<key>DTSDKName</key>
|
|
||||||
<string>macosx10.13internal</string>
|
|
||||||
<key>DTXcode</key>
|
|
||||||
<string>0930</string>
|
|
||||||
<key>DTXcodeBuild</key>
|
|
||||||
<string>9P107g</string>
|
|
||||||
<key>IOKitPersonalities</key>
|
|
||||||
<dict>
|
|
||||||
<key>HDA Driver</key>
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>com.apple.driver.AppleHDA</string>
|
|
||||||
<key>IOClass</key>
|
|
||||||
<string>AppleHDADriver</string>
|
|
||||||
<key>IOProbeScore</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>IOProviderClass</key>
|
|
||||||
<string>AppleHDACodec</string>
|
|
||||||
<key>InputSampleLatency</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>MultiDisplayPorts</key>
|
|
||||||
<array>
|
|
||||||
<integer>32</integer>
|
|
||||||
<integer>35</integer>
|
|
||||||
<integer>66</integer>
|
|
||||||
</array>
|
|
||||||
<key>OutputSampleLatency</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>SampleOffsetPad</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>SystemSpecificSampleOffsetPad</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>LayoutID</key>
|
|
||||||
<integer>8</integer>
|
|
||||||
<key>SampleOffsetPad</key>
|
|
||||||
<integer>260</integer>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
<key>HDA Generic Codec Driver</key>
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>com.apple.driver.AppleHDA</string>
|
|
||||||
<key>IOClass</key>
|
|
||||||
<string>AppleHDACodecGeneric</string>
|
|
||||||
<key>IOHDACodecFunctionGroupType</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>IOProviderClass</key>
|
|
||||||
<string>IOHDACodecFunction</string>
|
|
||||||
</dict>
|
|
||||||
<key>HDMI DP HDA Driver</key>
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>com.apple.driver.AppleHDA</string>
|
|
||||||
<key>IOClass</key>
|
|
||||||
<string>AppleHDAHDMI_DPDriver</string>
|
|
||||||
<key>IOProbeScore</key>
|
|
||||||
<integer>1</integer>
|
|
||||||
<key>IOPropertyMatch</key>
|
|
||||||
<dict>
|
|
||||||
<key>HDMIDPAudioCapabilities</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>IOProviderClass</key>
|
|
||||||
<string>AppleHDACodec</string>
|
|
||||||
<key>InputSampleLatency</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>MultiDisplayPorts</key>
|
|
||||||
<array>
|
|
||||||
<integer>32</integer>
|
|
||||||
<integer>35</integer>
|
|
||||||
<integer>66</integer>
|
|
||||||
</array>
|
|
||||||
<key>OutputSampleLatency</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>SampleOffsetPad</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>SystemSpecificSampleOffsetPad</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>LayoutID</key>
|
|
||||||
<integer>8</integer>
|
|
||||||
<key>SampleOffsetPad</key>
|
|
||||||
<integer>260</integer>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>NSHumanReadableCopyright</key>
|
|
||||||
<string>AppleHDA 281.52, Copyright © 2000-2017 Apple Inc. All rights reserved.</string>
|
|
||||||
<key>OSBundleLibraries</key>
|
|
||||||
<dict>
|
|
||||||
<key>com.apple.driver.AppleHDAController</key>
|
|
||||||
<string>1.7.2a1</string>
|
|
||||||
<key>com.apple.driver.DspFuncLib</key>
|
|
||||||
<string>1.5.2a1</string>
|
|
||||||
<key>com.apple.iokit.IOAudioFamily</key>
|
|
||||||
<string>200.5</string>
|
|
||||||
<key>com.apple.iokit.IOGraphicsFamily</key>
|
|
||||||
<string>2.0</string>
|
|
||||||
<key>com.apple.iokit.IOHDAFamily</key>
|
|
||||||
<string>265.88</string>
|
|
||||||
<key>com.apple.iokit.IONDRVSupport</key>
|
|
||||||
<string>2.0</string>
|
|
||||||
<key>com.apple.kpi.bsd</key>
|
|
||||||
<string>8.0.0</string>
|
|
||||||
<key>com.apple.kpi.iokit</key>
|
|
||||||
<string>8.0.0</string>
|
|
||||||
<key>com.apple.kpi.libkern</key>
|
|
||||||
<string>8.0.0</string>
|
|
||||||
<key>com.apple.kpi.mach</key>
|
|
||||||
<string>8.0.0</string>
|
|
||||||
<key>com.apple.kpi.private</key>
|
|
||||||
<string>8.0.0</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
Binary file not shown.
@@ -1,285 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>BuildMachineOSBuild</key>
|
|
||||||
<string>16B2657</string>
|
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
|
||||||
<string>English</string>
|
|
||||||
<key>CFBundleExecutable</key>
|
|
||||||
<string>AppleHDAController</string>
|
|
||||||
<key>CFBundleGetInfoString</key>
|
|
||||||
<string>AppleHDAController 281.52, Copyright © 2000-2017 Apple Inc. All rights reserved.</string>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>com.apple.driver.AppleHDAController</string>
|
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
|
||||||
<string>6.0</string>
|
|
||||||
<key>CFBundleName</key>
|
|
||||||
<string>HDA Controller Driver</string>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>KEXT</string>
|
|
||||||
<key>CFBundleShortVersionString</key>
|
|
||||||
<string>281.52</string>
|
|
||||||
<key>CFBundleSignature</key>
|
|
||||||
<string>????</string>
|
|
||||||
<key>CFBundleSupportedPlatforms</key>
|
|
||||||
<array>
|
|
||||||
<string>MacOSX</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>281.52</string>
|
|
||||||
<key>DTCompiler</key>
|
|
||||||
<string>com.apple.compilers.llvm.clang.1_0</string>
|
|
||||||
<key>DTPlatformBuild</key>
|
|
||||||
<string>9P107g</string>
|
|
||||||
<key>DTPlatformVersion</key>
|
|
||||||
<string>GM</string>
|
|
||||||
<key>DTSDKBuild</key>
|
|
||||||
<string>17G55</string>
|
|
||||||
<key>DTSDKName</key>
|
|
||||||
<string>macosx10.13internal</string>
|
|
||||||
<key>DTXcode</key>
|
|
||||||
<string>0930</string>
|
|
||||||
<key>DTXcodeBuild</key>
|
|
||||||
<string>9P107g</string>
|
|
||||||
<key>IOKitPersonalities</key>
|
|
||||||
<dict>
|
|
||||||
<key>BuiltInHDA</key>
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>com.apple.driver.AppleHDAController</string>
|
|
||||||
<key>CodecAddressFilterArray</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>CodecAddressMask</key>
|
|
||||||
<data>
|
|
||||||
AQAAAA==
|
|
||||||
</data>
|
|
||||||
<key>LayoutID</key>
|
|
||||||
<integer>16392</integer>
|
|
||||||
<key>PCIVendorDeviceID</key>
|
|
||||||
<integer>282987200</integer>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>CodecAddressMask</key>
|
|
||||||
<data>
|
|
||||||
AQAAAA==
|
|
||||||
</data>
|
|
||||||
<key>LayoutID</key>
|
|
||||||
<integer>0</integer>
|
|
||||||
<key>PCIVendorDeviceID</key>
|
|
||||||
<integer>282987200</integer>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>CodecAddressMask</key>
|
|
||||||
<data>
|
|
||||||
CQAAAA==
|
|
||||||
</data>
|
|
||||||
<key>LayoutID</key>
|
|
||||||
<integer>65</integer>
|
|
||||||
<key>PCIVendorDeviceID</key>
|
|
||||||
<integer>282987200</integer>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>CodecAddressMask</key>
|
|
||||||
<data>
|
|
||||||
AQAAAA==
|
|
||||||
</data>
|
|
||||||
<key>LayoutID</key>
|
|
||||||
<integer>73</integer>
|
|
||||||
<key>PCIVendorDeviceID</key>
|
|
||||||
<integer>282987200</integer>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>DPAlwaysDisplayRouting</key>
|
|
||||||
<array>
|
|
||||||
<integer>3</integer>
|
|
||||||
<integer>33</integer>
|
|
||||||
<integer>35</integer>
|
|
||||||
<integer>88</integer>
|
|
||||||
</array>
|
|
||||||
<key>DPAudioDeviceExclusion</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>ManufacturerID</key>
|
|
||||||
<integer>1552</integer>
|
|
||||||
<key>ProductID</key>
|
|
||||||
<integer>10130</integer>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>HighFIFOLimitSupport</key>
|
|
||||||
<array/>
|
|
||||||
<key>HwFactoryPrefixTranslation</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>LayoutID</key>
|
|
||||||
<integer>78</integer>
|
|
||||||
<key>SourceDID</key>
|
|
||||||
<integer>43584</integer>
|
|
||||||
<key>StandInDID</key>
|
|
||||||
<integer>43568</integer>
|
|
||||||
<key>VID</key>
|
|
||||||
<integer>4098</integer>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>LayoutID</key>
|
|
||||||
<integer>78</integer>
|
|
||||||
<key>SourceDID</key>
|
|
||||||
<integer>43576</integer>
|
|
||||||
<key>StandInDID</key>
|
|
||||||
<integer>43568</integer>
|
|
||||||
<key>VID</key>
|
|
||||||
<integer>4098</integer>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>LayoutID</key>
|
|
||||||
<integer>79</integer>
|
|
||||||
<key>SourceDID</key>
|
|
||||||
<integer>43584</integer>
|
|
||||||
<key>StandInDID</key>
|
|
||||||
<integer>43568</integer>
|
|
||||||
<key>VID</key>
|
|
||||||
<integer>4098</integer>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>LayoutID</key>
|
|
||||||
<integer>79</integer>
|
|
||||||
<key>SourceDID</key>
|
|
||||||
<integer>43576</integer>
|
|
||||||
<key>StandInDID</key>
|
|
||||||
<integer>43568</integer>
|
|
||||||
<key>VID</key>
|
|
||||||
<integer>4098</integer>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>IOClass</key>
|
|
||||||
<string>AppleHDAController</string>
|
|
||||||
<key>IOPCIClassMatch</key>
|
|
||||||
<string>0x04010000&0xFFFD0000</string>
|
|
||||||
<key>IOProviderClass</key>
|
|
||||||
<string>IOPCIDevice</string>
|
|
||||||
<key>RequireMaxBusStall</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Layouts</key>
|
|
||||||
<array/>
|
|
||||||
<key>MaxBusStall</key>
|
|
||||||
<integer>15000</integer>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
<key>BuiltInHDA9D70</key>
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>com.apple.driver.AppleHDAController</string>
|
|
||||||
<key>DPAlwaysDisplayRouting</key>
|
|
||||||
<array>
|
|
||||||
<integer>3</integer>
|
|
||||||
<integer>33</integer>
|
|
||||||
<integer>35</integer>
|
|
||||||
<integer>88</integer>
|
|
||||||
</array>
|
|
||||||
<key>DPAudioDeviceExclusion</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>ManufacturerID</key>
|
|
||||||
<integer>1552</integer>
|
|
||||||
<key>ProductID</key>
|
|
||||||
<integer>10130</integer>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>HighFIFOLimitSupport</key>
|
|
||||||
<array/>
|
|
||||||
<key>HwFactoryPrefixTranslation</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>LayoutID</key>
|
|
||||||
<integer>78</integer>
|
|
||||||
<key>SourceDID</key>
|
|
||||||
<integer>43584</integer>
|
|
||||||
<key>StandInDID</key>
|
|
||||||
<integer>43568</integer>
|
|
||||||
<key>VID</key>
|
|
||||||
<integer>4098</integer>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>LayoutID</key>
|
|
||||||
<integer>78</integer>
|
|
||||||
<key>SourceDID</key>
|
|
||||||
<integer>43576</integer>
|
|
||||||
<key>StandInDID</key>
|
|
||||||
<integer>43568</integer>
|
|
||||||
<key>VID</key>
|
|
||||||
<integer>4098</integer>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>LayoutID</key>
|
|
||||||
<integer>79</integer>
|
|
||||||
<key>SourceDID</key>
|
|
||||||
<integer>43584</integer>
|
|
||||||
<key>StandInDID</key>
|
|
||||||
<integer>43568</integer>
|
|
||||||
<key>VID</key>
|
|
||||||
<integer>4098</integer>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>LayoutID</key>
|
|
||||||
<integer>79</integer>
|
|
||||||
<key>SourceDID</key>
|
|
||||||
<integer>43576</integer>
|
|
||||||
<key>StandInDID</key>
|
|
||||||
<integer>43568</integer>
|
|
||||||
<key>VID</key>
|
|
||||||
<integer>4098</integer>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>IOClass</key>
|
|
||||||
<string>AppleHDA8086_9D70Controller</string>
|
|
||||||
<key>IONameMatch</key>
|
|
||||||
<array>
|
|
||||||
<string>pci8086,9d70</string>
|
|
||||||
</array>
|
|
||||||
<key>IOProbeScore</key>
|
|
||||||
<integer>2</integer>
|
|
||||||
<key>IOProviderClass</key>
|
|
||||||
<string>IOPCIDevice</string>
|
|
||||||
<key>RequireMaxBusStall</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>Layouts</key>
|
|
||||||
<array/>
|
|
||||||
<key>MaxBusStall</key>
|
|
||||||
<integer>15000</integer>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>NSHumanReadableCopyright</key>
|
|
||||||
<string>AppleHDAController 281.52, Copyright © 2000-2017 Apple Inc. All rights reserved.</string>
|
|
||||||
<key>OSBundleCompatibleVersion</key>
|
|
||||||
<string>1.0.0d1</string>
|
|
||||||
<key>OSBundleLibraries</key>
|
|
||||||
<dict>
|
|
||||||
<key>com.apple.iokit.IOAudioFamily</key>
|
|
||||||
<string>200.5</string>
|
|
||||||
<key>com.apple.iokit.IOGraphicsFamily</key>
|
|
||||||
<string>2.0</string>
|
|
||||||
<key>com.apple.iokit.IOHDAFamily</key>
|
|
||||||
<string>265.88</string>
|
|
||||||
<key>com.apple.iokit.IOPCIFamily</key>
|
|
||||||
<string>1.1</string>
|
|
||||||
<key>com.apple.kpi.bsd</key>
|
|
||||||
<string>8.0.0</string>
|
|
||||||
<key>com.apple.kpi.iokit</key>
|
|
||||||
<string>8.0.0</string>
|
|
||||||
<key>com.apple.kpi.libkern</key>
|
|
||||||
<string>8.0.0</string>
|
|
||||||
<key>com.apple.kpi.mach</key>
|
|
||||||
<string>8.0.0</string>
|
|
||||||
<key>com.apple.kpi.private</key>
|
|
||||||
<string>8.0.0</string>
|
|
||||||
<key>com.apple.kpi.unsupported</key>
|
|
||||||
<string>12.0</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
Binary file not shown.
@@ -1,128 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>files</key>
|
|
||||||
<dict>
|
|
||||||
<key>version.plist</key>
|
|
||||||
<data>
|
|
||||||
MkagQ8RqPBVBLjUnVDMdBf0bdbA=
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
<key>files2</key>
|
|
||||||
<dict>
|
|
||||||
<key>version.plist</key>
|
|
||||||
<dict>
|
|
||||||
<key>hash2</key>
|
|
||||||
<data>
|
|
||||||
8wv4uOE1w0u8JZr9RrUO5KJOO06smBjE2sAJ1esrGNQ=
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>rules</key>
|
|
||||||
<dict>
|
|
||||||
<key>^Resources/</key>
|
|
||||||
<true/>
|
|
||||||
<key>^Resources/.*\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>optional</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1000</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1100</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/Base\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1010</real>
|
|
||||||
</dict>
|
|
||||||
<key>^version.plist$</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>rules2</key>
|
|
||||||
<dict>
|
|
||||||
<key>.*\.dSYM($|/)</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>11</real>
|
|
||||||
</dict>
|
|
||||||
<key>^(.*/)?\.DS_Store$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>2000</real>
|
|
||||||
</dict>
|
|
||||||
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
|
|
||||||
<dict>
|
|
||||||
<key>nested</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>10</real>
|
|
||||||
</dict>
|
|
||||||
<key>^.*</key>
|
|
||||||
<true/>
|
|
||||||
<key>^Info\.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^PkgInfo$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/.*\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>optional</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1000</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1100</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/Base\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1010</real>
|
|
||||||
</dict>
|
|
||||||
<key>^[^/]+$</key>
|
|
||||||
<dict>
|
|
||||||
<key>nested</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>10</real>
|
|
||||||
</dict>
|
|
||||||
<key>^embedded\.provisionprofile$</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^version\.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>BuildAliasOf</key>
|
|
||||||
<string>AppleHDA</string>
|
|
||||||
<key>BuildVersion</key>
|
|
||||||
<string>603</string>
|
|
||||||
<key>CFBundleShortVersionString</key>
|
|
||||||
<string>281.52</string>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>281.52</string>
|
|
||||||
<key>ProjectName</key>
|
|
||||||
<string>AppleHDA</string>
|
|
||||||
<key>SourceVersion</key>
|
|
||||||
<string>281052000000000</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>BuildMachineOSBuild</key>
|
|
||||||
<string>16B2657</string>
|
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
|
||||||
<string>English</string>
|
|
||||||
<key>CFBundleExecutable</key>
|
|
||||||
<string>AppleHDAHALPlugIn</string>
|
|
||||||
<key>CFBundleGetInfoString</key>
|
|
||||||
<string>AppleHDAHALPlugIn 281.52, Copyright © 2000-2017 Apple Inc. All rights reserved.</string>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>com.apple.audio.AppleHDAHALPlugIn</string>
|
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
|
||||||
<string>6.0</string>
|
|
||||||
<key>CFBundleName</key>
|
|
||||||
<string>Apple HDA HAL Plug-in</string>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>BNDL</string>
|
|
||||||
<key>CFBundleShortVersionString</key>
|
|
||||||
<string>281.52</string>
|
|
||||||
<key>CFBundleSignature</key>
|
|
||||||
<string>aaud</string>
|
|
||||||
<key>CFBundleSupportedPlatforms</key>
|
|
||||||
<array>
|
|
||||||
<string>MacOSX</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>281.52</string>
|
|
||||||
<key>DTCompiler</key>
|
|
||||||
<string>com.apple.compilers.llvm.clang.1_0</string>
|
|
||||||
<key>DTPlatformBuild</key>
|
|
||||||
<string>9P107g</string>
|
|
||||||
<key>DTPlatformVersion</key>
|
|
||||||
<string>GM</string>
|
|
||||||
<key>DTSDKBuild</key>
|
|
||||||
<string>17G1z</string>
|
|
||||||
<key>DTSDKName</key>
|
|
||||||
<string>macosx10.13internal</string>
|
|
||||||
<key>DTXcode</key>
|
|
||||||
<string>0930</string>
|
|
||||||
<key>DTXcodeBuild</key>
|
|
||||||
<string>9P107g</string>
|
|
||||||
<key>NSHumanReadableCopyright</key>
|
|
||||||
<string>AppleHDAHALPlugIn 281.52, Copyright © 2000-2017 Apple Inc. All rights reserved.</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
Binary file not shown.
@@ -1,128 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>files</key>
|
|
||||||
<dict>
|
|
||||||
<key>version.plist</key>
|
|
||||||
<data>
|
|
||||||
a5qT6AxomQnjhCdw2wlr7bw85F0=
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
<key>files2</key>
|
|
||||||
<dict>
|
|
||||||
<key>version.plist</key>
|
|
||||||
<dict>
|
|
||||||
<key>hash2</key>
|
|
||||||
<data>
|
|
||||||
rz/HdLGPMBsupqNzQAn+OYfnsy1yG4sxFrDcxsshYUY=
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>rules</key>
|
|
||||||
<dict>
|
|
||||||
<key>^Resources/</key>
|
|
||||||
<true/>
|
|
||||||
<key>^Resources/.*\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>optional</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1000</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1100</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/Base\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1010</real>
|
|
||||||
</dict>
|
|
||||||
<key>^version.plist$</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>rules2</key>
|
|
||||||
<dict>
|
|
||||||
<key>.*\.dSYM($|/)</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>11</real>
|
|
||||||
</dict>
|
|
||||||
<key>^(.*/)?\.DS_Store$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>2000</real>
|
|
||||||
</dict>
|
|
||||||
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
|
|
||||||
<dict>
|
|
||||||
<key>nested</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>10</real>
|
|
||||||
</dict>
|
|
||||||
<key>^.*</key>
|
|
||||||
<true/>
|
|
||||||
<key>^Info\.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^PkgInfo$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/.*\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>optional</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1000</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1100</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/Base\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1010</real>
|
|
||||||
</dict>
|
|
||||||
<key>^[^/]+$</key>
|
|
||||||
<dict>
|
|
||||||
<key>nested</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>10</real>
|
|
||||||
</dict>
|
|
||||||
<key>^embedded\.provisionprofile$</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^version\.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>BuildAliasOf</key>
|
|
||||||
<string>AppleHDA</string>
|
|
||||||
<key>BuildVersion</key>
|
|
||||||
<string>186</string>
|
|
||||||
<key>CFBundleShortVersionString</key>
|
|
||||||
<string>281.52</string>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>281.52</string>
|
|
||||||
<key>ProjectName</key>
|
|
||||||
<string>AppleHDA_frameworks</string>
|
|
||||||
<key>SourceVersion</key>
|
|
||||||
<string>281052000000000</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -1,128 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>files</key>
|
|
||||||
<dict>
|
|
||||||
<key>version.plist</key>
|
|
||||||
<data>
|
|
||||||
MkagQ8RqPBVBLjUnVDMdBf0bdbA=
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
<key>files2</key>
|
|
||||||
<dict>
|
|
||||||
<key>version.plist</key>
|
|
||||||
<dict>
|
|
||||||
<key>hash2</key>
|
|
||||||
<data>
|
|
||||||
8wv4uOE1w0u8JZr9RrUO5KJOO06smBjE2sAJ1esrGNQ=
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>rules</key>
|
|
||||||
<dict>
|
|
||||||
<key>^Resources/</key>
|
|
||||||
<true/>
|
|
||||||
<key>^Resources/.*\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>optional</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1000</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1100</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/Base\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1010</real>
|
|
||||||
</dict>
|
|
||||||
<key>^version.plist$</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>rules2</key>
|
|
||||||
<dict>
|
|
||||||
<key>.*\.dSYM($|/)</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>11</real>
|
|
||||||
</dict>
|
|
||||||
<key>^(.*/)?\.DS_Store$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>2000</real>
|
|
||||||
</dict>
|
|
||||||
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
|
|
||||||
<dict>
|
|
||||||
<key>nested</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>10</real>
|
|
||||||
</dict>
|
|
||||||
<key>^.*</key>
|
|
||||||
<true/>
|
|
||||||
<key>^Info\.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^PkgInfo$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/.*\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>optional</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1000</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1100</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/Base\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1010</real>
|
|
||||||
</dict>
|
|
||||||
<key>^[^/]+$</key>
|
|
||||||
<dict>
|
|
||||||
<key>nested</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>10</real>
|
|
||||||
</dict>
|
|
||||||
<key>^embedded\.provisionprofile$</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^version\.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>BuildAliasOf</key>
|
|
||||||
<string>AppleHDA</string>
|
|
||||||
<key>BuildVersion</key>
|
|
||||||
<string>603</string>
|
|
||||||
<key>CFBundleShortVersionString</key>
|
|
||||||
<string>281.52</string>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>281.52</string>
|
|
||||||
<key>ProjectName</key>
|
|
||||||
<string>AppleHDA</string>
|
|
||||||
<key>SourceVersion</key>
|
|
||||||
<string>281052000000000</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@@ -1,81 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>BuildMachineOSBuild</key>
|
|
||||||
<string>16B2657</string>
|
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
|
||||||
<string>English</string>
|
|
||||||
<key>CFBundleExecutable</key>
|
|
||||||
<string>AppleMikeyDriver</string>
|
|
||||||
<key>CFBundleGetInfoString</key>
|
|
||||||
<string>AppleMikeyDriver 281.52, Copyright © 2000-2017 Apple Inc. All rights reserved.</string>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>com.apple.driver.AppleMikeyDriver</string>
|
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
|
||||||
<string>6.0</string>
|
|
||||||
<key>CFBundleName</key>
|
|
||||||
<string>Apple Mikey Driver</string>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>KEXT</string>
|
|
||||||
<key>CFBundleShortVersionString</key>
|
|
||||||
<string>281.52</string>
|
|
||||||
<key>CFBundleSignature</key>
|
|
||||||
<string>????</string>
|
|
||||||
<key>CFBundleSupportedPlatforms</key>
|
|
||||||
<array>
|
|
||||||
<string>MacOSX</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>281.52</string>
|
|
||||||
<key>DTCompiler</key>
|
|
||||||
<string>com.apple.compilers.llvm.clang.1_0</string>
|
|
||||||
<key>DTPlatformBuild</key>
|
|
||||||
<string>9P107g</string>
|
|
||||||
<key>DTPlatformVersion</key>
|
|
||||||
<string>GM</string>
|
|
||||||
<key>DTSDKBuild</key>
|
|
||||||
<string>17G55</string>
|
|
||||||
<key>DTSDKName</key>
|
|
||||||
<string>macosx10.13internal</string>
|
|
||||||
<key>DTXcode</key>
|
|
||||||
<string>0930</string>
|
|
||||||
<key>DTXcodeBuild</key>
|
|
||||||
<string>9P107g</string>
|
|
||||||
<key>IOKitPersonalities</key>
|
|
||||||
<dict>
|
|
||||||
<key>AppleMikeyDriver</key>
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>com.apple.driver.AppleMikeyDriver</string>
|
|
||||||
<key>IOClass</key>
|
|
||||||
<string>AppleMikeyDriver</string>
|
|
||||||
<key>IONameMatch</key>
|
|
||||||
<array>
|
|
||||||
<string>mikey</string>
|
|
||||||
<string>MKY0</string>
|
|
||||||
<string>MKY1</string>
|
|
||||||
</array>
|
|
||||||
<key>IOProviderClass</key>
|
|
||||||
<string>AppleSMBusDevice</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>NSHumanReadableCopyright</key>
|
|
||||||
<string>AppleMikeyDriver 281.52, Copyright © 2000-2017 Apple Inc. All rights reserved.</string>
|
|
||||||
<key>OSBundleLibraries</key>
|
|
||||||
<dict>
|
|
||||||
<key>com.apple.driver.AppleSMBusController</key>
|
|
||||||
<string>1.0.1d0</string>
|
|
||||||
<key>com.apple.iokit.IOACPIFamily</key>
|
|
||||||
<string>1.2.0a1</string>
|
|
||||||
<key>com.apple.kpi.bsd</key>
|
|
||||||
<string>8.0.0b3</string>
|
|
||||||
<key>com.apple.kpi.iokit</key>
|
|
||||||
<string>8.0.0b3</string>
|
|
||||||
<key>com.apple.kpi.libkern</key>
|
|
||||||
<string>8.0.0b3</string>
|
|
||||||
<key>com.apple.kpi.mach</key>
|
|
||||||
<string>8.0.0b3</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
Binary file not shown.
@@ -1,128 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>files</key>
|
|
||||||
<dict>
|
|
||||||
<key>version.plist</key>
|
|
||||||
<data>
|
|
||||||
MkagQ8RqPBVBLjUnVDMdBf0bdbA=
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
<key>files2</key>
|
|
||||||
<dict>
|
|
||||||
<key>version.plist</key>
|
|
||||||
<dict>
|
|
||||||
<key>hash2</key>
|
|
||||||
<data>
|
|
||||||
8wv4uOE1w0u8JZr9RrUO5KJOO06smBjE2sAJ1esrGNQ=
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>rules</key>
|
|
||||||
<dict>
|
|
||||||
<key>^Resources/</key>
|
|
||||||
<true/>
|
|
||||||
<key>^Resources/.*\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>optional</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1000</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1100</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/Base\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1010</real>
|
|
||||||
</dict>
|
|
||||||
<key>^version.plist$</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>rules2</key>
|
|
||||||
<dict>
|
|
||||||
<key>.*\.dSYM($|/)</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>11</real>
|
|
||||||
</dict>
|
|
||||||
<key>^(.*/)?\.DS_Store$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>2000</real>
|
|
||||||
</dict>
|
|
||||||
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
|
|
||||||
<dict>
|
|
||||||
<key>nested</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>10</real>
|
|
||||||
</dict>
|
|
||||||
<key>^.*</key>
|
|
||||||
<true/>
|
|
||||||
<key>^Info\.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^PkgInfo$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/.*\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>optional</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1000</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1100</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/Base\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1010</real>
|
|
||||||
</dict>
|
|
||||||
<key>^[^/]+$</key>
|
|
||||||
<dict>
|
|
||||||
<key>nested</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>10</real>
|
|
||||||
</dict>
|
|
||||||
<key>^embedded\.provisionprofile$</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^version\.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>BuildAliasOf</key>
|
|
||||||
<string>AppleHDA</string>
|
|
||||||
<key>BuildVersion</key>
|
|
||||||
<string>603</string>
|
|
||||||
<key>CFBundleShortVersionString</key>
|
|
||||||
<string>281.52</string>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>281.52</string>
|
|
||||||
<key>ProjectName</key>
|
|
||||||
<string>AppleHDA</string>
|
|
||||||
<key>SourceVersion</key>
|
|
||||||
<string>281052000000000</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@@ -1,73 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>BuildMachineOSBuild</key>
|
|
||||||
<string>16B2657</string>
|
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
|
||||||
<string>English</string>
|
|
||||||
<key>CFBundleExecutable</key>
|
|
||||||
<string>DspFuncLib</string>
|
|
||||||
<key>CFBundleGetInfoString</key>
|
|
||||||
<string>DspFuncLib 281.52, Copyright © 2000-2017 Apple Inc. All rights reserved.</string>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>com.apple.driver.DspFuncLib</string>
|
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
|
||||||
<string>6.0</string>
|
|
||||||
<key>CFBundleName</key>
|
|
||||||
<string>Apple Dsp Function Library</string>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>KEXT</string>
|
|
||||||
<key>CFBundleShortVersionString</key>
|
|
||||||
<string>281.52</string>
|
|
||||||
<key>CFBundleSignature</key>
|
|
||||||
<string>????</string>
|
|
||||||
<key>CFBundleSupportedPlatforms</key>
|
|
||||||
<array>
|
|
||||||
<string>MacOSX</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>281.52</string>
|
|
||||||
<key>DTCompiler</key>
|
|
||||||
<string>com.apple.compilers.llvm.clang.1_0</string>
|
|
||||||
<key>DTPlatformBuild</key>
|
|
||||||
<string>9P107g</string>
|
|
||||||
<key>DTPlatformVersion</key>
|
|
||||||
<string>GM</string>
|
|
||||||
<key>DTSDKBuild</key>
|
|
||||||
<string>17G55</string>
|
|
||||||
<key>DTSDKName</key>
|
|
||||||
<string>macosx10.13internal</string>
|
|
||||||
<key>DTXcode</key>
|
|
||||||
<string>0930</string>
|
|
||||||
<key>DTXcodeBuild</key>
|
|
||||||
<string>9P107g</string>
|
|
||||||
<key>IOKitPersonalities</key>
|
|
||||||
<dict/>
|
|
||||||
<key>NSHumanReadableCopyright</key>
|
|
||||||
<string>DspFuncLib 281.52, Copyright © 2000-2017 Apple Inc. All rights reserved.</string>
|
|
||||||
<key>OSBundleCompatibleVersion</key>
|
|
||||||
<string>1.0.0a1</string>
|
|
||||||
<key>OSBundleLibraries</key>
|
|
||||||
<dict>
|
|
||||||
<key>com.apple.driver.AppleEFINVRAM</key>
|
|
||||||
<string>2.0.0</string>
|
|
||||||
<key>com.apple.iokit.IOAudioFamily</key>
|
|
||||||
<string>1.7.0fc16</string>
|
|
||||||
<key>com.apple.kext.OSvKernDSPLib</key>
|
|
||||||
<string>1.9</string>
|
|
||||||
<key>com.apple.kpi.bsd</key>
|
|
||||||
<string>8.0.0b3</string>
|
|
||||||
<key>com.apple.kpi.iokit</key>
|
|
||||||
<string>8.0.0b3</string>
|
|
||||||
<key>com.apple.kpi.libkern</key>
|
|
||||||
<string>8.0.0b3</string>
|
|
||||||
<key>com.apple.kpi.mach</key>
|
|
||||||
<string>8.0.0b3</string>
|
|
||||||
<key>com.apple.kpi.private</key>
|
|
||||||
<string>8.0.0b3</string>
|
|
||||||
<key>com.apple.vecLib.kext</key>
|
|
||||||
<string>1.0</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
Binary file not shown.
@@ -1,128 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>files</key>
|
|
||||||
<dict>
|
|
||||||
<key>version.plist</key>
|
|
||||||
<data>
|
|
||||||
MkagQ8RqPBVBLjUnVDMdBf0bdbA=
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
<key>files2</key>
|
|
||||||
<dict>
|
|
||||||
<key>version.plist</key>
|
|
||||||
<dict>
|
|
||||||
<key>hash2</key>
|
|
||||||
<data>
|
|
||||||
8wv4uOE1w0u8JZr9RrUO5KJOO06smBjE2sAJ1esrGNQ=
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>rules</key>
|
|
||||||
<dict>
|
|
||||||
<key>^Resources/</key>
|
|
||||||
<true/>
|
|
||||||
<key>^Resources/.*\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>optional</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1000</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1100</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/Base\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1010</real>
|
|
||||||
</dict>
|
|
||||||
<key>^version.plist$</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>rules2</key>
|
|
||||||
<dict>
|
|
||||||
<key>.*\.dSYM($|/)</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>11</real>
|
|
||||||
</dict>
|
|
||||||
<key>^(.*/)?\.DS_Store$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>2000</real>
|
|
||||||
</dict>
|
|
||||||
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
|
|
||||||
<dict>
|
|
||||||
<key>nested</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>10</real>
|
|
||||||
</dict>
|
|
||||||
<key>^.*</key>
|
|
||||||
<true/>
|
|
||||||
<key>^Info\.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^PkgInfo$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/.*\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>optional</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1000</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1100</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/Base\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1010</real>
|
|
||||||
</dict>
|
|
||||||
<key>^[^/]+$</key>
|
|
||||||
<dict>
|
|
||||||
<key>nested</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>10</real>
|
|
||||||
</dict>
|
|
||||||
<key>^embedded\.provisionprofile$</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^version\.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>BuildAliasOf</key>
|
|
||||||
<string>AppleHDA</string>
|
|
||||||
<key>BuildVersion</key>
|
|
||||||
<string>603</string>
|
|
||||||
<key>CFBundleShortVersionString</key>
|
|
||||||
<string>281.52</string>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>281.52</string>
|
|
||||||
<key>ProjectName</key>
|
|
||||||
<string>AppleHDA</string>
|
|
||||||
<key>SourceVersion</key>
|
|
||||||
<string>281052000000000</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@@ -1,73 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>BuildMachineOSBuild</key>
|
|
||||||
<string>16B2657</string>
|
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
|
||||||
<string>English</string>
|
|
||||||
<key>CFBundleExecutable</key>
|
|
||||||
<string>IOHDAFamily</string>
|
|
||||||
<key>CFBundleGetInfoString</key>
|
|
||||||
<string>IOHDAFamily 281.52, Copyright © 2000-2017 Apple Inc. All rights reserved.</string>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>com.apple.iokit.IOHDAFamily</string>
|
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
|
||||||
<string>6.0</string>
|
|
||||||
<key>CFBundleName</key>
|
|
||||||
<string>I/O Kit High Definition Audio Family</string>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>KEXT</string>
|
|
||||||
<key>CFBundleShortVersionString</key>
|
|
||||||
<string>281.52</string>
|
|
||||||
<key>CFBundleSignature</key>
|
|
||||||
<string>????</string>
|
|
||||||
<key>CFBundleSupportedPlatforms</key>
|
|
||||||
<array>
|
|
||||||
<string>MacOSX</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>281.52</string>
|
|
||||||
<key>DTCompiler</key>
|
|
||||||
<string>com.apple.compilers.llvm.clang.1_0</string>
|
|
||||||
<key>DTPlatformBuild</key>
|
|
||||||
<string>9P107g</string>
|
|
||||||
<key>DTPlatformVersion</key>
|
|
||||||
<string>GM</string>
|
|
||||||
<key>DTSDKBuild</key>
|
|
||||||
<string>17G55</string>
|
|
||||||
<key>DTSDKName</key>
|
|
||||||
<string>macosx10.13internal</string>
|
|
||||||
<key>DTXcode</key>
|
|
||||||
<string>0930</string>
|
|
||||||
<key>DTXcodeBuild</key>
|
|
||||||
<string>9P107g</string>
|
|
||||||
<key>IOKitPersonalities</key>
|
|
||||||
<dict>
|
|
||||||
<key>HD Audio Codec</key>
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>com.apple.iokit.IOHDAFamily</string>
|
|
||||||
<key>IOClass</key>
|
|
||||||
<string>IOHDACodecDriver</string>
|
|
||||||
<key>IOProviderClass</key>
|
|
||||||
<string>IOHDACodecDevice</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>NSHumanReadableCopyright</key>
|
|
||||||
<string>IOHDAFamily 281.52, Copyright © 2000-2017 Apple Inc. All rights reserved.</string>
|
|
||||||
<key>OSBundleCompatibleVersion</key>
|
|
||||||
<string>1.0.0d1</string>
|
|
||||||
<key>OSBundleLibraries</key>
|
|
||||||
<dict>
|
|
||||||
<key>com.apple.kpi.bsd</key>
|
|
||||||
<string>8.0.0</string>
|
|
||||||
<key>com.apple.kpi.iokit</key>
|
|
||||||
<string>8.0.0</string>
|
|
||||||
<key>com.apple.kpi.libkern</key>
|
|
||||||
<string>8.0.0</string>
|
|
||||||
<key>com.apple.kpi.mach</key>
|
|
||||||
<string>8.0.0</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
Binary file not shown.
@@ -1,128 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>files</key>
|
|
||||||
<dict>
|
|
||||||
<key>version.plist</key>
|
|
||||||
<data>
|
|
||||||
MkagQ8RqPBVBLjUnVDMdBf0bdbA=
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
<key>files2</key>
|
|
||||||
<dict>
|
|
||||||
<key>version.plist</key>
|
|
||||||
<dict>
|
|
||||||
<key>hash2</key>
|
|
||||||
<data>
|
|
||||||
8wv4uOE1w0u8JZr9RrUO5KJOO06smBjE2sAJ1esrGNQ=
|
|
||||||
</data>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<key>rules</key>
|
|
||||||
<dict>
|
|
||||||
<key>^Resources/</key>
|
|
||||||
<true/>
|
|
||||||
<key>^Resources/.*\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>optional</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1000</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1100</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/Base\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1010</real>
|
|
||||||
</dict>
|
|
||||||
<key>^version.plist$</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>rules2</key>
|
|
||||||
<dict>
|
|
||||||
<key>.*\.dSYM($|/)</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>11</real>
|
|
||||||
</dict>
|
|
||||||
<key>^(.*/)?\.DS_Store$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>2000</real>
|
|
||||||
</dict>
|
|
||||||
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
|
|
||||||
<dict>
|
|
||||||
<key>nested</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>10</real>
|
|
||||||
</dict>
|
|
||||||
<key>^.*</key>
|
|
||||||
<true/>
|
|
||||||
<key>^Info\.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^PkgInfo$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/.*\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>optional</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1000</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>omit</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1100</real>
|
|
||||||
</dict>
|
|
||||||
<key>^Resources/Base\.lproj/</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>1010</real>
|
|
||||||
</dict>
|
|
||||||
<key>^[^/]+$</key>
|
|
||||||
<dict>
|
|
||||||
<key>nested</key>
|
|
||||||
<true/>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>10</real>
|
|
||||||
</dict>
|
|
||||||
<key>^embedded\.provisionprofile$</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
<key>^version\.plist$</key>
|
|
||||||
<dict>
|
|
||||||
<key>weight</key>
|
|
||||||
<real>20</real>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>BuildAliasOf</key>
|
|
||||||
<string>AppleHDA</string>
|
|
||||||
<key>BuildVersion</key>
|
|
||||||
<string>603</string>
|
|
||||||
<key>CFBundleShortVersionString</key>
|
|
||||||
<string>281.52</string>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>281.52</string>
|
|
||||||
<key>ProjectName</key>
|
|
||||||
<string>AppleHDA</string>
|
|
||||||
<key>SourceVersion</key>
|
|
||||||
<string>281052000000000</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user