Compare commits
221 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
803a699658 | ||
|
|
88ee0e813e | ||
|
|
cc44024a8c | ||
|
|
880432970b | ||
|
|
5d6587100e | ||
|
|
df8d95b815 | ||
|
|
f1a868199e | ||
|
|
d0e77cca52 | ||
|
|
eaadaa2d45 | ||
|
|
4a5e3c89b6 | ||
|
|
a0eca53c58 | ||
|
|
8c092494a8 | ||
|
|
5f69a1c917 | ||
|
|
856ac19314 | ||
|
|
6c5aa244af | ||
|
|
f42bdcee03 | ||
|
|
b49db7e739 | ||
|
|
ec20d7b581 | ||
|
|
1c75353f27 | ||
|
|
b14ca8689a | ||
|
|
bd20cf6a1f | ||
|
|
b23e9c2eaa | ||
|
|
e625d9803b | ||
|
|
ae8bba5582 | ||
|
|
f19f08fc06 | ||
|
|
5fd17cc5e8 | ||
|
|
3c6d0de2e3 | ||
|
|
d3de15b594 | ||
|
|
b0db4739ad | ||
|
|
2584c16d41 | ||
|
|
b4caffe0d4 | ||
|
|
46734a7c5a | ||
|
|
484f434a67 | ||
|
|
033b577552 | ||
|
|
f1e2a320dc | ||
|
|
3885bf894a | ||
|
|
04ca447eb7 | ||
|
|
41486c0215 | ||
|
|
69035db2d7 | ||
|
|
c98021b14c | ||
|
|
b576e5a511 | ||
|
|
9b69700733 | ||
|
|
9d731c065e | ||
|
|
93aa69b0b0 | ||
|
|
3679324371 | ||
|
|
ebc6611f5c | ||
|
|
16ac5a6093 | ||
|
|
b1479fbc14 | ||
|
|
375b7c2fd2 | ||
|
|
95afb7d109 | ||
|
|
3956908482 | ||
|
|
e0eda1fa0c | ||
|
|
dc6b14f962 | ||
|
|
dd798c02d1 | ||
|
|
4fc0f4dee7 | ||
|
|
81379dc857 | ||
|
|
1d7eea068a | ||
|
|
0978bcbb87 | ||
|
|
2da88a22d7 | ||
|
|
ccb9aea1e6 | ||
|
|
6b8d1743b3 | ||
|
|
cf0f613a5f | ||
|
|
ba49f45c4c | ||
|
|
3e5ade8047 | ||
|
|
3e47853e75 | ||
|
|
d19f5ba72f | ||
|
|
4918873ad9 | ||
|
|
6ecb8e26c9 | ||
|
|
52ad1f7399 | ||
|
|
f6ee429c8e | ||
|
|
4de79ce633 | ||
|
|
d7c2904868 | ||
|
|
24eec279d8 | ||
|
|
d49575b22b | ||
|
|
3271bcf92f | ||
|
|
41514a35f5 | ||
|
|
8e1809cf3d | ||
|
|
98bc71e46a | ||
|
|
d1dd8a0e2e | ||
|
|
d20d9975c1 | ||
|
|
ecca9f2c72 | ||
|
|
88724c4950 | ||
|
|
fd48419cb2 | ||
|
|
ff5543f9dc | ||
|
|
0130fce0c6 | ||
|
|
d8258a73fd | ||
|
|
939e942f50 | ||
|
|
603aedb6ae | ||
|
|
05a51bf32e | ||
|
|
792a99ce04 | ||
|
|
a6fbbc0c44 | ||
|
|
9b7497946a | ||
|
|
9a68ce67eb | ||
|
|
a6ccd28671 | ||
|
|
f7f66cd732 | ||
|
|
9b316bbbca | ||
|
|
db39757655 | ||
|
|
88903e8edf | ||
|
|
dd968a3244 | ||
|
|
a42811b907 | ||
|
|
15aacddd23 | ||
|
|
f4d3154fd1 | ||
|
|
93e9a8f381 | ||
|
|
69ab0fd17b | ||
|
|
504cdc6214 | ||
|
|
d3b9b6e87a | ||
|
|
0a04c5c156 | ||
|
|
1799625f99 | ||
|
|
8f13906d2c | ||
|
|
771186e6cf | ||
|
|
da32e9d4e3 | ||
|
|
935b3819f0 | ||
|
|
1abe08bcac | ||
|
|
09779f62b3 | ||
|
|
abe865f999 | ||
|
|
f3734f9daa | ||
|
|
7bc993ccc9 | ||
|
|
ab3762e42e | ||
|
|
58ed1634db | ||
|
|
7d579a0942 | ||
|
|
4daa5c4755 | ||
|
|
00c89089c3 | ||
|
|
68f82e1993 | ||
|
|
356646725e | ||
|
|
608decc9de | ||
|
|
9eecbae6da | ||
|
|
3197510b72 | ||
|
|
4830d462aa | ||
|
|
fc1cb53c1d | ||
|
|
7446da8e1f | ||
|
|
04019798e9 | ||
|
|
20a900f052 | ||
|
|
df469be05f | ||
|
|
d42d2d09e9 | ||
|
|
f8c39e957e | ||
|
|
78760b8a08 | ||
|
|
276883059f | ||
|
|
cabb5da981 | ||
|
|
f8afde61fe | ||
|
|
95a802a402 | ||
|
|
e5fd984daf | ||
|
|
0a0a59feea | ||
|
|
75200e9c8d | ||
|
|
83d4cc5a16 | ||
|
|
faecdc3b0c | ||
|
|
0fe230e56b | ||
|
|
6f13247151 | ||
|
|
24a8249a60 | ||
|
|
7df345d286 | ||
|
|
7c0088e0ff | ||
|
|
204cf5beea | ||
|
|
04b69f4288 | ||
|
|
b4ef000fc0 | ||
|
|
78038b9607 | ||
|
|
a458b68f2b | ||
|
|
1509dffa1c | ||
|
|
e274137503 | ||
|
|
97bfb9f730 | ||
|
|
b1f8b80e83 | ||
|
|
f0a339b0f7 | ||
|
|
6bb5c2e74e | ||
|
|
5f1b732e12 | ||
|
|
2a9f94ac99 | ||
|
|
9b89b62219 | ||
|
|
315be87f31 | ||
|
|
0613ad9bc3 | ||
|
|
0ff6977bb7 | ||
|
|
025d03e7e8 | ||
|
|
a4efb1ecd5 | ||
|
|
7340539742 | ||
|
|
377fdc8de1 | ||
|
|
36a68ca147 | ||
|
|
922f207da7 | ||
|
|
ec4d1d4471 | ||
|
|
057b8739d3 | ||
|
|
332376030e | ||
|
|
302cfb3bef | ||
|
|
0cb70d896d | ||
|
|
f5c511366e | ||
|
|
79a2f49739 | ||
|
|
d6b5b65183 | ||
|
|
89444bc4bc | ||
|
|
2435a7e651 | ||
|
|
1957e70cfd | ||
|
|
aba21bca43 | ||
|
|
ccc9549fc4 | ||
|
|
07bd8fa33f | ||
|
|
85e0761460 | ||
|
|
5bca1a0ad6 | ||
|
|
ca4051b10d | ||
|
|
ece4065de3 | ||
|
|
e5aea82b6f | ||
|
|
85fc1d6627 | ||
|
|
a0e9de2cb8 | ||
|
|
c39b719093 | ||
|
|
dd7cc97645 | ||
|
|
76f104ddab | ||
|
|
6f1ed43f4e | ||
|
|
7209aa98d0 | ||
|
|
0ac33532f2 | ||
|
|
d40e9c869d | ||
|
|
d5ff1edc44 | ||
|
|
c3d8d77b07 | ||
|
|
9ae7be59b5 | ||
|
|
e1be0d32ab | ||
|
|
a675771bc6 | ||
|
|
c0a15477c9 | ||
|
|
c2291ab590 | ||
|
|
be9cc0d41b | ||
|
|
01e0f3061c | ||
|
|
8cd7b0b43b | ||
|
|
ef11715e79 | ||
|
|
7a7ff557ea | ||
|
|
cb307d852a | ||
|
|
e943c69c82 | ||
|
|
fa8d3a800e | ||
|
|
f592524054 | ||
|
|
aaa114e753 | ||
|
|
0625bdb3d1 | ||
|
|
7e918c86e2 | ||
|
|
2216bc0212 |
5
.github/workflows/build-app.yml
vendored
@@ -24,11 +24,6 @@ jobs:
|
||||
|
||||
- run: cd dist; zip ../OpenCore-Patcher.zip OpenCore-Patcher; zip -r ../OpenCore-Patcher.app.zip OpenCore-Patcher.app
|
||||
- run: ./../sign-app.sh
|
||||
- name: Upload Binary to Artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: OpenCore-Patcher
|
||||
path: OpenCore-Patcher.zip
|
||||
- name: Upload App to Artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
|
||||
1
.gitignore
vendored
@@ -8,6 +8,7 @@ OCLP-GUI.command
|
||||
/dist
|
||||
/.vscode
|
||||
__pycache__/
|
||||
*.kext
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
/docs/.vuepress/dist
|
||||
|
||||
117
CHANGELOG.md
@@ -1,5 +1,122 @@
|
||||
# OpenCore Legacy Patcher changelog
|
||||
|
||||
## 0.1.7
|
||||
- Add FireWire Boot Support for Catalina and newer
|
||||
- Add NVMe firmware support for older models (ie. MacPro3,1)
|
||||
- OpenCore must be stored on a bootable volume (ie. USB or SATA)
|
||||
- Fix Thunderbolt Ethernet support on MacBookAir4,x
|
||||
- Fix XHCI hangs on pre-2012 Machines
|
||||
- XHCI boot support dropped due to instability
|
||||
- Add beta macOS Monterey Support
|
||||
- Fix iMac13,x sleep support
|
||||
- Add support for following models:
|
||||
- iMac14,4
|
||||
- iMac15,1
|
||||
- MacBook8,1
|
||||
- MacBookAir6,1
|
||||
- MacBookAir6,2
|
||||
- MacBookPro11,1
|
||||
- MacBookPro11,2
|
||||
- MacBookPro11,3
|
||||
- Increment binaries:
|
||||
- OpenCore (0.7.0 release - 06-07-2021)
|
||||
- AirportBrcmFixup (2.1.3 rolling - 06-08-2021)
|
||||
- AppleALC (1.6.2 rolling - 06-08-2021)
|
||||
- CPUFriend (1.2.4 rolling - 06-08-2021)
|
||||
- Lilu (1.5.4 rolling - 06-11-2021)
|
||||
- NVMeFix (1.0.9 rolling - 06-12-2021)
|
||||
- WhateverGreen (1.5.1 rolling - 06-08-2021)
|
||||
- RestrictEvents (1.0.3 rolling - 06-11-2021)
|
||||
- Apple Binaries (0.0.18 release - 06-12-2021)
|
||||
- MouSSE (0.95 release - 06-08-2021)
|
||||
- SidecarFixup (1.0.2 rolling - 06-11-2021)
|
||||
- Fix SSE4,2 Emulation
|
||||
- Fix Sidecar and CPU renaming support in macOS Monterey
|
||||
- Add AirPlay support to older Models
|
||||
- Add Intel HD4000 Acceleration
|
||||
- Big thanks to Jackluke, EduCovas, DhinakG, MykolaG!
|
||||
- Add DebugEnhancer for better macOS Monterey logs
|
||||
- DebugEnhancer (1.0.3 rolling - 06-08-2021)
|
||||
- Add TeraScale 2 Graphics Acceleration to Big Sur
|
||||
- User configurable, those prone to seizures are recommended to avoid or have another setup the machine due to initial colour strobing before forcing Million Colours on the display with SwitchResX or ResXtreme
|
||||
|
||||
## 0.1.6
|
||||
- Add XHCI UEFI Driver for 3rd Party USB 3.0 Controllers
|
||||
- Allows for Boot Support from OpenCore' Picker
|
||||
- Fix UEFI output on MacPro3,1 with PC GPUs
|
||||
- Increment binaries:
|
||||
- OpenCore 4e0ff2d (0.7.0 rolling - 05-23-2021)
|
||||
- Apple Binaries 59a52a3 (0.0.8 release - 05-24-2021)
|
||||
- Allow legacy macOS Booting
|
||||
- Fix Photos app distortion on legacy GPUs
|
||||
- Fix device tree renaming on Mac Pros and Xserves
|
||||
- Ensure no Acceleration Patches applied when no compatible GPU found
|
||||
- Allow custom SMBIOS overriding
|
||||
- Fix incorrectly setting CPU override for non-Minimal SMBIOS spoofs
|
||||
- Support Minimal SMBIOS spoofing on El Capitan era Macs
|
||||
- Fix GPU Switching on MacBookPro6,x
|
||||
|
||||
## 0.1.5
|
||||
- Fix crashing when Wireless module not present
|
||||
- Add iMac10,1 default dGPU pathing
|
||||
- Add agdpmod=vit9696 to all Nvidia Metal iMacs
|
||||
- Fixes external display support on Nvidia iMac12,x
|
||||
- Remove reliance on AppleBacklightFixup
|
||||
- Support space in path when downloading Root Patches
|
||||
- Enable PanicNoKextDump by default
|
||||
- Expand AppleGraphicsPowerManagement and AppleGraphicsDeviceControl Override support
|
||||
- Fix MacBookPro8,2/3 Brightness Control
|
||||
- dGPU must be disabled via NVRAM or deMUXed
|
||||
- Increment binaries:
|
||||
- Apple Binaries 478f6a6 (0.0.7 release - 05-16-2021)
|
||||
- Add SeedUtil option to Advanced Patcher Settings
|
||||
|
||||
## 0.1.4
|
||||
- Fix Device Path formatting on 2012+ iMacs
|
||||
|
||||
## 0.1.3
|
||||
- Fix internal PCIe devices reporting as external
|
||||
- Opt for `built-in` when device path is detectable
|
||||
- Innie 0ccd95e (1.3.0 release - 01-16-2021)
|
||||
- Fix MacBookPro5,4 audio support
|
||||
- Increment binaries
|
||||
- AppleALC 58b57ee (1.6.1 rolling - 05-07-2021)
|
||||
- Apple Binaries 74bd80f (0.0.6 release - 05-09-2021)
|
||||
- Support custom CPU names in About This Mac
|
||||
- Fix NightShift accidentally disabling on Minimal SMBIOS configs
|
||||
- Fix iMac9,1 audio support
|
||||
- Heavily expand Graphics ID list
|
||||
- Fix iMac7,1 and iMac8,1 audio support
|
||||
- Work-around Bluetooth Kernel Panic on Apple's Bluetooth 2.0 Controllers (USB 05AC:8206)
|
||||
- Affects iMac7,1 and MacPro3,1
|
||||
- Fix iMac external display support
|
||||
- Fix NVMe properties not applying when OpenCore is installed
|
||||
|
||||
## 0.1.2
|
||||
- Fix IDE support on 2008 era MacBooks, iMacs and Xserves
|
||||
- Fix reduced output speeds on BCM94360 series Wifi cards
|
||||
- Fix accidentally disabling non-existent iGPU in iMac11,2
|
||||
- Remove USB ACPI Patching requirement for Minimal SMBIOS setups
|
||||
- Probe hardware for Backlight pathing on iMac10,1, iMac11,x and iMac12,x with Metal GPUs
|
||||
- Add Windows UEFI Audio support to Sandy and Ivy Bridge Macs
|
||||
- Add 3rd Party NVMe Power Management Patches
|
||||
- NVMeFix fafc52d (1.0.7 release - 05-03-2021)
|
||||
- Strip unused ACPI and Kernel entries during build
|
||||
- Allow native Macs to use OpenCore
|
||||
- Better 3rd party NVMe support
|
||||
- Better Wireless networking support
|
||||
- Fix MacBook6,1 audio support
|
||||
- Increment binaries
|
||||
- OpenCore 65cc81b (0.6.9 release - 05-03-2021)
|
||||
- Lilu c77722d (1.5.3 release - 05-03-2021)
|
||||
- AppleALC 84850d0 (1.6.0 rolling - 04-30-2021)
|
||||
- RestrictEvents 9e2bb0f (1.0.1 release - 05-03-2021)
|
||||
- Allow CPUFriend on all El-Capitan Era Macs
|
||||
- Fix UEFI 2.0 Application support on upgraded Nvidia GPUs
|
||||
- Add experimental Sidecar support
|
||||
- Requires Mac with Metal Intel iGPU and the iPad to be directly plugged in, wireless highly unstable
|
||||
- SidecarFixup efdf11c (1.0.0 release - 05-02-2021)
|
||||
|
||||
## 0.1.1
|
||||
- Fix iMac11,3 GFX0 pathing
|
||||
- Add MouSSE support to iMac10,1 with Metal AMD GPU
|
||||
|
||||
@@ -3,16 +3,13 @@
|
||||
|
||||
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
|
||||
from Resources import Build, ModelArray, PCIIDArray, Constants, SysPatch, DeviceProbe
|
||||
|
||||
|
||||
class OpenCoreLegacyPatcher():
|
||||
@@ -30,20 +27,14 @@ class OpenCoreLegacyPatcher():
|
||||
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
|
||||
dgpu_vendor,dgpu_device,dgpu_acpi = DeviceProbe.pci_probe().gpu_probe("GFX0")
|
||||
if dgpu_vendor:
|
||||
if (dgpu_vendor == self.constants.pci_amd_ati and (dgpu_device in PCIIDArray.amd_ids().polaris_ids or dgpu_device in PCIIDArray.amd_ids().vega_ids or dgpu_device in PCIIDArray.amd_ids().navi_ids or dgpu_device in PCIIDArray.amd_ids().legacy_gcn_ids)) or (dgpu_vendor == self.constants.pci_nvidia and dgpu_device in PCIIDArray.nvidia_ids().kepler_ids):
|
||||
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:
|
||||
@@ -59,6 +50,15 @@ class OpenCoreLegacyPatcher():
|
||||
if not true_model.startswith("Unknown"):
|
||||
self.current_model = true_model
|
||||
|
||||
custom_cpu_model_value: str = subprocess.run("nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:revcpuname".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.decode()
|
||||
|
||||
if not custom_cpu_model_value.startswith("nvram: Error getting variable"):
|
||||
custom_cpu_model_value = [line.strip().split(":revcpuname ", 1)[1] for line in custom_cpu_model_value.split("\n") if line.strip().startswith("4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:")][0]
|
||||
if custom_cpu_model_value.split("%00")[0] != "":
|
||||
self.constants.custom_cpu_model = 1
|
||||
self.constants.custom_cpu_model_value = custom_cpu_model_value.split("%00")[0]
|
||||
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
|
||||
# Generic building args
|
||||
@@ -71,6 +71,8 @@ class OpenCoreLegacyPatcher():
|
||||
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)
|
||||
parser.add_argument('--support_all', help='Allow OpenCore on natively supported Models', action='store_true', required=False)
|
||||
parser.add_argument('--force_legacy', help='Allow acceleration on Mac Pros and Xserves', action='store_true', required=False)
|
||||
|
||||
# Building args requiring value values
|
||||
parser.add_argument('--model', action='store', help='Set custom model', required=False)
|
||||
@@ -140,6 +142,15 @@ class OpenCoreLegacyPatcher():
|
||||
else:
|
||||
print(f"- Unknown SMBIOS arg passed: {args.smbios_spoof}")
|
||||
|
||||
if args.support_all:
|
||||
print("- Building for natively supported model")
|
||||
self.constants.allow_oc_everywhere = True
|
||||
self.constants.serial_settings = "None"
|
||||
|
||||
if args.force_legacy:
|
||||
print("- Allowing legacy acceleration patches on newer models")
|
||||
self.constants.assume_legacy = True
|
||||
|
||||
if args.build:
|
||||
if args.model:
|
||||
print(f"- Using custom model: {args.model}")
|
||||
@@ -155,12 +166,6 @@ class OpenCoreLegacyPatcher():
|
||||
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()
|
||||
|
||||
|
||||
@@ -3,42 +3,37 @@
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import binascii
|
||||
import plistlib
|
||||
import subprocess
|
||||
import sys
|
||||
import time
|
||||
import platform
|
||||
|
||||
from Resources import Build, ModelArray, Constants, SysPatch, Utilities, CliMenu
|
||||
from Resources import Build, ModelArray, PCIIDArray, Constants, SysPatch, Utilities, CliMenu, DeviceProbe
|
||||
|
||||
|
||||
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.current_model = DeviceProbe.smbios_probe().model_detect(False)
|
||||
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 = ""
|
||||
dgpu_vendor,dgpu_device,dgpu_acpi = DeviceProbe.pci_probe().gpu_probe("GFX0")
|
||||
|
||||
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):
|
||||
if (dgpu_vendor == self.constants.pci_amd_ati and (dgpu_device in PCIIDArray.amd_ids().polaris_ids or dgpu_device in PCIIDArray.amd_ids().vega_ids or dgpu_device in PCIIDArray.amd_ids().navi_ids or dgpu_device in PCIIDArray.amd_ids().legacy_gcn_ids)) or (dgpu_vendor == self.constants.pci_nvidia and dgpu_device in PCIIDArray.nvidia_ids().kepler_ids):
|
||||
self.constants.sip_status = True
|
||||
self.constants.secure_status = True
|
||||
self.constants.secure_status = False
|
||||
self.constants.disable_amfi = False
|
||||
else:
|
||||
self.constants.sip_status = False
|
||||
self.constants.secure_status = False
|
||||
self.constants.disable_amfi = True
|
||||
if self.current_model in ModelArray.ModernGPU:
|
||||
if self.current_model in ["iMac13,1", "iMac13,3"]:
|
||||
dgpu_vendor,dgpu_device,dgpu_acpi = DeviceProbe.pci_probe().gpu_probe("GFX0")
|
||||
if not dgpu_vendor:
|
||||
self.constants.sip_status = False
|
||||
self.constants.secure_status = False
|
||||
else:
|
||||
self.constants.sip_status = False
|
||||
self.constants.secure_status = False
|
||||
@@ -56,11 +51,26 @@ class OpenCoreLegacyPatcher():
|
||||
print(f"True Model: {true_model}")
|
||||
if not true_model.startswith("Unknown"):
|
||||
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()
|
||||
|
||||
custom_cpu_model_value: str = subprocess.run("nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:revcpuname".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.decode()
|
||||
|
||||
if not custom_cpu_model_value.startswith("nvram: Error getting variable"):
|
||||
custom_cpu_model_value = [line.strip().split(":revcpuname ", 1)[1] for line in custom_cpu_model_value.split("\n") if line.strip().startswith("4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:")][0]
|
||||
if custom_cpu_model_value.split("%00")[0] != "":
|
||||
self.constants.custom_cpu_model = 1
|
||||
self.constants.custom_cpu_model_value = custom_cpu_model_value.split("%00")[0]
|
||||
|
||||
# Check if running in RecoveryOS
|
||||
self.check_recovery()
|
||||
|
||||
def check_recovery(self):
|
||||
root_partition_info = plistlib.loads(subprocess.run("diskutil info -plist /".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
||||
if root_partition_info["VolumeName"] == "macOS Base System" and \
|
||||
root_partition_info["FilesystemType"] == "apfs" and \
|
||||
root_partition_info["BusProtocol"] == "Disk Image":
|
||||
self.constants.recovery_status = True
|
||||
else:
|
||||
self.constants.recovery_status = False
|
||||
|
||||
def build_opencore(self):
|
||||
Build.BuildOpenCore(self.constants.custom_model or self.current_model, self.constants).build_opencore()
|
||||
@@ -84,9 +94,7 @@ system_profiler SPHardwareDataType | grep 'Model Identifier'
|
||||
print_models = input(f"Print list of valid options for macOS {self.constants.os_support}? (y/n)")
|
||||
if print_models in {"y", "Y", "yes", "Yes"}:
|
||||
print("\n".join(ModelArray.SupportedSMBIOS))
|
||||
input("Press any key to continue...")
|
||||
if self.constants.custom_model in ModelArray.NoAPFSsupport:
|
||||
self.constants.serial_settings = "Moderate"
|
||||
input("\nPress [ENTER] to continue")
|
||||
|
||||
def patcher_settings(self):
|
||||
response = None
|
||||
@@ -96,21 +104,43 @@ system_profiler SPHardwareDataType | grep 'Model Identifier'
|
||||
]
|
||||
menu = Utilities.TUIMenu(title, "Please select an option: ", auto_number=True, top_level=True)
|
||||
options = [
|
||||
# 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"Enable Verbose Mode:\t\tCurrently {self.constants.verbose_debug}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).change_verbose],
|
||||
[f"Enable OpenCore DEBUG:\t\tCurrently {self.constants.opencore_debug}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).change_oc],
|
||||
[f"Enable Kext DEBUG:\t\t\tCurrently {self.constants.kext_debug}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).change_kext],
|
||||
[f"Force iMac Metal Patch:\t\tCurrently {self.constants.imac_vendor}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).change_metal],
|
||||
[f"Assume Upgraded Wifi Always:\tCurrently {self.constants.wifi_build}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).change_wifi],
|
||||
[f"Set ShowPicker Mode:\t\tCurrently {self.constants.showpicker}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).change_showpicker],
|
||||
[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"Allow FireWire Boot:\t\tCurrently {self.constants.firewire_boot}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).allow_firewire],
|
||||
[f"Allow NVMe Boot:\t\t\tCurrently {self.constants.nvme_boot}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).allow_nvme],
|
||||
[f"Enable TeraScale 2 Acceleration:\tCurrently {self.constants.terscale_2_patch}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).enable_terascale],
|
||||
[f"Disable AMFI:\t\t\tCurrently {self.constants.disable_amfi}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).set_amfi],
|
||||
[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"Allow OpenCore on native Models:\tCurrently {self.constants.allow_oc_everywhere}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).allow_native_models],
|
||||
[f"Advanced Patch Settings, for developers only", self.advanced_patcher_settings],
|
||||
]
|
||||
|
||||
for option in options:
|
||||
menu.add_menu_option(option[0], function=option[1])
|
||||
|
||||
response = menu.start()
|
||||
|
||||
def advanced_patcher_settings(self):
|
||||
response = None
|
||||
while not (response and response == -1):
|
||||
title = [
|
||||
"Adjust Advanced Patcher Settings, for developers ONLY"
|
||||
]
|
||||
menu = Utilities.TUIMenu(title, "Please select an option: ", auto_number=True, top_level=True)
|
||||
options = [
|
||||
[f"Assume Metal GPU Always:\t\tCurrently {self.constants.imac_vendor}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).change_metal],
|
||||
#[f"Assume Upgraded Wifi Always:\tCurrently {self.constants.wifi_build}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).change_wifi],
|
||||
[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"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],
|
||||
[f"Set Generic Bootstrap:\t\tCurrently {self.constants.boot_efi}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).bootstrap_setting],
|
||||
#[f"Assume Legacy GPU:\t\t\tCurrently {self.constants.assume_legacy}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).force_accel_setting],
|
||||
[f"Disable CPU Friend:\t\t\tCurrently {self.constants.disallow_cpufriend}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).disable_cpufriend],
|
||||
[f"Override SMBIOS Spoof:\t\tCurrently {self.constants.override_smbios}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).set_smbios],
|
||||
[f"Set Custom name {self.constants.custom_cpu_model_value}", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).custom_cpu],
|
||||
[f"Set SeedUtil Status", CliMenu.MenuOptions(self.constants.custom_model or self.current_model, self.constants).set_seedutil],
|
||||
]
|
||||
|
||||
for option in options:
|
||||
@@ -128,14 +158,18 @@ system_profiler SPHardwareDataType | grep 'Model Identifier'
|
||||
- ASentientBot:\tLegacy Acceleration Patches
|
||||
- Ausdauersportler:\tLinking fixes for SNBGraphicsFB and AMDX3000
|
||||
- Syncretic:\t\tAAAMouSSE and telemetrap
|
||||
- cdf:\t\tNightShiftEnabler"""]).start()
|
||||
- cdf:\t\tNightShiftEnabler and Innie"""]).start()
|
||||
|
||||
def PatchVolume(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Patching System Volume"])
|
||||
print("""Patches Root volume to fix misc issues such as:
|
||||
big_sur = """Patches Root volume to fix misc issues such as:
|
||||
|
||||
- Brightness control for non-Metal GPUs
|
||||
- Graphics Acceleration for non-Metal GPUs
|
||||
- Nvidia: Tesla - Fermi (8000-500 series)
|
||||
- Intel: Ironlake - Sandy Bridge
|
||||
- AMD: TeraScale 1 and 2 (2000-6000 series)
|
||||
- Audio support for iMac7,1 and iMac8,1
|
||||
|
||||
WARNING: Root Volume Patching is still in active development, please
|
||||
have all important user data backed up. Note when the system volume
|
||||
@@ -147,7 +181,30 @@ Supported Options:
|
||||
1. Patch System Volume
|
||||
2. Unpatch System Volume (Experimental)
|
||||
B. Exit
|
||||
""")
|
||||
"""
|
||||
monterey = """Patches Root volume to fix misc issues such as:
|
||||
|
||||
- Basic Framebuffer and brightness Control (No acceleration)
|
||||
- Nvidia: Tesla - Fermi (8000-500 series)
|
||||
- Intel: Ironlake - Sandy Bridge
|
||||
- AMD: TeraScale 1 and 2 (2000-6000 series)
|
||||
- Audio support for iMac7,1 and iMac8,1
|
||||
|
||||
WARNING: Root Volume Patching is still in active development, please
|
||||
have all important user data backed up. Note when the system volume
|
||||
is patched, you can no longer have Delta updates or have FileVault
|
||||
enabled.
|
||||
|
||||
Supported Options:
|
||||
|
||||
1. Patch System Volume
|
||||
2. Unpatch System Volume (Experimental)
|
||||
B. Exit
|
||||
"""
|
||||
if self.constants.detected_os > self.constants.big_sur:
|
||||
print(monterey)
|
||||
else:
|
||||
print(big_sur)
|
||||
change_menu = input("Patch System Volume?: ")
|
||||
if change_menu == "1":
|
||||
SysPatch.PatchSysVolume(self.constants.custom_model or self.current_model, self.constants).start_patch()
|
||||
@@ -158,22 +215,21 @@ B. Exit
|
||||
|
||||
def main_menu(self):
|
||||
response = None
|
||||
ModelArray.SupportedSMBIOS = ModelArray.SupportedSMBIOS11
|
||||
ModelArray.SupportedSMBIOS = ModelArray.SupportedSMBIOS12
|
||||
while not (response and response == -1):
|
||||
title = [
|
||||
f"OpenCore Legacy Patcher v{self.constants.patcher_version}",
|
||||
f"Selected Model: {self.constants.custom_model or self.current_model}",
|
||||
f"Target OS: macOS {self.constants.os_support}",
|
||||
]
|
||||
|
||||
if (self.constants.custom_model or self.current_model) not in ModelArray.SupportedSMBIOS:
|
||||
if (self.constants.custom_model or self.current_model) not in ModelArray.SupportedSMBIOS and self.constants.allow_oc_everywhere is False:
|
||||
in_between = [
|
||||
'Your model is not supported by this patcher!',
|
||||
'Your model is not supported by this patcher for running unsupported OSes!',
|
||||
'',
|
||||
'If you plan to create the USB for another machine, please select the "Change Model" option in the menu.'
|
||||
]
|
||||
elif not self.constants.custom_model and self.current_model == "iMac7,1" and \
|
||||
"SSE4.1" not in subprocess.run("sysctl machdep.cpu.features".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.decode():
|
||||
DeviceProbe.pci_probe().cpu_feature("SSE4.1") is False:
|
||||
in_between = [
|
||||
'Your model requires a CPU upgrade to a CPU supporting SSE4.1+ to be supported by this patcher!',
|
||||
'',
|
||||
@@ -189,7 +245,7 @@ B. Exit
|
||||
menu = Utilities.TUIMenu(title, "Please select an option: ", in_between=in_between, auto_number=True, top_level=True)
|
||||
|
||||
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) or self.constants.allow_oc_everywhere is True else []) + [
|
||||
["Install OpenCore to USB/internal drive", self.install_opencore],
|
||||
["Post-Install Volume Patch", self.PatchVolume],
|
||||
["Change Model", self.change_model],
|
||||
@@ -202,7 +258,7 @@ B. Exit
|
||||
|
||||
response = menu.start()
|
||||
|
||||
if getattr(sys, "frozen", False):
|
||||
if getattr(sys, "frozen", False) and self.constants.recovery_status is False:
|
||||
subprocess.run("""osascript -e 'tell application "Terminal" to close first window' & exit""", shell=True)
|
||||
|
||||
|
||||
|
||||
74
README.md
@@ -1,60 +1,60 @@
|
||||
# OpenCore Legacy Patcher
|
||||
<div align="center">
|
||||
<img src="images/OC-Patcher.png" alt="OpenCore Patcher Logo" width="256" />
|
||||
<h1>OpenCore Legacy Patcher</h1>
|
||||
</div>
|
||||
|
||||
<img src="images/OC-Patcher.png" width="256">
|
||||
|
||||
A python program for building and booting [OpenCore](https://github.com/acidanthera/OpenCorePkg) on legacy Macs, see [Supported SMBIOS](https://dortania.github.io/OpenCore-Legacy-Patcher/MODELS.html) on whether your model is supported. Designed around Big Sur support, however can be used on older OSes.
|
||||
|
||||
| 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 |
|
||||
| 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. |
|
||||
A python program for building and booting [OpenCore](https://github.com/acidanthera/OpenCorePkg) on both legacy and modern Macs, see our in-depth [Guide](https://dortania.github.io/OpenCore-Legacy-Patcher/) for more information.
|
||||
|
||||
Supported features:
|
||||
|
||||
* System Integrity Protection, FileVault 2, .im4m Secure Boot and Vaulting
|
||||
* WPA Wifi and Personal Hotspot support
|
||||
* Native OTA OS DELTA updates on all Macs
|
||||
* Recovery OS, Safe Mode and Single-user Mode booting
|
||||
* Zero firmware patching required (ie. APFS ROM patching)
|
||||
* GPU Switching on MacBook Pro models (2012 and newer)
|
||||
|
||||
Note: Only clean-installs and upgrades are supported, installs already patched with other patchers, such as [Patched Sur](https://github.com/BenSova/Patched-Sur) or [bigmac](https://github.com/StarPlayrX/bigmac), cannot be used due to broken file integrity with APFS snapshots and SIP.
|
||||
Note: Only clean-installs and upgrades are supported, macOS Big Sur installs already patched with other patchers, such as [Patched Sur](https://github.com/BenSova/Patched-Sur) or [bigmac](https://github.com/StarPlayrX/bigmac), cannot be used due to broken file integrity with APFS snapshots and SIP.
|
||||
|
||||
* You can however reinstall macOS with this patcher and retain your original data
|
||||
|
||||
Note 2: Currently OpenCore Legacy Patcher officially supports patching to run macOS 11, Big Sur installs. For older OSes, OpenCore may function however support is currently not provided from Dortania.
|
||||
|
||||
For Mojave and Catalina support, we recommend the use of [dosdude1's patchers](http://dosdude1.com)
|
||||
|
||||
## How to use
|
||||
|
||||
See the online guide on how:
|
||||
|
||||
* [OpenCore Legacy Patcher Guide](https://dortania.github.io/OpenCore-Legacy-Patcher/)
|
||||
|
||||
## Patcher Warnings
|
||||
|
||||
Since this patcher tricks macOS into thinking you're running a newer Mac, certain functionality may be broken:
|
||||
|
||||
* Boot Camp Assistant.app
|
||||
* We recommend running the assistant on a natively supported OS, running via the patcher may result in unforeseen issues
|
||||
* Legacy Windows Booting
|
||||
* Currently OpenCore cannot boot MBR-based installs, so Ivy Bridge and older Machines may [not be able to see Windows in OpenCore's Boot Picker](https://github.com/acidanthera/bugtracker/issues/912)
|
||||
* [Solution is to convert install to UEFI](https://docs.microsoft.com/en-us/mem/configmgr/osd/deploy-use/task-sequence-steps-to-manage-bios-to-uefi-conversion), see MacRumors thread for more examples: [Installing Windows 10](https://forums.macrumors.com/threads/opencore-on-the-mac-pro.2207814/)
|
||||
* Boot Buddy support
|
||||
* Due to how OpenCore overwrites NVRAM, the usage of Boot Buddy and such tools are **highly** in-advised
|
||||
* For Mojave and Catalina support, we recommend the use of [dosdude1's patchers](http://dosdude1.com)
|
||||
|
||||
## Support
|
||||
|
||||
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:
|
||||
To get aid with the patcher, we recommend joining the [OpenCore Patcher Paradise Discord Server](https://discord.gg/rqdPgH8xSN). We're actively there and is the quickest way to receive help. For bigger issues such as patcher crashing on build and such, we recommend opening an issue right here on GitHub(Please review [How to debug with OpenCore](https://dortania.github.io/OpenCore-Legacy-Patcher/DEBUG.html) before opening issues):
|
||||
|
||||
* [OpenCore Legacy Patcher's Issue's tab](https://github.com/dortania/OpenCore-Legacy-Patcher/issues)
|
||||
|
||||
Regarding how to debug OpenCore Patcher, we recommend seeing the below:
|
||||
Nightly builds can be found here courteous of nightly.link: [Nightly OpenCore-Patcher.app](https://nightly.link/dortania/OpenCore-Legacy-Patcher/workflows/build-app/main/OpenCore-Patcher.app.zip)
|
||||
|
||||
* [How to debug with OpenCore](https://dortania.github.io/OpenCore-Legacy-Patcher/DEBUG.html)
|
||||
## Credits
|
||||
|
||||
## Supporting us!
|
||||
|
||||
To help support this patcher, we recommend checking this page:
|
||||
|
||||
* [Supporting the patcher](https://dortania.github.io/OpenCore-Legacy-Patcher/DONATE.html)
|
||||
* [Acidanthera](https://github.com/Acidanthera)
|
||||
* OpenCorePkg as well as many of the core kexts and tools
|
||||
* [DhinakG](https://github.com/DhinakG)
|
||||
* Main co-author
|
||||
* [Khronokernel](https://github.com/Khronokernel)
|
||||
* Main co-author
|
||||
* [Ausdauersportler](https://github.com/Ausdauersportler)
|
||||
* iMacs Metal GPUs Upgrade Patch set and documentation
|
||||
* Great amounts of help debugging and code suggestions
|
||||
* [vit9696](https://github.com/vit9696)
|
||||
* Endless amount of help troubleshooting, determining fixes and writing patches
|
||||
* [ASentientBot](https://github.com/ASentientBot)
|
||||
* Legacy Acceleration Patch set and documentation
|
||||
* [cdf](https://github.com/cdf)
|
||||
* Mac Pro on OpenCore Patch set and documentation
|
||||
* [Innie](https://github.com/cdf/Innie) and [NightShiftEnabler](https://github.com/cdf/NightShiftEnabler)
|
||||
* [Syncretic](https://forums.macrumors.com/members/syncretic.1173816/)
|
||||
* [AAAMouSSE](https://forums.macrumors.com/threads/mp3-1-others-sse-4-2-emulation-to-enable-amd-metal-driver.2206682/) and [telemetrap](https://forums.macrumors.com/threads/mp3-1-others-sse-4-2-emulation-to-enable-amd-metal-driver.2206682/post-28447707)
|
||||
* [dosdude1](https://github.com/dosdude1) and [BarryKN](https://github.com/BarryKN)
|
||||
* Development of previous patchers, laying out much of what needs to be patched
|
||||
* [mario_bros_tech](https://github.com/mariobrostech) and the rest of the Unsupported Mac Discord
|
||||
* Catalyst that started OpenCore Legacy Patcher
|
||||
* MacRumors and Unsupported Mac Communities
|
||||
* Endless testing, reporting issues
|
||||
* Apple
|
||||
* for macOS and many of the kexts, frameworks and other binaries we reimplemented into newer OSes
|
||||
|
||||
@@ -8,13 +8,11 @@ import shutil
|
||||
import subprocess
|
||||
import uuid
|
||||
import zipfile
|
||||
import os
|
||||
import sys
|
||||
import platform
|
||||
import ast
|
||||
from pathlib import Path
|
||||
from datetime import date
|
||||
|
||||
from Resources import Constants, ModelArray, Utilities
|
||||
from Resources import Constants, ModelArray, PCIIDArray, Utilities, DeviceProbe
|
||||
|
||||
|
||||
def human_fmt(num):
|
||||
@@ -37,38 +35,70 @@ class BuildOpenCore:
|
||||
self.config = None
|
||||
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 smbios_set(self):
|
||||
print("- Setting macOS Monterey Supported SMBIOS")
|
||||
if self.model in ModelArray.MacBookAir61:
|
||||
print("- Spoofing to MacBookAir7,1")
|
||||
return "MacBookAir7,1"
|
||||
elif self.model in ModelArray.MacBookAir62:
|
||||
print("- Spoofing to MacBookAir7,2")
|
||||
return "MacBookAir7,2"
|
||||
elif self.model in ModelArray.MacBook81:
|
||||
print("- Spoofing to MacBook9,1")
|
||||
return "MacBook9,1"
|
||||
elif self.model in ModelArray.MacBookPro111:
|
||||
print("- Spoofing to MacBookPro12,1")
|
||||
return "MacBookPro12,1"
|
||||
elif self.model in ModelArray.MacBookPro112:
|
||||
print("- Spoofing to MacBookPro11,4")
|
||||
return "MacBookPro11,4"
|
||||
elif self.model in ModelArray.MacBookPro113:
|
||||
print("- Spoofing to MacBookPro11,5")
|
||||
return "MacBookPro11,5"
|
||||
elif self.model in ModelArray.Macmini71:
|
||||
print("- Spoofing to Macmini7,1")
|
||||
return "Macmini7,1"
|
||||
elif self.model in ModelArray.iMacPro11:
|
||||
print("- Spoofing to iMacPro1,1")
|
||||
return "iMacPro1,1"
|
||||
elif self.model in ModelArray.iMac151:
|
||||
# Check for upgraded GPUs on iMacs
|
||||
if self.constants.drm_support is True:
|
||||
print("- Spoofing to iMacPro1,1")
|
||||
return "iMacPro1,1"
|
||||
else:
|
||||
print("- Spoofing to iMac17,1")
|
||||
return "iMac17,1"
|
||||
elif self.model in ModelArray.iMac144:
|
||||
print("- Spoofing to iMac16,1")
|
||||
return "iMac16,1"
|
||||
elif self.model in ModelArray.MacPro71:
|
||||
print("- Spoofing to MacPro7,1")
|
||||
return "MacPro7,1"
|
||||
else:
|
||||
return self.model
|
||||
|
||||
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 fw_feature_detect(self, model):
|
||||
# Values based off OpenCorePkg's Firmwarefeatures and FirmwarefeaturesMask
|
||||
# Additionally, APFS bit(19) flipped
|
||||
# https://github.com/acidanthera/OpenCorePkg/blob/0.6.9/Include/Apple/IndustryStandard/AppleFeatures.h#L136
|
||||
if model == "iMac7,1":
|
||||
fw_feature = b'\x07\x14\x08\xc0\x00\x00\x00\x00'
|
||||
fw_mask = b'\xff\x1f\x08\xc0\x00\x00\x00\x00'
|
||||
elif model in ["MacPro4,1", "Xserve3,1"]:
|
||||
fw_feature = b'7\xf5\t\xe0\x00\x00\x00\x00'
|
||||
fw_mask = b'7\xff\x0b\xc0\x00\x00\x00\x00'
|
||||
else:
|
||||
fw_feature = b'\x03\x14\x08\xc0\x00\x00\x00\x00'
|
||||
fw_mask = b'\xff\x3f\x08\xc0\x00\x00\x00\x00'
|
||||
return fw_feature, fw_mask
|
||||
|
||||
def build_efi(self):
|
||||
Utilities.cls()
|
||||
print(f"Building Configuration for model: {self.model}")
|
||||
if not self.constants.custom_model:
|
||||
print(f"Building Configuration on model: {self.model}")
|
||||
else:
|
||||
print(f"Building Configuration for external model: {self.model}")
|
||||
if not Path(self.constants.build_path).exists():
|
||||
Path(self.constants.build_path).mkdir()
|
||||
print("Created build folder")
|
||||
@@ -80,7 +110,7 @@ class BuildOpenCore:
|
||||
Path(self.constants.opencore_zip_copied).unlink()
|
||||
if Path(self.constants.opencore_release_folder).exists():
|
||||
print("Deleting old copy of OpenCore folder")
|
||||
shutil.rmtree(self.constants.opencore_release_folder, onerror=rmtree_handler)
|
||||
shutil.rmtree(self.constants.opencore_release_folder, onerror=rmtree_handler, ignore_errors=True)
|
||||
|
||||
print()
|
||||
print(f"- Adding OpenCore v{self.constants.opencore_version} {self.constants.opencore_build}")
|
||||
@@ -94,6 +124,10 @@ class BuildOpenCore:
|
||||
|
||||
# Set revision in config
|
||||
self.config["#Revision"]["Build-Version"] = f"{self.constants.patcher_version} - {date.today()}"
|
||||
if not self.constants.custom_model:
|
||||
self.config["#Revision"]["Build-Type"] = "OpenCore Built on Target Machine"
|
||||
else:
|
||||
self.config["#Revision"]["Build-Type"] = "OpenCore Built for External Machine"
|
||||
self.config["#Revision"]["OpenCore-Version"] = f"{self.constants.opencore_version} - {self.constants.opencore_build} - {self.constants.opencore_commit}"
|
||||
self.config["#Revision"]["Original-Model"] = self.model
|
||||
self.config["NVRAM"]["Add"]["4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102"]["OCLP-Version"] = f"{self.constants.patcher_version}"
|
||||
@@ -101,16 +135,16 @@ class BuildOpenCore:
|
||||
for name, version, path, check in [
|
||||
# Essential kexts
|
||||
("Lilu.kext", self.constants.lilu_version, self.constants.lilu_path, lambda: True),
|
||||
("WhateverGreen.kext", self.constants.whatevergreen_version, self.constants.whatevergreen_path, lambda: True),
|
||||
("WhateverGreen.kext", self.constants.whatevergreen_version, self.constants.whatevergreen_path, lambda: self.constants.allow_oc_everywhere is False),
|
||||
("RestrictEvents.kext", self.constants.restrictevents_version, self.constants.restrictevents_path, lambda: self.model in ModelArray.MacPro71),
|
||||
("RestrictEvents.kext", self.constants.restrictevents_mbp_version, self.constants.restrictevents_mbp_path, lambda: self.model == "MacBookPro9,1"),
|
||||
("NightShiftEnabler.kext", self.constants.nightshift_version, self.constants.nightshift_path, lambda: self.model not in ModelArray.NightShiftExclude),
|
||||
("SMC-Spoof.kext", self.constants.smcspoof_version, self.constants.smcspoof_path, lambda: True),
|
||||
("RestrictEvents.kext", self.constants.restrictevents_mbp_version, self.constants.restrictevents_mbp_path, lambda: self.model in ["MacBookPro6,1", "MacBookPro6,2", "MacBookPro9,1"]),
|
||||
("NightShiftEnabler.kext", self.constants.nightshift_version, self.constants.nightshift_path, lambda: self.model in ModelArray.NightShift and self.constants.allow_oc_everywhere is False and self.constants.serial_settings == "Minimal"),
|
||||
("SMC-Spoof.kext", self.constants.smcspoof_version, self.constants.smcspoof_path, lambda: self.constants.allow_oc_everywhere is False),
|
||||
# CPU patches
|
||||
("AppleMCEReporterDisabler.kext", self.constants.mce_version, self.constants.mce_path, lambda: self.model in ModelArray.DualSocket),
|
||||
("AAAMouSSE.kext", self.constants.mousse_version, self.constants.mousse_path, lambda: self.model in ModelArray.SSEEmulator),
|
||||
("telemetrap.kext", self.constants.telemetrap_version, self.constants.telemetrap_path, lambda: self.model in ModelArray.MissingSSE42),
|
||||
("CPUFriend.kext", self.constants.cpufriend_version, self.constants.cpufriend_path, lambda: self.model not in ModelArray.NoAPFSsupport),
|
||||
("CPUFriend.kext", self.constants.cpufriend_version, self.constants.cpufriend_path, lambda: self.model not in ["iMac7,1", "Xserve2,1"] and self.constants.allow_oc_everywhere is False and self.constants.disallow_cpufriend is False),
|
||||
# Ethernet patches
|
||||
("nForceEthernet.kext", self.constants.nforce_version, self.constants.nforce_path, lambda: self.model in ModelArray.EthernetNvidia),
|
||||
("MarvelYukonEthernet.kext", self.constants.marvel_version, self.constants.marvel_path, lambda: self.model in ModelArray.EthernetMarvell),
|
||||
@@ -119,21 +153,94 @@ class BuildOpenCore:
|
||||
("AppleALC.kext", self.constants.applealc_version, self.constants.applealc_path, lambda: self.model in ModelArray.LegacyAudio or self.model in ModelArray.MacPro71),
|
||||
# IDE patch
|
||||
("AppleIntelPIIXATA.kext", self.constants.piixata_version, self.constants.piixata_path, lambda: self.model in ModelArray.IDEPatch),
|
||||
# Misc
|
||||
("SidecarFixup.kext", self.constants.sidecarfixup_version, self.constants.sidecarfixup_path, lambda: self.model in ModelArray.SidecarPatch),
|
||||
("DebugEnhancer.kext", self.constants.debugenhancer_version, self.constants.debugenhancer_path, lambda: self.constants.kext_debug is True),
|
||||
]:
|
||||
self.enable_kext(name, version, path, check)
|
||||
|
||||
if self.constants.allow_oc_everywhere is False:
|
||||
self.get_item_by_kv(self.config["Kernel"]["Patch"], "Identifier", "com.apple.driver.AppleSMC")["Enabled"] = True
|
||||
|
||||
|
||||
if not self.constants.custom_model and (self.constants.allow_oc_everywhere is True or self.model in ModelArray.MacPro71):
|
||||
# Use Innie's same logic:
|
||||
# https://github.com/cdf/Innie/blob/v1.3.0/Innie/Innie.cpp#L90-L97
|
||||
storage_devices = plistlib.loads(subprocess.run("ioreg -c IOPCIDevice -r -d2 -a".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
||||
storage_devices = [i for i in storage_devices if i["class-code"] == binascii.unhexlify(self.constants.classcode_sata) or i["class-code"] == binascii.unhexlify(self.constants.classcode_nvme)]
|
||||
storage_path_gfx: str = subprocess.run([self.constants.gfxutil_path] + f"-v".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.decode()
|
||||
try:
|
||||
x = 1
|
||||
for i in storage_devices:
|
||||
storage_vendor = Utilities.hexswap(binascii.hexlify(i["vendor-id"]).decode()[:4])
|
||||
storage_device = Utilities.hexswap(binascii.hexlify(i["device-id"]).decode()[:4])
|
||||
print(f'- Fixing PCIe Storage Controller ({x}) reporting')
|
||||
try:
|
||||
storage_path = [line.strip().split("= ", 1)[1] for line in storage_path_gfx.split("\n") if f'{storage_vendor}:{storage_device}'.lower() in line.strip()][0]
|
||||
self.config["DeviceProperties"]["Add"][storage_path] = { "built-in": 1}
|
||||
except IndexError:
|
||||
print(f"- Failed to find Device path for PCIe Storage Controller {x}, falling back to Innie")
|
||||
if self.get_kext_by_bundle_path("Innie.kext")["Enabled"] is False:
|
||||
self.enable_kext("Innie.kext", self.constants.innie_version, self.constants.innie_path)
|
||||
x = x + 1
|
||||
except ValueError:
|
||||
print("- No PCIe Storage Controllers found to fix(V)")
|
||||
except IndexError:
|
||||
print("- No PCIe Storage Controllers found to fix(I)")
|
||||
|
||||
if not self.constants.custom_model:
|
||||
nvme_devices = plistlib.loads(subprocess.run("ioreg -c IOPCIDevice -r -d2 -a".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
||||
nvme_devices = [i for i in nvme_devices if i.get("IORegistryEntryChildren", None) and i["vendor-id"] != binascii.unhexlify("6B100000") and i["IORegistryEntryChildren"][0]["IORegistryEntryName"] == "IONVMeController"]
|
||||
try:
|
||||
x = 1
|
||||
for i in nvme_devices:
|
||||
nvme_vendor = Utilities.hexswap(binascii.hexlify(i["vendor-id"]).decode()[:4])
|
||||
nvme_device = Utilities.hexswap(binascii.hexlify(i["device-id"]).decode()[:4])
|
||||
print(f'- Found 3rd Party NVMe SSD ({x}): {nvme_vendor}:{nvme_device}')
|
||||
nvme_aspm = i["pci-aspm-default"]
|
||||
try:
|
||||
nvme_acpi = i["acpi-path"]
|
||||
nvme_acpi = DeviceProbe.pci_probe().acpi_strip(nvme_acpi)
|
||||
except KeyError:
|
||||
print(f"- No ACPI entry found for NVMe SSD ({x})")
|
||||
nvme_acpi = ""
|
||||
# Disable Bit 0 (L0s), enable Bit 1 (L1)
|
||||
if not isinstance(nvme_aspm, int):
|
||||
nvme_aspm = int.from_bytes(nvme_aspm, byteorder='little')
|
||||
nvme_aspm = (nvme_aspm & (~3)) | 2
|
||||
#nvme_aspm &= ~1 # Turn off bit 1
|
||||
#nvme_aspm |= 2 # Turn on bit 2
|
||||
self.config["#Revision"][f"Hardware-NVMe-{x}"] = f'{nvme_vendor}:{nvme_device}'
|
||||
try:
|
||||
nvme_path = DeviceProbe.pci_probe().deviceproperty_probe(nvme_vendor, nvme_device, nvme_acpi)
|
||||
if nvme_path == "":
|
||||
raise IndexError
|
||||
nvme_path_parent = DeviceProbe.pci_probe().device_property_parent(nvme_path)
|
||||
print(f"- Found NVMe ({x}) at {nvme_path}")
|
||||
self.config["DeviceProperties"]["Add"][nvme_path] = {"pci-aspm-default": nvme_aspm, "built-in": 1}
|
||||
self.config["DeviceProperties"]["Add"][nvme_path_parent] = {"pci-aspm-default": nvme_aspm}
|
||||
except IndexError:
|
||||
if "-nvmefaspm" not in self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"]:
|
||||
print("- Falling back to -nvmefaspm")
|
||||
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += " -nvmefaspm"
|
||||
if self.get_kext_by_bundle_path("NVMeFix.kext")["Enabled"] is False:
|
||||
self.enable_kext("NVMeFix.kext", self.constants.nvmefix_version, self.constants.nvmefix_path)
|
||||
x = x + 1
|
||||
except ValueError:
|
||||
print("- No 3rd Party NVMe drive found(V)")
|
||||
except IndexError:
|
||||
print("- No 3rd Party NVMe drive found(I)")
|
||||
|
||||
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
|
||||
#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]
|
||||
arpt_path = DeviceProbe.pci_probe().deviceproperty_probe(wifi_vendor, wifi_device, wifi_acpi)
|
||||
if arpt_path:
|
||||
print(f"- Found ARPT device at {arpt_path}")
|
||||
default_path = False
|
||||
except IndexError:
|
||||
print("- Failed to find Device path")
|
||||
else:
|
||||
default_path = True
|
||||
if default_path is True:
|
||||
if self.model in ModelArray.nvidiaHDEF:
|
||||
@@ -155,47 +262,37 @@ class BuildOpenCore:
|
||||
|
||||
# WiFi patches
|
||||
# TODO: -a is not supported in Lion and older, need to add proper fix
|
||||
if self.constants.detected_os > self.constants.lion:
|
||||
try:
|
||||
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 = ""
|
||||
|
||||
if self.constants.detected_os > self.constants.lion and not self.constants.custom_model:
|
||||
wifi_vendor,wifi_device,wifi_ioname,wifi_acpi = DeviceProbe.pci_probe().wifi_probe()
|
||||
if wifi_vendor:
|
||||
print(f"- Found Wireless Device {wifi_vendor}:{wifi_device} ({wifi_ioname})")
|
||||
self.config["#Revision"]["Hardware-Wifi"] = f"{wifi_vendor}:{wifi_device} ({wifi_ioname})"
|
||||
else:
|
||||
wifi_devices = ""
|
||||
print("- Can't run Wifi hardware detection on Snow Leopard and older")
|
||||
wifi_vendor = ""
|
||||
print("- Unable to run Wireless hardware detection")
|
||||
if self.constants.wifi_build is True:
|
||||
print("- Skipping Wifi patches on request")
|
||||
elif not self.constants.custom_model and wifi_devices:
|
||||
elif not self.constants.custom_model and wifi_vendor:
|
||||
if wifi_vendor == self.constants.pci_broadcom:
|
||||
if wifi_device in ModelArray.BCM4360Wifi and wifi_ioname not in ["pci14e4,4353", "pci14e4,4331"]:
|
||||
print("- Found supported WiFi card, skipping wifi patches")
|
||||
elif wifi_ioname in ["pci14e4,4353", "pci14e4,4331"] or wifi_device in ModelArray.BCM94331Wifi:
|
||||
# This works around OCLP spoofing the Wifi card and therefore unable to actually detect the correct device
|
||||
if wifi_device in PCIIDArray.broadcom_ids().BCM4360Wifi and wifi_ioname not in ["pci14e4,4353", "pci14e4,4331"]:
|
||||
self.enable_kext("AirportBrcmFixup.kext", self.constants.airportbcrmfixup_version, self.constants.airportbcrmfixup_path)
|
||||
elif wifi_ioname in ["pci14e4,4353", "pci14e4,4331"] or wifi_device in PCIIDArray.broadcom_ids().BCM94331Wifi:
|
||||
wifi_fake_id(self)
|
||||
elif wifi_device in ModelArray.BCM94322Wifi:
|
||||
elif wifi_device in PCIIDArray.broadcom_ids().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:
|
||||
elif wifi_device in PCIIDArray.broadcom_ids().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:
|
||||
elif wifi_vendor == self.constants.pci_atheros and wifi_device in PCIIDArray.atheros_ids().AtherosWifi:
|
||||
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
|
||||
else:
|
||||
if self.model in ModelArray.WifiBCM94331:
|
||||
if self.model in ["iMac14,1", "iMac14,2", "iMac14,3"]:
|
||||
self.enable_kext("AirportBrcmFixup.kext", self.constants.airportbcrmfixup_version, self.constants.airportbcrmfixup_path)
|
||||
elif self.model in ModelArray.WifiBCM94331:
|
||||
wifi_fake_id(self)
|
||||
elif self.model in ModelArray.WifiBCM94322:
|
||||
self.enable_kext("IO80211Mojave.kext", self.constants.io80211mojave_version, self.constants.io80211mojave_path)
|
||||
@@ -210,7 +307,7 @@ class BuildOpenCore:
|
||||
|
||||
# CPUFriend
|
||||
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 ["iMac7,1", "Xserve2,1"] and self.constants.allow_oc_everywhere is False:
|
||||
Path(self.constants.pp_kext_folder).mkdir()
|
||||
Path(self.constants.pp_contents_folder).mkdir()
|
||||
shutil.copy(pp_map_path, self.constants.pp_contents_folder)
|
||||
@@ -227,51 +324,75 @@ class BuildOpenCore:
|
||||
self.get_item_by_kv(self.config["ACPI"]["Add"], "Path", "SSDT-CPBG.aml")["Enabled"] = True
|
||||
shutil.copy(self.constants.pci_ssdt_path, self.constants.acpi_path)
|
||||
|
||||
if self.model in ModelArray.windows_audio:
|
||||
# Based on: https://egpu.io/forums/pc-setup/fix-dsdt-override-to-correct-error-12/
|
||||
print("- Enabling Windows 10 UEFI Audio support")
|
||||
self.get_item_by_kv(self.config["ACPI"]["Add"], "Path", "SSDT-PCI.aml")["Enabled"] = True
|
||||
self.get_item_by_kv(self.config["ACPI"]["Patch"], "Comment", "BUF0 to BUF1")["Enabled"] = True
|
||||
shutil.copy(self.constants.windows_ssdt_path, self.constants.acpi_path)
|
||||
|
||||
# USB Map
|
||||
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() and self.constants.allow_oc_everywhere is False and self.model not in ["iMac7,1", "Xserve2,1"]:
|
||||
print(f"- Adding USB-Map.kext")
|
||||
Path(self.constants.map_kext_folder).mkdir()
|
||||
Path(self.constants.map_contents_folder).mkdir()
|
||||
shutil.copy(usb_map_path, self.constants.map_contents_folder)
|
||||
self.get_kext_by_bundle_path("USB-Map.kext")["Enabled"] = True
|
||||
|
||||
agdp_map_path = Path(self.constants.plist_folder_path) / Path("AppleGraphicsDevicePolicy/Info.plist")
|
||||
agpm_map_path = Path(self.constants.plist_folder_path) / Path("AppleGraphicsPowerManagement/Info.plist")
|
||||
amc_map_path = Path(self.constants.plist_folder_path) / Path("AppleMuxControl/Info.plist")
|
||||
|
||||
if self.model == "MacBookPro9,1":
|
||||
print(f"- Adding Display Map Overrides")
|
||||
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_contents_folder).mkdir()
|
||||
Path(self.constants.agpm_kext_folder).mkdir()
|
||||
Path(self.constants.agpm_contents_folder).mkdir()
|
||||
Path(self.constants.amc_kext_folder).mkdir()
|
||||
Path(self.constants.amc_contents_folder).mkdir()
|
||||
if self.constants.allow_oc_everywhere is False:
|
||||
if self.model == "MacBookPro9,1":
|
||||
print("- Adding AppleMuxControl Override")
|
||||
amc_map_path = Path(self.constants.plist_folder_path) / Path("AppleMuxControl/Info.plist")
|
||||
self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)"] = {"agdpmod": "vit9696"}
|
||||
Path(self.constants.amc_kext_folder).mkdir()
|
||||
Path(self.constants.amc_contents_folder).mkdir()
|
||||
shutil.copy(amc_map_path, self.constants.amc_contents_folder)
|
||||
self.get_kext_by_bundle_path("AMC-Override.kext")["Enabled"] = True
|
||||
|
||||
shutil.copy(agdp_map_path, self.constants.agdp_contents_folder)
|
||||
shutil.copy(agpm_map_path, self.constants.agpm_contents_folder)
|
||||
shutil.copy(amc_map_path, self.constants.amc_contents_folder)
|
||||
self.get_kext_by_bundle_path("AGDP-Override.kext")["Enabled"] = True
|
||||
self.get_kext_by_bundle_path("AGPM-Override.kext")["Enabled"] = True
|
||||
self.get_kext_by_bundle_path("AMC-Override.kext")["Enabled"] = True
|
||||
if self.model not in ModelArray.NoAGPMSupport:
|
||||
print("- Adding AppleGraphicsPowerManagement Override")
|
||||
agpm_map_path = Path(self.constants.plist_folder_path) / Path("AppleGraphicsPowerManagement/Info.plist")
|
||||
Path(self.constants.agpm_kext_folder).mkdir()
|
||||
Path(self.constants.agpm_contents_folder).mkdir()
|
||||
shutil.copy(agpm_map_path, self.constants.agpm_contents_folder)
|
||||
self.get_kext_by_bundle_path("AGPM-Override.kext")["Enabled"] = True
|
||||
|
||||
if self.model in ModelArray.AGDPSupport:
|
||||
print("- Adding AppleGraphicsDevicePolicy Override")
|
||||
agdp_map_path = Path(self.constants.plist_folder_path) / Path("AppleGraphicsDevicePolicy/Info.plist")
|
||||
Path(self.constants.agdp_kext_folder).mkdir()
|
||||
Path(self.constants.agdp_contents_folder).mkdir()
|
||||
shutil.copy(agdp_map_path, self.constants.agdp_contents_folder)
|
||||
self.get_kext_by_bundle_path("AGDP-Override.kext")["Enabled"] = True
|
||||
|
||||
# AGPM Patch
|
||||
if self.model in ModelArray.DualGPUPatch:
|
||||
print("- Adding dual GPU patch")
|
||||
if not self.constants.custom_model:
|
||||
dgpu_vendor,dgpu_device,dgpu_acpi = DeviceProbe.pci_probe().gpu_probe("GFX0")
|
||||
self.gfx0_path = DeviceProbe.pci_probe().deviceproperty_probe(dgpu_vendor,dgpu_device,dgpu_acpi)
|
||||
if self.gfx0_path == "":
|
||||
print("- Failed to find GFX0 Device path, falling back on known logic")
|
||||
self.gfx0_path = "PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)"
|
||||
else:
|
||||
print(f"- Found GFX0 Device Path: {self.gfx0_path}")
|
||||
else:
|
||||
self.gfx0_path = "PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)"
|
||||
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"}
|
||||
self.config["DeviceProperties"]["Add"][self.gfx0_path] = {"agdpmod": "vit9696", "shikigva": 256}
|
||||
self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x2,0x0)"] = {"name": binascii.unhexlify("23646973706C6179"), "IOName": "#display", "class-code": binascii.unhexlify("FFFFFFFF")}
|
||||
else:
|
||||
self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)"] = {"agdpmod": "pikera"}
|
||||
self.config["DeviceProperties"]["Add"][self.gfx0_path] = {"agdpmod": "vit9696"}
|
||||
|
||||
# HiDPI OpenCanopy and FileVault
|
||||
if self.model in ModelArray.HiDPIpicker:
|
||||
print("- Setting HiDPI picker")
|
||||
self.config["NVRAM"]["Add"]["4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14"]["UIScale"] = binascii.unhexlify("02")
|
||||
if self.model in ["iMac13,1", "iMac13,2", "iMac13,3"]:
|
||||
dgpu_vendor,dgpu_device,dgpu_acpi = DeviceProbe.pci_probe().gpu_probe("GFX0")
|
||||
if dgpu_vendor:
|
||||
print("- Fixing sleep support in macOS 12")
|
||||
self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x2,0x0)"] = {"name": binascii.unhexlify("23646973706C6179"), "IOName": "#display", "class-code": binascii.unhexlify("FFFFFFFF")}
|
||||
|
||||
# Audio Patch
|
||||
if self.model in ModelArray.LegacyAudio:
|
||||
@@ -283,39 +404,67 @@ class BuildOpenCore:
|
||||
else:
|
||||
self.config["DeviceProperties"]["Add"][hdef_path] = {"apple-layout-id": 90, "use-apple-layout-id": 1, "use-layout-id": 1, }
|
||||
|
||||
# Enable FireWire Boot Support
|
||||
if self.constants.firewire_boot is True and self.model not in ModelArray.NoFireWireSupport:
|
||||
print("- Enabling FireWire Boot Support")
|
||||
self.enable_kext("IOFireWireFamily.kext", self.constants.fw_kext, self.constants.fw_family_path)
|
||||
self.enable_kext("IOFireWireSBP2.kext", self.constants.fw_kext, self.constants.fw_sbp2_path)
|
||||
self.enable_kext("IOFireWireSerialBusProtocolTransport.kext", self.constants.fw_kext, self.constants.fw_bus_path)
|
||||
self.get_kext_by_bundle_path("IOFireWireFamily.kext/Contents/PlugIns/AppleFWOHCI.kext")["Enabled"] = True
|
||||
|
||||
def nvidia_patch(self):
|
||||
def backlight_path_detection(self):
|
||||
if not self.constants.custom_model:
|
||||
dgpu_vendor,dgpu_device,dgpu_acpi = DeviceProbe.pci_probe().gpu_probe("GFX0")
|
||||
self.gfx0_path = DeviceProbe.pci_probe().deviceproperty_probe(dgpu_vendor,dgpu_device,dgpu_acpi)
|
||||
if self.gfx0_path == "":
|
||||
print("- Failed to find GFX0 Device path, falling back on known logic")
|
||||
if self.model in ["iMac11,1", "iMac11,3"]:
|
||||
self.gfx0_path = "PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)"
|
||||
elif self.model == "iMac10,1":
|
||||
self.gfx0_path = "PciRoot(0x0)/Pci(0xc,0x0)/Pci(0x0,0x0)"
|
||||
else:
|
||||
self.gfx0_path = "PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)"
|
||||
else:
|
||||
print(f"- Found GFX0 Device Path: {self.gfx0_path}")
|
||||
|
||||
else:
|
||||
if self.model in ["iMac11,1", "iMac11,3"]:
|
||||
self.gfx0_path = "PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)"
|
||||
elif self.model == "iMac10,1":
|
||||
self.gfx0_path = "PciRoot(0x0)/Pci(0xc,0x0)/Pci(0x0,0x0)"
|
||||
else:
|
||||
self.gfx0_path = "PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)"
|
||||
print(f"- Using known GFX0 path: {self.gfx0_path}")
|
||||
|
||||
|
||||
def nvidia_patch(self, backlight_path):
|
||||
self.constants.custom_mxm_gpu = True
|
||||
if self.model == "iMac11,1":
|
||||
if self.model in ["iMac11,1", "iMac11,2", "iMac11,3", "iMac10,1"]:
|
||||
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 == "iMac11,3":
|
||||
self.config["DeviceProperties"]["Add"][backlight_path] = {"applbkl": binascii.unhexlify("01000000"), "@0,backlight-control": binascii.unhexlify("01000000"), "@0,built-in": binascii.unhexlify("01000000"), "shikigva": 256, "agdpmod": "vit9696"}
|
||||
if self.constants.custom_model and self.model == "iMac11,2":
|
||||
# iMac11,2 can have either PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0) or PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)
|
||||
# Set both properties when we cannot run hardware detection
|
||||
self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)"] = {"applbkl": binascii.unhexlify("01000000"), "@0,backlight-control": binascii.unhexlify("01000000"), "@0,built-in": binascii.unhexlify("01000000"), "shikigva": 256, "agdpmod": "vit9696"}
|
||||
elif self.model in ["iMac12,1", "iMac12,2"]:
|
||||
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)"
|
||||
self.config["DeviceProperties"]["Add"][backlight_path] = {"@0,backlight-control": binascii.unhexlify("01000000"), "@0,built-in": binascii.unhexlify("01000000"), "shikigva": 256}
|
||||
self.config["DeviceProperties"]["Add"][backlight_path] = {"applbkl": binascii.unhexlify("01000000"), "@0,backlight-control": binascii.unhexlify("01000000"), "@0,built-in": binascii.unhexlify("01000000"), "shikigva": 256, "agdpmod": "vit9696"}
|
||||
print("- Disabling unsupported iGPU")
|
||||
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)
|
||||
self.get_kext_by_bundle_path("AppleBacklightFixup.kext")["Enabled"] = True
|
||||
shutil.copy(self.constants.backlight_injector_path, self.constants.kexts_path)
|
||||
self.get_kext_by_bundle_path("BacklightInjector.kext")["Enabled"] = True
|
||||
self.config["UEFI"]["Quirks"]["ForgeUefiSupport"] = True
|
||||
self.config["UEFI"]["Quirks"]["ReloadOptionRoms"] = True
|
||||
|
||||
def amd_patch(self):
|
||||
def amd_patch(self, backlight_path):
|
||||
self.constants.custom_mxm_gpu = True
|
||||
print("- Adding AMD DRM patches")
|
||||
if self.model == "iMac11,1":
|
||||
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}
|
||||
self.config["DeviceProperties"]["Add"][backlight_path] = {"shikigva": 80, "unfairgva": 1}
|
||||
if self.constants.custom_model and self.model == "iMac11,2":
|
||||
# iMac11,2 can have either PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0) or PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)
|
||||
# Set both properties when we cannot run hardware detection
|
||||
self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)"] = {"shikigva": 80, "unfairgva": 1}
|
||||
if self.model in ["iMac12,1", "iMac12,2"]:
|
||||
print("- Disabling unsupported iGPU")
|
||||
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":
|
||||
@@ -323,28 +472,98 @@ class BuildOpenCore:
|
||||
|
||||
# Check GPU Vendor
|
||||
if self.constants.metal_build is True:
|
||||
backlight_path_detection(self)
|
||||
print("- Adding Metal GPU patches on request")
|
||||
if self.constants.imac_vendor == "AMD":
|
||||
amd_patch(self)
|
||||
amd_patch(self, self.gfx0_path)
|
||||
elif self.constants.imac_vendor == "Nvidia":
|
||||
nvidia_patch(self)
|
||||
nvidia_patch(self, self.gfx0_path)
|
||||
else:
|
||||
print("- Failed to find vendor")
|
||||
elif not self.constants.custom_model:
|
||||
self.check_pciid(True)
|
||||
if self.constants.dgpu_vendor == self.constants.pci_amd_ati and self.constants.dgpu_device in ModelArray.AMDMXMGPUs:
|
||||
amd_patch(self)
|
||||
elif self.constants.dgpu_vendor == self.constants.pci_nvidia and self.constants.dgpu_device in ModelArray.NVIDIAMXMGPUs:
|
||||
nvidia_patch(self)
|
||||
elif not self.constants.custom_model and self.model in ModelArray.LegacyGPU:
|
||||
dgpu_vendor,dgpu_device,dgpu_acpi = DeviceProbe.pci_probe().gpu_probe("GFX0")
|
||||
if dgpu_vendor:
|
||||
print(f"- Detected dGPU: {dgpu_vendor}:{dgpu_device}")
|
||||
if dgpu_vendor == self.constants.pci_amd_ati and (dgpu_device in PCIIDArray.amd_ids().polaris_ids or dgpu_device in PCIIDArray.amd_ids().vega_ids or dgpu_device in PCIIDArray.amd_ids().navi_ids or dgpu_device in PCIIDArray.amd_ids().legacy_gcn_ids):
|
||||
backlight_path_detection(self)
|
||||
amd_patch(self, self.gfx0_path)
|
||||
elif dgpu_vendor == self.constants.pci_nvidia and dgpu_device in PCIIDArray.nvidia_ids().kepler_ids:
|
||||
backlight_path_detection(self)
|
||||
nvidia_patch(self, self.gfx0_path)
|
||||
if self.model in ModelArray.MacPro71:
|
||||
print("- Adding Mac Pro, Xserve DRM patches")
|
||||
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += " shikigva=128 unfairgva=1 -wegtree"
|
||||
if not self.constants.custom_model:
|
||||
mp_dgpu_devices = plistlib.loads(subprocess.run("ioreg -c IOPCIDevice -r -d2 -a".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
||||
mp_dgpu_devices = [i for i in mp_dgpu_devices if i["class-code"] == binascii.unhexlify("00000300") or i["class-code"] == binascii.unhexlify("00800300")]
|
||||
mp_dgpu_devices_gfx: str = subprocess.run([self.constants.gfxutil_path] + f"-v".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.decode()
|
||||
try:
|
||||
x = 1
|
||||
for i in mp_dgpu_devices:
|
||||
mp_dgpu_vendor = Utilities.hexswap(binascii.hexlify(i["vendor-id"]).decode()[:4])
|
||||
mp_dgpu_device = Utilities.hexswap(binascii.hexlify(i["device-id"]).decode()[:4])
|
||||
|
||||
print(f'- Found dGPU ({x}): {mp_dgpu_vendor}:{mp_dgpu_device}')
|
||||
self.config["#Revision"][f"Hardware-MacPro-dGPU-{x}"] = f'{mp_dgpu_vendor}:{mp_dgpu_device}'
|
||||
|
||||
try:
|
||||
mp_dgpu_path = [line.strip().split("= ", 1)[1] for line in mp_dgpu_devices_gfx.split("\n") if f'{mp_dgpu_vendor}:{mp_dgpu_device}'.lower() in line.strip()][0]
|
||||
print(f"- Found dGPU ({x}) at {mp_dgpu_path}")
|
||||
if mp_dgpu_vendor == self.constants.pci_amd_ati:
|
||||
print("- Adding Mac Pro, Xserve DRM patches")
|
||||
self.config["DeviceProperties"]["Add"][mp_dgpu_path] = {"shikigva": 128, "unfairgva": 1, "rebuild-device-tree": 1}
|
||||
elif mp_dgpu_vendor == self.constants.pci_nvidia:
|
||||
print("- Enabling Nvidia Output Patch")
|
||||
self.config["DeviceProperties"]["Add"][mp_dgpu_path] = {"rebuild-device-tree": 1}
|
||||
self.config["UEFI"]["Quirks"]["ForgeUefiSupport"] = True
|
||||
self.config["UEFI"]["Quirks"]["ReloadOptionRoms"] = True
|
||||
|
||||
except IndexError:
|
||||
print(f"- Failed to find Device path for NVMe {x}")
|
||||
if mp_dgpu_vendor == self.constants.pci_amd_ati:
|
||||
print("- Adding Mac Pro, Xserve DRM patches")
|
||||
if "shikigva=128 unfairgva=1 -wegtree" not in self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"]:
|
||||
print("- Falling back to boot-args")
|
||||
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += " shikigva=128 unfairgva=1 -wegtree"
|
||||
elif mp_dgpu_vendor == self.constants.pci_nvidia:
|
||||
print("- Enabling Nvidia Output Patch")
|
||||
if "-wegtree" not in self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"]:
|
||||
print("- Falling back to boot-args")
|
||||
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += " -wegtree"
|
||||
self.config["UEFI"]["Quirks"]["ForgeUefiSupport"] = True
|
||||
self.config["UEFI"]["Quirks"]["ReloadOptionRoms"] = True
|
||||
x = x + 1
|
||||
except ValueError:
|
||||
print("- No socketed dGPU found")
|
||||
except IndexError:
|
||||
print("- No socketed dGPU found")
|
||||
else:
|
||||
print("- Adding Mac Pro, Xserve DRM patches")
|
||||
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += " shikigva=128 unfairgva=1 -wegtree"
|
||||
|
||||
# Add XhciDxe if firmware doesn't have XHCI controller support and XCHI controller detected
|
||||
#if self.model not in ModelArray.XhciSupport and not self.constants.custom_model:
|
||||
# devices = plistlib.loads(subprocess.run("ioreg -c IOPCIDevice -r -d2 -a".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
||||
# try:
|
||||
# devices = [i for i in devices if i["class-code"] == binascii.unhexlify(self.constants.classcode_xhci)]
|
||||
# vendor_id = Utilities.hexswap(binascii.hexlify(devices[0]["vendor-id"]).decode()[:4])
|
||||
# device_id = Utilities.hexswap(binascii.hexlify(devices[0]["device-id"]).decode()[:4])
|
||||
# print("- Found XHCI Controller, adding Boot Support")
|
||||
# shutil.copy(self.constants.xhci_driver_path, self.constants.drivers_path)
|
||||
# self.config["UEFI"]["Drivers"] += ["XhciDxe.efi"]
|
||||
# except ValueError:
|
||||
# print("- No XHCI Controller Found (V)")
|
||||
# except IndexError:
|
||||
# print("- No XHCI Controller Found (I)")
|
||||
|
||||
if self.constants.nvme_boot is True:
|
||||
print("- Enabling NVMe boot support")
|
||||
shutil.copy(self.constants.nvme_driver_path, self.constants.drivers_path)
|
||||
self.config["UEFI"]["Drivers"] += ["NvmExpressDxe.efi"]
|
||||
|
||||
# Add OpenCanopy
|
||||
print("- Adding OpenCanopy GUI")
|
||||
shutil.rmtree(self.constants.resources_path, onerror=rmtree_handler)
|
||||
shutil.copy(self.constants.gui_path, self.constants.oc_folder)
|
||||
self.config["UEFI"]["Drivers"] = ["OpenCanopy.efi", "OpenRuntime.efi"]
|
||||
self.config["UEFI"]["Drivers"] += ["OpenCanopy.efi", "OpenRuntime.efi"]
|
||||
# Exfat check
|
||||
if self.model in ModelArray.NoExFat:
|
||||
print("- Adding ExFatDxeLegacy.efi")
|
||||
@@ -354,22 +573,21 @@ class BuildOpenCore:
|
||||
# Add UGA to GOP layer
|
||||
if self.model in ModelArray.UGAtoGOP:
|
||||
print("- Adding UGA to GOP Patch")
|
||||
self.config["UEFI"]["Output"]["GopPassThrough"] = True
|
||||
self.config["UEFI"]["Output"]["GopPassThrough"] = "Apple"
|
||||
|
||||
# ThridPartDrives Check
|
||||
if self.model not in ModelArray.NoSATAPatch:
|
||||
# ThirdPartDrives Check
|
||||
if self.model in ModelArray.SATAPatch and self.constants.allow_oc_everywhere is False:
|
||||
print("- Adding SATA Hibernation Patch")
|
||||
self.config["Kernel"]["Quirks"]["ThirdPartyDrives"] = True
|
||||
|
||||
# DEBUG Settings
|
||||
if self.constants.verbose_debug is True:
|
||||
print("- Enabling Verbose boot")
|
||||
self.config["Kernel"]["Quirks"]["PanicNoKextDump"] = True
|
||||
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += " -v debug=0x100"
|
||||
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += " -v"
|
||||
if self.constants.kext_debug is True:
|
||||
print("- Enabling DEBUG Kexts")
|
||||
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += " -liludbgall"
|
||||
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += " msgbuf=1048576"
|
||||
#self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += " msgbuf=1048576"
|
||||
if self.constants.opencore_debug is True:
|
||||
print("- Enabling DEBUG OpenCore")
|
||||
self.config["Misc"]["Debug"]["Target"] = 67
|
||||
@@ -388,79 +606,84 @@ class BuildOpenCore:
|
||||
print("- Disabling SIP")
|
||||
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["csr-active-config"] = binascii.unhexlify("EF0F0000")
|
||||
self.config["NVRAM"]["Delete"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"] += ["csr-active-config"]
|
||||
if self.constants.disable_amfi is True:
|
||||
print("- Disabling AMFI")
|
||||
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += " amfi_get_out_of_my_way=1"
|
||||
if self.constants.secure_status is False:
|
||||
print("- Disabling SecureBootModel")
|
||||
self.config["Misc"]["Security"]["SecureBootModel"] = "Disabled"
|
||||
if self.constants.serial_settings in ["Moderate", "Advanced"]:
|
||||
print("- Enabling USB Rename Patches")
|
||||
self.get_item_by_kv(self.config["ACPI"]["Patch"], "Comment", "XHC1 to SHC1")["Enabled"] = True
|
||||
self.get_item_by_kv(self.config["ACPI"]["Patch"], "Comment", "EHC1 to EH01")["Enabled"] = True
|
||||
self.get_item_by_kv(self.config["ACPI"]["Patch"], "Comment", "EHC2 to EH02")["Enabled"] = True
|
||||
if self.constants.custom_cpu_model == 0 or self.constants.custom_cpu_model == 1:
|
||||
self.config["NVRAM"]["Add"]["4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102"]["revcpu"] = self.constants.custom_cpu_model
|
||||
if self.constants.custom_cpu_model_value != "":
|
||||
print(f"- Adding custom CPU Name: {self.constants.custom_cpu_model_value}")
|
||||
self.config["NVRAM"]["Add"]["4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102"]["revcpuname"] = self.constants.custom_cpu_model_value
|
||||
else:
|
||||
print("- Adding CPU Name Patch")
|
||||
if self.get_kext_by_bundle_path("RestrictEvents.kext")["Enabled"] is False:
|
||||
self.enable_kext("RestrictEvents.kext", self.constants.restrictevents_version, self.constants.restrictevents_path)
|
||||
if self.model == self.constants.override_smbios:
|
||||
print("- Adding -no_compat_check")
|
||||
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["boot-args"] += " -no_compat_check"
|
||||
|
||||
def set_smbios(self):
|
||||
spoofed_model = self.model
|
||||
# TODO: Set check as global variable
|
||||
if self.model in ModelArray.MacBookAir61:
|
||||
print("- Spoofing to MacBookAir6,1")
|
||||
spoofed_model = "MacBookAir6,1"
|
||||
spoofed_board = "Mac-35C1E88140C3E6CF"
|
||||
elif self.model in ModelArray.MacBookAir62:
|
||||
print("- Spoofing to MacBookAir6,2")
|
||||
spoofed_model = "MacBookAir6,2"
|
||||
spoofed_board = "Mac-7DF21CB3ED6977E5"
|
||||
elif self.model in ModelArray.MacBookPro111:
|
||||
print("- Spoofing to MacBookPro11,1")
|
||||
spoofed_model = "MacBookPro11,1"
|
||||
spoofed_board = "Mac-189A3D4F975D5FFC"
|
||||
elif self.model in ModelArray.MacBookPro113:
|
||||
print("- Spoofing to MacBookPro11,3")
|
||||
spoofed_model = "MacBookPro11,3"
|
||||
spoofed_board = "Mac-2BD1B31983FE1663"
|
||||
elif self.model in ModelArray.Macmini71:
|
||||
print("- Spoofing to Macmini7,1")
|
||||
spoofed_model = "Macmini7,1"
|
||||
spoofed_board = "Mac-35C5E08120C7EEAF"
|
||||
elif self.model in ModelArray.iMacPro11:
|
||||
print("- Spoofing to iMacPro1,1")
|
||||
spoofed_model = "iMacPro1,1"
|
||||
spoofed_board = "Mac-7BA5B2D9E42DDD94"
|
||||
elif self.model in ModelArray.iMac151:
|
||||
# Check for upgraded GPUs on iMacs
|
||||
if self.constants.drm_support is True:
|
||||
print("- Spoofing to iMacPro1,1")
|
||||
spoofed_model = "iMacPro1,1"
|
||||
spoofed_board = "Mac-7BA5B2D9E42DDD94"
|
||||
else:
|
||||
print("- Spoofing to iMac15,1")
|
||||
spoofed_model = "iMac15,1"
|
||||
spoofed_board = "Mac-42FD25EABCABB274"
|
||||
elif self.model in ModelArray.iMac144:
|
||||
print("- Spoofing to iMac14,4")
|
||||
spoofed_model = "iMac14,4"
|
||||
spoofed_board = "Mac-81E3E92DD6088272"
|
||||
elif self.model in ModelArray.MacPro71:
|
||||
print("- Spoofing to MacPro7,1")
|
||||
spoofed_model = "MacPro7,1"
|
||||
spoofed_board = "Mac-27AD2F918AE68F61"
|
||||
if self.constants.override_smbios == "Default":
|
||||
spoofed_model = self.smbios_set()
|
||||
else:
|
||||
spoofed_model = self.constants.override_smbios
|
||||
try:
|
||||
spoofed_board = self.constants.board_id[spoofed_model]
|
||||
print(f"- Using Board ID: {spoofed_board}")
|
||||
except KeyError:
|
||||
spoofed_board = ""
|
||||
self.spoofed_model = spoofed_model
|
||||
self.spoofed_board = spoofed_board
|
||||
self.config["#Revision"]["Spoofed-Model"] = self.spoofed_model
|
||||
if self.constants.allow_oc_everywhere is False:
|
||||
self.config["#Revision"]["Spoofed-Model"] = f"{self.spoofed_model} - {self.constants.serial_settings}"
|
||||
|
||||
# Setup menu
|
||||
def minimal_serial_patch(self):
|
||||
if self.constants.custom_cpu_model == 0 or self.constants.custom_cpu_model == 1:
|
||||
self.config["PlatformInfo"]["SMBIOS"]["ProcessorType"] = 1537
|
||||
if self.model in ModelArray.NoAPFSsupport:
|
||||
fw_feature,fw_mask = self.fw_feature_detect(self.model)
|
||||
self.config["PlatformInfo"]["PlatformNVRAM"]["FirmwareFeatures"] = fw_feature
|
||||
self.config["PlatformInfo"]["SMBIOS"]["FirmwareFeatures"] = fw_feature
|
||||
self.config["PlatformInfo"]["PlatformNVRAM"]["FirmwareFeaturesMask"] = fw_mask
|
||||
self.config["PlatformInfo"]["SMBIOS"]["FirmwareFeaturesMask"] = fw_mask
|
||||
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["run-efi-updater"] = "No"
|
||||
self.config["PlatformInfo"]["PlatformNVRAM"]["BID"] = self.spoofed_board
|
||||
self.config["PlatformInfo"]["SMBIOS"]["BoardProduct"] = self.spoofed_board
|
||||
self.config["PlatformInfo"]["SMBIOS"]["BIOSVersion"] = "9999.999.999.999.999"
|
||||
self.config["PlatformInfo"]["UpdateNVRAM"] = True
|
||||
self.config["PlatformInfo"]["UpdateSMBIOS"] = True
|
||||
|
||||
def moderate_serial_patch(self):
|
||||
if self.constants.custom_cpu_model == 0 or self.constants.custom_cpu_model == 1:
|
||||
self.config["PlatformInfo"]["Generic"]["ProcessorType"] = 1537
|
||||
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["run-efi-updater"] = "No"
|
||||
self.config["PlatformInfo"]["Automatic"] = True
|
||||
self.config["PlatformInfo"]["UpdateDataHub"] = True
|
||||
self.config["PlatformInfo"]["UpdateNVRAM"] = True
|
||||
self.config["PlatformInfo"]["UpdateSMBIOS"] = True
|
||||
self.config["UEFI"]["ProtocolOverrides"]["DataHub"] = True
|
||||
self.config["PlatformInfo"]["Generic"]["SystemProductName"] = self.spoofed_model
|
||||
|
||||
def adanced_serial_patch(self):
|
||||
def advanced_serial_patch(self):
|
||||
if self.constants.custom_cpu_model == 0 or self.constants.custom_cpu_model == 1:
|
||||
self.config["PlatformInfo"]["Generic"]["ProcessorType"] = 1537
|
||||
macserial_output = subprocess.run([self.constants.macserial_path] + f"-g -m {self.spoofed_model} -n 1".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||
macserial_output = macserial_output.stdout.decode().strip().split(" | ")
|
||||
self.config["NVRAM"]["Add"]["7C436110-AB2A-4BBB-A880-FE41995C9F82"]["run-efi-updater"] = "No"
|
||||
self.config["PlatformInfo"]["Automatic"] = True
|
||||
self.config["PlatformInfo"]["UpdateDataHub"] = True
|
||||
self.config["PlatformInfo"]["UpdateNVRAM"] = True
|
||||
self.config["PlatformInfo"]["UpdateSMBIOS"] = True
|
||||
self.config["UEFI"]["ProtocolOverrides"]["DataHub"] = True
|
||||
self.config["PlatformInfo"]["Generic"]["ROM"] = binascii.unhexlify("0016CB445566")
|
||||
self.config["PlatformInfo"]["Generic"]["SystemProductName"] = self.spoofed_model
|
||||
@@ -473,48 +696,67 @@ class BuildOpenCore:
|
||||
moderate_serial_patch(self)
|
||||
elif self.constants.serial_settings == "Advanced":
|
||||
print("- Using Advanced SMBIOS patching")
|
||||
adanced_serial_patch(self)
|
||||
else:
|
||||
advanced_serial_patch(self)
|
||||
elif self.constants.serial_settings == "Minimal":
|
||||
print("- Using Minimal SMBIOS patching")
|
||||
self.spoofed_model = self.model
|
||||
minimal_serial_patch(self)
|
||||
|
||||
# USB Map Patching
|
||||
new_map_ls = Path(self.constants.map_contents_folder) / Path("Info.plist")
|
||||
map_config = plistlib.load(Path(new_map_ls).open("rb"))
|
||||
if self.constants.download_ram is False:
|
||||
self.config["PlatformInfo"].pop("Memory")
|
||||
else:
|
||||
print("- Inserting 1.5TB of RAM into your Mac")
|
||||
self.config["PlatformInfo"]["CustomMemory"] = True
|
||||
|
||||
for model_controller in ModelArray.ControllerTypes:
|
||||
model_patch = f"{self.model}{model_controller}"
|
||||
try:
|
||||
# Avoid erroring out when specific identity not found
|
||||
map_config["IOKitPersonalities_x86_64"][model_patch]["model"] = self.spoofed_model
|
||||
except KeyError:
|
||||
continue
|
||||
# USB Map and CPUFriend Patching
|
||||
if self.constants.allow_oc_everywhere is False and self.model not in ["iMac7,1", "Xserve2,1"]:
|
||||
new_map_ls = Path(self.constants.map_contents_folder) / Path("Info.plist")
|
||||
map_config = plistlib.load(Path(new_map_ls).open("rb"))
|
||||
# Strip unused USB maps
|
||||
for entry in list(map_config["IOKitPersonalities_x86_64"]):
|
||||
if not entry.startswith(self.model):
|
||||
map_config["IOKitPersonalities_x86_64"].pop(entry)
|
||||
else:
|
||||
try:
|
||||
map_config["IOKitPersonalities_x86_64"][entry]["model"] = self.spoofed_model
|
||||
if self.constants.serial_settings == "Minimal":
|
||||
if map_config["IOKitPersonalities_x86_64"][entry]["IONameMatch"] == "EH01":
|
||||
map_config["IOKitPersonalities_x86_64"][entry]["IONameMatch"] = "EHC1"
|
||||
if map_config["IOKitPersonalities_x86_64"][entry]["IONameMatch"] == "EH02":
|
||||
map_config["IOKitPersonalities_x86_64"][entry]["IONameMatch"] = "EHC2"
|
||||
if map_config["IOKitPersonalities_x86_64"][entry]["IONameMatch"] == "SHC1":
|
||||
map_config["IOKitPersonalities_x86_64"][entry]["IONameMatch"] = "XHC1"
|
||||
except KeyError:
|
||||
continue
|
||||
plistlib.dump(map_config, Path(new_map_ls).open("wb"), sort_keys=True)
|
||||
if self.constants.allow_oc_everywhere is False and self.model not in ["iMac7,1", "Xserve2,1"] and self.constants.disallow_cpufriend is False:
|
||||
# Adjust CPU Friend Data to correct SMBIOS
|
||||
new_cpu_ls = Path(self.constants.pp_contents_folder) / Path("Info.plist")
|
||||
cpu_config = plistlib.load(Path(new_cpu_ls).open("rb"))
|
||||
string_stuff = str(cpu_config["IOKitPersonalities"]["CPUFriendDataProvider"]["cf-frequency-data"])
|
||||
string_stuff = string_stuff.replace(self.model, self.spoofed_model)
|
||||
string_stuff = ast.literal_eval(string_stuff)
|
||||
cpu_config["IOKitPersonalities"]["CPUFriendDataProvider"]["cf-frequency-data"] = string_stuff
|
||||
plistlib.dump(cpu_config, Path(new_cpu_ls).open("wb"), sort_keys=True)
|
||||
|
||||
plistlib.dump(map_config, Path(new_map_ls).open("wb"), sort_keys=True)
|
||||
|
||||
if self.model == "MacBookPro9,1":
|
||||
new_agdp_ls = Path(self.constants.agdp_contents_folder) / Path("Info.plist")
|
||||
new_agpm_ls = Path(self.constants.agpm_contents_folder) / Path("Info.plist")
|
||||
new_amc_ls = Path(self.constants.amc_contents_folder) / Path("Info.plist")
|
||||
if self.constants.allow_oc_everywhere is False:
|
||||
if self.model == "MacBookPro9,1":
|
||||
new_amc_ls = Path(self.constants.amc_contents_folder) / Path("Info.plist")
|
||||
amc_config = plistlib.load(Path(new_amc_ls).open("rb"))
|
||||
amc_config["IOKitPersonalities"]["AppleMuxControl"]["ConfigMap"][self.spoofed_board] = amc_config["IOKitPersonalities"]["AppleMuxControl"]["ConfigMap"].pop(self.model)
|
||||
plistlib.dump(amc_config, Path(new_amc_ls).open("wb"), sort_keys=True)
|
||||
if self.model not in ModelArray.NoAGPMSupport:
|
||||
new_agpm_ls = Path(self.constants.agpm_contents_folder) / Path("Info.plist")
|
||||
agpm_config = plistlib.load(Path(new_agpm_ls).open("rb"))
|
||||
agpm_config["IOKitPersonalities"]["AGPM"]["Machines"][self.spoofed_board] = agpm_config["IOKitPersonalities"]["AGPM"]["Machines"].pop(self.model)
|
||||
plistlib.dump(agpm_config, Path(new_agpm_ls).open("wb"), sort_keys=True)
|
||||
if self.model in ModelArray.AGDPSupport:
|
||||
new_agdp_ls = Path(self.constants.agdp_contents_folder) / Path("Info.plist")
|
||||
agdp_config = plistlib.load(Path(new_agdp_ls).open("rb"))
|
||||
agdp_config["IOKitPersonalities"]["AppleGraphicsDevicePolicy"]["ConfigMap"][self.spoofed_board] = agdp_config["IOKitPersonalities"]["AppleGraphicsDevicePolicy"]["ConfigMap"].pop(self.model)
|
||||
plistlib.dump(agdp_config, Path(new_agdp_ls).open("wb"), sort_keys=True)
|
||||
|
||||
agdp_config = plistlib.load(Path(new_agdp_ls).open("rb"))
|
||||
agpm_config = plistlib.load(Path(new_agpm_ls).open("rb"))
|
||||
amc_config = plistlib.load(Path(new_amc_ls).open("rb"))
|
||||
|
||||
agdp_config["IOKitPersonalities"]["AppleGraphicsDevicePolicy"]["ConfigMap"][self.spoofed_board] = agdp_config["IOKitPersonalities"]["AppleGraphicsDevicePolicy"]["ConfigMap"].pop(self.model)
|
||||
agpm_config["IOKitPersonalities"]["AGPM"]["Machines"][self.spoofed_board] = agpm_config["IOKitPersonalities"]["AGPM"]["Machines"].pop(self.model)
|
||||
amc_config["IOKitPersonalities"]["AppleMuxControl"]["ConfigMap"][self.spoofed_board] = amc_config["IOKitPersonalities"]["AppleMuxControl"]["ConfigMap"].pop(self.model)
|
||||
|
||||
plistlib.dump(agdp_config, Path(new_agdp_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)
|
||||
|
||||
#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
|
||||
def get_item_by_kv(iterable, key, value):
|
||||
@@ -552,10 +794,20 @@ class BuildOpenCore:
|
||||
|
||||
def cleanup(self):
|
||||
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)
|
||||
# Remove unused entries
|
||||
for entry in list(self.config["ACPI"]["Add"]):
|
||||
if not entry["Enabled"]:
|
||||
self.config["ACPI"]["Add"].remove(entry)
|
||||
for entry in list(self.config["ACPI"]["Patch"]):
|
||||
if not entry["Enabled"]:
|
||||
self.config["ACPI"]["Patch"].remove(entry)
|
||||
for entry in list(self.config["Kernel"]["Add"]):
|
||||
if not entry["Enabled"]:
|
||||
self.config["Kernel"]["Add"].remove(entry)
|
||||
for entry in list(self.config["Kernel"]["Patch"]):
|
||||
if not entry["Enabled"]:
|
||||
self.config["Kernel"]["Patch"].remove(entry)
|
||||
|
||||
plistlib.dump(self.config, Path(self.constants.plist_path).open("wb"), sort_keys=True)
|
||||
for kext in self.constants.kexts_path.rglob("*.zip"):
|
||||
with zipfile.ZipFile(kext) as zip_file:
|
||||
@@ -567,8 +819,10 @@ class BuildOpenCore:
|
||||
zip_file.extractall(self.constants.oc_folder)
|
||||
item.unlink()
|
||||
|
||||
for i in self.constants.build_path.rglob("__MACOSX"):
|
||||
shutil.rmtree(i)
|
||||
if self.constants.recovery_status == False:
|
||||
# Crashes in RecoveryOS for unknown reason
|
||||
for i in self.constants.build_path.rglob("__MACOSX"):
|
||||
shutil.rmtree(i)
|
||||
|
||||
Path(self.constants.opencore_zip_copied).unlink()
|
||||
|
||||
@@ -682,7 +936,7 @@ Please build OpenCore first!"""
|
||||
" without altering line endings",
|
||||
]
|
||||
|
||||
if self.constants.detected_os > self.constants.yosemite:
|
||||
if self.constants.detected_os > self.constants.yosemite and self.constants.recovery_status == False:
|
||||
result = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
else:
|
||||
result = subprocess.run(f"diskutil mount {disk_identifier}s{response}".split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
@@ -742,9 +996,12 @@ Please build OpenCore first!"""
|
||||
print("- Adding Internal Drive icon")
|
||||
shutil.copy(self.constants.icon_path_internal, mount_path)
|
||||
print("- Cleaning install location")
|
||||
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)
|
||||
if self.constants.recovery_status == False:
|
||||
# RecoveryOS doesn't support dot_clean
|
||||
# Remove dot_clean, requires full disk access
|
||||
#subprocess.run(["dot_clean", mount_path], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
print("- Unmounting EFI partition")
|
||||
subprocess.run(["diskutil", "umount", mount_path], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
print("- OpenCore transfer complete")
|
||||
print("\nPress [Enter] to continue.\n")
|
||||
input()
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
# Handle misc CLI menu options
|
||||
# Copyright (C) 2020-2021, Dhinak G, Mykola Grymalyuk
|
||||
from __future__ import print_function
|
||||
|
||||
import subprocess
|
||||
import sys
|
||||
import time
|
||||
import platform
|
||||
|
||||
from Resources import Build, ModelArray, Constants, SysPatch, Utilities
|
||||
from Resources import ModelArray, Constants, Utilities
|
||||
|
||||
|
||||
class MenuOptions:
|
||||
@@ -176,10 +172,6 @@ Note: For security reasons, OpenShell will be disabled when Vault is set.
|
||||
however to patch the root volume both of these must be disabled.
|
||||
Only disable is absolutely necessary. SIP value = 0xFEF
|
||||
|
||||
Note: for minor changes, SIP can be adjusted in recovery like normal.
|
||||
Additionally, when disabling SIP via the patcher amfi_get_out_of_my_way=1
|
||||
will be added to boot-args.
|
||||
|
||||
Valid options:
|
||||
|
||||
1. Enable Both
|
||||
@@ -204,9 +196,24 @@ Valid options:
|
||||
else:
|
||||
print("Invalid option")
|
||||
|
||||
def set_amfi(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Disable AMFI"])
|
||||
print("""Required for Root Patching non-Metal GPUs
|
||||
in macOS Big Sur. Without this, will receive kernel panic once
|
||||
Patcher finishes installing legacy acceleration patches.
|
||||
""")
|
||||
change_menu = input("Disable AMFI(y/n): ")
|
||||
if change_menu in {"y", "Y", "yes", "Yes"}:
|
||||
self.constants.disable_amfi = True
|
||||
elif change_menu in {"n", "N", "no", "No"}:
|
||||
self.constants.disable_amfi = False
|
||||
else:
|
||||
print("Invalid option")
|
||||
|
||||
def change_imac_nvidia(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Force iMac Nvidia Patches"])
|
||||
Utilities.header(["Assume Metal GPU Always"])
|
||||
print("""Specifically for iMac10,x-12,x with Metal Nvidia GPU upgrades
|
||||
By default the patcher will try to detect what hardware is
|
||||
running, however this will enforce iMac Nvidia Build Patches.
|
||||
@@ -269,34 +276,6 @@ Recommend only disabling if absolutely required.
|
||||
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"])
|
||||
@@ -310,5 +289,234 @@ DO NOT RUN IF METAL GPU IS INSTALLED
|
||||
self.constants.assume_legacy = True
|
||||
elif change_menu in {"n", "N", "no", "No"}:
|
||||
self.constants.assume_legacy = False
|
||||
else:
|
||||
print("Invalid option")
|
||||
|
||||
def allow_native_models(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Allow OpenCore on native Models"])
|
||||
print("""Allows natively supported Macs to use OpenCore. Recommended
|
||||
for users with 3rd Party NVMe SSDs to achieve improved overall
|
||||
power usage.
|
||||
|
||||
""")
|
||||
change_menu = input("Allow OpenCore on all Models(y/n): ")
|
||||
if change_menu in {"y", "Y", "yes", "Yes"}:
|
||||
self.constants.allow_oc_everywhere = True
|
||||
self.constants.serial_settings = "None"
|
||||
elif change_menu in {"n", "N", "no", "No"}:
|
||||
self.constants.allow_oc_everywhere = False
|
||||
self.constants.serial_settings = "Minimal"
|
||||
else:
|
||||
print("Invalid option")
|
||||
|
||||
def custom_cpu(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Set custom CPU Model Name"])
|
||||
print("""Change reported CPU Model name in About This Mac
|
||||
Custom names will report as follows:
|
||||
|
||||
1: Original Name: 2.5 Ghz Dual-Core Intel Core i5
|
||||
2. CPU name: Intel(R) Core(TM) i5-3210M CPU @ 2.50Ghz
|
||||
3. Custom Name: 2.5Ghz Cotton Candy (example)
|
||||
""")
|
||||
if self.constants.custom_cpu_model_value == "":
|
||||
if self.constants.custom_cpu_model == 0:
|
||||
print("Currently using original name")
|
||||
else:
|
||||
print("Currently using CPU name")
|
||||
else:
|
||||
print(f"Custom CPU name currently: {self.constants.custom_cpu_model_value}")
|
||||
change_menu = input("Set custom CPU Name(1,2,3): ")
|
||||
if change_menu == "1":
|
||||
self.constants.custom_cpu_model = 2
|
||||
self.constants.custom_cpu_model_value = ""
|
||||
elif change_menu == "2":
|
||||
self.constants.custom_cpu_model = 0
|
||||
self.constants.custom_cpu_model_value = ""
|
||||
elif change_menu == "3":
|
||||
self.constants.custom_cpu_model = 1
|
||||
self.constants.custom_cpu_model_value = input("Enter new CPU Name: ")
|
||||
else:
|
||||
print("Invalid option")
|
||||
|
||||
def custom_color_thing(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Set custom CPU Model Name"])
|
||||
print("""Change reported CPU Model name in About This Mac
|
||||
Custom names will report as follows:
|
||||
|
||||
1: Custom Color
|
||||
2. Reset
|
||||
""")
|
||||
change_menu = input("Set custom CPU Name(1,2,3): ")
|
||||
if change_menu == "1":
|
||||
print("")
|
||||
#temp_tk_root = tk.Tk()
|
||||
#temp_tk_root.wm_withdraw()
|
||||
#self.constants.custom_color = colorchooser.askcolor(title="Choose color")
|
||||
#temp_tk_root.destroy()
|
||||
elif change_menu == "2":
|
||||
self.constants.custom_color = ""
|
||||
else:
|
||||
print("Invalid option")
|
||||
|
||||
def download_more_ram_dot_com(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Download more RAM"])
|
||||
print("""Downloads more RAM to your Mac!
|
||||
Currently only offers 1.5TB bundles
|
||||
""")
|
||||
change_menu = input("Download more RAM?(y/n): ")
|
||||
if change_menu == "y":
|
||||
self.constants.download_ram = True
|
||||
elif change_menu == "n":
|
||||
self.constants.download_ram = False
|
||||
else:
|
||||
print("Invalid option")
|
||||
|
||||
def disable_cpufriend(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Disable CPU Friend?"])
|
||||
print("""Only recommended for advanced users
|
||||
Disabling CPUFriend forces macOS into using a different
|
||||
Mac's power profile for CPUs and GPUs, which can harm the
|
||||
hardware
|
||||
""")
|
||||
change_menu = input("Disable CPU Friend?(y/n): ")
|
||||
if change_menu == "y":
|
||||
self.constants.disallow_cpufriend = True
|
||||
elif change_menu == "n":
|
||||
self.constants.disallow_cpufriend = False
|
||||
else:
|
||||
print("Invalid option")
|
||||
|
||||
def set_seedutil(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Set SeedUtil Status"])
|
||||
print("""Used for setting OS Update Preferences
|
||||
|
||||
Valid options:
|
||||
1. Public Release Seed (Default)
|
||||
2. Public Beta Seed
|
||||
3. Developer Beta Seed
|
||||
4. Check SeedUtil's current status
|
||||
""")
|
||||
|
||||
change_menu = input("Set update status(Press [ENTER] to exit): ")
|
||||
if change_menu == "1":
|
||||
subprocess.run(["sudo", "/System/Library/PrivateFrameworks/Seeding.framework/Versions/A/Resources/seedutil", "unenroll"], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
elif change_menu == "2":
|
||||
subprocess.run(["sudo", "/System/Library/PrivateFrameworks/Seeding.framework/Versions/A/Resources/seedutil", "unenroll"], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
subprocess.run(["sudo", "/System/Library/PrivateFrameworks/Seeding.framework/Versions/A/Resources/seedutil", "enroll", "PublicSeed"], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
elif change_menu == "3":
|
||||
subprocess.run(["sudo", "/System/Library/PrivateFrameworks/Seeding.framework/Versions/A/Resources/seedutil", "unenroll"], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
subprocess.run(["sudo", "/System/Library/PrivateFrameworks/Seeding.framework/Versions/A/Resources/seedutil", "enroll", "DeveloperSeed"], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
elif change_menu == "4":
|
||||
result = subprocess.run(["sudo", "/System/Library/PrivateFrameworks/Seeding.framework/Versions/A/Resources/seedutil", "current"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||
result = [i.partition(":")[2] for i in result.stdout.decode().split("\n") if "Currently enrolled in" in i][0]
|
||||
print(f"SeedUtil Current Status: {result}")
|
||||
input("\nPress [ENTER] to continue")
|
||||
self.set_seedutil()
|
||||
else:
|
||||
print("Returning to main menu")
|
||||
|
||||
def set_smbios(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Override SMBIOS Spoof"])
|
||||
print("""Change model OpenCore spoofs Mac too
|
||||
|
||||
Valid options:
|
||||
1. Default set by OpenCore (Default)
|
||||
2. User Override
|
||||
3. Disable all spoofing (unsupported configuration)
|
||||
""")
|
||||
|
||||
change_menu = input("Set SMBIOS status: ")
|
||||
if change_menu == "1":
|
||||
print("Setting SMBIOS spoof to default mode")
|
||||
self.constants.override_smbios = "Default"
|
||||
elif change_menu == "2":
|
||||
custom_smbios = input("Set new SMBIOS mode: ")
|
||||
try:
|
||||
test = self.constants.board_id[custom_smbios]
|
||||
self.constants.override_smbios = custom_smbios
|
||||
except KeyError:
|
||||
print("Unsupported SMBIOS, defaulting to Default setting")
|
||||
self.constants.override_smbios = "Default"
|
||||
elif change_menu == "3":
|
||||
print("Disabling SMBIOS spoof")
|
||||
self.constants.override_smbios = self.model
|
||||
else:
|
||||
print("Returning to main menu")
|
||||
|
||||
def allow_firewire(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Allow FireWire Boot Support"])
|
||||
print("""
|
||||
In macOS Catalina and newer, Apple restricted
|
||||
usage of FireWire devices to boot macOS for
|
||||
security concerns relating to DMA access.
|
||||
|
||||
If you are comfortable lowering the security,
|
||||
you can re-enable FireWire support for Catalina
|
||||
and newer.
|
||||
|
||||
Note: MacBook5,x-7,1 don't support FireWire boot
|
||||
""")
|
||||
|
||||
change_menu = input("Enable FireWire Boot support?(y/n): ")
|
||||
if change_menu == "y":
|
||||
self.constants.firewire_boot = True
|
||||
elif change_menu == "n":
|
||||
self.constants.firewire_boot = False
|
||||
else:
|
||||
print("Invalid option")
|
||||
|
||||
def allow_nvme(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Allow NVMe UEFI Support"])
|
||||
print("""
|
||||
For machines not natively supporting NVMe,
|
||||
this option allows you to see and boot NVMe
|
||||
drive in OpenCore's picker
|
||||
|
||||
Not required if your machine natively supports NVMe
|
||||
|
||||
Note: You must have OpenCore on a bootable volume
|
||||
first, ie. USB or SATA drive. Once loaded,
|
||||
OpenCore will enable NVMe support in it's picker
|
||||
""")
|
||||
|
||||
change_menu = input("Enable NVMe Boot support?(y/n): ")
|
||||
if change_menu == "y":
|
||||
self.constants.nvme_boot = True
|
||||
elif change_menu == "n":
|
||||
self.constants.nvme_boot = False
|
||||
else:
|
||||
print("Invalid option")
|
||||
|
||||
|
||||
def enable_terascale(self):
|
||||
Utilities.cls()
|
||||
Utilities.header(["Enable TeraScale 2 Acceleration"])
|
||||
print("""
|
||||
Currently TeraScale 2 graphics acceleration is in beta with
|
||||
some unfortunate bugs on login including strobing colours
|
||||
until the user forces Million Colours on the Display with
|
||||
SwitchResX or resXtreme
|
||||
|
||||
Users sensitive to seizures should avoid using TeraScale 2
|
||||
patches or ask someone to handle inital setup to ensure
|
||||
no issues
|
||||
|
||||
Note: Acceleration only applies to macOS Big Sur
|
||||
""")
|
||||
|
||||
change_menu = input("Enable TS2 Acceleration?(y/n): ")
|
||||
if change_menu == "y":
|
||||
self.constants.terscale_2_patch = True
|
||||
elif change_menu == "n":
|
||||
self.constants.terscale_2_patch = False
|
||||
else:
|
||||
print("Invalid option")
|
||||
@@ -9,33 +9,39 @@ from pathlib import Path
|
||||
|
||||
class Constants:
|
||||
def __init__(self):
|
||||
self.patcher_version = "0.1.1"
|
||||
self.opencore_commit = "c528597 - 2021-04-05"
|
||||
self.opencore_version = "0.6.8"
|
||||
self.lilu_version = "1.5.2"
|
||||
self.whatevergreen_version = "1.4.9"
|
||||
self.airportbcrmfixup_version = "2.1.2"
|
||||
self.patcher_version = "0.1.7"
|
||||
self.opencore_commit = "4e0ff2d - 05-23-2021"
|
||||
self.opencore_version = "0.7.0"
|
||||
self.lilu_version = "1.5.4"
|
||||
self.whatevergreen_version = "1.5.1"
|
||||
self.airportbcrmfixup_version = "2.1.3"
|
||||
self.bcm570_version = "1.0.1"
|
||||
self.marvel_version = "1.0.0"
|
||||
self.nforce_version = "1.0.0"
|
||||
self.mce_version = "1.0.0"
|
||||
self.mousse_version = "0.93"
|
||||
self.mousse_version = "0.95"
|
||||
self.telemetrap_version = "1.0.0"
|
||||
self.corecaptureelcap_version = "1.0.0"
|
||||
self.io80211elcap_version = "1.0.0"
|
||||
self.io80211high_sierra_version = "1.0.0"
|
||||
self.io80211mojave_version = "1.0.0"
|
||||
self.applealc_version = "1.6.0"
|
||||
self.restrictevents_version = "1.0.0"
|
||||
self.restrictevents_mbp_version = "1.0.1"
|
||||
self.applealc_version = "1.6.2"
|
||||
self.restrictevents_version = "1.0.3"
|
||||
self.restrictevents_mbp_version = "1.0.3"
|
||||
self.piixata_version = "1.0.0"
|
||||
self.backlight_version = "1.0.1"
|
||||
self.cpufriend_version = "1.2.3"
|
||||
self.backlight_injector_version = "1.0.0"
|
||||
self.cpufriend_version = "1.2.4"
|
||||
self.nightshift_version = "1.1.0"
|
||||
self.smcspoof_version = "1.0.0"
|
||||
self.cputscsync = "1.0.3"
|
||||
self.hibernationfixup = "1.3.9"
|
||||
self.payload_version = "0.0.4"
|
||||
self.nvmefix_version = "1.0.9"
|
||||
self.sidecarfixup_version = "1.0.2"
|
||||
self.debugenhancer_version = "1.0.3"
|
||||
self.innie_version = "1.3.0"
|
||||
self.fw_kext = "1.0.0"
|
||||
self.payload_version = "0.0.18" # Apple-Binaries-OCLP
|
||||
|
||||
# Get resource path
|
||||
self.current_path = Path(__file__).parent.parent.resolve()
|
||||
@@ -45,19 +51,15 @@ class Constants:
|
||||
self.custom_mxm_gpu: str = None
|
||||
self.current_gpuv: str = None
|
||||
self.current_gpud: str = None
|
||||
self.igpu_vendor = ""
|
||||
self.igpu_device = ""
|
||||
self.dgpu_vendor = ""
|
||||
self.dgpu_device = ""
|
||||
|
||||
# Patcher Settings
|
||||
self.opencore_debug = False
|
||||
self.opencore_build = "RELEASE"
|
||||
self.kext_debug = False
|
||||
self.verbose_debug = False
|
||||
self.os_support = 11.0
|
||||
self.os_support = 12.0
|
||||
self.min_os_support = 11.0
|
||||
self.max_os_support = 11.0
|
||||
self.max_os_support = 12.0
|
||||
self.metal_build = False
|
||||
self.imac_vendor = "None"
|
||||
self.wifi_build = False
|
||||
@@ -66,12 +68,25 @@ class Constants:
|
||||
self.showpicker = True
|
||||
self.vault = False
|
||||
self.sip_status = True
|
||||
self.secure_status = True
|
||||
self.secure_status = False
|
||||
self.detected_os = 0
|
||||
self.boot_efi = False
|
||||
self.drm_support = False
|
||||
self.legacy_acceleration_patch = True
|
||||
self.assume_legacy = False
|
||||
self.allow_oc_everywhere = False
|
||||
self.custom_cpu_model = 2
|
||||
self.custom_cpu_model_value = ""
|
||||
self.custom_color = ""
|
||||
self.download_ram = False
|
||||
self.disallow_cpufriend = False
|
||||
self.recovery_status = False
|
||||
self.override_smbios = "Default"
|
||||
self.apecid_support = False
|
||||
self.firewire_boot = False
|
||||
self.nvme_boot = False
|
||||
self.disable_amfi = False
|
||||
self.terscale_2_patch = False
|
||||
|
||||
# OS Versions
|
||||
self.tiger = 8
|
||||
@@ -87,6 +102,7 @@ class Constants:
|
||||
self.mojave = 18
|
||||
self.catalina = 19
|
||||
self.big_sur = 20
|
||||
self.monterey = 21
|
||||
|
||||
# Vendor IDs
|
||||
self.pci_nvidia = "10DE"
|
||||
@@ -94,6 +110,17 @@ class Constants:
|
||||
self.pci_intel = "8086"
|
||||
self.pci_broadcom = "14E4"
|
||||
self.pci_atheros = "168C"
|
||||
self.pci_apple = "106B"
|
||||
|
||||
# Class Codes
|
||||
# https://pci-ids.ucw.cz/read/PD
|
||||
self.classcode_sata = "01060100"
|
||||
self.classcode_nvme = "02080100"
|
||||
self.classcode_nvme_generic = "02800100"
|
||||
self.classcode_wifi = "00800200"
|
||||
self.classcode_gpu = "00000300"
|
||||
self.classcode_gpu_variant = "00800300"
|
||||
self.classcode_xhci = "30030C00"
|
||||
|
||||
# Nvidia GPU Architecture
|
||||
self.arch_tesla = "NV50"
|
||||
@@ -110,15 +137,23 @@ class Constants:
|
||||
@property
|
||||
def plist_template(self): return self.payload_path / Path(f"Config/config.plist")
|
||||
|
||||
# Mount Location
|
||||
@property
|
||||
def payload_mnt1_path(self): return self.payload_path / Path("mnt1")
|
||||
|
||||
# ACPI
|
||||
@property
|
||||
def pci_ssdt_path(self): return self.payload_path / Path("ACPI/SSDT-CPBG.aml")
|
||||
@property
|
||||
def windows_ssdt_path(self): return self.payload_path / Path("ACPI/SSDT-PCI.aml")
|
||||
|
||||
# Drivers
|
||||
@property
|
||||
def nvme_driver_path(self): return self.payload_path / Path("Drivers/NvmExpressDxe.efi")
|
||||
@property
|
||||
def exfat_legacy_driver_path(self): return self.payload_path / Path("Drivers/ExFatDxeLegacy.efi")
|
||||
@property
|
||||
def xhci_driver_path(self): return self.payload_path / Path("Drivers/XhciDxe.efi")
|
||||
|
||||
# Kexts
|
||||
@property
|
||||
@@ -160,6 +195,8 @@ class Constants:
|
||||
@property
|
||||
def backlight_path(self): return self.payload_kexts_path / Path(f"Misc/AppleBacklightFixup-v{self.backlight_version}.zip")
|
||||
@property
|
||||
def backlight_injector_path(self): return self.payload_kexts_path / Path(f"Misc/BacklightInjector-v{self.backlight_injector_version}.zip")
|
||||
@property
|
||||
def cpufriend_path(self): return self.payload_kexts_path / Path(f"Acidanthera/CPUFriend-v{self.cpufriend_version}.zip")
|
||||
@property
|
||||
def nightshift_path(self): return self.payload_kexts_path / Path(f"Misc/NightShiftEnabler-v{self.nightshift_version}.zip")
|
||||
@@ -170,9 +207,23 @@ class Constants:
|
||||
@property
|
||||
def hibernationfixup_path(self): return self.payload_kexts_path / Path(f"Acidanthera/HibernationFixup-v{self.hibernationfixup}.zip")
|
||||
@property
|
||||
def nvmefix_path(self): return self.payload_kexts_path / Path(f"Acidanthera/NVMeFix-v{self.nvmefix_version}.zip")
|
||||
@property
|
||||
def sidecarfixup_path(self): return self.payload_kexts_path / Path(f"Acidanthera/SidecarFixup-v{self.sidecarfixup_version}.zip")
|
||||
@property
|
||||
def debugenhancer_path(self): return self.payload_kexts_path / Path(f"Acidanthera/DebugEnhancer-v{self.debugenhancer_version}.zip")
|
||||
@property
|
||||
def innie_path(self): return self.payload_kexts_path / Path(f"Misc/Innie-v{self.innie_version}.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")
|
||||
@property
|
||||
def fw_family_path(self): return self.payload_kexts_path / Path(f"FireWire/IOFireWireFamily-v{self.fw_kext}.zip")
|
||||
@property
|
||||
def fw_sbp2_path(self): return self.payload_kexts_path / Path(f"FireWire/IOFireWireSBP2-v{self.fw_kext}.zip")
|
||||
@property
|
||||
def fw_bus_path(self): return self.payload_kexts_path / Path(f"FireWire/IOFireWireSerialBusProtocolTransport-v{self.fw_kext}.zip")
|
||||
|
||||
# Build Location
|
||||
@property
|
||||
@@ -251,6 +302,8 @@ class Constants:
|
||||
@property
|
||||
def payload_apple_frameworks_path_accel(self): return self.payload_apple_frameworks_path / Path("Graphics-Acceleration")
|
||||
@property
|
||||
def payload_apple_frameworks_path_accel_ts2(self): return self.payload_apple_frameworks_path / Path("Graphics-Acceleration-TS2")
|
||||
@property
|
||||
def payload_apple_lauchd_path(self): return self.payload_apple_root_path / Path("LaunchDaemons")
|
||||
@property
|
||||
def payload_apple_lauchd_path_accel(self): return self.payload_apple_lauchd_path / Path("Graphics-Acceleration")
|
||||
@@ -259,28 +312,36 @@ class Constants:
|
||||
@property
|
||||
def payload_apple_private_frameworks_path_accel(self): return self.payload_apple_private_frameworks_path / Path("Graphics-Acceleration")
|
||||
@property
|
||||
def payload_apple_private_frameworks_path_accel_ts2(self): return self.payload_apple_private_frameworks_path / Path("Graphics-Acceleration-TS2")
|
||||
@property
|
||||
def payload_apple_private_frameworks_path_brightness(self): return self.payload_apple_private_frameworks_path / Path("Brightness-Control")
|
||||
|
||||
# Apple Extensions
|
||||
@property
|
||||
def applehda_path(self): return self.payload_apple_kexts_path / Path("Audio/AppleHDA.kext")
|
||||
def audio_path(self): return self.payload_apple_kexts_path / Path("Audio")
|
||||
|
||||
# GPU Kexts and Bundles
|
||||
|
||||
@property
|
||||
def legacy_graphics(self): return self.payload_apple_kexts_path / Path("Graphics-Acceleration")
|
||||
@property
|
||||
def legacy_graphics_ts2(self): return self.payload_apple_kexts_path / Path("Graphics-Acceleration-TS2")
|
||||
@property
|
||||
def legacy_nvidia_path(self): return self.legacy_graphics / Path("Nvidia-Tesla-Fermi")
|
||||
@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")
|
||||
@property
|
||||
def legacy_amd_path_ts2(self): return self.legacy_graphics / Path("ATI-TS2")
|
||||
@property
|
||||
def legacy_intel_gen1_path(self): return self.legacy_graphics / Path("Intel-Gen5-Ironlake")
|
||||
@property
|
||||
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
|
||||
def legacy_general_path(self): return self.legacy_graphics / Path("General-Patches")
|
||||
|
||||
@property
|
||||
def legacy_brightness(self): return self.payload_apple_kexts_path / Path("Brightness-Control")
|
||||
@@ -306,20 +367,37 @@ class Constants:
|
||||
def skylight_path(self): return self.payload_apple_private_frameworks_path_accel / Path("SkyLight.framework")
|
||||
|
||||
csr_values = {
|
||||
"CSR_ALLOW_UNTRUSTED_KEXTS ": False, # 0x1 - 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_KERNEL_DEBUGGER ": False, # 0x8 - 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_NVRAM ": False, # 0x40 - 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_UNAPPROVED_KEXTS ": False, # 0x200 - Introduced in High Sierra
|
||||
"CSR_ALLOW_EXECUTABLE_POLICY_OVERRIDE": False, # 0x400 - Introduced in Mojave
|
||||
"CSR_ALLOW_UNAUTHENTICATED_ROOT ": False, # 0x800 - Introduced in Big Sur
|
||||
"CSR_ALLOW_UNTRUSTED_KEXTS": False, # 0x1 - Allows Unsigned Kexts - Introduced in El Capitan # noqa: E241
|
||||
"CSR_ALLOW_UNRESTRICTED_FS": False, # 0x2 - File System Access - Introduced in El Capitan # noqa: E241
|
||||
"CSR_ALLOW_TASK_FOR_PID": False, # 0x4 - Unrestricted Debugging - Introduced in El Capitan # noqa: E241
|
||||
"CSR_ALLOW_KERNEL_DEBUGGER": False, # 0x8 - Allow Kernel Debugger - Introduced in El Capitan # noqa: E241
|
||||
"CSR_ALLOW_APPLE_INTERNAL": False, # 0x10 - Set AppleInternal Features - Introduced in El Capitan # noqa: E241
|
||||
"CSR_ALLOW_UNRESTRICTED_DTRACE": False, # 0x20 - Unrestricted DTrace usage - Introduced in El Capitan # noqa: E241
|
||||
"CSR_ALLOW_UNRESTRICTED_NVRAM": False, # 0x40 - Unrestricted NVRAM write - Introduced in El Capitan # noqa: E241
|
||||
"CSR_ALLOW_DEVICE_CONFIGURATION": False, # 0x80 - Allow Device Configuration(?) - Introduced in El Capitan # noqa: E241
|
||||
"CSR_ALLOW_ANY_RECOVERY_OS": False, # 0x100 - Disable BaseSystem Verification - Introduced in Sierra # noqa: E241
|
||||
"CSR_ALLOW_UNAPPROVED_KEXTS": False, # 0x200 - Allow Unapproved Kexts - Introduced in High Sierra # noqa: E241
|
||||
"CSR_ALLOW_EXECUTABLE_POLICY_OVERRIDE": False, # 0x400 - Override Executable Policy - Introduced in Mojave # noqa: E241
|
||||
"CSR_ALLOW_UNAUTHENTICATED_ROOT": False, # 0x800 - Allow Root Volume Mounting - Introduced in Big Sur # noqa: E241
|
||||
}
|
||||
|
||||
root_patch_sip_mojave = [
|
||||
# Variables required to root patch in Mojave and Catalina
|
||||
"CSR_ALLOW_UNTRUSTED_KEXTS",
|
||||
"CSR_ALLOW_UNRESTRICTED_FS",
|
||||
"CSR_ALLOW_UNAPPROVED_KEXTS",
|
||||
"CSR_ALLOW_EXECUTABLE_POLICY_OVERRIDE",
|
||||
]
|
||||
|
||||
root_patch_sip_big_sur = [
|
||||
# Variables required to root patch in Big Sur and Monterey
|
||||
"CSR_ALLOW_UNTRUSTED_KEXTS",
|
||||
"CSR_ALLOW_UNRESTRICTED_FS",
|
||||
"CSR_ALLOW_UNAPPROVED_KEXTS",
|
||||
"CSR_ALLOW_EXECUTABLE_POLICY_OVERRIDE",
|
||||
"CSR_ALLOW_UNAUTHENTICATED_ROOT",
|
||||
]
|
||||
|
||||
sbm_values = [
|
||||
"j137",
|
||||
"j680",
|
||||
@@ -338,3 +416,129 @@ class Constants:
|
||||
"j185",
|
||||
"j185f",
|
||||
]
|
||||
|
||||
board_id = {
|
||||
"MacBook1,1": "Mac-F4208CC8",
|
||||
"MacBook2,1": "Mac-F4208CA9",
|
||||
"MacBook3,1": "Mac-F22788C8",
|
||||
"MacBook4,1": "Mac-F22788A9",
|
||||
"MacBook5,1": "Mac-F42D89C8",
|
||||
"MacBook5,2": "Mac-F22788AA",
|
||||
"MacBook6,1": "Mac-F22C8AC8",
|
||||
"MacBook7,1": "Mac-F22C89C8",
|
||||
"MacBook8,1": "Mac-BE0E8AC46FE800CC",
|
||||
"MacBook9,1": "Mac-9AE82516C7C6B903",
|
||||
"MacBook10,1": "Mac-EE2EBD4B90B839A8",
|
||||
"MacBookAir1,1": "Mac-F42C8CC8",
|
||||
"MacBookAir2,1": "Mac-F42D88C8",
|
||||
"MacBookAir3,1": "Mac-942452F5819B1C1B",
|
||||
"MacBookAir3,2": "Mac-942C5DF58193131B",
|
||||
"MacBookAir4,1": "Mac-C08A6BB70A942AC2",
|
||||
"MacBookAir4,2": "Mac-742912EFDBEE19B3",
|
||||
"MacBookAir5,1": "Mac-66F35F19FE2A0D05",
|
||||
"MacBookAir5,2": "Mac-2E6FAB96566FE58C",
|
||||
"MacBookAir6,1": "Mac-35C1E88140C3E6CF",
|
||||
"MacBookAir6,2": "Mac-7DF21CB3ED6977E5",
|
||||
"MacBookAir7,1": "Mac-9F18E312C5C2BF0B",
|
||||
"MacBookAir7,2": "Mac-937CB26E2E02BB01",
|
||||
"MacBookAir8,1": "Mac-827FAC58A8FDFA22",
|
||||
"MacBookAir8,1": "Mac-226CB3C6A851A671",
|
||||
"MacBookAir9,1": "Mac-0CFF9C7C2B63DF8D",
|
||||
"MacBookPro1,1": "Mac-F425BEC8",
|
||||
"MacBookPro1,2": "Mac-F42DBEC8",
|
||||
"MacBookPro2,1": "Mac-F42189C8",
|
||||
"MacBookPro2,2": "Mac-F42187C8",
|
||||
"MacBookPro3,1": "Mac-F4238BC8",
|
||||
"MacBookPro4,1": "Mac-F42C89C8",
|
||||
"MacBookPro5,1": "Mac-F42D86C8",
|
||||
"MacBookPro5,2": "Mac-F2268EC8",
|
||||
"MacBookPro5,3": "Mac-F22587C8",
|
||||
"MacBookPro5,4": "Mac-F22587A1",
|
||||
"MacBookPro5,5": "Mac-F2268AC8",
|
||||
"MacBookPro6,1": "Mac-F22589C8",
|
||||
"MacBookPro6,2": "Mac-F22586C8",
|
||||
"MacBookPro7,1": "Mac-F222BEC8",
|
||||
"MacBookPro8,1": "Mac-94245B3640C91C81",
|
||||
"MacBookPro8,2": "Mac-94245A3940C91C80",
|
||||
"MacBookPro8,3": "Mac-942459F5819B171B",
|
||||
"MacBookPro9,1": "Mac-4B7AC7E43945597E",
|
||||
"MacBookPro9,2": "Mac-6F01561E16C75D06",
|
||||
"MacBookPro10,1": "Mac-C3EC7CD22292981F",
|
||||
"MacBookPro10,2": "Mac-AFD8A9D944EA4843",
|
||||
"MacBookPro11,1": "Mac-189A3D4F975D5FFC",
|
||||
"MacBookPro11,2": "Mac-3CBD00234E554E41",
|
||||
"MacBookPro11,3": "Mac-2BD1B31983FE1663",
|
||||
"MacBookPro11,4": "Mac-06F11FD93F0323C5",
|
||||
"MacBookPro11,5": "Mac-06F11F11946D27C5",
|
||||
"MacBookPro12,1": "Mac-E43C1C25D4880AD6",
|
||||
"MacBookPro13,1": "Mac-473D31EABEB93F9B",
|
||||
"MacBookPro13,2": "Mac-66E35819EE2D0D05",
|
||||
"MacBookPro13,3": "Mac-A5C67F76ED83108C",
|
||||
"MacBookPro14,1": "Mac-B4831CEBD52A0C4C",
|
||||
"MacBookPro14,2": "Mac-CAD6701F7CEA0921",
|
||||
"MacBookPro14,3": "Mac-551B86E5744E2388",
|
||||
"MacBookPro15,1": "Mac-937A206F2EE63C01",
|
||||
"MacBookPro15,2": "Mac-827FB448E656EC26",
|
||||
"MacBookPro15,3": "Mac-1E7E29AD0135F9BC",
|
||||
"MacBookPro15,4": "Mac-53FDB3D8DB8CA971",
|
||||
"MacBookPro16,1": "Mac-E1008331FDC96864",
|
||||
"MacBookPro16,2": "Mac-5F9802EFE386AA28",
|
||||
"MacBookPro16,3": "Mac-E7203C0F68AA0004",
|
||||
"MacBookPro16,4": "Mac-A61BADE1FDAD7B05",
|
||||
"Macmini1,1": "Mac-F4208EC8",
|
||||
"Macmini2,1": "Mac-F4208EAA",
|
||||
"Macmini3,1": "Mac-F22C86C8",
|
||||
"Macmini4,1": "Mac-F2208EC8",
|
||||
"Macmini5,1": "Mac-8ED6AF5B48C039E1",
|
||||
"Macmini5,2": "Mac-4BC72D62AD45599E",
|
||||
"Macmini5,3": "Mac-7BA5B2794B2CDB12",
|
||||
"Macmini6,1": "Mac-031AEE4D24BFF0B1",
|
||||
"Macmini6,2": "Mac-F65AE981FFA204ED",
|
||||
"Macmini7,1": "Mac-35C5E08120C7EEAF",
|
||||
"Macmini8,1": "Mac-7BA5B2DFE22DDD8C",
|
||||
"iMac4,1": "Mac-F42786C8",
|
||||
"iMac4,2": "Mac-F4218EC8",
|
||||
"iMac5,1": "Mac-F4228EC8",
|
||||
"iMac5,2": "Mac-F4218EC8",
|
||||
"iMac6,1": "Mac-F4218FC8",
|
||||
"iMac7,1": "Mac-F42386C8",
|
||||
"iMac8,1": "Mac-F227BEC8",
|
||||
"iMac9,1": "Mac-F2218FA9",
|
||||
"iMac10,1": "Mac-F221DCC8",
|
||||
"iMac10,1": "Mac-F2268CC8",
|
||||
"iMac11,1": "Mac-F2268DAE",
|
||||
"iMac11,2": "Mac-F2238AC8",
|
||||
"iMac11,3": "Mac-F2238BAE",
|
||||
"iMac12,1": "Mac-942B5BF58194151B",
|
||||
"iMac12,2": "Mac-942B59F58194171B",
|
||||
"iMac13,1": "Mac-00BE6ED71E35EB86",
|
||||
"iMac13,1": "Mac-00BE6ED71E35EB86",
|
||||
"iMac13,2": "Mac-FC02E91DDD3FA6A4",
|
||||
"iMac13,3": "Mac-7DF2A3B5E5D671ED",
|
||||
"iMac14,1": "Mac-031B6874CF7F642A",
|
||||
"iMac14,2": "Mac-27ADBB7B4CEE8E61",
|
||||
"iMac14,3": "Mac-77EB7D7DAF985301",
|
||||
"iMac14,4": "Mac-81E3E92DD6088272",
|
||||
"iMac15,1": "Mac-42FD25EABCABB274",
|
||||
"iMac16,1": "Mac-A369DDC4E67F1C45",
|
||||
"iMac16,2": "Mac-FFE5EF870D7BA81A",
|
||||
"iMac17,1": "Mac-DB15BD556843C820",
|
||||
"iMac18,1": "Mac-4B682C642B45593E",
|
||||
"iMac18,2": "Mac-77F17D7DA9285301",
|
||||
"iMac18,3": "Mac-BE088AF8C5EB4FA2",
|
||||
"iMac19,1": "Mac-AA95B1DDAB278B95",
|
||||
"iMac19,2": "Mac-63001698E7A34814",
|
||||
"iMac20,1": "Mac-CFF7D910A743CAAF",
|
||||
"iMac20,2": "Mac-AF89B6D9451A490B",
|
||||
"iMacPro1,1": "Mac-7BA5B2D9E42DDD94",
|
||||
"MacPro1,1": "Mac-F4208DC8",
|
||||
"MacPro2,1": "Mac-F4208DA9",
|
||||
"MacPro3,1": "Mac-F42C88C8",
|
||||
"MacPro4,1": "Mac-F221BEC8",
|
||||
"MacPro5,1": "Mac-F221BEC8",
|
||||
"MacPro6,1": "Mac-F60DEB81FF30ACF6",
|
||||
"MacPro7,1": "Mac-27AD2F918AE68F61",
|
||||
"Xserve1,1": "Mac-F4208AC8",
|
||||
"Xserve2,1": "Mac-F42289C8",
|
||||
"Xserve3,1": "Mac-F223BEC8",
|
||||
}
|
||||
|
||||
116
Resources/DeviceProbe.py
Normal file
@@ -0,0 +1,116 @@
|
||||
# Probe devices, return device entries
|
||||
# Copyright (C) 2021 Mykola Grymalyuk
|
||||
from __future__ import print_function
|
||||
|
||||
import binascii
|
||||
import plistlib
|
||||
import subprocess
|
||||
|
||||
from Resources import Constants, Utilities
|
||||
|
||||
class pci_probe:
|
||||
def __init__(self):
|
||||
self.constants = Constants.Constants()
|
||||
|
||||
# Converts given device IDs to DeviceProperty pathing, requires ACPI pathing as DeviceProperties shouldn't be used otherwise
|
||||
def deviceproperty_probe(self, vendor_id, device_id, acpi_path):
|
||||
gfxutil_output: str = subprocess.run([self.constants.gfxutil_path] + f"-v".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.decode()
|
||||
try:
|
||||
if acpi_path == "":
|
||||
acpi_path = "No ACPI Path Given"
|
||||
raise IndexError
|
||||
device_path = [line.strip().split("= ", 1)[1] for line in gfxutil_output.split("\n") if f'{vendor_id}:{device_id}'.lower() in line.strip() and acpi_path in line.strip()][0]
|
||||
return device_path
|
||||
except IndexError:
|
||||
print(f"- No DevicePath found for {vendor_id}:{device_id} ({acpi_path})")
|
||||
return ""
|
||||
|
||||
# Returns the device path of parent controller
|
||||
def device_property_parent(self, device_path):
|
||||
device_path_parent = "/".join(device_path.split("/")[:-1])
|
||||
return device_path_parent
|
||||
|
||||
def acpi_strip(self, acpi_path_full):
|
||||
# Strip IOACPIPlane:/_SB, remove 000's, convert ffff into 0 and finally make everything upper case
|
||||
# IOReg | gfxutil
|
||||
# IOACPIPlane:/_SB/PC00@0/DMI0@0 -> /PC00@0/DMI0@0
|
||||
# IOACPIPlane:/_SB/PC03@0/BR3A@0/SL09@ffff -> /PC03@0/BR3A@0/SL09@0
|
||||
# IOACPIPlane:/_SB/PC03@0/M2U0@150000 -> /PC03@0/M2U0@15
|
||||
# IOACPIPlane:/_SB/PC01@0/CHA6@100000 -> /PC01@0/CHA6@10
|
||||
# IOACPIPlane:/_SB/PC00@0/RP09@1d0000/PXSX@0 -> /PC00@0/RP09@1D/PXSX@0
|
||||
# IOACPIPlane:/_SB/PCI0@0/P0P2@10000 -> /PCI0@0/P0P2@1
|
||||
acpi_path = acpi_path_full.replace("IOACPIPlane:/_SB", "")
|
||||
acpi_path = acpi_path.replace("0000", "")
|
||||
for entry in ["1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"]:
|
||||
acpi_path = acpi_path.replace(f"000{entry}", f",{entry}")
|
||||
acpi_path = acpi_path.replace("ffff", "0")
|
||||
acpi_path = acpi_path.upper()
|
||||
return acpi_path
|
||||
|
||||
# Note gpu_probe should only be used on IGPU and GFX0 entries
|
||||
def gpu_probe(self, gpu_type):
|
||||
try:
|
||||
devices = plistlib.loads(subprocess.run(f"ioreg -r -n {gpu_type} -a".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
||||
vendor_id = Utilities.hexswap(binascii.hexlify(devices[0]["vendor-id"]).decode()[:4])
|
||||
device_id = Utilities.hexswap(binascii.hexlify(devices[0]["device-id"]).decode()[:4])
|
||||
try:
|
||||
acpi_path = devices[0]["acpi-path"]
|
||||
acpi_path = self.acpi_strip(acpi_path)
|
||||
return vendor_id, device_id, acpi_path
|
||||
except KeyError:
|
||||
print(f"- No ACPI entry found for {gpu_type}")
|
||||
return vendor_id, device_id, ""
|
||||
except ValueError:
|
||||
print(f"- No IOService entry found for {gpu_type} (V)")
|
||||
return "", "", ""
|
||||
except IndexError:
|
||||
print(f"- No IOService entry found for {gpu_type} (I)")
|
||||
return "", "", ""
|
||||
|
||||
def wifi_probe(self):
|
||||
devices = plistlib.loads(subprocess.run("ioreg -c IOPCIDevice -r -d2 -a".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
||||
try:
|
||||
devices = [i for i in devices if i["class-code"] == binascii.unhexlify(self.constants.classcode_wifi)]
|
||||
vendor_id = Utilities.hexswap(binascii.hexlify(devices[0]["vendor-id"]).decode()[:4])
|
||||
device_id = Utilities.hexswap(binascii.hexlify(devices[0]["device-id"]).decode()[:4])
|
||||
ioname = devices[0]["IOName"]
|
||||
try:
|
||||
acpi_path = devices[0]["acpi-path"]
|
||||
acpi_path = self.acpi_strip(acpi_path)
|
||||
return vendor_id, device_id, ioname, acpi_path
|
||||
except KeyError:
|
||||
print(f"- No ACPI entry found for {vendor_id}:{device_id}")
|
||||
return vendor_id, device_id, ioname, ""
|
||||
except ValueError:
|
||||
print(f"- No IOService entry found for Wireless Card (V)")
|
||||
return "", "", "", ""
|
||||
except IndexError:
|
||||
print(f"- No IOService entry found for Wireless Card (I)")
|
||||
return "", "", "", ""
|
||||
|
||||
def cpu_feature(self, instruction):
|
||||
cpu_features = subprocess.run("sysctl machdep.cpu.features".split(), stdout=subprocess.PIPE).stdout.decode().partition(": ")[2].strip().split(" ")
|
||||
if instruction in cpu_features:
|
||||
print(f"- Found {instruction} support")
|
||||
return True
|
||||
else:
|
||||
print(f"- Failed to find {instruction} support")
|
||||
return False
|
||||
|
||||
class smbios_probe:
|
||||
def model_detect(self, custom):
|
||||
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") and custom is False:
|
||||
current_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]
|
||||
else:
|
||||
current_model = plistlib.loads(subprocess.run("system_profiler -detailLevel mini -xml SPHardwareDataType".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.strip())[0]["_items"][0]["machine_model"]
|
||||
return current_model
|
||||
|
||||
def board_detect(self, custom):
|
||||
opencore_model: str = subprocess.run("nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:oem-board".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.decode()
|
||||
if not opencore_model.startswith("nvram: Error getting variable") and custom is False:
|
||||
current_model = [line.strip().split(":oem-board ", 1)[1] for line in opencore_model.split("\n") if line.strip().startswith("4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:")][0]
|
||||
else:
|
||||
current_model = plistlib.loads(subprocess.run(f"ioreg -p IODeviceTree -r -n / -a".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
||||
current_model = current_model[0]["board-id"]
|
||||
return current_model
|
||||
@@ -67,11 +67,81 @@ SupportedSMBIOS11 = [
|
||||
# Xserve
|
||||
"Xserve2,1",
|
||||
"Xserve3,1",
|
||||
"Dortania1,1"
|
||||
"Dortania1,1",
|
||||
]
|
||||
|
||||
SupportedSMBIOS12 = [
|
||||
|
||||
# MacBook
|
||||
"MacBook4,1",
|
||||
"MacBook5,1",
|
||||
"MacBook5,2",
|
||||
"MacBook6,1",
|
||||
"MacBook7,1",
|
||||
"MacBook8,1",
|
||||
# MacBook Air
|
||||
"MacBookAir2,1",
|
||||
"MacBookAir3,1",
|
||||
"MacBookAir3,2",
|
||||
"MacBookAir4,1",
|
||||
"MacBookAir4,2",
|
||||
"MacBookAir5,1",
|
||||
"MacBookAir5,2",
|
||||
"MacBookAir6,1",
|
||||
"MacBookAir6,2",
|
||||
# MacBook Pro
|
||||
"MacBookPro4,1",
|
||||
"MacBookPro5,1",
|
||||
"MacBookPro5,2",
|
||||
"MacBookPro5,3",
|
||||
"MacBookPro5,4",
|
||||
"MacBookPro5,5",
|
||||
"MacBookPro6,1",
|
||||
"MacBookPro6,2",
|
||||
"MacBookPro7,1",
|
||||
"MacBookPro8,1",
|
||||
"MacBookPro8,2",
|
||||
"MacBookPro8,3",
|
||||
"MacBookPro9,1",
|
||||
"MacBookPro9,2",
|
||||
"MacBookPro10,1",
|
||||
"MacBookPro10,2",
|
||||
"MacBookPro11,1",
|
||||
"MacBookPro11,2",
|
||||
"MacBookPro11,3",
|
||||
# Mac Mini
|
||||
"Macmini3,1",
|
||||
"Macmini4,1",
|
||||
"Macmini5,1",
|
||||
"Macmini5,2",
|
||||
"Macmini5,3",
|
||||
"Macmini6,1",
|
||||
"Macmini6,2",
|
||||
# iMac
|
||||
"iMac7,1",
|
||||
"iMac8,1",
|
||||
"iMac9,1",
|
||||
"iMac10,1",
|
||||
"iMac11,1",
|
||||
"iMac11,2",
|
||||
"iMac11,3",
|
||||
"iMac12,1",
|
||||
"iMac12,2",
|
||||
"iMac13,1",
|
||||
"iMac13,2",
|
||||
"iMac13,3",
|
||||
"iMac14,1",
|
||||
"iMac14,2",
|
||||
"iMac14,3",
|
||||
"iMac14,4",
|
||||
"iMac15,1",
|
||||
# Mac Pro
|
||||
"MacPro3,1",
|
||||
"MacPro4,1",
|
||||
"MacPro5,1",
|
||||
# Xserve
|
||||
"Xserve2,1",
|
||||
"Xserve3,1",
|
||||
"Dortania1,1",
|
||||
]
|
||||
|
||||
# CPU patches
|
||||
@@ -152,6 +222,8 @@ EthernetMarvell = [
|
||||
"Dortania1,1"
|
||||
]
|
||||
EthernetBroadcom = [
|
||||
"MacBookAir4,1",
|
||||
"MacBookAir4,2",
|
||||
"MacBookPro6,1",
|
||||
"MacBookPro6,2",
|
||||
"MacBookPro7,1",
|
||||
@@ -268,8 +340,8 @@ LegacyAudio = [
|
||||
"Macmini5,1",
|
||||
"Macmini5,2",
|
||||
"Macmini5,3",
|
||||
"iMac7,1",
|
||||
"iMac8,1",
|
||||
#"iMac7,1",
|
||||
#"iMac8,1",
|
||||
"iMac9,1",
|
||||
"iMac10,1",
|
||||
"iMac11,1",
|
||||
@@ -303,6 +375,19 @@ nvidiaHDEF = [
|
||||
|
||||
# GPU
|
||||
|
||||
ModernGPU = [
|
||||
"MacBookAir5,1", # Intel 4000
|
||||
"MacBookAir5,2", # Intel 4000
|
||||
"MacBookPro9,1", # Intel 4000 + Nvidia 650M
|
||||
"MacBookPro9,2", # Intel 4000
|
||||
"MacBookPro10,1", # Intel 4000 + Nvidia 650M
|
||||
"MacBookPro10,2", # Intel 4000
|
||||
"Macmini6,1", # Intel 4000
|
||||
"Macmini6,2", # Intel 4000
|
||||
"iMac13,1", # Intel 4000
|
||||
"iMac13,3", # Intel 4000
|
||||
]
|
||||
|
||||
LegacyGPU = [
|
||||
"MacBook4,1", # GMA X3100
|
||||
"MacBook5,1", # Nvidia 9000
|
||||
@@ -442,21 +527,71 @@ NVMePatch = [
|
||||
"Dortania1,1"
|
||||
]
|
||||
|
||||
SidecarPatch = [
|
||||
XhciSupport = [
|
||||
"MacBookAir5,1",
|
||||
"MacBookAir5,2",
|
||||
"MacBookAir6,1",
|
||||
"MacBookAir6,2",
|
||||
"MacBookAir7,1",
|
||||
"MacBookAir7,2",
|
||||
"MacBookPro9,1",
|
||||
"MacBookPro9,2",
|
||||
"MacBookPro10,1",
|
||||
"MacBookPro10,2",
|
||||
"MacBookPro11,1",
|
||||
"MacBookPro11,2",
|
||||
"MacBookPro11,3",
|
||||
"MacBookPro11,4",
|
||||
"MacBookPro11,5",
|
||||
"MacBookPro12,1",
|
||||
"Macmini6,1",
|
||||
"Macmini6,2",
|
||||
"Macmini7,1",
|
||||
"iMac13,1",
|
||||
"iMac13,2",
|
||||
"iMac13,3",
|
||||
"iMac14,1",
|
||||
"iMac14,2",
|
||||
"iMac14,3",
|
||||
"iMac15,1",
|
||||
"iMac16,1",
|
||||
"iMac16,2",
|
||||
"MacPro6,1",
|
||||
"Dortania1,1"
|
||||
]
|
||||
|
||||
SidecarPatch = [
|
||||
"MacBook8,1",
|
||||
"MacBookAir5,1",
|
||||
"MacBookAir5,2",
|
||||
"MacBookAir6,1",
|
||||
"MacBookAir6,2",
|
||||
"MacBookAir7,1",
|
||||
"MacBookAir7,2",
|
||||
"MacBookPro9,1",
|
||||
"MacBookPro9,2",
|
||||
"MacBookPro10,1",
|
||||
"MacBookPro10,2",
|
||||
"MacBookPro11,1",
|
||||
"MacBookPro11,2",
|
||||
"MacBookPro11,3",
|
||||
"MacBookPro11,4",
|
||||
"MacBookPro11,5",
|
||||
"MacBookPro12,1",
|
||||
"Macmini6,1",
|
||||
"Macmini6,2",
|
||||
"Macmini7,1",
|
||||
"iMac13,1",
|
||||
"iMac13,2",
|
||||
"iMac13,3",
|
||||
"iMac14,1",
|
||||
"iMac14,2",
|
||||
"iMac14,3",
|
||||
"iMac15,1",
|
||||
"iMac16,1",
|
||||
"iMac16,2",
|
||||
"MacPro5,1",
|
||||
"MacPro6,1",
|
||||
"Dortania1,1"
|
||||
]
|
||||
|
||||
@@ -480,6 +615,7 @@ DualGPUPatch = [
|
||||
|
||||
DualGPUPatchRetina = [
|
||||
"MacBookPro10,1",
|
||||
"MacBookPro11,3",
|
||||
]
|
||||
|
||||
IntelNvidiaDRM = [
|
||||
@@ -490,13 +626,23 @@ IntelNvidiaDRM = [
|
||||
]
|
||||
|
||||
HiDPIpicker = [
|
||||
"MacBook8,1",
|
||||
"MacBookPro10,1",
|
||||
"MacBookPro10,2",
|
||||
"MacBookPro11,1",
|
||||
"MacBookPro11,2",
|
||||
"MacBookPro11,3",
|
||||
"iMac15,1",
|
||||
"Dortania1,1"
|
||||
]
|
||||
|
||||
IDEPatch = [
|
||||
"MacBook4,1",
|
||||
"MacBookPro4,1",
|
||||
"iMac7,1",
|
||||
"iMac8,1",
|
||||
"MacPro3,1",
|
||||
"Xserve2,1",
|
||||
"Dortania1,1"
|
||||
]
|
||||
|
||||
@@ -505,9 +651,10 @@ MacBookAir61 = [
|
||||
"MacBookAir3,1",
|
||||
"MacBookAir4,1",
|
||||
"MacBookAir5,1",
|
||||
"MacBookAir6,1",
|
||||
]
|
||||
|
||||
# MacBook and 13" Air
|
||||
# Classic MacBook and 13" Air
|
||||
MacBookAir62 = [
|
||||
"MacBook4,1",
|
||||
"MacBook5,1",
|
||||
@@ -517,7 +664,13 @@ MacBookAir62 = [
|
||||
"MacBookAir2,1",
|
||||
"MacBookAir3,2",
|
||||
"MacBookAir4,2",
|
||||
"MacBookAir5,2"
|
||||
"MacBookAir5,2",
|
||||
"MacBookAir6,2",
|
||||
]
|
||||
|
||||
# Retina MacBook
|
||||
MacBook81 = [
|
||||
"MacBook8,1",
|
||||
]
|
||||
|
||||
# MacBook Pro 13"
|
||||
@@ -528,9 +681,16 @@ MacBookPro111 = [
|
||||
"MacBookPro8,1",
|
||||
"MacBookPro9,2",
|
||||
"MacBookPro10,2",
|
||||
"MacBookPro11,1",
|
||||
]
|
||||
|
||||
# MacBook Pro 15" and 17"
|
||||
# MacBook Pro 15" (iGPU)
|
||||
|
||||
MacBookPro112 = [
|
||||
"MacBookPro11,2"
|
||||
]
|
||||
|
||||
# MacBook Pro 15" and 17" (dGPU)
|
||||
|
||||
MacBookPro113 = [
|
||||
"MacBookPro4,1",
|
||||
@@ -544,6 +704,7 @@ MacBookPro113 = [
|
||||
"MacBookPro8,3",
|
||||
"MacBookPro9,1",
|
||||
"MacBookPro10,1",
|
||||
"MacBookPro11,3",
|
||||
]
|
||||
|
||||
# Mac Mini
|
||||
@@ -574,12 +735,14 @@ iMacPro11 = [
|
||||
iMac151 = [
|
||||
"iMac13,2",
|
||||
"iMac14,2",
|
||||
"iMac14,3"
|
||||
"iMac14,3",
|
||||
"iMac15,1",
|
||||
]
|
||||
# iMac = Intel iGPU
|
||||
iMac144 = [
|
||||
"iMac13,1",
|
||||
"iMac14,1"
|
||||
"iMac14,1",
|
||||
"iMac14,4"
|
||||
]
|
||||
|
||||
# Mac Pro and Xserve
|
||||
@@ -675,6 +838,10 @@ ControllerTypes = [
|
||||
"-XHC1",
|
||||
"-OHC1",
|
||||
"-OHC2",
|
||||
"-UHC1",
|
||||
"-UHC2",
|
||||
"-UHC3",
|
||||
"-UHC4",
|
||||
"-InternalHub-EHC1",
|
||||
"-InternalHub-EHC1-InternalHub",
|
||||
"-InternalHub-EHC2",
|
||||
@@ -692,90 +859,49 @@ upgradableMXMGPUs = [
|
||||
"Dortania1,1"
|
||||
]
|
||||
|
||||
# Reference: https://forums.macrumors.com/threads/2011-imac-graphics-card-upgrade.1596614/
|
||||
NVIDIAMXMGPUs = [
|
||||
"12B9", # Quadro K610M
|
||||
"0FF6", # Quadro K1100M
|
||||
"11FC", # Quadro K2100M
|
||||
"0FFC", # Quadro K1000M
|
||||
"0FFB", # Quadro K2000M
|
||||
"11B6", # Quadro K3100M
|
||||
"11B7", # Quadro K4100M
|
||||
"11BC", # Quadro K5000M
|
||||
"11B8", # Quadro K5100M
|
||||
"11E1", # GTX 765M
|
||||
"11E2", # GTX 765M
|
||||
"11E0", # GTX 770M
|
||||
"119E", # GTX 780M Mac Edition
|
||||
"119E", # GTX 780M
|
||||
"119F", # GTX 880M
|
||||
"119A", # GTX 860M
|
||||
"1392", # GTX 860M
|
||||
"1199", # GTX 870M
|
||||
"11A9", # GTX 870M
|
||||
]
|
||||
|
||||
AMDMXMGPUs = [
|
||||
"67EF", # AMD RX 460
|
||||
"67E8", # AMD WX 4130/WX 4150
|
||||
"67E0", # AMD WX 4170
|
||||
"67C0", # AMD WX 7100
|
||||
"67DF", # AMD RX 480
|
||||
]
|
||||
|
||||
BCM4360Wifi = [
|
||||
"43BA", # BCM43602
|
||||
"43A3", # BCM4350
|
||||
"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 = [
|
||||
"MacBookAir5,1",
|
||||
"MacBookAir5,2",
|
||||
"MacBookPro9,1",
|
||||
"MacBookPro9,2",
|
||||
"MacBookPro10,1",
|
||||
"MacBookPro10,2",
|
||||
"Macmini6,1",
|
||||
"Macmini6,2",
|
||||
"iMac13,1",
|
||||
"iMac13,2",
|
||||
"iMac13,3",
|
||||
"iMac14,1",
|
||||
"iMac14,2",
|
||||
"iMac14,3",
|
||||
NightShift = [
|
||||
"MacBook4,1",
|
||||
"MacBook5,1",
|
||||
"MacBook5,2",
|
||||
"MacBook6,1",
|
||||
"MacBook7,1",
|
||||
"MacBookAir2,1",
|
||||
"MacBookAir3,1",
|
||||
"MacBookAir3,2",
|
||||
"MacBookAir4,1",
|
||||
"MacBookAir4,2",
|
||||
"MacBookPro4,1",
|
||||
"MacBookPro5,1",
|
||||
"MacBookPro5,2",
|
||||
"MacBookPro5,3",
|
||||
"MacBookPro5,4",
|
||||
"MacBookPro5,5",
|
||||
"MacBookPro6,1",
|
||||
"MacBookPro6,2",
|
||||
"MacBookPro7,1",
|
||||
"MacBookPro8,1",
|
||||
"MacBookPro8,2",
|
||||
"MacBookPro8,3",
|
||||
"Macmini3,1",
|
||||
"Macmini4,1",
|
||||
"Macmini5,1",
|
||||
"Macmini5,2",
|
||||
"Macmini5,3",
|
||||
"iMac7,1",
|
||||
"iMac8,1",
|
||||
"iMac9,1",
|
||||
"iMac10,1",
|
||||
"iMac11,1",
|
||||
"iMac11,2",
|
||||
"iMac11,3",
|
||||
"iMac12,1",
|
||||
"iMac12,2",
|
||||
"MacPro3,1",
|
||||
"MacPro4,1",
|
||||
"MacPro5,1",
|
||||
"Xserve2,1",
|
||||
"Xserve3,1",
|
||||
"Dortania1,1"
|
||||
]
|
||||
|
||||
UGAtoGOP = [
|
||||
@@ -787,17 +913,51 @@ UGAtoGOP = [
|
||||
"Xserve2,1",
|
||||
]
|
||||
|
||||
NoSATAPatch = [
|
||||
"MacBookAir5,1",
|
||||
"MacBookAir5,2",
|
||||
"MacBookPro10,1",
|
||||
"MacBookPro10,2",
|
||||
"iMac13,1",
|
||||
"iMac13,2",
|
||||
"iMac13,3",
|
||||
"iMac14,1",
|
||||
"iMac14,2",
|
||||
"iMac14,3",
|
||||
SATAPatch = [
|
||||
"MacBook4,1",
|
||||
"MacBook5,1",
|
||||
"MacBook5,2",
|
||||
"MacBook6,1",
|
||||
"MacBook7,1",
|
||||
"MacBookAir2,1",
|
||||
"MacBookAir3,1",
|
||||
"MacBookAir3,2",
|
||||
"MacBookAir4,1",
|
||||
"MacBookAir4,2",
|
||||
"MacBookPro4,1",
|
||||
"MacBookPro5,1",
|
||||
"MacBookPro5,2",
|
||||
"MacBookPro5,3",
|
||||
"MacBookPro5,4",
|
||||
"MacBookPro5,5",
|
||||
"MacBookPro6,1",
|
||||
"MacBookPro6,2",
|
||||
"MacBookPro7,1",
|
||||
"MacBookPro8,1",
|
||||
"MacBookPro8,2",
|
||||
"MacBookPro8,3",
|
||||
"MacBookPro9,1",
|
||||
"MacBookPro9,2",
|
||||
"Macmini3,1",
|
||||
"Macmini4,1",
|
||||
"Macmini5,1",
|
||||
"Macmini5,2",
|
||||
"Macmini5,3",
|
||||
"iMac7,1",
|
||||
"iMac8,1",
|
||||
"iMac9,1",
|
||||
"iMac10,1",
|
||||
"iMac11,1",
|
||||
"iMac11,2",
|
||||
"iMac11,3",
|
||||
"iMac12,1",
|
||||
"iMac12,2",
|
||||
"MacPro3,1",
|
||||
"MacPro4,1",
|
||||
"MacPro5,1",
|
||||
"Xserve2,1",
|
||||
"Xserve3,1",
|
||||
"Dortania1,1"
|
||||
]
|
||||
|
||||
NoAPFSsupport = [
|
||||
@@ -879,9 +1039,82 @@ SandyIGPU = [
|
||||
"MacBookPro8,2",
|
||||
"MacBookPro8,3",
|
||||
"Macmini5,1",
|
||||
"Macmini5,2",
|
||||
"Macmini5,3",
|
||||
]
|
||||
|
||||
windows_audio = [
|
||||
"MacBookAir4,1",
|
||||
"MacBookAir4,2",
|
||||
"MacBookAir5,1",
|
||||
"MacBookAir5,2",
|
||||
"MacBookPro8,1",
|
||||
"MacBookPro8,2",
|
||||
"MacBookPro8,3",
|
||||
"MacBookPro9,1",
|
||||
"MacBookPro9,2",
|
||||
"MacBookPro10,1",
|
||||
"MacBookPro10,2",
|
||||
"Macmini5,1",
|
||||
"Macmini5,2",
|
||||
"Macmini5,3",
|
||||
"Macmini6,1",
|
||||
"Macmini6,2",
|
||||
"iMac12,1",
|
||||
"iMac12,2",
|
||||
"iMac13,1",
|
||||
"iMac13,2",
|
||||
"iMac13,3",
|
||||
]
|
||||
|
||||
NoAGPMSupport = [
|
||||
"MacBook4,1",
|
||||
"MacBookPro4,1",
|
||||
"iMac7,1",
|
||||
"iMac8,1",
|
||||
"MacPro3,1",
|
||||
"Xserve2,1"
|
||||
]
|
||||
|
||||
AGDPSupport = [
|
||||
"MacBookPro9,1",
|
||||
"MacBookPro10,1",
|
||||
"iMac13,1",
|
||||
"iMac13,2",
|
||||
"iMac14,1",
|
||||
"iMac14,2",
|
||||
"iMac14,3",
|
||||
"iMac14,4",
|
||||
"iMac15,1",
|
||||
# TODO: Uncomment when dropped from macOS
|
||||
#"iMac17,1",
|
||||
#"iMac18,2",
|
||||
#"iMac18,3",
|
||||
#"iMac19,1",
|
||||
#"iMac19,2",
|
||||
#"iMac20,1",
|
||||
#"iMac20,2",
|
||||
#"iMacPro1,1",
|
||||
#"MacPro6,1",
|
||||
]
|
||||
|
||||
AMCSupport = [
|
||||
"MacBookPro8,2",
|
||||
"MacBookPro8,3",
|
||||
#"MacBookPro9,1",
|
||||
#"MacBookPro10,1"
|
||||
]
|
||||
|
||||
NoFireWireSupport = [
|
||||
"MacBook5,1",
|
||||
"MacBook6,1",
|
||||
"MacBook7,1",
|
||||
"MacBookAir1,1",
|
||||
"MacBookAir2,1",
|
||||
"MacBookAir3,1",
|
||||
"MacBookAir3,2",
|
||||
]
|
||||
|
||||
DeleteNvidiaAccel11 = [
|
||||
"AMDRadeonX4000.kext",
|
||||
"AMDRadeonX4000HWServices.kext",
|
||||
@@ -917,11 +1150,11 @@ DeleteAMDAccel11 = [
|
||||
"AMDRadeonX6000.kext",
|
||||
"AMDRadeonX6000Framebuffer.kext",
|
||||
"AMDRadeonX6000HWServices.kext",
|
||||
"AMD7000Controller.kext", # AMDSupport Dependancy
|
||||
"AMD8000Controller.kext", # AMDSupport Dependancy
|
||||
"AMD9000Controller.kext", # AMDSupport Dependancy
|
||||
"AMD9500Controller.kext", # AMDSupport Dependancy
|
||||
"AMD10000Controller.kext", # AMDSupport Dependancy
|
||||
"AMD7000Controller.kext", # AMDSupport Dependency
|
||||
"AMD8000Controller.kext", # AMDSupport Dependency
|
||||
"AMD9000Controller.kext", # AMDSupport Dependency
|
||||
"AMD9500Controller.kext", # AMDSupport Dependency
|
||||
"AMD10000Controller.kext", # AMDSupport Dependency
|
||||
"AppleIntelBDWGraphics.kext",
|
||||
"AppleIntelBDWGraphicsFramebuffer.kext",
|
||||
"AppleIntelCFLGraphicsFramebuffer.kext",
|
||||
@@ -937,10 +1170,13 @@ DeleteAMDAccel11 = [
|
||||
"AppleIntelFramebufferCapri.kext",
|
||||
"AppleParavirtGPU.kext",
|
||||
"GeForce.kext",
|
||||
"IOAcceleratorFamily2.kext",
|
||||
"IOGPUFamily.kext",
|
||||
]
|
||||
|
||||
DeleteAMDAccel11TS2 = [
|
||||
"AppleCameraInterface.kext",
|
||||
]
|
||||
|
||||
AddNvidiaAccel11 = [
|
||||
"GeForceGA.bundle",
|
||||
"GeForceTesla.kext",
|
||||
@@ -951,17 +1187,26 @@ AddNvidiaAccel11 = [
|
||||
"IOSurface.kext",
|
||||
]
|
||||
|
||||
AddNvidiaBrightness = [
|
||||
"GeForceGA.bundle",
|
||||
"GeForceTesla.kext",
|
||||
"GeForceTeslaGLDriver.bundle",
|
||||
"GeForceTeslaVADriver.bundle",
|
||||
"NVDANV50HalTesla.kext",
|
||||
"NVDAResmanTesla.kext",
|
||||
]
|
||||
|
||||
AddNvidiaKeplerAccel11 = [
|
||||
"GeForce.kext",
|
||||
"GeForceAIRPlugin.bundle",
|
||||
"GeForceGLDriver.bundle",
|
||||
"GeForceMTLDriver.bundle",
|
||||
"GeForceVADriver.bundle",
|
||||
"NVDAGF100Hal.kext",
|
||||
"NVDAGK100Hal.kext",
|
||||
"NVDAResman.kext",
|
||||
"NVDAStartup.kext",
|
||||
"NVSMU.kext",
|
||||
"GeForce.kext",
|
||||
"GeForceAIRPlugin.bundle",
|
||||
"GeForceGLDriver.bundle",
|
||||
"GeForceMTLDriver.bundle",
|
||||
"GeForceVADriver.bundle",
|
||||
"NVDAGF100Hal.kext",
|
||||
"NVDAGK100Hal.kext",
|
||||
"NVDAResman.kext",
|
||||
"NVDAStartup.kext",
|
||||
"NVSMU.kext",
|
||||
]
|
||||
|
||||
AddAMDAccel11 = [
|
||||
@@ -977,25 +1222,39 @@ AddAMDAccel11 = [
|
||||
"AMDLegacySupport.kext",
|
||||
"AMDRadeonVADriver.bundle",
|
||||
"AMDRadeonVADriver2.bundle",
|
||||
# "AMDRadeonX3000.kext", # __ZN22IOAccelDisplayMachine210gMetaClassE link issues
|
||||
# "AMDRadeonX3000GLDriver.bundle",
|
||||
"AMDRadeonX3000.kext",
|
||||
"AMDRadeonX3000GLDriver.bundle",
|
||||
"AMDShared.bundle",
|
||||
"AMDSupport.kext",
|
||||
"ATIRadeonX2000.kext",
|
||||
"ATIRadeonX2000GA.plugin",
|
||||
"ATIRadeonX2000GLDriver.bundle",
|
||||
"ATIRadeonX2000VADriver.bundle",
|
||||
"IOSurface.kext",
|
||||
]
|
||||
|
||||
AddAMDTeraScale2Brightness11 = [
|
||||
AddAMDBrightness = [
|
||||
"AMD2400Controller.kext",
|
||||
"AMD2600Controller.kext",
|
||||
"AMD3800Controller.kext",
|
||||
"AMD4600Controller.kext",
|
||||
"AMD4800Controller.kext",
|
||||
"AMD5000Controller.kext",
|
||||
"AMD6000Controller.kext",
|
||||
"AMDLegacyFramebuffer.kext",
|
||||
"AMDLegacySupport.kext",
|
||||
"AMDRadeonX3000.kext",
|
||||
"AMDRadeonX3000GLDriver.bundle",
|
||||
"IOAcceleratorFamily2.kext"
|
||||
"AMDRadeonVADriver.bundle",
|
||||
"AMDRadeonVADriver2.bundle",
|
||||
#"AMDRadeonX3000.kext",
|
||||
#"AMDRadeonX3000GLDriver.bundle",
|
||||
"AMDShared.bundle",
|
||||
"ATIRadeonX2000.kext",
|
||||
"ATIRadeonX2000GA.plugin",
|
||||
"ATIRadeonX2000GLDriver.bundle",
|
||||
"ATIRadeonX2000VADriver.bundle",
|
||||
]
|
||||
|
||||
AddAMDAccel11TS2 = [
|
||||
"IOSurface.kext",
|
||||
]
|
||||
|
||||
AddIntelGen1Accel = [
|
||||
@@ -1004,7 +1263,6 @@ AddIntelGen1Accel = [
|
||||
"AppleIntelHDGraphicsGA.plugin",
|
||||
"AppleIntelHDGraphicsGLDriver.bundle",
|
||||
"AppleIntelHDGraphicsVADriver.bundle",
|
||||
"IOSurface.kext",
|
||||
]
|
||||
|
||||
AddIntelGen2Accel = [
|
||||
@@ -1014,15 +1272,27 @@ AddIntelGen2Accel = [
|
||||
"AppleIntelHD3000GraphicsVADriver.bundle",
|
||||
"AppleIntelSNBGraphicsFB.kext",
|
||||
"AppleIntelSNBVA.bundle",
|
||||
"IOSurface.kext",
|
||||
]
|
||||
|
||||
AddIntelGen3Accel = [
|
||||
"AppleIntelFramebufferCapri.kext",
|
||||
"AppleIntelHD4000Graphics.kext",
|
||||
"AppleIntelHD4000GraphicsGLDriver.bundle",
|
||||
"AppleIntelHD4000GraphicsMTLDriver.bundle",
|
||||
"AppleIntelHD4000GraphicsVADriver.bundle",
|
||||
"AppleIntelFramebufferCapri.kext",
|
||||
"AppleIntelHD4000Graphics.kext",
|
||||
"AppleIntelHD4000GraphicsGLDriver.bundle",
|
||||
"AppleIntelHD4000GraphicsMTLDriver.bundle",
|
||||
"AppleIntelHD4000GraphicsVADriver.bundle",
|
||||
"AppleIntelIVBVA.bundle",
|
||||
"AppleIntelGraphicsShared.bundle",
|
||||
]
|
||||
|
||||
AddGeneralAccel = [
|
||||
# Below 5 from dosdude1, unknown whether they benifit
|
||||
#"AppleGraphicsControl.kext",
|
||||
#"AppleGraphicsPowerManagement.kext",
|
||||
#"AppleMCCSControl.kext",
|
||||
#"IOGraphicsFamily.kext",
|
||||
#"IONDRVSupport.kext",
|
||||
"IOAcceleratorFamily2.kext",
|
||||
"IOSurface.kext"
|
||||
]
|
||||
|
||||
DeleteBrightness = [
|
||||
@@ -1034,94 +1304,22 @@ AddBrightness = [
|
||||
"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",
|
||||
AddVolumeControl = [
|
||||
"AppleHDA.kext",
|
||||
"IOAudioFamily.kext",
|
||||
]
|
||||
|
||||
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",
|
||||
DeleteVolumeControl = [
|
||||
"AppleVirtIO.kext",
|
||||
"AppleVirtualGraphics.kext",
|
||||
"AppleVirtualPlatform.kext",
|
||||
"ApplePVPanic.kext",
|
||||
"AppleVirtIOStorage.kext",
|
||||
]
|
||||
|
||||
IronLakepciid = [
|
||||
"0044",
|
||||
"0046",
|
||||
RecoveryIgnore = [
|
||||
"Update",
|
||||
"VM",
|
||||
"Recovery",
|
||||
"Preboot"
|
||||
]
|
||||
|
||||
SandyBridgepiciid = [
|
||||
"0106",
|
||||
"0601",
|
||||
"0116",
|
||||
"0102",
|
||||
"0126",
|
||||
]
|
||||
|
||||
IvyBridgepciid = [
|
||||
"0152",
|
||||
"0156",
|
||||
"0162",
|
||||
"0166",
|
||||
]
|
||||
|
||||
|
||||
788
Resources/PCIIDArray.py
Normal file
@@ -0,0 +1,788 @@
|
||||
# Array of Device IDs for different devices
|
||||
class nvidia_ids:
|
||||
# Courteous of envytools as well as Macrumors:
|
||||
# https://envytools.readthedocs.io/en/latest/hw/pciid.html
|
||||
# https://forums.macrumors.com/threads/2011-imac-graphics-card-upgrade.1596614/
|
||||
tesla_ids = [
|
||||
# G80
|
||||
"0190", # G80 [GeForce 8800 GTS / 8800 GTX]
|
||||
"0191", # G80 [GeForce 8800 GTX]
|
||||
"0193", # G80 [GeForce 8800 GTS]
|
||||
"0194", # G80 [GeForce 8800 Ultra]
|
||||
"019E", # G80GL [Quadro FX 4600]
|
||||
"019D", # G80GL [Quadro FX 5600]
|
||||
# G84
|
||||
"0400", # G84 [8600 GTS]
|
||||
"0401", # G84 [8600 GT]
|
||||
"0402", # G84 [8600 GT]
|
||||
"0403", # G84 [8600 GS]
|
||||
"0404", # G84 [8400 GS]
|
||||
"0405", # G84 [9500M GS]
|
||||
"0406", # G84 [8300 GS]
|
||||
"0407", # G84 [8600M GT]
|
||||
"0408", # G84 [9650M GS]
|
||||
"0409", # G84 [8700M GT]
|
||||
"040A", # G84 [FX 370]
|
||||
"040B", # G84 [NVS 320M]
|
||||
"040C", # G84 [FX 570M]
|
||||
"040D", # G84 [FX 1600M]
|
||||
"040E", # G84 [FX 570]
|
||||
"040F", # G84 [FX 1700]
|
||||
# G86
|
||||
"0420", # G86 [8400 SE]
|
||||
"0421", # G86 [8500 GT]
|
||||
"0422", # G86 [8400 GS]
|
||||
"0423", # G86 [8300 GS]
|
||||
"0424", # G86 [8400 GS]
|
||||
"0425", # G86 [8600M GS]
|
||||
"0426", # G86 [8400M GT]
|
||||
"0427", # G86 [8400M GS]
|
||||
"0428", # G86 [8400M G]
|
||||
"0429", # G86 [NVS 140M]
|
||||
"042A", # G86 [NVS 130M]
|
||||
"042B", # G86 [NVS 135M]
|
||||
"042C", # G86 [9400 GT]
|
||||
"042D", # G86 [FX 360M]
|
||||
"042E", # G86 [9300M G]
|
||||
"042F", # G86 [NVS 290]
|
||||
# G92
|
||||
"0410", # G92 [GT 330]
|
||||
"0600", # G92 [8800 GTS 512]
|
||||
"0601", # G92 [9800 GT]
|
||||
"0602", # G92 [8800 GT]
|
||||
"0603", # G92 [GT 230]
|
||||
"0604", # G92 [9800 GX2]
|
||||
"0605", # G92 [9800 GT]
|
||||
"0606", # G92 [8800 GS]
|
||||
"0607", # G92 [GTS 240]
|
||||
"0608", # G92 [9800M GTX]
|
||||
"0609", # G92 [8800M GTS]
|
||||
"060A", # G92 [GTX 280M]
|
||||
"060B", # G92 [9800M GT]
|
||||
"060C", # G92 [8800M GTX]
|
||||
"060F", # G92 [GTX 285M]
|
||||
"0610", # G92 [9600 GSO]
|
||||
"0611", # G92 [8800 GT]
|
||||
"0612", # G92 [9800 GTX/9800 GTX+]
|
||||
"0613", # G92 [9800 GTX+]
|
||||
"0614", # G92 [9800 GT]
|
||||
"0615", # G92 [GTS 250]
|
||||
"0617", # G92 [9800M GTX]
|
||||
"0618", # G92 [GTX 260M]
|
||||
"0619", # G92 [FX 4700 X2]
|
||||
"061A", # G92 [FX 3700]
|
||||
"061B", # G92 [VX 200]
|
||||
"061C", # G92 [FX 3600M]
|
||||
"061D", # G92 [FX 2800M]
|
||||
"061E", # G92 [FX 3700M]
|
||||
"061F", # G92 [FX 3800M]
|
||||
# G94
|
||||
"0621", # G94 [GT 230]
|
||||
"0622", # G94 [9600 GT]
|
||||
"0623", # G94 [9600 GS]
|
||||
"0624", # G94 [9600 GT Green Edition]
|
||||
"0625", # G94 [9600 GSO 512]
|
||||
"0626", # G94 [GT 130]
|
||||
"0627", # G94 [GT 140]
|
||||
"0628", # G94 [9800M GTS]
|
||||
"062A", # G94 [9700M GTS]
|
||||
"062B", # G94 [9800M GS]
|
||||
"062C", # G94 [9800M GTS ]
|
||||
"062D", # G94 [9600 GT]
|
||||
"062E", # G94 [9600 GT]
|
||||
"062F", # G94 [9800 S]
|
||||
"0631", # G94 [GTS 160M]
|
||||
"0635", # G94 [9600 GSO]
|
||||
"0637", # G94 [9600 GT]
|
||||
"0638", # G94 [FX 1800]
|
||||
"063A", # G94 [FX 2700M]
|
||||
# G96
|
||||
"0640", # G96 [9500 GT]
|
||||
"0641", # G96 [9400 GT]
|
||||
"0643", # G96 [9500 GT]
|
||||
"0644", # G96 [9500 GS]
|
||||
"0645", # G96 [9500 GS]
|
||||
"0646", # G96 [GT 120]
|
||||
"0647", # G96 [9600M GT]
|
||||
"0648", # G96 [9600M GS]
|
||||
"0649", # G96 [9600M GT]
|
||||
"064A", # G96 [9700M GT]
|
||||
"064B", # G96 [9500M G]
|
||||
"064C", # G96 [9650M GT]
|
||||
"0651", # G96 [G 110M]
|
||||
"0652", # G96 [GT 130M]
|
||||
"0653", # G96 [GT 120M]
|
||||
"0654", # G96 [GT 220M]
|
||||
"0655", # G96 [GT 120]
|
||||
"0656", # G96 [GT 120 ]
|
||||
"0658", # G96 [FX 380]
|
||||
"0659", # G96 [FX 580]
|
||||
"065A", # G96 [FX 1700M]
|
||||
"065B", # G96 [9400 GT]
|
||||
"065C", # G96 [FX 770M]
|
||||
"065F", # G96 [G210]
|
||||
# G98
|
||||
"06E0", # G98 [9300 GE]
|
||||
"06E1", # G98 [9300 GS]
|
||||
"06E2", # G98 [8400]
|
||||
"06E3", # G98 [8400 SE]
|
||||
"06E4", # G98 [8400 GS]
|
||||
"06E5", # G98M [9300M GS]
|
||||
"06E6", # G98 [G100]
|
||||
"06E7", # G98 [9300 SE]
|
||||
"06E8", # G98 [9200M GS]
|
||||
"06E9", # G98 [9300M GS]
|
||||
"06EA", # G98 [NVS 150M]
|
||||
"06EB", # G98 [NVS 160M]
|
||||
"06EC", # G98 [G 105M]
|
||||
"06ED", # G98 [9600 GT / 9800 GT]
|
||||
"06EF", # G98 [G 103M]
|
||||
"06F1", # G98 [G105M]
|
||||
"06F8", # G98 [NVS 420]
|
||||
"06F9", # G98 [FX 370 LP]
|
||||
"06FA", # G98 [NVS 450]
|
||||
"06FB", # G98 [FX 370M]
|
||||
"06FD", # G98 [NVS 295]
|
||||
"06FF", # G98 [HICx16]
|
||||
# GT200
|
||||
"05E0", # GT200 [GTX 295]
|
||||
"05E1", # GT200 [GTX 280]
|
||||
"05E2", # GT200 [GTX 260]
|
||||
"05E3", # GT200 [GTX 285]
|
||||
"05E6", # GT200 [GTX 275]
|
||||
"05E7", # GT200 [C1060]
|
||||
"05E9", # GT200 [CX]
|
||||
"05EA", # GT200 [GTX 260]
|
||||
"05EB", # GT200 [GTX 295]
|
||||
"05ED", # GT200 [FX 5800]
|
||||
"05EE", # GT200 [FX 4800]
|
||||
"05EF", # GT200 [FX 3800]
|
||||
"05FD", # GT200GL [Quadro FX 5800]
|
||||
"05FE", # GT200GL [Quadro FX 4800]
|
||||
"05FF", # GT200GL [Quadro FX 3800]
|
||||
# MCP77 GPU
|
||||
"0840", # MCP77 GPU [8200M]
|
||||
"0844", # MCP77 GPU [9100M G]
|
||||
"0845", # MCP77 GPU [8200M G]
|
||||
"0846", # MCP77 GPU [9200]
|
||||
"0847", # MCP77 GPU [9100]
|
||||
"0848", # MCP77 GPU [8300]
|
||||
"0849", # MCP77 GPU [8200]
|
||||
"084A", # MCP77 GPU [730A]
|
||||
"084B", # MCP77 GPU [9200]
|
||||
"084C", # MCP77 GPU [980A/780A SLI]
|
||||
"084D", # MCP77 GPU [750A SLI]
|
||||
"084F", # MCP77 GPU [8100 / 720A]
|
||||
# MCP79 GPU
|
||||
"0860", # MCP79 GPU [9400]
|
||||
"0861", # MCP79 GPU [9400]
|
||||
"0862", # MCP79 GPU [9400M G]
|
||||
"0863", # MCP79 GPU [9400M]
|
||||
"0864", # MCP79 GPU [9300]
|
||||
"0865", # MCP79 GPU [ION]
|
||||
"0866", # MCP79 GPU [9400M G]
|
||||
"0867", # MCP79 GPU [9400]
|
||||
"0868", # MCP79 GPU [760i SLI]
|
||||
"0869", # MCP79 GPU [9400]
|
||||
"086A", # MCP79 GPU [9400]
|
||||
"086C", # MCP79 GPU [9300 / 730i]
|
||||
"086D", # MCP79 GPU [9200]
|
||||
"086E", # MCP79 GPU [9100M G]
|
||||
"086F", # MCP79 GPU [8200M G]
|
||||
"0870", # MCP79 GPU [9400M]
|
||||
"0871", # MCP79 GPU [9200]
|
||||
"0872", # MCP79 GPU [G102M]
|
||||
"0873", # MCP79 GPU [G102M]
|
||||
"0874", # MCP79 GPU [ION]
|
||||
"0876", # MCP79 GPU [ION]
|
||||
"087A", # MCP79 GPU [9400]
|
||||
"087D", # MCP79 GPU [ION]
|
||||
"087E", # MCP79 GPU [ION LE]
|
||||
"087F", # MCP79 GPU [ION LE]
|
||||
# GT215
|
||||
"0CA0", # GT215 [GT 330]
|
||||
"0CA2", # GT215 [GT 320]
|
||||
"0CA3", # GT215 [GT 240]
|
||||
"0CA4", # GT215 [GT 340]
|
||||
"0CA5", # GT215 [GT 220]
|
||||
"0CA7", # GT215 [GT 330]
|
||||
"0CA9", # GT215 [GTS 250M]
|
||||
"0CAC", # GT215 [GT 220]
|
||||
"0CAF", # GT215 [GT 335M]
|
||||
"0CB0", # GT215 [GTS 350M]
|
||||
"0CB1", # GT215 [GTS 360M]
|
||||
"0CBC", # GT215 [FX 1800M]
|
||||
# GT216
|
||||
"0A20", # GT216 [GT 220]
|
||||
"0A22", # GT216 [315]
|
||||
"0A23", # GT216 [210]
|
||||
"0A26", # GT216 [405]
|
||||
"0A27", # GT216 [405]
|
||||
"0A28", # GT216 [GT 230M]
|
||||
"0A29", # GT216 [GT 330M]
|
||||
"0A2A", # GT216 [GT 230M]
|
||||
"0A2B", # GT216 [GT 330M]
|
||||
"0A2C", # GT216 [NVS 5100M]
|
||||
"0A2D", # GT216 [GT 320M]
|
||||
"0A32", # GT216 [GT 415]
|
||||
"0A34", # GT216 [GT 240M]
|
||||
"0A35", # GT216 [GT 325M]
|
||||
"0A38", # GT216 [400]
|
||||
"0A3C", # GT216 [FX 880M]
|
||||
# GT218
|
||||
"0A60", # GT218 [G210]
|
||||
"0A62", # GT218 [205]
|
||||
"0A63", # GT218 [310]
|
||||
"0A64", # GT218 [ION]
|
||||
"0A65", # GT218 [210]
|
||||
"0A66", # GT218 [310]
|
||||
"0A67", # GT218 [315]
|
||||
"0A68", # GT218 [G105M]
|
||||
"0A69", # GT218 [G105M]
|
||||
"0A6A", # GT218 [NVS 2100M]
|
||||
"0A6C", # GT218 [NVS 3100M]
|
||||
"0A6E", # GT218 [305M]
|
||||
"0A6F", # GT218 [ION]
|
||||
"0A70", # GT218 [310M]
|
||||
"0A71", # GT218 [305M]
|
||||
"0A72", # GT218 [310M]
|
||||
"0A73", # GT218 [305M]
|
||||
"0A74", # GT218 [G210M]
|
||||
"0A75", # GT218 [310M]
|
||||
"0A76", # GT218 [ION]
|
||||
"0A78", # GT218 [FX 380 LP]
|
||||
"0A7A", # GT218 [315M]
|
||||
"0A7C", # GT218 [FX 380M]
|
||||
"10C0", # GT218 [9300 GS]
|
||||
"10C3", # GT218 [8400GS]
|
||||
"10C5", # GT218 [405]
|
||||
"10D8", # GT218 [NVS 300]
|
||||
# MCP89 GPU
|
||||
"08A0", # MCP89 GPU [320M]
|
||||
"08A2", # MCP89 GPU [320M]
|
||||
"08A3", # MCP89 GPU [320M]
|
||||
"08A4", # MCP89 GPU [320M]
|
||||
]
|
||||
|
||||
fermi_ids = [
|
||||
# GF100
|
||||
"06C0", # GF100 [GTX 480]
|
||||
"06C4", # GF100 [GTX 465]
|
||||
"06CA", # GF100 [GTX 480M]
|
||||
"06CB", # GF100 [GTX 480]
|
||||
"06CD", # GF100 [GTX 470]
|
||||
"06D1", # GF100 [C2050 / C2070]
|
||||
"06D2", # GF100 [M2070]
|
||||
"06D8", # GF100 [6000]
|
||||
"06D9", # GF100 [5000]
|
||||
"06DA", # GF100 [5000M]
|
||||
"06DC", # GF100 [6000]
|
||||
"06DD", # GF100 [4000]
|
||||
"06DE", # GF100 [T20]
|
||||
"06DF", # GF100 [M2070-Q]
|
||||
# GF104
|
||||
"0E22", # GF104 [GTX 460]
|
||||
"0E23", # GF104 [GTX 460 SE]
|
||||
"0E24", # GF104 [GTX 460 OEM]
|
||||
"0E30", # GF104 [GTX 470M]
|
||||
"0E31", # GF104 [GTX 485M]
|
||||
"0E3A", # GF104 [3000M]
|
||||
"0E3B", # GF104 [4000M]
|
||||
# GF114
|
||||
"1200", # GF114 [GTX 560 Ti]
|
||||
"1201", # GF114 [GTX 560]
|
||||
"1202", # GF114 [GTX 560 Ti OEM]
|
||||
"1203", # GF114 [GTX 460 SE v2]
|
||||
"1205", # GF114 [GTX 460 v2]
|
||||
"1206", # GF114 [GTX 555]
|
||||
"1207", # GF114 [GT 645 OEM]
|
||||
"1208", # GF114 [GTX 560 SE]
|
||||
"1210", # GF114 [GTX 570M]
|
||||
"1211", # GF114 [GTX 580M]
|
||||
"1212", # GF114 [GTX 675M]
|
||||
"1213", # GF114 [GTX 670M]
|
||||
# GF106
|
||||
"0DC0", # GF106 [GT 440]
|
||||
"0DC4", # GF106 [GTS 450]
|
||||
"0DC5", # GF106 [GTS 450]
|
||||
"0DC6", # GF106 [GTS 450]
|
||||
"0DCD", # GF106 [GT 555M]
|
||||
"0DCE", # GF106 [GT 555M]
|
||||
"0DD1", # GF106 [GTX 460M]
|
||||
"0DD2", # GF106 [GT 445M]
|
||||
"0DD3", # GF106 [GT 435M]
|
||||
"0DD6", # GF106 [GT 550M]
|
||||
"0DD8", # GF106 [2000]
|
||||
"0DDA", # GF106 [2000M]
|
||||
# GF116
|
||||
"1241", # GF116 [GT 545 OEM]
|
||||
"1243", # GF116 [GT 545]
|
||||
"1244", # GF116 [GTX 550 Ti]
|
||||
"1245", # GF116 [GTS 450 Rev. 2]
|
||||
"1246", # GF116 [GT 550M]
|
||||
"1247", # GF116 [GT 635M]
|
||||
"1248", # GF116 [GT 555M]
|
||||
"1249", # GF116 [GTS 450 Rev. 3]
|
||||
"124B", # GF116 [GT 640 OEM]
|
||||
"124D", # GF116 [GT 555M]
|
||||
"1251", # GF116 [GTX 560M]
|
||||
# GF108
|
||||
"0DE0", # GF108 [GT 440]
|
||||
"0DE1", # GF108 [GT 430]
|
||||
"0DE2", # GF108 [GT 420]
|
||||
"0DE3", # GF108 [GT 635M]
|
||||
"0DE4", # GF108 [GT 520]
|
||||
"0DE5", # GF108 [GT 530]
|
||||
"0DE8", # GF108 [GT 620M]
|
||||
"0DE9", # GF108 [GT 630M]
|
||||
"0DEA", # GF108 [610M]
|
||||
"0DEB", # GF108 [GT 555M]
|
||||
"0DEC", # GF108 [GT 525M]
|
||||
"0DED", # GF108 [GT 520M]
|
||||
"0DEE", # GF108 [GT 415M]
|
||||
"0DEF", # GF108 [NVS 5400M]
|
||||
"0DF0", # GF108 [GT 425M]
|
||||
"0DF1", # GF108 [GT 420M]
|
||||
"0DF2", # GF108 [GT 435M]
|
||||
"0DF3", # GF108 [GT 420M]
|
||||
"0DF4", # GF108 [GT 540M]
|
||||
"0DF5", # GF108 [GT 525M]
|
||||
"0DF6", # GF108 [GT 550M]
|
||||
"0DF7", # GF108 [GT 520M]
|
||||
"0DF8", # GF108 [600]
|
||||
"0DF9", # GF108 [500M]
|
||||
"0DFA", # GF108 [1000M]
|
||||
"0DFC", # GF108 [NVS 5200M]
|
||||
"0F00", # GF108 [GT 630]
|
||||
"0F01", # GF108 [GT 620]
|
||||
"0F02", # GF108 [GT 730]
|
||||
# GF110
|
||||
"1080", # GF110 [GTX 580]
|
||||
"1081", # GF110 [GTX 570]
|
||||
"1082", # GF110 [GTX 560 Ti]
|
||||
"1084", # GF110 [GTX 560]
|
||||
"1086", # GF110 [GTX 570]
|
||||
"1087", # GF110 [GTX 560 Ti]
|
||||
"1088", # GF110 [GTX 590]
|
||||
"1089", # GF110 [GTX 580]
|
||||
"108B", # GF110 [GTX 580]
|
||||
"1091", # GF110 [M2090]
|
||||
"1096", # GF110GL [Tesla C2050 / C2075]
|
||||
"109A", # GF110 [5010M]
|
||||
"109B", # GF110 [7000]
|
||||
# GF119
|
||||
"1040", # GF119 [GT 520]
|
||||
"1042", # GF119 [510]
|
||||
"1048", # GF119 [605]
|
||||
"1049", # GF119 [GT 620]
|
||||
"104A", # GF119 [GT 610]
|
||||
"104B", # GF119 [GT 625 OEM]
|
||||
"104C", # GF119 [GT 705]
|
||||
"1050", # GF119 [GT 520M]
|
||||
"1051", # GF119 [GT 520MX]
|
||||
"1052", # GF119 [GT 520M]
|
||||
"1054", # GF119 [410M]
|
||||
"1055", # GF119 [410M]
|
||||
"1056", # GF119 [NVS 4200M]
|
||||
"1057", # GF119 [NVS 4200M]
|
||||
"1058", # GF119 [610M]
|
||||
"1059", # GF119 [610M]
|
||||
"105A", # GF119 [610M]
|
||||
"105B", # GF119M [705M]
|
||||
"107C", # GF119 [NVS 315]
|
||||
"107D", # GF119 [NVS 310]
|
||||
# GF117
|
||||
"1140", # GF117 [GT 620M]
|
||||
]
|
||||
|
||||
kepler_ids = [
|
||||
# GK104
|
||||
"1180", # GK104 [GTX 680]
|
||||
"1183", # GK104 [GTX 660 Ti]
|
||||
"1184", # GK104 [GTX 770]
|
||||
"1185", # GK104 [GTX 660]
|
||||
"1186", # GK104 [GTX 660 Ti]
|
||||
"1187", # GK104 [GTX 760]
|
||||
"1188", # GK104 [GTX 690]
|
||||
"1189", # GK104 [GTX 670]
|
||||
"118E", # GK104 [GTX 760 OEM]
|
||||
"118F", # GK104GL [Tesla K10]
|
||||
"1198", # GTX 880M
|
||||
"1199", # GK104 [GTX 870M]
|
||||
"119A", # GTX 860M
|
||||
"119D", # GK104M [GTX 775M Mac Edition]
|
||||
"119E", # GTX 780M
|
||||
"119F", # GK104 [GTX 780M]
|
||||
"11A0", # GK104 [GTX 680M]
|
||||
"11A1", # GK104 [GTX 670MX]
|
||||
"11A2", # GK104 [GTX 675MX]
|
||||
"11A3", # GK104 [GTX 680MX]
|
||||
"11A7", # GK104 [GTX 675MX]
|
||||
"11A9", # GTX 870M
|
||||
"11B4", # GK104GL [Quadro K4200]
|
||||
"11B6", # Quadro K3100M
|
||||
"11B7", # Quadro K4100M
|
||||
"11B8", # Quadro K5100M
|
||||
"11BA", # GK104 [K5000]
|
||||
"11BC", # GK104 [K5000M]
|
||||
"11BD", # GK104 [K4000M]
|
||||
"11BE", # GK104 [K3000M]
|
||||
"11BF", # GK104 [GRID K2]
|
||||
# GK106
|
||||
"11C0", # GK106 [GTX 660]
|
||||
"11C2", # GK106 [GTX 650 Ti BOOST]
|
||||
"11C6", # GK106 [GTX 650 Ti]
|
||||
"11E0", # GK106 [GTX 770M]
|
||||
"11E1", # GTX 765M
|
||||
"11E2", # GTX 765M
|
||||
"11FA", # GK106 [K4000]
|
||||
"11FC", # Quadro K2100M
|
||||
# GK107
|
||||
"0FC0", # GK107 [GT 640]
|
||||
"0FC1", # GK107 [GT 640]
|
||||
"0FC2", # GK107 [GT 630]
|
||||
"0FC6", # GK107 [GTX 650]
|
||||
"0FC8", # GK107 [GT 740]
|
||||
"0FCD", # GK107M [GT 755M]
|
||||
"0FD1", # GK107 [GT 650M]
|
||||
"0FD2", # GK107 [GT 640M]
|
||||
"0FD3", # GK107 [GT 640M LE]
|
||||
"0FD4", # GK107 [GTX 660M]
|
||||
"0FD5", # GK107 [GT 650M]
|
||||
"0FD8", # GK107 [GT 640M]
|
||||
"0FD9", # GK107 [GT 645M]
|
||||
"0FDF", # GK107M [ GT 740M]
|
||||
"0FE0", # GK107 [GTX 660M]
|
||||
"0FE1", # GK107M [GT 730M]
|
||||
"0FE3", # GK107M [GT 745M]
|
||||
"0FE4", # GK107M [GT 750M]
|
||||
"0FE9", # GK107 [GT 750M Mac Edition]
|
||||
"0FEA", # GK107M [GT 755M Mac Edition]
|
||||
"0FEE", # GK107M [810M]
|
||||
"0FF2", # GK107GL [GRID K1]
|
||||
"0FF3", # GK107GL [Quadro K420]
|
||||
"0FF6", # Quadro K1100M
|
||||
"0FF9", # GK107 [K2000D]
|
||||
"0FFA", # GK107 [K600]
|
||||
"0FFB", # GK107 [K2000M]
|
||||
"0FFC", # GK107 [K1000M]
|
||||
"0FFD", # GK107 [NVS 510]
|
||||
"0FFE", # GK107 [K2000]
|
||||
"0FFF", # GK107 [410]
|
||||
# GK110
|
||||
"1001", # GK110B [GTX TITAN Z]
|
||||
"1003", # GK110 [GTX Titan LE]
|
||||
"1004", # GK110 [GTX 780]
|
||||
"1005", # GK110 [GTX Titan]
|
||||
"1007", # GK110 [GTX 780 Rev. 2]
|
||||
"100A", # GK110B [GTX 780 Ti]
|
||||
"100C", # GK110B [GTX TITAN Black]
|
||||
"101F", # GK110 [TEslA K20]
|
||||
"1020", # GK110 [TEslA K2]
|
||||
"1021", # GK110 [TEslA K2m]
|
||||
"1022", # GK110 [TEslA K20C]
|
||||
"1023", # GK110BGL [Tesla K40m]
|
||||
"1024", # GK180GL [Tesla K40c]
|
||||
"1026", # GK110 [TEslA K20s]
|
||||
"1028", # GK110 [TEslA K20m]
|
||||
"102D", # GK210GL [Tesla K80]
|
||||
"103C", # GK110GL [Quadro K5200]
|
||||
# GK208
|
||||
"1280", # GK208 [GT 635]
|
||||
"1281", # GK208 [GT 710]
|
||||
"1282", # GK208 [GT 640 REv. 2]
|
||||
"1284", # GK208 [GT 630 REv. 2]
|
||||
"1286", # GK208 [GT 720]
|
||||
"1287", # GK208B [GT 730]
|
||||
"1288", # GK208B [GT 720]
|
||||
"1289", # GK208 [GT 710]
|
||||
"128B", # GK208B [GT 710]
|
||||
"1290", # GK208 [GT 730M]
|
||||
"1291", # GK208 [GT 735M]
|
||||
"1292", # GK208 [GT 740M]
|
||||
"1293", # GK208 [GT 730M]
|
||||
"1294", # GK208 [GT 740M]
|
||||
"1295", # GK208 [710M]
|
||||
"1296", # GK208M [825M]
|
||||
"1298", # GK208M [GT 720M]
|
||||
"1299", # GK208BM [920M]
|
||||
"129A", # GK208BM [910M]
|
||||
"12B9", # GK208 [K610M]
|
||||
"12BA", # GK208 [K510M]
|
||||
]
|
||||
|
||||
class amd_ids:
|
||||
legacy_gcn_ids = [
|
||||
# AMDRadeonX4000
|
||||
# AMDBonaireGraphicsAccelerator
|
||||
"6640",
|
||||
"6641",
|
||||
"6646",
|
||||
"6647",
|
||||
"6650",
|
||||
"6651",
|
||||
"665C",
|
||||
"665D",
|
||||
# AMDFijiGraphicsAccelerator
|
||||
"7300",
|
||||
"730F",
|
||||
# AMDHawaiiGraphicsAccelerator
|
||||
"67B0",
|
||||
# AMDPitcairnGraphicsAccelerator
|
||||
"6800",
|
||||
"6801",
|
||||
"6806",
|
||||
"6808",
|
||||
"6810",
|
||||
"6818",
|
||||
"6819",
|
||||
# AMDTahitiGraphicsAccelerator
|
||||
"6790",
|
||||
"6798",
|
||||
"679A",
|
||||
"679E",
|
||||
"6780",
|
||||
# AMDTongaGraphicsAccelerator
|
||||
"6920",
|
||||
"6921",
|
||||
"6930",
|
||||
"6938",
|
||||
"6939",
|
||||
# AMDVerdeGraphicsAccelerator
|
||||
"6820",
|
||||
"6821",
|
||||
"6823",
|
||||
"6825",
|
||||
"6827",
|
||||
"682B",
|
||||
"682D",
|
||||
"682F",
|
||||
"6835",
|
||||
"6839",
|
||||
"683B",
|
||||
"683D",
|
||||
"683F",
|
||||
]
|
||||
|
||||
polaris_ids = [
|
||||
# AMDRadeonX4000
|
||||
# AMDBaffinGraphicsAccelerator
|
||||
"67E0",
|
||||
"67E3",
|
||||
"67E8",
|
||||
"67EB",
|
||||
"67EF",
|
||||
"67FF",
|
||||
"67E1",
|
||||
"67E7",
|
||||
"67E9",
|
||||
# AMDEllesmereGraphicsAccelerator
|
||||
"67C0",
|
||||
"67C1",
|
||||
"67C2",
|
||||
"67C4",
|
||||
"67C7",
|
||||
"67DF",
|
||||
"67D0",
|
||||
"67C8",
|
||||
"67C9",
|
||||
"67CA",
|
||||
"67CC",
|
||||
"67CF",
|
||||
]
|
||||
|
||||
vega_ids = [
|
||||
# AMDRadeonX5000
|
||||
# AMDVega10GraphicsAccelerator
|
||||
"6860",
|
||||
"6861",
|
||||
"6862",
|
||||
"6863",
|
||||
"6864",
|
||||
"6867",
|
||||
"6868",
|
||||
"6869",
|
||||
"686A",
|
||||
"686B",
|
||||
"686C",
|
||||
"686D",
|
||||
"686E",
|
||||
"686F",
|
||||
"687F",
|
||||
# AMDVega12GraphicsAccelerator
|
||||
"69A0",
|
||||
"69A1",
|
||||
"69A2",
|
||||
"69A3",
|
||||
"69AF",
|
||||
# AMDVega20GraphicsAccelerator
|
||||
"66A0",
|
||||
"66A1",
|
||||
"66A2",
|
||||
"66A3",
|
||||
"66A7",
|
||||
"66AF",
|
||||
]
|
||||
|
||||
navi_ids = [
|
||||
# AMDRadeonX6000
|
||||
# AMDNavi10GraphicsAccelerator
|
||||
"7310",
|
||||
"7312",
|
||||
"7318",
|
||||
"7319",
|
||||
"731A",
|
||||
"731B",
|
||||
"731F",
|
||||
# AMDNavi12GraphicsAccelerator
|
||||
"7360",
|
||||
# AMDNavi14GraphicsAccelerator
|
||||
"7340",
|
||||
"7341",
|
||||
"7343",
|
||||
"7347",
|
||||
"734F",
|
||||
# AMDNavi21GraphicsAccelerator
|
||||
"73A2",
|
||||
"73AB",
|
||||
"73BF",
|
||||
]
|
||||
terascale_1_ids = [
|
||||
"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",
|
||||
]
|
||||
|
||||
terascale_2_ids = [
|
||||
"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",
|
||||
]
|
||||
|
||||
class intel_ids:
|
||||
iron_ids = [
|
||||
# AppleIntelHDGraphics IDs
|
||||
"0044",
|
||||
"0046",
|
||||
]
|
||||
|
||||
sandy_ids = [
|
||||
# AppleIntelHD3000Graphics IDs
|
||||
# AppleIntelSNBGraphicsFB IDs
|
||||
"0106",
|
||||
"0601",
|
||||
"0116",
|
||||
"0102",
|
||||
"0126",
|
||||
]
|
||||
|
||||
ivy_ids = [
|
||||
# AppleIntelHD4000Graphics IDs
|
||||
# AppleIntelFramebufferCapri IDs
|
||||
"0152",
|
||||
"0156",
|
||||
"0162",
|
||||
"0166",
|
||||
]
|
||||
|
||||
class broadcom_ids:
|
||||
BCM4360Wifi = [
|
||||
# AirPortBrcmNIC IDs
|
||||
"43BA", # BCM43602
|
||||
"43A3", # BCM4350
|
||||
"43A0", # BCM4360
|
||||
]
|
||||
|
||||
BCM94331Wifi = [
|
||||
# AirPortBrcm4360 IDs (removed duplicates for 4360 class cards)
|
||||
"4331", # BCM94331
|
||||
"4353", # BCM943224
|
||||
]
|
||||
|
||||
BCM94322Wifi = [
|
||||
# AirPortBrcm4331 IDs (removed duplicates for 4331 class cards)
|
||||
"432B", # BCM94322
|
||||
]
|
||||
|
||||
BCM94328Wifi = [
|
||||
# AppleAirPortBrcm43224 IDs
|
||||
"4311", # BCM4311 - never used by Apple
|
||||
"4312", # BCM4311 - never used by Apple
|
||||
"4313", # BCM4311 - never used by Apple
|
||||
"4318", # BCM4318 - never used by Apple
|
||||
"4319", # BCM4318 - never used by Apple
|
||||
"431A", # Unknown - never used by Apple
|
||||
"4320", # BCM4306 - never used by Apple
|
||||
"4324", # BCM4309 - never used by Apple
|
||||
"4325", # BCM4306 - never used by Apple
|
||||
"4328", # BCM4328
|
||||
"432C", # BCM4322 - never used by Apple
|
||||
"432D", # BCM4322 - never used by Apple
|
||||
]
|
||||
|
||||
class atheros_ids:
|
||||
AtherosWifi = [
|
||||
# AirPortAtheros40 IDs
|
||||
"0030", # AR93xx
|
||||
"002A", # AR928X
|
||||
"001C", # AR242x / AR542x
|
||||
"0023", # AR5416 - never used by Apple
|
||||
"0024", # AR5418
|
||||
]
|
||||
@@ -4,96 +4,137 @@
|
||||
# - Full System/Library Snapshotting (need to research how Apple achieves this)
|
||||
# - 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/)
|
||||
from __future__ import print_function
|
||||
|
||||
import binascii
|
||||
import os
|
||||
import plistlib
|
||||
import shutil
|
||||
import signal
|
||||
import subprocess
|
||||
import sys
|
||||
import uuid
|
||||
import zipfile
|
||||
import os
|
||||
from pathlib import Path
|
||||
from datetime import date
|
||||
from typing import Any
|
||||
|
||||
from Resources import Constants, ModelArray, Utilities
|
||||
from Resources import Constants, DeviceProbe, ModelArray, PCIIDArray, Utilities
|
||||
|
||||
|
||||
class PatchSysVolume:
|
||||
def __init__(self, model, versions):
|
||||
self.model = model
|
||||
self.constants: Constants.Constants = versions
|
||||
self.root_mount_path = None
|
||||
self.sip_enabled = True
|
||||
self.sbm_enabled = True
|
||||
self.amfi_enabled = True
|
||||
self.fv_enabled = True
|
||||
self.nvidia_legacy = False
|
||||
self.amd_ts1 = False
|
||||
self.amd_ts2 = False
|
||||
self.iron_gpu = False
|
||||
self.sandy_gpu = False
|
||||
self.ivy_gpu = False
|
||||
self.nvidia_legacy = False
|
||||
self.brightness_legacy = False
|
||||
self.legacy_audio = False
|
||||
self.added_kexts = False
|
||||
self.amfi_must_disable = False
|
||||
self.no_patch = True
|
||||
|
||||
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):
|
||||
sip_int = int.from_bytes(sip_raw, byteorder='little')
|
||||
i = 0
|
||||
for current_sip_bit in self.constants.csr_values:
|
||||
if sip_int & (1 << i):
|
||||
temp = True
|
||||
self.constants.csr_values[current_sip_bit] = True
|
||||
else:
|
||||
temp = False
|
||||
if print_status is True:
|
||||
print(f"- {current_sip_bit}\t {temp}")
|
||||
i = i + 1
|
||||
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)):
|
||||
self.sip_patch_status = False
|
||||
if self.constants.detected_os > self.constants.catalina:
|
||||
# Big Sur and newer use APFS snapshots
|
||||
self.mount_location = "/System/Volumes/Update/mnt1"
|
||||
else:
|
||||
self.sip_patch_status = True
|
||||
|
||||
def find_mount_root_vol(self, patch):
|
||||
root_partition_info = plistlib.loads(subprocess.run("diskutil info -plist /".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
||||
self.root_mount_path = root_partition_info["DeviceIdentifier"]
|
||||
self.mount_location = "/System/Volumes/Update/mnt1"
|
||||
self.mount_location = "/"
|
||||
self.mount_extensions = f"{self.mount_location}/System/Library/Extensions"
|
||||
self.mount_frameworks = f"{self.mount_location}/System/Library/Frameworks"
|
||||
self.mount_lauchd = f"{self.mount_location}/System/Library/LaunchDaemons"
|
||||
self.mount_private_frameworks = f"{self.mount_location}/System/Library/PrivateFrameworks"
|
||||
|
||||
def elevated(self, *args, **kwargs) -> subprocess.CompletedProcess([Any], returncode=0):
|
||||
if os.getuid() == 0:
|
||||
return subprocess.run(*args, **kwargs)
|
||||
else:
|
||||
return subprocess.run(["sudo"] + [args[0][0]] + args[0][1:], **kwargs)
|
||||
|
||||
def find_mount_root_vol(self, patch):
|
||||
self.root_mount_path = Utilities.get_disk_path()
|
||||
if self.root_mount_path.startswith("disk"):
|
||||
self.root_mount_path = self.root_mount_path[:-2] if self.root_mount_path.endswith('s1') else self.root_mount_path
|
||||
print(f"- Found Root Volume at: {self.root_mount_path}")
|
||||
if Path(self.mount_extensions).exists():
|
||||
print("- Root Volume is already mounted")
|
||||
if patch is True:
|
||||
self.patch_root_vol()
|
||||
return True
|
||||
else:
|
||||
self.unpatch_root_vol()
|
||||
return True
|
||||
else:
|
||||
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()
|
||||
if self.constants.detected_os > self.constants.catalina:
|
||||
print("- Mounting APFS Snapshot as writable")
|
||||
self.elevated(["mount", "-o", "nobrowse", "-t", "apfs", f"/dev/{self.root_mount_path}", self.mount_location], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
elif self.constants.detected_os == self.constants.catalina:
|
||||
print("- Mounting Root Volume as writable")
|
||||
self.elevated(["mount", "-uw", "/"], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
if Path(self.mount_extensions).exists():
|
||||
print("- Successfully mounted the Root Volume")
|
||||
if patch is True:
|
||||
self.patch_root_vol()
|
||||
return True
|
||||
else:
|
||||
self.unpatch_root_vol()
|
||||
return True
|
||||
else:
|
||||
print("- Failed to mount the Root Volume")
|
||||
print("- Recommend rebooting the machine and trying to patch again")
|
||||
input("- Press [ENTER] to exit: ")
|
||||
else:
|
||||
print("- Could not find root volume")
|
||||
input("- Press [ENTER] to exit: ")
|
||||
|
||||
def unpatch_root_vol(self):
|
||||
print("- Reverting to last signed APFS snapshot")
|
||||
self.elevated(["bless", "--mount", self.mount_location, "--bootefi", "--last-sealed-snapshot"], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
|
||||
def rebuild_snapshot(self):
|
||||
if self.constants.gui_mode is False:
|
||||
input("Press [ENTER] to continue with cache rebuild: ")
|
||||
print("- Rebuilding Kernel Cache (This may take some time)")
|
||||
if self.constants.detected_os > self.constants.catalina:
|
||||
result = self.elevated(["kmutil", "install", "--volume-root", self.mount_location, "--update-all"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||
else:
|
||||
result = self.elevated(["kextcache", "-i", "/"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||
|
||||
if result.returncode != 0:
|
||||
self.success_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("")
|
||||
print("\nPlease reboot the machine to avoid potential issues rerunning the patcher")
|
||||
input("Press [ENTER] to continue")
|
||||
else:
|
||||
self.success_status = True
|
||||
print("- Successfully built new kernel cache")
|
||||
if self.constants.gui_mode is False and self.constants.detected_os > self.constants.catalina:
|
||||
input("Press [ENTER] to continue with snapshotting")
|
||||
if self.constants.detected_os > self.constants.catalina:
|
||||
print("- Creating new APFS snapshot")
|
||||
self.elevated(["bless", "--folder", f"{self.mount_location}/System/Library/CoreServices", "--bootefi", "--create-snapshot"], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
self.unmount_drive()
|
||||
print("- Patching complete")
|
||||
print("\nPlease reboot the machine for patches to take effect")
|
||||
input("Press [ENTER] to continue")
|
||||
|
||||
|
||||
def unmount_drive(self):
|
||||
print("- Unmounting Root Volume (Don't worry if this fails)")
|
||||
self.elevated(["diskutil", "unmount", self.root_mount_path], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
|
||||
def delete_old_binaries(self, vendor_patch):
|
||||
for delete_current_kext in vendor_patch:
|
||||
delete_path = Path(self.mount_extensions) / Path(delete_current_kext)
|
||||
if Path(delete_path).exists():
|
||||
print(f"- Deleting {delete_current_kext}")
|
||||
subprocess.run(f"sudo rm -R {delete_path}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
self.elevated(["sudo", "rm", "-R", delete_path], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
else:
|
||||
print(f"- Couldn't find {delete_current_kext}, skipping")
|
||||
|
||||
@@ -102,192 +143,161 @@ class PatchSysVolume:
|
||||
existing_path = Path(self.mount_extensions) / Path(add_current_kext)
|
||||
if Path(existing_path).exists():
|
||||
print(f"- Found conflicting kext, Deleting Root Volume's {add_current_kext}")
|
||||
subprocess.run(f"sudo rm -R {existing_path}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
print(f"- Adding {add_current_kext}")
|
||||
subprocess.run(f"sudo cp -R {vendor_location}/{add_current_kext} {self.mount_extensions}".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()
|
||||
else:
|
||||
print(f"- Adding {add_current_kext}")
|
||||
subprocess.run(f"sudo cp -R {vendor_location}/{add_current_kext} {self.mount_extensions}".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()
|
||||
self.elevated(["rm", "-R", existing_path], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
print(f"- Adding {add_current_kext}")
|
||||
self.elevated(["cp", "-R", f"{vendor_location}/{add_current_kext}", self.mount_extensions], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
self.elevated(["chmod", "-Rf", "755", f"{self.mount_extensions}/{add_current_kext}"], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
self.elevated(["chown", "-Rf", "root:wheel", f"{self.mount_extensions}/{add_current_kext}"], 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()
|
||||
self.elevated(["ditto", self.constants.payload_apple_private_frameworks_path_brightness, self.mount_private_frameworks], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
self.elevated(["chmod", "-Rf", "755", f"{self.mount_private_frameworks}/DisplayServices.framework"], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
self.elevated(["chown", "-Rf", "root:wheel", f"{self.mount_private_frameworks}/DisplayServices.framework"], 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 = ""
|
||||
def add_audio_patch(self):
|
||||
self.delete_old_binaries(ModelArray.DeleteVolumeControl)
|
||||
self.add_new_binaries(ModelArray.AddVolumeControl, self.constants.audio_path)
|
||||
|
||||
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_legacy_nvidia(self):
|
||||
self.delete_old_binaries(ModelArray.DeleteNvidiaAccel11)
|
||||
self.add_new_binaries(ModelArray.AddGeneralAccel, self.constants.legacy_general_path)
|
||||
self.add_new_binaries(ModelArray.AddNvidiaAccel11, self.constants.legacy_nvidia_path)
|
||||
|
||||
def gpu_accel_patches_11(self):
|
||||
if self.dgpu_devices:
|
||||
if self.dgpu_vendor == self.constants.pci_nvidia:
|
||||
if self.nvidia_arch == self.constants.arch_kepler and self.constants.assume_legacy is True and self.constants.detected_os > self.constants.big_sur:
|
||||
print("- Merging legacy Nvidia Kepler Kexts and Bundles")
|
||||
self.add_new_binaries(ModelArray.AddNvidiaKeplerAccel11, self.constants.legacy_nvidia_kepler_path)
|
||||
else:
|
||||
print("- Merging legacy Nvidia Telsa and Fermi Kexts and Bundles")
|
||||
self.delete_old_binaries(ModelArray.DeleteNvidiaAccel11)
|
||||
self.add_new_binaries(ModelArray.AddNvidiaAccel11, self.constants.legacy_nvidia_path)
|
||||
elif self.dgpu_vendor == self.constants.pci_amd_ati:
|
||||
print("- Merging legacy AMD Kexts and Bundles")
|
||||
self.delete_old_binaries(ModelArray.DeleteAMDAccel11)
|
||||
self.add_new_binaries(ModelArray.AddAMDAccel11, self.constants.legacy_amd_path)
|
||||
if self.igpu_devices:
|
||||
if self.igpu_vendor == self.constants.pci_intel:
|
||||
if self.igpu_device in ModelArray.IronLakepciid:
|
||||
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()
|
||||
def gpu_framebuffer_legacy_nvidia(self):
|
||||
self.add_new_binaries(ModelArray.AddNvidiaBrightness, self.constants.legacy_nvidia_path)
|
||||
|
||||
# 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)
|
||||
def gpu_accel_legacy_ts1(self):
|
||||
self.delete_old_binaries(ModelArray.DeleteAMDAccel11)
|
||||
self.add_new_binaries(ModelArray.AddGeneralAccel, self.constants.legacy_general_path)
|
||||
self.add_new_binaries(ModelArray.AddAMDAccel11, self.constants.legacy_amd_path)
|
||||
|
||||
# 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()
|
||||
def gpu_accel_legacy_ts2(self):
|
||||
self.delete_old_binaries(ModelArray.DeleteAMDAccel11)
|
||||
self.delete_old_binaries(ModelArray.DeleteAMDAccel11TS2)
|
||||
self.add_new_binaries(ModelArray.AddGeneralAccel, self.constants.legacy_general_path)
|
||||
self.add_new_binaries(ModelArray.AddAMDAccel11, self.constants.legacy_amd_path)
|
||||
|
||||
if self.model in ModelArray.LegacyBrightness:
|
||||
self.add_brightness_patch()
|
||||
def gpu_framebuffer_legacy_amd(self):
|
||||
self.add_new_binaries(ModelArray.AddAMDBrightness, self.constants.legacy_amd_path)
|
||||
|
||||
# LaunchDaemons
|
||||
def gpu_accel_legacy_ironlake(self):
|
||||
self.delete_old_binaries(ModelArray.DeleteNvidiaAccel11)
|
||||
self.add_new_binaries(ModelArray.AddGeneralAccel, self.constants.legacy_general_path)
|
||||
self.add_new_binaries(ModelArray.AddIntelGen1Accel, self.constants.legacy_intel_gen1_path)
|
||||
|
||||
def gpu_framebuffer_legacy_ironlake(self):
|
||||
self.add_new_binaries(ModelArray.AddIntelGen1Accel, self.constants.legacy_intel_gen1_path)
|
||||
|
||||
def gpu_accel_legacy_sandybridge(self):
|
||||
self.delete_old_binaries(ModelArray.DeleteNvidiaAccel11)
|
||||
self.add_new_binaries(ModelArray.AddGeneralAccel, self.constants.legacy_general_path)
|
||||
self.add_new_binaries(ModelArray.AddIntelGen2Accel, self.constants.legacy_intel_gen2_path)
|
||||
|
||||
def gpu_framebuffer_legacy_sandybridge(self):
|
||||
self.add_new_binaries(ModelArray.AddIntelGen2Accel, self.constants.legacy_intel_gen1_path)
|
||||
|
||||
def gpu_framebuffer_ivybridge(self):
|
||||
#self.delete_old_binaries(ModelArray.DeleteAMDAccel11)
|
||||
self.add_new_binaries(ModelArray.AddIntelGen3Accel, self.constants.legacy_intel_gen3_path)
|
||||
#self.elevated(["ditto", self.constants.payload_apple_frameworks_path_accel, self.mount_frameworks], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
|
||||
def gpu_accel_legacy_extended(self):
|
||||
print("- Merging general legacy Frameworks")
|
||||
self.elevated(["ditto", self.constants.payload_apple_frameworks_path_accel, self.mount_frameworks], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
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()
|
||||
self.elevated(["rm", f"{self.mount_lauchd}/HiddHack.plist"], 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 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}/IOHID-Fixup.plist".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
self.elevated(["ditto", self.constants.payload_apple_lauchd_path_accel, self.mount_lauchd], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
self.elevated(["chmod", "755", f"{self.mount_lauchd}/IOHID-Fixup.plist"], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
self.elevated(["chown", "root:wheel", f"{self.mount_lauchd}/IOHID-Fixup.plist"], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
print("- Merging general legacy PrivateFrameworks")
|
||||
self.elevated(["ditto", self.constants.payload_apple_private_frameworks_path_accel, self.mount_private_frameworks], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
|
||||
# PrivateFrameworks
|
||||
print("- Merging legacy PrivateFrameworks")
|
||||
subprocess.run(f"sudo ditto {self.constants.payload_apple_private_frameworks_path_accel} {self.mount_private_frameworks}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
|
||||
# Sets AppKit to Catalina Window Drawing codepath
|
||||
# Disabled upon ASentientBot request
|
||||
print("- Enabling NSDefenestratorModeEnabled")
|
||||
subprocess.run("defaults write -g NSDefenestratorModeEnabled -bool true".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
def gpu_accel_legacy_extended_ts2(self):
|
||||
print("- Merging TeraScale 2 legacy Frameworks")
|
||||
self.elevated(["ditto", self.constants.payload_apple_frameworks_path_accel_ts2, self.mount_frameworks], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
print("- Merging TeraScale 2 PrivateFrameworks")
|
||||
self.elevated(["ditto", self.constants.payload_apple_private_frameworks_path_accel_ts2, self.mount_private_frameworks], stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
|
||||
def patch_root_vol(self):
|
||||
print(f"- Detecting patches for {self.model}")
|
||||
rebuild_required = False
|
||||
# TODO: Create Backup of S*/L*/Extensions, Frameworks and PrivateFramework to easily revert changes
|
||||
# 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
|
||||
# Ensures no .DS_Stores got in
|
||||
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()
|
||||
|
||||
if self.model in ModelArray.LegacyGPU or self.constants.assume_legacy is True:
|
||||
self.check_pciid()
|
||||
if self.dgpu_devices and self.dgpu_vendor == self.constants.pci_amd_ati and self.dgpu_device in ModelArray.AMDMXMGPUs:
|
||||
print("- Detected Metal-based AMD GPU, skipping legacy patches")
|
||||
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(f"- Running patches for {self.model}")
|
||||
# Graphics patches
|
||||
if self.nvidia_legacy is True:
|
||||
print("- Installing legacy Nvidia Patches")
|
||||
if self.constants.detected_os == self.constants.big_sur:
|
||||
print("- Detected Big Sur, installing Acceleration patches")
|
||||
self.gpu_accel_legacy_nvidia()
|
||||
self.added_kexts = True
|
||||
else:
|
||||
print("- Detected legacy GPU, attempting legacy acceleration patches")
|
||||
self.gpu_accel_patches_11()
|
||||
rebuild_required = True
|
||||
print("- Detected unsupported OS, installing Basic Framebuffer")
|
||||
self.gpu_framebuffer_legacy_nvidia()
|
||||
|
||||
if rebuild_required is True:
|
||||
self.rebuild_snapshot()
|
||||
|
||||
def unpatch_root_vol(self):
|
||||
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()
|
||||
|
||||
def rebuild_snapshot(self):
|
||||
if self.constants.gui_mode is False:
|
||||
input("Press [ENTER] to continue with cache rebuild")
|
||||
print("- Rebuilding Kernel Cache (This may take some time)")
|
||||
result = subprocess.run(f"sudo kmutil install --volume-root {self.mount_location} --update-all".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||
|
||||
if result.returncode != 0:
|
||||
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):
|
||||
print("- Unmounting Root Volume (Don't worry if this fails)")
|
||||
subprocess.run(f"sudo diskutil unmount {self.root_mount_path}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
|
||||
|
||||
def check_status(self):
|
||||
nvram_dump = plistlib.loads(subprocess.run("nvram -x -p".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
||||
try:
|
||||
self.sip_status = nvram_dump["csr-active-config"]
|
||||
except KeyError:
|
||||
self.sip_status = b'\x00\x00\x00\x00'
|
||||
|
||||
self.smb_model: str = subprocess.run("nvram 94B73556-2197-4702-82A8-3E1337DAFBFB:HardwareModel ".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.decode()
|
||||
if not self.smb_model.startswith("nvram: Error getting variable"):
|
||||
self.smb_model = [line.strip().split(":HardwareModel ", 1)[1] for line in self.smb_model.split("\n") if line.strip().startswith("94B73556-2197-4702-82A8-3E1337DAFBFB:")][0]
|
||||
if self.smb_model.startswith("j137"):
|
||||
self.smb_status = True
|
||||
if self.amd_ts1 is True:
|
||||
print("- Installing legacy TeraScale 1 Patches")
|
||||
if self.constants.detected_os == self.constants.big_sur:
|
||||
print("- Detected Big Sur, installing Acceleration patches")
|
||||
self.gpu_accel_legacy_ts1()
|
||||
self.added_kexts = True
|
||||
else:
|
||||
self.smb_status = False
|
||||
else:
|
||||
self.smb_status = False
|
||||
self.fv_status = True
|
||||
self.fv_status: str = subprocess.run("fdesetup status".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.decode()
|
||||
if self.fv_status.startswith("FileVault is Off"):
|
||||
self.fv_status = False
|
||||
else:
|
||||
self.fv_status = True
|
||||
self.sip_patch_status = True
|
||||
self.csr_decode(self.sip_status, False)
|
||||
print("- Detected unsupported OS, installing Basic Framebuffer")
|
||||
self.gpu_framebuffer_legacy_amd()
|
||||
|
||||
if self.amd_ts2 is True:
|
||||
print("- Installing legacy TeraScale 2 Patches")
|
||||
if self.constants.detected_os == self.constants.big_sur:
|
||||
print("- Detected Big Sur, installing Acceleration patches")
|
||||
self.gpu_accel_legacy_ts2()
|
||||
self.added_kexts = True
|
||||
else:
|
||||
print("- Detected unsupported OS, installing Basic Framebuffer")
|
||||
self.gpu_framebuffer_legacy_amd()
|
||||
|
||||
if self.iron_gpu is True:
|
||||
print("- Installing legacy Ironlake Patches")
|
||||
if self.constants.detected_os == self.constants.big_sur:
|
||||
print("- Detected Big Sur, installing Acceleration patches")
|
||||
self.gpu_accel_legacy_ironlake()
|
||||
self.added_kexts = True
|
||||
else:
|
||||
print("- Detected unsupported OS, installing Basic Framebuffer")
|
||||
self.gpu_framebuffer_legacy_ironlake()
|
||||
|
||||
if self.sandy_gpu is True:
|
||||
print("- Installing legacy Sandy Bridge Patches")
|
||||
if self.constants.detected_os == self.constants.big_sur:
|
||||
print("- Detected Big Sur, installing Acceleration patches")
|
||||
self.gpu_accel_legacy_sandybridge()
|
||||
self.added_kexts = True
|
||||
else:
|
||||
print("- Detected unsupported OS, installing Basic Framebuffer")
|
||||
self.gpu_framebuffer_legacy_sandybridge()
|
||||
|
||||
if self.ivy_gpu is True:
|
||||
print("- Installing Ivy Bridge Patches")
|
||||
self.gpu_framebuffer_ivybridge()
|
||||
|
||||
if self.amd_ts2 is True:
|
||||
# TeraScale 2 patches must be installed after Intel HD3000
|
||||
self.add_new_binaries(ModelArray.AddAMDAccel11TS2, self.constants.legacy_amd_path_ts2)
|
||||
|
||||
if self.added_kexts is True:
|
||||
self.gpu_accel_legacy_extended()
|
||||
if self.amd_ts2 is True:
|
||||
self.gpu_accel_legacy_extended_ts2()
|
||||
|
||||
# Misc patches
|
||||
if self.brightness_legacy is True:
|
||||
print("- Installing legacy Brightness Control")
|
||||
self.add_brightness_patch()
|
||||
|
||||
if self.legacy_audio is True:
|
||||
print("- Fixing Volume Control Support")
|
||||
self.add_audio_patch()
|
||||
|
||||
self.rebuild_snapshot()
|
||||
|
||||
def check_files(self):
|
||||
if Path(self.constants.payload_apple_root_path).exists():
|
||||
@@ -306,7 +316,13 @@ class PatchSysVolume:
|
||||
def download_files(self):
|
||||
Utilities.cls()
|
||||
print("- Downloading Apple binaries")
|
||||
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)
|
||||
popen_oclp = subprocess.Popen(
|
||||
["curl", "-S", "-L", f"{self.constants.url_apple_binaries}{self.constants.payload_version}.zip", "--output", self.constants.payload_apple_root_path_zip],
|
||||
stdin=subprocess.PIPE,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.STDOUT,
|
||||
universal_newlines=True,
|
||||
)
|
||||
for stdout_line in iter(popen_oclp.stdout.readline, ""):
|
||||
print(stdout_line, end="")
|
||||
popen_oclp.stdout.close()
|
||||
@@ -314,7 +330,7 @@ class PatchSysVolume:
|
||||
print("- Download completed")
|
||||
print("- Unzipping download...")
|
||||
try:
|
||||
subprocess.run(f"unzip {self.constants.payload_apple_root_path_zip}".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=self.constants.payload_path).stdout.decode()
|
||||
subprocess.run(["unzip", self.constants.payload_apple_root_path_zip], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=self.constants.payload_path).stdout.decode()
|
||||
print("- Renaming folder")
|
||||
os.rename(self.constants.payload_apple_root_path_unzip, self.constants.payload_apple_root_path)
|
||||
print("- Binaries downloaded to:")
|
||||
@@ -326,78 +342,156 @@ class PatchSysVolume:
|
||||
os.remove(self.constants.payload_apple_root_path_zip)
|
||||
else:
|
||||
print("- Download failed, please verify the below link works:")
|
||||
print(self.constants.url_apple_binaries)
|
||||
print(f"{self.constants.url_apple_binaries}{self.constants.payload_version}")
|
||||
|
||||
def start_patch(self):
|
||||
# Check SIP
|
||||
if self.constants.custom_model is not None:
|
||||
print("Root Patching must be done on target machine!")
|
||||
elif self.model in ModelArray.NoRootPatch11 and self.constants.assume_legacy is False:
|
||||
print("Root Patching not required for this machine!")
|
||||
elif self.model not in ModelArray.SupportedSMBIOS11:
|
||||
print("Cannot run on this machine, model is unsupported!")
|
||||
elif self.constants.detected_os < self.constants.big_sur:
|
||||
print(f"Cannot run on this OS, requires macOS 11!")
|
||||
|
||||
def detect_gpus(self):
|
||||
igpu_vendor, igpu_device, igpu_acpi = DeviceProbe.pci_probe().gpu_probe("IGPU")
|
||||
dgpu_vendor, dgpu_device, dgpu_acpi = DeviceProbe.pci_probe().gpu_probe("GFX0")
|
||||
if dgpu_vendor:
|
||||
print(f"- Found GFX0: {dgpu_vendor}:{dgpu_device}")
|
||||
if dgpu_vendor == self.constants.pci_nvidia:
|
||||
if dgpu_device in PCIIDArray.nvidia_ids().tesla_ids or dgpu_device in PCIIDArray.nvidia_ids().fermi_ids:
|
||||
if self.constants.detected_os > self.constants.catalina:
|
||||
self.nvidia_legacy = True
|
||||
self.amfi_must_disable = True
|
||||
elif dgpu_vendor == self.constants.pci_amd_ati:
|
||||
if dgpu_device in PCIIDArray.amd_ids().terascale_1_ids:
|
||||
if self.constants.detected_os > self.constants.catalina:
|
||||
self.amd_ts1 = True
|
||||
self.amfi_must_disable = True
|
||||
# TODO: Enable TS2 support
|
||||
elif dgpu_device in PCIIDArray.amd_ids().terascale_2_ids:
|
||||
# Requires manual permission from user to avoid medical issues
|
||||
if self.constants.detected_os > self.constants.catalina and self.constants.terscale_2_patch is True:
|
||||
self.amd_ts2 = True
|
||||
self.amfi_must_disable = True
|
||||
if igpu_vendor:
|
||||
print(f"- Found IGPU: {igpu_vendor}:{igpu_device}")
|
||||
if igpu_vendor == self.constants.pci_intel:
|
||||
if igpu_device in PCIIDArray.intel_ids().iron_ids:
|
||||
if self.constants.detected_os > self.constants.catalina:
|
||||
self.iron_gpu = True
|
||||
self.amfi_must_disable = True
|
||||
elif igpu_device in PCIIDArray.intel_ids().sandy_ids:
|
||||
if self.constants.detected_os > self.constants.catalina:
|
||||
self.sandy_gpu = True
|
||||
self.amfi_must_disable = True
|
||||
elif igpu_device in PCIIDArray.intel_ids().ivy_ids:
|
||||
if self.constants.detected_os > self.constants.big_sur:
|
||||
self.ivy_gpu = True
|
||||
elif igpu_vendor == self.constants.pci_nvidia:
|
||||
if self.constants.detected_os > self.constants.catalina:
|
||||
self.nvidia_legacy = True
|
||||
self.amfi_must_disable = True
|
||||
|
||||
def detect_patch_set(self):
|
||||
self.detect_gpus()
|
||||
if self.model in ModelArray.LegacyBrightness:
|
||||
if self.constants.detected_os > self.constants.catalina:
|
||||
self.brightness_legacy = True
|
||||
|
||||
if self.model in ["iMac7,1", "iMac8,1"]:
|
||||
if self.constants.detected_os > self.constants.catalina:
|
||||
self.legacy_audio = True
|
||||
|
||||
Utilities.cls()
|
||||
print("The following patches will be applied:")
|
||||
if self.nvidia_legacy is True:
|
||||
print("- Add Legacy Nvidia Tesla Graphics Patch")
|
||||
elif self.amd_ts1 is True:
|
||||
print("- Add Legacy ATI TeraScale 1 Graphics Patch")
|
||||
elif self.amd_ts2 is True:
|
||||
print("- Add Legacy ATI TeraScale 2 Graphics Patch")
|
||||
if self.iron_gpu is True:
|
||||
print("- Add Legacy Intel IronLake Graphics Patch")
|
||||
elif self.sandy_gpu is True:
|
||||
print("- Add Legacy Intel Sandy Bridge Graphics Patch")
|
||||
elif self.ivy_gpu is True:
|
||||
print("- Add Legacy Intel Ivy Bridge Graphics Patch")
|
||||
if self.brightness_legacy is True:
|
||||
print("- Add Legacy Brightness Control")
|
||||
if self.legacy_audio is True:
|
||||
print("- Add legacy Audio Control")
|
||||
|
||||
if self.nvidia_legacy is False and \
|
||||
self.amd_ts1 is False and \
|
||||
self.amd_ts2 is False and \
|
||||
self.iron_gpu is False and \
|
||||
self.sandy_gpu is False and \
|
||||
self.ivy_gpu is False and \
|
||||
self.brightness_legacy is False and \
|
||||
self.legacy_audio is False:
|
||||
self.no_patch = True
|
||||
else:
|
||||
self.check_status()
|
||||
Utilities.cls()
|
||||
if (self.sip_patch_status is False) and (self.smb_status is False):
|
||||
print("- Detected SIP and SecureBootModel are disabled, continuing")
|
||||
if self.constants.gui_mode is False:
|
||||
input("\nPress [ENTER] to continue")
|
||||
self.no_patch = False
|
||||
|
||||
def verify_patch_allowed(self):
|
||||
self.sip_enabled, self.sbm_enabled, self.amfi_enabled, self.fv_enabled = Utilities.patching_status()
|
||||
if self.sip_enabled is True:
|
||||
print("\nCannot patch!!! Please disable SIP!!!")
|
||||
print("Disable SIP in Patcher Settings and Rebuild OpenCore")
|
||||
print("Ensure the following bits are set for csr-active-config:\n")
|
||||
if self.constants.detected_os > self.constants.catalina:
|
||||
sip = self.constants.root_patch_sip_big_sur
|
||||
else:
|
||||
sip = self.constants.root_patch_sip_mojave
|
||||
print("\n".join(sip))
|
||||
if self.sbm_enabled is True:
|
||||
print("\nCannot patch!!! Please disable SecureBootModel!!!")
|
||||
print("Disable SecureBootModel in Patcher Settings and Rebuild OpenCore")
|
||||
print("For Hackintoshes, set SecureBootModel to Disabled")
|
||||
if self.fv_enabled is True:
|
||||
print("\nCannot patch!!! Please disable FileVault!!!")
|
||||
print("Go to System Preferences -> Security and disable FileVault")
|
||||
|
||||
if self.amfi_enabled is True and self.amfi_must_disable is True:
|
||||
print("\nCannot patch!!! Please disable AMFI!!!")
|
||||
print("For Hackintoshes, please add amfi_get_out_of_my_way=1 to boot-args")
|
||||
|
||||
if self.amfi_must_disable is True:
|
||||
if self.sip_enabled is True or \
|
||||
self.sbm_enabled is True or \
|
||||
self.amfi_enabled is True or \
|
||||
self.fv_enabled is True:
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
else:
|
||||
if self.sip_enabled is True or \
|
||||
self.sbm_enabled is True or \
|
||||
self.fv_enabled is True:
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
# Entry Function
|
||||
def start_patch(self):
|
||||
print("- Starting Patch Process")
|
||||
print(f"- Determinging Required Patch set for Darwin {self.constants.detected_os}")
|
||||
self.detect_patch_set()
|
||||
if self.no_patch is False:
|
||||
change_menu = input("Would you like to continue with Root Volume Patching?(y/n): ")
|
||||
else:
|
||||
change_menu = None
|
||||
print("- No Root Patches required for your machine!")
|
||||
input("\nPress [ENTER] to return to the main menu: ")
|
||||
if change_menu in ["y", "Y"]:
|
||||
print("- Continuing with Patching")
|
||||
print("- Verifying whether Root Patching possible")
|
||||
if self.verify_patch_allowed() is True:
|
||||
print("- Patcher is capable of patching")
|
||||
self.check_files()
|
||||
if self.constants.payload_apple_root_path.exists():
|
||||
self.find_mount_root_vol(True)
|
||||
self.unmount_drive()
|
||||
print("- Patching complete")
|
||||
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:
|
||||
print("SIP set incorrectly, cannot patch on this machine!")
|
||||
print("Please disable SIP and SecureBootModel in Patcher Settings")
|
||||
self.csr_decode(self.sip_status, True)
|
||||
print("")
|
||||
if self.smb_status is True:
|
||||
print("SecureBootModel set incorrectly, unable to patch!")
|
||||
print("Please disable SecureBootModel in Patcher Settings")
|
||||
print("")
|
||||
if self.fv_status is True:
|
||||
print("FileVault enabled, unable to patch!")
|
||||
print("Please disable FileVault in System Preferences")
|
||||
print("")
|
||||
if self.constants.gui_mode is False:
|
||||
input("Press [Enter] to go exit.")
|
||||
self.find_mount_root_vol(True)
|
||||
else:
|
||||
input("\nPress [ENTER] to return to the main menu: ")
|
||||
|
||||
else:
|
||||
print("- Returning to main menu")
|
||||
|
||||
def start_unpatch(self):
|
||||
if self.constants.custom_model is not None:
|
||||
print("Unpatching must be done on target machine!")
|
||||
elif self.constants.detected_os < self.constants.big_sur:
|
||||
print(f"Cannot run on this OS, requires macOS 11!")
|
||||
else:
|
||||
self.check_status()
|
||||
Utilities.cls()
|
||||
if (self.sip_patch_status is False) and (self.smb_status is False):
|
||||
print("- Detected SIP and SecureBootModel are disabled, continuing")
|
||||
if self.constants.gui_mode is False:
|
||||
input("\nPress [ENTER] to continue")
|
||||
self.find_mount_root_vol(False)
|
||||
self.unmount_drive()
|
||||
print("- Unpatching complete")
|
||||
print("\nPlease reboot the machine for patches to take effect")
|
||||
if self.sip_patch_status is True:
|
||||
print("SIP set incorrectly, cannot unpatch on this machine!")
|
||||
print("Please disable SIP and SecureBootModel in Patcher Settings")
|
||||
self.csr_decode(self.sip_status, True)
|
||||
print("")
|
||||
if self.smb_status is True:
|
||||
print("SecureBootModel set incorrectly, unable to unpatch!")
|
||||
print("Please disable SecureBootModel in Patcher Settings")
|
||||
print("")
|
||||
if self.fv_status is True:
|
||||
print("FileVault enabled, unable to unpatch!")
|
||||
print("Please disable FileVault in System Preferences")
|
||||
print("")
|
||||
if self.constants.gui_mode is False:
|
||||
input("Press [Enter] to go exit.")
|
||||
print("- Starting Unpatch Process")
|
||||
if self.verify_patch_allowed() is True:
|
||||
self.find_mount_root_vol(False)
|
||||
input("\nPress [ENTER] to return to the main menu")
|
||||
|
||||
|
||||
@@ -2,7 +2,17 @@
|
||||
from __future__ import print_function
|
||||
|
||||
import os
|
||||
import math as m
|
||||
import math
|
||||
import plistlib
|
||||
import subprocess
|
||||
|
||||
from Resources import Constants
|
||||
|
||||
def hexswap(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 header(lines):
|
||||
@@ -10,13 +20,86 @@ def header(lines):
|
||||
total_length = len(max(lines, key=len)) + 4
|
||||
print("#" * (total_length))
|
||||
for line in lines:
|
||||
left_side = m.floor(((total_length - 2 - len(line.strip())) / 2))
|
||||
left_side = math.floor(((total_length - 2 - len(line.strip())) / 2))
|
||||
print("#" + " " * left_side + line.strip() + " " * (total_length - len("#" + " " * left_side + line.strip()) - 1) + "#")
|
||||
print("#" * total_length)
|
||||
|
||||
|
||||
def check_recovery():
|
||||
root_partition_info = plistlib.loads(subprocess.run("diskutil info -plist /".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
||||
if root_partition_info["VolumeName"] == "macOS Base System" and root_partition_info["FilesystemType"] == "apfs" and root_partition_info["BusProtocol"] == "Disk Image":
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def get_disk_path():
|
||||
root_partition_info = plistlib.loads(subprocess.run("diskutil info -plist /".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode())
|
||||
root_mount_path = root_partition_info["DeviceIdentifier"]
|
||||
root_mount_path = root_mount_path[:-2] if root_mount_path.count("s") > 1 else root_mount_path
|
||||
return root_mount_path
|
||||
|
||||
def csr_decode(csr_active_config):
|
||||
if csr_active_config is None:
|
||||
csr_active_config = b"\x00\x00\x00\x00"
|
||||
sip_int = int.from_bytes(csr_active_config, byteorder="little")
|
||||
i = 0
|
||||
for current_sip_bit in Constants.Constants().csr_values:
|
||||
if sip_int & (1 << i):
|
||||
Constants.Constants().csr_values[current_sip_bit] = True
|
||||
i = i + 1
|
||||
|
||||
# Can be adjusted to whatever OS needs patching
|
||||
sip_needs_change = all(
|
||||
Constants.Constants().csr_values[i]
|
||||
for i in Constants.Constants().root_patch_sip_big_sur
|
||||
)
|
||||
if sip_needs_change is True:
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
def patching_status():
|
||||
# Detection for Root Patching
|
||||
sip_enabled = True # System Integrity Protection
|
||||
sbm_enabled = True # Secure Boot Status (SecureBootModel)
|
||||
amfi_enabled = True # Apple Mobile File Integrity
|
||||
fv_enabled = True # FileVault
|
||||
|
||||
amfi_1 = "amfi_get_out_of_my_way=0x1"
|
||||
amfi_2 = "amfi_get_out_of_my_way=1"
|
||||
|
||||
if get_nvram("boot-args", decode=False) and (amfi_1 in get_nvram("boot-args", decode=False) or amfi_2 in get_nvram("boot-args", decode=False)):
|
||||
amfi_enabled = False
|
||||
if get_nvram("HardwareModel", "94B73556-2197-4702-82A8-3E1337DAFBFB", decode=False) not in Constants.Constants().sbm_values:
|
||||
sbm_enabled = False
|
||||
|
||||
if get_nvram("csr-active-config", decode=False) and csr_decode(get_nvram("csr-active-config", decode=False)) is False:
|
||||
sip_enabled = False
|
||||
|
||||
fv_status: str = subprocess.run("fdesetup status".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.decode()
|
||||
if fv_status.startswith("FileVault is Off"):
|
||||
fv_enabled = False
|
||||
|
||||
return sip_enabled, sbm_enabled, amfi_enabled, fv_enabled
|
||||
|
||||
def cls():
|
||||
os.system('cls' if os.name == 'nt' else 'clear')
|
||||
if check_recovery() == False:
|
||||
os.system('cls' if os.name == 'nt' else 'clear')
|
||||
else:
|
||||
print("\u001Bc")
|
||||
|
||||
def get_nvram(variable: str, uuid: str = None, *, decode: bool = False):
|
||||
if uuid != None:
|
||||
uuid += ":"
|
||||
else:
|
||||
uuid = ""
|
||||
result = subprocess.run(f"nvram -x {uuid}{variable}".split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE).stdout.strip()
|
||||
if result:
|
||||
value = plistlib.loads(result)[f"{uuid}{variable}"]
|
||||
if decode:
|
||||
value = value.strip(b"\0").decode()
|
||||
return value
|
||||
return None
|
||||
|
||||
# def menu(title, prompt, menu_options, add_quit=True, auto_number=False, in_between=[], top_level=False):
|
||||
# return_option = ["Q", "Quit", None] if top_level else ["B", "Back", None]
|
||||
@@ -46,7 +129,7 @@ def cls():
|
||||
# menu_options[keys.index(selected.upper())][2]() if menu_options[keys.index(selected.upper())][2] else None
|
||||
|
||||
|
||||
class TUIMenu():
|
||||
class TUIMenu:
|
||||
def __init__(self, title, prompt, options=None, return_number_instead_of_direct_call=False, add_quit=True, auto_number=False, in_between=None, top_level=False, loop=False):
|
||||
self.title = title
|
||||
self.prompt = prompt
|
||||
@@ -65,8 +148,7 @@ class TUIMenu():
|
||||
def start(self):
|
||||
return_option = ["Q", "Quit"] if self.top_level else ["B", "Back"]
|
||||
if self.add_quit and not self.added_quit:
|
||||
self.add_menu_option(
|
||||
return_option[1], function=None, key=return_option[0])
|
||||
self.add_menu_option(return_option[1], function=None, key=return_option[0])
|
||||
self.added_quit = True
|
||||
|
||||
while True:
|
||||
@@ -105,7 +187,7 @@ class TUIMenu():
|
||||
return
|
||||
|
||||
|
||||
class TUIOnlyPrint():
|
||||
class TUIOnlyPrint:
|
||||
def __init__(self, title, prompt, in_between=None):
|
||||
self.title = title
|
||||
self.prompt = prompt
|
||||
|
||||
@@ -1,303 +0,0 @@
|
||||
[
|
||||
{
|
||||
"models": [
|
||||
"MacBook5,1",
|
||||
"MacBook5,2"
|
||||
],
|
||||
"patches": [
|
||||
"WifiBCM94322",
|
||||
"LegacyAudio",
|
||||
"MissingSSE42",
|
||||
"EthernetNvidia",
|
||||
"LegacyGPU"
|
||||
]
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"MacBook6,1",
|
||||
"MacBook7,1"
|
||||
],
|
||||
"patches": [
|
||||
"WifiBCM943224",
|
||||
"LegacyAudio",
|
||||
"MissingSSE42",
|
||||
"EthernetNvidia",
|
||||
"LegacyGPU"
|
||||
]
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"MacBookAir2,1",
|
||||
"MacBookAir3,1",
|
||||
"MacBookAir3,2"
|
||||
],
|
||||
"patches": [
|
||||
"WifiBCM94322",
|
||||
"LegacyAudio",
|
||||
"MissingSSE42",
|
||||
"LegacyGPU"
|
||||
]
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"MacBookAir4,1",
|
||||
"MacBookAir4,2"
|
||||
],
|
||||
"patches": [
|
||||
"WifiBCM94322",
|
||||
"LegacyAudio",
|
||||
"LegacyGPU"
|
||||
]
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"MacBookAir5,1",
|
||||
"MacBookAir5,2"
|
||||
],
|
||||
"patches": [
|
||||
"WifiBCM94322"
|
||||
]
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"MacBookPro3,1"
|
||||
],
|
||||
"patches": [
|
||||
"WifiAtheros",
|
||||
"EthernetMarvell",
|
||||
"LegacyAudio",
|
||||
"MissingSSE42",
|
||||
"LegacyGPU"
|
||||
]
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"MacBookPro4,1"
|
||||
],
|
||||
"patches": [
|
||||
"WifiBCM94328",
|
||||
"EthernetMarvell",
|
||||
"LegacyAudio",
|
||||
"MissingSSE42",
|
||||
"LegacyGPU"
|
||||
]
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"MacBookPro5,1",
|
||||
"MacBookPro5,2",
|
||||
"MacBookPro5,3",
|
||||
"MacBookPro5,4",
|
||||
"MacBookPro5,5"
|
||||
],
|
||||
"patches": [
|
||||
"WifiBCM94322",
|
||||
"EthernetNvidia",
|
||||
"LegacyAudio",
|
||||
"MissingSSE42",
|
||||
"LegacyGPU"
|
||||
]
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"MacBookPro6,1",
|
||||
"MacBookPro6,2"
|
||||
],
|
||||
"patches": [
|
||||
"WifiBCM943224",
|
||||
"EthernetBroadcom",
|
||||
"LegacyAudio",
|
||||
"LegacyGPU",
|
||||
"PCIBridge"
|
||||
]
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"MacBookPro7,1"
|
||||
],
|
||||
"patches": [
|
||||
"WifiBCM94322",
|
||||
"EthernetNvidia",
|
||||
"LegacyAudio",
|
||||
"MissingSSE42",
|
||||
"LegacyGPU"
|
||||
]
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"MacBookPro8,1",
|
||||
"MacBookPro8,2",
|
||||
"MacBookPro8,3"
|
||||
],
|
||||
"patches": [
|
||||
"WifiBCM94331",
|
||||
"EthernetBroadcom",
|
||||
"LegacyAudio",
|
||||
"LegacyGPU"
|
||||
]
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"MacBookPro9,1",
|
||||
"MacBookPro9,2",
|
||||
"MacBookPro10,1",
|
||||
"MacBookPro10,2"
|
||||
],
|
||||
"patches": [
|
||||
"WifiBCM94331"
|
||||
]
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"MacMini3,1",
|
||||
"MacMini4,1"
|
||||
],
|
||||
"patches": [
|
||||
"WifiBCM943224",
|
||||
"EthernetNvidia",
|
||||
"LegacyAudio",
|
||||
"MissingSSE42",
|
||||
"LegacyGPU"
|
||||
]
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"Macmini5,1",
|
||||
"Macmini5,2",
|
||||
"Macmini5,3"
|
||||
],
|
||||
"patches": [
|
||||
"WifiBCM94331",
|
||||
"EthernetBroadcom",
|
||||
"LegacyAudio",
|
||||
"LegacyGPU"
|
||||
]
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"MacMini6,1",
|
||||
"MacMini6,2"
|
||||
],
|
||||
"patches": [
|
||||
"WifiBCM94331"
|
||||
]
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"iMac7,1",
|
||||
"iMac8,1"
|
||||
],
|
||||
"patches": [
|
||||
"WifiBCM94328",
|
||||
"EthernetNvidia",
|
||||
"LegacyAudio",
|
||||
"MissingSSE42",
|
||||
"LegacyGPU"
|
||||
]
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"iMac9,1"
|
||||
],
|
||||
"patches": [
|
||||
"WifiBCM94322",
|
||||
"EthernetNvidia",
|
||||
"LegacyAudio",
|
||||
"MissingSSE42",
|
||||
"LegacyGPU"
|
||||
]
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"iMac10,1"
|
||||
],
|
||||
"patches": [
|
||||
"WifiAtheros",
|
||||
"EthernetNvidia",
|
||||
"LegacyAudio",
|
||||
"MissingSSE42",
|
||||
"LegacyGPU"
|
||||
]
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"iMac11,1",
|
||||
"iMac11,2",
|
||||
"iMac11,3"
|
||||
],
|
||||
"patches": [
|
||||
"WifiAtheros",
|
||||
"EthernetBroadcom",
|
||||
"LegacyAudio",
|
||||
"LegacyGPU",
|
||||
"PCIBridge"
|
||||
]
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"iMac12,1",
|
||||
"iMac12,2"
|
||||
],
|
||||
"patches": [
|
||||
"WifiAtheros",
|
||||
"EthernetBroadcom",
|
||||
"LegacyAudio",
|
||||
"LegacyGPU"
|
||||
]
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"iMac13,1",
|
||||
"iMac13,2"
|
||||
],
|
||||
"patches": [
|
||||
"WifiBCM94331"
|
||||
]
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"iMac14,1",
|
||||
"iMac14,2",
|
||||
"iMac14,3"
|
||||
],
|
||||
"patches": []
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"MacPro3,1"
|
||||
],
|
||||
"patches": [
|
||||
"WifiAtheros",
|
||||
"LegacyAudio",
|
||||
"MissingSSE42",
|
||||
"SSEEmulator",
|
||||
"DualSocket"
|
||||
]
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"MacPro4,1"
|
||||
],
|
||||
"patches": [
|
||||
"WifiAtheros",
|
||||
"DualSocket"
|
||||
]
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"MacPro5,1"
|
||||
],
|
||||
"patches": [
|
||||
"WifiBCM94322",
|
||||
"DualSocket"
|
||||
]
|
||||
},
|
||||
{
|
||||
"models": [
|
||||
"Xserve3,1"
|
||||
],
|
||||
"patches": [
|
||||
"DualSocket"
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -98,11 +98,13 @@ module.exports = {
|
||||
collapsable: false,
|
||||
sidebarDepth: 1,
|
||||
children: [
|
||||
'ACCEL',
|
||||
'TROUBLESHOOTING',
|
||||
'DEBUG',
|
||||
'UPDATE',
|
||||
'UNINSTALL',
|
||||
'ICNS',
|
||||
'WINDOWS',
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
74
docs/ACCEL.md
Normal file
@@ -0,0 +1,74 @@
|
||||
# Working Around Legacy Acceleration Issues
|
||||
|
||||
* [Downloading older non-Metal Apps](#downloading-older-non-metal-apps)
|
||||
* [Unable to run Zoom](#unable-to-run-zoom)
|
||||
* [Unable to grant special permissions to apps (ie. Camera Access to Zoom)](#unable-to-grant-special-permissions-to-apps-ie-camera-access-to-zoom)
|
||||
* [Keyboard Backlight broken](#keyboard-backlight-broken)
|
||||
* [Photos and Maps Apps Heavily Distorted](#photos-and-maps-apps-heavily-distorted)
|
||||
* [Cannot press "Done" when editing a Sidebar Widget](#cannot-press-done-when-editing-a-sidebar-widget)
|
||||
* [Wake from sleep heavily distorted on AMD/ATI in macOS 11.3 and newer](#wake-from-sleep-heavily-distorted-on-amd-ati-in-macos-11-3-and-newer)
|
||||
* [Unable to achieve GPU Acceleration on 2011 15" and 17" MacBook Pros](#unable-to-achieve-gpu-acceleration-on-2011-15-and-17-macbook-pros)
|
||||
|
||||
The below page is for users experiencing issues with their overall usage of macOS Big Sur and the Legacy Graphics Acceleration patches. Note that the following GPUs currently do not have acceleration support in Big Sur:
|
||||
|
||||
* AMD/ATI TeraScale 2 - HD5/6000 series
|
||||
* Intel 3rd and 4th Gen - GMA series
|
||||
|
||||
## Downloading older non-Metal Apps
|
||||
|
||||
Many Apple apps now have direct reliance on Metal for proper functioning, however legacy builds of these apps still do work in Big Sur. See below for archive of many apps such as Pages, iMovie, GarageBand.
|
||||
|
||||
* [Apple Apps for Non-Metal Macs](https://archive.org/details/apple-apps-for-non-metal-macs)
|
||||
|
||||
Note: This archive assumes that you own these copies of these apps through the Mac App Store, Dortania does not condone piracy
|
||||
|
||||
## Unable to run Zoom
|
||||
|
||||
Currently Zoom relies partially on Metal and so needs a small binary patch. Dosdude1 has provided a nice script for this:
|
||||
|
||||
* [Zoom Non-Metal Fix](http://dosdude1.com/catalina/zoomnonmetal-new.command.zip)
|
||||
|
||||
## Unable to grant special permissions to apps (ie. Camera Access to Zoom)
|
||||
|
||||
Due to the usage of `amfi_get_out_of_my_way=1`, macOS will fail to prompt users for special permissions upon application start as well as omit the entires in System Preferences. To work around this, we recommend users install [tccplus](https://github.com/jslegendre/tccplus) to manage permissions.
|
||||
|
||||
Example usage with Discord and microphone permissions:
|
||||
|
||||
```sh
|
||||
# Open Terminal and run the following commands
|
||||
cd ~/Downloads/
|
||||
chmod +x tccplus
|
||||
./tccplus add Microphone com.hnc.Discord
|
||||
```
|
||||
|
||||
## Keyboard Backlight broken
|
||||
|
||||
Due to forcing `hidd` into spinning up with the fallback mode enabled, this can break the OS's recognition of backlight keyboards. Thankfully the drivers themselves still do operate so applications such as [LabTick](https://www.macupdate.com/app/mac/22151/lab-tick) are able to set the brightness manually.
|
||||
|
||||
## Photos and Maps Apps Heavily Distorted
|
||||
|
||||
Due to the Metal Backend, the enhanced color output of these apps seems to heavily break overall UI usage. To work around this, [users reported](https://forums.macrumors.com/threads/macos-11-big-sur-on-unsupported-macs-thread.2242172/post-29870324) forcing the color output of their monitor from Billions to Millions of colors helped greatly. Apps easily allowing this customization are [SwitchResX](https://www.madrau.com), [ResXreme](https://macdownload.informer.com/resxtreme/) and [EasyRes](http://easyresapp.com).
|
||||
|
||||
## Cannot press "Done" when editing a Sidebar Widget
|
||||
|
||||
To work around this, simply press Tab to hover over and press spacebar to simulate a click.
|
||||
|
||||
## Wake from sleep heavily distorted on AMD/ATI in macOS 11.3 and newer
|
||||
|
||||
Unfortunately a very well known issue the community is investigating, current known solution is to simply downgrade to 11.2.3 or older until a proper fix can be found.
|
||||
|
||||
In the event Apple removes 11.2.3 from their catalogue, we've provided a mirror below:
|
||||
|
||||
* [Install macOS 11.2.3 20D91](https://archive.org/details/install-mac-os-11.2.3-20-d-91)
|
||||
|
||||
## Unable to achieve GPU Acceleration on 2011 15" and 17" MacBook Pros
|
||||
|
||||
Currently OpenCore Legacy Patcher doesn't have support for the TeraScale 2 series dGPUs found in the 15" and 17" models. Currently the best way to achieve graphics acceleration is to simply disable the dGPU and force the iGPU always.
|
||||
|
||||
The best way to achieve this is to boot Recovery (or Single User Mode if the dGPU refuses to function at all) and run the following command:
|
||||
|
||||
```sh
|
||||
nvram FA4CE28D-B62F-4C99-9CC3-6815686E30F9:gpu-power-prefs=%01%00%00%00
|
||||
```
|
||||
|
||||
This will disable the dGPU and allow graphics acceleration in Big Sur. Note that external display outputs are directly routed to the dGPU and therefore can no longer be used. Solutions such as a [DisplayLink Adapters](https://www.displaylink.com/products/usb-adapters) can work around this limitation.
|
||||
@@ -2,20 +2,23 @@
|
||||
|
||||
With OpenCore Legacy Patcher we recommend users go through the below table to understand what the benefits and drawbacks are compared to other patchers. There are positive and negatives to each and we feel transparency is most important when patching another users machine. There should be no grey areas where users may be mislead.
|
||||
|
||||
* Note: [Patched Sur](https://github.com/BenSova/Patched-Sur) and [MicropatcherAutomator](https://github.com/moosethegoose2213/automator-for-barrykn-micropatcher) are iterations of [BarryKN's micropatcher](https://github.com/barrykn/big-sur-micropatcher) and therefore share many of the same benefits and limitations. Patched Sur is used for this comparison as it's the most common form of BarryKN's patcher users will find.
|
||||
|
||||
| Features | [OpenCore Legacy Patcher](https://github.com/dortania/OpenCore-Legacy-Patcher/) | [Patched Sur](https://github.com/BenSova/Patched-Sur) |
|
||||
| :--- | :--- | :--- |
|
||||
| Over The Air Updates | <span style="color:#30BCD5">Native System Preferences, additionally supports Deltas (~2GB) for Metal GPUs</span> | <span style="color:red">Inside Patcher Sur app (~12GB), only available when InstallAssistants release</span> |
|
||||
| FileVault | <span style="color:#30BCD5">Supported on Metal GPUs</span> | <span style="color:red">Not supported</span> |
|
||||
| System Integrity Protection | <span style="color:#30BCD5">Fully enabled on Metal GPUs</span> | <span style="color:red">Disabled for early 2013 and older</span> |
|
||||
| Over The Air Updates | <span style="color:#30BCD5">Native System Preferences, additionally supports Deltas (~2GB) for Metal GPUs</span> | <span style="color:red">Inside Patcher Sur app (~12GB), only available when InstallAssistants release.</span> InstallAssistants generally available same day as System Preference updates, however developer betas will lag behind by 1 day compared to OTAs |
|
||||
| FileVault | <span style="color:#30BCD5">Supported on Metal GPUs</span> | <span style="color:red">Not supported</span> |
|
||||
| System Integrity Protection | <span style="color:#30BCD5">Fully enabled on Metal GPUs</span> | <span style="color:red">Disabled for early 2013 and older during the patching process and first boot afterwards, otherwise enabled</span> |
|
||||
| APFS Snapshots | <span style="color:#30BCD5">Fully enabled</span> | <span style="color:red">Disabled</span> |
|
||||
| User facing | <span style="color:red">TUI interface</span> | <span style="color:#30BCD5">SwiftUI interface, more user friendly</span> |
|
||||
| User facing | <span style="color:red">TUI interface</span> | <span style="color:#30BCD5">SwiftUI interface, more user friendly</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> |
|
||||
| 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:#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> |
|
||||
| El Capitan-era Wifi cards | <span style="color:#30BCD5">Supported</span> | <span style="colorred">Not supported</span> |
|
||||
| WPA Wireless Support | <span style="color:#30BCD5">Supported</span> | <span style="color:red">Minority may experience issues on early 2013 and older Models</span> |
|
||||
| Personal Hotspot Support | <span style="color:#30BCD5">Native</span> | <span style="color:red">Often requires extra steps to achieve on early 2013 and older Models</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> |
|
||||
| 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> |
|
||||
| Big Sur-styled Boot Picker | <span style="color:#30BCD5">Available</span>, though as a shim to the original boot picker | <span style="color:red">Not available</span> |
|
||||
| Hibernation Support | <span style="color:#30BCD5">Supports 3rd party SATA SSDs on 2011 and older models in addition to stock drives</span> | <span style="color:red">Only supports stock drives on 2011 and older models</span> |
|
||||
| Sidecar Support | <span style="color:#30BCD5">Supports any Mac with Metal Intel iGPU</span>, artifacting way exhibited on high movement screen content | <span style="color:red">Not supported at all</span> |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Now we finally get to boot OpenCore!
|
||||
|
||||
Reboot machine while holding `Option` to select the EFI Boot entry with the OpenCore icon:
|
||||
Reboot machine while holding `Option` to select the EFI Boot entry with the OpenCore icon (holding the `Control` key will make this the default boot entry):
|
||||
|
||||
* This will be the Mac Boot Picker
|
||||
|
||||
@@ -14,9 +14,8 @@ Now that you've loaded OpenCore, now select Install macOS!:
|
||||
|
||||

|
||||
|
||||
|
||||
After plenty of verbose booting, you will reach the installer screen! From there it's just like any normal macOS install. For an example of how the boot process looks, see the following video:
|
||||
|
||||
* [OpenCore Legacy Patcher Boot Process](https://www.youtube.com/watch?v=AN3zsbQV_n4)
|
||||
|
||||
# Once installed and booting, head to [Post-Installation](./POST-INSTALL.md)
|
||||
# Once installed and booting, head to [Post-Installation](./POST-INSTALL.md)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Now that we have a macOS installer, lets now build our OpenCore configuration!
|
||||
|
||||
First Download the latest release:
|
||||
First Download the latest release:
|
||||
|
||||
* [OpenCore Legacy Patcher Releases](https://github.com/dortania/Opencore-Legacy-Patcher/releases)
|
||||
|
||||
@@ -15,7 +15,7 @@ From here you have a couple important options:
|
||||
* Build OpenCore
|
||||
* Install OpenCore to USB/internal drive
|
||||
* Change Model
|
||||
* Patcher Settings
|
||||
* Patcher Settings
|
||||
|
||||
If you're patching for a different machine than you're running, please select "Change Model" and enter the updated SMBIOS. For more advanced users, you may also tweak the patcher's build settings via "Patcher Settings"
|
||||
|
||||
@@ -31,7 +31,6 @@ Next lets run `Install OpenCore to USB/internal drive`:
|
||||
| :--- | :--- |
|
||||
|  |  |
|
||||
|
||||
* If you have issues, please ensure you install OpenCore onto a FAT32 partition to ensure your Mac is able to boot it. You will need to format your drive as GUID/GPT in Disk Utility
|
||||
* If you have issues, please ensure you install OpenCore onto a FAT32 partition to ensure your Mac is able to boot it. You will need to format your drive as GUID/GPT in Disk Utility
|
||||
|
||||
|
||||
# Once finished, head to [Booting OpenCore and macOS](./BOOT.md)
|
||||
# Once finished, head to [Booting OpenCore and macOS](./BOOT.md)
|
||||
|
||||
@@ -8,9 +8,9 @@ With OpenCore Legacy Patcher, we include an extra binary called [OCLP-CLI](https
|
||||
* **--model xxxx**: override default model detection
|
||||
* ex. **--model iMac11,2**
|
||||
* **--metal_gpu xxxx**: override default GPU detection (ie. Nvidia, AMD)
|
||||
* **--metal_gpu Nvidia**
|
||||
* **--metal_gpu Nvidia**
|
||||
* **--smbios_spoof xxxx**: set spoofing mode, defaults to Minimal if no arg provided (ie. Minimal, Moderate, Advanced)
|
||||
* ex. **--smbios_spoof Moderate**
|
||||
* ex. **--smbios_spoof Moderate**
|
||||
* **--verbose**: enable verbose booting
|
||||
* **--debug_oc**: enable debug OpenCore
|
||||
* **--debug_kext**: enable debug kexts
|
||||
@@ -38,4 +38,4 @@ Example usage:
|
||||
sudo ./OCLP-CLI --patch_sys_vol
|
||||
```
|
||||
|
||||
Note, root volume patching needs to be run as sudo
|
||||
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 users who are less experienced, we recommend asking on the [OpenCore Patcher Paradise Discord Server](https://discord.gg/UbM8U75E) for help.
|
||||
* For users who are less experienced, we recommend asking on the [OpenCore Patcher Paradise Discord Server](https://discord.gg/rqdPgH8xSN) for help.
|
||||
|
||||
## Debugging yourself
|
||||
|
||||
@@ -12,7 +12,6 @@ The easiest way to debug yourself is via Patcher Settings. Here there are many d
|
||||
* "Enable OpenCore DEBUG"
|
||||
* "Enable Kext DEBUG"
|
||||
|
||||
|
||||
When you've enabled these 3 options, rebuild OpenCore and install to your drive. This will provide much greater debug information as well as write logs to the EFI Partition.
|
||||
|
||||
## Obtaining OpenCore logs from disk
|
||||
@@ -46,4 +45,4 @@ Now that you have proper logs, you can now [file issues with us](https://github.
|
||||
* Upload of your OpenCore log (if applicable)
|
||||
* Upload of your Kernel log (if applicable)
|
||||
|
||||
Additionally, please search whether the issue has been reported before. This avoids having duplicate issues.
|
||||
Additionally, please search whether the issue has been reported before. This avoids having duplicate issues.
|
||||
|
||||
@@ -4,18 +4,22 @@ OpenCore Legacy Patcher is a hobby project for us developers, and while we love
|
||||
|
||||
The best way to support us in all honesty is to donate any old hardware you no longer need, as this allows us to have machines to test locally and push fixes much faster. While we appreciate cash donations, this makes it much more difficult for us to handle as an organization.
|
||||
|
||||
Main hardware we'd appreciate:
|
||||
Main sections of help we'd appreciate:
|
||||
|
||||
* Any Mac you own
|
||||
* Donating any Mac you own
|
||||
* Does require SSE4,1 CPU to test on Sierra and newer however
|
||||
|
||||
* Donating any spare SATA SSDs
|
||||
* Having extra SSDs on hand allows us to quickly and easily test specific builds of macOS without having to wipe drives and reinstall as much
|
||||
* Aiding by buying items in our Amazon Wishlist
|
||||
* Currently we have a few members within Dortania testing so we recommend messaging the email listed below to see which member at the time would require something purchased the most
|
||||
|
||||
Additionally, hardware info dumps are greatly beneficial for us to determine what patches a machine might need:
|
||||
|
||||
* [IORegistryExplorer](https://github.com/khronokernel/IORegistryClone/blob/master/ioreg-210.zip?raw=true)
|
||||
* `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
|
||||
* Note: We want IOReg dumps of hardware not running on OpenCore, instead running a clean, officially supported OS by the machine
|
||||
|
||||
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 or what to buy us something, please contact us at the following email:
|
||||
|
||||
* khronokernel@icloud.com
|
||||
|
||||
@@ -25,8 +29,7 @@ Current hardware we own:
|
||||
| :--- | :--- | :--- | :--- | :--- |
|
||||
| MacBook7,1 | Penryn | GT320M | Dhinak | N/A |
|
||||
| MacBook7,1 | Penryn | GT320M | Mykola | N/A |
|
||||
| MacBookPro5,3 | Penryn | 9400M + 9600M | Dhinak | Display's partially broken |
|
||||
| Macmini4,1 | Penryn | GT320M | Dhinak | N/A |
|
||||
| iMac11,2 | Clarksdale | HD4670 | Mykola | N/A |
|
||||
|
||||
|
||||
<!-- | MacBookPro5,3 | Penryn | 9400M + 9600M | Dhinak | Display's partially broken | -->
|
||||
<!-- | Macmini4,1 | Penryn | GT320M | Dhinak | N/A | -->
|
||||
| MacPro3,1 | Penryn | HD5770, RX570, GT710 | Mykola | N/A |
|
||||
|
||||
@@ -6,4 +6,4 @@ OpenCore Legacy Patcher itself is actually quite a "dumb" program, and essential
|
||||
|
||||
To understand a bit more of how OpenCore is able revive older Macs in such a native-like way, we need to go over *how* OpenCore works with your Mac:
|
||||
|
||||

|
||||

|
||||
|
||||
@@ -2,12 +2,10 @@
|
||||
|
||||
For users who want to customize your setup to be more personal, OpenCore does allow for custom icons and images in the boot picker.
|
||||
|
||||
|
||||
* [Custom OpenCore icons](#custom-opencore-icons)
|
||||
* [Custom Mac Boot Picker icons](#custom-mac-boot-picker-icons)
|
||||
* [Installing updated icons](#installing-updated-icons)
|
||||
|
||||
|
||||
# Custom OpenCore icons
|
||||
|
||||
To generate custom OpenCore icons, you'll need the following:
|
||||
@@ -32,7 +30,6 @@ To generate custom OpenCore icons, you'll need the following:
|
||||
|
||||
Note, for each image we recommend having one of double the size. This ensures that icons are scaled correctly since .icns support dedicated images depending on HiDPI or not.
|
||||
|
||||
|
||||
Once you have a custom image you want to use(for example, as a background), download the [latest release of OpenCorePkg](https://github.com/acidanthera/OpenCorePkg/releases) and enter the `Utilities/icnspack/` folder:
|
||||
|
||||

|
||||
@@ -42,6 +39,7 @@ Now `cd` this folder in terminal and run the following:
|
||||
```sh
|
||||
./icnspack Background.icns <insert_x1_image> <insert_x2_image>
|
||||
```
|
||||
|
||||
Once done, you'll see your custom icon generated in `icnspack`'s folder:
|
||||
|
||||

|
||||
@@ -54,7 +52,7 @@ To generate legacy icons, you'll need the following:
|
||||
|
||||
* A machine running macOS 10.4 through 10.11
|
||||
* Icon Composer.app (Requires Apple Developer Account for official download)
|
||||
* Users without the developer account can find a mirrors here:
|
||||
* Users without the developer account can find a mirrors here:
|
||||
* [Icon Composer 10.6](https://github.com/dortania/OpenCore-Legacy-Patcher/blob/main/docs/Icon-Composer-10.6.zip)
|
||||
* [Icon Composer 10.11](https://github.com/dortania/OpenCore-Legacy-Patcher/blob/main/docs/Icon-Composer-10.11.zip)
|
||||
* PNG Image you wish to convert
|
||||
@@ -102,4 +100,4 @@ To update the Mac Boot Picker icons is actually quite simple, on the root of you
|
||||
|
||||

|
||||
|
||||
Now reboot and you'll see the new icon!
|
||||
Now reboot and you'll see the new icon!
|
||||
|
||||
@@ -14,6 +14,7 @@ The simplest way to download macOS installs would be to use installinstallmacos:
|
||||
```sh
|
||||
[ ! -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:
|
||||
|
||||
```
|
||||
|
||||
@@ -10,26 +10,13 @@ This patcher is made of multiple external applications from different people and
|
||||
* [CPUFriend](https://github.com/acidanthera/CPUFriend/blob/master/LICENSE)
|
||||
* [RestrictEvents](https://github.com/acidanthera/RestrictEvents/blob/master/LICENSE.txt)
|
||||
* [NightShiftEnabler](https://github.com/cdf/NightShiftEnabler/blob/master/LICENSE.txt)
|
||||
* [Innie](https://github.com/cdf/Innie/blob/master/LICENSE.txt)
|
||||
* GPL 2.0
|
||||
* [NVMeFix](https://github.com/acidanthera/NVMeFix/blob/master/LICENSE.txt)
|
||||
* All rights reserved to respective authors
|
||||
* [AAAMouSSE](https://forums.macrumors.com/threads/mp3-1-others-sse-4-2-emulation-to-enable-amd-metal-driver.2206682/) - Syncretic
|
||||
* [telemetrap](https://forums.macrumors.com/threads/mp3-1-others-sse-4-2-emulation-to-enable-amd-metal-driver.2206682/post-28447707) - Syncretic
|
||||
* [SidecarFixup](https://github.com/khronokernel/SidecarFixup) - Khronokernel
|
||||
* Apple Binaries - Apple Inc.
|
||||
|
||||
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.
|
||||
```
|
||||
Remaining files within OpenCore Legacy Patcher are copyrighted 2020-2021 Mykola Grymalyuk & Dhinak G. For integration into other projects, please request written permission.
|
||||
|
||||
@@ -20,7 +20,7 @@ Regarding OS support, see below:
|
||||
|
||||
| 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.9 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 | May support 10.4 and newer (in a potentially broken state). No support provided. |
|
||||
|
||||
### MacBook
|
||||
@@ -30,10 +30,10 @@ Regarding OS support, see below:
|
||||
| MacBook1,1 | Mid-2006 | <span style="color:red"> NO </span> | 32-Bit CPU limitation |
|
||||
| MacBook2,1 | Late 2006 | ^^ | 32-Bit Firmware limitation |
|
||||
| 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) |
|
||||
| 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 | ^^ | - 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/> |
|
||||
| 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 |
|
||||
| MacBook5,1 | Late 2008 | ^^ | - GPU Acceleration in Public Beta, see current issues ([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108))<br/> |
|
||||
| MacBook5,2 | Early 2009 | ^^ | - GPU Acceleration in Public Beta, see current issues ([#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 | ^^ | - GPU Acceleration in Public Beta, see current issues ([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108))<br/> |
|
||||
| MacBook7,1 | Mid-2010 | ^^ | ^^ |
|
||||
|
||||
### MacBook Air
|
||||
@@ -41,7 +41,7 @@ Regarding OS support, see below:
|
||||
| SMBIOS | Year | Supported | Comment |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| MacBookAir1,1 | Early 2008 | <span style="color:red"> NO </span> | Requires SSE4.1 CPU |
|
||||
| MacBookAir2,1 | Late 2008 |<span style="color:#30BCD5"> YES </span> | No GPU Acceleration in Big Sur([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108)) |
|
||||
| MacBookAir2,1 | Late 2008 |<span style="color:#30BCD5"> YES </span> | GPU Acceleration in Public Beta, see current issues ([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108)) |
|
||||
| MacBookAir3,1 | Late 2010 | ^^ | ^^ |
|
||||
| MacBookAir3,2 | ^^ | ^^ | ^^ |
|
||||
| MacBookAir4,1 | Mid-2011 | ^^ | ^^ |
|
||||
@@ -58,7 +58,7 @@ Regarding OS support, see below:
|
||||
| MacBookPro2,1 | Late 2006 | ^^ | 32-Bit Firmware limitation |
|
||||
| MacBookPro2,2 | Late 2006 | ^^ | ^^ |
|
||||
| MacBookPro3,1 | Mid-2007 | ^^ | Requires SSE4.1 CPU |
|
||||
| MacBookPro4,1 | Early 2008 | <span style="color:#30BCD5"> YES </span> | No GPU Acceleration in Big Sur([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108)) |
|
||||
| MacBookPro4,1 | Early 2008 | <span style="color:#30BCD5"> YES </span> | GPU Acceleration in Public Beta, see current issues ([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108)) |
|
||||
| MacBookPro5,1 | Late 2008 | ^^ | ^^ |
|
||||
| MacBookPro5,2 | Early 2009 | ^^ | ^^ |
|
||||
| MacBookPro5,3 | Mid-2009 | ^^ | ^^ |
|
||||
@@ -81,7 +81,7 @@ Regarding OS support, see below:
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| Macmini1,1 | Early 2006 | <span style="color:red"> NO </span> | 32-Bit CPU limitation |
|
||||
| Macmini2,1 | Mid-2007 | ^^ | 32-Bit Firmware limitation |
|
||||
| Macmini3,1 | Early 2009 | <span style="color:#30BCD5"> YES </span> | No GPU Acceleration in Big Sur([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108)) |
|
||||
| Macmini3,1 | Early 2009 | <span style="color:#30BCD5"> YES </span> | GPU Acceleration in Public Beta, see current issues ([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108)) |
|
||||
| Macmini4,1 | Mid-2010 | ^^ | ^^ |
|
||||
| Macmini5,1 | Mid-2011 | ^^ | ^^ |
|
||||
| Macmini5,2 | ^^ | ^^ | ^^ |
|
||||
@@ -98,10 +98,10 @@ Regarding OS support, see below:
|
||||
| iMac5,1 | Late 2006 | ^^ | 32-Bit Firmware limitation |
|
||||
| iMac5,2 | ^^ | ^^ | ^^ |
|
||||
| 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/>- 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)))<br/>- Brightness control partially supported on Nvidia GPUs, AMD unsupported |
|
||||
| iMac7,1 | Mid-2007 | <span style="color:#30BCD5"> YES </span> | - Requires an [SSE4.1 CPU Upgrade](https://lowendmac.com/2018/penryn-t9300-9500-cpu-upgrades-for-the-2007-imac/)<br/>- GPU Acceleration in Public Beta, see current issues ([#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 | ^^ | - GPU Acceleration in Public Beta, see current issues ([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108)))<br/>- Brightness control partially supported on Nvidia GPUs, AMD unsupported |
|
||||
| iMac9,1 | Early 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) |
|
||||
| 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) <br/>- GPU Acceleration in Public Beta, see current issues ([#108](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108)) |
|
||||
| iMac11,1 | ^^ | ^^ | ^^ |
|
||||
| iMac11,2 | Mid-2010 | ^^ | ^^ |
|
||||
| iMac11,3 | ^^ | ^^ | ^^ |
|
||||
@@ -114,7 +114,7 @@ Regarding OS support, see below:
|
||||
| iMac14,2 | ^^ | ^^ | ^^ |
|
||||
| iMac14,3 | ^^ | ^^ | ^^ |
|
||||
|
||||
* For iMac10,1 through iMac12,x, we highly recommend users upgrade the GPU to a Metal supported model. See here for more information: [iMac late 2009 to mid-2012 Graphics Card Upgrade Guide](https://forums.macrumors.com/threads/2011-imac-graphics-card-upgrade.1596614/?post=17425857#post-17425857)
|
||||
* For iMac10,1 through iMac12,x, we highly recommend users upgrade the GPU to a Metal supported model. See here for more information: [iMac late 2009 to mid-2011 Graphics Card Upgrade Guide](https://forums.macrumors.com/threads/2011-imac-graphics-card-upgrade.1596614/?post=17425857#post-17425857)
|
||||
|
||||
### Mac Pro
|
||||
|
||||
@@ -126,7 +126,6 @@ Regarding OS support, see below:
|
||||
| MacPro4,1 | Early 2009 | ^^ | <span style="color:green"> Everything is supported as long as GPU is Metal capable </span> |
|
||||
| MacPro5,1 | Mid-2010, Mid-2012 | ^^ | ^^ |
|
||||
|
||||
|
||||
### Xserve
|
||||
|
||||
| SMBIOS | Year | Supported | Comment |
|
||||
|
||||
@@ -100,11 +100,12 @@ Below is a run down of the main logic OpenCore Legacy Patcher uses to gain nativ
|
||||
* Reason: Fixes DRM support on models with upgraded AMD Metal GPUs
|
||||
* Logic: Adds args to NVRAM
|
||||
* Models: Models with upgraded AMD Metal GPUs
|
||||
|
||||
### UEFI -> ProtocolOverrides
|
||||
|
||||
* GopPassThrough
|
||||
* Reason: Used for proper output on machines with UGA firmware but GOP GPU
|
||||
* Logic: Provide GOP protocol instances on top of UGA protocol instances
|
||||
* Logic: Provide GOP protocol instances on top of UGA protocol instances
|
||||
* Models: MacPro3,1, MacBook4,1 iMac7,1-8,1
|
||||
|
||||
:::
|
||||
@@ -191,7 +192,6 @@ Below is an explanation of what Kexts OpenCore Legacy Patcher will inject into m
|
||||
* Models: All models require
|
||||
:::
|
||||
|
||||
|
||||
## On-Disk Patches
|
||||
|
||||
Unfortunately certain on-disk patches are required to achieve full functionality. Below is a breakdown of patches supported
|
||||
@@ -226,13 +226,15 @@ Note, GPU Acceleration Patches are not public yet, the below section is simply d
|
||||
* GeForceGA.bundle
|
||||
* GeForceTesla.kext
|
||||
* Skip IOFree Panic - Mojave+
|
||||
* At Offset `0x5CF9A` replace following bytes with `0xEB`
|
||||
* At Offset `0x5CF9A` replace following bytes with `0xEB`
|
||||
* Avoids `addMemoryRegion/removeMemoryRegion` calls
|
||||
* At Offset `0x5527` and `0x77993`, replace following bytes with `0x909090909090`
|
||||
* GeForceTeslaGLDriver.bundle
|
||||
* GeForceTeslaVADriver.bundle
|
||||
* NVDANV50HalTesla.kext
|
||||
* NVDAResmanTesla.kext
|
||||
* 0x1ea59a - 0x1ea5b3: nop
|
||||
* Replace VSLGestalt to IOLockLock or any other known symbol of the same length.
|
||||
|
||||
* AMD/ATI Binaries
|
||||
* AMD2400Controller.kext
|
||||
@@ -271,6 +273,8 @@ Note, GPU Acceleration Patches are not public yet, the below section is simply d
|
||||
* AppleIntelHD3000GraphicsGLDriver.bundle
|
||||
* AppleIntelHD3000GraphicsVADriver.bundle
|
||||
* AppleIntelSNBGraphicsFB.kext
|
||||
* Board ID Patch
|
||||
* Replace original Board ID with updated model
|
||||
* AppleIntelSNBVA.bundle
|
||||
|
||||
### Frameworks
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
* [Booting without USB drive](#booting-without-usb-drive)
|
||||
* [Booting seamlessly without Verbose or OpenCore Picker](#booting-seamlessly-without-verbose-or-opencore-picker)
|
||||
* [Applying Post Install Volume Patches](#applying-post-install-volume-patches)
|
||||
|
||||
## Booting without USB drive
|
||||
|
||||
@@ -27,9 +28,21 @@ Here you can change different patcher settings, however the main interest is:
|
||||
|
||||
Once you've toggled them both off, build your OpenCore EFI once again and install to your desired drive. Now to show the OpenCore selector, you can simply hold down the "ESC" key while clicking on EFI boot, then you can release the "ESC" key when you see the cursor arrow at the top left.
|
||||
|
||||
**Note**: For users who need Post-Install Volume patches for Audio support, you **must** disable the following settings in "Patcher Settings" when building and installing your new OpenCore:
|
||||
## Applying Post Install Volume Patches
|
||||
|
||||
**Note**: For users who need Post-Install Volume patches for legacy video acceleration support, you **must** disable the following settings in "Patcher Settings" when building and installing your new OpenCore:
|
||||
|
||||
* SIP: Disabled
|
||||
* SecureBootModel: Disabled
|
||||
|
||||
Once set, rebuild OpenCore, install to drive and reboot. Then, Post-Install Volume patches will run just fine
|
||||
Once set, rebuild OpenCore, install to drive and reboot. Then, Post-Install Volume patches will run just fine
|
||||
|
||||
To apply the Post-Install Volume patches [to test out the Beta Graphics Acceleration Patches system](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/108), select option #3 as shown below:
|
||||
|
||||

|
||||
|
||||
And go ahead to option #1 and let the OCLP patcher apply the needed legacy video patches.
|
||||
|
||||

|
||||
|
||||
Reboot your system and check out the now working graphics acceleration on your legacy system. This is still Beta software.
|
||||
|
||||
@@ -5,12 +5,20 @@ This is a sophisticated boot loader used to inject and patch data in memory, ins
|
||||
* System Integrity Protection, FileVault 2, .im4m Secure Boot and Vaulting
|
||||
* Native OTA OS DELTA updates on all Macs
|
||||
* Recovery OS, Safe Mode and Single-user Mode booting
|
||||
* WPA Wifi and Personal Hotspot support
|
||||
|
||||
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 [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 advanced troubleshooting, we highly recommend users check out the [OpenCore Patcher Paradise Discord Server](https://discord.gg/rqdPgH8xSN) 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)
|
||||
|
||||
## Patcher Warnings
|
||||
|
||||
Since this patcher tricks macOS into thinking you're running a newer Mac, certain functionality may be broken:
|
||||
|
||||
* Boot Camp Assistant.app
|
||||
* We recommend following our [guide on getting a UEFI Windows Install working](./WINDOWS.md). Legacy MBR Based installs won't show up in OpenCore
|
||||
|
||||
## How do I get started?
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
To aid users in troubleshooting, we've compiled a list of users who've reported success with OpenCore Legacy patcher as well as the version used. This should aid users in verifying whether issues with the patcher are regression-related with newer versions.
|
||||
|
||||
|
||||
### MacBook
|
||||
|
||||
| SMBIOS | Tested | Tester | Comment |
|
||||
@@ -17,12 +16,12 @@ To aid users in troubleshooting, we've compiled a list of users who've reported
|
||||
|
||||
### MacBook Air
|
||||
|
||||
| SMBIOS | Year | Supported | Comment |
|
||||
| SMBIOS | Tested | Tester | Comment |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| MacBookAir2,1 | No reports | N/A | N/A |
|
||||
| MacBookAir3,1 | ^^ | ^^ | ^^ |
|
||||
| MacBookAir3,2 | ^^ | ^^ | ^^ |
|
||||
| MacBookAir4,1 | ^^ | ^^ | ^^ |
|
||||
| MacBookAir3,2 | <span style="color:#30BCD5"> YES </span> | houser42 | - Stock model <br/>- Patcher version unknown |
|
||||
| MacBookAir4,1 | No reports | N/A | N/A |
|
||||
| MacBookAir4,2 | ^^ | ^^ | ^^ |
|
||||
| MacBookAir5,1 | <span style="color:#30BCD5"> YES </span> | Ausdauersportler | - Stock Model<br/>- Patcher version 0.0.9 |
|
||||
| ^^ | ^^ | webg3 | Stock Model |
|
||||
@@ -42,11 +41,11 @@ To aid users in troubleshooting, we've compiled a list of users who've reported
|
||||
| MacBookPro5,5 | ^^ | ^^ | ^^ |
|
||||
| MacBookPro6,1 | ^^ | ^^ | ^^ |
|
||||
| MacBookPro6,2 | <span style="color:#30BCD5"> YES </span> | Jakeluke | - Stock model, dGPU broken <br/>- Patcher version unknown |
|
||||
| MacBookPro7,1 | No reports | N/A | N/A |
|
||||
| MacBookPro8,1 | <span style="color:#30BCD5"> YES </span> | AvaQueen | - Stock model <br/>- Patcher version 0.0.19 |
|
||||
| MacBookPro7,1 | ^^ | fussel132 | - Stock model <br/>-Patcher version v0.1.2 |
|
||||
| MacBookPro8,1 | ^^ | AvaQueen | - Stock model <br/>- Patcher version 0.0.19 |
|
||||
| MacBookPro8,2 | ^^ | air.man | - Stock model, dGPU disabled <br/>- Patcher version 0.0.22 |
|
||||
| ^^ | ^^ | cboukouv | - Stock model <br/>- Patcher version 0.0.19 |
|
||||
| MacBookPro8,3 | No reports | N/A | N/A |
|
||||
| MacBookPro8,3 | ^^ | lulujyc | - Stock model, dGPU disabled <br/>- Patcher version 0.1.4 |
|
||||
| MacBookPro9,1 | <span style="color:#30BCD5"> YES </span> | jbdamiano | - Stock model <br/>- Patcher version 0.0.19 |
|
||||
| ^^ | ^^ | dennes544 | ^^|
|
||||
| ^^ | ^^ | cgrazy | ^^ |
|
||||
@@ -106,7 +105,8 @@ To aid users in troubleshooting, we've compiled a list of users who've reported
|
||||
|
||||
| SMBIOS | Tested | Tester | Comment |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| MacPro3,1 | <span style="color:#30BCD5"> YES </span> | christiann | - Upgraded with RX 560 and BCM94322<br/>- Stock Bluetooth card removed<br/>- Patcher version 0.0.21 |
|
||||
| MacPro3,1 | <span style="color:#30BCD5"> YES </span> | MykolaG | - Upgraded with RX 470 and BCM94360CD<br/>- Stock Bluetooth card removed<br/>- Patcher version 0.1.6 |
|
||||
| ^^ | ^^ | christiann | - Upgraded with RX 560 and BCM94322<br/>- Stock Bluetooth card removed<br/>- Patcher version 0.0.21 |
|
||||
| ^^ | ^^ | gw463 | - Upgraded GTX 680<br/>- Upgraded BCM94360<br/>- Patcher version 0.0.22 |
|
||||
| ^^ | ^^ | AlexSakha67 | - Upgraded R9 280<br/>- Patcher version 0.0.20 |
|
||||
| ^^ | ^^ | nekton1 | - Upgraded GTX 680<br/>- Patcher version 0.0.20 |
|
||||
|
||||
@@ -59,7 +59,6 @@ By default, the patcher will try to hide extra boot options such as recovery fro
|
||||
|
||||
Full error: "Your Mac needs a firmware update in order to install to this Volume. Please select a Mac OS Extended (Journaled) volume instead."
|
||||
|
||||
|
||||
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
|
||||
@@ -68,4 +67,4 @@ With OCLP v0.0.22, we've added support for brightness control on many models. Ho
|
||||
|
||||
To work-around, we recommend user try out the below app:
|
||||
|
||||
* [Brightness Slider](https://actproductions.net/free-apps/brightness-slider/)
|
||||
* [Brightness Slider](https://actproductions.net/free-apps/brightness-slider/)
|
||||
|
||||
@@ -3,10 +3,13 @@
|
||||
To remove OpenCore is actually quite simply:
|
||||
|
||||
1. Remove OpenCore either from the USB or internal drive
|
||||
* You'll need to mount the drive's EFI partition, and delete the EFI/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)
|
||||
2. Reset NVRAM
|
||||
* [Reset NVRAM or PRAM on your Mac](https://support.apple.com/HT204063)
|
||||
|
||||
Know that if you are on Big Sur when you remove the EFI folder, your Mac will no longer boot and show the prohibited symbol. Be ready to install an older version of macOS before you uninstall OpenCore.
|
||||
* 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)
|
||||
|
||||
2. Reset NVRAM
|
||||
|
||||
* [Reset NVRAM or PRAM on your Mac](https://support.apple.com/HT204063)
|
||||
|
||||
Know that if you are on Big Sur when you remove the EFI folder, your Mac will no longer boot and show the prohibited symbol. Be ready to install an older version of macOS before you uninstall OpenCore.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Updating OpenCore and Co.
|
||||
# Updating OpenCore and Co
|
||||
|
||||
With OpenCore Legacy Patcher, generally there's very little reason for users to update the OpenCore installed on their machine unless you feel there's a benefit with new versions for your setup.
|
||||
|
||||
@@ -19,4 +19,4 @@ nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:OCLP-Version
|
||||
|
||||

|
||||
|
||||
From this, we can see we're running a RELEASE version of OpenCore 0.6.8 built on March 27th, 2021 with Patcher Version 0.0.20!
|
||||
From this, we can see we're running a RELEASE version of OpenCore 0.6.8 built on March 27th, 2021 with Patcher Version 0.0.20!
|
||||
|
||||
88
docs/WINDOWS.md
Normal file
@@ -0,0 +1,88 @@
|
||||
# Installing UEFI Windows 10
|
||||
|
||||
* Guide based off of [cdf's Mac Pro Thread](https://forums.macrumors.com/threads/opencore-on-the-mac-pro.2207814/)
|
||||
|
||||
To install UEFI is actually super simple! All it requires is to boot Windows' Installer through OpenCore to force a UEFI setup. Here we'll be going a bit more step by step in the process including partitioning and such.
|
||||
|
||||
* Note: UEFI Windows is generally quite usable for Arrendale and newer models, however machines with Penryn CPUs may experience issues
|
||||
* Recommended Models:
|
||||
* MacBookAir4,x and newer
|
||||
* MacBookPro8,x and newer
|
||||
* Macmini5,x and newer
|
||||
* iMac11,x and newer
|
||||
* MacPro4,1 and newer
|
||||
* Xserve3,1 and newer
|
||||
|
||||
Once you know your model is supported, you're good to go with the rest of this guide
|
||||
|
||||
## Disk Formatting
|
||||
|
||||
To start off, we'll need the following:
|
||||
|
||||
* An 8GB USB drive for the Windows Installer
|
||||
* Minimum of 30GB of free space on whatever drive you want to install Windows too
|
||||
|
||||
First, lets format out drives as follows:
|
||||
|
||||
### USB Drive Formatting
|
||||
|
||||
Open Disk Utility in macOS and format the USB Drive as ExFat with MBR Scheme:
|
||||
|
||||

|
||||
|
||||
### Disk Formatting
|
||||
|
||||
Next, grab the drive you wish to install Windows on and partition it as ExFat (If formatting entire drive, ensure it's GUID Partition Table):
|
||||
|
||||

|
||||
|
||||
If you plan to use the same hard drive for macOS and Windows, we recommend creating a dedicated partition just for OpenCore. This lets Windows have the ESP to itself and OpenCore can stay within it's own bubble.
|
||||
|
||||
Recommended size is 200MB and the partition format **must** be FAT32 for OpenCore to operate correctly. You will next want to install OpenCore onto the new partition, either moving from the ESP with [MountEFI](https://github.com/corpnewt/MountEFI) or rerunning the OpenCore-Patcher.app
|
||||
|
||||
* Note: For machines with dedicated drives for Windows, having different partitions for OpenCore is not required
|
||||
* Note 2: We recommend uninstalling OpenCore from the ESP/EFI Partition when you create this new OpenCore partition to avoid confusion when selecting OpenCore builds in the Mac's boot picker
|
||||
|
||||

|
||||
|
||||
## Creating the Installer
|
||||
|
||||
First up, lets grab Windows's Installer at the below link:
|
||||
|
||||
* [Download Windows 10 Disc Image (ISO File)](https://www.microsoft.com/en-ca/software-download/windows10ISO)
|
||||
|
||||
Next, mount the Windows 10 ISO:
|
||||
|
||||

|
||||
|
||||
The open terminal and run `rsync` on the USB drive (replace CCCOMA_X64 with the mounted ISO's name, as well as replacing W10USB with your USB drive's name):
|
||||
|
||||
```
|
||||
rsync -r -P /Volumes/CCCOMA_X64/ /Volumes/W10USB
|
||||
```
|
||||
|
||||

|
||||
|
||||
Command will take some time, so sit back and get some coffee. Once finished, the root of the USB drive should look as follows:
|
||||
|
||||
* Ensure that these folders and files are on the root, otherwise the USB will not boot
|
||||
|
||||

|
||||
|
||||
Once done, lets reboot into OpenCore's Menu and you'll see a new Windows' entry:
|
||||
|
||||
* Note: Do not boot the installer outside of OpenCore as this will default back to the old MBR BIOS setup. Booting through OpenCore ensures Windows uses UEFI
|
||||
|
||||

|
||||
|
||||
From there, install Windows as normal and you'll get a new BootCamp entry in OpenCore's picker when done!
|
||||
|
||||
* Don't forget to run BootCamp's utilities installer as well to ensure Wifi and such are functioning correctly. This can be downloaded from the BootCamp Assistant app in macOS
|
||||
|
||||

|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### iMac12,x Bluescreen after driver installation
|
||||
|
||||
Currently Intel's iGPU drivers for the HD 3000 series do not support UEFI booting in Windows. Recommended solution is to simply disable: [iMac 12,1 Windows 10 Boot Loop – Fix Intel Graphics issue](https://zzq.org/?p=39)
|
||||
BIN
images/oc-windows-done.png
Normal file
|
After Width: | Height: | Size: 62 KiB |
BIN
images/oc-windows.png
Normal file
|
After Width: | Height: | Size: 62 KiB |
BIN
images/root-patch.png
Normal file
|
After Width: | Height: | Size: 260 KiB |
BIN
images/root-patcher-2.png
Normal file
|
After Width: | Height: | Size: 292 KiB |
BIN
images/rsync-progess.png
Normal file
|
After Width: | Height: | Size: 838 KiB |
BIN
images/windows-iso.png
Normal file
|
After Width: | Height: | Size: 432 KiB |
BIN
images/windows-mbr-format.png
Normal file
|
After Width: | Height: | Size: 613 KiB |
BIN
images/windows-partition-1.png
Normal file
|
After Width: | Height: | Size: 302 KiB |
BIN
images/windows-partition-2.png
Normal file
|
After Width: | Height: | Size: 308 KiB |
BIN
images/windows-rsync-done.png
Normal file
|
After Width: | Height: | Size: 456 KiB |
BIN
images/windows-rsync.png
Normal file
|
After Width: | Height: | Size: 280 KiB |
BIN
payloads/ACPI/SSDT-PCI.aml
Normal file
27
payloads/ACPI/Source/SSDT-CPBG.dsl
Normal file
@@ -0,0 +1,27 @@
|
||||
/* Disable the non-existant Co-processor Bridge found on Arrendale, Lynnfield and Clarkdale Macs.
|
||||
* IOPCIFamily in macOS 11.0 up-to 11.2 was unable to handle ACPI probing when device was not present,
|
||||
* therefore kernel panicing the machine.
|
||||
*
|
||||
* This SSDT reports the device as disabled avoiding the probing.
|
||||
* Not required for macOS 11.2 and newer, however recommended to alliviate pottential issues
|
||||
*/
|
||||
DefinitionBlock ("", "SSDT", 2, "DRTNIA", "CPBGoff", 0x00001000)
|
||||
{
|
||||
External (_SB_.CPBG, DeviceObj)
|
||||
|
||||
Scope (_SB.CPBG)
|
||||
{
|
||||
Method (_STA, 0, NotSerialized) // _STA: Status
|
||||
{
|
||||
If (_OSI ("Darwin"))
|
||||
{
|
||||
Store ("Disabling incompatible CPBG Device", Debug)
|
||||
Return (Zero) // Disable only in macOS incase Windows or Linux requires
|
||||
}
|
||||
Else
|
||||
{
|
||||
Return (0x0F)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
165
payloads/ACPI/Source/SSDT-PCI.dsl
Normal file
@@ -0,0 +1,165 @@
|
||||
/* Removes PCI0's 32-bit Allocation Limitation to resolve PCIe device support on Sandy and
|
||||
* Ivy Bridge Macs, mainly applicable for Audio and eGPU support.
|
||||
* BUF0 to BUF1 patch required to override exisiting BuffObj in DSDT.
|
||||
*
|
||||
* Source:
|
||||
* https://egpu.io/forums/pc-setup/fix-dsdt-override-to-correct-error-12/
|
||||
*/
|
||||
DefinitionBlock ("", "SSDT", 2, "DRTNIA", "WinPCI", 0x00000000)
|
||||
{
|
||||
External (_SB_.PCI0, DeviceObj)
|
||||
|
||||
Scope (\_SB.PCI0)
|
||||
{
|
||||
Store ("Injecting new BUF0 BuffObj", Debug)
|
||||
Name (BUF0, ResourceTemplate ()
|
||||
{
|
||||
WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
|
||||
0x0000, // Granularity
|
||||
0x0000, // Range Minimum
|
||||
0x00FF, // Range Maximum
|
||||
0x0000, // Translation Offset
|
||||
0x0100, // Length
|
||||
,, )
|
||||
DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
|
||||
0x00000000, // Granularity
|
||||
0x00000000, // Range Minimum
|
||||
0x00000CF7, // Range Maximum
|
||||
0x00000000, // Translation Offset
|
||||
0x00000CF8, // Length
|
||||
,, , TypeStatic, DenseTranslation)
|
||||
IO (Decode16,
|
||||
0x0CF8, // Range Minimum
|
||||
0x0CF8, // Range Maximum
|
||||
0x01, // Alignment
|
||||
0x08, // Length
|
||||
)
|
||||
DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
|
||||
0x00000000, // Granularity
|
||||
0x00000D00, // Range Minimum
|
||||
0x0000FFFF, // Range Maximum
|
||||
0x00000000, // Translation Offset
|
||||
0x0000F300, // Length
|
||||
,, , TypeStatic, DenseTranslation)
|
||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
|
||||
0x00000000, // Granularity
|
||||
0x000A0000, // Range Minimum
|
||||
0x000BFFFF, // Range Maximum
|
||||
0x00000000, // Translation Offset
|
||||
0x00020000, // Length
|
||||
,, , AddressRangeMemory, TypeStatic)
|
||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
|
||||
0x00000000, // Granularity
|
||||
0x000C0000, // Range Minimum
|
||||
0x000C3FFF, // Range Maximum
|
||||
0x00000000, // Translation Offset
|
||||
0x00004000, // Length
|
||||
,, , AddressRangeMemory, TypeStatic)
|
||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
|
||||
0x00000000, // Granularity
|
||||
0x000C4000, // Range Minimum
|
||||
0x000C7FFF, // Range Maximum
|
||||
0x00000000, // Translation Offset
|
||||
0x00004000, // Length
|
||||
,, , AddressRangeMemory, TypeStatic)
|
||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
|
||||
0x00000000, // Granularity
|
||||
0x000C8000, // Range Minimum
|
||||
0x000CBFFF, // Range Maximum
|
||||
0x00000000, // Translation Offset
|
||||
0x00004000, // Length
|
||||
,, , AddressRangeMemory, TypeStatic)
|
||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
|
||||
0x00000000, // Granularity
|
||||
0x000CC000, // Range Minimum
|
||||
0x000CFFFF, // Range Maximum
|
||||
0x00000000, // Translation Offset
|
||||
0x00004000, // Length
|
||||
,, , AddressRangeMemory, TypeStatic)
|
||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
|
||||
0x00000000, // Granularity
|
||||
0x000D0000, // Range Minimum
|
||||
0x000D3FFF, // Range Maximum
|
||||
0x00000000, // Translation Offset
|
||||
0x00004000, // Length
|
||||
,, , AddressRangeMemory, TypeStatic)
|
||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
|
||||
0x00000000, // Granularity
|
||||
0x000D4000, // Range Minimum
|
||||
0x000D7FFF, // Range Maximum
|
||||
0x00000000, // Translation Offset
|
||||
0x00004000, // Length
|
||||
,, , AddressRangeMemory, TypeStatic)
|
||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
|
||||
0x00000000, // Granularity
|
||||
0x000D8000, // Range Minimum
|
||||
0x000DBFFF, // Range Maximum
|
||||
0x00000000, // Translation Offset
|
||||
0x00004000, // Length
|
||||
,, , AddressRangeMemory, TypeStatic)
|
||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
|
||||
0x00000000, // Granularity
|
||||
0x000DC000, // Range Minimum
|
||||
0x000DFFFF, // Range Maximum
|
||||
0x00000000, // Translation Offset
|
||||
0x00004000, // Length
|
||||
,, , AddressRangeMemory, TypeStatic)
|
||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
|
||||
0x00000000, // Granularity
|
||||
0x000E0000, // Range Minimum
|
||||
0x000E3FFF, // Range Maximum
|
||||
0x00000000, // Translation Offset
|
||||
0x00004000, // Length
|
||||
,, , AddressRangeMemory, TypeStatic)
|
||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
|
||||
0x00000000, // Granularity
|
||||
0x000E4000, // Range Minimum
|
||||
0x000E7FFF, // Range Maximum
|
||||
0x00000000, // Translation Offset
|
||||
0x00004000, // Length
|
||||
,, , AddressRangeMemory, TypeStatic)
|
||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
|
||||
0x00000000, // Granularity
|
||||
0x000E8000, // Range Minimum
|
||||
0x000EBFFF, // Range Maximum
|
||||
0x00000000, // Translation Offset
|
||||
0x00004000, // Length
|
||||
,, , AddressRangeMemory, TypeStatic)
|
||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
|
||||
0x00000000, // Granularity
|
||||
0x000EC000, // Range Minimum
|
||||
0x000EFFFF, // Range Maximum
|
||||
0x00000000, // Translation Offset
|
||||
0x00004000, // Length
|
||||
,, , AddressRangeMemory, TypeStatic)
|
||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
|
||||
0x00000000, // Granularity
|
||||
0x000F0000, // Range Minimum
|
||||
0x000FFFFF, // Range Maximum
|
||||
0x00000000, // Translation Offset
|
||||
0x00010000, // Length
|
||||
,, , AddressRangeMemory, TypeStatic)
|
||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
|
||||
0x00000000, // Granularity
|
||||
0x00000000, // Range Minimum
|
||||
0xFEAFFFFF, // Range Maximum
|
||||
0x00000000, // Translation Offset
|
||||
0xFEB00000, // Length
|
||||
,, , AddressRangeMemory, TypeStatic)
|
||||
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
|
||||
0x00000000, // Granularity
|
||||
0xFED40000, // Range Minimum
|
||||
0xFED44FFF, // Range Maximum
|
||||
0x00000000, // Translation Offset
|
||||
0x00005000, // Length
|
||||
,, , AddressRangeMemory, TypeStatic)
|
||||
QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
|
||||
0x0000000000000000, // Granularity
|
||||
0x0000000C20000000, // Range Minimum, set it to 48.5GB
|
||||
0x0000000E0FFFFFFF, // Range Maximum, set it to 56.25GB
|
||||
0x0000000000000000, // Translation Offset
|
||||
0x00000001F0000000, // Length calculated by Range Max - Range Min.
|
||||
,, , AddressRangeMemory, TypeStatic)
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -23,6 +23,14 @@
|
||||
<key>Path</key>
|
||||
<string>SSDT-CPBG.aml</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>Comment</key>
|
||||
<string>Patch Windows Audio support for Sandy and Ivy Bridge</string>
|
||||
<key>Path</key>
|
||||
<string>SSDT-PCI.aml</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Delete</key>
|
||||
<array/>
|
||||
@@ -38,7 +46,7 @@
|
||||
<key>Count</key>
|
||||
<integer>0</integer>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<false/>
|
||||
<key>Find</key>
|
||||
<data>WEhDMQ==</data>
|
||||
<key>Limit</key>
|
||||
@@ -68,7 +76,7 @@
|
||||
<key>Count</key>
|
||||
<integer>0</integer>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<false/>
|
||||
<key>Find</key>
|
||||
<data>RUhDMQ==</data>
|
||||
<key>Limit</key>
|
||||
@@ -98,7 +106,7 @@
|
||||
<key>Count</key>
|
||||
<integer>0</integer>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<false/>
|
||||
<key>Find</key>
|
||||
<data>RUhDMg==</data>
|
||||
<key>Limit</key>
|
||||
@@ -118,6 +126,36 @@
|
||||
<key>TableSignature</key>
|
||||
<data></data>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Base</key>
|
||||
<string>\_SB.PCI0</string>
|
||||
<key>BaseSkip</key>
|
||||
<integer>0</integer>
|
||||
<key>Comment</key>
|
||||
<string>BUF0 to BUF1</string>
|
||||
<key>Count</key>
|
||||
<integer>1</integer>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>Find</key>
|
||||
<data>QlVGMA==</data>
|
||||
<key>Limit</key>
|
||||
<integer>0</integer>
|
||||
<key>Mask</key>
|
||||
<data></data>
|
||||
<key>OemTableId</key>
|
||||
<data></data>
|
||||
<key>Replace</key>
|
||||
<data>QlVGMQ==</data>
|
||||
<key>ReplaceMask</key>
|
||||
<data></data>
|
||||
<key>Skip</key>
|
||||
<integer>0</integer>
|
||||
<key>TableLength</key>
|
||||
<integer>0</integer>
|
||||
<key>TableSignature</key>
|
||||
<data>RFNEVA==</data>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Quirks</key>
|
||||
<dict>
|
||||
@@ -198,7 +236,7 @@
|
||||
<key>Comment</key>
|
||||
<string>Patching Engine</string>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<false/>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
@@ -234,7 +272,7 @@
|
||||
<key>Comment</key>
|
||||
<string>GPU Patching</string>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<false/>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
@@ -380,7 +418,7 @@
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<string>20.99.99</string>
|
||||
<key>MinKernel</key>
|
||||
<string>16.0.0</string>
|
||||
<key>BundlePath</key>
|
||||
@@ -398,7 +436,7 @@
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<string>20.99.99</string>
|
||||
<key>MinKernel</key>
|
||||
<string>16.0.0</string>
|
||||
<key>BundlePath</key>
|
||||
@@ -416,7 +454,7 @@
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<string>20.99.99</string>
|
||||
<key>MinKernel</key>
|
||||
<string>16.0.0</string>
|
||||
<key>BundlePath</key>
|
||||
@@ -434,7 +472,7 @@
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<string>20.99.99</string>
|
||||
<key>MinKernel</key>
|
||||
<string>18.0.0</string>
|
||||
<key>BundlePath</key>
|
||||
@@ -452,7 +490,7 @@
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<string>20.99.99</string>
|
||||
<key>MinKernel</key>
|
||||
<string>18.0.0</string>
|
||||
<key>BundlePath</key>
|
||||
@@ -470,7 +508,7 @@
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<string>20.99.99</string>
|
||||
<key>MinKernel</key>
|
||||
<string>19.0.0</string>
|
||||
<key>BundlePath</key>
|
||||
@@ -488,7 +526,7 @@
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<string>20.99.99</string>
|
||||
<key>MinKernel</key>
|
||||
<string>19.0.0</string>
|
||||
<key>BundlePath</key>
|
||||
@@ -534,24 +572,6 @@
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>Comment</key>
|
||||
<string>VoodooHDA</string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string>18.0.0</string>
|
||||
<key>BundlePath</key>
|
||||
<string>VoodooHDA.kext</string>
|
||||
<key>ExecutablePath</key>
|
||||
<string>Contents/MacOS/VoodooHDA</string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
@@ -562,7 +582,7 @@
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string>20.0.0</string>
|
||||
<string>19.0.0</string>
|
||||
<key>BundlePath</key>
|
||||
<string>AppleIntelPIIXATA.kext</string>
|
||||
<key>ExecutablePath</key>
|
||||
@@ -768,6 +788,168 @@
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>Comment</key>
|
||||
<string>NVMeFix</string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string></string>
|
||||
<key>BundlePath</key>
|
||||
<string>NVMeFix.kext</string>
|
||||
<key>ExecutablePath</key>
|
||||
<string>Contents/MacOS/NVMeFix</string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>Comment</key>
|
||||
<string>SidecarFixup</string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string>19.0.0</string>
|
||||
<key>BundlePath</key>
|
||||
<string>SidecarFixup.kext</string>
|
||||
<key>ExecutablePath</key>
|
||||
<string>Contents/MacOS/SidecarFixup</string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>Comment</key>
|
||||
<string>Innie</string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string></string>
|
||||
<key>BundlePath</key>
|
||||
<string>Innie.kext</string>
|
||||
<key>ExecutablePath</key>
|
||||
<string>Contents/MacOS/Innie</string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>Comment</key>
|
||||
<string>BacklightInjector</string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string></string>
|
||||
<key>BundlePath</key>
|
||||
<string>BacklightInjector.kext</string>
|
||||
<key>ExecutablePath</key>
|
||||
<string></string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>BundlePath</key>
|
||||
<string>IOFireWireFamily.kext</string>
|
||||
<key>Comment</key>
|
||||
<string></string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>ExecutablePath</key>
|
||||
<string>Contents/MacOS/IOFireWireFamily</string>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string>19.0.0</string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>BundlePath</key>
|
||||
<string>IOFireWireFamily.kext/Contents/PlugIns/AppleFWOHCI.kext</string>
|
||||
<key>Comment</key>
|
||||
<string></string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>ExecutablePath</key>
|
||||
<string>Contents/MacOS/AppleFWOHCI</string>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string>19.0.0</string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>BundlePath</key>
|
||||
<string>IOFireWireSBP2.kext</string>
|
||||
<key>Comment</key>
|
||||
<string></string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>ExecutablePath</key>
|
||||
<string>Contents/MacOS/IOFireWireSBP2</string>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string>19.0.0</string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>BundlePath</key>
|
||||
<string>IOFireWireSerialBusProtocolTransport.kext</string>
|
||||
<key>Comment</key>
|
||||
<string></string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>ExecutablePath</key>
|
||||
<string>Contents/MacOS/IOFireWireSerialBusProtocolTransport</string>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string>19.0.0</string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>BundlePath</key>
|
||||
<string>DebugEnhancer.kext</string>
|
||||
<key>Comment</key>
|
||||
<string></string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>ExecutablePath</key>
|
||||
<string>Contents/MacOS/DebugEnhancer</string>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string></string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Block</key>
|
||||
<array/>
|
||||
@@ -828,7 +1010,7 @@
|
||||
<key>Count</key>
|
||||
<integer>1</integer>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<false/>
|
||||
<key>Find</key>
|
||||
<data>c21jLXZlcnNpb24=</data>
|
||||
<key>Identifier</key>
|
||||
@@ -848,36 +1030,6 @@
|
||||
<key>Skip</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>x86_64</string>
|
||||
<key>Base</key>
|
||||
<string></string>
|
||||
<key>Comment</key>
|
||||
<string>Patch AppleIntelSNBGraphicsFB</string>
|
||||
<key>Count</key>
|
||||
<integer>0</integer>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>Find</key>
|
||||
<data></data>
|
||||
<key>Identifier</key>
|
||||
<string>com.apple.driver.AppleIntelSNBGraphicsFB</string>
|
||||
<key>Limit</key>
|
||||
<integer>0</integer>
|
||||
<key>Mask</key>
|
||||
<data></data>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string>20.0.0</string>
|
||||
<key>Replace</key>
|
||||
<data></data>
|
||||
<key>ReplaceMask</key>
|
||||
<data></data>
|
||||
<key>Skip</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Quirks</key>
|
||||
<dict>
|
||||
@@ -910,9 +1062,11 @@
|
||||
<key>LegacyCommpage</key>
|
||||
<false/>
|
||||
<key>PanicNoKextDump</key>
|
||||
<false/>
|
||||
<true/>
|
||||
<key>PowerTimeoutKernelPanic</key>
|
||||
<false/>
|
||||
<key>ProvideCurrentCpuInfo</key>
|
||||
<false/>
|
||||
<key>SetApfsTrimTimeout</key>
|
||||
<integer>-1</integer>
|
||||
<key>ThirdPartyDrives</key>
|
||||
@@ -953,7 +1107,7 @@
|
||||
<key>PickerMode</key>
|
||||
<string>External</string>
|
||||
<key>PickerVariant</key>
|
||||
<string>Modern</string>
|
||||
<string>Acidanthera\GoldenGate</string>
|
||||
<key>PollAppleHotKeys</key>
|
||||
<true/>
|
||||
<key>ShowPicker</key>
|
||||
@@ -990,6 +1144,8 @@
|
||||
<true/>
|
||||
<key>AllowSetDefault</key>
|
||||
<true/>
|
||||
<key>AllowToggleSip</key>
|
||||
<false/>
|
||||
<key>ApECID</key>
|
||||
<integer>0</integer>
|
||||
<key>AuthRestart</key>
|
||||
@@ -1028,6 +1184,8 @@
|
||||
<string>BootKicker.efi</string>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<key>Flavour</key>
|
||||
<string>Auto</string>
|
||||
<key>Path</key>
|
||||
<string>BootKicker.efi</string>
|
||||
<key>RealPath</key>
|
||||
@@ -1044,6 +1202,8 @@
|
||||
<string>OpenShell.efi</string>
|
||||
<key>Comment</key>
|
||||
<string>OpenShell.efi</string>
|
||||
<key>Flavour</key>
|
||||
<string>OpenShell:UEFIShell:Shell</string>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<key>Path</key>
|
||||
@@ -1051,7 +1211,7 @@
|
||||
<key>RealPath</key>
|
||||
<false/>
|
||||
<key>TextMode</key>
|
||||
<false/>
|
||||
<true/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
@@ -1063,13 +1223,9 @@
|
||||
<dict>
|
||||
<key>DefaultBackgroundColor</key>
|
||||
<data>AAAAAA==</data>
|
||||
<key>UIScale</key>
|
||||
<data>AQ==</data>
|
||||
</dict>
|
||||
<key>4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102</key>
|
||||
<dict>
|
||||
<key>rtc-blacklist</key>
|
||||
<data></data>
|
||||
<key>OCLP-Version</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
@@ -1078,9 +1234,7 @@
|
||||
<key>SystemAudioVolume</key>
|
||||
<data>Rg==</data>
|
||||
<key>boot-args</key>
|
||||
<string>keepsyms=1 debug=0x100</string>
|
||||
<key>run-efi-updater</key>
|
||||
<string>No</string>
|
||||
<string>keepsyms=1 debug=0x100 -lilubetaall</string>
|
||||
<key>csr-active-config</key>
|
||||
<data>AAAAAA==</data>
|
||||
</dict>
|
||||
@@ -1091,13 +1245,13 @@
|
||||
<dict>
|
||||
<key>4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14</key>
|
||||
<array>
|
||||
<string>UIScale</string>
|
||||
<string>DefaultBackgroundColor</string>
|
||||
</array>
|
||||
<key>4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102</key>
|
||||
<array>
|
||||
<string>rtc-blacklist</string>
|
||||
<string>OCLP-Version</string>
|
||||
<string>revcpu</string>
|
||||
<string>revcpuname</string>
|
||||
</array>
|
||||
<key>7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
|
||||
<array>
|
||||
@@ -1111,31 +1265,7 @@
|
||||
<key>LegacyOverwrite</key>
|
||||
<false/>
|
||||
<key>LegacySchema</key>
|
||||
<dict>
|
||||
<key>7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
|
||||
<array>
|
||||
<string>EFILoginHiDPI</string>
|
||||
<string>EFIBluetoothDelay</string>
|
||||
<string>LocationServicesEnabled</string>
|
||||
<string>SystemAudioVolume</string>
|
||||
<string>SystemAudioVolumeDB</string>
|
||||
<string>SystemAudioVolumeSaved</string>
|
||||
<string>bluetoothActiveControllerInfo</string>
|
||||
<string>bluetoothInternalControllerInfo</string>
|
||||
<string>flagstate</string>
|
||||
<string>fmm-computer-name</string>
|
||||
<string>nvda_drv</string>
|
||||
<string>prev-lang:kbd</string>
|
||||
</array>
|
||||
<key>8BE4DF61-93CA-11D2-AA0D-00E098032B8C</key>
|
||||
<array>
|
||||
<string>Boot0080</string>
|
||||
<string>Boot0081</string>
|
||||
<string>Boot0082</string>
|
||||
<string>BootNext</string>
|
||||
<string>BootOrder</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict/>
|
||||
<key>WriteFlash</key>
|
||||
<true/>
|
||||
</dict>
|
||||
@@ -1178,7 +1308,7 @@
|
||||
</dict>
|
||||
<key>Generic</key>
|
||||
<dict>
|
||||
<key>AdviseWindows</key>
|
||||
<key>AdviseFeatures</key>
|
||||
<false/>
|
||||
<key>SystemMemoryStatus</key>
|
||||
<string>Auto</string>
|
||||
@@ -1199,6 +1329,242 @@
|
||||
<key>SystemUUID</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
<key>Memory</key>
|
||||
<dict>
|
||||
<key>DataWidth</key>
|
||||
<integer>64</integer>
|
||||
<key>ErrorCorrection</key>
|
||||
<integer>3</integer>
|
||||
<key>FormFactor</key>
|
||||
<integer>9</integer>
|
||||
<key>MaxCapacity</key>
|
||||
<integer>137438953472</integer>
|
||||
<key>TotalWidth</key>
|
||||
<integer>64</integer>
|
||||
<key>Type</key>
|
||||
<integer>26</integer>
|
||||
<key>TypeDetail</key>
|
||||
<integer>128</integer>
|
||||
<key>Devices</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>AssetTag</key>
|
||||
<string></string>
|
||||
<key>BankLocator</key>
|
||||
<string></string>
|
||||
<key>DeviceLocator</key>
|
||||
<string>Slot 1</string>
|
||||
<key>Manufacturer</key>
|
||||
<string>Acidanthera\GoldenGate</string>
|
||||
<key>PartNumber</key>
|
||||
<string>M00001-4GB</string>
|
||||
<key>SerialNumber</key>
|
||||
<string>AAA000000001</string>
|
||||
<key>Size</key>
|
||||
<integer>131072</integer>
|
||||
<key>Speed</key>
|
||||
<integer>5733</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>AssetTag</key>
|
||||
<string></string>
|
||||
<key>BankLocator</key>
|
||||
<string></string>
|
||||
<key>DeviceLocator</key>
|
||||
<string>Slot 2</string>
|
||||
<key>Manufacturer</key>
|
||||
<string>Acidanthera</string>
|
||||
<key>PartNumber</key>
|
||||
<string>M00001-4GB</string>
|
||||
<key>SerialNumber</key>
|
||||
<string>AAA00000000X</string>
|
||||
<key>Size</key>
|
||||
<integer>131072</integer>
|
||||
<key>Speed</key>
|
||||
<integer>5733</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>AssetTag</key>
|
||||
<string></string>
|
||||
<key>BankLocator</key>
|
||||
<string></string>
|
||||
<key>DeviceLocator</key>
|
||||
<string>Slot 3</string>
|
||||
<key>Manufacturer</key>
|
||||
<string>Acidanthera</string>
|
||||
<key>PartNumber</key>
|
||||
<string>M00001-4GB</string>
|
||||
<key>SerialNumber</key>
|
||||
<string>AAA000000002</string>
|
||||
<key>Size</key>
|
||||
<integer>131072</integer>
|
||||
<key>Speed</key>
|
||||
<integer>5733</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>AssetTag</key>
|
||||
<string></string>
|
||||
<key>BankLocator</key>
|
||||
<string></string>
|
||||
<key>DeviceLocator</key>
|
||||
<string>Slot 4</string>
|
||||
<key>Manufacturer</key>
|
||||
<string>Acidanthera</string>
|
||||
<key>PartNumber</key>
|
||||
<string>M00001-4GB</string>
|
||||
<key>SerialNumber</key>
|
||||
<string>AAA00000000X</string>
|
||||
<key>Size</key>
|
||||
<integer>131072</integer>
|
||||
<key>Speed</key>
|
||||
<integer>5733</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>AssetTag</key>
|
||||
<string></string>
|
||||
<key>BankLocator</key>
|
||||
<string></string>
|
||||
<key>DeviceLocator</key>
|
||||
<string>Slot 5</string>
|
||||
<key>Manufacturer</key>
|
||||
<string>Acidanthera</string>
|
||||
<key>PartNumber</key>
|
||||
<string>M00001-4GB</string>
|
||||
<key>SerialNumber</key>
|
||||
<string>AAA000000002</string>
|
||||
<key>Size</key>
|
||||
<integer>131072</integer>
|
||||
<key>Speed</key>
|
||||
<integer>5733</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>AssetTag</key>
|
||||
<string></string>
|
||||
<key>BankLocator</key>
|
||||
<string></string>
|
||||
<key>DeviceLocator</key>
|
||||
<string>Slot 6</string>
|
||||
<key>Manufacturer</key>
|
||||
<string>Acidanthera</string>
|
||||
<key>PartNumber</key>
|
||||
<string>M00001-4GB</string>
|
||||
<key>SerialNumber</key>
|
||||
<string>AAA00000000X</string>
|
||||
<key>Size</key>
|
||||
<integer>131072</integer>
|
||||
<key>Speed</key>
|
||||
<integer>5733</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>AssetTag</key>
|
||||
<string></string>
|
||||
<key>BankLocator</key>
|
||||
<string></string>
|
||||
<key>DeviceLocator</key>
|
||||
<string>Slot 7</string>
|
||||
<key>Manufacturer</key>
|
||||
<string>Acidanthera</string>
|
||||
<key>PartNumber</key>
|
||||
<string>M00001-4GB</string>
|
||||
<key>SerialNumber</key>
|
||||
<string>AAA000000001</string>
|
||||
<key>Size</key>
|
||||
<integer>131072</integer>
|
||||
<key>Speed</key>
|
||||
<integer>5733</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>AssetTag</key>
|
||||
<string></string>
|
||||
<key>BankLocator</key>
|
||||
<string></string>
|
||||
<key>DeviceLocator</key>
|
||||
<string>Slot 8</string>
|
||||
<key>Manufacturer</key>
|
||||
<string>Acidanthera</string>
|
||||
<key>PartNumber</key>
|
||||
<string>M00001-4GB</string>
|
||||
<key>SerialNumber</key>
|
||||
<string>AAA00000000X</string>
|
||||
<key>Size</key>
|
||||
<integer>131072</integer>
|
||||
<key>Speed</key>
|
||||
<integer>5733</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>AssetTag</key>
|
||||
<string></string>
|
||||
<key>BankLocator</key>
|
||||
<string></string>
|
||||
<key>DeviceLocator</key>
|
||||
<string>Slot 9</string>
|
||||
<key>Manufacturer</key>
|
||||
<string>Acidanthera</string>
|
||||
<key>PartNumber</key>
|
||||
<string>M00001-4GB</string>
|
||||
<key>SerialNumber</key>
|
||||
<string>AAA00000000X</string>
|
||||
<key>Size</key>
|
||||
<integer>131072</integer>
|
||||
<key>Speed</key>
|
||||
<integer>5733</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>AssetTag</key>
|
||||
<string></string>
|
||||
<key>BankLocator</key>
|
||||
<string></string>
|
||||
<key>DeviceLocator</key>
|
||||
<string>Slot 10</string>
|
||||
<key>Manufacturer</key>
|
||||
<string>Acidanthera</string>
|
||||
<key>PartNumber</key>
|
||||
<string>M00001-4GB</string>
|
||||
<key>SerialNumber</key>
|
||||
<string>AAA00000000X</string>
|
||||
<key>Size</key>
|
||||
<integer>131072</integer>
|
||||
<key>Speed</key>
|
||||
<integer>5733</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>AssetTag</key>
|
||||
<string></string>
|
||||
<key>BankLocator</key>
|
||||
<string></string>
|
||||
<key>DeviceLocator</key>
|
||||
<string>Slot 11</string>
|
||||
<key>Manufacturer</key>
|
||||
<string>Acidanthera</string>
|
||||
<key>PartNumber</key>
|
||||
<string>M00001-4GB</string>
|
||||
<key>SerialNumber</key>
|
||||
<string>AAA00000000X</string>
|
||||
<key>Size</key>
|
||||
<integer>131072</integer>
|
||||
<key>Speed</key>
|
||||
<integer>5733</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>AssetTag</key>
|
||||
<string></string>
|
||||
<key>BankLocator</key>
|
||||
<string></string>
|
||||
<key>DeviceLocator</key>
|
||||
<string>Slot 12</string>
|
||||
<key>Manufacturer</key>
|
||||
<string>Acidanthera</string>
|
||||
<key>PartNumber</key>
|
||||
<string>M00001-4GB</string>
|
||||
<key>SerialNumber</key>
|
||||
<string>AAA00000000X</string>
|
||||
<key>Size</key>
|
||||
<integer>131072</integer>
|
||||
<key>Speed</key>
|
||||
<integer>5733</integer>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<key>PlatformNVRAM</key>
|
||||
<dict>
|
||||
<key>BID</key>
|
||||
@@ -1223,7 +1589,7 @@
|
||||
<key>BIOSVendor</key>
|
||||
<string></string>
|
||||
<key>BIOSVersion</key>
|
||||
<string>9999.999.999.999.999</string>
|
||||
<string></string>
|
||||
<key>BoardAssetTag</key>
|
||||
<string></string>
|
||||
<key>BoardLocationInChassis</key>
|
||||
@@ -1278,7 +1644,7 @@
|
||||
<key>UpdateNVRAM</key>
|
||||
<false/>
|
||||
<key>UpdateSMBIOS</key>
|
||||
<true/>
|
||||
<false/>
|
||||
<key>UpdateSMBIOSMode</key>
|
||||
<string>Create</string>
|
||||
<key>UseRawUuidEncoding</key>
|
||||
@@ -1306,7 +1672,7 @@
|
||||
<key>AppleEvent</key>
|
||||
<string>Builtin</string>
|
||||
<key>CustomDelays</key>
|
||||
<string>Disabled</string>
|
||||
<false/>
|
||||
<key>KeyInitialDelay</key>
|
||||
<integer>0</integer>
|
||||
<key>KeySubsequentDelay</key>
|
||||
@@ -1321,7 +1687,7 @@
|
||||
<key>AudioCodec</key>
|
||||
<integer>0</integer>
|
||||
<key>AudioDevice</key>
|
||||
<string>PciRoot(0x0)/Pci(0x1b,0x0)</string>
|
||||
<string></string>
|
||||
<key>AudioOut</key>
|
||||
<integer>0</integer>
|
||||
<key>AudioSupport</key>
|
||||
@@ -1356,7 +1722,7 @@
|
||||
<key>PointerSupport</key>
|
||||
<false/>
|
||||
<key>PointerSupportMode</key>
|
||||
<string>ASUS</string>
|
||||
<string></string>
|
||||
<key>TimerResolution</key>
|
||||
<integer>50000</integer>
|
||||
</dict>
|
||||
@@ -1371,7 +1737,7 @@
|
||||
<key>ForceResolution</key>
|
||||
<false/>
|
||||
<key>GopPassThrough</key>
|
||||
<false/>
|
||||
<string>Disabled</string>
|
||||
<key>IgnoreTextInGraphics</key>
|
||||
<false/>
|
||||
<key>ProvideConsoleGop</key>
|
||||
@@ -1397,6 +1763,8 @@
|
||||
<true/>
|
||||
<key>AppleDebugLog</key>
|
||||
<true/>
|
||||
<key>AppleEg2Info</key>
|
||||
<false/>
|
||||
<key>AppleFramebufferInfo</key>
|
||||
<false/>
|
||||
<key>AppleImageConversion</key>
|
||||
@@ -1430,14 +1798,20 @@
|
||||
<dict>
|
||||
<key>ActivateHpetSupport</key>
|
||||
<false/>
|
||||
<key>EnableVectorAcceleration</key>
|
||||
<true/>
|
||||
<key>DisableSecurityPolicy</key>
|
||||
<false/>
|
||||
<key>ExitBootServicesDelay</key>
|
||||
<integer>0</integer>
|
||||
<key>ForgeUefiSupport</key>
|
||||
<false/>
|
||||
<key>IgnoreInvalidFlexRatio</key>
|
||||
<false/>
|
||||
<key>ReleaseUsbOwnership</key>
|
||||
<false/>
|
||||
<key>ReloadOptionRoms</key>
|
||||
<false/>
|
||||
<key>RequestBootVarRouting</key>
|
||||
<true/>
|
||||
<key>TscSyncTimeout</key>
|
||||
|
||||
BIN
payloads/Drivers/XhciDxe.efi
Normal file
BIN
payloads/Kexts/Acidanthera/AirportBrcmFixup-v2.1.3.zip
Normal file
BIN
payloads/Kexts/Acidanthera/AppleALC-v1.6.2.zip
Normal file
BIN
payloads/Kexts/Acidanthera/CPUFriend-v1.2.4.zip
Normal file
BIN
payloads/Kexts/Acidanthera/DebugEnhancer-v1.0.3.zip
Normal file
BIN
payloads/Kexts/Acidanthera/Lilu-v1.5.4.zip
Normal file
BIN
payloads/Kexts/Acidanthera/NVMeFix-v1.0.9.zip
Normal file
BIN
payloads/Kexts/Acidanthera/RestrictEvents-MBP91-v1.0.3.zip
Normal file
BIN
payloads/Kexts/Acidanthera/RestrictEvents-v1.0.3.zip
Normal file
BIN
payloads/Kexts/Acidanthera/SidecarFixup-v1.0.2.zip
Normal file
BIN
payloads/Kexts/Acidanthera/WhateverGreen-v1.5.1.zip
Normal file
BIN
payloads/Kexts/FireWire/IOFireWireFamily-v1.0.0.zip
Normal file
BIN
payloads/Kexts/FireWire/IOFireWireSBP2-v1.0.0.zip
Normal file
BIN
payloads/Kexts/Misc/BacklightInjector-v1.0.0.zip
Normal file
BIN
payloads/Kexts/Misc/Innie-v1.3.0.zip
Normal file
@@ -113,6 +113,28 @@
|
||||
<string>none</string>
|
||||
<key>iMac14,3</key>
|
||||
<string>none</string>
|
||||
<key>iMac14,4</key>
|
||||
<string>Config2</string>
|
||||
<key>iMac15,1</key>
|
||||
<string>Config2</string>
|
||||
<key>iMac17,1</key>
|
||||
<string>Config2</string>
|
||||
<key>iMac18,2</key>
|
||||
<string>Config3</string>
|
||||
<key>iMac18,3</key>
|
||||
<string>Config3</string>
|
||||
<key>iMac19,1</key>
|
||||
<string>Config3</string>
|
||||
<key>iMac19,2</key>
|
||||
<string>Config3</string>
|
||||
<key>iMac20,1</key>
|
||||
<string>Config3</string>
|
||||
<key>iMac20,2</key>
|
||||
<string>Config3</string>
|
||||
<key>iMacPro1,1</key>
|
||||
<string>Config4</string>
|
||||
<key>MacPro6,1</key>
|
||||
<string>Config1</string>
|
||||
<key>MacBookPro9,1</key>
|
||||
<string>none</string>
|
||||
<key>MacBookPro10,1</key>
|
||||
|
||||
@@ -295,6 +295,166 @@
|
||||
<key>LogControl</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>MacBook8,1</key>
|
||||
<dict>
|
||||
<key>IGPU</key>
|
||||
<dict>
|
||||
<key>BoostPState</key>
|
||||
<array>
|
||||
<integer>18</integer>
|
||||
<integer>18</integer>
|
||||
<integer>18</integer>
|
||||
<integer>18</integer>
|
||||
</array>
|
||||
<key>BoostTime</key>
|
||||
<array>
|
||||
<integer>1</integer>
|
||||
<integer>1</integer>
|
||||
<integer>1</integer>
|
||||
<integer>15</integer>
|
||||
</array>
|
||||
<key>HardPlimit</key>
|
||||
<integer>1</integer>
|
||||
<key>Heuristic</key>
|
||||
<dict>
|
||||
<key>BusyDownThresholdPercent</key>
|
||||
<integer>60</integer>
|
||||
<key>BusyUpThresholdPercent</key>
|
||||
<integer>80</integer>
|
||||
<key>DownStep</key>
|
||||
<integer>1</integer>
|
||||
<key>EnableOverride</key>
|
||||
<integer>1</integer>
|
||||
<key>EnableRingTableOverride</key>
|
||||
<integer>1</integer>
|
||||
<key>EvaluateDownInterval</key>
|
||||
<integer>31250</integer>
|
||||
<key>EvaluateUpInterval</key>
|
||||
<integer>31250</integer>
|
||||
<key>GT3Floor</key>
|
||||
<integer>6</integer>
|
||||
<key>ID</key>
|
||||
<integer>2</integer>
|
||||
<key>IOBusynessSamplingInterval</key>
|
||||
<integer>1</integer>
|
||||
<key>LowPriorityPeff</key>
|
||||
<integer>11</integer>
|
||||
<key>NumOfRingTableOverride</key>
|
||||
<integer>23</integer>
|
||||
<key>NumOfRingTables</key>
|
||||
<integer>3</integer>
|
||||
<key>NumOfThresholdsForRingTables</key>
|
||||
<integer>2</integer>
|
||||
<key>RingOverrideTable0</key>
|
||||
<array>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>9</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
</array>
|
||||
<key>RingOverrideTable1</key>
|
||||
<array>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>9</integer>
|
||||
<integer>10</integer>
|
||||
<integer>11</integer>
|
||||
<integer>13</integer>
|
||||
<integer>14</integer>
|
||||
<integer>15</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
</array>
|
||||
<key>RingOverrideTable2</key>
|
||||
<array>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>9</integer>
|
||||
<integer>10</integer>
|
||||
<integer>11</integer>
|
||||
<integer>13</integer>
|
||||
<integer>14</integer>
|
||||
<integer>15</integer>
|
||||
<integer>16</integer>
|
||||
<integer>18</integer>
|
||||
<integer>19</integer>
|
||||
<integer>20</integer>
|
||||
<integer>21</integer>
|
||||
<integer>23</integer>
|
||||
<integer>24</integer>
|
||||
<integer>25</integer>
|
||||
<integer>26</integer>
|
||||
<integer>28</integer>
|
||||
<integer>29</integer>
|
||||
<integer>30</integer>
|
||||
<integer>31</integer>
|
||||
<integer>33</integer>
|
||||
</array>
|
||||
<key>StartingPstateForRingTableOverride</key>
|
||||
<integer>11</integer>
|
||||
<key>ThresholdsForRingOverrideTable0</key>
|
||||
<array>
|
||||
<integer>0</integer>
|
||||
<integer>10</integer>
|
||||
</array>
|
||||
<key>ThresholdsForRingOverrideTable1</key>
|
||||
<array>
|
||||
<integer>5</integer>
|
||||
<integer>15</integer>
|
||||
</array>
|
||||
<key>ThresholdsForRingOverrideTable2</key>
|
||||
<array>
|
||||
<integer>10</integer>
|
||||
<integer>100</integer>
|
||||
</array>
|
||||
<key>UpStep</key>
|
||||
<integer>2</integer>
|
||||
<key>sampleInterval</key>
|
||||
<integer>1000</integer>
|
||||
</dict>
|
||||
<key>NumPriorityLevels</key>
|
||||
<integer>4</integer>
|
||||
<key>PriorityLevelMask</key>
|
||||
<integer>8</integer>
|
||||
<key>ThermalSupport</key>
|
||||
<integer>1</integer>
|
||||
<key>control-id</key>
|
||||
<integer>16</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>MacBookAir2,1</key>
|
||||
<dict>
|
||||
<key>IGPU</key>
|
||||
@@ -2274,6 +2434,500 @@
|
||||
<integer>16</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>MacBookPro11,1</key>
|
||||
<dict>
|
||||
<key>IGPU</key>
|
||||
<dict>
|
||||
<key>Heuristic</key>
|
||||
<dict>
|
||||
<key>BusyDownThresholdPercent</key>
|
||||
<integer>50</integer>
|
||||
<key>BusyUpThresholdPercent</key>
|
||||
<integer>70</integer>
|
||||
<key>DownStep</key>
|
||||
<integer>1</integer>
|
||||
<key>EnableOverride</key>
|
||||
<integer>1</integer>
|
||||
<key>EnableRingTableOverride</key>
|
||||
<integer>1</integer>
|
||||
<key>EvaluateDownInterval</key>
|
||||
<integer>31250</integer>
|
||||
<key>EvaluateUpInterval</key>
|
||||
<integer>31250</integer>
|
||||
<key>GT2Floor</key>
|
||||
<integer>8</integer>
|
||||
<key>GT3Floor</key>
|
||||
<integer>11</integer>
|
||||
<key>ID</key>
|
||||
<integer>2</integer>
|
||||
<key>IOBusynessSamplingInterval</key>
|
||||
<integer>1</integer>
|
||||
<key>NumOfRingTableOverride</key>
|
||||
<integer>23</integer>
|
||||
<key>NumOfRingTables</key>
|
||||
<integer>3</integer>
|
||||
<key>NumOfThresholdsForRingTables</key>
|
||||
<integer>2</integer>
|
||||
<key>RingOverrideTable0</key>
|
||||
<array>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>9</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
</array>
|
||||
<key>RingOverrideTable1</key>
|
||||
<array>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>9</integer>
|
||||
<integer>10</integer>
|
||||
<integer>11</integer>
|
||||
<integer>13</integer>
|
||||
<integer>14</integer>
|
||||
<integer>15</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
</array>
|
||||
<key>RingOverrideTable2</key>
|
||||
<array>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>9</integer>
|
||||
<integer>10</integer>
|
||||
<integer>11</integer>
|
||||
<integer>13</integer>
|
||||
<integer>14</integer>
|
||||
<integer>15</integer>
|
||||
<integer>16</integer>
|
||||
<integer>18</integer>
|
||||
<integer>19</integer>
|
||||
<integer>20</integer>
|
||||
<integer>21</integer>
|
||||
<integer>23</integer>
|
||||
<integer>24</integer>
|
||||
<integer>25</integer>
|
||||
<integer>26</integer>
|
||||
<integer>28</integer>
|
||||
<integer>29</integer>
|
||||
<integer>30</integer>
|
||||
<integer>31</integer>
|
||||
<integer>33</integer>
|
||||
</array>
|
||||
<key>StartingPstateForRingTableOverride</key>
|
||||
<integer>11</integer>
|
||||
<key>ThresholdsForRingOverrideTable0</key>
|
||||
<array>
|
||||
<integer>0</integer>
|
||||
<integer>10</integer>
|
||||
</array>
|
||||
<key>ThresholdsForRingOverrideTable1</key>
|
||||
<array>
|
||||
<integer>5</integer>
|
||||
<integer>15</integer>
|
||||
</array>
|
||||
<key>ThresholdsForRingOverrideTable2</key>
|
||||
<array>
|
||||
<integer>10</integer>
|
||||
<integer>100</integer>
|
||||
</array>
|
||||
<key>UpStep</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
<key>SliceControl</key>
|
||||
<integer>1</integer>
|
||||
<key>control-id</key>
|
||||
<integer>16</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>MacBookPro11,2</key>
|
||||
<dict>
|
||||
<key>IGPU</key>
|
||||
<dict>
|
||||
<key>Heuristic</key>
|
||||
<dict>
|
||||
<key>BusyDownThresholdPercent</key>
|
||||
<integer>50</integer>
|
||||
<key>BusyUpThresholdPercent</key>
|
||||
<integer>70</integer>
|
||||
<key>DownStep</key>
|
||||
<integer>1</integer>
|
||||
<key>EnableOverride</key>
|
||||
<integer>1</integer>
|
||||
<key>EnableRingTableOverride</key>
|
||||
<integer>1</integer>
|
||||
<key>EvaluateDownInterval</key>
|
||||
<integer>31250</integer>
|
||||
<key>EvaluateUpInterval</key>
|
||||
<integer>31250</integer>
|
||||
<key>GT2Floor</key>
|
||||
<integer>12</integer>
|
||||
<key>GT3Floor</key>
|
||||
<integer>15</integer>
|
||||
<key>ID</key>
|
||||
<integer>2</integer>
|
||||
<key>IOBusynessSamplingInterval</key>
|
||||
<integer>1</integer>
|
||||
<key>NumOfRingTableOverride</key>
|
||||
<integer>23</integer>
|
||||
<key>NumOfRingTables</key>
|
||||
<integer>3</integer>
|
||||
<key>NumOfThresholdsForRingTables</key>
|
||||
<integer>2</integer>
|
||||
<key>RingOverrideTable0</key>
|
||||
<array>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>9</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
</array>
|
||||
<key>RingOverrideTable1</key>
|
||||
<array>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>9</integer>
|
||||
<integer>10</integer>
|
||||
<integer>11</integer>
|
||||
<integer>13</integer>
|
||||
<integer>14</integer>
|
||||
<integer>15</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>29</integer>
|
||||
<integer>30</integer>
|
||||
<integer>31</integer>
|
||||
<integer>33</integer>
|
||||
</array>
|
||||
<key>RingOverrideTable2</key>
|
||||
<array>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>9</integer>
|
||||
<integer>10</integer>
|
||||
<integer>11</integer>
|
||||
<integer>13</integer>
|
||||
<integer>14</integer>
|
||||
<integer>15</integer>
|
||||
<integer>16</integer>
|
||||
<integer>18</integer>
|
||||
<integer>19</integer>
|
||||
<integer>20</integer>
|
||||
<integer>21</integer>
|
||||
<integer>23</integer>
|
||||
<integer>24</integer>
|
||||
<integer>25</integer>
|
||||
<integer>26</integer>
|
||||
<integer>28</integer>
|
||||
<integer>29</integer>
|
||||
<integer>30</integer>
|
||||
<integer>31</integer>
|
||||
<integer>33</integer>
|
||||
</array>
|
||||
<key>StartingPstateForRingTableOverride</key>
|
||||
<integer>11</integer>
|
||||
<key>ThresholdsForRingOverrideTable0</key>
|
||||
<array>
|
||||
<integer>0</integer>
|
||||
<integer>10</integer>
|
||||
</array>
|
||||
<key>ThresholdsForRingOverrideTable1</key>
|
||||
<array>
|
||||
<integer>5</integer>
|
||||
<integer>15</integer>
|
||||
</array>
|
||||
<key>ThresholdsForRingOverrideTable2</key>
|
||||
<array>
|
||||
<integer>10</integer>
|
||||
<integer>100</integer>
|
||||
</array>
|
||||
<key>UpStep</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
<key>SliceControl</key>
|
||||
<integer>1</integer>
|
||||
<key>control-id</key>
|
||||
<integer>16</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>MacBookPro11,3</key>
|
||||
<dict>
|
||||
<key>GFX0</key>
|
||||
<dict>
|
||||
<key>BoostPState</key>
|
||||
<array>
|
||||
<integer>6</integer>
|
||||
<integer>14</integer>
|
||||
<integer>14</integer>
|
||||
<integer>6</integer>
|
||||
</array>
|
||||
<key>BoostTime</key>
|
||||
<array>
|
||||
<integer>1</integer>
|
||||
<integer>1</integer>
|
||||
<integer>1</integer>
|
||||
<integer>1</integer>
|
||||
</array>
|
||||
<key>Heuristic</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>4</integer>
|
||||
<key>MinP0P1</key>
|
||||
<integer>10</integer>
|
||||
<key>MinP5</key>
|
||||
<integer>14</integer>
|
||||
<key>MinP8</key>
|
||||
<integer>15</integer>
|
||||
<key>MinVP0</key>
|
||||
<integer>10</integer>
|
||||
<key>MinVP1</key>
|
||||
<integer>21</integer>
|
||||
<key>MinVP5</key>
|
||||
<integer>28</integer>
|
||||
<key>MinVP8</key>
|
||||
<integer>29</integer>
|
||||
<key>NumOfPstates</key>
|
||||
<integer>16</integer>
|
||||
<key>NumOfVPstates</key>
|
||||
<integer>31</integer>
|
||||
<key>P0Table</key>
|
||||
<array>
|
||||
<integer>0</integer>
|
||||
<integer>1</integer>
|
||||
<integer>2</integer>
|
||||
<integer>3</integer>
|
||||
<integer>4</integer>
|
||||
<integer>5</integer>
|
||||
<integer>6</integer>
|
||||
<integer>7</integer>
|
||||
<integer>8</integer>
|
||||
<integer>9</integer>
|
||||
<integer>10</integer>
|
||||
<integer>25</integer>
|
||||
<integer>26</integer>
|
||||
<integer>27</integer>
|
||||
<integer>28</integer>
|
||||
<integer>29</integer>
|
||||
</array>
|
||||
<key>P1Table</key>
|
||||
<array>
|
||||
<integer>11</integer>
|
||||
<integer>12</integer>
|
||||
<integer>13</integer>
|
||||
<integer>14</integer>
|
||||
<integer>15</integer>
|
||||
<integer>16</integer>
|
||||
<integer>17</integer>
|
||||
<integer>18</integer>
|
||||
<integer>19</integer>
|
||||
<integer>20</integer>
|
||||
<integer>21</integer>
|
||||
<integer>25</integer>
|
||||
<integer>26</integer>
|
||||
<integer>27</integer>
|
||||
<integer>28</integer>
|
||||
<integer>29</integer>
|
||||
</array>
|
||||
</dict>
|
||||
<key>control-id</key>
|
||||
<integer>17</integer>
|
||||
</dict>
|
||||
<key>IGPU</key>
|
||||
<dict>
|
||||
<key>Heuristic</key>
|
||||
<dict>
|
||||
<key>BusyDownThresholdPercent</key>
|
||||
<integer>50</integer>
|
||||
<key>BusyUpThresholdPercent</key>
|
||||
<integer>70</integer>
|
||||
<key>DownStep</key>
|
||||
<integer>1</integer>
|
||||
<key>EnableOverride</key>
|
||||
<integer>1</integer>
|
||||
<key>EnableRingTableOverride</key>
|
||||
<integer>1</integer>
|
||||
<key>EvaluateDownInterval</key>
|
||||
<integer>31250</integer>
|
||||
<key>EvaluateUpInterval</key>
|
||||
<integer>31250</integer>
|
||||
<key>GT2Floor</key>
|
||||
<integer>12</integer>
|
||||
<key>GT3Floor</key>
|
||||
<integer>15</integer>
|
||||
<key>ID</key>
|
||||
<integer>2</integer>
|
||||
<key>IOBusynessSamplingInterval</key>
|
||||
<integer>1</integer>
|
||||
<key>NumOfRingTableOverride</key>
|
||||
<integer>23</integer>
|
||||
<key>NumOfRingTables</key>
|
||||
<integer>3</integer>
|
||||
<key>NumOfThresholdsForRingTables</key>
|
||||
<integer>2</integer>
|
||||
<key>RingOverrideTable0</key>
|
||||
<array>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>9</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
</array>
|
||||
<key>RingOverrideTable1</key>
|
||||
<array>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>9</integer>
|
||||
<integer>10</integer>
|
||||
<integer>11</integer>
|
||||
<integer>13</integer>
|
||||
<integer>14</integer>
|
||||
<integer>15</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>29</integer>
|
||||
<integer>30</integer>
|
||||
<integer>31</integer>
|
||||
<integer>33</integer>
|
||||
</array>
|
||||
<key>RingOverrideTable2</key>
|
||||
<array>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>9</integer>
|
||||
<integer>10</integer>
|
||||
<integer>11</integer>
|
||||
<integer>13</integer>
|
||||
<integer>14</integer>
|
||||
<integer>15</integer>
|
||||
<integer>16</integer>
|
||||
<integer>18</integer>
|
||||
<integer>19</integer>
|
||||
<integer>20</integer>
|
||||
<integer>21</integer>
|
||||
<integer>23</integer>
|
||||
<integer>24</integer>
|
||||
<integer>25</integer>
|
||||
<integer>26</integer>
|
||||
<integer>28</integer>
|
||||
<integer>29</integer>
|
||||
<integer>30</integer>
|
||||
<integer>31</integer>
|
||||
<integer>33</integer>
|
||||
</array>
|
||||
<key>StartingPstateForRingTableOverride</key>
|
||||
<integer>11</integer>
|
||||
<key>ThresholdsForRingOverrideTable0</key>
|
||||
<array>
|
||||
<integer>0</integer>
|
||||
<integer>10</integer>
|
||||
</array>
|
||||
<key>ThresholdsForRingOverrideTable1</key>
|
||||
<array>
|
||||
<integer>5</integer>
|
||||
<integer>15</integer>
|
||||
</array>
|
||||
<key>ThresholdsForRingOverrideTable2</key>
|
||||
<array>
|
||||
<integer>10</integer>
|
||||
<integer>100</integer>
|
||||
</array>
|
||||
<key>UpStep</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
<key>SliceControl</key>
|
||||
<integer>1</integer>
|
||||
<key>control-id</key>
|
||||
<integer>16</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>MacPro4,1</key>
|
||||
<dict>
|
||||
<key>Vendor10deDevice05e2</key>
|
||||
@@ -4249,6 +4903,175 @@
|
||||
<integer>16</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>iMac14,4</key>
|
||||
<dict>
|
||||
<key>IGPU</key>
|
||||
<dict>
|
||||
<key>Heuristic</key>
|
||||
<dict>
|
||||
<key>BusyDownThresholdPercent</key>
|
||||
<integer>50</integer>
|
||||
<key>BusyUpThresholdPercent</key>
|
||||
<integer>70</integer>
|
||||
<key>DownStep</key>
|
||||
<integer>1</integer>
|
||||
<key>EnableOverride</key>
|
||||
<integer>1</integer>
|
||||
<key>EnableRingTableOverride</key>
|
||||
<integer>1</integer>
|
||||
<key>EvaluateDownInterval</key>
|
||||
<integer>31250</integer>
|
||||
<key>EvaluateUpInterval</key>
|
||||
<integer>31250</integer>
|
||||
<key>GT2Floor</key>
|
||||
<integer>12</integer>
|
||||
<key>GT3Floor</key>
|
||||
<integer>15</integer>
|
||||
<key>ID</key>
|
||||
<integer>2</integer>
|
||||
<key>IOBusynessSamplingInterval</key>
|
||||
<integer>1</integer>
|
||||
<key>NumOfRingTableOverride</key>
|
||||
<integer>23</integer>
|
||||
<key>NumOfRingTables</key>
|
||||
<integer>3</integer>
|
||||
<key>NumOfThresholdsForRingTables</key>
|
||||
<integer>2</integer>
|
||||
<key>RingOverrideTable0</key>
|
||||
<array>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>9</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
<integer>10</integer>
|
||||
</array>
|
||||
<key>RingOverrideTable1</key>
|
||||
<array>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>9</integer>
|
||||
<integer>10</integer>
|
||||
<integer>11</integer>
|
||||
<integer>13</integer>
|
||||
<integer>14</integer>
|
||||
<integer>15</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
<integer>16</integer>
|
||||
</array>
|
||||
<key>RingOverrideTable2</key>
|
||||
<array>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>8</integer>
|
||||
<integer>9</integer>
|
||||
<integer>10</integer>
|
||||
<integer>11</integer>
|
||||
<integer>13</integer>
|
||||
<integer>14</integer>
|
||||
<integer>15</integer>
|
||||
<integer>16</integer>
|
||||
<integer>18</integer>
|
||||
<integer>19</integer>
|
||||
<integer>20</integer>
|
||||
<integer>21</integer>
|
||||
<integer>23</integer>
|
||||
<integer>24</integer>
|
||||
<integer>25</integer>
|
||||
<integer>26</integer>
|
||||
<integer>28</integer>
|
||||
<integer>29</integer>
|
||||
<integer>30</integer>
|
||||
<integer>31</integer>
|
||||
<integer>33</integer>
|
||||
</array>
|
||||
<key>StartingPstateForRingTableOverride</key>
|
||||
<integer>11</integer>
|
||||
<key>ThresholdsForRingOverrideTable0</key>
|
||||
<array>
|
||||
<integer>0</integer>
|
||||
<integer>10</integer>
|
||||
</array>
|
||||
<key>ThresholdsForRingOverrideTable1</key>
|
||||
<array>
|
||||
<integer>5</integer>
|
||||
<integer>15</integer>
|
||||
</array>
|
||||
<key>ThresholdsForRingOverrideTable2</key>
|
||||
<array>
|
||||
<integer>10</integer>
|
||||
<integer>100</integer>
|
||||
</array>
|
||||
<key>UpStep</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
<key>SliceControl</key>
|
||||
<integer>1</integer>
|
||||
<key>control-id</key>
|
||||
<integer>16</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>iMac15,1</key>
|
||||
<dict>
|
||||
<key>GFX0</key>
|
||||
<dict>
|
||||
<key>AGDCEnabled</key>
|
||||
<integer>1</integer>
|
||||
<key>Heuristic</key>
|
||||
<dict>
|
||||
<key>ID</key>
|
||||
<integer>-1</integer>
|
||||
</dict>
|
||||
<key>control-id</key>
|
||||
<integer>17</integer>
|
||||
<key>max-power-state</key>
|
||||
<integer>15</integer>
|
||||
<key>min-power-state</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>IGPU</key>
|
||||
<dict>
|
||||
<key>Heuristic</key>
|
||||
<dict>
|
||||
<key>EnableOverride</key>
|
||||
<integer>0</integer>
|
||||
<key>ID</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
<key>control-id</key>
|
||||
<integer>16</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
|
||||
@@ -2860,6 +2860,28 @@
|
||||
<key>model</key>
|
||||
<string>XacPro3,1</string>
|
||||
</dict>
|
||||
<key>MacPro3,1-UHC3</key>
|
||||
<dict>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.apple.driver.AppleUSBHostMergeProperties</string>
|
||||
<key>IOClass</key>
|
||||
<string>AppleUSBHostMergeProperties</string>
|
||||
<key>IONameMatch</key>
|
||||
<string>UHC3</string>
|
||||
<key>IOProviderClass</key>
|
||||
<string>AppleUSBUHCIPCI</string>
|
||||
<key>IOProviderMergeProperties</key>
|
||||
<dict>
|
||||
<key>kUSBMuxEnabled</key>
|
||||
<false/>
|
||||
<key>port-count</key>
|
||||
<data>AAAAAA==</data>
|
||||
<key>ports</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<key>model</key>
|
||||
<string>MacPro3,1</string>
|
||||
</dict>
|
||||
<key>MacPro4,1-EHC1</key>
|
||||
<dict>
|
||||
<key>CFBundleIdentifier</key>
|
||||
@@ -3617,6 +3639,28 @@
|
||||
<key>model</key>
|
||||
<string>iXac7,1</string>
|
||||
</dict>
|
||||
<key>iMac7,1-UHC4</key>
|
||||
<dict>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.apple.driver.AppleUSBHostMergeProperties</string>
|
||||
<key>IOClass</key>
|
||||
<string>AppleUSBHostMergeProperties</string>
|
||||
<key>IONameMatch</key>
|
||||
<string>UHC4</string>
|
||||
<key>IOProviderClass</key>
|
||||
<string>AppleUSBUHCIPCI</string>
|
||||
<key>IOProviderMergeProperties</key>
|
||||
<dict>
|
||||
<key>kUSBMuxEnabled</key>
|
||||
<false/>
|
||||
<key>port-count</key>
|
||||
<data>AAAAAA==</data>
|
||||
<key>ports</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<key>model</key>
|
||||
<string>iMac7,1</string>
|
||||
</dict>
|
||||
<key>iMac8,1-EHC1</key>
|
||||
<dict>
|
||||
<key>CFBundleIdentifier</key>
|
||||
|
||||
40
payloads/Kexts/Plists/PlatformPlugin/MacBook8,1/Info.plist
Normal file
@@ -0,0 +1,658 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>pmspFile</key>
|
||||
<integer>8</integer>
|
||||
<key>IOPlatformPowerProfile</key>
|
||||
<dict>
|
||||
<key>power_reduced_playback</key>
|
||||
<true/>
|
||||
<key>thermally_optimized_xcode</key>
|
||||
<true/>
|
||||
<key>optimized_photobooth</key>
|
||||
<true/>
|
||||
<key>optimized_screensavers</key>
|
||||
<true/>
|
||||
<key>optimized_slideshows</key>
|
||||
<true/>
|
||||
<key>optimized_visualizers</key>
|
||||
<true/>
|
||||
<key>thermally_optimized_maps</key>
|
||||
<true/>
|
||||
<key>CPUFloor</key>
|
||||
<integer>1000</integer>
|
||||
<key>BoostLimit</key>
|
||||
<integer>0</integer>
|
||||
<key>UnifiedSleepSliderPref</key>
|
||||
<true/>
|
||||
<key>PublishBatteryFactors</key>
|
||||
<true/>
|
||||
<key>NetworkTimerDelay</key>
|
||||
<integer>900</integer>
|
||||
<key>StandbyDelayHigh</key>
|
||||
<integer>86400</integer>
|
||||
<key>StandbyDelay</key>
|
||||
<integer>10800</integer>
|
||||
<key>StandbyBatteryThreshold</key>
|
||||
<integer>50</integer>
|
||||
<key>AutoPowerOff</key>
|
||||
<true/>
|
||||
<key>ProximityWake</key>
|
||||
<integer>0</integer>
|
||||
<key>IOPlatformSystemSleepPolicy</key>
|
||||
<data>U0xQVAIAEwCEHhIABAAAAAAUAAAABAAABgAAAAAAAAAPJQAAAAAAAAAAQAAAAEAAAAAQAAAAEAAH
|
||||
AAAAAAAAAA8lAAAAAAAAhB4SAAQAAAAAGAAAAAgAAAUAAAAAAAAADyUAAAAAAACEHhIABAAAAAgQ
|
||||
AAAIAAAABQAAAAAAAAAPJQAAAAAAACAAAAAgAAAAAAAAAAAAAAAFAAAAAAAAAA8lAAAAAAAACAAA
|
||||
AAgAAAAAAAAAAAAAAAYAAAAAAAAABAEAAAEAAAAAAAQAAAAEAAAAAAAAAAAABQAAAAAAAAAPJQAA
|
||||
AAAAAAAAAQAAAAEAAAAAAAAAAAAGAAAAAAAAAAQBAAAAAAAAxBYAAAAAAAAIAAAACAAAAAUAAAAA
|
||||
AAAADyUAAAAAAADEFhAAAAAQACBAAAAgQAAABwAAAAgAAAAPPQAAAAAAAMQWAAAAAAAAIAAAACAA
|
||||
AAAFAAAAAAAAAA8lAAAAAAAA1BYAABAAAAAAAAAAAAAAAAUAAAAAAAAADyUAAAAAAADEHhIARAAA
|
||||
AAYQAAAGAAAABwAAAAIAAAAPPQAAAAAAAIQeEgAEAAAAABAAAAAAAAAHAAAAAgAAAA89AAAAAAAA
|
||||
xBYAAAAAAAAAwAAAAMAAAAcAAAAIAAAADz0AAAAAAADEFgAAAAAAAAiAAAAIgAAABQAAAAAAAAAP
|
||||
JQAAAAAAAMQWAAAAAAAAAAAAAAAAAAAHAAAAAQAAAA89AAAAAAAAQAAAAEAAAAAGAAAABgAAAAcA
|
||||
AAAAAAAADzUAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAPNQAAAAAAAA==</data>
|
||||
<key>Frequencies</key>
|
||||
<dict>
|
||||
<key>2400</key>
|
||||
<integer>0</integer>
|
||||
<key>2600</key>
|
||||
<integer>1</integer>
|
||||
<key>2900</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
<key>FrequencyVectors</key>
|
||||
<array>
|
||||
<data>
|
||||
AgAAAA0AAAABAAAAAAAAAHgeAAAAAAAAyAAAAAAAAAAAZOgDAAAAAAAAAEvQBwAAAAAAAAAyuAsA
|
||||
AAAAAAAAGaAPAAAAAAAAAAD///////8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAKwNAAAAAAAAyAAAAAAAAAABZOgDAAAAAAAAAUvQBwAA
|
||||
AAAAAAEyuAsAAAAAAAAAMqAPAAAAAAAAABn///////8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAABAAAAAAAAAKAPAAAAAAAAyAAAAAAAAAACZPQBAAAA
|
||||
AAAAAUvoAwAAAAAAAAEy0AcAAAAAAAABGbgLAAAAAAAAADKgDwAAAAAAAAAZ////////DwAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAAABAAAAAAAAAJQRAAAAAAAAyAAAAAAA
|
||||
AAADZPQBAAAAAAAAAzLoAwAAAAAAAAMZ0AcAAAAAAAABMrgLAAAAAAAAADKgDwAAAAAAAAAZ////
|
||||
////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAABAAAAAAAAAJQRAAAA
|
||||
AAAAyAAAAAAAAAAEZOgDAAAAAAAABBnQBwAAAAAAAAEZuAsAAAAAAAAAMqAPAAAAAAAAABn/////
|
||||
//8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAA////////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAEJBQ0tHUk9VTkQAAAAAAAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUkVBTFRJTUVfU0hPUlQAAAEEAAAZABkA
|
||||
ZABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AABLRVJORUwAAAAAAAAAAAAAAARkAJYAyAAsASwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRIUlVfVElFUjIAAAAAAAAAAmQAyADIAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVEhS
|
||||
VV9USUVSMwAAAAAAAAACZADIAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUSFJVX1RJRVI0AAAAAAAAAAHIAMgAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRIUlVfVElF
|
||||
UjUAAAAAAAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGFyZC1ydC1ucwAAAAAAAAAAAAAACT0AAAAAAAAAAAAA
|
||||
AAAAdXRpbGl0eS10bHZsAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAbm9uLWZvY2FsLXRsdmwAAAAA
|
||||
AACWAAAAAAAAAAAAAAAAAAAAdWJwYwAAAAAAAAAAAAAAAAEAAABvZmYAAAAAAAAAAAAAAAAAaW9j
|
||||
c19lbmdhZ2UAAAAAAAAAAAAAahgAAAAAAAAAAAAAAAAAaW9jc19kaXNlbmdhZ2UAAAAAAACgJSYA
|
||||
AAAAAAAAAAAAAAAAaW9jc19jc3RmbHIAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAaW9jc19ydHJp
|
||||
Z2dlcgAAAAAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
</data>
|
||||
<data>
|
||||
AgAAAA0AAAABAAAAAAAAAHgeAAAAAAAAyAAAAAAAAAAAZOgDAAAAAAAAAEvQBwAAAAAAAAAyuAsA
|
||||
AAAAAAAAGaAPAAAAAAAAAAD///////8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAKwNAAAAAAAAyAAAAAAAAAABZOgDAAAAAAAAAUvQBwAA
|
||||
AAAAAAEyuAsAAAAAAAAAMqAPAAAAAAAAABn///////8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAABAAAAAAAAAKAPAAAAAAAAyAAAAAAAAAACZPQBAAAA
|
||||
AAAAAUvoAwAAAAAAAAEy0AcAAAAAAAABGbgLAAAAAAAAADKgDwAAAAAAAAAZ////////DwAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAAABAAAAAAAAAJQRAAAAAAAAyAAAAAAA
|
||||
AAADZPQBAAAAAAAAAzLoAwAAAAAAAAMZ0AcAAAAAAAABMrgLAAAAAAAAADKgDwAAAAAAAAAZ////
|
||||
////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAABAAAAAAAAAJQRAAAA
|
||||
AAAAyAAAAAAAAAAEZOgDAAAAAAAABBnQBwAAAAAAAAEZuAsAAAAAAAAAMqAPAAAAAAAAABn/////
|
||||
//8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAAABAAAA
|
||||
AAAAAKCGAQAAAAAALAEAAAAAAAAFZPQBAAAAAAAAA0voAwAAAAAAAAMy0AcAAAAAAAADALgLAAAA
|
||||
AAAAATKgDwAAAAAAAAEA////////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAA////////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAEJBQ0tHUk9VTkQAAAAAAAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUkVBTFRJTUVfU0hPUlQAAAEFAAAZABkA
|
||||
ZABkAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AABLRVJORUwAAAAAAAAAAAAAAAVkAJYAyAAsASwBLAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRIUlVfVElFUjIAAAAAAAAAAmQAyADIAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVEhS
|
||||
VV9USUVSMwAAAAAAAAACZADIAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUSFJVX1RJRVI0AAAAAAAAAAHIAMgAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRIUlVfVElF
|
||||
UjUAAAAAAAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGFyZC1ydC1ucwAAAAAAAAAAAAAACT0AAAAAAAAAAAAA
|
||||
AAAAdXRpbGl0eS10bHZsAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAbm9uLWZvY2FsLXRsdmwAAAAA
|
||||
AACWAAAAAAAAAAAAAAAAAAAAdWJwYwAAAAAAAAAAAAAAAAEAAABvZmYAAAAAAAAAAAAAAAAAaW9j
|
||||
c19lbmdhZ2UAAAAAAAAAAAAAahgAAAAAAAAAAAAAAAAAaW9jc19kaXNlbmdhZ2UAAAAAAACgJSYA
|
||||
AAAAAAAAAAAAAAAAaW9jc19jc3RmbHIAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAaW9jc19ydHJp
|
||||
Z2dlcgAAAAAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
</data>
|
||||
<data>
|
||||
AgAAAA0AAAABAAAAAAAAAHgeAAAAAAAAyAAAAAAAAAAAZOgDAAAAAAAAAEvQBwAAAAAAAAAyuAsA
|
||||
AAAAAAAAGaAPAAAAAAAAAAD///////8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAKwNAAAAAAAAyAAAAAAAAAABZOgDAAAAAAAAAUvQBwAA
|
||||
AAAAAAEyuAsAAAAAAAAAMqAPAAAAAAAAABn///////8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAABAAAAAAAAAKAPAAAAAAAAyAAAAAAAAAACZPQBAAAA
|
||||
AAAAAUvoAwAAAAAAAAEy0AcAAAAAAAABGbgLAAAAAAAAADKgDwAAAAAAAAAZ////////DwAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAAABAAAAAAAAAJQRAAAAAAAAyAAAAAAA
|
||||
AAADZPQBAAAAAAAAAzLoAwAAAAAAAAMZ0AcAAAAAAAABMrgLAAAAAAAAADKgDwAAAAAAAAAZ////
|
||||
////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAABAAAAAAAAAJQRAAAA
|
||||
AAAAyAAAAAAAAAAEZOgDAAAAAAAABBnQBwAAAAAAAAEZuAsAAAAAAAAAMqAPAAAAAAAAABn/////
|
||||
//8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAAABAAAA
|
||||
AAAAAKCGAQAAAAAALAEAAAAAAAAFZPQBAAAAAAAAA0voAwAAAAAAAAMy0AcAAAAAAAADALgLAAAA
|
||||
AAAAATKgDwAAAAAAAAEA////////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAA////////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAEJBQ0tHUk9VTkQAAAAAAAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUkVBTFRJTUVfU0hPUlQAAAEFAAAZABkA
|
||||
ZABkAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AABLRVJORUwAAAAAAAAAAAAAAAVkAJYAyAAsASwBLAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRIUlVfVElFUjIAAAAAAAAAAmQAyADIAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVEhS
|
||||
VV9USUVSMwAAAAAAAAACZADIAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUSFJVX1RJRVI0AAAAAAAAAAHIAMgAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRIUlVfVElF
|
||||
UjUAAAAAAAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGFyZC1ydC1ucwAAAAAAAAAAAAAACT0AAAAAAAAAAAAA
|
||||
AAAAdXRpbGl0eS10bHZsAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAbm9uLWZvY2FsLXRsdmwAAAAA
|
||||
AACWAAAAAAAAAAAAAAAAAAAAdWJwYwAAAAAAAAAAAAAAAAEAAABvZmYAAAAAAAAAAAAAAAAAaW9j
|
||||
c19lbmdhZ2UAAAAAAAAAAAAAahgAAAAAAAAAAAAAAAAAaW9jc19kaXNlbmdhZ2UAAAAAAACgJSYA
|
||||
AAAAAAAAAAAAAAAAaW9jc19jc3RmbHIAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAaW9jc19ydHJp
|
||||
Z2dlcgAAAAAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
</data>
|
||||
</array>
|
||||
<key>ThermalConfiguration</key>
|
||||
<dict>
|
||||
<key>Domain</key>
|
||||
<dict>
|
||||
<key>CPU</key>
|
||||
<dict>
|
||||
<key>SFIWindow</key>
|
||||
<integer>50000</integer>
|
||||
<key>SFIWindowHigh</key>
|
||||
<integer>25000</integer>
|
||||
<key>SFIWindowThreshold</key>
|
||||
<integer>150</integer>
|
||||
<key>SFIMaintenance</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>1=0%,10=25%,15=40%,20=75%,130=75%,150=87%</string>
|
||||
</dict>
|
||||
<key>SFIDarwinBG</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>1=0%,10=25%,15=40%,20=75%,130=75%,150=87%</string>
|
||||
</dict>
|
||||
<key>SFIAppNap</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>10=0%,20=25%,25=40%,30=75%,130=75%,150=87%</string>
|
||||
</dict>
|
||||
<key>SFIUtility</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>30=0%,40=20%,45=37%,50=50%,130=50%,150=75%</string>
|
||||
</dict>
|
||||
<key>SFIManagedFocal</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>190=0%,250=25%</string>
|
||||
</dict>
|
||||
<key>SFIManagedNonFocal</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>150=0%,200=50%</string>
|
||||
</dict>
|
||||
<key>QOSThermalThresholds</key>
|
||||
<dict>
|
||||
<key>Utility</key>
|
||||
<integer>20</integer>
|
||||
<key>NonFocal</key>
|
||||
<integer>150</integer>
|
||||
</dict>
|
||||
<key>ThermalPressure</key>
|
||||
<dict>
|
||||
<key>Nominal</key>
|
||||
<dict>
|
||||
<key>LowThreshold</key>
|
||||
<integer>0</integer>
|
||||
<key>HighThreshold</key>
|
||||
<integer>75</integer>
|
||||
</dict>
|
||||
<key>Moderate</key>
|
||||
<dict>
|
||||
<key>LowThreshold</key>
|
||||
<integer>50</integer>
|
||||
<key>HighThreshold</key>
|
||||
<integer>125</integer>
|
||||
</dict>
|
||||
<key>Heavy</key>
|
||||
<dict>
|
||||
<key>LowThreshold</key>
|
||||
<integer>100</integer>
|
||||
<key>HighThreshold</key>
|
||||
<integer>200</integer>
|
||||
</dict>
|
||||
<key>Trapping</key>
|
||||
<dict>
|
||||
<key>LowThreshold</key>
|
||||
<integer>150</integer>
|
||||
<key>HighThreshold</key>
|
||||
<integer>250</integer>
|
||||
</dict>
|
||||
<key>Sleeping</key>
|
||||
<dict>
|
||||
<key>LowThreshold</key>
|
||||
<integer>225</integer>
|
||||
<key>HighThreshold</key>
|
||||
<integer>252</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>GPU</key>
|
||||
<dict>
|
||||
<key>GPUTier1</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>0=0%</string>
|
||||
</dict>
|
||||
<key>GPUTier2</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>0=0%</string>
|
||||
</dict>
|
||||
<key>GPUTier3</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>0=0%</string>
|
||||
</dict>
|
||||
<key>GPUTier4</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>0=0%,150=0%,175=50%,200=75%,250=80%,251=87%</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>IO</key>
|
||||
<dict>
|
||||
<key>IOTier0</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>0=0%</string>
|
||||
</dict>
|
||||
<key>IOTier1</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>0=0%</string>
|
||||
</dict>
|
||||
<key>IOTier2</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>0=0%</string>
|
||||
</dict>
|
||||
<key>IOTier3</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>0=0%</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>TCPKeepAliveDuringSleep</key>
|
||||
<true/>
|
||||
<key>TCPKeepAliveExpirationTimeout</key>
|
||||
<integer>43200</integer>
|
||||
<key>NotificationWake</key>
|
||||
<true/>
|
||||
<key>DNDWhileDisplaySleeps</key>
|
||||
<false/>
|
||||
<key>DarkWakeServices</key>
|
||||
<dict>
|
||||
<key>DarkWakeBackgroundTasks</key>
|
||||
<integer>1</integer>
|
||||
<key>SleepServices</key>
|
||||
<integer>7</integer>
|
||||
<key>SleepServicesModes</key>
|
||||
<dict>
|
||||
<key>ModeA</key>
|
||||
<dict>
|
||||
<key>Expiration</key>
|
||||
<integer>0</integer>
|
||||
<key>BatteryFloor</key>
|
||||
<integer>0</integer>
|
||||
<key>BaseIntervals</key>
|
||||
<dict>
|
||||
<key>AC</key>
|
||||
<dict>
|
||||
<key>BaseSleepInterval</key>
|
||||
<integer>3600</integer>
|
||||
<key>BaseWakeCapInterval</key>
|
||||
<integer>86400</integer>
|
||||
</dict>
|
||||
<key>Battery</key>
|
||||
<dict>
|
||||
<key>BaseSleepInterval</key>
|
||||
<integer>3600</integer>
|
||||
<key>BaseWakeCapInterval</key>
|
||||
<integer>180</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,302 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>pmspFile</key>
|
||||
<integer>5</integer>
|
||||
<key>IOPlatformPowerProfile</key>
|
||||
<dict>
|
||||
<key>UnifiedSleepSliderPref</key>
|
||||
<true/>
|
||||
<key>enabler</key>
|
||||
<true/>
|
||||
<key>AGPM</key>
|
||||
<true/>
|
||||
<key>ASPM</key>
|
||||
<true/>
|
||||
<key>PublishBatteryFactors</key>
|
||||
<true/>
|
||||
<key>NetworkTimerDelay</key>
|
||||
<integer>900</integer>
|
||||
<key>StandbyDelayHigh</key>
|
||||
<integer>86400</integer>
|
||||
<key>StandbyDelay</key>
|
||||
<integer>10800</integer>
|
||||
<key>StandbyBatteryThreshold</key>
|
||||
<integer>50</integer>
|
||||
<key>AutoPowerOff</key>
|
||||
<true/>
|
||||
<key>ProximityWake</key>
|
||||
<integer>0</integer>
|
||||
<key>IOPlatformSystemSleepPolicy</key>
|
||||
<data>U0xQVAIAEwCEHhIABAAAAAAUAAAABAAABgAAAAAAAAAPJQAAAAAAAAAAQAAAAEAAAAAQAAAAEAAH
|
||||
AAAAAAAAAA8lAAAAAAAAhB4SAAQAAAAAGAAAAAgAAAUAAAAAAAAADyUAAAAAAACEHhIABAAAAAgQ
|
||||
AAAIAAAABQAAAAAAAAAPJQAAAAAAACAAAAAgAAAAAAAAAAAAAAAFAAAAAAAAAA8lAAAAAAAACAAA
|
||||
AAgAAAAAAAAAAAAAAAYAAAAAAAAAAAEAAAEAAAAAAAQAAAAEAAAAAAAAAAAABQAAAAAAAAAPJQAA
|
||||
AAAAAAAAAQAAAAEAAAAAAAAAAAAGAAAAAAAAAAABAAAAAAAAxBYAAAAAAAAIAAAACAAAAAUAAAAA
|
||||
AAAADyUAAAAAAADEFhAAAAAQACBAAAAgQAAABwAAAAgAAAAPOQAAAAAAAMQWAAAAAAAAIAAAACAA
|
||||
AAAFAAAAAAAAAA8lAAAAAAAA1BYAABAAAAAAAAAAAAAAAAUAAAAAAAAADyUAAAAAAADEHhIARAAA
|
||||
AAYQAAAGAAAABwAAAAIAAAAPOQAAAAAAAIQeEgAEAAAAABAAAAAAAAAHAAAAAgAAAA85AAAAAAAA
|
||||
xBYAAAAAAAAAwAAAAMAAAAcAAAAIAAAADzkAAAAAAADEFgAAAAAAAAiAAAAIgAAABQAAAAAAAAAP
|
||||
JQAAAAAAAMQWAAAAAAAAAAAAAAAAAAAHAAAAAQAAAA85AAAAAAAAQAAAAEAAAAAGAAAABgAAAAcA
|
||||
AAAAAAAADzEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAPMQAAAAAAAA==</data>
|
||||
<key>FanThrottledRPM</key>
|
||||
<integer>2000</integer>
|
||||
<key>FanMax</key>
|
||||
<array>
|
||||
<integer>6500</integer>
|
||||
</array>
|
||||
<key>InitialPLimit</key>
|
||||
<integer>0</integer>
|
||||
<key>FrequencyVectors</key>
|
||||
<array>
|
||||
<data>
|
||||
AgAAAAAAAAACAAAAAAAAAMgAAAAAAAAA////////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAGQAAAACAAAAAAAAAHgeAAAAAAAAyAAAAAAAAAABZOgDAAAAAAAAAUvQBwAA
|
||||
AAAAAAEyuAsAAAAAAAABGaAPAAAAAAAAAAD///////8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAADIAAAADAAAAAAAAANQXAAAAAAAAyAAAAAAAAAACZPQBAAAA
|
||||
AAAAAjLoAwAAAAAAAAIA0AcAAAAAAAABMrgLAAAAAAAAAQCgDwAAAAAAAAAA////////DwAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAADAAAAAAAAAKCGAQAAAAAALAEAAAAA
|
||||
AAADZPQBAAAAAAAAAkvoAwAAAAAAAAIy0AcAAAAAAAACALgLAAAAAAAAATKgDwAAAAAAAAAA////
|
||||
////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAA////////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAEJBQ0tHUk9VTkQAAAAAAAAAAWQAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUkVBTFRJTUVfU0hPUlQAAAEDAAAyADIA
|
||||
ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AABLRVJORUwAAAAAAAAAAAAAAAJkAJYAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRIUlVfVElFUjQAAAAAAAAAAmQAyADIAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVEhS
|
||||
VV9USUVSNQAAAAAAAAAByADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXRpbGl0eS10bHZsAAAAAAAAAABAAAAAAAAAAAAAAAAA
|
||||
AAAAbm9uLWZvY2FsLXRsdmwAAAAAAAD6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
</data>
|
||||
</array>
|
||||
<key>ThermalConfiguration</key>
|
||||
<dict>
|
||||
<key>Domain</key>
|
||||
<dict>
|
||||
<key>CPU</key>
|
||||
<dict>
|
||||
<key>SFIWindow</key>
|
||||
<integer>50000</integer>
|
||||
<key>SFIMaintenance</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>40=0%,78=67%</string>
|
||||
</dict>
|
||||
<key>SFIDarwinBG</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>40=0%,78=67%</string>
|
||||
</dict>
|
||||
<key>SFIAppNap</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>40=0%,78=67%</string>
|
||||
</dict>
|
||||
<key>QOSThermalThresholds</key>
|
||||
<dict>
|
||||
<key>Utility</key>
|
||||
<integer>64</integer>
|
||||
<key>NonFocal</key>
|
||||
<integer>251</integer>
|
||||
</dict>
|
||||
<key>ThermalPressure</key>
|
||||
<dict>
|
||||
<key>Nominal</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>64</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>Moderate</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>120</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>50</integer>
|
||||
</dict>
|
||||
<key>Heavy</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>200</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>90</integer>
|
||||
</dict>
|
||||
<key>Trapping</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>250</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>180</integer>
|
||||
</dict>
|
||||
<key>Sleeping</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>252</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>251</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>GPU</key>
|
||||
<dict/>
|
||||
<key>IO</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>DarkWakeServices</key>
|
||||
<dict>
|
||||
<key>DarkWakeBackgroundTasks</key>
|
||||
<integer>1</integer>
|
||||
<key>SleepServices</key>
|
||||
<integer>7</integer>
|
||||
<key>SleepServicesModes</key>
|
||||
<dict>
|
||||
<key>ModeA</key>
|
||||
<dict>
|
||||
<key>Expiration</key>
|
||||
<integer>0</integer>
|
||||
<key>BatteryFloor</key>
|
||||
<integer>0</integer>
|
||||
<key>BaseIntervals</key>
|
||||
<dict>
|
||||
<key>AC</key>
|
||||
<dict>
|
||||
<key>BaseSleepInterval</key>
|
||||
<integer>3600</integer>
|
||||
<key>BaseWakeCapInterval</key>
|
||||
<integer>86400</integer>
|
||||
</dict>
|
||||
<key>Battery</key>
|
||||
<dict>
|
||||
<key>BaseSleepInterval</key>
|
||||
<integer>3600</integer>
|
||||
<key>BaseWakeCapInterval</key>
|
||||
<integer>180</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,302 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>pmspFile</key>
|
||||
<integer>5</integer>
|
||||
<key>IOPlatformPowerProfile</key>
|
||||
<dict>
|
||||
<key>UnifiedSleepSliderPref</key>
|
||||
<true/>
|
||||
<key>enabler</key>
|
||||
<true/>
|
||||
<key>AGPM</key>
|
||||
<true/>
|
||||
<key>ASPM</key>
|
||||
<true/>
|
||||
<key>PublishBatteryFactors</key>
|
||||
<true/>
|
||||
<key>NetworkTimerDelay</key>
|
||||
<integer>900</integer>
|
||||
<key>StandbyDelayHigh</key>
|
||||
<integer>86400</integer>
|
||||
<key>StandbyDelay</key>
|
||||
<integer>10800</integer>
|
||||
<key>StandbyBatteryThreshold</key>
|
||||
<integer>50</integer>
|
||||
<key>AutoPowerOff</key>
|
||||
<true/>
|
||||
<key>ProximityWake</key>
|
||||
<integer>0</integer>
|
||||
<key>IOPlatformSystemSleepPolicy</key>
|
||||
<data>U0xQVAIAEwCEHhIABAAAAAAUAAAABAAABgAAAAAAAAAPJQAAAAAAAAAAQAAAAEAAAAAQAAAAEAAH
|
||||
AAAAAAAAAA8lAAAAAAAAhB4SAAQAAAAAGAAAAAgAAAUAAAAAAAAADyUAAAAAAACEHhIABAAAAAgQ
|
||||
AAAIAAAABQAAAAAAAAAPJQAAAAAAACAAAAAgAAAAAAAAAAAAAAAFAAAAAAAAAA8lAAAAAAAACAAA
|
||||
AAgAAAAAAAAAAAAAAAYAAAAAAAAAAAEAAAEAAAAAAAQAAAAEAAAAAAAAAAAABQAAAAAAAAAPJQAA
|
||||
AAAAAAAAAQAAAAEAAAAAAAAAAAAGAAAAAAAAAAABAAAAAAAAxBYAAAAAAAAIAAAACAAAAAUAAAAA
|
||||
AAAADyUAAAAAAADEFhAAAAAQACBAAAAgQAAABwAAAAgAAAAPOQAAAAAAAMQWAAAAAAAAIAAAACAA
|
||||
AAAFAAAAAAAAAA8lAAAAAAAA1BYAABAAAAAAAAAAAAAAAAUAAAAAAAAADyUAAAAAAADEHhIARAAA
|
||||
AAYQAAAGAAAABwAAAAIAAAAPOQAAAAAAAIQeEgAEAAAAABAAAAAAAAAHAAAAAgAAAA85AAAAAAAA
|
||||
xBYAAAAAAAAAwAAAAMAAAAcAAAAIAAAADzkAAAAAAADEFgAAAAAAAAiAAAAIgAAABQAAAAAAAAAP
|
||||
JQAAAAAAAMQWAAAAAAAAAAAAAAAAAAAHAAAAAQAAAA85AAAAAAAAQAAAAEAAAAAGAAAABgAAAAcA
|
||||
AAAAAAAADzEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAPMQAAAAAAAA==</data>
|
||||
<key>FanThrottledRPM</key>
|
||||
<integer>2000</integer>
|
||||
<key>FanMax</key>
|
||||
<array>
|
||||
<integer>6500</integer>
|
||||
</array>
|
||||
<key>InitialPLimit</key>
|
||||
<integer>0</integer>
|
||||
<key>FrequencyVectors</key>
|
||||
<array>
|
||||
<data>
|
||||
AgAAAAAAAAACAAAAAAAAAMgAAAAAAAAA////////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAGQAAAACAAAAAAAAAHgeAAAAAAAAyAAAAAAAAAABZOgDAAAAAAAAAUvQBwAA
|
||||
AAAAAAEyuAsAAAAAAAABGaAPAAAAAAAAAAD///////8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAADIAAAADAAAAAAAAANQXAAAAAAAAyAAAAAAAAAACZPQBAAAA
|
||||
AAAAAjLoAwAAAAAAAAIA0AcAAAAAAAABMrgLAAAAAAAAAQCgDwAAAAAAAAAA////////DwAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAADAAAAAAAAAKCGAQAAAAAALAEAAAAA
|
||||
AAADZPQBAAAAAAAAAkvoAwAAAAAAAAIy0AcAAAAAAAACALgLAAAAAAAAATKgDwAAAAAAAAAA////
|
||||
////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAA////////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAEJBQ0tHUk9VTkQAAAAAAAAAAWQAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUkVBTFRJTUVfU0hPUlQAAAEDAAAyADIA
|
||||
ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AABLRVJORUwAAAAAAAAAAAAAAAJkAJYAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRIUlVfVElFUjQAAAAAAAAAAmQAyADIAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVEhS
|
||||
VV9USUVSNQAAAAAAAAAByADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXRpbGl0eS10bHZsAAAAAAAAAAA9AAAAAAAAAAAAAAAA
|
||||
AAAAbm9uLWZvY2FsLXRsdmwAAAAAAAD6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
</data>
|
||||
</array>
|
||||
<key>ThermalConfiguration</key>
|
||||
<dict>
|
||||
<key>Domain</key>
|
||||
<dict>
|
||||
<key>CPU</key>
|
||||
<dict>
|
||||
<key>SFIWindow</key>
|
||||
<integer>50000</integer>
|
||||
<key>SFIMaintenance</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>40=0%,74=67%</string>
|
||||
</dict>
|
||||
<key>SFIDarwinBG</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>40=0%,74=67%</string>
|
||||
</dict>
|
||||
<key>SFIAppNap</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>40=0%,74=67%</string>
|
||||
</dict>
|
||||
<key>QOSThermalThresholds</key>
|
||||
<dict>
|
||||
<key>Utility</key>
|
||||
<integer>61</integer>
|
||||
<key>NonFocal</key>
|
||||
<integer>251</integer>
|
||||
</dict>
|
||||
<key>ThermalPressure</key>
|
||||
<dict>
|
||||
<key>Nominal</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>61</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>Moderate</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>120</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>50</integer>
|
||||
</dict>
|
||||
<key>Heavy</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>200</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>90</integer>
|
||||
</dict>
|
||||
<key>Trapping</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>250</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>180</integer>
|
||||
</dict>
|
||||
<key>Sleeping</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>252</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>251</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>GPU</key>
|
||||
<dict/>
|
||||
<key>IO</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>DarkWakeServices</key>
|
||||
<dict>
|
||||
<key>DarkWakeBackgroundTasks</key>
|
||||
<integer>1</integer>
|
||||
<key>SleepServices</key>
|
||||
<integer>7</integer>
|
||||
<key>SleepServicesModes</key>
|
||||
<dict>
|
||||
<key>ModeA</key>
|
||||
<dict>
|
||||
<key>Expiration</key>
|
||||
<integer>0</integer>
|
||||
<key>BatteryFloor</key>
|
||||
<integer>0</integer>
|
||||
<key>BaseIntervals</key>
|
||||
<dict>
|
||||
<key>AC</key>
|
||||
<dict>
|
||||
<key>BaseSleepInterval</key>
|
||||
<integer>3600</integer>
|
||||
<key>BaseWakeCapInterval</key>
|
||||
<integer>86400</integer>
|
||||
</dict>
|
||||
<key>Battery</key>
|
||||
<dict>
|
||||
<key>BaseSleepInterval</key>
|
||||
<integer>3600</integer>
|
||||
<key>BaseWakeCapInterval</key>
|
||||
<integer>180</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,294 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>pmspFile</key>
|
||||
<integer>6</integer>
|
||||
<key>IOPlatformPowerProfile</key>
|
||||
<dict>
|
||||
<key>UnifiedSleepSliderPref</key>
|
||||
<true/>
|
||||
<key>enabler</key>
|
||||
<true/>
|
||||
<key>AGPM</key>
|
||||
<true/>
|
||||
<key>ASPM</key>
|
||||
<true/>
|
||||
<key>PublishBatteryFactors</key>
|
||||
<true/>
|
||||
<key>NetworkTimerDelay</key>
|
||||
<integer>900</integer>
|
||||
<key>StandbyDelayHigh</key>
|
||||
<integer>86400</integer>
|
||||
<key>StandbyDelay</key>
|
||||
<integer>10800</integer>
|
||||
<key>StandbyBatteryThreshold</key>
|
||||
<integer>50</integer>
|
||||
<key>AutoPowerOff</key>
|
||||
<true/>
|
||||
<key>ProximityWake</key>
|
||||
<integer>0</integer>
|
||||
<key>IOPlatformSystemSleepPolicy</key>
|
||||
<data>U0xQVAIAEwCEHhIABAAAAAAUAAAABAAABgAAAAAAAAAPJQAAAAAAAAAAQAAAAEAAAAAQAAAAEAAH
|
||||
AAAAAAAAAA8lAAAAAAAAhB4SAAQAAAAAGAAAAAgAAAUAAAAAAAAADyUAAAAAAACEHhIABAAAAAgQ
|
||||
AAAIAAAABQAAAAAAAAAPJQAAAAAAACAAAAAgAAAAAAAAAAAAAAAFAAAAAAAAAA8lAAAAAAAACAAA
|
||||
AAgAAAAAAAAAAAAAAAYAAAAAAAAAAAEAAAEAAAAAAAQAAAAEAAAAAAAAAAAABQAAAAAAAAAPJQAA
|
||||
AAAAAAAAAQAAAAEAAAAAAAAAAAAGAAAAAAAAAAABAAAAAAAAxBYAAAAAAAAIAAAACAAAAAUAAAAA
|
||||
AAAADyUAAAAAAADEFhAAAAAQACBAAAAgQAAABwAAAAgAAAAPPQAAAAAAAMQWAAAAAAAAIAAAACAA
|
||||
AAAFAAAAAAAAAA8lAAAAAAAA1BYAABAAAAAAAAAAAAAAAAUAAAAAAAAADyUAAAAAAADEHhIARAAA
|
||||
AAYQAAAGAAAABwAAAAIAAAAPPQAAAAAAAIQeEgAEAAAAABAAAAAAAAAHAAAAAgAAAA89AAAAAAAA
|
||||
xBYAAAAAAAAAwAAAAMAAAAcAAAAIAAAADz0AAAAAAADEFgAAAAAAAAiAAAAIgAAABQAAAAAAAAAP
|
||||
JQAAAAAAAMQWAAAAAAAAAAAAAAAAAAAHAAAAAQAAAA89AAAAAAAAQAAAAEAAAAAGAAAABgAAAAcA
|
||||
AAAAAAAADzUAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAPNQAAAAAAAA==</data>
|
||||
<key>FrequencyVectors</key>
|
||||
<array>
|
||||
<data>
|
||||
AgAAAAAAAAACAAAAAAAAAMgAAAAAAAAAGQAAAAAAAAAAZP///////w8AAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAADIAAAACAAAAAAAAADwPAAAAAAAAyAAAAAAAAAABZOgDAAAAAAAAAUvQBwAA
|
||||
AAAAAAEyuAsAAAAAAAABGaAPAAAAAAAAAQD///////8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAACAAAAAAAAAGQZAAAAAAAAyAAAAAAAAAACZOgDAAAA
|
||||
AAAAAkvQBwAAAAAAAAIyuAsAAAAAAAABMqAPAAAAAAAAARn///////8PAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIAAAADAAAAAAAAAKAPAAAAAAAAyAAAAAAA
|
||||
AAADZPQBAAAAAAAAAzLoAwAAAAAAAAMZ0AcAAAAAAAACMrgLAAAAAAAAATKgDwAAAAAAAAEZ////
|
||||
////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAADAAAAAAAAAKCGAQAA
|
||||
AAAALAEAAAAAAAAEZPQBAAAAAAAAA0voAwAAAAAAAAMy0AcAAAAAAAADALgLAAAAAAAAAjKgDwAA
|
||||
AAAAAAIA////////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAA////////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAEJBQ0tHUk9VTkQAAAAAAAAAAWQAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUkVBTFRJTUVfU0hPUlQAAAIEAAAAABkA
|
||||
GQBkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AABLRVJORUwAAAAAAAAAAAAAAARkAGQAZACWAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRIUlVfVElFUjQAAAAAAAAAA2QAlgDIAMgAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVEhS
|
||||
VV9USUVSNQAAAAAAAAACyADIAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXRpbGl0eS10bHZsAAAAAAAAAAA+AAAAAAAAAAAAAAAA
|
||||
AAAAbm9uLWZvY2FsLXRsdmwAAAAAAAD6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
</data>
|
||||
</array>
|
||||
<key>ThermalConfiguration</key>
|
||||
<dict>
|
||||
<key>Domain</key>
|
||||
<dict>
|
||||
<key>CPU</key>
|
||||
<dict>
|
||||
<key>SFIWindow</key>
|
||||
<integer>50000</integer>
|
||||
<key>SFIMaintenance</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>46=0%,73=67%</string>
|
||||
</dict>
|
||||
<key>SFIDarwinBG</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>46=0%,73=67%</string>
|
||||
</dict>
|
||||
<key>SFIAppNap</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>55=0%,73=67%</string>
|
||||
</dict>
|
||||
<key>QOSThermalThresholds</key>
|
||||
<dict>
|
||||
<key>Utility</key>
|
||||
<integer>62</integer>
|
||||
<key>NonFocal</key>
|
||||
<integer>251</integer>
|
||||
</dict>
|
||||
<key>ThermalPressure</key>
|
||||
<dict>
|
||||
<key>Nominal</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>65</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>Moderate</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>120</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>50</integer>
|
||||
</dict>
|
||||
<key>Heavy</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>200</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>90</integer>
|
||||
</dict>
|
||||
<key>Trapping</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>250</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>180</integer>
|
||||
</dict>
|
||||
<key>Sleeping</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>252</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>251</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>GPU</key>
|
||||
<dict/>
|
||||
<key>IO</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>DarkWakeServices</key>
|
||||
<dict>
|
||||
<key>DarkWakeBackgroundTasks</key>
|
||||
<integer>1</integer>
|
||||
<key>SleepServices</key>
|
||||
<integer>7</integer>
|
||||
<key>SleepServicesModes</key>
|
||||
<dict>
|
||||
<key>ModeA</key>
|
||||
<dict>
|
||||
<key>Expiration</key>
|
||||
<integer>0</integer>
|
||||
<key>BatteryFloor</key>
|
||||
<integer>0</integer>
|
||||
<key>BaseIntervals</key>
|
||||
<dict>
|
||||
<key>AC</key>
|
||||
<dict>
|
||||
<key>BaseSleepInterval</key>
|
||||
<integer>3600</integer>
|
||||
<key>BaseWakeCapInterval</key>
|
||||
<integer>86400</integer>
|
||||
</dict>
|
||||
<key>Battery</key>
|
||||
<dict>
|
||||
<key>BaseSleepInterval</key>
|
||||
<integer>3600</integer>
|
||||
<key>BaseWakeCapInterval</key>
|
||||
<integer>180</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,294 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>pmspFile</key>
|
||||
<integer>3</integer>
|
||||
<key>IOPlatformPowerProfile</key>
|
||||
<dict>
|
||||
<key>UnifiedSleepSliderPref</key>
|
||||
<true/>
|
||||
<key>enabler</key>
|
||||
<true/>
|
||||
<key>AGPM</key>
|
||||
<true/>
|
||||
<key>ASPM</key>
|
||||
<true/>
|
||||
<key>PublishBatteryFactors</key>
|
||||
<true/>
|
||||
<key>NetworkTimerDelay</key>
|
||||
<integer>900</integer>
|
||||
<key>StandbyDelayHigh</key>
|
||||
<integer>86400</integer>
|
||||
<key>StandbyDelay</key>
|
||||
<integer>10800</integer>
|
||||
<key>StandbyBatteryThreshold</key>
|
||||
<integer>50</integer>
|
||||
<key>AutoPowerOff</key>
|
||||
<true/>
|
||||
<key>ProximityWake</key>
|
||||
<integer>0</integer>
|
||||
<key>IOPlatformSystemSleepPolicy</key>
|
||||
<data>U0xQVAIAEgCEHhIABAAAAAAUAAAABAAABgAAAAAAAAAPJQAAAAAAAIQeEgAEAAAAABgAAAAIAAAF
|
||||
AAAAAAAAAA8lAAAAAAAAhB4SAAQAAAAIEAAACAAAAAUAAAAAAAAADyUAAAAAAAAgAAAAIAAAAAAA
|
||||
AAAAAAAABQAAAAAAAAAPJQAAAAAAAAgAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAABAAABAAAAAAAE
|
||||
AAAABAAAAAAAAAAAAAUAAAAAAAAADyUAAAAAAAAAAAEAAAABAAAAAAAAAAAABAAAAAAAAAAAAQAA
|
||||
AAAAAMQWAAAAAAAACAAAAAgAAAAFAAAAAAAAAA8lAAAAAAAAxBYQAAAAEAAgQAAAIEAAAAIAAAAI
|
||||
AAAADz0AAAAAAADEFgAAAAAAACAAAAAgAAAABQAAAAAAAAAPJQAAAAAAANQWAAAQAAAAAAAAAAAA
|
||||
AAAFAAAAAAAAAA8lAAAAAAAAxB4SAEQAAAAGEAAABgAAAAMAAAACAAAADz0AAAAAAACEHhIABAAA
|
||||
AAAQAAAAAAAAAgAAAAIAAAAPPQAAAAAAAMQWAAAAAAAAAMAAAADAAAACAAAACAAAAA89AAAAAAAA
|
||||
xBYAAAAAAAAIgAAACIAAAAUAAAAAAAAADyUAAAAAAADEFgAAAAAAAAAAAAAAAAAAAgAAAAEAAAAP
|
||||
PQAAAAAAAEAAAABAAAAABgAAAAYAAAADAAAAAAAAAA81AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIA
|
||||
AAAAAAAADzUAAAAAAAA=</data>
|
||||
<key>FrequencyVectors</key>
|
||||
<array>
|
||||
<data>
|
||||
AgAAAAAAAAACAAAAAAAAAMgAAAAAAAAAGQAAAAAAAAAAZP///////w8AAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAABEAAAABAAAAAAAAADwPAAAAAAAAyAAAAAAAAAABZOgDAAAAAAAAAUvQBwAA
|
||||
AAAAAAEyuAsAAAAAAAABGaAPAAAAAAAAAQD///////8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAACAAAAAAAAAKwNAAAAAAAAyAAAAAAAAAACZOgDAAAA
|
||||
AAAAAkvQBwAAAAAAAAIyuAsAAAAAAAABMqAPAAAAAAAAARn///////8PAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkAAAADAAAAAAAAALgLAAAAAAAAyAAAAAAA
|
||||
AAADZPQBAAAAAAAAAkvoAwAAAAAAAAIy0AcAAAAAAAACGbgLAAAAAAAAATKgDwAAAAAAAAEZ////
|
||||
////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIAAAADAAAAAAAAAMQJAAAA
|
||||
AAAAyAAAAAAAAAAEZPQBAAAAAAAABDLoAwAAAAAAAAQZ0AcAAAAAAAACMrgLAAAAAAAAATKgDwAA
|
||||
AAAAAAEZ////////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEsAAAADAAAA
|
||||
AAAAANwFAAAAAAAAyAAAAAAAAAAFZOgDAAAAAAAABRnQBwAAAAAAAAIZuAsAAAAAAAABMqAPAAAA
|
||||
AAAAARn///////8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AGQAAAADAAAAAAAAAKCGAQAAAAAALAEAAAAAAAAGZPQBAAAAAAAABEvoAwAAAAAAAAQy0AcAAAAA
|
||||
AAAEALgLAAAAAAAAAjKgDwAAAAAAAAIA////////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////DwAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAEJBQ0tHUk9VTkQAAAAAAAAAAWQAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUkVBTFRJTUVfU0hPUlQAAAIGAAAAABkA
|
||||
GQBkAGQAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AABLRVJORUwAAAAAAAAAAAAAAAZkAGQAZAB9AJYArwDIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRIUlVfVElFUjQAAAAAAAAAA2QAlgDIAMgAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVEhS
|
||||
VV9USUVSNQAAAAAAAAACyADIAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGFyZC1ydC1ucwAAAAAAAAAAAAAACT0AAAAAAAAAAAAA
|
||||
AAAAdWJwYwAAAAAAAAAAAAAAAAEAAABvZmYAAAAAAAAAAAAAAAAAcGVyZi1iaWFzAAAAAAAAAAAA
|
||||
AAAFAAAAAAAAAAAAAAAAAAAAdXRpbGl0eS10bHZsAAAAAAAAAAA1AAAAAAAAAAAAAAAAAAAAbm9u
|
||||
LWZvY2FsLXRsdmwAAAAAAAD6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
</data>
|
||||
</array>
|
||||
<key>ThermalConfiguration</key>
|
||||
<dict>
|
||||
<key>Domain</key>
|
||||
<dict>
|
||||
<key>CPU</key>
|
||||
<dict>
|
||||
<key>SFIWindow</key>
|
||||
<integer>50000</integer>
|
||||
<key>SFIMaintenance</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>38=0%,67=67%</string>
|
||||
</dict>
|
||||
<key>SFIDarwinBG</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>38=0%,67=67%</string>
|
||||
</dict>
|
||||
<key>SFIAppNap</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>47=0%,67=67%</string>
|
||||
</dict>
|
||||
<key>QOSThermalThresholds</key>
|
||||
<dict>
|
||||
<key>Utility</key>
|
||||
<integer>53</integer>
|
||||
<key>NonFocal</key>
|
||||
<integer>251</integer>
|
||||
</dict>
|
||||
<key>ThermalPressure</key>
|
||||
<dict>
|
||||
<key>Nominal</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>57</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>Moderate</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>120</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>50</integer>
|
||||
</dict>
|
||||
<key>Heavy</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>200</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>90</integer>
|
||||
</dict>
|
||||
<key>Trapping</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>250</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>180</integer>
|
||||
</dict>
|
||||
<key>Sleeping</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>252</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>251</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>GPU</key>
|
||||
<dict/>
|
||||
<key>IO</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>DarkWakeServices</key>
|
||||
<dict>
|
||||
<key>DarkWakeBackgroundTasks</key>
|
||||
<integer>1</integer>
|
||||
<key>SleepServices</key>
|
||||
<integer>7</integer>
|
||||
<key>SleepServicesModes</key>
|
||||
<dict>
|
||||
<key>ModeA</key>
|
||||
<dict>
|
||||
<key>Expiration</key>
|
||||
<integer>0</integer>
|
||||
<key>BatteryFloor</key>
|
||||
<integer>0</integer>
|
||||
<key>BaseIntervals</key>
|
||||
<dict>
|
||||
<key>AC</key>
|
||||
<dict>
|
||||
<key>BaseSleepInterval</key>
|
||||
<integer>3600</integer>
|
||||
<key>BaseWakeCapInterval</key>
|
||||
<integer>86400</integer>
|
||||
</dict>
|
||||
<key>Battery</key>
|
||||
<dict>
|
||||
<key>BaseSleepInterval</key>
|
||||
<integer>3600</integer>
|
||||
<key>BaseWakeCapInterval</key>
|
||||
<integer>180</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,294 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>pmspFile</key>
|
||||
<integer>3</integer>
|
||||
<key>IOPlatformPowerProfile</key>
|
||||
<dict>
|
||||
<key>UnifiedSleepSliderPref</key>
|
||||
<true/>
|
||||
<key>enabler</key>
|
||||
<true/>
|
||||
<key>AGPM</key>
|
||||
<true/>
|
||||
<key>ASPM</key>
|
||||
<true/>
|
||||
<key>PublishBatteryFactors</key>
|
||||
<true/>
|
||||
<key>NetworkTimerDelay</key>
|
||||
<integer>900</integer>
|
||||
<key>StandbyDelayHigh</key>
|
||||
<integer>86400</integer>
|
||||
<key>StandbyDelay</key>
|
||||
<integer>10800</integer>
|
||||
<key>StandbyBatteryThreshold</key>
|
||||
<integer>50</integer>
|
||||
<key>AutoPowerOff</key>
|
||||
<true/>
|
||||
<key>ProximityWake</key>
|
||||
<integer>0</integer>
|
||||
<key>IOPlatformSystemSleepPolicy</key>
|
||||
<data>U0xQVAIAEgCEHhIABAAAAAAUAAAABAAABgAAAAAAAAAPJQAAAAAAAIQeEgAEAAAAABgAAAAIAAAF
|
||||
AAAAAAAAAA8lAAAAAAAAhB4SAAQAAAAIEAAACAAAAAUAAAAAAAAADyUAAAAAAAAgAAAAIAAAAAAA
|
||||
AAAAAAAABQAAAAAAAAAPJQAAAAAAAAgAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAABAAABAAAAAAAE
|
||||
AAAABAAAAAAAAAAAAAUAAAAAAAAADyUAAAAAAAAAAAEAAAABAAAAAAAAAAAABAAAAAAAAAAAAQAA
|
||||
AAAAAMQWAAAAAAAACAAAAAgAAAAFAAAAAAAAAA8lAAAAAAAAxBYQAAAAEAAgQAAAIEAAAAIAAAAI
|
||||
AAAADz0AAAAAAADEFgAAAAAAACAAAAAgAAAABQAAAAAAAAAPJQAAAAAAANQWAAAQAAAAAAAAAAAA
|
||||
AAAFAAAAAAAAAA8lAAAAAAAAxB4SAEQAAAAGEAAABgAAAAMAAAACAAAADz0AAAAAAACEHhIABAAA
|
||||
AAAQAAAAAAAAAgAAAAIAAAAPPQAAAAAAAMQWAAAAAAAAAMAAAADAAAACAAAACAAAAA89AAAAAAAA
|
||||
xBYAAAAAAAAIgAAACIAAAAUAAAAAAAAADyUAAAAAAADEFgAAAAAAAAAAAAAAAAAAAgAAAAEAAAAP
|
||||
PQAAAAAAAEAAAABAAAAABgAAAAYAAAADAAAAAAAAAA81AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIA
|
||||
AAAAAAAADzUAAAAAAAA=</data>
|
||||
<key>FrequencyVectors</key>
|
||||
<array>
|
||||
<data>
|
||||
AgAAAAAAAAACAAAAAAAAAMgAAAAAAAAAGQAAAAAAAAAAZP///////w8AAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAABEAAAABAAAAAAAAADwPAAAAAAAAyAAAAAAAAAABZOgDAAAAAAAAAUvQBwAA
|
||||
AAAAAAEyuAsAAAAAAAABGaAPAAAAAAAAAQD///////8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAACAAAAAAAAAKwNAAAAAAAAyAAAAAAAAAACZOgDAAAA
|
||||
AAAAAkvQBwAAAAAAAAIyuAsAAAAAAAABMqAPAAAAAAAAARn///////8PAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkAAAADAAAAAAAAALgLAAAAAAAAyAAAAAAA
|
||||
AAADZPQBAAAAAAAAAkvoAwAAAAAAAAIy0AcAAAAAAAACGbgLAAAAAAAAATKgDwAAAAAAAAEZ////
|
||||
////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIAAAADAAAAAAAAAMQJAAAA
|
||||
AAAAyAAAAAAAAAAEZPQBAAAAAAAABDLoAwAAAAAAAAQZ0AcAAAAAAAACMrgLAAAAAAAAATKgDwAA
|
||||
AAAAAAEZ////////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEsAAAADAAAA
|
||||
AAAAANwFAAAAAAAAyAAAAAAAAAAFZOgDAAAAAAAABRnQBwAAAAAAAAIZuAsAAAAAAAABMqAPAAAA
|
||||
AAAAARn///////8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AGQAAAADAAAAAAAAAKCGAQAAAAAALAEAAAAAAAAGZPQBAAAAAAAABEvoAwAAAAAAAAQy0AcAAAAA
|
||||
AAAEALgLAAAAAAAAAjKgDwAAAAAAAAIA////////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////DwAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAEJBQ0tHUk9VTkQAAAAAAAAAAWQAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUkVBTFRJTUVfU0hPUlQAAAIGAAAAABkA
|
||||
GQBkAGQAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AABLRVJORUwAAAAAAAAAAAAAAAZkAGQAZAB9AJYArwDIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRIUlVfVElFUjQAAAAAAAAAA2QAlgDIAMgAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVEhS
|
||||
VV9USUVSNQAAAAAAAAACyADIAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGFyZC1ydC1ucwAAAAAAAAAAAAAACT0AAAAAAAAAAAAA
|
||||
AAAAdWJwYwAAAAAAAAAAAAAAAAEAAABvZmYAAAAAAAAAAAAAAAAAcGVyZi1iaWFzAAAAAAAAAAAA
|
||||
AAAFAAAAAAAAAAAAAAAAAAAAdXRpbGl0eS10bHZsAAAAAAAAAAA1AAAAAAAAAAAAAAAAAAAAbm9u
|
||||
LWZvY2FsLXRsdmwAAAAAAAD6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
</data>
|
||||
</array>
|
||||
<key>ThermalConfiguration</key>
|
||||
<dict>
|
||||
<key>Domain</key>
|
||||
<dict>
|
||||
<key>CPU</key>
|
||||
<dict>
|
||||
<key>SFIWindow</key>
|
||||
<integer>50000</integer>
|
||||
<key>SFIMaintenance</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>38=0%,67=67%</string>
|
||||
</dict>
|
||||
<key>SFIDarwinBG</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>38=0%,67=67%</string>
|
||||
</dict>
|
||||
<key>SFIAppNap</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>47=0%,67=67%</string>
|
||||
</dict>
|
||||
<key>QOSThermalThresholds</key>
|
||||
<dict>
|
||||
<key>Utility</key>
|
||||
<integer>53</integer>
|
||||
<key>NonFocal</key>
|
||||
<integer>251</integer>
|
||||
</dict>
|
||||
<key>ThermalPressure</key>
|
||||
<dict>
|
||||
<key>Nominal</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>57</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>Moderate</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>120</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>50</integer>
|
||||
</dict>
|
||||
<key>Heavy</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>200</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>90</integer>
|
||||
</dict>
|
||||
<key>Trapping</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>250</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>180</integer>
|
||||
</dict>
|
||||
<key>Sleeping</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>252</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>251</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>GPU</key>
|
||||
<dict/>
|
||||
<key>IO</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>DarkWakeServices</key>
|
||||
<dict>
|
||||
<key>DarkWakeBackgroundTasks</key>
|
||||
<integer>1</integer>
|
||||
<key>SleepServices</key>
|
||||
<integer>7</integer>
|
||||
<key>SleepServicesModes</key>
|
||||
<dict>
|
||||
<key>ModeA</key>
|
||||
<dict>
|
||||
<key>Expiration</key>
|
||||
<integer>0</integer>
|
||||
<key>BatteryFloor</key>
|
||||
<integer>0</integer>
|
||||
<key>BaseIntervals</key>
|
||||
<dict>
|
||||
<key>AC</key>
|
||||
<dict>
|
||||
<key>BaseSleepInterval</key>
|
||||
<integer>3600</integer>
|
||||
<key>BaseWakeCapInterval</key>
|
||||
<integer>86400</integer>
|
||||
</dict>
|
||||
<key>Battery</key>
|
||||
<dict>
|
||||
<key>BaseSleepInterval</key>
|
||||
<integer>3600</integer>
|
||||
<key>BaseWakeCapInterval</key>
|
||||
<integer>180</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
40
payloads/Kexts/Plists/PlatformPlugin/iMac14,4/Info.plist
Normal file
@@ -0,0 +1,289 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>pmspFile</key>
|
||||
<integer>1</integer>
|
||||
<key>IOPlatformPowerProfile</key>
|
||||
<dict>
|
||||
<key>NetworkTimerDelay</key>
|
||||
<integer>900</integer>
|
||||
<key>StandbyDelayHigh</key>
|
||||
<integer>86400</integer>
|
||||
<key>StandbyDelay</key>
|
||||
<integer>86400</integer>
|
||||
<key>StandbyBatteryThreshold</key>
|
||||
<integer>50</integer>
|
||||
<key>AutoPowerOff</key>
|
||||
<true/>
|
||||
<key>ProximityWake</key>
|
||||
<integer>0</integer>
|
||||
<key>IOPlatformSystemSleepPolicy</key>
|
||||
<data>U0xQVAIAFQAAHhAAAAAAAAAVAAAABQAABgAAAAAAAAAABQAAAAAAACAAAAAgAAAAAAAAAAAAAAAF
|
||||
AAAAAAAAAAABAAAAAAAAAAAEAAAABAAAAAAAAAAAAAYAAAAAAAAAAAUAAAAAAAAAAAEAAAABAAAA
|
||||
AAAAAAAABAAAAAAAAAAAAQAAAAAAAEAeEAAAAAAAGBEAABgBAAAFAAAAAgAAAAAJAAAAAAAAQAYA
|
||||
AAAAAAAYAAAAGAAAAAUAAAAAAAAAAAEAAAAAAABAHhAAAAAAACgRAAAgAQAABQAAAAIAAAAACQAA
|
||||
AAAAAEAGEAAAABAAIEAAACBAAAACAAAACAAAAAANAAAAAAAAQAYQAAAAEAAAwAAAAMAAAAIAAAAI
|
||||
AAAAAA0AAAAAAABABgAAAAAAAAiAAAAIgAAABQAAAAAAAAAAAQAAAAAAAEAGAAAAAAAAKAAAACAA
|
||||
AAAFAAAAAAAAAAABAAAAAAAAUB4QABAAAAAAEQAAAAEAAAUAAAACAAAAAAkAAAAAAABQBgAAEAAA
|
||||
AAAAAAAAAAAABQAAAAAAAAAAAQAAAAAAAAAeEAAAAAAAABkAAAAJAAAGAAAAAAAAAAAFAAAAAAAA
|
||||
AB4QAAAAAAAIEQAACAEAAAYAAAAAAAAAAAUAAAAAAAAAHhAAAAAAAEARAABAAQAABgAAAAAAAAAA
|
||||
BQAAAAAAAEAeEABAAAAABhEAAAYBAAADAAAAAgAAAAANAAAAAAAAQB4QAEAAAAAAEQAAAAEAAAIA
|
||||
AAACAAAAAA0AAAAAAABABgAAAAAAAAAAAAAAAAAAAgAAAAEAAAAADQAAAAAAAEAAAABAAAAABgAA
|
||||
AAYAAAADAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAUAAAAAAAA=</data>
|
||||
<key>InitialPLimit</key>
|
||||
<integer>0</integer>
|
||||
<key>FrequencyVectors</key>
|
||||
<array>
|
||||
<data>
|
||||
AgAAAAAAAAACAAAAAAAAAGQAAAAAAAAAGQAAAAAAAAAAZP///////w8AAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAGQAAAACAAAAAAAAAOgDAAAAAAAAoA8AAAAAAAABZP///////w8AAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAADAAAAAAAAAEBCDwAAAAAAoA8AAAAAAAACZP//////
|
||||
/w8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////
|
||||
DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAEJBQ0tHUk9VTkQAAAAAAAAAAcgAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUkVBTFRJTUVfU0hPUlQAAAICAAAAAGQA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGFyZC1ydC1ucwAAAAAAAAAAAAAACT0AAAAAAAAAAAAA
|
||||
AAAAdWJwYwAAAAAAAAAAAAAAAAEAAABvZmYAAAAAAAAAAAAAAAAAcGVyZi1iaWFzAAAAAAAAAAAA
|
||||
AAABAAAAAAAAAAAAAAAAAAAAdXRpbGl0eS10bHZsAAAAAAAAAABOAAAAAAAAAAAAAAAAAAAAbm9u
|
||||
LWZvY2FsLXRsdmwAAAAAAAD6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
</data>
|
||||
</array>
|
||||
<key>ThermalConfiguration</key>
|
||||
<dict>
|
||||
<key>Domain</key>
|
||||
<dict>
|
||||
<key>CPU</key>
|
||||
<dict>
|
||||
<key>SFIWindow</key>
|
||||
<integer>50000</integer>
|
||||
<key>SFIMaintenance</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>40=0%,93=50%</string>
|
||||
</dict>
|
||||
<key>SFIDarwinBG</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>40=0%,93=50%</string>
|
||||
</dict>
|
||||
<key>SFIAppNap</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>40=0%,93=50%</string>
|
||||
</dict>
|
||||
<key>QOSThermalThresholds</key>
|
||||
<dict>
|
||||
<key>Utility</key>
|
||||
<integer>251</integer>
|
||||
<key>NonFocal</key>
|
||||
<integer>251</integer>
|
||||
</dict>
|
||||
<key>ThermalPressure</key>
|
||||
<dict>
|
||||
<key>Nominal</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>88</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>Moderate</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>120</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>50</integer>
|
||||
</dict>
|
||||
<key>Heavy</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>200</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>90</integer>
|
||||
</dict>
|
||||
<key>Trapping</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>250</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>180</integer>
|
||||
</dict>
|
||||
<key>Sleeping</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>252</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>251</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>GPU</key>
|
||||
<dict/>
|
||||
<key>IO</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>UnifiedSleepSliderPref</key>
|
||||
<true/>
|
||||
<key>DarkWakeServices</key>
|
||||
<dict>
|
||||
<key>DarkWakeBackgroundTasks</key>
|
||||
<integer>1</integer>
|
||||
<key>SleepServices</key>
|
||||
<integer>7</integer>
|
||||
<key>SleepServicesModes</key>
|
||||
<dict>
|
||||
<key>ModeA</key>
|
||||
<dict>
|
||||
<key>Expiration</key>
|
||||
<integer>0</integer>
|
||||
<key>BatteryFloor</key>
|
||||
<integer>0</integer>
|
||||
<key>BaseIntervals</key>
|
||||
<dict>
|
||||
<key>AC</key>
|
||||
<dict>
|
||||
<key>BaseSleepInterval</key>
|
||||
<integer>3600</integer>
|
||||
<key>BaseWakeCapInterval</key>
|
||||
<integer>86400</integer>
|
||||
</dict>
|
||||
<key>Battery</key>
|
||||
<dict>
|
||||
<key>BaseSleepInterval</key>
|
||||
<integer>3600</integer>
|
||||
<key>BaseWakeCapInterval</key>
|
||||
<integer>180</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
40
payloads/Kexts/Plists/PlatformPlugin/iMac15,1/Info.plist
Normal file
@@ -0,0 +1,289 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>pmspFile</key>
|
||||
<integer>1</integer>
|
||||
<key>IOPlatformPowerProfile</key>
|
||||
<dict>
|
||||
<key>NetworkTimerDelay</key>
|
||||
<integer>900</integer>
|
||||
<key>StandbyDelayHigh</key>
|
||||
<integer>86400</integer>
|
||||
<key>StandbyDelay</key>
|
||||
<integer>86400</integer>
|
||||
<key>StandbyBatteryThreshold</key>
|
||||
<integer>50</integer>
|
||||
<key>AutoPowerOff</key>
|
||||
<true/>
|
||||
<key>ProximityWake</key>
|
||||
<integer>0</integer>
|
||||
<key>IOPlatformSystemSleepPolicy</key>
|
||||
<data>U0xQVAIAFQAAHhAAAAAAAAAVAAAABQAABgAAAAAAAAAABQAAAAAAACAAAAAgAAAAAAAAAAAAAAAF
|
||||
AAAAAAAAAAABAAAAAAAAAAAEAAAABAAAAAAAAAAAAAYAAAAAAAAAAAUAAAAAAAAAAAEAAAABAAAA
|
||||
AAAAAAAABAAAAAAAAAAAAQAAAAAAAEAeEAAAAAAAGBEAABgBAAAFAAAAAgAAAAAJAAAAAAAAQAYA
|
||||
AAAAAAAYAAAAGAAAAAUAAAAAAAAAAAEAAAAAAABAHhAAAAAAACgRAAAgAQAABQAAAAIAAAAACQAA
|
||||
AAAAAEAGEAAAABAAIEAAACBAAAACAAAACAAAAAANAAAAAAAAQAYQAAAAEAAAwAAAAMAAAAIAAAAI
|
||||
AAAAAA0AAAAAAABABgAAAAAAAAiAAAAIgAAABQAAAAAAAAAAAQAAAAAAAEAGAAAAAAAAKAAAACAA
|
||||
AAAFAAAAAAAAAAABAAAAAAAAUB4QABAAAAAAEQAAAAEAAAUAAAACAAAAAAkAAAAAAABQBgAAEAAA
|
||||
AAAAAAAAAAAABQAAAAAAAAAAAQAAAAAAAAAeEAAAAAAAABkAAAAJAAAGAAAAAAAAAAAFAAAAAAAA
|
||||
AB4QAAAAAAAIEQAACAEAAAYAAAAAAAAAAAUAAAAAAAAAHhAAAAAAAEARAABAAQAABgAAAAAAAAAA
|
||||
BQAAAAAAAEAeEABAAAAABhEAAAYBAAADAAAAAgAAAAANAAAAAAAAQB4QAEAAAAAAEQAAAAEAAAIA
|
||||
AAACAAAAAA0AAAAAAABABgAAAAAAAAAAAAAAAAAAAgAAAAEAAAAADQAAAAAAAEAAAABAAAAABgAA
|
||||
AAYAAAADAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAUAAAAAAAA=</data>
|
||||
<key>InitialPLimit</key>
|
||||
<integer>0</integer>
|
||||
<key>FrequencyVectors</key>
|
||||
<array>
|
||||
<data>
|
||||
AgAAAAAAAAACAAAAAAAAAGQAAAAAAAAAGQAAAAAAAAAAZP///////w8AAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAGQAAAACAAAAAAAAAOgDAAAAAAAAoA8AAAAAAAABZP///////w8AAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAADAAAAAAAAAEBCDwAAAAAAoA8AAAAAAAACZP//////
|
||||
/w8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////
|
||||
DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAEJBQ0tHUk9VTkQAAAAAAAAAAcgAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUkVBTFRJTUVfU0hPUlQAAAICAAAAAGQA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGFyZC1ydC1ucwAAAAAAAAAAAAAACT0AAAAAAAAAAAAA
|
||||
AAAAdWJwYwAAAAAAAAAAAAAAAAEAAABvZmYAAAAAAAAAAAAAAAAAcGVyZi1iaWFzAAAAAAAAAAAA
|
||||
AAABAAAAAAAAAAAAAAAAAAAAdXRpbGl0eS10bHZsAAAAAAAAAABPAAAAAAAAAAAAAAAAAAAAbm9u
|
||||
LWZvY2FsLXRsdmwAAAAAAAD6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
</data>
|
||||
</array>
|
||||
<key>ThermalConfiguration</key>
|
||||
<dict>
|
||||
<key>Domain</key>
|
||||
<dict>
|
||||
<key>CPU</key>
|
||||
<dict>
|
||||
<key>SFIWindow</key>
|
||||
<integer>50000</integer>
|
||||
<key>SFIMaintenance</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>40=0%,82=50%</string>
|
||||
</dict>
|
||||
<key>SFIDarwinBG</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>40=0%,82=50%</string>
|
||||
</dict>
|
||||
<key>SFIAppNap</key>
|
||||
<dict>
|
||||
<key>EffortCurve</key>
|
||||
<string>40=0%,82=50%</string>
|
||||
</dict>
|
||||
<key>QOSThermalThresholds</key>
|
||||
<dict>
|
||||
<key>Utility</key>
|
||||
<integer>77</integer>
|
||||
<key>NonFocal</key>
|
||||
<integer>251</integer>
|
||||
</dict>
|
||||
<key>ThermalPressure</key>
|
||||
<dict>
|
||||
<key>Nominal</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>79</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>Moderate</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>120</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>50</integer>
|
||||
</dict>
|
||||
<key>Heavy</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>200</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>90</integer>
|
||||
</dict>
|
||||
<key>Trapping</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>250</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>180</integer>
|
||||
</dict>
|
||||
<key>Sleeping</key>
|
||||
<dict>
|
||||
<key>HighThreshold</key>
|
||||
<integer>252</integer>
|
||||
<key>LowThreshold</key>
|
||||
<integer>251</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>GPU</key>
|
||||
<dict/>
|
||||
<key>IO</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>UnifiedSleepSliderPref</key>
|
||||
<true/>
|
||||
<key>DarkWakeServices</key>
|
||||
<dict>
|
||||
<key>DarkWakeBackgroundTasks</key>
|
||||
<integer>1</integer>
|
||||
<key>SleepServices</key>
|
||||
<integer>7</integer>
|
||||
<key>SleepServicesModes</key>
|
||||
<dict>
|
||||
<key>ModeA</key>
|
||||
<dict>
|
||||
<key>Expiration</key>
|
||||
<integer>0</integer>
|
||||
<key>BatteryFloor</key>
|
||||
<integer>0</integer>
|
||||
<key>BaseIntervals</key>
|
||||
<dict>
|
||||
<key>AC</key>
|
||||
<dict>
|
||||
<key>BaseSleepInterval</key>
|
||||
<integer>3600</integer>
|
||||
<key>BaseWakeCapInterval</key>
|
||||
<integer>86400</integer>
|
||||
</dict>
|
||||
<key>Battery</key>
|
||||
<dict>
|
||||
<key>BaseSleepInterval</key>
|
||||
<integer>3600</integer>
|
||||
<key>BaseWakeCapInterval</key>
|
||||
<integer>180</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||