An open source kernel extension providing a sync between RTC variables and NVRAM. By design the mach kernel encrypts hibernate sleepimage and writes the encryption key to variable "IOHibernateRTCVariables" in the system registry (PMRootDomain). Somehow this value has to be written into RTC (or SMC) in order the boot.efi could read it. But in case if you have to limit your RTC memory to 1 bank (128 bytes), it doesn't work: there are no any variables in SMC/NVRAM/RTC (actually FakeSMC).
Fortunately, boot.efi can read key "IOHibernateRTCVariables" from NVRAM! This kext detects entering into "hibernate" power state, reads variable IOHibernateRTCVariables from the system registry and writes it to NVRAM.
- Enables 'native' hibernation on PC's with hardware NVRAM on 10.10.5 and later. 'Native' means hibernation with encryption (standard hibernate modes 3 & 25)
- Enables dumping NVRAM to file /nvram.plist before hibernation or panic
-hbfx-dump-nvramsaves NVRAM to a file nvram.plist before hibernation and after kernel panic (with panic info)
-hbfx-disable-patch-pcidisables patching of IOPCIFamily (this patch helps to avoid hang & black screen after resume (restoreMachineState won't be called for all devices)
hbfx-patch-pci=XHC,IMEI,IGPUallows to specify explicit device list and restoreMachineState won't be called only for these devices)
-hbfxdbgturns on debugging output
-hbfxbetaenables loading on unsupported osx
-hbfxoffdisables kext loading
- Lilu v1.2.5