Jump to content

[FIX] FakeSMC backtrace with OpenCore


FreeJHack
 Share

13 posts in this topic

Recommended Posts

If you're using FakeSMC v.6.26-357.1800 (RehabMan-kozlek) with OpenCore 0.60 (0.5.9), you're most probably having a FakeSMC backtrace and/or random or repetitive crash during boot.

Short story: this is due to an error during properties reading.

 

Look at your boot-log, you could find something like this

 

1318730579_FakeSMCBacktrace.thumb.png.a1bc3a1941f2bd2dd8a83502f1a6aa0d.png

 

 

and if you check with IORegistryExplorer the resource FakeSMCKeyStore, the two properties "manufacturer" and "product-name" are missing.

 

1416574780_NoProperties.thumb.png.0f310a5ecc32dd92f849418b06e7abe9.png

 

I've patched FakeSMC fixing the backtrace and loading the two needed properties

In order to correctly load the two properties, it is mandatory set in the OpenCore config.plist file the ExposeSensitiveData->Expose OEM information as a set of UEFI variables = true, in Misc->Security.

Then, replace FakeSMC.kext with the patched version and reboot.

 

Check the boot-log and you'd find the string "Trying OpenCore OEM properties..."

 

1083857289_Schermata2020-07-18alle18_06_49.thumb.png.5daf14c5be706352620a71b41ba15463.png

 

and with IORegistryExplorer the resource FakeSMCKeyStore: the two properties "manufacturer" and "product-name" should be now available.

 

566376035_propertiesok.png.78dd72f2cd239bea89770ccf0a36625b.png

 

which is in my case "Clevo" and "P95_96_97Ex,Rx", yours will be, obviously, different.

 

There's NO need to replace the supporting kexts ACPISensors.kext, CPUSensors.kext, ...

It's just enough replace FakeSMC.kext

 

Link if you want to build the kext by yourself (remember first the versioning): https://github.com/FreeJHack/OS-X-FakeSMC-kozlek

alternatively, the patched FakeSMC kext has been attached.

Tested on Mojave and Catalina.

Hoping this could help...

 

 

 

FakeSMC.kext.zip

Edited by Allan
Remove Format
  • Like 3
Link to comment
Share on other sites

  • 3 weeks later...
  • 2 weeks later...
  • 5 months later...

@FreeJHack - Great stuff!  For the newbies like me who don't know what 'Expose OEM information as a set of UEFI variables' means, read this (set Misc>Security>ExposeSensitiveData = 8).

 

EDIT: @FreeJHack - I replaced my 'old' FakeSMC.kext with yours and changed Misc>Security>ExposeSensitiveData from 6 to 8 in my OC 0.6.6 config.plist. I can confirm that I now see the missing KeyStore Properties

Spoiler

230676021_ScreenShot2021-02-14at11_14_33PM.png.bc9adb335807bc6068407fe5f984f9ad.png

 

Upon boot with OC 0.6.6, I now see the following error flash briefly before the text bootpicker appears:

 

        OCS: Failed to parse real field as value with type integer and <214xxxxxx> contents. context <HaltLevel>

 

EDIT2:

I found this explanation for the error.  After I edited my config.plist (with XCode) to change Misc>Security>ExposeSensitiveData, XCode did change HaltLevel to real.  I changed this back to integer and the OCS error is gone now.  Thanks again for your FakeSMC fix!

 

Before:

Spoiler

602588740_ScreenShot2021-02-15at8_32_37AM.png.256fa801cbf213945ec9e8d69937878f.png

 

After:

Spoiler

1021107726_ScreenShot2021-02-15at8_35_34AM.png.48d9dec0f36910cf3cd5b5e1c806d2ff.png

 

Edited by tonyx86
Added fix for HaltLevel
Link to comment
Share on other sites

15 hours ago, tonyx86 said:

@FreeJHack - Great stuff!  For the newbies like me who don't know what 'Expose OEM information as a set of UEFI variables' means, read this (set Misc>Security>ExposeSensitiveData = 8).

 

EDIT: @FreeJHack - I replaced my 'old' FakeSMC.kext with yours and changed Misc>Security>ExposeSensitiveData from 6 to 8 in my OC 0.6.6 config.plist. I can confirm that I now see the missing KeyStore Properties

  Reveal hidden contents

230676021_ScreenShot2021-02-14at11_14_33PM.png.bc9adb335807bc6068407fe5f984f9ad.png

 

Upon boot with OC 0.6.6, I now see the following error flash briefly before the text bootpicker appears:

 

        OCS: Failed to parse real field as value with type integer and <214xxxxxx> contents. context <HaltLevel>

 

