diff --git a/.DS_Store b/.DS_Store
index 6355ca1..43bdf0e 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/EFI/.DS_Store b/EFI/.DS_Store
index ddb55a0..c3ae6ea 100644
Binary files a/EFI/.DS_Store and b/EFI/.DS_Store differ
diff --git a/EFI/OC/.DS_Store b/EFI/OC/.DS_Store
index a6865e3..fe884b9 100755
Binary files a/EFI/OC/.DS_Store and b/EFI/OC/.DS_Store differ
diff --git a/EFI/OC/ACPI/SSDT-ALC3.aml b/EFI/OC/ACPI/SSDT-ALC3.aml
new file mode 100755
index 0000000..3ceb88c
Binary files /dev/null and b/EFI/OC/ACPI/SSDT-ALC3.aml differ
diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/Info.plist b/EFI/OC/Kexts/CodecCommander.kext/Contents/Info.plist
new file mode 100755
index 0000000..7011c9a
--- /dev/null
+++ b/EFI/OC/Kexts/CodecCommander.kext/Contents/Info.plist
@@ -0,0 +1,472 @@
+
+
+
+
+ BuildMachineOSBuild
+ 19C57
+ CFBundleDevelopmentRegion
+ English
+ CFBundleExecutable
+ CodecCommander
+ CFBundleGetInfoString
+ 2.7.1, Copyright © 2013-2014 TimeWalker. All rights reserved.
+ CFBundleIdentifier
+ org.tw.CodecCommander
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ CodecCommander
+ CFBundlePackageType
+ KEXT
+ CFBundleShortVersionString
+ 2.7.2
+ CFBundleSignature
+ ????
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CFBundleVersion
+ 2.7.2
+ DTCompiler
+ com.apple.compilers.llvm.clang.1_0
+ DTPlatformBuild
+ 11C29
+ DTPlatformVersion
+ GM
+ DTSDKBuild
+ 19B90
+ DTSDKName
+ macosx10.15
+ DTXcode
+ 1130
+ DTXcodeBuild
+ 11C29
+ IOKitPersonalities
+
+ CodecCommander
+
+ CFBundleIdentifier
+ org.tw.CodecCommander
+ Codec Profile
+
+ 1002
+ Disabled HDMI
+ 10de
+ Disabled HDMI
+ 10ec_0233
+ Realtek ALC283,etc
+ 10ec_0235
+ Realtek ALC283,etc
+ 10ec_0236
+ Realtek ALC283,etc
+ 10ec_0255
+ Realtek ALC283,etc
+ 10ec_0269
+ Realtek ALC269
+ 10ec_0269_HDA_1028_04d9
+ Realtek ALC269VB
+ 10ec_0269_HDA_1458_fa50
+ Realtek ALC269 BRIX
+ 10ec_0282
+ Realtek ALC283,etc
+ 10ec_0283
+ Realtek ALC283,etc
+ 10ec_0292
+ Realtek ALC292
+ 10ec_0668
+ Realtek ALC668
+ 10ec_0892_HDA_1458
+ Realtek ALC892 desktop
+ 10ec_0892_HDA_8086
+ Realtek ALC892 desktop
+ 10ec_0900
+ Realtek ALC1150
+ 8086
+ Disabled HDMI
+ Default
+
+ Check Infinitely
+
+ Check Interval
+ 3000
+ Custom Commands
+
+ Perform Reset on EAPD Fail
+
+ Send Delay
+ 300
+ Sleep Nodes
+
+ Update Nodes
+
+
+ Disabled HDMI
+
+ Check Infinitely
+
+ Disable
+
+ Sleep Nodes
+
+ Update Nodes
+
+
+ Realtek ALC1150
+
+ Custom Commands
+
+
+ Command
+
+ AgUABw==
+
+ Comment
+ 0x20 SET_COEF_INDEX 0x07
+ On Init
+
+ On Sleep
+
+ On Wake
+
+
+
+ Command
+
+ AgR8sA==
+
+ Comment
+ 0x20 SET_PROC_COEF 0x7CB0
+ On Init
+
+ On Sleep
+
+ On Wake
+
+
+
+ Send Delay
+ 100
+ Sleep Nodes
+
+ Update Nodes
+
+
+ Realtek ALC269
+
+ Custom Commands
+
+
+ Command
+
+ AVcIgw==
+
+ Comment
+ 0x15 SET_UNSOLICITED_ENABLE 0x83
+ On Init
+
+ On Sleep
+
+ On Wake
+
+
+
+
+ Realtek ALC269 BRIX
+
+ Custom Commands
+
+
+ Command
+
+ AVcIgw==
+
+ Comment
+ 0x15 SET_UNSOLICITED_ENABLE 0x83
+ On Init
+
+ On Sleep
+
+ On Wake
+
+
+
+
+ Realtek ALC269VB
+
+ Custom Commands
+
+
+ Command
+
+ AhcIgw==
+
+ Comment
+ 0x21 SET_UNSOLICITED_ENABLE 0x83
+ On Init
+
+ On Sleep
+
+ On Wake
+
+
+
+ Send Delay
+ 20
+ Sleep Nodes
+
+
+ Realtek ALC283,etc
+
+ Custom Commands
+
+
+ Command
+
+ AZcHJQ==
+
+ Comment
+ 0x19 SET_PIN_WIDGET_CONTROL 0x25
+ On Init
+
+ On Sleep
+
+ On Wake
+
+
+
+ Command
+
+ AhcIgw==
+
+ Comment
+ 0x21 SET_UNSOLICITED_ENABLE 0x83
+ On Init
+
+ On Sleep
+
+ On Wake
+
+
+
+ Perform Reset
+
+ Send Delay
+ 10
+ Sleep Nodes
+
+
+ Realtek ALC292
+
+ Custom Commands
+
+
+ Command
+ 0x01a70724
+ Comment
+ Node 0x1a - Pin Control (In Enable / VRefEn)
+ On Init
+
+ On Sleep
+
+ On Wake
+
+
+
+ Command
+
+ AVcIgw==
+
+ Comment
+ 0x15 SET_UNSOLICITED_ENABLE 0x83
+ On Init
+
+ On Sleep
+
+ On Wake
+
+
+
+ Perform Reset
+
+
+ Realtek ALC668
+
+ Custom Commands
+
+
+ Command
+
+ AVcIgw==
+
+ Comment
+ 0x15 SET_UNSOLICITED_ENABLE 0x83
+ On Init
+
+ On Sleep
+
+ On Wake
+
+
+
+ Command
+
+ AbcHIA==
+
+ Comment
+ Node 0x1b - Pin Control (In Enable)
+ On Init
+
+ On Sleep
+
+ On Wake
+
+
+
+ Perform Reset
+
+
+ Realtek ALC892 desktop
+
+ Sleep Nodes
+
+ Update Nodes
+
+
+
+ IOClass
+ CodecCommander
+ IOMatchCategory
+ CodecCommander
+ IOProviderClass
+ IOHDACodecFunction
+ IOUserClientClass
+ CodecCommanderClient
+
+ CodecCommanderPowerHook
+
+ CFBundleIdentifier
+ org.tw.CodecCommander
+ Codec Profile
+
+ 1002
+ Disabled HDMI
+ 10de
+ Disabled HDMI
+ 8086
+ Disabled HDMI
+ Disabled HDMI
+
+ Disable
+
+
+
+ IOClass
+ CodecCommanderPowerHook
+ IOMatchCategory
+ CodecCommanderPowerHook
+ IOProviderClass
+ AppleHDADriver
+
+ CodecCommanderProbeInit
+
+ CFBundleIdentifier
+ org.tw.CodecCommander
+ Codec Profile
+
+ Default
+
+ Custom Commands
+
+
+
+ IOClass
+ CodecCommanderProbeInit
+ IOProbeScore
+ 5000
+ IOProviderClass
+ IOHDACodecDevice
+
+ CodecCommanderResidency
+
+ CFBundleIdentifier
+ org.tw.CodecCommander
+ IOClass
+ CodecCommanderResidency
+ IOMatchCategory
+ CodecCommanderResidency
+ IOProviderClass
+ IOResources
+
+ CodecCommanderVoodooHDA
+
+ CFBundleIdentifier
+ org.tw.CodecCommander
+ Codec Profile
+
+ 1002
+ Disabled HDMI
+ 10de
+ Disabled HDMI
+ 8086
+ Disabled HDMI
+ Default
+
+ Check Infinitely
+
+ Perform Reset
+
+ Perform Reset on EAPD Fail
+
+ Perform Reset on External Wake
+
+ Sleep Nodes
+
+ Update Nodes
+
+
+ Disabled HDMI
+
+ Check Infinitely
+
+ Disable
+
+ Sleep Nodes
+
+ Update Nodes
+
+
+
+ IOClass
+ CodecCommander
+ IOMatchCategory
+ CodecCommander
+ IOProviderClass
+ VoodooHDADevice
+ IOUserClientClass
+ CodecCommanderClient
+
+
+ LSMinimumSystemVersion
+ 10.6
+ NSHumanReadableCopyright
+ Copyright © 2013-2014 TimeWalker/RehabMan. All rights reserved.
+ OSBundleLibraries
+
+ com.apple.iokit.IOACPIFamily
+ 1.0d1
+ com.apple.iokit.IOAudioFamily
+ 1.1
+ com.apple.iokit.IOPCIFamily
+ 1.0.0b1
+ com.apple.kpi.bsd
+ 9.0.0
+ com.apple.kpi.iokit
+ 9.0.0
+ com.apple.kpi.libkern
+ 9.0.0
+
+ Source Code
+ https://github.com/RehabMan/EAPD-Codec-Commander
+
+
diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/MacOS/CodecCommander b/EFI/OC/Kexts/CodecCommander.kext/Contents/MacOS/CodecCommander
new file mode 100755
index 0000000..fca0f1f
Binary files /dev/null and b/EFI/OC/Kexts/CodecCommander.kext/Contents/MacOS/CodecCommander differ
diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC1220.dsl b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC1220.dsl
new file mode 100755
index 0000000..7a7ec80
--- /dev/null
+++ b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC1220.dsl
@@ -0,0 +1,38 @@
+// CodecCommander configuration for ALC1220
+// provided by daliansky @github
+
+DefinitionBlock ("", "SSDT", 1, "hack", "_ALC1220", 0)
+{
+ External(_SB.PCI0.HDEF, DeviceObj)
+ Name(_SB.PCI0.HDEF.RMCF, Package()
+ {
+ "CodecCommander", Package()
+ {
+ "Custom Commands", Package()
+ {
+ Package(){}, // signifies Array instead of Dictionary
+ Package()
+ {
+ // 0x19 SET_PIN_WIDGET_CONTROL 0x24
+ "Command", Buffer() { 0x01, 0x97, 0x07, 0x24 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">y",
+ },
+ Package()
+ {
+ // 0x1B SET_UNSOLICITED_ENABLE 0x83
+ "Command", Buffer() { 0x01, 0xB7, 0x08, 0x83 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">y",
+ },
+ },
+ "Perform Reset", ">y",
+ //"Perform Reset on External Wake", ">n", // enable if using AppleALC
+ "Send Delay", 10,
+ "Sleep Nodes", ">n",
+ },
+ })
+}
+//EOF
diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC256-insanelydeepak.dsl b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC256-insanelydeepak.dsl
new file mode 100755
index 0000000..cb59eca
--- /dev/null
+++ b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC256-insanelydeepak.dsl
@@ -0,0 +1,46 @@
+// CodecCommander configuration for ALC256 to fix various issue
+// repo: https://github.com/insanelydeepak/cloverHDA-for-Mac-OS-Sierra-10.12
+
+DefinitionBlock ("", "SSDT", 1, "hack", "_ALC256i", 0)
+{
+ External(_SB.PCI0.HDEF, DeviceObj)
+ Name(_SB.PCI0.HDEF.RMCF, Package()
+ {
+ "CodecCommander", Package()
+ {
+ "Custom Commands", Package()
+ {
+ Package(){}, // signifies Array instead of Dictionary
+ Package()
+ {
+ // 0x19 SET_PIN_WIDGET_CONTROL 0x24
+ "Command", Buffer() { 0x01, 0x97, 0x07, 0x24 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">y",
+ },
+ Package()
+ {
+ // 0x1A SET_PIN_WIDGET_CONTROL 0x20
+ "Command", Buffer() { 0x01, 0xA7, 0x07, 0x20 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">y",
+ },
+ Package()
+ {
+ // 0x21 SET_UNSOLICITED_ENABLE 0x83
+ "Command", Buffer() { 0x02, 0x17, 0x08, 0x83 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">y",
+ }
+ },
+ "Perform Reset", ">n",
+ //"Perform Reset on External Wake", ">n", // enable if using AppleALC
+ "Send Delay", 10,
+ "Sleep Nodes", ">n",
+ },
+ })
+}
+//EOF
diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC256-vbourachot.dsl b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC256-vbourachot.dsl
new file mode 100755
index 0000000..f7907ab
--- /dev/null
+++ b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC256-vbourachot.dsl
@@ -0,0 +1,54 @@
+// CodecCommander configuration for ALC256
+// From: https://github.com/vbourachot/XPS13-9350-OSX/blob/master/ssdt/SSDT-ALC256.dsl
+
+DefinitionBlock ("", "SSDT", 1, "hack", "_ALC256v", 0x00003000)
+{
+ External(_SB.PCI0.HDEF, DeviceObj)
+ Name(_SB.PCI0.HDEF.RMCF, Package()
+ {
+ "CodecCommander", Package()
+ {
+ "Custom Commands", Package()
+ {
+ Package(){}, // signifies Array instead of Dictionary
+ Package()
+ {
+ // 0x19 SET_PIN_WIDGET_CONTROL 0x25
+ "Command", Buffer() { 0x01, 0x97, 0x07, 0x25 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">y",
+ },
+ Package()
+ {
+ // 0x21 SET_UNSOLICITED_ENABLE 0x83
+ "Command", Buffer() { 0x02, 0x17, 0x08, 0x83 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">y",
+ },
+ Package()
+ {
+ // 0x20 SET_COEF_INDEX 0x36
+ "Command", Buffer() { 0x02, 0x05, 0x00, 0x36 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">y",
+ },
+ Package()
+ {
+ // 0x20 SET_PROC_COEF 0x1737
+ "Command", Buffer() { 0x02, 0x04, 0x17, 0x37 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">y",
+ },
+ },
+ "Perform Reset", ">n",
+ //"Perform Reset on External Wake", ">n", // enable if using AppleALC
+ "Send Delay", 10,
+ "Sleep Nodes", ">n",
+ },
+ })
+}
+//EOF
diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC280.dsl b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC280.dsl
new file mode 100755
index 0000000..cf5a2f3
--- /dev/null
+++ b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC280.dsl
@@ -0,0 +1,45 @@
+// This SSDT demonstrates a custom configuration for ALC280.
+
+// If you had a codec that needed the same configuration, you could
+// load this SSDT in order to implement it without modifying the kext.
+// It will override the defaults specfied by the CodecCommander Info.plist
+
+// Customize to suit your needs.
+
+// This data provided by @zirkaiva.
+// See here: http://www.tonymacx86.com/el-capitan-laptop-guides/175935-guide-lenovo-t430-el-capitan-34.html#post1239765
+
+DefinitionBlock ("", "SSDT", 1, "hack", "_ALC280", 0)
+{
+ External(_SB.PCI0.HDEF, DeviceObj)
+ Name(_SB.PCI0.HDEF.RMCF, Package()
+ {
+ "CodecCommander", Package()
+ {
+ "Custom Commands", Package()
+ {
+ Package(){}, // signifies Array instead of Dictionary
+ Package()
+ {
+ // 0x15 SET_UNSOLICITED_ENABLE 0x83
+ "Command", Buffer() { 0x01, 0x57, 0x08, 0x83 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">y",
+ },
+ Package()
+ {
+ // 0x1a SET_PIN_WIDGET_CONTROL 0x24
+ // Node 0x1a - Pin Control (In Enable / VRefEn)
+ "Command", Buffer() { 0x01, 0xa7, 0x07, 0x24 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">y",
+ },
+ },
+ //"Perform Reset", ">n", // enable if using AppleALC
+ //"Perform Reset on External Wake", ">n", // enable if using AppleALC
+ },
+ })
+}
+//EOF
diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC283.dsl b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC283.dsl
new file mode 100755
index 0000000..0d49998
--- /dev/null
+++ b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC283.dsl
@@ -0,0 +1,44 @@
+// This SSDT demonstrates a custom configuration for ALC283.
+// It is the same data that is currently in the Info.plist
+
+// If you had a codec that needed the same configuration, you could
+// load this SSDT in order to implement it without modifying the kext.
+// It will override the defaults specfied by the CodecCommander Info.plist
+
+// Customize to suit your needs.
+
+DefinitionBlock ("", "SSDT", 1, "hack", "_ALC283", 0)
+{
+ External(_SB.PCI0.HDEF, DeviceObj)
+ Name(_SB.PCI0.HDEF.RMCF, Package()
+ {
+ "CodecCommander", Package()
+ {
+ "Custom Commands", Package()
+ {
+ Package(){}, // signifies Array instead of Dictionary
+ Package()
+ {
+ // 0x19 SET_PIN_WIDGET_CONTROL 0x25
+ "Command", Buffer() { 0x01, 0x97, 0x07, 0x25 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">y",
+ },
+ Package()
+ {
+ // 0x21 SET_UNSOLICITED_ENABLE 0x83
+ "Command", Buffer() { 0x02, 0x17, 0x08, 0x83 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">y",
+ },
+ },
+ "Perform Reset", ">n",
+ //"Perform Reset on External Wake", ">n", // enable if using AppleALC
+ "Send Delay", 10,
+ "Sleep Nodes", ">n",
+ },
+ })
+}
+//EOF
diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC298.dsl b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC298.dsl
new file mode 100755
index 0000000..996187f
--- /dev/null
+++ b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC298.dsl
@@ -0,0 +1,52 @@
+// This SSDT demonstrates a custom configuration for ALC298.
+// It is the same data that is currently in the Info.plist
+
+// If you had a codec that needed the same configuration, you could
+// load this SSDT in order to implement it without modifying the kext.
+// It will override the defaults specfied by the CodecCommander Info.plist
+
+// Customize to suit your needs.
+
+DefinitionBlock ("", "SSDT", 1, "hack", "_ALC298", 0)
+{
+ External(_SB.PCI0.HDEF, DeviceObj)
+ Name(_SB.PCI0.HDEF.RMCF, Package()
+ {
+ "CodecCommander", Package()
+ {
+ "Custom Commands", Package()
+ {
+ Package(){}, // signifies Array instead of Dictionary
+ Package()
+ {
+ // 0x18 SET_PIN_WIDGET_CONTROL 0x22
+ "Command", Buffer() { 0x01, 0x87, 0x07, 0x22 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">y",
+ },
+ Package()
+ {
+ // 0x1a SET_PIN_WIDGET_CONTROL 0x23
+ "Command", Buffer() { 0x01, 0xa7, 0x07, 0x23 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">y",
+ },
+ Package()
+ {
+ // 0x21 SET_UNSOLICITED_ENABLE 0x83
+ "Command", Buffer() { 0x02, 0x17, 0x08, 0x83 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">y",
+ },
+ },
+ "Perform Reset", ">n",
+ //"Perform Reset on External Wake", ">n", // enable if using AppleALC
+ "Send Delay", 10,
+ "Sleep Nodes", ">n",
+ },
+ })
+}
+//EOF
diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC298a.dsl b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC298a.dsl
new file mode 100755
index 0000000..1c30b37
--- /dev/null
+++ b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC298a.dsl
@@ -0,0 +1,61 @@
+// This SSDT demonstrates a custom configuration for ALC298.
+//
+// It is reportedly needed to solve problems of jack sense and
+// distorted sound with headphone.
+//
+// See here for details:
+// http://www.tonymacx86.com/threads/alc3266-10ec0298-files-for-applehdapatcher.191231/page-5#post-1323829
+//
+
+// Customize to suit your needs.
+// Compile to SSDT-ALC298.aml, place in ACPI/patched. Make sure SortedOrder includes it.
+
+DefinitionBlock ("", "SSDT", 1, "hack", "_ALC298a", 0)
+{
+ External(_SB.PCI0.HDEF, DeviceObj)
+ Name(_SB.PCI0.HDEF.RMCF, Package()
+ {
+ "CodecCommander", Package()
+ {
+ "Custom Commands", Package()
+ {
+ Package(){}, // signifies Array instead of Dictionary
+ Package()
+ {
+ // 0x01 SET_CODEC_RESET 0x00
+ "Command", Buffer() { 0x00, 0x17, 0xff, 0x00 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">n",
+ },
+ Package()
+ {
+ // 0x01 SET_CODEC_RESET 0x00
+ "Command", Buffer() { 0x00, 0x17, 0xff, 0x00 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">n",
+ },
+ Package()
+ {
+ // 0x1 SET_POWER_STATE 0x03
+ "Command", Buffer() { 0x00, 0x17, 0x05, 0x03 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">n",
+ },
+ Package()
+ {
+ // 0x21 SET_UNSOLICITED_ENABLE 0x83
+ "Command", Buffer() { 0x02, 0x17, 0x08, 0x83 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">y",
+ },
+ },
+ //"Perform Reset", ">n", // enable if using AppleALC
+ //"Perform Reset on External Wake", ">n", // enable if using AppleALC
+ },
+ })
+}
+//EOF
diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC668.dsl b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC668.dsl
new file mode 100755
index 0000000..cd9a256
--- /dev/null
+++ b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-ALC668.dsl
@@ -0,0 +1,63 @@
+// This SSDT demonstrates a custom configuration for ALC668.
+//
+// It is reportedly needed to solve a problem with booting
+// OS X after Windows.
+//
+// See here for details:
+// http://www.tonymacx86.com/el-capitan-laptop-support/185808-alc668-no-sound-after-reboot-windows-10-a.html#post1201248
+//
+
+// Customize to suit your needs.
+// Compile to SSDT-ALC668.aml, place in ACPI/patched. Make sure SortedOrder includes it.
+
+DefinitionBlock ("", "SSDT", 1, "hack", "_ALC668", 0)
+{
+ External(_SB.PCI0.HDEF, DeviceObj)
+ Name(_SB.PCI0.HDEF.RMCF, Package()
+ {
+ "CodecCommander", Package()
+ {
+ "Custom Commands", Package()
+ {
+ Package(){}, // signifies Array instead of Dictionary
+ // correcting headphones (this is in the Info.plist too)
+ Package()
+ {
+ // 0x15 SET_UNSOLICITED_ENABLE 0x83
+ "Command", Buffer() { 0x01, 0x57, 0x08, 0x83 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">y",
+ },
+ Package()
+ {
+ // Node 0x1b - Pin Control (In Enable)
+ "Command", Buffer() { 0x01, 0xb7, 0x07, 0x20 },
+ "On Init", ">n",
+ "On Sleep", ">n",
+ "On Wake", ">y",
+ },
+ // correcting audio after Windows (not in current Info.plist)
+ Package()
+ {
+ // 0x20 SET_COEF_INDEX 0x07
+ "Command", Buffer() { 0x02, 0x05, 0x00, 0x07 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">n",
+ },
+ Package()
+ {
+ // 0x20 SET_PROC_COEF 0x0F80
+ "Command", Buffer() { 0x02, 0x04, 0x0f, 0x80 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">n",
+ },
+ },
+ //"Perform Reset", ">n", // enable if using AppleALC
+ //"Perform Reset on External Wake", ">n", // enable if using AppleALC
+ },
+ })
+}
+//EOF
diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-AppleALC.dsl b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-AppleALC.dsl
new file mode 100755
index 0000000..1a98ae2
--- /dev/null
+++ b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-AppleALC.dsl
@@ -0,0 +1,23 @@
+// This SSDT demonstrates a custom configuration with certain features
+// disabled when using AppleALC.kext.
+// AppleALC.kext has some extra patches for AppleHDA that interfere with these
+// features breaking audio after wake from sleep.
+//
+// Customize to suit your needs.
+//
+// As of CodecCommander v2.7.1, CodecCommander detects AppleALC for setting the default
+// of these two options false.
+
+DefinitionBlock ("", "SSDT", 1, "hack", "_CCALC", 0)
+{
+ External(_SB.PCI0.HDEF, DeviceObj)
+ Name(_SB.PCI0.HDEF.RMCF, Package()
+ {
+ "CodecCommander", Package()
+ {
+ "Perform Reset", ">n",
+ "Perform Reset on External Wake", ">n",
+ },
+ })
+}
+//EOF
diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-CX20752.dsl b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-CX20752.dsl
new file mode 100755
index 0000000..2248d4d
--- /dev/null
+++ b/EFI/OC/Kexts/CodecCommander.kext/Contents/Resources/Samples/SSDT-CX20752.dsl
@@ -0,0 +1,43 @@
+// SSDT to correct some problems headphone/mic on CX20752.
+//
+// Note: For use with the Anti-pop patches (seee RehabMan NUC repo)
+//
+// created by nayeweiyang/XuWang
+
+DefinitionBlock ("", "SSDT", 1, "hack", "_CX20752", 0)
+{
+ External(_SB.PCI0.HDEF, DeviceObj)
+
+ Name(_SB.PCI0.HDEF.RMCF, Package()
+ {
+ "CodecCommander", Package()
+ {
+ "Custom Commands", Package()
+ {
+ Package(){}, // signifies Array instead of Dictionary
+ Package()
+ {
+ // 0x19 SET_PIN_WIDGET_CONTROL 0x24
+ "Command", Buffer() { 0x01, 0x97, 0x07, 0x24 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">y",
+ },
+ Package()
+ {
+ // 0x1a SET_PIN_WIDGET_CONTROL 0x24
+ "Command", Buffer() { 0x01, 0xa7, 0x07, 0x24 },
+ "On Init", ">y",
+ "On Sleep", ">n",
+ "On Wake", ">y",
+ },
+
+ },
+ "Perform Reset", ">n",
+ "Perform Reset on External Wake", ">n",
+ },
+ })
+}
+//EOF
+
+
diff --git a/EFI/OC/Kexts/CodecCommander.kext/Contents/_CodeSignature/CodeResources b/EFI/OC/Kexts/CodecCommander.kext/Contents/_CodeSignature/CodeResources
new file mode 100755
index 0000000..b898e66
--- /dev/null
+++ b/EFI/OC/Kexts/CodecCommander.kext/Contents/_CodeSignature/CodeResources
@@ -0,0 +1,267 @@
+
+
+
+
+ files
+
+ Resources/Samples/SSDT-ALC1220.dsl
+
+ EIES+l9rMGoeBieSkUNddrD5bWo=
+
+ Resources/Samples/SSDT-ALC256-insanelydeepak.dsl
+
+ VZkOsssBJ6T1/BsvNJsxIgN6sZY=
+
+ Resources/Samples/SSDT-ALC256-vbourachot.dsl
+
+ 4Kgmc2FJT1dIg9N7ykidCcuhPVI=
+
+ Resources/Samples/SSDT-ALC280.dsl
+
+ I0LQ4c40vPqO7KQyWKJ2MnsfiIU=
+
+ Resources/Samples/SSDT-ALC283.dsl
+
+ 3C5d98Yawh/48mwCelHDHJ4GINQ=
+
+ Resources/Samples/SSDT-ALC298.dsl
+
+ VKDMTH2YOrg+Y+z3VS9OHrPS0Fk=
+
+ Resources/Samples/SSDT-ALC298a.dsl
+
+ uZMK4TFxYyvCnF64GKMCkmIj+D0=
+
+ Resources/Samples/SSDT-ALC668.dsl
+
+ pxe3Mfkqdxto0CYYP1QQNnR/yYw=
+
+ Resources/Samples/SSDT-AppleALC.dsl
+
+ VPP+WvDCKf8Tw2HAbI6mGSApZec=
+
+ Resources/Samples/SSDT-CX20752.dsl
+
+ 2Dc4I1jWG0/CmJeTVaO3ci4K3B0=
+
+
+ files2
+
+ Resources/Samples/SSDT-ALC1220.dsl
+
+ hash
+
+ EIES+l9rMGoeBieSkUNddrD5bWo=
+
+ hash2
+
+ jqBgCuISRIgDEohB6eJL6S35hXiT4avRWCIQkoG/7jE=
+
+
+ Resources/Samples/SSDT-ALC256-insanelydeepak.dsl
+
+ hash
+
+ VZkOsssBJ6T1/BsvNJsxIgN6sZY=
+
+ hash2
+
+ sfT2TRn4QDdpacpab2BQO0EUosUxxjYP+H67YVrFxSM=
+
+
+ Resources/Samples/SSDT-ALC256-vbourachot.dsl
+
+ hash
+
+ 4Kgmc2FJT1dIg9N7ykidCcuhPVI=
+
+ hash2
+
+ OJ1gIMJ54LeFpxyxQ4BNebpxAspZWngZsLotyXRav1E=
+
+
+ Resources/Samples/SSDT-ALC280.dsl
+
+ hash
+
+ I0LQ4c40vPqO7KQyWKJ2MnsfiIU=
+
+ hash2
+
+ VXWVuyccAWvOYtVBGFby4wtGs8w3rgemCSrDsfU9Y4w=
+
+
+ Resources/Samples/SSDT-ALC283.dsl
+
+ hash
+
+ 3C5d98Yawh/48mwCelHDHJ4GINQ=
+
+ hash2
+
+ wrBGgW4l9PJROiSBO70+4LDlxtKuTClEHurWIKbAqWw=
+
+
+ Resources/Samples/SSDT-ALC298.dsl
+
+ hash
+
+ VKDMTH2YOrg+Y+z3VS9OHrPS0Fk=
+
+ hash2
+
+ 4wJ+O/VDersVdLXH6wdYyd8Giyj5sp39FYFacOMgWMo=
+
+
+ Resources/Samples/SSDT-ALC298a.dsl
+
+ hash
+
+ uZMK4TFxYyvCnF64GKMCkmIj+D0=
+
+ hash2
+
+ 35qUmgVJmTFC09kAKboui1WfOeWpx8EZiuw0Ak11KqM=
+
+
+ Resources/Samples/SSDT-ALC668.dsl
+
+ hash
+
+ pxe3Mfkqdxto0CYYP1QQNnR/yYw=
+
+ hash2
+
+ LyyMqlOlDDUkN/V9UfdYEo4NdzbruFwX9AtjqfzikHw=
+
+
+ Resources/Samples/SSDT-AppleALC.dsl
+
+ hash
+
+ VPP+WvDCKf8Tw2HAbI6mGSApZec=
+
+ hash2
+
+ Sqi40XOwc8QaXlqUngUwxY66utwbKX2zXrdXprwkCoA=
+
+
+ Resources/Samples/SSDT-CX20752.dsl
+
+ hash
+
+ 2Dc4I1jWG0/CmJeTVaO3ci4K3B0=
+
+ hash2
+
+ sDRLVLSx27tOfnytpsAD7S23OOmox6NE4EeMafkvxzk=
+
+
+
+ rules
+
+ ^Resources/
+
+ ^Resources/.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^Resources/.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Resources/Base\.lproj/
+
+ weight
+ 1010
+
+ ^version.plist$
+
+
+ rules2
+
+ .*\.dSYM($|/)
+
+ weight
+ 11
+
+ ^(.*/)?\.DS_Store$
+
+ omit
+
+ weight
+ 2000
+
+ ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/
+
+ nested
+
+ weight
+ 10
+
+ ^.*
+
+ ^Info\.plist$
+
+ omit
+
+ weight
+ 20
+
+ ^PkgInfo$
+
+ omit
+
+ weight
+ 20
+
+ ^Resources/
+
+ weight
+ 20
+
+ ^Resources/.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^Resources/.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Resources/Base\.lproj/
+
+ weight
+ 1010
+
+ ^[^/]+$
+
+ nested
+
+ weight
+ 10
+
+ ^embedded\.provisionprofile$
+
+ weight
+ 20
+
+ ^version\.plist$
+
+ weight
+ 20
+
+
+
+
diff --git a/EFI/OC/config.plist b/EFI/OC/config.plist
index 6d9ffde..72e4f0f 100755
--- a/EFI/OC/config.plist
+++ b/EFI/OC/config.plist
@@ -16,11 +16,11 @@
Comment
- The missing parts
+ Sound card IRQ patch
Enabled
Path
- SSDT-TEMP.aml
+ SSDT-HPET-IPIC.aml
Comment
@@ -30,14 +30,6 @@
Path
SSDT-VPS2.aml
-
- Comment
- Sensor
- Enabled
-
- Path
- SSDT-ALS0.aml
-
Comment
Graphics
@@ -48,11 +40,11 @@
Comment
- Sound card IRQ patch
+ Sensor
Enabled
Path
- SSDT-HPET-IPIC.aml
+ SSDT-ALS0.aml
Comment
@@ -70,6 +62,22 @@
Path
SSDT-SMBU.aml
+
+ Comment
+ The missing parts
+ Enabled
+
+ Path
+ SSDT-TEMP.aml
+
+
+ Comment
+ USB
+ Enabled
+
+ Path
+ SSDT-USBX.aml
+
Comment
delete EH01
@@ -84,7 +92,7 @@
Enabled
Path
- SSDT-USBX.aml
+ SSDT-ALC3.aml
Delete
@@ -1491,6 +1499,22 @@
PlistPath
Contents/Info.plist
+
+ BundlePath
+ CodecCommander.kext
+ Comment
+
+ Enabled
+
+ ExecutablePath
+ Contents/MacOS/CodecCommander
+ MaxKernel
+
+ MinKernel
+
+ PlistPath
+ Contents/Info.plist
+
BundlePath
CPUFriend.kext