- Adapt code to make it work correclty in macOS Sequoia.
- Added constants for macOS 15 support
- Auto hibernation: make sure auto-hibernate feature only happens when hibernatemode is set to 3. (Never with mode 0 or 25).
- Fix minor typos in code and debug log. Plus better formatting.
- Add macOS 14 (Sonoma) constants
- Take into account a full wake event only if the local user provoked this event (stabilize switching to hibernate mode)
- Respect parameters
standbydelaylow
,standbydelayhigh
,highstandbythreshold
set via pmset utility - Introduce a new bit in hbfx-ahbm boot-arg:
DoNotOverrideWakeUpTime
= 64, to let macOS decide when wake for standby sleep maintenance
- Added constants for macOS 13 support
- Decouple WhenBatteryIsNotCharging/WhenBatteryIsAtWarnLevel and minimal capacity in parameter
hbfx-ahbm
- When battery level is critical, try to put macOS into sleep/hibernate mode only once per minute.
- Automatically puts macOS into sleep/hibernate mode when WhenBatteryIsAtWarnLevel or WhenBatteryAtCriticalLevel bit is set in hbfx-ahbm. If battery kext does not provide these levels, additional bits for remaining capacity can be specified (RemainCapacityBit1, RemainCapacityBit2, RemainCapacityBit3, RemainCapacityBit4).
- Use method routeMultipleLong instead of routeMultiple in order to avoid conflict with DebugEnhancer
- Use method routeMultipleLong instead of routeMultiple in order to avoid conflict with future versions of CpuTscSync
- Added constants for macOS 12 support.
- Auto hibernation: added possibility to disable power event kStimulusDarkWakeActivityTickle in kernel, so this event cannot be a trigger for switching from dark wake to full wake.
Can be turned on via bit
DisableStimulusDarkWakeActivityTickle=128
in boot-arghbfx-ahbm
. - Support options in NVRAM (GUID = E09B9297-7928-4440-9AAB-D1F8536FBF0A or LiluReadOnlyGuid)
- Auto hibernation: properly handle transition from dark wake to full wake
- Extend method emuVariableIsDetected in order to use EfiRuntimeServices if nvram cannot be accessed in standard way
- Improve auto hibernation: immediate hibernate if standbydelaylow / autopoweroffdelay is 0, fast resume after hibernate, code cleanup
- Refactoring, setup next RTC wake manually if IOPMrootDomain::setMaintenanceWakeCalendar was not called before sleep
- Force next sleep if maintanence wake type is detected (RTC/SleepService/Maintenance)
- Added MacKernelSDK with Xcode 12 compatibility
- Postpone RTC wake in AppleRTC::setupDateTimeAlarm according to current standby/autopoweroff delay (if auto-hibernate feature and standby/autopoweroff is on) in order to avoid earlier wake.
- Improve auto-hibernate feature: correct next wake time disregarding the current sleep phase.
- Added constants for 11.0 support.
- Improve auto-hibernate feature: support standby and autopoweroff separately (with respective delay). Immediate hibernate is possible with zero delay.
- Fix nvram.plist saving in Catalina, new path is used when the root folder is not writable: /System/Volumes/Data/nvram.plist
- Code refactoring, fix duplicates in log, auto-hibernate can work without power source
- Do not use recursive iterator to detect EmuVariableUefiPresent (based on panic report analysis)
- Improve auto-hibernate feature: if power nap is enabled, hibernation will start after next Maintenance/SleepService wake (standbyDelay value is respected)
- Fixed memory leaks
- Fixed EmuVariableUefiPresent detection (nvram.plist will be properly saved if EmuVariableUefiPresent == Yes in ioreg)
- Improve auto-hibernate feature: modify next wake time only before regular sleep
- Unified release archive names
- Allow loading on 10.15 without
-lilubetaall
- Fix minor typos in code and comments (credits to PMheart)
- Improve auto-hibernate feature: modify next wake time to currentTime + standbyDelay
- New feature: forces hibernate mode depending on specified factors (auto hibernate modes)
- Basic 10.14 support
- Fix a name conflict for config variable
- Improve pci patch (allow to write to PCI config command register, but bit
memory space
must be always set )
- Save hibernation keys in NVRAM only if boot-arg
-hbfx-dump-nvram
is specified or if the second bank of RTC memory (next block of 128 bytes) is not available - PCI Family patch is always enabled, boot-arg
-hbfx-patch-pci
is obsolete. A new boot arg-hbfx-disable-patch-pci
is introduced to disable any patching
- Fixes for 1.1.6b (Release was non-working)
- Use pollers to provoke writing of SMC-keys earlier
- Requires Lilu 1.1.6
- Compatibility with High Sierra
- PCI Family patch was improved
- New boot-arg hbfx-patch-pci=[comma-separated list of ignored devices] supported
- Added OSBundleCompatibleVersion
- Fix system freeze and black screen when resume after hibernation (Sierra only)
- Panic handling and writing to nvram.plist
- Works with EmuVariable
- Call file sync method (to be sure that nvram.plist will be written)
- Write NVRAM to file
- Initial release