EDIT2:

I found this explanation for the error.  After I edited my config.plist (with XCode) to change Misc>Security>ExposeSensitiveData, XCode did change HaltLevel to real.  I changed this back to integer and the OCS error is gone now.  Thanks again for your FakeSMC fix!

 

Before:

  Reveal hidden contents

602588740_ScreenShot2021-02-15at8_32_37AM.png.256fa801cbf213945ec9e8d69937878f.png

 

After:

  Reveal hidden contents

1021107726_ScreenShot2021-02-15at8_35_34AM.png.48d9dec0f36910cf3cd5b5e1c806d2ff.png

 

 

Is there may be something more to do in my config.plist to be able to use FakeSMC? I did exactly what you have written but I cannot boot as soon when I use FakeSMC. In IStatMenus I see only 4 CPU cores at the moment when I use iMac20,2. I wanted to see if may be VirtualSMC is the cause.

 

Link to comment
Share on other sites

@Planet X I'd need to see your current EFI (at least your config.plist) to have any chance of helping you.  If you don't mind posting your EFI, post it with your sanitized config.plist (remove the PlatformInfo private stuff).

Link to comment
Share on other sites

@chris1111 - I'm not sure I understand. Sorry I 'laughed' at your previous comment - I thought you were joking.

 

I use FakeSMC v.6.26-357.1800 with its Sensors and HWMonitor.app.  Not because I don't like others - it's just that I haven't tried others.  After I migrated from CLOVER to OC, I kept FakeSMC v.6.26-357.1800 with CPU Sensor and HWMonitor.app.  This updated FakeSMC.kext lets me keep my same Sensor kext and HWMonitor.app with OC.  

 

With FakeSMC v.6.26-357.1800 and OC 0.6.6, I was experiencing unexpected system restarts after I upgraded my rig's BIOS from v2.14.01 to v2.15 (latest at this time).  With FreeJHack's FakeSMC v.6.26-357.1801, I no longer experience these restarts.

 

Why continue to use FakeSMC v.6.26-357.1800 (and now FakeSMC v.6.26-357.1801)?  I'm lazy.

Edited by tonyx86
Link to comment
Share on other sites

7 hours ago, tonyx86 said:

@chris1111 - I'm not sure I understand. Sorry I 'laughed' at your previous comment - I thought you were joking.

 

I use FakeSMC v.6.26-357.1800 with its Sensors and HWMonitor.app.  Not because I don't like others - it's just that I haven't tried others.  After I migrated from CLOVER to OC, I kept FakeSMC v.6.26-357.1800 with CPU Sensor and HWMonitor.app.  This updated FakeSMC.kext lets me keep my same Sensor kext and HWMonitor.app with OC.  

 

With FakeSMC v.6.26-357.1800 and OC 0.6.6, I was experiencing unexpected system restarts after I upgraded my rig's BIOS from v2.14.01 to v2.15 (latest at this time).  With FreeJHack's FakeSMC v.6.26-357.1801, I no longer experience these restarts.

 

Why continue to use FakeSMC v.6.26-357.1800 (and now FakeSMC v.6.26-357.1801)?  I'm lazy.

 

@chris1111 talk about @Slice FakeSMC: this kext is different than FakeSMC v.6.26-357.1800. So don't laugh, and try it if you want.

Sorry for Off-Topic.

https://github.com/CloverHackyColor/FakeSMC3_with_plugins

  • Like 1
Link to comment
Share on other sites

To be honest, I never paid enough attention (or thought I needed to pay enough attention) to know that there were multiple products named FakeSMC that were actually completely different products (and not simply different versions of each other).  I have used FakeSMC v.6.26-357.1800 (and maybe different versions of it) for as long as I can remember.  This has certainly been enlightening.  Imagine how silly I feel for thinking that FakeSMC 6 was newer than FakeSMC 3?  (now realizing that it's FakeSMC v .6).  Glad I finally learned this after Apple switched to their own silicon :) 

Edited by tonyx86
  • Like 1
Link to comment
Share on other sites

  • 4 weeks later...
On 2/15/2021 at 5:04 AM, tonyx86 said:

I replaced my 'old' FakeSMC.kext with yours and changed Misc>Security>ExposeSensitiveData from 6 to 8 in my OC 0.6.6 config.plist. I can confirm that I now see the missing KeyStore Properties

@tonyx86 Good and thanks for sharing.

 

Still correctly working with OC 0.6.7 and Mojave 18G8022

 

Sorry for delay reply, I was unable before ...

 

Link to comment
Share on other sites

 Share

×
×
  • Create New...