有什么好处?
根据具体情况,VirtualSMC可以更好地兼容当前和未来的macOS版本,提供更广泛的SMC功能支持,并允许更灵活的SMC密钥仿真,如MMIO,事件(如SMCLightSensor),权限支持等。在较旧的Mac上,它可用于升级具有更多功能的SMC生成。
有什么要求?
macOS 10.8.5或更新版本。完整功能需要兼容的Lilu,即使在beta macOS版本或-liluoffboot-arg 上也可以使用基本功能。启用FileVault 2时,建议将VirtualSMC.efi模块用于boot.efi兼容性。SMCHelper-64.efi与VirtualSMC.efi不兼容,必须删除。
我该如何调试问题?
使用DEBUG kexts和通常的boot-args在相关的kexts中启用调试信息。除了-vsmcdbg和通用启动参数一样keepsyms=1,-v,debug=0x100,io=0xff你可能有兴趣在AppleSMC调试支持(smc=0xff)或AppleSmartBatteryManager调试支持(batman=0xff)。在10.13或更高版本上,您可能必须修补内核才能在没有后续kext列表的情况下查看恐慌跟踪。祝你好运。
为什么VirtualSMC在每个页面显示故障内核恐慌?
在大多数情况下,VirtualSMC与您遇到的任何内核恐慌无关。它存在于堆栈跟踪中的原因是因为VirtualSMC包装kernel_trap来模拟SMC设备。
传感器有什么特别之处?
传感器kexts在专用SMC密钥中提供额外的监控功能,如温度,电压或额外功能。可以在Docs目录中找到已知SMC密钥和传感器的列表。欢迎您使用专用API实现自己的传感器kexts,但请先查看基本手册。
为什么传感器X不显示Y中的信息?
通过检查SMC键值(运行smcread -s),确保您要查找的信息实际上在传感器X中实现。如果不是,请确保Apple硬件上存在此信息并考虑发出拉取请求。如果不是,请确保您检查信息的软件确实尝试读取相关密钥。请注意,某些软件(如iStat Menus)会基于Mac平台实施特殊的传感器配置文件,并且可能无法读取所有可用的传感器。
是否支持身份验证重启?
当存在VirtualSMC.efi时,支持通常由sudo fdesetup authrestart(参见)调用的经过身份验证的重新启动man fdesetup。但是,正如任何软件实现一样,它是不安全的。如果您关心隐私和安全性,则应通过传递vsmchbkp=0boot-arg 来禁用它。
VirtualSMC实现将加密密钥存储在nvram中,如果有更高的RTC内存库,则可以使用临时密钥对其进行加密。除此之外,AptioMemoryFix将尝试在EXIT_BOOT_SERVICES(如果已安装)之后阻止读取加密密钥。
文档中的文件是什么?
-
SMCBasics.txt 包含有关SMC的一般信息
-
SMCKeys.txt 包含有关SMC密钥的文档
-
SMCLegacyKeys.html 包含有关SMC密钥的旧文档
-
SMCSensorKeys.txt包含libSMC.dylibSMC传感器键
-
SMCDumps包含运行创建的SMC密钥转储smcread -s,请添加更多!
-
SMCDatabase包含使用smcreadApple更新创建的SMC固件转储
-
SMCTypes 包含基于SMC代的SMC密钥列表 SMCDatabase
-
iStat.txt 包含iStat Menus密钥配置文件(FauxMac是检测到FakeSMC服务时的配置文件)
-
MacModels.txt 包含具有SMC固件转储状态的board-id < – > mac-model摘要
-
SensorInfo.md 包含基本的传感器操作方法
有什么工具?
-
rtcread 允许访问RTC / CMOS内存并包含相关的AppleRTC信息
-
smcread 允许访问SMC密钥,转储SMC固件和 libSMC.dylib
-
smc-fuzzer是一个旧smc工具的分支,缺少一些功能smcread
-
libaistat 允许在使用时从iStat菜单转储SMC密钥配置文件 DYLD_INSERT_LIBRARIES
什么是传感器?
-
SMCLightSensor使用新的SMC事件API实现照明传感器处理的示例(需要ACPI0008/ _ALI)
-
SMCBatteryManager 实现了AppleSmartBattery的SMC和SMBus协议的完整仿真层
-
SMCProcessor 实现Nehalem CPU或更新的温度监控