Jump to content

EFICheckDisabler


Sherlocks
 Share

27 posts in this topic

Recommended Posts


post-980913-0-83746200-1508676372_thumb.jpg

2017-10-22 20:42:22.976546+0900  localhost kernel[0]: com_apple_driver_eficheck::probe(LPCB)

2017-10-22 20:42:22.976715+0900  localhost kernel[0]: com_apple_driver_eficheck::start(LPCB) <1>

 


If you are interested in eficheck, read it.

I am using SkyLake laptops/Desktop. AppleLPC is not being used since SkyLake. I confirmed it through a real Mac dump and kernel log and ioreg.

 

And I checked why the efi check was happening. I saw that eficheck kext was loaded under LPCB and my device id 9d48 was matched with eficheck info file and loaded and eficheck happened.

 

So I figured out three ways.

1. Remove the deviceid in the info file of eficheck.kext.

2. Prevent eficheck.kext from being loaded by modifying dsdt with a different value from 9d48.

3. Prevent the loading of the part through the binary patch or Lilu plugin

 

Once I chose number two.

i inserted in _DSM

                "device-id", 

                Buffer (0x04)

                {

                     0x47, 0x9D, 0x00, 0x00                         

                }, 

 

                "compatible", 

                Buffer (0x0D)

                {

                    "pci8086,9d47"

                }, 

 

                "name", 

                Buffer (0x0D)

                {

                    "pci8086,9d47"

                }, 

 

                "IOName", 

                "pci8086,9d47" 

 

The 9d47 value is not unusual. I just put it in to avoid the value of 9d48.

 


There are device values in the Broadwell platform and below it in the AppleLPC. So if you change other values, AppleLPC will be not load.

Perhaps you would like to find out how to use 1 or someone to find the 3rd binary patch or pass that symbol through the Lilu plugin.

 


thanks.

 

EDIT1.

method 2, LPC info changed blank in DPCIManager. it's just cosmetic.

post-980913-0-23135400-1508677519_thumb.png

 

method1, i have to manual process. i think method 3 is best.

  • Like 4
Link to comment
Share on other sites

 

2017-10-22 20:42:22.976546+0900  localhost kernel[0]: com_apple_driver_eficheck::probe(LPCB)
2017-10-22 20:42:22.976715+0900  localhost kernel[0]: com_apple_driver_eficheck::start(LPCB) <1>
 
If you are interested in eficheck, read it.
I am using SkyLake laptops/Desktop. AppleLPC is not being used since SkyLake. I confirmed it through a real Mac dump and kernel log and ioreg.
 
And I checked why the efi check was happening. I saw that eficheck kext was loaded under LPCB and my device id 9d48 was matched with eficheck info file and loaded and eficheck happened.
 
So I figured out three ways.
1. Remove the deviceid in the info file of eficheck.kext.
2. Prevent eficheck.kext from being loaded by modifying dsdt with a different value from 9d48.
3. Prevent the loading of the part through the binary patch.
 
Once I chose number two.
i inserted in _DSM
                "device-id", 
                Buffer (0x04)
                {
                     0x47, 0x9D, 0x00, 0x00                         
                }, 
 
                "compatible", 
                Buffer (0x0D)
                {
                    "pci8086,9d47"
                }, 
 
                "name", 
                Buffer (0x0D)
                {
                    "pci8086,9d47"
                }, 
 
                "IOName", 
                "pci8086,9d47" 
 
The 9d47 value is not unusual. I just put it in to avoid the value of 9d48.
 
There are device values in the Broadwell platform and below it in the AppleLPC.
Perhaps you would like to find out how to use 1 or someone to find the 3rd binary patch or pass that symbol through the Lilu plugin.
 
thanks.

 

is it bad to have it loaded?

i have these log too.

2017-10-22 13:31:44.088521+0700 0x4ee      Default     0x0                  0      0    kernel: com_apple_driver_eficheck::probe(LPC0)

2017-10-22 13:31:44.088584+0700 0x4ee      Default     0x0                  0      0    kernel: com_apple_driver_eficheck::start(LPC0) <1>

2017-10-22 13:31:42.068905+0700 0x65       Default     0x0                  0      0    kernel: (AppleRTC) RTC: getGMTTimeOfDay 1508653901

2017-10-22 13:31:48.422633+0700 0x47d      Default     0x0                  0      0    kernel: (AppleRTC) RTC: setGMTTimeOfDay 1508653908

about rtc, i dont use any rtc patch (no DSDT or other patch).

