VirtualSMC
Advanced Apple SMC emulator in the kernel. Requires Lilu for full functioning.
Features
- Supports macOS 10.8 and newer (10.9 and newer is recommended)
- Implements MMIO protocol and interrupt-based responses for compatibility with modern OS
- Properly reports key attributes and r/w protection in the keys
- Allows tuning on per-model basis and allows to use different SMC generations
- Extensible by the plugins for sensor and key addition support
- Enables smcdebug=XXboot argument support on 10.9
- Replaces hardware SMC it finds (to disable SMC entirely you need to flash a dedicated firmware)
Boot arguments
- Add -vsmcdbgto enable debug printing (available in DEBUG binaries).
- Add -vsmcoffto switch off all the Lilu enhancements.
- Add -vsmcbetato enable Lilu enhancements on unsupported os (10.13 and below are enabled by default).
- Add -vsmcrptto report about missing SMC keys to the system log.
- Add -vsmccompto prefer existing hardware SMC implementation if found.
- Add vsmcgen=Xto force exposing X-gen SMC device (1 and 2 are supported).
- Add vsmchbkp=Xto set HBKP dumping mode (0 - off, 1 - normal, 2 - without encryption).
- Add vsmcslvl=Xto set value serialisation level (0 - off, 1 - normal, 2 - with sensitive data (default)).
- Add smcdebug=0xffto enable AppleSMC debug information printing.
- Add watchdog=0to disable WatchDog timer (if you get accidental reboots).
Credits
- Apple for macOS
- netkas for the original idea of creating a software SMC emulator
- CupertinoNet for reversing most of MMIO protocol and SMC headers
- Alex Ionescu for the initial reverse of SMC firmware
- 07151129 for co-devoloping VirtualSMC and invaluable help during the research
- lvs1974 for developing laptop sensor support
- usr-sse2 for developing laptop sensor support
- joedmru for developing fans and voltage sensor support
- theopolis for smc-fuzzer tool
- kokke for tiny-AES-c
- vit9696 for Lilu.kext and this software
- Additional big thanks go to all the contributors and researchers involved in Apple SMC exploration!
 該所有者的項目
                                                                (
                                                                該所有者的項目
                                                                (