- Joined
- Jul 4, 2018
- Messages
- 52
- Motherboard
- Yoga 920-13IKB
- CPU
- i7-8550u
- Graphics
- UHD620
Hardware
CPU: I7-8550u
GPU: UHD620
RAM: 16GB 2400MHz DDR4
SSD: I don't remember which Samsung SSD is in here but it is fully compatible with no extra work
Wi-Fi/Bluetooth Card: Has an incompatible Qualcomm card. I replaced it with the Lenovo BCM94352Z. Either this laptop has no whitelist, or that specific card is in the whitelist; however, the service manual does not say that this card is compatible so I am assuming there is no whitelist.
Audio: ALC298
4k screen
What Doesn't Work
Fingerprint Sensor
Many of the function buttons (paper display, refresh, airplane mode, lock, switch display, disable camera only sometimes works)
Graphical glitches in games if you pull the mouse to the top or bottom and pull up the dock or menu bar
The USB3 on the USB-C ports is on the ThunderBolt controller, so you will only get hot plug if whatever adapter you plug in only gets USB2, or something else (HDMI, DVI)
I haven't tested it with this version, but on an older version USB-C Displayport/HDMI wouldn't get audio
Sleep doesn't actually put the computer to sleep. The screen turns off and it goes into a lower power mode but the indicator light shows that it is still on
Trackpad never works after an update and requires one or two reboots
Maybe other things I haven't tested
What Works
Pretty much everything else I've tested
INSTALL
Follow RehabMan's guide for installation, you will need a usb mouse.
Pre-Catalina Beta 5 (including Mojave and High Sierra), a different config was needed to boot the installer (config - updates.plist). For Beta 5 and 6 the regular config file has worked better.
ApfsDriverLoader
AppleImageCodec
AppleKeyAggregator
AppleKeyFeeder
AppleUITheme
AudioDxe
DataHubDxe
EmuVariableUefi
EnglishDxe
Fat
FirmwareVolume
FSInject
HashServiceFix
NvmExpressDxe
OsxAptioFixDrv
PartitionDxe
SMCHelper
UsbKbDxe
UsbMouseDxe
VBoxHfs
AppleImageCodec
AppleKeyAggregator
AppleKeyFeeder
AppleUITheme
AudioDxe
DataHubDxe
EmuVariableUefi
EnglishDxe
Fat
FirmwareVolume
FSInject
HashServiceFix
NvmExpressDxe
OsxAptioFixDrv
PartitionDxe
SMCHelper
UsbKbDxe
UsbMouseDxe
VBoxHfs
ACPIBatteryManager
AppleAlc
BrcmBluetoothInjector (Get the three Broadcom kexts from: https://insanelymac.com/forum/topic/339175-brcmpatchram2-for-1015-catalina-broadcom-bluetooth-firmware-upload/)
BrcmFirmwareData
BrcmPatchRAM2
FakeSMC (and all the other kexts that come with it)
Lilu
USBInjectAll
VoodooI2C
VoodooI2CHID
VoodooPS2Controller
WhateverGreen
AppleAlc
BrcmBluetoothInjector (Get the three Broadcom kexts from: https://insanelymac.com/forum/topic/339175-brcmpatchram2-for-1015-catalina-broadcom-bluetooth-firmware-upload/)
BrcmFirmwareData
BrcmPatchRAM2
FakeSMC (and all the other kexts that come with it)
Lilu
USBInjectAll
VoodooI2C
VoodooI2CHID
VoodooPS2Controller
WhateverGreen
POST-INSTALL
Follow this guide for extracting your DSDT
Apply the following patches to your DSDT:
GPIO Controller Enable and Windows 10 Patch from VoodooI2C source
OS Check Fix (Windows 10), _WAK Arg0 v2 from RehabMan's source
into method label B1B2 remove_entry;
into definitionblock code_regex . insert
begin
Method (B1B2, 2, NotSerialized) { Return(Or(Arg0, ShiftLeft(Arg1, 8))) }\n
end;
into method label B1B4 remove_entry;
into definitionblock code_regex . insert
begin
Method (B1B4, 4, NotSerialized)\n
{\n
Store(Arg3, Local0)\n
Or(Arg2, ShiftLeft(Local0, 8), Local0)\n
Or(Arg1, ShiftLeft(Local0, 8), Local0)\n
Or(Arg0, ShiftLeft(Local0, 8), Local0)\n
Return(Local0)\n
}\n
end;
into method label RE1B parent_label H_EC remove_entry;
into method label RECB parent_label H_EC remove_entry;
into device label H_EC insert
begin
Method (RE1B, 1, NotSerialized)\n
{\n
OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n
Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n
Return(BYTE)\n
}\n
Method (RECB, 2, Serialized)\n
// Arg0 - offset in bytes from zero-based EC\n
// Arg1 - size of buffer in bits\n
{\n
ShiftRight(Add(Arg1,7), 3, Arg1)\n
Name(TEMP, Buffer(Arg1) { })\n
Add(Arg0, Arg1, Arg1)\n
Store(0, Local0)\n
While (LLess(Arg0, Arg1))\n
{\n
Store(RE1B(Arg0), Index(TEMP, Local0))\n
Increment(Arg0)\n
Increment(Local0)\n
}\n
Return(TEMP)\n
}\n
end;
into device label H_EC code_regex B1TM,\s+16, replace_matched begin TM10,8,TM11,8, end;
into device label H_EC code_regex B1VT,\s+16, replace_matched begin VT10,8,VT11,8, end;
into device label H_EC code_regex B1CR,\s+16, replace_matched begin CR10,8,CR11,8, end;
into device label H_EC code_regex B1RC,\s+16, replace_matched begin RC10,8,RC11,8, end;
into device label H_EC code_regex B1FC,\s+16, replace_matched begin FC10,8,FC11,8, end;
into device label H_EC code_regex B1DC,\s+16, replace_matched begin DC10,8,DC11,8, end;
into device label H_EC code_regex B1DV,\s+16, replace_matched begin DV10,8,DV11,8, end;
into device label H_EC code_regex BDCW,\s+16, replace_matched begin DCW0,8,DCW1,8, end;
into device label H_EC code_regex BDCL,\s+16, replace_matched begin DCL0,8,DCL1,8, end;
into device label H_EC code_regex B1DT,\s+16, replace_matched begin DT10,8,DT11,8, end;
into device label H_EC code_regex B2DT,\s+16, replace_matched begin DT20,8,DT21,8, end;
into device label H_EC code_regex B1CY,\s+16, replace_matched begin CY10,8,CY11,8, end;
into device label H_EC code_regex BCRT,\s+16, replace_matched begin CRT0,8,CRT1,8, end;
into device label H_EC code_regex B1CH,\s+32 replace_matched begin CH10,8,CH11,8,CH12,8,CH13,8 end;
into device label H_EC code_regex (BARL,)\s+(64) replace_matched begin BARZ,%2,//0x06 end;
into device label H_EC code_regex (BARH,)\s+(64) replace_matched begin BARY,%2,//0x0E end;
into device label H_EC code_regex (B1MA,)\s+(64) replace_matched begin B1MX,%2,//0x80 end;
into device label H_EC code_regex (B1DN,)\s+(64) replace_matched begin B1DX,%2,//0x88 end;
into device label H_EC code_regex (SMD0,)\s+(256) replace_matched begin SMDY,%2,//0x1C end;
into method label GSBI code_regex \(B1TM, replaceall_matched begin (B1B2(TM10,TM11), end;
into method label GSBI code_regex \(B1VT, replaceall_matched begin (B1B2(VT10,VT11), end;
into method label _BST code_regex ECRD\s\(RefOf\s\(B1VT\)\) replaceall_matched begin B1B2(VT10,VT11) end;
into method label GSBI code_regex \(B1CR, replaceall_matched begin (B1B2(CR10,CR11), end;
into method label _BST code_regex ECRD\s\(RefOf\s\(B1CR\)\) replaceall_matched begin B1B2(CR10,CR11) end;
into method label GSBI code_regex \(B1RC, replaceall_matched begin (B1B2(RC10,RC11), end;
into method label _BST code_regex ECRD\s\(RefOf\s\(B1RC\)\) replaceall_matched begin B1B2(RC10,RC11) end;
into method label GSBI code_regex \(B1FC, replaceall_matched begin (B1B2(FC10,FC11), end;
into method label _BIF code_regex ECRD\s\(RefOf\s\(B1FC\)\) replaceall_matched begin B1B2(FC10,FC11) end;
into method label GSBI code_regex \(B1DC, replaceall_matched begin (B1B2(DC10,DC11), end;
into method label _BIF code_regex ECRD\s\(RefOf\s\(B1DC\)\) replaceall_matched begin B1B2(DC10,DC11) end;
into method label GSBI code_regex \(B1DV, replaceall_matched begin (B1B2(DV10,DV11), end;
into method label _BIF code_regex ECRD\s\(RefOf\s\(B1DV\)\) replaceall_matched begin B1B2(DV10,DV11) end;
into method label GSBI code_regex \(BDCW, replaceall_matched begin (B1B2(DCW0,DCW1), end;
into method label GSBI code_regex \(BDCL, replaceall_matched begin (B1B2(DCL0,DCL1), end;
into method label GSBI code_regex \(B1DT, replaceall_matched begin (B1B2(DT10,DT11), end;
into method label GSBI code_regex \(B2DT, replaceall_matched begin (B1B2(DT20,DT21), end;
into method label GBID code_regex \(B1CY, replaceall_matched begin (B1B2(CY10,CY11), end;
into method label SMTF code_regex \(BCRT, replaceall_matched begin (B1B2(CRT0,CRT1), end;
into method label GSBI code_regex \(B1CH, replaceall_matched begin (B1B4(CH10,CH11,CH12,CH13), end;
into method label GSBI code_regex \(B1DN, replaceall_matched begin (RECB(0x88,64), end;
into method label GSBI code_regex \(B1MA, replaceall_matched begin (RECB(0x80,64), end;
into method label _BIF code_regex \(B1MA, replaceall_matched begin (RECB(0x80,64), end;
into method label GSBI code_regex \(BARL, replaceall_matched begin (RECB(0x06,64), end;
into method label GSBI code_regex \(BARH, replaceall_matched begin (RECB(0x0E,64), end;
into method label BATD code_regex ECRD\s\(RefOf\s\(\^\^PCI0\.LPCB\.H\_EC\.BARN\)\) replaceall_matched begin RECB(0x1C,256) end;
into definitionblock code_regex . insert
begin
Method (B1B2, 2, NotSerialized) { Return(Or(Arg0, ShiftLeft(Arg1, 8))) }\n
end;
into method label B1B4 remove_entry;
into definitionblock code_regex . insert
begin
Method (B1B4, 4, NotSerialized)\n
{\n
Store(Arg3, Local0)\n
Or(Arg2, ShiftLeft(Local0, 8), Local0)\n
Or(Arg1, ShiftLeft(Local0, 8), Local0)\n
Or(Arg0, ShiftLeft(Local0, 8), Local0)\n
Return(Local0)\n
}\n
end;
into method label RE1B parent_label H_EC remove_entry;
into method label RECB parent_label H_EC remove_entry;
into device label H_EC insert
begin
Method (RE1B, 1, NotSerialized)\n
{\n
OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n
Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n
Return(BYTE)\n
}\n
Method (RECB, 2, Serialized)\n
// Arg0 - offset in bytes from zero-based EC\n
// Arg1 - size of buffer in bits\n
{\n
ShiftRight(Add(Arg1,7), 3, Arg1)\n
Name(TEMP, Buffer(Arg1) { })\n
Add(Arg0, Arg1, Arg1)\n
Store(0, Local0)\n
While (LLess(Arg0, Arg1))\n
{\n
Store(RE1B(Arg0), Index(TEMP, Local0))\n
Increment(Arg0)\n
Increment(Local0)\n
}\n
Return(TEMP)\n
}\n
end;
into device label H_EC code_regex B1TM,\s+16, replace_matched begin TM10,8,TM11,8, end;
into device label H_EC code_regex B1VT,\s+16, replace_matched begin VT10,8,VT11,8, end;
into device label H_EC code_regex B1CR,\s+16, replace_matched begin CR10,8,CR11,8, end;
into device label H_EC code_regex B1RC,\s+16, replace_matched begin RC10,8,RC11,8, end;
into device label H_EC code_regex B1FC,\s+16, replace_matched begin FC10,8,FC11,8, end;
into device label H_EC code_regex B1DC,\s+16, replace_matched begin DC10,8,DC11,8, end;
into device label H_EC code_regex B1DV,\s+16, replace_matched begin DV10,8,DV11,8, end;
into device label H_EC code_regex BDCW,\s+16, replace_matched begin DCW0,8,DCW1,8, end;
into device label H_EC code_regex BDCL,\s+16, replace_matched begin DCL0,8,DCL1,8, end;
into device label H_EC code_regex B1DT,\s+16, replace_matched begin DT10,8,DT11,8, end;
into device label H_EC code_regex B2DT,\s+16, replace_matched begin DT20,8,DT21,8, end;
into device label H_EC code_regex B1CY,\s+16, replace_matched begin CY10,8,CY11,8, end;
into device label H_EC code_regex BCRT,\s+16, replace_matched begin CRT0,8,CRT1,8, end;
into device label H_EC code_regex B1CH,\s+32 replace_matched begin CH10,8,CH11,8,CH12,8,CH13,8 end;
into device label H_EC code_regex (BARL,)\s+(64) replace_matched begin BARZ,%2,//0x06 end;
into device label H_EC code_regex (BARH,)\s+(64) replace_matched begin BARY,%2,//0x0E end;
into device label H_EC code_regex (B1MA,)\s+(64) replace_matched begin B1MX,%2,//0x80 end;
into device label H_EC code_regex (B1DN,)\s+(64) replace_matched begin B1DX,%2,//0x88 end;
into device label H_EC code_regex (SMD0,)\s+(256) replace_matched begin SMDY,%2,//0x1C end;
into method label GSBI code_regex \(B1TM, replaceall_matched begin (B1B2(TM10,TM11), end;
into method label GSBI code_regex \(B1VT, replaceall_matched begin (B1B2(VT10,VT11), end;
into method label _BST code_regex ECRD\s\(RefOf\s\(B1VT\)\) replaceall_matched begin B1B2(VT10,VT11) end;
into method label GSBI code_regex \(B1CR, replaceall_matched begin (B1B2(CR10,CR11), end;
into method label _BST code_regex ECRD\s\(RefOf\s\(B1CR\)\) replaceall_matched begin B1B2(CR10,CR11) end;
into method label GSBI code_regex \(B1RC, replaceall_matched begin (B1B2(RC10,RC11), end;
into method label _BST code_regex ECRD\s\(RefOf\s\(B1RC\)\) replaceall_matched begin B1B2(RC10,RC11) end;
into method label GSBI code_regex \(B1FC, replaceall_matched begin (B1B2(FC10,FC11), end;
into method label _BIF code_regex ECRD\s\(RefOf\s\(B1FC\)\) replaceall_matched begin B1B2(FC10,FC11) end;
into method label GSBI code_regex \(B1DC, replaceall_matched begin (B1B2(DC10,DC11), end;
into method label _BIF code_regex ECRD\s\(RefOf\s\(B1DC\)\) replaceall_matched begin B1B2(DC10,DC11) end;
into method label GSBI code_regex \(B1DV, replaceall_matched begin (B1B2(DV10,DV11), end;
into method label _BIF code_regex ECRD\s\(RefOf\s\(B1DV\)\) replaceall_matched begin B1B2(DV10,DV11) end;
into method label GSBI code_regex \(BDCW, replaceall_matched begin (B1B2(DCW0,DCW1), end;
into method label GSBI code_regex \(BDCL, replaceall_matched begin (B1B2(DCL0,DCL1), end;
into method label GSBI code_regex \(B1DT, replaceall_matched begin (B1B2(DT10,DT11), end;
into method label GSBI code_regex \(B2DT, replaceall_matched begin (B1B2(DT20,DT21), end;
into method label GBID code_regex \(B1CY, replaceall_matched begin (B1B2(CY10,CY11), end;
into method label SMTF code_regex \(BCRT, replaceall_matched begin (B1B2(CRT0,CRT1), end;
into method label GSBI code_regex \(B1CH, replaceall_matched begin (B1B4(CH10,CH11,CH12,CH13), end;
into method label GSBI code_regex \(B1DN, replaceall_matched begin (RECB(0x88,64), end;
into method label GSBI code_regex \(B1MA, replaceall_matched begin (RECB(0x80,64), end;
into method label _BIF code_regex \(B1MA, replaceall_matched begin (RECB(0x80,64), end;
into method label GSBI code_regex \(BARL, replaceall_matched begin (RECB(0x06,64), end;
into method label GSBI code_regex \(BARH, replaceall_matched begin (RECB(0x0E,64), end;
into method label BATD code_regex ECRD\s\(RefOf\s\(\^\^PCI0\.LPCB\.H\_EC\.BARN\)\) replaceall_matched begin RECB(0x1C,256) end;
into method label _Q38 replace_content
begin
Notify (PS2K, 0x0406)
end;
into method label _Q39 replace_content
begin
Notify (PS2K, 0x0405)
end;
begin
Notify (PS2K, 0x0406)
end;
into method label _Q39 replace_content
begin
Notify (PS2K, 0x0405)
end;
Compile SSDT-PNLF.dsl from the WhateverGreen download as aml and place in Clover/ACPI/Patched for brightness
Add the SSDT-EC and SSDT-UIAC in Clover/ACPI/Patched for USB
Open terminal and run these commands for sleep
Code:
sudo pmset -a hibernatemode 0
sudo rm /var/vm/sleepimage
sudo mkdir /var/vm/sleepimage
sudo pmset -a standby 0
sudo pmset -a autopoweroff 0