Link to comment
Share on other sites

is it bad to have it loaded?

i have these log too.

2017-10-22 13:31:44.088521+0700 0x4ee      Default     0x0                  0      0    kernel: com_apple_driver_eficheck::probe(LPC0)

2017-10-22 13:31:44.088584+0700 0x4ee      Default     0x0                  0      0    kernel: com_apple_driver_eficheck::start(LPC0) <1>

2017-10-22 13:31:42.068905+0700 0x65       Default     0x0                  0      0    kernel: (AppleRTC) RTC: getGMTTimeOfDay 1508653901

2017-10-22 13:31:48.422633+0700 0x47d      Default     0x0                  0      0    kernel: (AppleRTC) RTC: setGMTTimeOfDay 1508653908

about rtc, i dont use any rtc patch (no DSDT or other patch).

 

your system loaded eficheck kext. test it above my reply and check kernel log and ioreg.

about RTC, seems no problem.

Link to comment
Share on other sites

here is EFICheckDisabler. just drop in clover your kext folder

i tested it.
1. no need dsdt patch
2. no need manual kext patch with rebuild cache

enjoy:)

this kext based on AppleHDADisabler.

credit.
Kabyl

EDIT1.
Need to improve kext. Disabler part exists on many parts.

 

EDIT2.

got it.

 

EDIT3.

removed my files. try to use rehabman's EFICheckDisabler kext file

  • Like 9
Link to comment
Share on other sites

here is EFICheckDisabler. just drop in clover your kext folder

 

i tested it.

1. no need dsdt patch

2. no need manual kext patch with rebuild cache

 

enjoy:)

 

this kext based on AppleHDADisabler.

 

credit.

Kabyl

 

EDIT1.

Need to improve kext. Disabler part exists on many parts.

2017-10-23 20:20:41.064653+0700 0x494      Default     0x0                  0      0    kernel: IMEI: match category com_apple_driver_eficheck exists
2017-10-23 20:20:41.065034+0700 0x498      Default     0x0                  0      0    kernel: LPC0: match category com_apple_driver_eficheck exists
2017-10-23 20:20:41.067631+0700 0x49c      Default     0x0                  0      0    kernel: HDAU: match category com_apple_driver_eficheck exists
2017-10-23 20:20:41.067957+0700 0x499      Default     0x0                  0      0    kernel: SBUS: match category com_apple_driver_eficheck exists
2017-10-23 20:20:41.069109+0700 0x49d      Default     0x0                  0      0    kernel: PMCR: match category com_apple_driver_eficheck exists
2017-10-23 20:20:41.069144+0700 0x49b      Default     0x0                  0      0    kernel: HDEF: match category com_apple_driver_eficheck exists
2017-10-23 20:20:41.079328+0700 0x493      Default     0x0                  0      0    kernel: GFX0: match category com_apple_driver_eficheck exists

what is that mean?

  • Like 1
Link to comment
Share on other sites

2017-10-23 20:20:41.064653+0700 0x494      Default     0x0                  0      0    kernel: IMEI: match category com_apple_driver_eficheck exists
2017-10-23 20:20:41.065034+0700 0x498      Default     0x0                  0      0    kernel: LPC0: match category com_apple_driver_eficheck exists
2017-10-23 20:20:41.067631+0700 0x49c      Default     0x0                  0      0    kernel: HDAU: match category com_apple_driver_eficheck exists
2017-10-23 20:20:41.067957+0700 0x499      Default     0x0                  0      0    kernel: SBUS: match category com_apple_driver_eficheck exists
2017-10-23 20:20:41.069109+0700 0x49d      Default     0x0                  0      0    kernel: PMCR: match category com_apple_driver_eficheck exists
2017-10-23 20:20:41.069144+0700 0x49b      Default     0x0                  0      0    kernel: HDEF: match category com_apple_driver_eficheck exists
2017-10-23 20:20:41.079328+0700 0x493      Default     0x0                  0      0    kernel: GFX0: match category com_apple_driver_eficheck exists

what is that mean?

 

 

 

try EFICheckDisabler.kext_Final.zip file above reply. i uploaded file again

 

EDIT1.

2017-10-23 22:45:57.720780+0900  localhost kernel[0]: LPCB: match category com_apple_driver_eficheck exists
this log just informed system LPCB and eficheck device id matched. actually eficheck not loaded
 
no more get previous log now
2017-10-22 20:42:22.976546+0900  localhost kernel[0]: com_apple_driver_eficheck::probe(LPCB)
2017-10-22 20:42:22.976715+0900  localhost kernel[0]: com_apple_driver_eficheck::start(LPCB) <1>
 
