├── Assets
└── background.png
├── PostInstall
├── CombojackFix
│ ├── ComboJack
│ ├── hda-verb
│ ├── Headphone.icns
│ ├── com.XPS.ComboJack.plist
│ ├── l10n.json
│ ├── Information.rtf
│ ├── install.sh
│ └── LICENSE
└── FakeEthernet
│ ├── NullEthernet.kext
│ └── Contents
│ │ ├── MacOS
│ │ └── NullEthernet
│ │ └── Info.plist
│ └── SSDT-RMNE.dsl
├── Kexts
├── AppleALC.kext
│ └── Contents
│ │ ├── MacOS
│ │ └── AppleALC
│ │ └── _CodeSignature
│ │ └── CodeResources
├── VerbStub.kext
│ └── Contents
│ │ ├── MacOS
│ │ └── VerbStub
│ │ └── Info.plist
└── USBPorts.kext
│ └── Contents
│ └── Info.plist
├── ACPI
├── SSDT-AWAC.dsl
├── SSDT-TPDX.dsl
├── SSDT-ALS0.dsl
├── SSDT-PLUG.dsl
├── SSDT-USBX.dsl
├── SSDT-EXT4-WakeScreen.dsl
├── SSDT-DGPU.dsl
├── SSDT-BCKM.dsl
└── SSDT-PCI0.dsl
├── .gitignore
├── packages.csv
├── README.md
├── CLOVER
└── config.plist
├── update.py
└── OC
└── config.plist
/Assets/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tctien342/Dell-Inspiron-7591-Hackintosh/HEAD/Assets/background.png
--------------------------------------------------------------------------------
/PostInstall/CombojackFix/ComboJack:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tctien342/Dell-Inspiron-7591-Hackintosh/HEAD/PostInstall/CombojackFix/ComboJack
--------------------------------------------------------------------------------
/PostInstall/CombojackFix/hda-verb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tctien342/Dell-Inspiron-7591-Hackintosh/HEAD/PostInstall/CombojackFix/hda-verb
--------------------------------------------------------------------------------
/PostInstall/CombojackFix/Headphone.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tctien342/Dell-Inspiron-7591-Hackintosh/HEAD/PostInstall/CombojackFix/Headphone.icns
--------------------------------------------------------------------------------
/Kexts/AppleALC.kext/Contents/MacOS/AppleALC:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tctien342/Dell-Inspiron-7591-Hackintosh/HEAD/Kexts/AppleALC.kext/Contents/MacOS/AppleALC
--------------------------------------------------------------------------------
/Kexts/VerbStub.kext/Contents/MacOS/VerbStub:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tctien342/Dell-Inspiron-7591-Hackintosh/HEAD/Kexts/VerbStub.kext/Contents/MacOS/VerbStub
--------------------------------------------------------------------------------
/PostInstall/FakeEthernet/NullEthernet.kext/Contents/MacOS/NullEthernet:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tctien342/Dell-Inspiron-7591-Hackintosh/HEAD/PostInstall/FakeEthernet/NullEthernet.kext/Contents/MacOS/NullEthernet
--------------------------------------------------------------------------------
/ACPI/SSDT-AWAC.dsl:
--------------------------------------------------------------------------------
1 | /*
2 | * Forces enables legacy RTC clock, also gets arond INI conflict found on X299X boards
3 | */
4 | DefinitionBlock ("", "SSDT", 2, "DRTNIA", "AWAC", 0x00000000)
5 | {
6 | External (STAS, IntObj)
7 |
8 | Scope (_SB)
9 | {
10 | If (_OSI ("Darwin"))
11 | {
12 | STAS = One
13 | }
14 | }
15 | }
16 |
17 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | ._*
3 | .vscode/
4 | __pycache__/
5 | APPLE/
6 | Microsoft/
7 | Boot/
8 | BOOT/
9 | Dell/
10 | Manjaro/
11 | *.aml
12 | ACPI/iasl
13 | macserial
14 | CLOVER/*
15 | !CLOVER/config.plist
16 | OC/*
17 | BOOT/*
18 | !OC/config.plist
19 | *.kext
20 | !Kexts/*
21 | !PostInstall/*/*.kext
22 | Clover_Install_Log.txt
23 | test.py
24 | tmp
25 | Builds
26 | Kexts/.DS_Store
27 |
--------------------------------------------------------------------------------
/PostInstall/CombojackFix/com.XPS.ComboJack.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | KeepAlive
6 |
7 | Label
8 | com.XPS.ComboJack
9 | ProgramArguments
10 |
11 | /usr/local/sbin/ComboJack
12 |
13 | RunAtLoad
14 |
15 | ServiceIPC
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/ACPI/SSDT-TPDX.dsl:
--------------------------------------------------------------------------------
1 | // Enable TPD0 GPIO pinning
2 | // Patch: Rename USTP to One
3 | // Find: VVNUUBA=
4 | // Replace: AaOjoxA=
5 | // References:
6 | // [1] https://github.com/xxxzc/xps15-9550-macos/issues/26#issuecomment-546838295
7 | // [2] https://github.com/daliansky/OC-little/tree/master/09-OCI2C-TPXX%E8%A1%A5%E4%B8%81%E6%96%B9%E6%B3%95
8 | // [3] https://github.com/alexandred/VoodooI2C/blob/master/Documentation/GPIO%20Pinning.md
9 |
10 | DefinitionBlock ("", "SSDT", 2, "hack", "TPDX", 0x00000000)
11 | {
12 | External (TPDM, FieldUnitObj)
13 |
14 | Scope (\)
15 | {
16 | If (_OSI ("Darwin"))
17 | {
18 | TPDM = Zero // enable GPIO pinning for TPD0
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/PostInstall/CombojackFix/l10n.json:
--------------------------------------------------------------------------------
1 | {
2 | "zh_CN": {
3 | "dialogTitle" : "耳机接入通知",
4 | "dialogMsg" : "请选择接入的设备类型(按ESC键取消)",
5 | "btnHeadphone" : "耳机",
6 | "btnLinein" : "线路输入",
7 | "btnHeadset" : "耳麦",
8 | "btnCancel" : "取消"
9 | },
10 | "en_US": {
11 | "dialogTitle" : "Combo Jack Selection",
12 | "dialogMsg" : "Select your device type (Press ESC to cancel)",
13 | "btnHeadphone" : "Headphones",
14 | "btnLinein" : "Line-In",
15 | "btnHeadset" : "Headset",
16 | "btnCancel" : "Cancel"
17 | },
18 | "vi_VN": {
19 | "dialogTitle" : "Thông báo cắm tai nghe",
20 | "dialogMsg" : "Lựa chọn loại thiết bị được cắm vào? (Bấm ESC để huỷ)",
21 | "btnHeadphone" : "Tai nghe thường",
22 | "btnLinein" : "Microphone",
23 | "btnHeadset" : "Tai nghe có mic",
24 | "btnCancel" : "Huỷ"
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/ACPI/SSDT-ALS0.dsl:
--------------------------------------------------------------------------------
1 | /*
2 | * Starting with macOS 10.15 Ambient Light Sensor presence is required for backlight functioning.
3 | * Here we create an Ambient Light Sensor ACPI Device, which can be used by SMCLightSensor kext
4 | * to report either dummy (when no device is present) or valid values through SMC interface.
5 | */
6 | DefinitionBlock ("", "SSDT", 2, "ACDT", "ALS0", 0x00000000)
7 | {
8 | Scope (_SB)
9 | {
10 | Device (ALS0)
11 | {
12 | Name (_HID, "ACPI0008" /* Ambient Light Sensor Device */) // _HID: Hardware ID
13 | Name (_CID, "smc-als") // _CID: Compatible ID
14 | Name (_ALI, 0x012C) // _ALI: Ambient Light Illuminance
15 | Name (_ALR, Package (0x01) // _ALR: Ambient Light Response
16 | {
17 | Package (0x02)
18 | {
19 | 0x64,
20 | 0x012C
21 | }
22 | })
23 | Method (_STA, 0, NotSerialized) // _STA: Status
24 | {
25 | If (_OSI ("Darwin"))
26 | {
27 | Return (0x0F)
28 | }
29 | Else
30 | {
31 | Return (Zero)
32 | }
33 | }
34 | }
35 | }
36 | }
37 |
38 |
--------------------------------------------------------------------------------
/PostInstall/CombojackFix/Information.rtf:
--------------------------------------------------------------------------------
1 | {\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf600
2 | {\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset0 Verdana;}
3 | {\colortbl;\red255\green255\blue255;\red0\green0\blue0;\red255\green255\blue255;\red17\green90\blue209;
4 | }
5 | {\*\expandedcolortbl;;\cssrgb\c0\c0\c0;\cssrgb\c100000\c100000\c100000;\cssrgb\c5882\c44706\c85490;
6 | }
7 | \margl1440\margr1440\vieww10800\viewh8400\viewkind0
8 | \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
9 |
10 | \f0\fs24 \cf0 Modified ComboJack binary for ALC295 Dell Inspiron 7590/7591 by SaintNo\
11 | \
12 | Based on the idea of
13 | \f1 \cf2 \cb3 \expnd0\expndtw0\kerning0
14 | \'a0{\field{\*\fldinst{HYPERLINK "https://github.com/goodwin/ALCPlugFix"}}{\fldrslt \cf4 \ul \ulc4 https://github.com/goodwin/ALCPlugFix}}\
15 | Implemented by way of porting hda-verb from alsa-tools:\
16 | {\field{\*\fldinst{HYPERLINK "https://www.alsa-project.org/main/index.php/Main_Page"}}{\fldrslt https://www.alsa-project.org/main/index.php/Main_Page}}\
17 | \
18 | Portions of code adapted from CodecCommander ({\field{\*\fldinst{HYPERLINK "https://github.com/RehabMan/EAPD-Codec-Commander"}}{\fldrslt https://github.com/RehabMan/EAPD-Codec-Commander}}) and the Linux kernel ({\field{\*\fldinst{HYPERLINK "https://github.com/torvalds/linux"}}{\fldrslt https://github.com/torvalds/linux}}). All copyrights belong to their respective owners.\
19 | \
20 | Uses layout-id 77. VerbStub.kext goes into EFI/Clover/kexts/Other.}
--------------------------------------------------------------------------------
/ACPI/SSDT-PLUG.dsl:
--------------------------------------------------------------------------------
1 | // Inject plugin-type=1 for XCPM power management
2 | // Reference:
3 | // [1] https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PLUG.dsl
4 |
5 | DefinitionBlock ("", "SSDT", 2, "ACDT", "CpuPlug", 0x00003000)
6 | {
7 | External (_SB.PR00, ProcessorObj)
8 |
9 | Scope (_SB.PR00)
10 | {
11 | Method (DTGP, 5, NotSerialized)
12 | {
13 | If ((Arg0 == ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))
14 | {
15 | If ((Arg1 == One))
16 | {
17 | If ((Arg2 == Zero))
18 | {
19 | Arg4 = Buffer (One)
20 | {
21 | 0x03
22 | }
23 | Return (One)
24 | }
25 |
26 | If ((Arg2 == One))
27 | {
28 | Return (One)
29 | }
30 | }
31 | }
32 |
33 | Arg4 = Buffer (One)
34 | {
35 | 0x00
36 | }
37 | Return (Zero)
38 | }
39 |
40 | Method (_DSM, 4, NotSerialized)
41 | {
42 | Local0 = Package (0x02)
43 | {
44 | "plugin-type",
45 | One
46 | }
47 | DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
48 | Return (Local0)
49 | }
50 | }
51 | }
52 |
53 |
--------------------------------------------------------------------------------
/ACPI/SSDT-USBX.dsl:
--------------------------------------------------------------------------------
1 | // USB power injection
2 | // References:
3 | // [1] https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC-USBX.dsl
4 | // [2] https://github.com/daliansky/XiaoMi-Pro-Hackintosh/blob/master/EFI/CLOVER/ACPI/patched/SSDT-USB.dsl
5 |
6 | DefinitionBlock ("", "SSDT", 2, "hack", "_USB", 0x00000000)
7 | {
8 | External (_SB_.PCI0.LPCB, DeviceObj) // (from opcode)
9 |
10 | Scope (\_SB)
11 | {
12 | Device (USBX)
13 | {
14 | Name (_ADR, Zero) // _ADR: Address
15 | Method (_STA, 0, NotSerialized) // _STA: Status
16 | {
17 | If (_OSI ("Darwin"))
18 | {
19 | Return (0x0F)
20 | }
21 |
22 | Return (Zero)
23 | }
24 |
25 | Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
26 | {
27 | If (LNot (Arg2))
28 | {
29 | Return (Buffer (One)
30 | {
31 | 0x03
32 | })
33 | }
34 |
35 | Return (Package (0x08)
36 | {
37 | "kUSBSleepPowerSupply",
38 | 0x13EC,
39 | "kUSBSleepPortCurrentLimit",
40 | 0x0834,
41 | "kUSBWakePowerSupply",
42 | 0x13EC,
43 | "kUSBWakePortCurrentLimit",
44 | 0x0834
45 | })
46 | }
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/PostInstall/FakeEthernet/SSDT-RMNE.dsl:
--------------------------------------------------------------------------------
1 | /* ssdt.dsl -- SSDT injector for NullEthernet
2 | *
3 | * Copyright (c) 2014 RehabMan
4 | * All rights reserved.
5 | *
6 | * This program is free software; you can redistribute it and/or modify it
7 | * under the terms of the GNU General Public License as published by the Free
8 | * Software Foundation; either version 2 of the License, or (at your option)
9 | * any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful, but WITHOUT
12 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14 | * more details.
15 | *
16 | */
17 |
18 | // Use this SSDT as an alternative to patching your DSDT...
19 |
20 | DefinitionBlock("ssdt-rmne.aml", "SSDT", 2, "RehabMan", "RMNE", 0x00001000)
21 | {
22 | Device (RMNE)
23 | {
24 | Name (_ADR, Zero)
25 | // The NullEthernet kext matches on this HID
26 | Name (_HID, "NULE0000")
27 | // This is the MAC address returned by the kext. Modify if necessary.
28 | Name (MAC, Buffer() { 0x01, 0x02, 0x03, 0xA8, 0x8F, 0xCF })
29 | Method (_DSM, 4, NotSerialized)
30 | {
31 | If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }
32 | Return (Package()
33 | {
34 | "built-in", Buffer() { 0x00 },
35 | "IOName", "ethernet",
36 | "name", Buffer() { "ethernet" },
37 | "model", Buffer() { "RM-NullEthernet-1001" },
38 | "device_type", Buffer() { "ethernet" },
39 | })
40 | }
41 | }
42 | }
43 |
44 |
--------------------------------------------------------------------------------
/ACPI/SSDT-EXT4-WakeScreen.dsl:
--------------------------------------------------------------------------------
1 | /*
2 | * Intel ACPI Component Architecture
3 | * AML/ASL+ Disassembler version 20180427 (64-bit version)(RM)
4 | * Copyright (c) 2000 - 2018 Intel Corporation
5 | *
6 | * Disassembling to non-symbolic legacy ASL operators
7 | *
8 | * Disassembly of iASLy7PQrN.aml, Wed Mar 11 14:19:31 2020
9 | *
10 | * Original Table Header:
11 | * Signature "SSDT"
12 | * Length 0x00000111 (273)
13 | * Revision 0x02
14 | * Checksum 0xE7
15 | * OEM ID "ACDT"
16 | * OEM Table ID "EXT4"
17 | * OEM Revision 0x00000000 (0)
18 | * Compiler ID "INTL"
19 | * Compiler Version 0x20180427 (538444839)
20 | */
21 | DefinitionBlock ("", "SSDT", 2, "ACDT", "EXT4", 0x00000000)
22 | {
23 | External (_SB_.LID0, DeviceObj) // (from opcode)
24 | External (_SB_.LID_, DeviceObj) // (from opcode)
25 | External (_SB_.PCI0.LPCB.LID0, DeviceObj) // (from opcode)
26 | External (_SB_.PCI0.LPCB.LID_, DeviceObj) // (from opcode)
27 |
28 | Method (EXT4, 1, NotSerialized)
29 | {
30 | If (LEqual (0x03, Arg0))
31 | {
32 | If (CondRefOf (\_SB.LID))
33 | {
34 | Notify (\_SB.LID, 0x80)
35 | }
36 |
37 | If (CondRefOf (\_SB.LID0))
38 | {
39 | Notify (\_SB.LID0, 0x80)
40 | }
41 |
42 | If (CondRefOf (\_SB.PCI0.LPCB.LID))
43 | {
44 | Notify (\_SB.PCI0.LPCB.LID, 0x80)
45 | }
46 |
47 | If (CondRefOf (\_SB.PCI0.LPCB.LID0))
48 | {
49 | Notify (\_SB.PCI0.LPCB.LID0, 0x80)
50 | }
51 | }
52 | }
53 | }
54 |
55 |
--------------------------------------------------------------------------------
/PostInstall/CombojackFix/install.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | if [[ $EUID -ne 0 ]]; then
4 | exec sudo /bin/bash "$0" "$@"
5 | fi
6 | echo "<> Installing AudioFix..."
7 |
8 | cd "$(dirname "${BASH_SOURCE[0]}")"
9 | # Clean legacy stuff
10 | #
11 | sudo launchctl unload /Library/LaunchDaemons/com.XPS.ComboJack.plist 2>/dev/null
12 | sudo rm -rf /Library/Extensions/CodecCommander.kext
13 | sudo rm -f /usr/local/bin/ALCPlugFix
14 | sudo rm -f /Library/LaunchAgents/good.win.ALCPlugFix
15 | sudo rm -f /Library/LaunchDaemons/good.win.ALCPlugFix
16 | sudo rm -f /usr/local/sbin/hda-verb
17 | sudo rm -f /usr/local/share/ComboJack/Headphone.icns
18 | sudo rm -f /usr/local/share/ComboJack/l10n.json
19 |
20 | # install
21 | mkdir -p /usr/local/sbin
22 | sudo cp ComboJack /usr/local/sbin
23 | sudo chmod 755 /usr/local/sbin/ComboJack
24 | sudo chown root:wheel /usr/local/sbin/ComboJack
25 | sudo cp hda-verb /usr/local/sbin
26 | sudo mkdir -p /usr/local/share/ComboJack/
27 | sudo cp Headphone.icns /usr/local/share/ComboJack/
28 | sudo chmod 644 /usr/local/share/ComboJack/Headphone.icns
29 | sudo cp l10n.json /usr/local/share/ComboJack/
30 | sudo chmod 644 /usr/local/share/ComboJack/l10n.json
31 | sudo cp com.XPS.ComboJack.plist /Library/LaunchDaemons/
32 | sudo chmod 644 /Library/LaunchDaemons/com.XPS.ComboJack.plist
33 | sudo chown root:wheel /Library/LaunchDaemons/com.XPS.ComboJack.plist
34 | sudo launchctl load /Library/LaunchDaemons/com.XPS.ComboJack.plist
35 |
36 | echo "<> Rebuild kext..."
37 | sudo spctl --master-disable
38 | sudo mount -uw /
39 | sudo killall Finder
40 | sudo chown -v -R root:wheel /System/Library/Extensions
41 | sudo touch /System/Library/Extensions
42 | sudo chmod -v -R 755 /Library/Extensions
43 | sudo chown -v -R root:wheel /Library/Extensions
44 | sudo touch /Library/Extensions
45 | sudo kextcache -i /
46 |
47 | echo "<> Done, please reboot your macos!"
48 | exit 0
49 |
--------------------------------------------------------------------------------
/ACPI/SSDT-DGPU.dsl:
--------------------------------------------------------------------------------
1 | // Disable discrete GPU
2 | // Patch: Rename _WAK to ZWAK
3 | // Find: FDlfV0FLAQ==
4 | // Replace: FDlaV0FLAQ==
5 | // Patch: Rename _PTS to ZPTS
6 | // Find: FEkEX1BUUwE=
7 | // Replace: FEkEWlBUUwE=
8 | // Reference:
9 | // [1] https://github.com/RehabMan/OS-X-Clover-Laptop-Config/blob/master/hotpatch/SSDT-DDGPU.dsl
10 | // [2] https://github.com/RehabMan/OS-X-Clover-Laptop-Config/blob/master/hotpatch/SSDT-PTSWAK.dsl
11 | DefinitionBlock ("", "SSDT", 2, "hack", "DGPU", 0x00000000)
12 | {
13 | External (_SB_.PCI0.PEG0.PEGP._OFF, MethodObj) // 0 Arguments (from opcode)
14 | External (_SB_.PCI0.PEG0.PEGP._ON_, MethodObj)
15 | External (_SB_.PCI0.PEG0.PG00._OFF, MethodObj) // 0 Arguments (from opcode)
16 | External (_SB_.PCI0.PGOF, MethodObj)
17 | External (EXT4, MethodObj) // 1 Arguments (from opcode)
18 | External (ZWAK, MethodObj) // 1 Arguments (from opcode)
19 | External (ZPTS, MethodObj) // 1 Arguments (from opcode)
20 |
21 | Method (DGPU, 0, NotSerialized)
22 | {
23 | If (CondRefOf (\_SB.PCI0.PEG0.PEGP._OFF))
24 | {
25 | \_SB.PCI0.PEG0.PEGP._OFF ()
26 | }
27 | If (CondRefOf (\_SB.PCI0.PEG0.PG00._OFF))
28 | {
29 | \_SB.PCI0.PEG0.PG00._OFF ()
30 | }
31 | If (CondRefOf (\_SB_.PCI0.PGOF))
32 | {
33 | \_SB.PCI0.PGOF ()
34 | }
35 | }
36 |
37 | Device (RMD1)
38 | {
39 | Name (_HID, "RMD10000") // _HID: Hardware ID
40 | Method (_INI, 0, NotSerialized) // _INI: Initialize
41 | {
42 | If (_OSI ("Darwin"))
43 | {
44 | DGPU ()
45 | }
46 | }
47 |
48 | Method (_STA, 0, NotSerialized) // _STA: Status
49 | {
50 | If (_OSI ("Darwin"))
51 | {
52 | Return (0x0F)
53 | }
54 |
55 | Return (Zero)
56 | }
57 | }
58 |
59 | Method (_WAK, 1, NotSerialized) // _WAK: Wake
60 | {
61 | Store (ZWAK (Arg0), Local0)
62 | If (_OSI ("Darwin"))
63 | {
64 | If (CondRefOf (EXT4))
65 | {
66 | EXT4 (Arg0)
67 | }
68 |
69 | DGPU ()
70 | }
71 |
72 | Return (Local0)
73 | }
74 |
75 | Method (_PTS, 1, NotSerialized) // _PTS: Sleep
76 | {
77 | If (_OSI ("Darwin"))
78 | {
79 | \_SB.PCI0.PEG0.PEGP._ON ()
80 | }
81 | ZPTS(Arg0)
82 | }
83 | }
84 |
85 |
--------------------------------------------------------------------------------
/Kexts/VerbStub.kext/Contents/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | BuildMachineOSBuild
6 | 18B75
7 | CFBundleDevelopmentRegion
8 | en
9 | CFBundleExecutable
10 | VerbStub
11 | CFBundleIdentifier
12 | com.XPS.VerbStub
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | VerbStub
17 | CFBundlePackageType
18 | KEXT
19 | CFBundleShortVersionString
20 | 1.0.3
21 | CFBundleSupportedPlatforms
22 |
23 | MacOSX
24 |
25 | CFBundleVersion
26 | 1.0.3
27 | DTCompiler
28 | com.apple.compilers.llvm.clang.1_0
29 | DTPlatformBuild
30 | 10B61
31 | DTPlatformVersion
32 | GM
33 | DTSDKBuild
34 | 18B71
35 | DTSDKName
36 | macosx10.14
37 | DTXcode
38 | 1010
39 | DTXcodeBuild
40 | 10B61
41 | IOKitPersonalities
42 |
43 | VerbStub
44 |
45 | CFBundleIdentifier
46 | com.XPS.VerbStub
47 | IOClass
48 | com_XPS_VerbStub
49 | IOMatchCategory
50 | com_XPS_VerbStub
51 | IOProviderClass
52 | IOHDACodecFunction
53 | IOUserClientClass
54 | VerbStubUserClient
55 |
56 | VerbStubResidency
57 |
58 | CFBundleIdentifier
59 | com.XPS.VerbStub
60 | IOClass
61 | VerbStubResidency
62 | IOMatchCategory
63 | VerbStubResidency
64 | IOProviderClass
65 | IOResources
66 |
67 |
68 | NSHumanReadableCopyright
69 | Copyright © 2017 VerbStub. All rights reserved.
70 | OSBundleLibraries
71 |
72 | com.apple.iokit.IOPCIFamily
73 | 2.9
74 | com.apple.kpi.iokit
75 | 16.6
76 | com.apple.kpi.libkern
77 | 16.6
78 |
79 |
80 |
81 |
--------------------------------------------------------------------------------
/Kexts/AppleALC.kext/Contents/_CodeSignature/CodeResources:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | files
6 |
7 | files2
8 |
9 | rules
10 |
11 | ^Resources/
12 |
13 | ^Resources/.*\.lproj/
14 |
15 | optional
16 |
17 | weight
18 | 1000
19 |
20 | ^Resources/.*\.lproj/locversion.plist$
21 |
22 | omit
23 |
24 | weight
25 | 1100
26 |
27 | ^Resources/Base\.lproj/
28 |
29 | weight
30 | 1010
31 |
32 | ^version.plist$
33 |
34 |
35 | rules2
36 |
37 | .*\.dSYM($|/)
38 |
39 | weight
40 | 11
41 |
42 | ^(.*/)?\.DS_Store$
43 |
44 | omit
45 |
46 | weight
47 | 2000
48 |
49 | ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
50 |
51 | nested
52 |
53 | weight
54 | 10
55 |
56 | ^.*
57 |
58 | ^Info\.plist$
59 |
60 | omit
61 |
62 | weight
63 | 20
64 |
65 | ^PkgInfo$
66 |
67 | omit
68 |
69 | weight
70 | 20
71 |
72 | ^Resources/
73 |
74 | weight
75 | 20
76 |
77 | ^Resources/.*\.lproj/
78 |
79 | optional
80 |
81 | weight
82 | 1000
83 |
84 | ^Resources/.*\.lproj/locversion.plist$
85 |
86 | omit
87 |
88 | weight
89 | 1100
90 |
91 | ^Resources/Base\.lproj/
92 |
93 | weight
94 | 1010
95 |
96 | ^[^/]+$
97 |
98 | nested
99 |
100 | weight
101 | 10
102 |
103 | ^embedded\.provisionprofile$
104 |
105 | weight
106 | 20
107 |
108 | ^version\.plist$
109 |
110 | weight
111 | 20
112 |
113 |
114 |
115 |
116 |
--------------------------------------------------------------------------------
/PostInstall/FakeEthernet/NullEthernet.kext/Contents/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | BuildMachineOSBuild
6 | 16C67
7 | CFBundleDevelopmentRegion
8 | English
9 | CFBundleExecutable
10 | NullEthernet
11 | CFBundleGetInfoString
12 | 1.0.6, Copyright © 2014 RehabMan. All rights reserved.
13 | CFBundleIdentifier
14 | org.rehabman.driver.NullEthernet
15 | CFBundleInfoDictionaryVersion
16 | 6.0
17 | CFBundleName
18 | NullEthernet
19 | CFBundlePackageType
20 | KEXT
21 | CFBundleShortVersionString
22 | 1.0.6
23 | CFBundleSignature
24 | ????
25 | CFBundleSupportedPlatforms
26 |
27 | MacOSX
28 |
29 | CFBundleVersion
30 | 1.0.6
31 | DTCompiler
32 | com.apple.compilers.llvm.clang.1_0
33 | DTPlatformBuild
34 | 8C1002
35 | DTPlatformVersion
36 | GM
37 | DTSDKBuild
38 | 10M2518
39 | DTSDKName
40 | macosx10.6
41 | DTXcode
42 | 0821
43 | DTXcodeBuild
44 | 8C1002
45 | IOKitPersonalities
46 |
47 | NullEthernet
48 |
49 | CFBundleIdentifier
50 | org.rehabman.driver.NullEthernet
51 | IOClass
52 | org_rehabman_NullEthernet
53 | IONameMatch
54 | NULE0000
55 | IOProviderClass
56 | IOACPIPlatformDevice
57 | Model
58 | NullEthernet
59 | Vendor
60 | RehabMan
61 |
62 |
63 | NSHumanReadableCopyright
64 | Copyright © 2014 RehabMan. All rights reserved.
65 | OSBundleLibraries
66 |
67 | com.apple.iokit.IOACPIFamily
68 | 1.0d1
69 | com.apple.iokit.IONetworkingFamily
70 | 1.1.0
71 | com.apple.kpi.bsd
72 | 8.10.0
73 | com.apple.kpi.iokit
74 | 8.10.0
75 | com.apple.kpi.libkern
76 | 8.10.0
77 | com.apple.kpi.mach
78 | 8.10.0
79 |
80 | OSBundleRequired
81 | Network-Root
82 | Source Code
83 | https://github.com/RehabMan/OS-X-NullEthernet
84 |
85 |
86 |
--------------------------------------------------------------------------------
/packages.csv:
--------------------------------------------------------------------------------
1 | Folder,Name,Description,Version,Pattern,Url
2 | Kexts,AirportBrcmFixup.kext,Broadcom Wi-Fi driver,latest,.*RELEASE,https://github.com/acidanthera/AirportBrcmFixup
3 | Kexts,AppleALC.kext,Custom appleALC for dell inspiron 759x,kext-100920,AppleALC.kext.zip,https://github.com/tctien342/Dell-Inspiron-7591-Hackintosh
4 | Kexts,BrcmBluetoothInjector.kext,Injects the BT hardware data,latest,.*RELEASE,https://github.com/acidanthera/BrcmPatchRAM
5 | Kexts,BrcmFirmwareData.kext,Most appropriate for bootloader injection,latest,.*RELEASE,https://github.com/acidanthera/BrcmPatchRAM
6 | Kexts,BrcmPatchRAM3.kext,Apply the firmware update to Bluetooth,latest,.*RELEASE,https://github.com/acidanthera/BrcmPatchRAM
7 | Kexts,CPUFriend.kext,Dynamic CPU power management,latest,.*RELEASE,https://github.com/acidanthera/CPUFriend
8 | Kexts,CPUFriendDataProvider.kext,Custom frequency data,kext-120320,CPUFriendDataProvider.kext.zip,https://github.com/tctien342/Dell-Inspiron-7591-Hackintosh
9 | Kexts,Lilu.kext,Arbitrary kext and process patching,latest,.*RELEASE,https://github.com/acidanthera/Lilu
10 | Kexts,NoTouchID.kext,Disable TouchID,latest,.*RELEASE,https://github.com/al3xtjames/NoTouchID
11 | Kexts,NVMeFix.kext,improve compatibility with non-Apple SSDs,latest,.*RELEASE,https://github.com/acidanthera/NVMeFix
12 | Kexts,SMCBatteryManager.kext,Emulation layer of AppleSmartBattery,latest,.*RELEASE,https://github.com/acidanthera/VirtualSMC
13 | Kexts,SMCProcessor.kext,Add support for CPU monitoring,latest,.*RELEASE,https://github.com/acidanthera/VirtualSMC
14 | Kexts,SMCLightSensor.kext,Add support for emulator of light sensor,latest,.*RELEASE,https://github.com/acidanthera/VirtualSMC
15 | Kexts,SMCDellSensors.kext,Add support for dell sensor monitoring,latest,.*RELEASE,https://github.com/acidanthera/VirtualSMC
16 | Kexts,USBPorts.kext,USBPorts for dell Insipron 759x,kext-100920,USBPorts.kext.zip,https://github.com/tctien342/Dell-Inspiron-7591-Hackintosh
17 | Kexts,VirtualSMC.kext,SMC emulator layer,latest,.*RELEASE,https://github.com/acidanthera/VirtualSMC
18 | Kexts,VoodooI2C.kext,Stock VoodooI2C,latest,VoodooI2C-2.*,https://github.com/VoodooI2C/VoodooI2C
19 | Kexts,VoodooI2CHID.kext,Stock VoodooI2C,latest,VoodooI2C-2.*,https://github.com/VoodooI2C/VoodooI2C
20 | Kexts,VerbStub.kext,VerbStub for combojack fix,70320,VerbStub.kext.zip,https://github.com/tctien342/Dell-Inspiron-7591-Hackintosh
21 | Kexts,VoodooPS2Controller.kext,PS/2 controller,latest,.*RELEASE,https://github.com/acidanthera/VoodooPS2
22 | Kexts,WhateverGreen.kext,Patches for GPUs,latest,.*RELEASE,https://github.com/acidanthera/WhateverGreen
23 | Kexts,CpuTscSync.kext,Lvs1974 CpuTscSync replacement for VoodooTCSSync,latest,.*RELEASE,https://github.com/lvs1974/CpuTscSync
24 | Kexts,HibernationFixup.kext,An open source kernel extension providing a sync between RTC variables and NVRAM,latest,.*RELEASE,https://github.com/acidanthera/HibernationFixup
25 | Drivers,VBoxHfs.efi,HFS+ support with bless extensions,latest,.*RELEASE,https://github.com/acidanthera/AppleSupportPkg
26 | CLOVER/drivers/UEFI,ApfsDriverLoader.efi,Open source apfs.efi loader,latest,.*RELEASE,https://github.com/acidanthera/AppleSupportPkg
27 | CLOVER/drivers/UEFI,OcQuirks.efi,Correct memory map,latest,OcQuirks.zip,https://github.com/ReddestDream/OcQuirks
28 | CLOVER/drivers/UEFI,OpenRuntime.efi,Correct memory map,latest,OcQuirks.zip,https://github.com/ReddestDream/OcQuirks
29 | CLOVER/drivers/UEFI,OcQuirks.plist,Correct memory map,latest,OcQuirks.zip,https://github.com/ReddestDream/OcQuirks
30 | CLOVER,CLOVERX64.efi,Bootloader for macOS and other systems,latest,CloverV2-*,https://github.com/CloverHackyColor/CloverBootloader
31 | OC/Drivers,OpenRuntime.efi, Drives for Opencore,latest,.*RELEASE,https://github.com/acidanthera/OpenCorePkg
32 | OC/Drivers,OpenCanopy.efi, Drives for Opencore,latest,.*RELEASE,https://github.com/acidanthera/OpenCorePkg
33 | OC,OpenCore.efi,Bootloader for macOS and other systems,latest,.*RELEASE,https://github.com/acidanthera/OpenCorePkg
34 | OC,Tools,Tools for Opencore,latest,.*RELEASE,https://github.com/acidanthera/OpenCorePkg
35 | OC,Bootstrap,Bootstrap for Opencore,latest,.*RELEASE,https://github.com/acidanthera/OpenCorePkg
36 | ../BOOT/CLOVER,BOOTX64.efi,Bootloader for macOS and other systems,latest,CloverV2-*,https://github.com/CloverHackyColor/CloverBootloader
37 | ../BOOT/OC,BOOTx64.efi,Bootloader for macOS and other systems,latest,.*RELEASE,https://github.com/acidanthera/OpenCorePkg
38 |
--------------------------------------------------------------------------------
/ACPI/SSDT-BCKM.dsl:
--------------------------------------------------------------------------------
1 | // Make brightness control and brightness keys work
2 | // Patch: Rename BRT6 to BRTX
3 | // Find: QlJUNgI=
4 | // Replace: QlJUWAI=
5 | // References:
6 | // [1] https://github.com/daliansky/OC-little/blob/master/05-OC-PNLF%E6%B3%A8%E5%85%A5%E6%96%B9%E6%B3%95/%E5%AE%9A%E5%88%B6%E4%BA%AE%E5%BA%A6%E8%A1%A5%E4%B8%81/SSDT-PNLF-CFL.dsl
7 | // [2] https://github.com/daliansky/OC-little/tree/master/%E4%BF%9D%E7%95%99%E9%A1%B9%E7%9B%AE/X02-%E4%BA%AE%E5%BA%A6%E5%BF%AB%E6%8D%B7%E9%94%AE%E8%A1%A5%E4%B8%81
8 | // [3] https://www.dell.com/community/Precision-Mobile-Workstations/Fn-and-brightness-key-causing-a-lot-of-errors-in-kernel-logs/td-p/7393145
9 |
10 | DefinitionBlock ("", "SSDT", 2, "hack", "BCKM", 0x00000000)
11 | {
12 | External (_SB_.ACOS, IntObj)
13 | External (_SB_.ACSE, IntObj)
14 | External (_SB_.PCI0.GFX0, DeviceObj)
15 | External (_SB_.PCI0.GFX0.BRTX, MethodObj)
16 | External (_SB_.PCI0.GFX0.LCD_, DeviceObj)
17 | External (_SB_.PCI0.LPCB.PS2K, DeviceObj)
18 | External (_SB_.PCI0.PEG0.PEGP, DeviceObj)
19 | External (_SB_.PCI0.PEG0.PEGP.LCD_, DeviceObj)
20 | External (_SB_.PCI0.PEG0.PEGP.EVD5, FieldUnitObj)
21 |
22 | // inject PNLF for CoffeeLake to make brightness control work[1]
23 | Scope (_SB)
24 | {
25 | Device (PNLF)
26 | {
27 | Name(_ADR, Zero)
28 | Name(_HID, EisaId("APP0002"))
29 | Name(_CID, "backlight")
30 | // _UID is set depending on PWMMax to match profiles in AppleBacklightFixup.kext Info.plist
31 | // 14: Sandy/Ivy 0x710
32 | // 15: Haswell/Broadwell 0xad9
33 | // 16: Skylake/KabyLake 0x56c (and some Haswell, example 0xa2e0008)
34 | // 17: custom LMAX=0x7a1
35 | // 18: custom LMAX=0x1499
36 | // 19: CoffeeLake 0xffff
37 | // 99: Other (requires custom AppleBacklightInjector.kext/AppleBackightFixup.kext)
38 | Name(_UID, 19)
39 | Method (_STA, 0, NotSerialized) // _STA: Status
40 | {
41 | If (_OSI ("Darwin"))
42 | {
43 | Return (0x0B)
44 | }
45 | Return (Zero)
46 | }
47 | }
48 | }
49 |
50 | // make BRT6 to be called on Darwin
51 | // call chain: _Q66 -> NEVT -> SMIE -> SMEE -> EV5 -> BRT6
52 | // in SMEE, EV5 is called only when OSID >= 0x20, and OSID:
53 | // if ACOS == 0: init ACOS based on OS version
54 | // return ACOS
55 | // hence set ACOS >= 0x20 can do the trick, and this trick affects less methods than _OSI renaming patch
56 | Scope (\)
57 | {
58 | If (_OSI ("Darwin"))
59 | {
60 | \_SB.ACOS = 0x80
61 | \_SB.ACSE = Zero
62 |
63 | }
64 | }
65 |
66 | // notify PS2K when brightness control key was pressed[2]
67 | Scope (\_SB.PCI0.GFX0)
68 | {
69 | Method (BRT6, 2, NotSerialized)
70 | {
71 | If (_OSI ("Darwin"))
72 | {
73 | If (LEqual (Arg0, One))
74 | {
75 | Notify (^LCD, 0x86) //native code
76 | Notify (^^LPCB.PS2K, 0x10) //ELAN code
77 | Notify (^^LPCB.PS2K, 0x0206) // PS2 code
78 | Notify (^^LPCB.PS2K, 0x0286) // PS2 code
79 | }
80 | If (And (Arg0, 0x02))
81 | {
82 | Notify (^LCD, 0x87) //native code
83 | Notify (^^LPCB.PS2K, 0x20) //ELAN code
84 | Notify (^^LPCB.PS2K, 0x0205) // PS2 code
85 | Notify (^^LPCB.PS2K, 0x0285) // PS2 code
86 | }
87 | }
88 | Else
89 | {
90 | \_SB.PCI0.GFX0.BRTX (Arg0, Arg1)
91 | }
92 | }
93 | }
94 |
95 | Scope(_SB.PCI0.PEG0.PEGP)
96 | {
97 | Method (BRT6, 2, NotSerialized)
98 | {
99 | // try to fix[3]
100 | If (!_OSI ("Darwin") && (EVD5 == One) && CondRefOf(\_SB.PCI0.PEG0.PEGP.LCD))
101 | {
102 | If ((Arg0 == One))
103 | {
104 | Notify (\_SB.PCI0.PEG0.PEGP.LCD, 0x86) // Device-Specific
105 | }
106 |
107 | If ((Arg0 & 0x02))
108 | {
109 | Notify (\_SB.PCI0.PEG0.PEGP.LCD, 0x87) // Device-Specific
110 | }
111 | }
112 | }
113 | }
114 | }
115 |
116 |
--------------------------------------------------------------------------------
/ACPI/SSDT-PCI0.dsl:
--------------------------------------------------------------------------------
1 | // Add various missing devices in PCI0
2 | // Include EC, PMCR, DMAC, MCHC and SBUS
3 | // Rename ECDV to EC to not brake battery statistics for laptop[2]
4 | // #(Disabled)Patch: Rename ECDV to EC
5 | // Find: RUNEVg==
6 | // Replace: RUNfXw==
7 | // References:
8 | // [1] https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-SBUS-MCHC.dsl
9 | // [2] https://www.insanelymac.com/forum/topic/338516-opencore-discussion/?do=findComment&comment=2685513
10 | // [3] https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-EC.dsl
11 | // [4] https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/AcpiSamples/SSDT-PMC.dsl
12 |
13 | DefinitionBlock ("", "SSDT", 2, "hack", "PCI0", 0x00000000)
14 | {
15 | External (_SB_.AC__, DeviceObj) // (from opcode)
16 | External (_SB_.PCI0, DeviceObj) // (from opcode)
17 | External (_SB_.PCI0.LPCB, DeviceObj) // (from opcode)
18 | External (_SB_.PCI0.SBUS.BUS0, DeviceObj) // (from opcode)
19 |
20 | Device (MEM2)
21 | {
22 | Name (_HID, EisaId ("PNP0C01")) // _HID: Hardware ID
23 | Name (_UID, 0x02) // _UID: Unique ID
24 | Name (CRS, ResourceTemplate ()
25 | {
26 | Memory32Fixed (ReadWrite,
27 | 0x20000000, // Address Base
28 | 0x00200000, // Address Length
29 | )
30 | Memory32Fixed (ReadWrite,
31 | 0x40000000, // Address Base
32 | 0x00200000, // Address Length
33 | )
34 | })
35 | Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
36 | {
37 | Return (CRS)
38 | }
39 |
40 | Method (_STA, 0, NotSerialized) // _STA: Status
41 | {
42 | If (_OSI ("Darwin"))
43 | {
44 | Return (0x0F)
45 | }
46 | Else
47 | {
48 | Return (Zero)
49 | }
50 | }
51 | }
52 |
53 | Scope (\_SB.AC)
54 | {
55 | If (_OSI ("Darwin"))
56 | {
57 | Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
58 | {
59 | 0x18,
60 | 0x03
61 | })
62 | }
63 | }
64 |
65 | Scope (_SB.PCI0)
66 | {
67 | Device (EC)
68 | {
69 | Name (_HID, "ACID0001") // _HID: Hardware ID
70 | Method (_STA, 0, NotSerialized) // _STA: Status
71 | {
72 | If (_OSI ("Darwin"))
73 | {
74 | Return (0x0F)
75 | }
76 |
77 | Return (Zero)
78 | }
79 | }
80 |
81 | Device (PPMC)
82 | {
83 | Name (_ADR, 0x001F0002) // _ADR: Address
84 | Method (_STA, 0, NotSerialized) // _STA: Status
85 | {
86 | If (_OSI ("Darwin"))
87 | {
88 | Return (0x0F)
89 | }
90 | Else
91 | {
92 | Return (Zero)
93 | }
94 | }
95 | }
96 |
97 | Device (MCHC)
98 | {
99 | Name (_ADR, Zero) // _ADR: Address
100 | Method (_STA, 0, NotSerialized) // _STA: Status
101 | {
102 | If (_OSI ("Darwin"))
103 | {
104 | Return (0x0F)
105 | }
106 |
107 | Return (Zero)
108 | }
109 | }
110 | }
111 |
112 | Scope (_SB.PCI0.LPCB)
113 | {
114 | Device (PMCR)
115 | {
116 | Name (_HID, EisaId ("APP9876")) // _HID: Hardware ID
117 | Method (_STA, 0, NotSerialized) // _STA: Status
118 | {
119 | If (_OSI ("Darwin"))
120 | {
121 | Return (0x0B)
122 | }
123 | Else
124 | {
125 | Return (Zero)
126 | }
127 | }
128 |
129 | Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
130 | {
131 | Memory32Fixed (ReadWrite,
132 | 0xFE000000, // Address Base
133 | 0x00010000, // Address Length
134 | )
135 | })
136 | }
137 |
138 | Device (DMAC)
139 | {
140 | Name (_HID, EisaId ("PNP0200")) // _HID: Hardware ID
141 | Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
142 | {
143 | IO (Decode16,
144 | 0x0000, // Range Minimum
145 | 0x0000, // Range Maximum
146 | 0x01, // Alignment
147 | 0x20, // Length
148 | )
149 | IO (Decode16,
150 | 0x0081, // Range Minimum
151 | 0x0081, // Range Maximum
152 | 0x01, // Alignment
153 | 0x11, // Length
154 | )
155 | IO (Decode16,
156 | 0x0093, // Range Minimum
157 | 0x0093, // Range Maximum
158 | 0x01, // Alignment
159 | 0x0D, // Length
160 | )
161 | IO (Decode16,
162 | 0x00C0, // Range Minimum
163 | 0x00C0, // Range Maximum
164 | 0x01, // Alignment
165 | 0x20, // Length
166 | )
167 | DMA (Compatibility, NotBusMaster, Transfer8_16, )
168 | {4}
169 | })
170 | Method (_STA, 0, NotSerialized) // _STA: Status
171 | {
172 | If (_OSI ("Darwin"))
173 | {
174 | Return (0x0F)
175 | }
176 |
177 | Return (Zero)
178 | }
179 | }
180 | }
181 |
182 | Device (_SB.PCI0.SBUS.BUS0)
183 | {
184 | Name (_CID, "smbus") // _CID: Compatible ID
185 | Name (_ADR, Zero) // _ADR: Address
186 | Device (DVL0)
187 | {
188 | Name (_ADR, 0x57) // _ADR: Address
189 | Name (_CID, "diagsvault") // _CID: Compatible ID
190 | Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
191 | {
192 | If (LNot (Arg2))
193 | {
194 | Return (Buffer (One)
195 | {
196 | 0x03
197 | })
198 | }
199 |
200 | Return (Package (0x02)
201 | {
202 | "address",
203 | 0x57
204 | })
205 | }
206 | }
207 |
208 | Method (_STA, 0, NotSerialized) // _STA: Status
209 | {
210 | If (_OSI ("Darwin"))
211 | {
212 | Return (0x0F)
213 | }
214 |
215 | Return (Zero)
216 | }
217 | }
218 | }
219 |
220 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Dell Inspiron 759x
2 |
3 |
4 |
5 |
6 |
7 | ## System configuration
8 |
9 | | Model | MacBookPro16,1 | Version | BigSur 11 Beta |
10 | | :-------- | :------------------ | :------------- | :------------------ |
11 | | Processor | Intel Core i5-9300H | Graphics | UHD Graphics 630 |
12 | | Memory | 2667MHz DDR4 2x8GB | OS Disk | Samsung 970Evo Plus |
13 | | Audio | Realtek ALC295 | WiFi/Bluetooth | DW1820A |
14 |
15 | ## About build
16 |
17 | - You need at least Macos 10.15.5 to boot with SMBIOS 16,1
18 | - Intel wifi card is finally worked:
19 | - Follow this: https://openintelwireless.github.io
20 |
21 | #### Performance
22 |
23 | - [Geekbench 5](https://browser.geekbench.com/v5/cpu/1927376): 1052 SingleCore, 3935 MultiCore
24 | - Battery: 57wh with 87% health and 60% brightness (2 NVME and 1 SSD SATA), I got 3h20 screen time when suffering web and light code
25 |
26 | #### Not Working
27 |
28 | - Thing may never work:
29 | - Discrete GPU (Disabled)
30 | - Fingerprint (Disabled)
31 | - Internal Microphone
32 |
33 | #### HDMI blinking at boot
34 |
35 | > This will happen when using plug-in HDMI after bootup. This will be fixed after short sleep (about 1min) and never happen again until reboot
36 |
37 | - You can fixed this by turn off **com.apple.driver.AppleHDAController** in `Kernel and Kext Patches` on Clover or `Kernel > Patch` on Opencore but **HDMI Audio** will be disabled
38 |
39 | > From 10.15.6, event 11, HDMI audio is `dead`, still finding solution
40 |
41 | ## For building
42 |
43 | > This will pull all newest kext and build into zip files
44 |
45 | - Clone this repo
46 | - Run follow command: `python3 update.py --build`
47 | - Get your build at Builds folder
48 |
49 | ## Installation
50 |
51 | ### BIOS
52 |
53 | - Disk in `AHCI` mode
54 | - Fastboot: `Thorough`
55 | - Power on lid: `Disabled` - Fix black screen after wake
56 | - Disabled thunderbolt `auto switch` and select it to `BIOS assist` for better battery management in Catalina and BigSur
57 |
58 | ### STEP
59 |
60 | > You can follow [Dortania's guide](https://dortania.github.io/OpenCore-Install-Guide/) as it very detail and easy to understand.
61 |
62 | #### Short once
63 |
64 | - Prepair an Mac installer in USB with bootloader you choice ( Use unibeast to create it )
65 | - Go to `release` and download lastest version of your choice ( Clover or Opencore )
66 | - Replace EFI folder in USB EFI partition with this shipped EFI folder ( find the folder with name is `EFI` from zip file)
67 | - Boot into USB and select MacOs installer
68 | - After install success, run PostInstall/install.sh in terminal
69 | - Then you need to mount EFI partition and replace it with USB's EFI
70 | - After System EFI replaced by your EFI, Using Opencore Configurator, Clover Configurator or update script to change SMBIOS, generate your serial and MBL
71 | - If you're using intel card, please use NullEthernet for fixing iMess and FaceTime - Change MAC in NullEthernet with your new created one, see below
72 | - For intel wifi card's user, follow [Intel's guide](https://openintelwireless.github.io) for init your wifi
73 |
74 | #### Fake ethernet
75 |
76 | - Generate your MAC address in SSDT-RMNE if using NullEthernet
77 | - You can make an MacAddress in [Mac generator online](https://www.browserling.com/tools/random-mac)
78 | - Edit SSDT-RMNE.aml with MaciASL and replace MAC with your generated one
79 | - Save as -> ACPI machine language (replace exited one)
80 | - Add it to your bootloader:
81 | - Kext add in Kexts:
82 | - Copy kext to kexts/other if using Clover
83 | - Copy kext to Kexts and add it into Kernel in config.plist (Use OpencoreConfigurator)
84 | - AML's file add to ACPI folder (Opencore need add to ACPI after copy SSDT file to ACPI, use OpencoreConfigurator)
85 | - Reboot
86 |
87 | #### Sleep Wake
88 |
89 | ```shell
90 | sudo pmset -a hibernatemode 0
91 | sudo pmset -a autopoweroff 0
92 | sudo pmset -a standby 0
93 | sudo pmset -a proximitywake 0
94 | sudo pmset -b tcpkeepalive 0 (optional)
95 | ```
96 |
97 | > `-b` - Battery `-c` - AC Power `-a` - Both
98 |
99 | Please uncheck all options (except `Prevent computer from sleeping...`, which is optional) in the `Energy Saver` panel.
100 |
101 | #### Display
102 |
103 | If you are using FHD(1080p) display, you may want to enable font smoothing, run this command from terminal:
104 |
105 | ```
106 | defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO
107 | ```
108 |
109 | If your laptop display is 4K screen, you should set uiscale to 2:
110 |
111 | - Opencore: NVRAM -> Add -> 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14 -> UIScale -> 2
112 | - Clover: BootGraphics -> UIScale -> 2
113 |
114 | #### Using DW1820a as wifi card
115 |
116 | - You have to do following changes to Device Properties or it `cant boot into macos`:
117 | - DW1820a now have been supported by `AirportBrcmFixup`, if u facing with connection issues then follow bellow
118 |
119 | > Change
120 |
121 | ```xml
122 | #PciRoot(0x0)/Pci(0x1c,0x0)/Pci(0x0,0x0)
123 | ```
124 |
125 | > Into
126 |
127 | ```xml
128 | PciRoot(0x0)/Pci(0x1c,0x0)/Pci(0x0,0x0)
129 | ```
130 |
131 | - See [THE Solution:Dell DW1820A](https://www.tonymacx86.com/threads/the-solution-dell-dw1820a-broadcom-bcm94350zae-macos-15.288026/)
132 | - Other card you may need google for it
133 |
134 | #### NTFS Writing
135 |
136 | Add `UUID=xxx none ntfs rw,auto,nobrowse` to `/etc/fstab`, **xxx** is the UUID of your NTFS partition.
137 |
138 | If your NTFS partition has Windows installed, you need to run `powercfg -h off` in powershell in Windows to disable hibernation.
139 |
140 | #### Tap Delay
141 |
142 | - Turn off `Smart zoom` to avoid two-finger tap delay.
143 |
144 | > See [is-it-possible-to-get-rid-of-the-delay-between-right-clicking-and-seeing-the-context-menu](https://apple.stackexchange.com/a/218181)
145 |
146 | ## BIOS value unlock (Advanced User)
147 |
148 | > Big thanks for @Leoing, who found all nessesary value
149 |
150 | | Name | Address | Configable value | Default value |
151 | | :----------- | :------ | :--------------- | :------------ |
152 | | CFC-Lock | 0x6F0 | 0x1 or 0x0 | 0x1 |
153 | | DGPU | 0x574 | 0x1 or 0x0 | 0x1 |
154 | | Voltage Lock | 0x78C | 0x1 or 0x0 | 0x1 (1.6.0) |
155 |
156 | You can follow [this](https://github.com/Azkali/GPD-P2-MAX-Hackintosh/issues/16#issuecomment-565882180) to change those value
157 |
158 | > For Bios 1.6.0 `0x78C` need set to 0x0 so VoltageShift can be used
159 |
160 | > You can use mine SmartCPU Script base on VoltageShift for controlling cpu power's usage: [SmartCPU](https://github.com/tctien342/smart-cpu)
161 |
162 |
163 |
164 |
165 |
166 | ## Credits
167 |
168 | - [acidanthera](https://github.com/acidanthera) for providing almost all kexts and drivers
169 | - [alexandred](https://github.com/alexandred) for providing VoodooI2C
170 | - [headkaze](https://github.com/headkaze) for providing the very useful [Hackintool](https://www.tonymacx86.com/threads/release-hackintool-v2-8-6.254559/)
171 | - [daliansky](https://github.com/daliansky) for providing the awesome hotpatch guide [OC-little](https://github.com/daliansky/OC-little/) and the always up-to-date hackintosh solutions [XiaoMi-Pro-Hackintosh](https://github.com/daliansky/XiaoMi-Pro-Hackintosh) [黑果小兵的部落阁](https://blog.daliansky.net/)
172 | - [RehabMan](https://github.com/RehabMan) for providing numbers of [hotpatches](https://github.com/RehabMan/OS-X-Clover-Laptop-Config/tree/master/hotpatch) and hotpatch guides
173 | - [knnspeed](https://www.tonymacx86.com/threads/guide-dell-xps-15-9560-4k-touch-1tb-ssd-32gb-ram-100-adobergb.224486) for providing Combojack, well-explained hot patches and USB-C hotplug solution
174 | - [bavariancake](https://github.com/bavariancake/XPS9570-macOS) and [LuletterSoul](https://github.com/LuletterSoul/Dell-XPS-15-9570-macOS-Mojave) for providing detailed installation guide and configuration for XPS15-9570
175 | - And all other authors that mentioned or not mentioned in this repo
176 | - [xxxza](https://github.com/xxxzc/xps15-9570-macos) this build is porter from his project, big thanks to him
177 |
--------------------------------------------------------------------------------
/Kexts/USBPorts.kext/Contents/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | English
7 | CFBundleGetInfoString
8 | 1.0 Copyright © 2018 Headsoft. All rights reserved.
9 | CFBundleIdentifier
10 | com.Headsoft.USBPorts
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | USBPorts
15 | CFBundlePackageType
16 | KEXT
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1.0
23 | IOKitPersonalities
24 |
25 | MacBookPro15,2-XHC
26 |
27 | CFBundleIdentifier
28 | com.apple.driver.AppleUSBMergeNub
29 | IOClass
30 | AppleUSBMergeNub
31 | IONameMatch
32 | XHC
33 | IOProbeScore
34 | 5000
35 | IOProviderClass
36 | AppleUSBXHCIPCI
37 | IOProviderMergeProperties
38 |
39 | kUSBSleepPortCurrentLimit
40 | 2100
41 | kUSBSleepPowerSupply
42 | 2600
43 | kUSBWakePortCurrentLimit
44 | 2100
45 | kUSBWakePowerSupply
46 | 3200
47 | port-count
48 |
49 | EwAAAA==
50 |
51 | ports
52 |
53 | HS01
54 |
55 | UsbConnector
56 | 3
57 | port
58 |
59 | AQAAAA==
60 |
61 |
62 | HS02
63 |
64 | UsbConnector
65 | 3
66 | port
67 |
68 | AgAAAA==
69 |
70 |
71 | HS03
72 |
73 | UsbConnector
74 | 3
75 | port
76 |
77 | AwAAAA==
78 |
79 |
80 | HS04
81 |
82 | UsbConnector
83 | 10
84 | port
85 |
86 | BAAAAA==
87 |
88 |
89 | HS05
90 |
91 | UsbConnector
92 | 255
93 | port
94 |
95 | BQAAAA==
96 |
97 |
98 | HS06
99 |
100 | UsbConnector
101 | 255
102 | port
103 |
104 | BgAAAA==
105 |
106 |
107 | HS14
108 |
109 | UsbConnector
110 | 255
111 | port
112 |
113 | DgAAAA==
114 |
115 |
116 | SS01
117 |
118 | UsbConnector
119 | 10
120 | port
121 |
122 | EQAAAA==
123 |
124 |
125 | SS02
126 |
127 | UsbConnector
128 | 10
129 | port
130 |
131 | EgAAAA==
132 |
133 |
134 | SS03
135 |
136 | UsbConnector
137 | 10
138 | port
139 |
140 | EwAAAA==
141 |
142 |
143 |
144 |
145 | model
146 | MacBookPro15,2
147 |
148 | MacBookPro15,3-XHC
149 |
150 | CFBundleIdentifier
151 | com.apple.driver.AppleUSBMergeNub
152 | IOClass
153 | AppleUSBMergeNub
154 | IONameMatch
155 | XHC
156 | IOProbeScore
157 | 5000
158 | IOProviderClass
159 | AppleUSBXHCIPCI
160 | IOProviderMergeProperties
161 |
162 | port-count
163 |
164 | EwAAAA==
165 |
166 | ports
167 |
168 | HS01
169 |
170 | UsbConnector
171 | 0
172 | port
173 |
174 | AQAAAA==
175 |
176 |
177 | HS02
178 |
179 | UsbConnector
180 | 0
181 | port
182 |
183 | AgAAAA==
184 |
185 |
186 | HS03
187 |
188 | UsbConnector
189 | 0
190 | port
191 |
192 | AwAAAA==
193 |
194 |
195 | HS04
196 |
197 | UsbConnector
198 | 9
199 | port
200 |
201 | BAAAAA==
202 |
203 |
204 | HS05
205 |
206 | UsbConnector
207 | 255
208 | port
209 |
210 | BQAAAA==
211 |
212 |
213 | HS06
214 |
215 | UsbConnector
216 | 255
217 | port
218 |
219 | BgAAAA==
220 |
221 |
222 | HS14
223 |
224 | UsbConnector
225 | 255
226 | port
227 |
228 | DgAAAA==
229 |
230 |
231 | SS01
232 |
233 | UsbConnector
234 | 3
235 | port
236 |
237 | EQAAAA==
238 |
239 |
240 | SS02
241 |
242 | UsbConnector
243 | 3
244 | port
245 |
246 | EgAAAA==
247 |
248 |
249 | SS03
250 |
251 | UsbConnector
252 | 3
253 | port
254 |
255 | EwAAAA==
256 |
257 |
258 |
259 |
260 | model
261 | MacBookPro15,3
262 |
263 | MacBookPro16,1-XHC
264 |
265 | CFBundleIdentifier
266 | com.apple.driver.AppleUSBMergeNub
267 | IOClass
268 | AppleUSBMergeNub
269 | IONameMatch
270 | XHC
271 | IOPCIPrimaryMatch
272 | 0xa36d8086
273 | IOProbeScore
274 | 5000
275 | IOProviderClass
276 | AppleIntelCNLUSBXHCI
277 | IOProviderMergeProperties
278 |
279 | kUSBSleepPortCurrentLimit
280 | 2100
281 | kUSBSleepPowerSupply
282 | 5100
283 | kUSBWakePortCurrentLimit
284 | 2100
285 | kUSBWakePowerSupply
286 | 5100
287 | port-count
288 |
289 | EwAAAA==
290 |
291 | ports
292 |
293 | HS01
294 |
295 | UsbConnector
296 | 255
297 | name
298 | HS01
299 | port
300 |
301 | AQAAAA==
302 |
303 |
304 | HS02
305 |
306 | UsbConnector
307 | 255
308 | name
309 | HS02
310 | port
311 |
312 | AgAAAA==
313 |
314 |
315 | HS03
316 |
317 | UsbConnector
318 | 255
319 | name
320 | HS03
321 | port
322 |
323 | AwAAAA==
324 |
325 |
326 | HS04
327 |
328 | UsbConnector
329 | 9
330 | name
331 | HS04
332 | port
333 |
334 | BAAAAA==
335 |
336 |
337 | HS05
338 |
339 | UsbConnector
340 | 255
341 | name
342 | HS05
343 | port
344 |
345 | BQAAAA==
346 |
347 |
348 | HS06
349 |
350 | UsbConnector
351 | 255
352 | name
353 | HS06
354 | port
355 |
356 | BgAAAA==
357 |
358 |
359 | HS14
360 |
361 | UsbConnector
362 | 255
363 | name
364 | HS14
365 | port
366 |
367 | DgAAAA==
368 |
369 |
370 | SS01
371 |
372 | UsbConnector
373 | 255
374 | name
375 | SS01
376 | port
377 |
378 | EQAAAA==
379 |
380 |
381 | SS02
382 |
383 | UsbConnector
384 | 255
385 | name
386 | SS02
387 | port
388 |
389 | EgAAAA==
390 |
391 |
392 | SS03
393 |
394 | UsbConnector
395 | 255
396 | name
397 | SS03
398 | port
399 |
400 | EwAAAA==
401 |
402 |
403 |
404 |
405 | model
406 | MacBookPro16,1
407 |
408 |
409 | OSBundleRequired
410 | Root
411 |
412 |
413 |
--------------------------------------------------------------------------------
/CLOVER/config.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | ACPI
6 |
7 | AutoMerge
8 |
9 | DSDT
10 |
11 | DropOEM_DSM
12 |
13 | Patches
14 |
15 |
16 | Comment
17 | Rename BRT6 to BRTX
18 | Disabled
19 |
20 | Find
21 |
22 | QlJUNgI=
23 |
24 | Replace
25 |
26 | QlJUWAI=
27 |
28 |
29 |
30 | Comment
31 | Rename USTP to One
32 | Disabled
33 |
34 | Find
35 |
36 | VVNUUBA=
37 |
38 | Replace
39 |
40 | AaOjoxA=
41 |
42 |
43 |
44 | Comment
45 | Rename _WAK to ZWAK
46 | Disabled
47 |
48 | Find
49 |
50 | FDlfV0FLAQ==
51 |
52 | Replace
53 |
54 | FDlaV0FLAQ==
55 |
56 |
57 |
58 | Comment
59 | Rename _PTS to ZPTS
60 | Disabled
61 |
62 | Find
63 |
64 | FEkEX1BUUwE=
65 |
66 | Replace
67 |
68 | FEkEWlBUUwE=
69 |
70 |
71 |
72 |
73 | DropTables
74 |
75 |
76 | Signature
77 | SSDT
78 | TableId
79 | xh_cfhd4
80 |
81 |
82 | FixHeaders
83 |
84 | SSDT
85 |
86 | DropOem
87 |
88 | Generate
89 |
90 | PluginType
91 |
92 |
93 | PluginType
94 | 0
95 |
96 |
97 | Boot
98 |
99 | Arguments
100 | agdpmod=vit9696 darkwake=1 gfxrst=1 igfxfw=2 -v
101 | Debug
102 |
103 | DefaultVolume
104 | LastBootedVolume
105 | NeverHibernate
106 |
107 | Secure
108 |
109 | Timeout
110 | -1
111 | XMPDetection
112 | 1
113 |
114 | BootGraphics
115 |
116 | EFILoginHiDPI
117 | 1
118 | UIScale
119 | 1
120 |
121 | Devices
122 |
123 | Audio
124 |
125 | Inject
126 | No
127 |
128 | Properties
129 |
130 | #PciRoot(0x0)/Pci(0x1d,0x6)/Pci(0x0,0x0)
131 |
132 | AAPL,slot-name
133 | WLAN
134 | compatible
135 | pci14e4,43a3
136 | device_type
137 | Airport Extreme
138 | model
139 | DW1820A (BCM4350) 802.11ac Wireless
140 | name
141 | Airport
142 | pci-aspm-default
143 | 0
144 |
145 | PciRoot(0x0)/Pci(0x0,0x0)
146 |
147 | AAPL,slot-name
148 | Internal@0,0,0
149 | device_type
150 | Host bridge
151 | model
152 | 8th Gen Core 4-core Processor Host Bridge/DRAM Registers [Coffee Lake H]
153 |
154 | PciRoot(0x0)/Pci(0x1,0x0)
155 |
156 | AAPL,slot-name
157 | Internal@0,1,0
158 | device_type
159 | PCI bridge
160 | model
161 | Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16)
162 |
163 | PciRoot(0x0)/Pci(0x12,0x0)
164 |
165 | AAPL,slot-name
166 | Internal@0,18,0
167 | device_type
168 | Signal processing controller
169 | model
170 | Cannon Lake PCH Thermal Controller
171 |
172 | PciRoot(0x0)/Pci(0x14,0x0)
173 |
174 | AAPL,slot-name
175 | Internal@0,20,0
176 | device_type
177 | USB controller
178 | model
179 | Cannon Lake PCH USB 3.1 xHCI Host Controller
180 |
181 | PciRoot(0x0)/Pci(0x14,0x2)
182 |
183 | AAPL,slot-name
184 | Internal@0,20,2
185 | device_type
186 | RAM memory
187 | model
188 | Cannon Lake PCH Shared SRAM
189 |
190 | PciRoot(0x0)/Pci(0x15,0x1)
191 |
192 | AAPL,slot-name
193 | Internal@0,21,1
194 | model
195 | Cannon Lake PCH Serial IO I2C Controller #1
196 |
197 | PciRoot(0x0)/Pci(0x16,0x0)
198 |
199 | AAPL,slot-name
200 | Internal@0,22,0
201 | device_type
202 | Communication controller
203 | model
204 | Cannon Lake PCH HECI Controller
205 |
206 | PciRoot(0x0)/Pci(0x17,0x0)
207 |
208 | AAPL,slot-name
209 | Internal@0,23,0
210 | device_type
211 | SATA controller
212 | model
213 | Cannon Lake Mobile PCH SATA AHCI Controller
214 |
215 | PciRoot(0x0)/Pci(0x1B,0x0)
216 |
217 | AAPL,slot-name
218 | Internal@0,27,0
219 | device_type
220 | PCI bridge
221 | model
222 | Cannon Lake PCH PCI Express Root Port #17
223 |
224 | PciRoot(0x0)/Pci(0x1B,0x0)/Pci(0x0,0x0)
225 |
226 | AAPL,slot-name
227 | Internal@0,27,0/0,0
228 | device_type
229 | PCI bridge
230 | model
231 | JHL6340 Thunderbolt 3 Bridge (C step) [Alpine Ridge 2C 2016]
232 |
233 | PciRoot(0x0)/Pci(0x1B,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)
234 |
235 | AAPL,slot-name
236 | Internal@0,27,0/0,0/0,0
237 | device_type
238 | PCI bridge
239 | model
240 | JHL6340 Thunderbolt 3 Bridge (C step) [Alpine Ridge 2C 2016]
241 |
242 | PciRoot(0x0)/Pci(0x1B,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)
243 |
244 | AAPL,slot-name
245 | Internal@0,27,0/0,0/0,0/0,0
246 | device_type
247 | System peripheral
248 | model
249 | JHL6340 Thunderbolt 3 NHI (C step) [Alpine Ridge 2C 2016]
250 |
251 | PciRoot(0x0)/Pci(0x1B,0x0)/Pci(0x0,0x0)/Pci(0x1,0x0)
252 |
253 | AAPL,slot-name
254 | Internal@0,27,0/0,0/1,0
255 | device_type
256 | PCI bridge
257 | model
258 | JHL6340 Thunderbolt 3 Bridge (C step) [Alpine Ridge 2C 2016]
259 |
260 | PciRoot(0x0)/Pci(0x1B,0x0)/Pci(0x0,0x0)/Pci(0x2,0x0)
261 |
262 | AAPL,slot-name
263 | Internal@0,27,0/0,0/2,0
264 | device_type
265 | PCI bridge
266 | model
267 | JHL6340 Thunderbolt 3 Bridge (C step) [Alpine Ridge 2C 2016]
268 |
269 | PciRoot(0x0)/Pci(0x1B,0x0)/Pci(0x0,0x0)/Pci(0x2,0x0)/Pci(0x0,0x0)
270 |
271 | AAPL,slot-name
272 | Internal@0,27,0/0,0/2,0/0,0
273 | device_type
274 | USB controller
275 | model
276 | JHL6340 Thunderbolt 3 USB 3.1 Controller (C step) [Alpine Ridge 2C 2016]
277 |
278 | PciRoot(0x0)/Pci(0x1B,0x4)
279 |
280 | AAPL,slot-name
281 | Internal@0,27,4
282 | device_type
283 | PCI bridge
284 | model
285 | Cannon Lake PCH PCI Express Root Port #21
286 |
287 | PciRoot(0x0)/Pci(0x1D,0x0)
288 |
289 | AAPL,slot-name
290 | Internal@0,29,0
291 | device_type
292 | PCI bridge
293 | model
294 | Cannon Lake PCH PCI Express Root Port #9
295 |
296 | PciRoot(0x0)/Pci(0x1D,0x6)
297 |
298 | AAPL,slot-name
299 | Internal@0,29,6
300 | device_type
301 | PCI bridge
302 | model
303 | Cannon Lake PCH PCI Express Root Port #15
304 |
305 | PciRoot(0x0)/Pci(0x1F,0x0)
306 |
307 | compatible
308 | pci8086,9cc1
309 | device-id
310 |
311 | nMEA
312 |
313 |
314 | PciRoot(0x0)/Pci(0x1F,0x4)
315 |
316 | AAPL,slot-name
317 | Internal@0,31,4
318 | device_type
319 | SMBus
320 | model
321 | Cannon Lake PCH SMBus Controller
322 |
323 | PciRoot(0x0)/Pci(0x1F,0x5)
324 |
325 | AAPL,slot-name
326 | Internal@0,31,5
327 | model
328 | Cannon Lake PCH SPI Controller
329 |
330 | PciRoot(0x0)/Pci(0x1f,0x3)
331 |
332 | alc-delay
333 | 500
334 | layout-id
335 | 77
336 |
337 | PciRoot(0x0)/Pci(0x2,0x0)
338 |
339 | AAPL,ig-platform-id
340 |
341 | CQClPg==
342 |
343 | disable-external-gpu
344 |
345 | AQAAAA==
346 |
347 | dpcd-max-link-rate
348 |
349 | FAAAAA==
350 |
351 | enable-dpcd-max-link-rate-fix
352 |
353 | AQAAAA==
354 |
355 | enable-hdmi-dividers-fix
356 |
357 | AQAAAA==
358 |
359 | enable-hdmi20
360 |
361 | AQAAAA==
362 |
363 | enable-lspcon-support
364 |
365 | AQAAAA==
366 |
367 | framebuffer-con1-alldata
368 |
369 | AQUJAAAEAACHAQAA
370 |
371 | framebuffer-con1-enable
372 |
373 | AQAAAA==
374 |
375 | framebuffer-con2-alldata
376 |
377 | AgYJAAAEAACHAQAA
378 |
379 | framebuffer-con2-enable
380 |
381 | AQAAAA==
382 |
383 | framebuffer-con3-alldata
384 |
385 | AwQKAAAIAACHAQAA
386 |
387 | framebuffer-con3-enable
388 |
389 | AQAAAA==
390 |
391 | framebuffer-con3-has-lspcon
392 |
393 | AQAAAA==
394 |
395 | framebuffer-patch-enable
396 |
397 | AQAAAA==
398 |
399 | framebuffer-portcount
400 |
401 | BAAAAA==
402 |
403 | framebuffer-unifiedmem
404 |
405 | AAAAgA==
406 |
407 |
408 | PciRoot(0x0)/Pci(0x4,0x0)
409 |
410 | AAPL,slot-name
411 | Internal@0,4,0
412 | device_type
413 | Signal processing controller
414 | model
415 | Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem
416 |
417 | PciRoot(0x0)/Pci(0x8,0x0)
418 |
419 | AAPL,slot-name
420 | Internal@0,8,0
421 | device_type
422 | System peripheral
423 | model
424 | Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model
425 |
426 |
427 | USB
428 |
429 | FixOwnership
430 |
431 |
432 |
433 | GUI
434 |
435 | Hide
436 |
437 | Recovery
438 | Preboot
439 |
440 | Language
441 | en:0
442 | Mouse
443 |
444 | Enabled
445 |
446 |
447 | Scan
448 |
449 | Entries
450 |
451 | Legacy
452 |
453 | Tool
454 |
455 |
456 | Theme
457 | null
458 |
459 | KernelAndKextPatches
460 |
461 | Debug
462 |
463 | DellSMBIOSPatch
464 |
465 | KextsToPatch
466 |
467 |
468 | Disabled
469 |
470 | Find
471 |
472 | cJ0AAA==
473 |
474 | InfoPlistPatch
475 |
476 | Name
477 | com.apple.driver.AppleHDAController
478 | Replace
479 |
480 | SKMAAA==
481 |
482 |
483 |
484 |
485 | RtVariables
486 |
487 | BooterConfig
488 | 0x28
489 | CsrActiveConfig
490 | 0x67
491 |
492 | SMBIOS
493 |
494 | BiosReleaseDate
495 | 11/14/2019
496 | BiosVendor
497 | Apple Inc.
498 | BiosVersion
499 | MBP153.88Z.F000.B00.1911142110
500 | Board-ID
501 | Mac-1E7E29AD0135F9BC
502 | BoardManufacturer
503 | Apple Inc.
504 | BoardSerialNumber
505 | C02947300QX0000JC
506 | BoardType
507 | 10
508 | BoardVersion
509 | 1.0
510 | ChassisAssetTag
511 | MacBook-Aluminum
512 | ChassisManufacturer
513 | Apple Inc.
514 | ChassisType
515 | 0x09
516 | EfiVersion
517 | 1037.60.58.0.0
518 | Family
519 | MacBook Pro
520 | FirmwareFeatures
521 | 0xFC0FE137
522 | FirmwareFeaturesMask
523 | 0xFF1FFF3F
524 | LocationInChassis
525 | Part Component
526 | Manufacturer
527 | Apple Inc.
528 | Mobile
529 |
530 | PlatformFeature
531 | 0x02
532 | ProductName
533 | MacBookPro15,3
534 | SerialNumber
535 | C02ZQDYDLVCG
536 | SmUUID
537 | 6E167E28-A39C-423F-B244-20152956DD0C
538 | Version
539 | 1.0
540 |
541 | SystemParameters
542 |
543 | InjectKexts
544 | Yes
545 | InjectSystemID
546 |
547 |
548 |
549 |
550 |
--------------------------------------------------------------------------------
/PostInstall/CombojackFix/LICENSE:
--------------------------------------------------------------------------------
1 | GNU GENERAL PUBLIC LICENSE
2 | Version 2, June 1991
3 |
4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6 | Everyone is permitted to copy and distribute verbatim copies
7 | of this license document, but changing it is not allowed.
8 |
9 | Preamble
10 |
11 | The licenses for most software are designed to take away your
12 | freedom to share and change it. By contrast, the GNU General Public
13 | License is intended to guarantee your freedom to share and change free
14 | software--to make sure the software is free for all its users. This
15 | General Public License applies to most of the Free Software
16 | Foundation's software and to any other program whose authors commit to
17 | using it. (Some other Free Software Foundation software is covered by
18 | the GNU Lesser General Public License instead.) You can apply it to
19 | your programs, too.
20 |
21 | When we speak of free software, we are referring to freedom, not
22 | price. Our General Public Licenses are designed to make sure that you
23 | have the freedom to distribute copies of free software (and charge for
24 | this service if you wish), that you receive source code or can get it
25 | if you want it, that you can change the software or use pieces of it
26 | in new free programs; and that you know you can do these things.
27 |
28 | To protect your rights, we need to make restrictions that forbid
29 | anyone to deny you these rights or to ask you to surrender the rights.
30 | These restrictions translate to certain responsibilities for you if you
31 | distribute copies of the software, or if you modify it.
32 |
33 | For example, if you distribute copies of such a program, whether
34 | gratis or for a fee, you must give the recipients all the rights that
35 | you have. You must make sure that they, too, receive or can get the
36 | source code. And you must show them these terms so they know their
37 | rights.
38 |
39 | We protect your rights with two steps: (1) copyright the software, and
40 | (2) offer you this license which gives you legal permission to copy,
41 | distribute and/or modify the software.
42 |
43 | Also, for each author's protection and ours, we want to make certain
44 | that everyone understands that there is no warranty for this free
45 | software. If the software is modified by someone else and passed on, we
46 | want its recipients to know that what they have is not the original, so
47 | that any problems introduced by others will not reflect on the original
48 | authors' reputations.
49 |
50 | Finally, any free program is threatened constantly by software
51 | patents. We wish to avoid the danger that redistributors of a free
52 | program will individually obtain patent licenses, in effect making the
53 | program proprietary. To prevent this, we have made it clear that any
54 | patent must be licensed for everyone's free use or not licensed at all.
55 |
56 | The precise terms and conditions for copying, distribution and
57 | modification follow.
58 |
59 | GNU GENERAL PUBLIC LICENSE
60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61 |
62 | 0. This License applies to any program or other work which contains
63 | a notice placed by the copyright holder saying it may be distributed
64 | under the terms of this General Public License. The "Program", below,
65 | refers to any such program or work, and a "work based on the Program"
66 | means either the Program or any derivative work under copyright law:
67 | that is to say, a work containing the Program or a portion of it,
68 | either verbatim or with modifications and/or translated into another
69 | language. (Hereinafter, translation is included without limitation in
70 | the term "modification".) Each licensee is addressed as "you".
71 |
72 | Activities other than copying, distribution and modification are not
73 | covered by this License; they are outside its scope. The act of
74 | running the Program is not restricted, and the output from the Program
75 | is covered only if its contents constitute a work based on the
76 | Program (independent of having been made by running the Program).
77 | Whether that is true depends on what the Program does.
78 |
79 | 1. You may copy and distribute verbatim copies of the Program's
80 | source code as you receive it, in any medium, provided that you
81 | conspicuously and appropriately publish on each copy an appropriate
82 | copyright notice and disclaimer of warranty; keep intact all the
83 | notices that refer to this License and to the absence of any warranty;
84 | and give any other recipients of the Program a copy of this License
85 | along with the Program.
86 |
87 | You may charge a fee for the physical act of transferring a copy, and
88 | you may at your option offer warranty protection in exchange for a fee.
89 |
90 | 2. You may modify your copy or copies of the Program or any portion
91 | of it, thus forming a work based on the Program, and copy and
92 | distribute such modifications or work under the terms of Section 1
93 | above, provided that you also meet all of these conditions:
94 |
95 | a) You must cause the modified files to carry prominent notices
96 | stating that you changed the files and the date of any change.
97 |
98 | b) You must cause any work that you distribute or publish, that in
99 | whole or in part contains or is derived from the Program or any
100 | part thereof, to be licensed as a whole at no charge to all third
101 | parties under the terms of this License.
102 |
103 | c) If the modified program normally reads commands interactively
104 | when run, you must cause it, when started running for such
105 | interactive use in the most ordinary way, to print or display an
106 | announcement including an appropriate copyright notice and a
107 | notice that there is no warranty (or else, saying that you provide
108 | a warranty) and that users may redistribute the program under
109 | these conditions, and telling the user how to view a copy of this
110 | License. (Exception: if the Program itself is interactive but
111 | does not normally print such an announcement, your work based on
112 | the Program is not required to print an announcement.)
113 |
114 | These requirements apply to the modified work as a whole. If
115 | identifiable sections of that work are not derived from the Program,
116 | and can be reasonably considered independent and separate works in
117 | themselves, then this License, and its terms, do not apply to those
118 | sections when you distribute them as separate works. But when you
119 | distribute the same sections as part of a whole which is a work based
120 | on the Program, the distribution of the whole must be on the terms of
121 | this License, whose permissions for other licensees extend to the
122 | entire whole, and thus to each and every part regardless of who wrote it.
123 |
124 | Thus, it is not the intent of this section to claim rights or contest
125 | your rights to work written entirely by you; rather, the intent is to
126 | exercise the right to control the distribution of derivative or
127 | collective works based on the Program.
128 |
129 | In addition, mere aggregation of another work not based on the Program
130 | with the Program (or with a work based on the Program) on a volume of
131 | a storage or distribution medium does not bring the other work under
132 | the scope of this License.
133 |
134 | 3. You may copy and distribute the Program (or a work based on it,
135 | under Section 2) in object code or executable form under the terms of
136 | Sections 1 and 2 above provided that you also do one of the following:
137 |
138 | a) Accompany it with the complete corresponding machine-readable
139 | source code, which must be distributed under the terms of Sections
140 | 1 and 2 above on a medium customarily used for software interchange; or,
141 |
142 | b) Accompany it with a written offer, valid for at least three
143 | years, to give any third party, for a charge no more than your
144 | cost of physically performing source distribution, a complete
145 | machine-readable copy of the corresponding source code, to be
146 | distributed under the terms of Sections 1 and 2 above on a medium
147 | customarily used for software interchange; or,
148 |
149 | c) Accompany it with the information you received as to the offer
150 | to distribute corresponding source code. (This alternative is
151 | allowed only for noncommercial distribution and only if you
152 | received the program in object code or executable form with such
153 | an offer, in accord with Subsection b above.)
154 |
155 | The source code for a work means the preferred form of the work for
156 | making modifications to it. For an executable work, complete source
157 | code means all the source code for all modules it contains, plus any
158 | associated interface definition files, plus the scripts used to
159 | control compilation and installation of the executable. However, as a
160 | special exception, the source code distributed need not include
161 | anything that is normally distributed (in either source or binary
162 | form) with the major components (compiler, kernel, and so on) of the
163 | operating system on which the executable runs, unless that component
164 | itself accompanies the executable.
165 |
166 | If distribution of executable or object code is made by offering
167 | access to copy from a designated place, then offering equivalent
168 | access to copy the source code from the same place counts as
169 | distribution of the source code, even though third parties are not
170 | compelled to copy the source along with the object code.
171 |
172 | 4. You may not copy, modify, sublicense, or distribute the Program
173 | except as expressly provided under this License. Any attempt
174 | otherwise to copy, modify, sublicense or distribute the Program is
175 | void, and will automatically terminate your rights under this License.
176 | However, parties who have received copies, or rights, from you under
177 | this License will not have their licenses terminated so long as such
178 | parties remain in full compliance.
179 |
180 | 5. You are not required to accept this License, since you have not
181 | signed it. However, nothing else grants you permission to modify or
182 | distribute the Program or its derivative works. These actions are
183 | prohibited by law if you do not accept this License. Therefore, by
184 | modifying or distributing the Program (or any work based on the
185 | Program), you indicate your acceptance of this License to do so, and
186 | all its terms and conditions for copying, distributing or modifying
187 | the Program or works based on it.
188 |
189 | 6. Each time you redistribute the Program (or any work based on the
190 | Program), the recipient automatically receives a license from the
191 | original licensor to copy, distribute or modify the Program subject to
192 | these terms and conditions. You may not impose any further
193 | restrictions on the recipients' exercise of the rights granted herein.
194 | You are not responsible for enforcing compliance by third parties to
195 | this License.
196 |
197 | 7. If, as a consequence of a court judgment or allegation of patent
198 | infringement or for any other reason (not limited to patent issues),
199 | conditions are imposed on you (whether by court order, agreement or
200 | otherwise) that contradict the conditions of this License, they do not
201 | excuse you from the conditions of this License. If you cannot
202 | distribute so as to satisfy simultaneously your obligations under this
203 | License and any other pertinent obligations, then as a consequence you
204 | may not distribute the Program at all. For example, if a patent
205 | license would not permit royalty-free redistribution of the Program by
206 | all those who receive copies directly or indirectly through you, then
207 | the only way you could satisfy both it and this License would be to
208 | refrain entirely from distribution of the Program.
209 |
210 | If any portion of this section is held invalid or unenforceable under
211 | any particular circumstance, the balance of the section is intended to
212 | apply and the section as a whole is intended to apply in other
213 | circumstances.
214 |
215 | It is not the purpose of this section to induce you to infringe any
216 | patents or other property right claims or to contest validity of any
217 | such claims; this section has the sole purpose of protecting the
218 | integrity of the free software distribution system, which is
219 | implemented by public license practices. Many people have made
220 | generous contributions to the wide range of software distributed
221 | through that system in reliance on consistent application of that
222 | system; it is up to the author/donor to decide if he or she is willing
223 | to distribute software through any other system and a licensee cannot
224 | impose that choice.
225 |
226 | This section is intended to make thoroughly clear what is believed to
227 | be a consequence of the rest of this License.
228 |
229 | 8. If the distribution and/or use of the Program is restricted in
230 | certain countries either by patents or by copyrighted interfaces, the
231 | original copyright holder who places the Program under this License
232 | may add an explicit geographical distribution limitation excluding
233 | those countries, so that distribution is permitted only in or among
234 | countries not thus excluded. In such case, this License incorporates
235 | the limitation as if written in the body of this License.
236 |
237 | 9. The Free Software Foundation may publish revised and/or new versions
238 | of the General Public License from time to time. Such new versions will
239 | be similar in spirit to the present version, but may differ in detail to
240 | address new problems or concerns.
241 |
242 | Each version is given a distinguishing version number. If the Program
243 | specifies a version number of this License which applies to it and "any
244 | later version", you have the option of following the terms and conditions
245 | either of that version or of any later version published by the Free
246 | Software Foundation. If the Program does not specify a version number of
247 | this License, you may choose any version ever published by the Free Software
248 | Foundation.
249 |
250 | 10. If you wish to incorporate parts of the Program into other free
251 | programs whose distribution conditions are different, write to the author
252 | to ask for permission. For software which is copyrighted by the Free
253 | Software Foundation, write to the Free Software Foundation; we sometimes
254 | make exceptions for this. Our decision will be guided by the two goals
255 | of preserving the free status of all derivatives of our free software and
256 | of promoting the sharing and reuse of software generally.
257 |
258 | NO WARRANTY
259 |
260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268 | REPAIR OR CORRECTION.
269 |
270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278 | POSSIBILITY OF SUCH DAMAGES.
279 |
280 | END OF TERMS AND CONDITIONS
281 |
282 | How to Apply These Terms to Your New Programs
283 |
284 | If you develop a new program, and you want it to be of the greatest
285 | possible use to the public, the best way to achieve this is to make it
286 | free software which everyone can redistribute and change under these terms.
287 |
288 | To do so, attach the following notices to the program. It is safest
289 | to attach them to the start of each source file to most effectively
290 | convey the exclusion of warranty; and each file should have at least
291 | the "copyright" line and a pointer to where the full notice is found.
292 |
293 | handles EAPD state updating for power-managed HDA codecs
294 | Copyright (C) 2013 Dolnor
295 |
296 | This program is free software; you can redistribute it and/or modify
297 | it under the terms of the GNU General Public License as published by
298 | the Free Software Foundation; either version 2 of the License, or
299 | (at your option) any later version.
300 |
301 | This program is distributed in the hope that it will be useful,
302 | but WITHOUT ANY WARRANTY; without even the implied warranty of
303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304 | GNU General Public License for more details.
305 |
306 | You should have received a copy of the GNU General Public License along
307 | with this program; if not, write to the Free Software Foundation, Inc.,
308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
309 |
310 | Also add information on how to contact you by electronic and paper mail.
311 |
312 | If the program is interactive, make it output a short notice like this
313 | when it starts in an interactive mode:
314 |
315 | Gnomovision version 69, Copyright (C) year name of author
316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
317 | This is free software, and you are welcome to redistribute it
318 | under certain conditions; type `show c' for details.
319 |
320 | The hypothetical commands `show w' and `show c' should show the appropriate
321 | parts of the General Public License. Of course, the commands you use may
322 | be called something other than `show w' and `show c'; they could even be
323 | mouse-clicks or menu items--whatever suits your program.
324 |
325 | You should also get your employer (if you work as a programmer) or your
326 | school, if any, to sign a "copyright disclaimer" for the program, if
327 | necessary. Here is a sample; alter the names:
328 |
329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program
330 | `Gnomovision' (which makes passes at compilers) written by James Hacker.
331 |
332 | {signature of Ty Coon}, 1 April 1989
333 | Ty Coon, President of Vice
334 |
335 | This General Public License does not permit incorporating your program into
336 | proprietary programs. If your program is a subroutine library, you may
337 | consider it more useful to permit linking proprietary applications with the
338 | library. If this is what you want to do, use the GNU Lesser General
339 | Public License instead of this License.
340 |
--------------------------------------------------------------------------------
/update.py:
--------------------------------------------------------------------------------
1 | import argparse
2 | from pathlib import Path
3 | import plistlib
4 | from os.path import join
5 | from os import listdir
6 | from os import system as sh
7 | from datetime import datetime, date
8 | from base64 import b64decode
9 | from subprocess import check_output
10 | from urllib.request import urlopen, Request, urlretrieve
11 | import json
12 | import re
13 | import ssl
14 |
15 | ssl._create_default_https_context = ssl._create_unverified_context
16 |
17 | root = Path(__file__).absolute().parent
18 |
19 | # GITHUB CONF
20 | # Link for your config repo
21 | GITHUB_URL = 'https://github.com/tctien342/Dell-Inspiron-7591-Hackintosh'
22 | GITHUB_DESCRIPTION = 'Configuration for Dell Inspiron 759x'
23 | # GITHUB_ACCESS_TOKEN = ''
24 |
25 | # BUILD CONF
26 | SMBIOS_PRODUCT = 'MacBookPro15,3'
27 | DEFAULT_SN = 'C02ZQDYDLVCG'
28 | DEFAULT_MLB = 'C02947300QX0000JC'
29 | DEFAULT_SMUUID = '6E167E28-A39C-423F-B244-20152956DD0C'
30 | DELAY_AFTER_TYPE = 50
31 | KEXT_PIORITY = {
32 | 'Lilu.kext': 0, 'VirtualSMC.kext': 10, 'CpuTscSync.kext': 15, 'AppleALC.kext': 20, 'VoodooPS2Controller.kext': 25,
33 | 'VoodooGPIO.kext': 30, 'VoodooI2CServices.kext': 35, 'VoodooInput.kext': 26,
34 | 'VoodooI2C.kext': 40, 'VoodooI2CHID.kext': 50,
35 | 'CPUFriend.kext': 21, 'CPUFriendDataProvider.kext': 22,
36 | }
37 | BUILD_PREFIX = 'INSPIRON-759x'
38 | SHIPPED_FOLDER = [
39 | 'PostInstall'
40 | ]
41 |
42 |
43 | def c(text, color):
44 | # colored output https://stackoverflow.com/a/56774969
45 | return "\33[38;5;{}m{}\33[0m".format(color, text)
46 |
47 |
48 | # SUB CONF
49 | PREFIX = c('::', 75)
50 | ARROW = c('==>', 40)
51 |
52 |
53 | def R(*args):
54 | return Path(root, *args)
55 |
56 |
57 | tmp = R('tmp') # cache downloaded files
58 | tmp.mkdir(exist_ok=True)
59 |
60 |
61 | def Done(msg: str = 'Done'):
62 | print(msg)
63 | sh('rm -rf {}'.format(tmp))
64 | exit()
65 |
66 |
67 | '''
68 | Arguments
69 | '''
70 | parser = argparse.ArgumentParser(description='''
71 | Update(download if not exist) kexts, drivers, bootloaders,
72 | patches, themes and config.''', formatter_class=argparse.ArgumentDefaultsHelpFormatter)
73 | parser.add_argument('p', default=root, metavar='PATH/PACKAGE/CONFIG', nargs='?',
74 | help='update/download package or packages in this path, e.g. Kexts/ config.plist OpenCore.efi themes/NightWish')
75 | parser.add_argument('--force', default=False, action='store_true',
76 | help='force to update without prompt')
77 | parser.add_argument('--set', nargs='*', metavar='k=v',
78 | help='update config.plist with `k=v` pairs')
79 | parser.add_argument('--acpi', default=False, action='store_true',
80 | help='update SSDTs and DSDT/Patches')
81 | parser.add_argument('--zip', default=False, action='store_true',
82 | help='zip folders')
83 | parser.add_argument('--fixsleep', default=False, action='store_true',
84 | help='fix sleep issue')
85 | parser.add_argument('--gen', default=False, action='store_true',
86 | help='generate SN, MLB and SmUUID')
87 | parser.add_argument('--self', default=False, action='store_true',
88 | help='update from {}/archive/master.zip'.format(GITHUB_URL))
89 | parser.add_argument('--build', default=False, action='store_true',
90 | help='build source into zip files')
91 | parser.add_argument('--post', default=False, action='store_true',
92 | help='fix sleep and audio then rebuild kext')
93 |
94 | args = parser.parse_args()
95 |
96 |
97 | def fix_sleep():
98 | sh('sudo pmset -a hibernatemode 0')
99 | sh('sudo pmset -a autopoweroff 0')
100 | sh('sudo pmset -a standby 0')
101 | sh('sudo pmset -a proximitywake 0')
102 |
103 |
104 | if args.fixsleep:
105 | fix_sleep()
106 | Done()
107 |
108 | mappers = dict(CLOVER={
109 | 'ACPI': 'ACPI/patched',
110 | 'Kexts': 'kexts/Other',
111 | 'Drivers': 'drivers/UEFI'
112 | }, OC={})
113 |
114 | CONVERT_THEME = {
115 | "Background.png": "background.png",
116 | "func_resetnvram.icns": "os_legacy.icns",
117 | "os_cata.icns": "os_cata.icns",
118 | "os_custom.icns": "os_mx.icns",
119 | "os_debian.icns": "os_debian.icns",
120 | "os_fedora.icns": "os_fedora.icns",
121 | "os_freebsd.icns": "os_freebsd.icns",
122 | "os_linux.icns": "os_linux.icns",
123 | # Attemp to fix opencore bug os_cata.icns => os_mac
124 | "os_mac.icns": "os_cata.icns",
125 | "os_moja.icns": "os_moja.icns",
126 | "os_recovery.icns": "os_recovery.icns",
127 | "os_redhat.icns": "os_redhat.icns",
128 | "os_ubuntu.icns": "os_ubuntu.icns",
129 | "os_unknown.icns": "os_unknown.icns",
130 | # Attemp to fix opencore bug os_vista.icns => os_win
131 | "os_win.icns": "os_vista.icns",
132 | "os_win10.icns": "os_vista.icns",
133 | }
134 | CONVERT_FALLBACK_DEFAULT_ICON = 'os_mac.icns'
135 |
136 |
137 | def convert_themes_clover_opencore(clover_theme_patch, opencore_theme_patch):
138 | print("Converting to opencore themes...")
139 | WORK_PATCH = './tmp/convert'
140 | sh('cp -r {} {}'.format(clover_theme_patch, WORK_PATCH))
141 | sh('mkdir -p {}/opencore'.format(WORK_PATCH))
142 | for file in listdir(WORK_PATCH):
143 | if file == 'background.png':
144 | sh('mv {} {}/opencore/{}'.format(WORK_PATCH +
145 | '/' + file, WORK_PATCH, 'Background.png'))
146 | if file == 'icons':
147 | icons = listdir(WORK_PATCH + '/' + file)
148 | for oIcon, cIcon in CONVERT_THEME.items():
149 | if cIcon in icons:
150 | sh('cp -rf {} {}/opencore/{}'.format(WORK_PATCH +
151 | '/icons/' + cIcon, WORK_PATCH, oIcon))
152 | else:
153 | sh('cp -rf {} {}/opencore/{}'.format(WORK_PATCH +
154 | '/icons/' + CONVERT_FALLBACK_DEFAULT_ICON, WORK_PATCH, oIcon))
155 | for file in listdir(WORK_PATCH + '/opencore'):
156 | sh('mv -f {} {}'.format(WORK_PATCH + '/opencore/' + file, opencore_theme_patch))
157 | sh('rm -rf ./tmp')
158 |
159 |
160 | def Title(*args):
161 | print(PREFIX, *args)
162 |
163 |
164 | def Prompt(msg: str):
165 | if args.force:
166 | return ''
167 | return input(ARROW + ' ' + msg)
168 |
169 |
170 | def Confirm(msg: str) -> bool:
171 | if args.force:
172 | return True
173 | r = Prompt(msg + '?(Y/n)')
174 | return r != 'n'
175 |
176 |
177 | def shout(cmd):
178 | return check_output(cmd, shell=True, encoding='utf-8').strip()
179 |
180 |
181 | def get_timestamp(p, f='B'):
182 | # 'B' - birth time, 'm' - modified time
183 | return int(shout('stat -f%{} {}'.format(f, p)))
184 |
185 |
186 | class Plist:
187 | clover_keywords = dict(
188 | sn='SMBIOS>SerialNumber',
189 | mlb='SMBIOS>BoardSerialNumber',
190 | smuuid='SMBIOS>SmUUID',
191 | uiscale='BootGraphics>UIScale',
192 | theme='GUI>Theme',
193 | bootarg='Boot>Arguments',
194 | timeout='Boot>Timeout',
195 | defaultvolume='Boot>DefaultVolume',
196 | layoutid='Devices>Properties>PciRoot(0x0)/Pci(0x1f,0x3)>layout-id',
197 | deviceproperties='Devices>Properties'
198 | )
199 | oc_keywords = dict(
200 | sn='PlatformInfo>Generic>SystemSerialNumber',
201 | mlb='PlatformInfo>Generic>MLB',
202 | smuuid='PlatformInfo>Generic>SystemUUID',
203 | uiscale='NVRAM>Add>4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14>UIScale',
204 | bootarg='NVRAM>Add>7C436110-AB2A-4BBB-A880-FE41995C9F82>boot-args',
205 | timeout='Misc>Boot>Timeout',
206 | layoutid='DeviceProperties>Add>PciRoot(0x0)/Pci(0x1f,0x3)>layout-id',
207 | deviceproperties='DeviceProperties>Add'
208 | )
209 |
210 | def __init__(self, file):
211 | self.file = Path(file).absolute()
212 | with open(file, 'rb') as f:
213 | self.plist = plistlib.load(f)
214 | if 'Boot' in self.plist: # clover
215 | self.type = 'clover'
216 | self.keywords = self.clover_keywords
217 | else:
218 | self.type = 'oc'
219 | self.keywords = self.oc_keywords
220 |
221 | def save(self):
222 | with open(self.file, 'wb') as f:
223 | plistlib.dump(self.plist, f)
224 |
225 | def keyword(self, key):
226 | return self.keywords.get(key, key)
227 |
228 | @staticmethod
229 | def data(b64str):
230 | return b64decode(b64str)
231 |
232 | def get(self, key, value=False):
233 | key = self.keyword(key)
234 | ks = key.split('>')
235 | item = self.plist
236 | for k in ks[:-1]:
237 | item = item[k]
238 | return item[ks[-1]] if value else (item, ks[-1])
239 |
240 | def set(self, key, value):
241 | item, key = self.get(key)
242 | if type(item[key]) is bytes:
243 | if type(value) is not bytes:
244 | value = Plist.data(value)
245 | else:
246 | value = type(item[key])(value)
247 | item[key] = value
248 |
249 | def copy(self, another):
250 | if self.type == another.type:
251 | Title('Replace everything from',
252 | another.file, '\nExcept:')
253 | for key in self.keywords.values():
254 | value = self.get(key, True)
255 | another.set(key, value)
256 | print('{}={}'.format(key, value))
257 | self.plist = another.plist
258 | else:
259 | Title('Replace following fields from', another.file)
260 | for k in self.keywords.keys():
261 | i1, k1 = self.get(self.keywords[k])
262 | value = another.get(another.keywords[k])
263 | print('Set {} to {}'.format(k1, value))
264 | i1[k1] = value
265 | return self
266 |
267 |
268 | # cache remote info - { url+pattern+version: (rurl, rver, rdat) }
269 | remote_infos = dict()
270 |
271 |
272 | class Package:
273 | # access only, 5000/hr
274 | # GITHUB_TOKEN = GITHUB_ACCESS_TOKEN
275 |
276 | def __init__(self, **kargs):
277 | self.__dict__.update(kargs)
278 | self.changelog = ''
279 |
280 | @property
281 | def lurl(self):
282 | return Path(self.folder, self.name)
283 |
284 | def check_update(self):
285 | # get local info
286 | lurl, lver, ldat = self.lurl, 'NotInstalled', None
287 | if lurl.exists():
288 | ldat = datetime.fromtimestamp(
289 | get_timestamp(lurl, 'B')) # B -- birthdate
290 | lver = ldat.strftime('%y%m%d')
291 | if lurl.name.endswith('.kext'):
292 | lver += '(' + shout("grep -A1 -m 2 'CFBundleShortVersionString' " + str(Path(
293 | lurl, 'Contents', 'Info.plist')) + " | awk -F '[<,>]' 'NR>1{print $3}'") + ')'
294 |
295 | self.__dict__.update(dict(lver=lver, ldat=ldat))
296 |
297 | # get remote info
298 | rurl, rver, rdat = self.url, self.version, date.today()
299 |
300 | if lver.split('(')[-1].startswith(rver):
301 | return False
302 |
303 | _info = self.url+self.version+self.pattern
304 | if _info in remote_infos:
305 | rurl, rver, rdat = remote_infos[_info]
306 | elif 'github' in rurl or 'bitbucket' in rurl:
307 | domain, user, repo = rurl.split('/')[-3:]
308 | isgithub = 'github' in domain
309 | if isgithub:
310 | req = Request('https://api.github.com/repos/{}/{}/releases/{}'.format(
311 | user, repo, 'tags/' + rver if rver != 'latest' else rver),
312 | headers={})
313 | print(req.get_full_url())
314 | else:
315 | req = 'https://api.bitbucket.org/2.0/repositories/{}/{}/downloads'.format(
316 | user, repo)
317 | print(req)
318 | info = json.loads(urlopen(req).read())
319 | for asset in info['assets' if isgithub else 'values']:
320 | if re.match(self.pattern, asset['name'], re.I):
321 | if isgithub:
322 | rurl = asset['browser_download_url']
323 | rver = info['tag_name']
324 | rdat = asset['updated_at']
325 | self.changelog = info['body']
326 | else:
327 | rdat = asset['created_on']
328 | if rver in ('latest', rdat[:10]):
329 | rurl = asset['links']['self']['href']
330 | break
331 | print(rdat)
332 | rdat = datetime.fromisoformat(rdat[:19])
333 | rver = rdat.strftime('%y%m%d') + '(' + rver + ')'
334 | self.__dict__.update(dict(rurl=rurl, rver=rver, rdat=rdat))
335 | remote_infos[_info] = (rurl, rver, rdat)
336 |
337 | if not ldat: # not exist
338 | return True
339 | if lver.split('(')[-1] == rver.split('(')[-1]:
340 | return False
341 | return abs((rdat - ldat).days) > 1
342 |
343 | def update(self, tmp=Path(__file__).parent.joinpath('tmp')):
344 | tmpfile = tmp / self.rurl.split('/')[-1]
345 | tmpfolder = Path(tmp, tmpfile.name.split('.')[0])
346 | if not tmpfile.exists():
347 | print('Downloading', self.lurl, 'from', self.rurl)
348 | sh('curl -# -R -Lk {} -o {}'.format(self.rurl, tmpfile))
349 | if self.rurl.endswith('.zip'):
350 | sh('unzip -qq -o {} -d {}'.format(tmpfile, tmpfolder))
351 | else:
352 | tmpfolder.mkdir(exist_ok=True)
353 | sh('cp -p {} {}'.format(tmpfile, tmpfolder))
354 | self.folder.mkdir(exist_ok=True, parents=True)
355 | sh('rm -rf {}'.format(self.lurl))
356 | for r in tmpfolder.rglob(self.name):
357 | sh('cp -pr {} {}'.format(r, self.folder))
358 |
359 |
360 | def download_theme(theme: Path):
361 | if not theme.exists() or Confirm('Theme {} exists, do you want to update it'.format(theme.name)):
362 | Title('Downloading theme', theme.name)
363 | sh('cd {} && git archive --remote=git://git.code.sf.net/p/cloverefiboot/themes HEAD themes/{} | tar -x -v'.format(
364 | theme.parent.parent, theme.name))
365 | Title('Theme', theme.name, 'downloaded into', theme.parent)
366 | print()
367 |
368 |
369 | def update_themes(themes):
370 | if themes.exists():
371 | [download_theme(theme)
372 | for theme in Path(themes).iterdir() if theme.is_dir()]
373 | else:
374 | themes.mkdir()
375 | download_theme(Path(themes, 'Nightwish'))
376 |
377 |
378 | def set_config(configfile: Path, kvs: list):
379 | '''Update config.plist with key=value pairs
380 | e.g.
381 | 'uiscale=1' for FHD display
382 | 'theme=Nightwish' to set Clover theme
383 | 'bootarg--v' to remove -v in bootarg
384 | 'bootarg+darkwake=1' to set darkwake to 1
385 | '''
386 | isCLOVER = True if "CLOVER" in str(configfile).split("/") else False
387 |
388 | if not configfile.exists() or not configfile.name.endswith('.plist'):
389 | return False
390 |
391 | Title('Setting', configfile)
392 |
393 | config = Plist(configfile)
394 | # process bootargs
395 | bootargs = []
396 | for kv in kvs:
397 | if kv.startswith('bootarg'):
398 | bootargs.append(kv)
399 | else:
400 | k, v = kv.split('=', 1)
401 | if k not in config.keywords:
402 | if k != 'theme':
403 | print(k, 'field not found.')
404 | continue
405 |
406 | if k == 'theme':
407 | if isCLOVER:
408 | theme = R('CLOVER', 'themes', v)
409 | if not theme.exists():
410 | download_theme(theme)
411 | else:
412 | print('found')
413 | theme = R('tmp', 'themes', v)
414 | download_theme(theme)
415 | convert_themes_clover_opencore(theme, R('OC', 'Icons'))
416 |
417 | if k == 'uiscale':
418 | if config.type == 'oc':
419 | v = 'Ag==' if v == '2' else 'AQ=='
420 | if isCLOVER or k != 'theme':
421 | print('Set', config.keyword(k), 'to', v)
422 | config.set(k, v)
423 |
424 | if bootargs:
425 | boot, key = config.get('bootarg')
426 | argdict = dict((ba.split('=')[0], ba) for ba in boot[key].split())
427 | for ba in bootargs:
428 | arg = ba[8:].split('=')[0]
429 | if ba[7] == '-':
430 | argdict.pop(arg, 0)
431 | else:
432 | argdict[arg] = ba[8:]
433 | boot[key] = ' '.join(argdict.values())
434 | print('Boot Args:', boot[key])
435 |
436 | config.save()
437 | return True
438 |
439 |
440 | def update_packages(packages):
441 | '''Updating packages
442 | '''
443 | Title('Checking updates...')
444 | updates = []
445 | for i, package in enumerate(packages, 1):
446 | print('({}/{}) {:<46}'.format(i, len(packages), package.name), end='\r')
447 | if package.check_update():
448 | updates.append(package)
449 | packages = updates
450 | if not packages:
451 | print('Everything is up-to-date')
452 | return []
453 | '''
454 | Show updates
455 | '''
456 | Title(len(packages), 'packages to update')
457 | for i, p in enumerate(packages, 1):
458 | print('[{}] {:<46} {} -> {}'.format(
459 | c(i, 172), '/'.join((c(p.folder, 39), p.name)),
460 | c(p.lver, 204), c(p.rver, 70)))
461 | print(c(p.rurl, 245))
462 | if (p.changelog):
463 | print(c(p.changelog.strip(), 245))
464 |
465 | def get_choices(choice: str) -> set:
466 | choices = set()
467 | for c in choice.split(' '):
468 | if not c:
469 | continue
470 | c = c.split('-') * 2 # fallback
471 | choices.update(range(int(c[0]), int(c[1]) + 1))
472 | return choices
473 |
474 | if not args.force:
475 | choices = get_choices(
476 | Prompt('Enter package(s) number you don\'t want to update (e.g. 1 3 4-7):'))
477 | if choices:
478 | packages = [p for i, p in enumerate(packages, 1)
479 | if i not in choices]
480 |
481 | if not packages:
482 | print('Nothing to do')
483 | return []
484 | Title('Updating...')
485 | [p.update() for p in packages]
486 |
487 | return packages
488 |
489 |
490 | def patching(kexts: Path):
491 | Title('Set delay after typing to 50ms')
492 | info = Plist(kexts / 'VoodooI2CHID.kext' / 'Contents' / 'Info.plist')
493 | info.set('IOKitPersonalities>VoodooI2CHIDDevice Precision Touchpad HID Event Driver>QuietTimeAfterTyping', DELAY_AFTER_TYPE)
494 | info.save()
495 | Title('Delete VoodooPS2Mouse.kext and VoodooPS2Trackpad.kext')
496 | for kext in ('VoodooPS2Mouse.kext', 'VoodooPS2Trackpad.kext', 'VoodooInput.kext'):
497 | sh('rm -rf {}'.format(kexts / 'VoodooPS2Controller.kext' /
498 | 'Contents' / 'PlugIns' / kext))
499 | Title('Delete AirPortBrcm4360_Injector')
500 | for kext in ('AirPortBrcm4360_Injector.kext'):
501 | sh('rm -rf {}'.format(kexts / 'AirportBrcmFixup.kext' /
502 | 'Contents' / 'PlugIns' / kext))
503 |
504 |
505 | def replace_with_release(folder: Path, version='latest'):
506 | '''folder is CLOVER/OC
507 | '''
508 | # backup your config
509 | originconfig = folder / 'config.plist'
510 | backupconfig = R(folder.name + '.plist')
511 | originthemes = folder / 'themes'
512 | backupthemes = R('themes')
513 | if originconfig.exists():
514 | sh('mv {} {}'.format(originconfig, backupconfig))
515 | if originthemes.exists():
516 | sh('mv {} {}'.format(originthemes, backupthemes))
517 |
518 | sh('rm -rf {}'.format(folder))
519 | if update_packages([Package(
520 | name=folder.name, folder=root,
521 | url=GITHUB_URL,
522 | description=folder.name + ' ' + GITHUB_DESCRIPTION,
523 | version=version, pattern='.*-' + folder.name)]):
524 | if backupconfig.exists():
525 | originconfig = Plist(originconfig)
526 | Plist(backupconfig).copy(originconfig)
527 | originconfig.save()
528 | if backupthemes.exists():
529 | sh('rm -rf {}'.format(originthemes))
530 | sh('mv {} {}'.format(backupthemes, originthemes))
531 |
532 | sh('rm -f {}'.format(backupconfig))
533 | sh('rm -f {}'.format(backupthemes))
534 |
535 |
536 | def update_acpi(ACPI: Path, folders):
537 | def compile_ssdts(folder: Path):
538 | # compile if .aml not exist
539 | ssdts = []
540 | for dsl in folder.rglob('SSDT-*.dsl'):
541 | aml = Path(dsl.parent, dsl.name.replace('.dsl', '.aml'))
542 | if not aml.exists() or get_timestamp(dsl, 'm') > get_timestamp(aml, 'm'):
543 | ssdts.append((dsl, aml))
544 | iasl = folder / 'iasl'
545 | if not iasl.exists():
546 | Title('Downloading iasl...')
547 | sh('curl -# -R -LOk https://bitbucket.org/RehabMan/acpica/downloads/iasl.zip')
548 | sh('unzip iasl.zip iasl -d {} && rm iasl.zip'.format(iasl.parent))
549 | sh('chmod a+x {}'.format(iasl))
550 | for (dsl, aml) in ssdts:
551 | sh('{} -oa {}'.format(iasl, dsl))
552 | return ssdts
553 |
554 | def get_patches(ACPI: Path):
555 | '''Get patches from dsl files
556 | // Patch: xxx
557 | // Find: ABC
558 | // Replace: DEF
559 | '''
560 | patches = []
561 | for dsl in Path(ACPI).rglob('SSDT-*.dsl'):
562 | with open(dsl, 'r') as f:
563 | while True:
564 | line = f.readline()
565 | if line.startswith('// Patch:'):
566 | patches.append(
567 | {
568 | 'Comment': line[9:].strip(),
569 | 'Find': Plist.data(f.readline()[8:].strip()),
570 | 'Replace': Plist.data(f.readline()[11:].strip())
571 | }
572 | )
573 | elif not line:
574 | break
575 | return patches
576 |
577 | patches = sorted(get_patches(ACPI), key=lambda x: x['Comment'])
578 |
579 | Title('Updating SSDTs')
580 | if ACPI == root: # do a full update
581 | sh('rm -rf {}/*.aml'.format(ACPI))
582 | ssdts = compile_ssdts(ACPI) # [(dsl, aml), ...]
583 | for folder in folders:
584 | if not folder.exists():
585 | continue
586 | patches = get_patches(ACPI)
587 | acpi = folder / mappers[folder.name].get('ACPI', 'ACPI')
588 | sh('rm -rf {}'.format(acpi))
589 | acpi.mkdir(exist_ok=True, parents=True)
590 | sh('cp -p {}/SSDT-*.aml {}'.format(ACPI, acpi))
591 | config = Plist(folder / 'config.plist')
592 | if folder == CLOVER:
593 | for patch in patches:
594 | patch['Disabled'] = False
595 | config.plist['ACPI']['DSDT']['Patches'] = patches
596 | else:
597 | for patch in patches:
598 | patch['Enabled'] = True
599 | config.plist['ACPI']['Patch'] = patches
600 | config.plist['ACPI']['Add'] = [{'Enabled': True, 'Path': aml.name}
601 | for aml in sorted((folder / 'ACPI').glob('SSDT-*.aml'))]
602 | config.save()
603 | print(folder, 'patches updated')
604 |
605 |
606 | def update_oc_info(folder: Path):
607 | '''Updating patches, kexts and drivers info for OpenCore
608 | '''
609 |
610 | config = Plist(folder / 'config.plist')
611 |
612 | config.plist['ACPI']['Add'] = [{'Enabled': True, 'Path': aml.name}
613 | for aml in sorted((folder / 'ACPI').glob('SSDT-*.aml'))]
614 |
615 | kexts = []
616 | kextpath = folder / 'Kexts'
617 | prioritys = KEXT_PIORITY
618 | for kext in sorted(kextpath.rglob('*.kext')):
619 | if kext.name[0] == '.':
620 | continue
621 | kextinfo = {
622 | 'Enabled': True,
623 | 'BundlePath': kext.relative_to(kextpath).as_posix(),
624 | 'PlistPath': 'Contents/Info.plist'
625 | }
626 | executable = '/'.join(('Contents', 'MacOS', kext.name[:-5]))
627 | if Path(kext, executable).exists():
628 | kextinfo['ExecutablePath'] = executable
629 | kexts.append((prioritys.get(kext.name, 100), kextinfo))
630 |
631 | config.plist['Kernel']['Add'] = [x[1] for x in sorted(
632 | kexts, key=lambda x: x[0])]
633 | print('Kexts info updated')
634 |
635 | config.plist['UEFI']['Drivers'] = sorted([
636 | driver.name for driver in (folder / 'Drivers').glob('*.efi')
637 | ])
638 | print('Drivers info updated')
639 |
640 | config.save()
641 | return
642 |
643 |
644 | # Env variable
645 | path = Path(args.p).absolute()
646 | CLOVER, OC = R('CLOVER'), R('OC')
647 | TEMP = R('temp')
648 |
649 | # Args functions
650 |
651 |
652 | def zip_folder(folders):
653 | sh('rm -rf {}/*.aml'.format(R('ACPI')))
654 | sh('mkdir -p Builds')
655 | sh('rm -rf ./Builds/*')
656 | for folder in folders:
657 | # sh('mkdir -p Builds/{}'.format(folder.name))
658 | sh('mkdir -p Builds/{}/EFI'.format(folder.name))
659 | sh('mkdir -p Builds/{}/EFI/{} && cp -R {}/* Builds/{}/EFI/{}/'.format(
660 | folder.name, folder.name, folder.name, folder.name, folder.name))
661 | sh('mkdir -p Builds/{}/EFI/BOOT && cp -R BOOT/{}/* Builds/{}/EFI/BOOT/'.format(
662 | folder.name, folder.name, folder.name))
663 | set_config(folder / 'config.plist',
664 | 'sn={} mlb={} smuuid={} bootarg+-v'.format(DEFAULT_SN, DEFAULT_MLB, DEFAULT_SMUUID).split(' '))
665 | sh('cd {} && zip -r {}-{}-$(date +%y%m%d).zip ./Builds/{} README.md update.py packages.csv {}'.format(
666 | root, BUILD_PREFIX, folder.name, folder.name, ' '.join(SHIPPED_FOLDER)))
667 | # Move to build folder
668 | sh('rm -rf ./Builds/*')
669 | sh('mv {}* ./Builds'.format(BUILD_PREFIX))
670 |
671 |
672 | def post_install():
673 | fix_sleep()
674 | sh('sudo bash ./PostInstall/CombojackFix/install.sh')
675 |
676 |
677 | def gen(folders):
678 | macserial = R('macserial')
679 | if not macserial.exists():
680 | update_packages([
681 | Package(
682 | name='macserial', folder=root,
683 | description='', version='latest',
684 | pattern='.*-mac', url='https://github.com/acidanthera/MacInfoPkg'
685 | )
686 | ])
687 | sn, s, mlb = shout(
688 | '{} -m {} -g -n 1'.format(macserial, SMBIOS_PRODUCT)).split(' ')
689 | uuid = shout('uuidgen')
690 | for folder in folders:
691 | set_config(folder / 'config.plist',
692 | 'sn={} mlb={} smuuid={}'.format(sn, mlb, uuid).split(' '))
693 |
694 |
695 | def self_update(folders):
696 | sh('curl -# -LOk {}/archive/master.zip'.format(GITHUB_URL))
697 | sh('unzip {} -d {}'.format('master.zip', root))
698 | master = R('{}-macos-master'.format(BUILD_PREFIX.lower()))
699 | for folder in folders:
700 | config = folder / 'config.plist'
701 | if config.exists():
702 | masterconfig = Plist(master / folder.name / 'config.plist')
703 | Plist(config).copy(masterconfig)
704 | masterconfig.save()
705 | else:
706 | sh('rm -rf {}'.format(master / folder.name))
707 | sh('cp -pr {}/* {}'.format(master, root))
708 | update_acpi(R('ACPI'), folders)
709 | if R('OC').exists():
710 | update_oc_info(R('OC'))
711 | sh('rm -rf {} {}'.format('master.zip', master))
712 |
713 |
714 | def acpi():
715 | acpi = R('ACPI')
716 | update_acpi(acpi, (CLOVER, OC))
717 |
718 |
719 | def set_conf_plist(folders):
720 | if path.name.endswith('.plist'):
721 | set_config(path, args.set)
722 | else:
723 | for folder in folders:
724 | set_config(folder / 'config.plist', args.set)
725 |
726 |
727 | def default(folders):
728 | keyword = ''
729 | if path.name in ('Kexts', 'kexts', 'Other'):
730 | keyword = 'kext'
731 | elif path.name in ('Drivers', 'drivers', 'UEFI'):
732 | keyword = 'driver'
733 |
734 | for folder in folders:
735 | name = folder.name
736 | mapper = mappers[name]
737 | other = 'CLOVER' if name == 'OC' else 'OC'
738 | packages = []
739 | with open(R('packages.csv'), 'r') as f:
740 | keys = f.readline()[:-1].lower().split(',')
741 | for x in f:
742 | package = Package(**dict(zip(keys, x[:-1].split(','))))
743 | pf = package.folder
744 |
745 | if pf[0] == '#': # remove this
746 | for r in folder.rglob(package.name):
747 | print('Remove {}'.format(r))
748 | sh('rm -rf {}'.format(r))
749 | continue
750 |
751 | if package.name == path.name:
752 | package.folder = path.parent
753 | packages = [package]
754 | break
755 |
756 | if pf.startswith(other) or keyword not in pf.lower():
757 | continue
758 |
759 | if pf.startswith(name):
760 | package.folder = R(pf)
761 | else:
762 | package.folder = folder / mapper.get(pf, pf)
763 |
764 | packages.append(package)
765 |
766 | if packages and Confirm('Do packages update for ' + folder.name):
767 | update_packages(packages)
768 |
769 | patching(folder / mapper.get('Kexts', 'Kexts'))
770 |
771 | if OC in folders:
772 | update_oc_info(OC)
773 |
774 |
775 | if __name__ == '__main__':
776 | folders = []
777 | if path == root:
778 | folders = [folder for folder in (CLOVER, OC) if folder.exists()]
779 | elif path == CLOVER or CLOVER in path.parents:
780 | folders = [CLOVER]
781 | elif path == OC or OC in path.parents:
782 | folders = [OC]
783 |
784 | if args.zip:
785 | zip_folder(folders)
786 | Done()
787 |
788 | if args.gen:
789 | gen(folders)
790 | Done()
791 |
792 | '''
793 | update ACPI, packages.csv and update.py from repo
794 | '''
795 | if args.self:
796 | self_update(folders)
797 | Done()
798 |
799 | if args.acpi:
800 | acpi()
801 | Done()
802 |
803 | '''
804 | post after installed mac os, optimize, fix audio
805 | '''
806 | if args.post:
807 | post_install()
808 | Done()
809 |
810 | '''
811 | Set config.plist
812 | '''
813 | if args.set: # set config
814 | set_conf_plist(folders)
815 | Done()
816 |
817 | '''
818 | Build source into zip file
819 | '''
820 | if args.build: # set config
821 | acpi()
822 | default(folders)
823 | zip_folder(folders)
824 | Done()
825 |
826 | '''
827 | Replace current configuration with release
828 | '''
829 | # if args.release:
830 | # for folder in folders:
831 | # replace_with_release(folder, args.release)
832 | # Done()
833 |
834 | '''
835 | Update themes
836 | '''
837 | if path.name == 'themes':
838 | update_themes(path)
839 | Done()
840 | elif path.parent.name == 'themes':
841 | download_theme(path)
842 | Done()
843 | elif path.name == 'CLOVER' or (path == root and CLOVER.exists()):
844 | update_themes(CLOVER / 'themes')
845 | Done()
846 |
847 | '''
848 | Update packages
849 | '''
850 | default()
851 | Done()
852 |
--------------------------------------------------------------------------------
/OC/config.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | #WARNING - 1
6 | This is just a sample. Do NOT try loading it.
7 | #WARNING - 2
8 | Ensure you understand EVERY field before booting.
9 | #WARNING - 3
10 | In most cases recommended to use Sample.plist
11 | #WARNING - 4
12 | Use SampleCustom.plist only for special cases.
13 | ACPI
14 |
15 | Add
16 |
17 |
18 | Enabled
19 |
20 | Path
21 | SSDT-ALS0.aml
22 |
23 |
24 | Enabled
25 |
26 | Path
27 | SSDT-AWAC.aml
28 |
29 |
30 | Enabled
31 |
32 | Path
33 | SSDT-BCKM.aml
34 |
35 |
36 | Enabled
37 |
38 | Path
39 | SSDT-DGPU.aml
40 |
41 |
42 | Enabled
43 |
44 | Path
45 | SSDT-EXT4-WakeScreen.aml
46 |
47 |
48 | Enabled
49 |
50 | Path
51 | SSDT-PCI0.aml
52 |
53 |
54 | Enabled
55 |
56 | Path
57 | SSDT-PLUG.aml
58 |
59 |
60 | Enabled
61 |
62 | Path
63 | SSDT-TPDX.aml
64 |
65 |
66 | Enabled
67 |
68 | Path
69 | SSDT-USBX.aml
70 |
71 |
72 | Delete
73 |
74 |
75 | All
76 |
77 | Comment
78 | Delete CpuPm
79 | Enabled
80 |
81 | OemTableId
82 |
83 | Q3B1UG0AAAA=
84 |
85 | TableLength
86 | 0
87 | TableSignature
88 |
89 | U1NEVA==
90 |
91 |
92 |
93 | All
94 |
95 | Comment
96 | Delete Cpu0Ist
97 | Enabled
98 |
99 | OemTableId
100 |
101 | Q3B1MElzdAA=
102 |
103 | TableLength
104 | 0
105 | TableSignature
106 |
107 | U1NEVA==
108 |
109 |
110 |
111 | Patch
112 |
113 |
114 | Comment
115 | Rename BRT6 to BRTX
116 | Enabled
117 |
118 | Find
119 |
120 | QlJUNgI=
121 |
122 | Replace
123 |
124 | QlJUWAI=
125 |
126 |
127 |
128 | Comment
129 | Rename USTP to One
130 | Enabled
131 |
132 | Find
133 |
134 | VVNUUBA=
135 |
136 | Replace
137 |
138 | AaOjoxA=
139 |
140 |
141 |
142 | Comment
143 | Rename _WAK to ZWAK
144 | Enabled
145 |
146 | Find
147 |
148 | FDlfV0FLAQ==
149 |
150 | Replace
151 |
152 | FDlaV0FLAQ==
153 |
154 |
155 |
156 | Comment
157 | Rename _PTS to ZPTS
158 | Enabled
159 |
160 | Find
161 |
162 | FEkEX1BUUwE=
163 |
164 | Replace
165 |
166 | FEkEWlBUUwE=
167 |
168 |
169 |
170 | Quirks
171 |
172 | FadtEnableReset
173 |
174 | NormalizeHeaders
175 |
176 | RebaseRegions
177 |
178 | ResetHwSig
179 |
180 | ResetLogoStatus
181 |
182 |
183 |
184 | Booter
185 |
186 | MmioWhitelist
187 |
188 |
189 | Address
190 | 4275159040
191 | Comment
192 | Haswell: SB_RCBA is a 0x4 page memory region, containing SPI_BASE at 0x3800 (SPI_BASE_ADDRESS)
193 | Enabled
194 |
195 |
196 |
197 | Address
198 | 4278190080
199 | Comment
200 | Generic: PCI root is a 0x1000 page memory region used by some firmwares
201 | Enabled
202 |
203 |
204 |
205 | Quirks
206 |
207 | AvoidRuntimeDefrag
208 |
209 | DevirtualiseMmio
210 |
211 | DisableSingleUser
212 |
213 | DisableVariableWrite
214 |
215 | DiscardHibernateMap
216 |
217 | EnableSafeModeSlide
218 |
219 | EnableWriteUnprotector
220 |
221 | ForceExitBootServices
222 |
223 | ProtectMemoryRegions
224 |
225 | ProtectSecureBoot
226 |
227 | ProtectUefiServices
228 |
229 | ProvideCustomSlide
230 |
231 | ProvideMaxSlide
232 | 0
233 | RebuildAppleMemoryMap
234 |
235 | SetupVirtualMap
236 |
237 | SignalAppleOS
238 |
239 | SyncRuntimePermissions
240 |
241 |
242 |
243 | DeviceProperties
244 |
245 | Add
246 |
247 | #PciRoot(0x0)/Pci(0x1d,0x6)/Pci(0x0,0x0)
248 |
249 | AAPL,slot-name
250 | WLAN
251 | brcmfx-country
252 | #a
253 | compatible
254 | pci14e4,43a3
255 | device_type
256 | Airport Extreme
257 | model
258 | DW1820A (BCM4350) 802.11ac Wireless
259 | name
260 | Airport
261 |
262 | PciRoot(0x0)/Pci(0x1f,0x0)
263 |
264 | compatible
265 | pci8086,9cc1
266 | device-id
267 |
268 | nMEA
269 |
270 |
271 | PciRoot(0x0)/Pci(0x1f,0x3)
272 |
273 | alc-delay
274 | 1000
275 | layout-id
276 | 77
277 |
278 | PciRoot(0x0)/Pci(0x2,0x0)
279 |
280 | AAPL,ig-platform-id
281 |
282 | CQClPg==
283 |
284 | dpcd-max-link-rate
285 |
286 | FAAAAA==
287 |
288 | enable-dpcd-max-link-rate-fix
289 |
290 | AQAAAA==
291 |
292 | enable-hdmi20
293 |
294 | AQAAAA==
295 |
296 | enable-lspcon-support
297 |
298 | AQAAAA==
299 |
300 | framebuffer-con1-alldata
301 |
302 | AQUJAAAEAACHAQAA
303 |
304 | framebuffer-con1-enable
305 |
306 | AQAAAA==
307 |
308 | framebuffer-con2-alldata
309 |
310 | AgYJAAAEAACHAQAA
311 |
312 | framebuffer-con2-enable
313 |
314 | AQAAAA==
315 |
316 | framebuffer-con3-alldata
317 |
318 | AwQKAAAIAACHAQAA
319 |
320 | framebuffer-con3-enable
321 |
322 | AQAAAA==
323 |
324 | framebuffer-con3-has-lspcon
325 |
326 | AQAAAA==
327 |
328 | framebuffer-patch-enable
329 |
330 | AQAAAA==
331 |
332 | framebuffer-portcount
333 |
334 | BAAAAA==
335 |
336 | framebuffer-unifiedmem
337 |
338 | AAAAgA==
339 |
340 |
341 |
342 | Delete
343 |
344 |
345 | Kernel
346 |
347 | Add
348 |
349 |
350 | BundlePath
351 | Lilu.kext
352 | Enabled
353 |
354 | ExecutablePath
355 | Contents/MacOS/Lilu
356 | PlistPath
357 | Contents/Info.plist
358 |
359 |
360 | BundlePath
361 | VirtualSMC.kext
362 | Enabled
363 |
364 | ExecutablePath
365 | Contents/MacOS/VirtualSMC
366 | PlistPath
367 | Contents/Info.plist
368 |
369 |
370 | BundlePath
371 | CpuTscSync.kext
372 | Enabled
373 |
374 | ExecutablePath
375 | Contents/MacOS/CpuTscSync
376 | PlistPath
377 | Contents/Info.plist
378 |
379 |
380 | BundlePath
381 | AppleALC.kext
382 | Enabled
383 |
384 | ExecutablePath
385 | Contents/MacOS/AppleALC
386 | PlistPath
387 | Contents/Info.plist
388 |
389 |
390 | BundlePath
391 | CPUFriend.kext
392 | Enabled
393 |
394 | ExecutablePath
395 | Contents/MacOS/CPUFriend
396 | PlistPath
397 | Contents/Info.plist
398 |
399 |
400 | BundlePath
401 | CPUFriendDataProvider.kext
402 | Enabled
403 |
404 | PlistPath
405 | Contents/Info.plist
406 |
407 |
408 | BundlePath
409 | VoodooPS2Controller.kext
410 | Enabled
411 |
412 | ExecutablePath
413 | Contents/MacOS/VoodooPS2Controller
414 | PlistPath
415 | Contents/Info.plist
416 |
417 |
418 | BundlePath
419 | VoodooI2C.kext/Contents/PlugIns/VoodooInput.kext
420 | Enabled
421 |
422 | ExecutablePath
423 | Contents/MacOS/VoodooInput
424 | PlistPath
425 | Contents/Info.plist
426 |
427 |
428 | BundlePath
429 | VoodooI2C.kext/Contents/PlugIns/VoodooGPIO.kext
430 | Enabled
431 |
432 | ExecutablePath
433 | Contents/MacOS/VoodooGPIO
434 | PlistPath
435 | Contents/Info.plist
436 |
437 |
438 | BundlePath
439 | VoodooI2C.kext/Contents/PlugIns/VoodooI2CServices.kext
440 | Enabled
441 |
442 | ExecutablePath
443 | Contents/MacOS/VoodooI2CServices
444 | PlistPath
445 | Contents/Info.plist
446 |
447 |
448 | BundlePath
449 | VoodooI2C.kext
450 | Enabled
451 |
452 | ExecutablePath
453 | Contents/MacOS/VoodooI2C
454 | PlistPath
455 | Contents/Info.plist
456 |
457 |
458 | BundlePath
459 | VoodooI2CHID.kext
460 | Enabled
461 |
462 | ExecutablePath
463 | Contents/MacOS/VoodooI2CHID
464 | PlistPath
465 | Contents/Info.plist
466 |
467 |
468 | BundlePath
469 | AirportBrcmFixup.kext
470 | Enabled
471 |
472 | ExecutablePath
473 | Contents/MacOS/AirportBrcmFixup
474 | PlistPath
475 | Contents/Info.plist
476 |
477 |
478 | BundlePath
479 | AirportBrcmFixup.kext/Contents/PlugIns/AirPortBrcm4360_Injector.kext
480 | Enabled
481 |
482 | PlistPath
483 | Contents/Info.plist
484 |
485 |
486 | BundlePath
487 | AirportBrcmFixup.kext/Contents/PlugIns/AirPortBrcmNIC_Injector.kext
488 | Enabled
489 |
490 | PlistPath
491 | Contents/Info.plist
492 |
493 |
494 | BundlePath
495 | BrcmBluetoothInjector.kext
496 | Enabled
497 |
498 | PlistPath
499 | Contents/Info.plist
500 |
501 |
502 | BundlePath
503 | BrcmFirmwareData.kext
504 | Enabled
505 |
506 | ExecutablePath
507 | Contents/MacOS/BrcmFirmwareData
508 | PlistPath
509 | Contents/Info.plist
510 |
511 |
512 | BundlePath
513 | BrcmPatchRAM3.kext
514 | Enabled
515 |
516 | ExecutablePath
517 | Contents/MacOS/BrcmPatchRAM3
518 | PlistPath
519 | Contents/Info.plist
520 |
521 |
522 | BundlePath
523 | HibernationFixup.kext
524 | Enabled
525 |
526 | ExecutablePath
527 | Contents/MacOS/HibernationFixup
528 | PlistPath
529 | Contents/Info.plist
530 |
531 |
532 | BundlePath
533 | NVMeFix.kext
534 | Enabled
535 |
536 | ExecutablePath
537 | Contents/MacOS/NVMeFix
538 | PlistPath
539 | Contents/Info.plist
540 |
541 |
542 | BundlePath
543 | NoTouchID.kext
544 | Enabled
545 |
546 | ExecutablePath
547 | Contents/MacOS/NoTouchID
548 | PlistPath
549 | Contents/Info.plist
550 |
551 |
552 | BundlePath
553 | SMCBatteryManager.kext
554 | Enabled
555 |
556 | ExecutablePath
557 | Contents/MacOS/SMCBatteryManager
558 | PlistPath
559 | Contents/Info.plist
560 |
561 |
562 | BundlePath
563 | SMCDellSensors.kext
564 | Enabled
565 |
566 | ExecutablePath
567 | Contents/MacOS/SMCDellSensors
568 | PlistPath
569 | Contents/Info.plist
570 |
571 |
572 | BundlePath
573 | SMCLightSensor.kext
574 | Enabled
575 |
576 | ExecutablePath
577 | Contents/MacOS/SMCLightSensor
578 | PlistPath
579 | Contents/Info.plist
580 |
581 |
582 | BundlePath
583 | SMCProcessor.kext
584 | Enabled
585 |
586 | ExecutablePath
587 | Contents/MacOS/SMCProcessor
588 | PlistPath
589 | Contents/Info.plist
590 |
591 |
592 | BundlePath
593 | USBPorts.kext
594 | Enabled
595 |
596 | PlistPath
597 | Contents/Info.plist
598 |
599 |
600 | BundlePath
601 | VerbStub.kext
602 | Enabled
603 |
604 | ExecutablePath
605 | Contents/MacOS/VerbStub
606 | PlistPath
607 | Contents/Info.plist
608 |
609 |
610 | BundlePath
611 | VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2Keyboard.kext
612 | Enabled
613 |
614 | ExecutablePath
615 | Contents/MacOS/VoodooPS2Keyboard
616 | PlistPath
617 | Contents/Info.plist
618 |
619 |
620 | BundlePath
621 | WhateverGreen.kext
622 | Enabled
623 |
624 | ExecutablePath
625 | Contents/MacOS/WhateverGreen
626 | PlistPath
627 | Contents/Info.plist
628 |
629 |
630 | Block
631 |
632 |
633 | Arch
634 | Any
635 | Comment
636 |
637 | Enabled
638 |
639 | Identifier
640 | com.apple.driver.AppleTyMCEDriver
641 | MaxKernel
642 |
643 | MinKernel
644 |
645 |
646 |
647 | Emulate
648 |
649 | Cpuid1Data
650 |
651 |
652 | Cpuid1Mask
653 |
654 |
655 |
656 | Force
657 |
658 | Patch
659 |
660 |
661 | Arch
662 | Any
663 | Base
664 |
665 | Comment
666 |
667 | Count
668 | 0
669 | Enabled
670 |
671 | Find
672 |
673 | cJ0AAA==
674 |
675 | Identifier
676 | com.apple.driver.AppleHDAController
677 | Limit
678 | 0
679 | Mask
680 |
681 |
682 | MaxKernel
683 |
684 | MinKernel
685 |
686 | Replace
687 |
688 | SKMAAA==
689 |
690 | ReplaceMask
691 |
692 |
693 | Skip
694 | 0
695 |
696 |
697 | Quirks
698 |
699 | AppleCpuPmCfgLock
700 |
701 | AppleXcpmCfgLock
702 |
703 | AppleXcpmExtraMsrs
704 |
705 | AppleXcpmForceBoost
706 |
707 | CustomSMBIOSGuid
708 |
709 | DisableIoMapper
710 |
711 | DisableLinkeditJettison
712 |
713 | DisableRtcChecksum
714 |
715 | DummyPowerManagement
716 |
717 | ExternalDiskIcons
718 |
719 | IncreasePciBarSize
720 |
721 | LapicKernelPanic
722 |
723 | PanicNoKextDump
724 |
725 | PowerTimeoutKernelPanic
726 |
727 | ThirdPartyDrives
728 |
729 | XhciPortLimit
730 |
731 |
732 | Scheme
733 |
734 | FuzzyMatch
735 |
736 | KernelArch
737 | Auto
738 | KernelCache
739 | Auto
740 |
741 |
742 | Misc
743 |
744 | BlessOverride
745 |
746 | Boot
747 |
748 | ConsoleAttributes
749 | 0
750 | HibernateMode
751 | Auto
752 | HideAuxiliary
753 |
754 | PickerAttributes
755 | 1
756 | PickerAudioAssist
757 |
758 | PickerMode
759 | Builtin
760 | PollAppleHotKeys
761 |
762 | ShowPicker
763 |
764 | TakeoffDelay
765 | 0
766 | Timeout
767 | 5
768 |
769 | Debug
770 |
771 | AppleDebug
772 |
773 | ApplePanic
774 |
775 | DisableWatchDog
776 |
777 | DisplayDelay
778 | 0
779 | DisplayLevel
780 | 2147483650
781 | SerialInit
782 |
783 | SysReport
784 |
785 | Target
786 | 3
787 |
788 | Entries
789 |
790 |
791 | Arguments
792 |
793 | Auxiliary
794 |
795 | Comment
796 | Not signed for security reasons
797 | Enabled
798 |
799 | Name
800 | CustomOS
801 | Path
802 | PciRoot(0x0)/Pci(0x1,0x1)/Pci(0x0,0x0)/NVMe(0x1,11-22-33-44-55-66-77-88)/HD(1,GPT,00000000-0000-0000-0000-000000000000,0x800,0x64000)/\EFI\BOOT\BOOTX64.EFI
803 |
804 |
805 | Security
806 |
807 | AllowNvramReset
808 |
809 | AllowSetDefault
810 |
811 | ApECID
812 | 0
813 | AuthRestart
814 |
815 | BootProtect
816 | Bootstrap
817 | DmgLoading
818 | Signed
819 | EnablePassword
820 |
821 | ExposeSensitiveData
822 | 6
823 | HaltLevel
824 | 2147483648
825 | PasswordHash
826 |
827 |
828 | PasswordSalt
829 |
830 |
831 | ScanPolicy
832 | 0
833 | SecureBootModel
834 | Default
835 | Vault
836 | Optional
837 |
838 | Tools
839 |
840 |
841 | Arguments
842 |
843 | Auxiliary
844 |
845 | Comment
846 | Not signed for security reasons
847 | Enabled
848 |
849 | Name
850 | UEFI Shell
851 | Path
852 | OpenShell.efi
853 |
854 |
855 | Arguments
856 |
857 | Auxiliary
858 |
859 | Comment
860 | Memory testing utility
861 | Enabled
862 |
863 | Name
864 | memcheck
865 | Path
866 | memcheck/memcheck.efi
867 |
868 |
869 | Arguments
870 | Shutdown
871 | Auxiliary
872 |
873 | Comment
874 | Perform shutdown
875 | Enabled
876 |
877 | Name
878 | Shutdown
879 | Path
880 | ResetSystem.efi
881 |
882 |
883 |
884 | NVRAM
885 |
886 | Add
887 |
888 | 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14
889 |
890 | DefaultBackgroundColor
891 |
892 | AAAAAA==
893 |
894 | UIScale
895 |
896 | AQ==
897 |
898 |
899 | 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102
900 |
901 | rtc-blacklist
902 |
903 |
904 |
905 | 7C436110-AB2A-4BBB-A880-FE41995C9F82
906 |
907 | SystemAudioVolume
908 |
909 | Rg==
910 |
911 | boot-args
912 | debug=0x100 keepsyms=1 agdpmod=vit9696 -v
913 | csr-active-config
914 |
915 | /w8AAA==
916 |
917 | run-efi-updater
918 | No
919 |
920 |
921 | Delete
922 |
923 | 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14
924 |
925 | UIScale
926 | DefaultBackgroundColor
927 |
928 | 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102
929 |
930 | rtc-blacklist
931 |
932 | 7C436110-AB2A-4BBB-A880-FE41995C9F82
933 |
934 | boot-args
935 |
936 |
937 | LegacyEnable
938 |
939 | LegacyOverwrite
940 |
941 | LegacySchema
942 |
943 | 7C436110-AB2A-4BBB-A880-FE41995C9F82
944 |
945 | EFILoginHiDPI
946 | EFIBluetoothDelay
947 | LocationServicesEnabled
948 | SystemAudioVolume
949 | SystemAudioVolumeDB
950 | SystemAudioVolumeSaved
951 | bluetoothActiveControllerInfo
952 | bluetoothInternalControllerInfo
953 | flagstate
954 | fmm-computer-name
955 | nvda_drv
956 | prev-lang:kbd
957 |
958 | 8BE4DF61-93CA-11D2-AA0D-00E098032B8C
959 |
960 | Boot0080
961 | Boot0081
962 | Boot0082
963 | BootNext
964 | BootOrder
965 |
966 |
967 | WriteFlash
968 |
969 |
970 | PlatformInfo
971 |
972 | Automatic
973 |
974 | Generic
975 |
976 | AdviseWindows
977 |
978 | MLB
979 | C02947300QX0000JC
980 | ROM
981 |
982 | iKeHqcrP
983 |
984 | SpoofVendor
985 |
986 | SystemProductName
987 | MacBookPro16,1
988 | SystemSerialNumber
989 | C02ZQDYDLVCG
990 | SystemUUID
991 | 6E167E28-A39C-423F-B244-20152956DD0C
992 |
993 | UpdateDataHub
994 |
995 | UpdateNVRAM
996 |
997 | UpdateSMBIOS
998 |
999 | UpdateSMBIOSMode
1000 | Custom
1001 |
1002 | UEFI
1003 |
1004 | APFS
1005 |
1006 | EnableJumpstart
1007 |
1008 | GlobalConnect
1009 |
1010 | HideVerbose
1011 |
1012 | JumpstartHotPlug
1013 |
1014 | MinDate
1015 | 0
1016 | MinVersion
1017 | 0
1018 |
1019 | Audio
1020 |
1021 | AudioCodec
1022 | 0
1023 | AudioDevice
1024 | PciRoot(0x0)/Pci(0x1b,0x0)
1025 | AudioOut
1026 | 0
1027 | AudioSupport
1028 |
1029 | MinimumVolume
1030 | 20
1031 | PlayChime
1032 |
1033 | VolumeAmplifier
1034 | 0
1035 |
1036 | ConnectDrivers
1037 |
1038 | Drivers
1039 |
1040 | OpenCanopy.efi
1041 | OpenRuntime.efi
1042 | VBoxHfs.efi
1043 |
1044 | Input
1045 |
1046 | KeyFiltering
1047 |
1048 | KeyForgetThreshold
1049 | 5
1050 | KeyMergeThreshold
1051 | 2
1052 | KeySupport
1053 |
1054 | KeySupportMode
1055 | Auto
1056 | KeySwap
1057 |
1058 | PointerSupport
1059 |
1060 | PointerSupportMode
1061 |
1062 | TimerResolution
1063 | 50000
1064 |
1065 | Output
1066 |
1067 | ClearScreenOnModeSwitch
1068 |
1069 | ConsoleMode
1070 |
1071 | DirectGopRendering
1072 |
1073 | IgnoreTextInGraphics
1074 |
1075 | ProvideConsoleGop
1076 |
1077 | ReconnectOnResChange
1078 |
1079 | ReplaceTabWithSpace
1080 |
1081 | Resolution
1082 | Max
1083 | SanitiseClearScreen
1084 |
1085 | TextRenderer
1086 | BuiltinGraphics
1087 | UgaPassThrough
1088 |
1089 |
1090 | ProtocolOverrides
1091 |
1092 | AppleAudio
1093 |
1094 | AppleBootPolicy
1095 |
1096 | AppleDebugLog
1097 |
1098 | AppleEvent
1099 |
1100 | AppleFramebufferInfo
1101 |
1102 | AppleImageConversion
1103 |
1104 | AppleImg4Verification
1105 |
1106 | AppleKeyMap
1107 |
1108 | AppleRtcRam
1109 |
1110 | AppleSecureBoot
1111 |
1112 | AppleSmcIo
1113 |
1114 | AppleUserInterfaceTheme
1115 |
1116 | DataHub
1117 |
1118 | DeviceProperties
1119 |
1120 | FirmwareVolume
1121 |
1122 | HashServices
1123 |
1124 | OSInfo
1125 |
1126 | UnicodeCollation
1127 |
1128 |
1129 | Quirks
1130 |
1131 | DeduplicateBootOrder
1132 |
1133 | ExitBootServicesDelay
1134 | 0
1135 | IgnoreInvalidFlexRatio
1136 |
1137 | ReleaseUsbOwnership
1138 |
1139 | RequestBootVarRouting
1140 |
1141 | TscSyncTimeout
1142 | 0
1143 | UnblockFsConnect
1144 |
1145 |
1146 | ReservedMemory
1147 |
1148 |
1149 | Address
1150 | 268435456
1151 | Comment
1152 | HD3000: IGPU memory corruption errata
1153 | Enabled
1154 |
1155 | Size
1156 | 268435456
1157 |
1158 |
1159 |
1160 |
1161 |
1162 |
--------------------------------------------------------------------------------