MACOSHOME.COM
一个开源内核扩展,提供 RTC 变量和 NVRAM 之间的同步。通过设计,mach 内核对休眠 sleepimage 进行加密,并将加密密钥写入系统注册表 (PMRootDomain) 中的变量“IOHibernateRTCVariables”。必须以某种方式将此值写入 RTC(或 SMC),以便 boot.efi 可以读取它。但是,如果您必须将 RTC 内存限制为 1 个银行(128 字节),则它不起作用:SMC/NVRAM/RTC(实际上是 FakeSMC)中没有任何变量。
幸运的是,boot.efi 可以从 NVRAM 读取密钥“IOHibernateRTCVariables”!此 kext 检测进入“休眠”电源状态,从系统注册表读取变量 IOHibernateRTCVariables 并将其写入 NVRAM。
-hbfx-dump-nvram
在休眠之前和内核恐慌之后(带有恐慌信息)将 NVRAM 保存到文件 nvram.plist-hbfx-disable-patch-pci
禁用 IOPCIFamily 的补丁(此补丁有助于避免恢复后挂起和黑屏(不会为所有设备调用 restoreMachineState)hbfx-patch-pci=XHC,IMEI,IGPU
允许指定显式设备列表(并且不会仅为这些设备调用 restoreMachineState )。还支持值none
, false
, off
。-hbfxdbg
打开调试输出-hbfxbeta
启用在不受支持的 osx 上加载-hbfxoff
禁用 kext 加载hbfx-ahbm=abhm_value
控制自动休眠功能,其中 abhm_value 是以下各个值的算术和:EnableAutoHibernation
= 1:如果设置了此标志,系统将休眠而不是常规睡眠(以下标志可用于限制此行为)WhenLidIsClosed
= 2:关闭盖子时会发生自动休眠(如果未设置位 – 无论盖子处于哪种状态)WhenExternalPowerIsDisconnected
= 4:外部电源断开时会发生自动休眠(如果位未设置 – 无论是否连接)WhenBatteryIsNotCharging
= 8:电池未充电时会自动休眠(如果未设置位 – 无论是否充电)WhenBatteryIsAtWarnLevel
= 16:当电池处于警告级别时会发生自动休眠(macOS和电池kext负责此级别)WhenBatteryAtCriticalLevel
= 32:电池处于临界水平时会发生自动休眠(macOS和电池kext负责此水平)DisableStimulusDarkWakeActivityTickle
= 128:在内核中禁用电源事件 kStimulusDarkWakeActivityTickle,因此该事件无法触发从黑暗唤醒到完全唤醒的切换RemainCapacityBit1
= 256RemainCapacityBit2
= 512RemainCapacityBit3
= 1024RemainCapacityBit4
= 2048以下选项可以存储在 NVRAM 中(GUID = E09B9297-7928-4440-9AAB-D1F8536FBF0A),它们可以用来代替各自的引导参数
hbfx-dump-nvram
– 类型布尔hbfx-disable-patch-pci
– 类型布尔hbfx-patch-pci=XHC,IMEI,IGPU,none,false,off
– 输入字符串hbfx-ahbm
– 输入号码