Link to comment
Share on other sites

 

try EFICheckDisabler.kext_Final.zip file above reply. i uploaded file again

 

EDIT1.

2017-10-23 22:45:57.720780+0900  localhost kernel[0]: LPCB: match category com_apple_driver_eficheck exists
this log just informed AppleLPC and eficheck device id matched. actually eficheck not loaded
 
no more get previous log now
2017-10-22 20:42:22.976546+0900  localhost kernel[0]: com_apple_driver_eficheck::probe(LPCB)
2017-10-22 20:42:22.976715+0900  localhost kernel[0]: com_apple_driver_eficheck::start(LPCB) <1>
 

 

 

there is 1 left  :)

2017-10-23 20:52:02.182072+0700 0x4f5      Default     0x0                  0      0    kernel: LPC0: match category com_apple_driver_eficheck exists

 

EDIT: i didnt read the edited part, not refreshed yet.

so is it all ok?

  • Like 1
Link to comment
Share on other sites

there is 1 left :)

2017-10-23 20:52:02.182072+0700 0x4f5 Default 0x0 0 0 kernel: LPC0: match category com_apple_driver_eficheck exists

 

EDIT: i didnt read the edited part, not refreshed yet.

so is it all ok?

Yes. Enjoy

 

나의 LG-F800S 의 Tapatalk에서 보냄

  • Like 1
Link to comment
Share on other sites

here is EFICheckDisabler. just drop in clover your kext folder

 

i tested it.

1. no need dsdt patch

2. no need manual kext patch with rebuild cache

 

enjoy:)

 

this kext based on AppleHDADisabler.

 

credit.

Kabyl

 

EDIT1.

Need to improve kext. Disabler part exists on many parts.

 

EDIT2.

got it.

You don't need a Disabler binary to create a disabler kext.

It can be done as a codeless kext.

Take a look at my version of the same. It is just an Info.plist.

Attached.

EFICheckDisabler.kext.zip

  • Like 11
  • Thanks 3
Link to comment
Share on other sites

You don't need a Disabler binary to create a disabler kext.

It can be done as a codeless kext.

Take a look at my version of the same. It is just an Info.plist.

Attached.

 

thank you for clean kext.

If so, does AppleHDADisabler need only an info file?

Link to comment
Share on other sites

If so, does AppleHDADisabler need only an info file?

Assuming it is using Disabler, yes.

You'll know when you test it, I suppose (I don't use it, as I'm using AppleHDA).

BTW, I think disabling AppleHDAController is sufficient (the other IOKitPersonality entries are probably not needed).

 

We are getting a bit off-topic...

  • Like 2
Link to comment
Share on other sites

Assuming it is using Disabler, yes.

You'll know when you test it, I suppose (I don't use it, as I'm using AppleHDA).

BTW, I think disabling AppleHDAController is sufficient (the other IOKitPersonality entries are probably not needed).

 

We are getting a bit off-topic...

 

thanks. i will check.

 

Does this eficheck kext only happens (so perhaps that disabler needed) with 10.13 or also running Sierra?

If HS only , perhaps adding some Info (10.13 ) in headline of thread?

 

i experienced efi check on 10.12/13. thank you for suggestion

 

Why my laptop doesn't contain efi_check logs?

 

on you dell laptop? what is your LPC id?

Link to comment
Share on other sites

 

Yes

 

Dell XPS 15 9550.

 

PCI\VEN_8086&DEV_A14E&SUBSYS_06E41028&REV_31

 

 

on your system, there is no your LPC device id in eficheck.kext. so, no need EFICheckDisabler. 

 

if you change A14E to A145(realmac skylake desktop id), you have to use EFICheckDisabler. it's your choice. <- not recommend. just info

#define PCI_PRODUCT_INTEL_H110_LPC  0xa143      /* H110 LPC */
4989#define PCI_PRODUCT_INTEL_H170_LPC  0xa144      /* H170 LPC */
4990#define PCI_PRODUCT_INTEL_Z170_LPC  0xa145      /* Z170 LPC */
4991#define PCI_PRODUCT_INTEL_Q170_LPC  0xa146      /* Q170 LPC */
4992#define PCI_PRODUCT_INTEL_Q150_LPC  0xa147      /* Q150 LPC */
4993#define PCI_PRODUCT_INTEL_B150_LPC  0xa148      /* B150 LPC */
4994#define PCI_PRODUCT_INTEL_C236_LPC  0xa149      /* C236 LPC */
4995#define PCI_PRODUCT_INTEL_C232_LPC  0xa14a      /* C232 LPC */
4996#define PCI_PRODUCT_INTEL_CQM170_LPC    0xa14d      /* CQM170 LPC */
4997#define PCI_PRODUCT_INTEL_HM170_LPC 0xa14e      /* HM170 LPC */
4998#define PCI_PRODUCT_INTEL_CM236_LPC 0xa150      /* CM236 LPC *
  • Like 1
Link to comment
Share on other sites

 

 
If you are interested in eficheck, read it.
I am using SkyLake laptops/Desktop. AppleLPC is not being used since SkyLake. I confirmed it through a real Mac dump and kernel log and ioreg.

 

 

Hi Sherlocks,

 

I am running iMac17,1 SMBIOS with a Skylake 6700k processor (see my signature). I'm currently using an SSDT to load AppleLPC. Is this not necessary to load with a Skylake+ processor?

Link to comment
Share on other sites

Hi Sherlocks,

 

I am running iMac17,1 SMBIOS with a Skylake 6700k processor (see my signature). I'm currently using an SSDT to load AppleLPC. Is this not necessary to load with a Skylake+ processor?

Yes. no need LPC on skylake and newer system. Actually, realmac also doesnt have loaded LPC kext.

Probably, you use 9cc1 broadwell LPC device id from SSDT injection.

 

Turn off SSDT LPC Injection. Then check your LPC device id, if your LPC id matched info in eficheck.kext, try to use EFICheckDisabler.

 

 

나의 LG-F800S 의 Tapatalk에서 보냄

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Yes. no need LPC on skylake and newer system. Actually, realmac also doesnt have loaded LPC kext.

Probably, you use 9cc1 broadwell LPC device id from SSDT injection.

 

Turn off SSDT LPC Injection. Then check your LPC device id, if your LPC id matched info in eficheck.kext, try to use EFICheckDisabler.

 

 

나의 LG-F800S 의 Tapatalk에서 보냄

 

Ah, thank you, this is good to know. I had mistakenly thought AppleLPC was always needed. You are also correct, it was using the 9cc1 device ID in the SSDT.

 

I've removed the SSDT and rebooted. eficheck does still show up under LPCB, and is matching on pci8086,a145.

 

I have added RehabMan's kext from above and now the eficheck is gone (LPCB is still under Ioreg, but the AppleLPC.kext is not loaded now). Thanks to you and RehabMan.

 

Edit: typo pci*

  • Like 1
Link to comment
Share on other sites

I just don't know why a lot of people think LPCB device injection is necessary on Skylake+ platform. Actually, on Skylake+ platform you only need PPMC and PMRC combine together to make LPCB work(like in a real Mac, confirmed from MacBookPro's ioreg). AppleLPC will not load in this case. More details can be checked in my git: https://github.com/syscl/XPS9350-macOS/commit/ed474d5bc68efba71ed827e5eef5c5db910d24c2(I discovered this since Dec 1 2016).

 

syscl

  • Like 3
Link to comment
Share on other sites

  • 1 month later...

I just don't know why a lot of people think LPCB device injection is necessary on Skylake+ platform. Actually, on Skylake+ platform you only need PPMC and PMRC combine together to make LPCB work(like in a real Mac, confirmed from MacBookPro's ioreg). AppleLPC will not load in this case. More details can be checked in my git: https://github.com/syscl/XPS9350-macOS/commit/ed474d5bc68efba71ed827e5eef5c5db910d24c2(I discovered this since Dec 1 2016).

 

syscl

I have a Skylake-X /X299 system and I see that LPC is not loading (as should be the case), but how do I get PPMC and PMCR operating properly?

 

I have a PMCR device at 0x001F0002, is that all it takes? I do not have a PPMC device.

Link to comment
Share on other sites

  • 10 months later...
  • 1 year later...
  • 7 months later...
On 10/12/2019 at 9:44 AM, Sherlocks said:

apple added device id for eficheck

PCI 8086 Intel Corporation A306 Q370 Chipset LPC/eSPI Controller Vendor Device

 

i added this device id.

 

@Sherlocks Your updated kext works on my HP EliteDesk 800 G4 Mini (Q370).  I still don't understand why it's necessary, but it works. Thank you!

 

 

Screen Shot 2020-05-23 at 9.25.10 AM.png

Edited by tonyx86
Link to comment
Share on other sites

 Share

×
×
  • Create New...