MCPcopy Create free account
hub / github.com/acidanthera/VirtualSMC

github.com/acidanthera/VirtualSMC @1.3.7

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.3.7 ↗ · + Follow
1,266 symbols 1,941 edges 90 files 102 documented · 8% updated 3mo ago1.3.7 · 2025-07-07★ 1,792

Browse by type

Functions 1,006 Types & classes 260
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

VirtualSMC

Build Status Scan Status

高级的 Apple SMC 核心模拟。 需要 Lilu 作为依赖以正常工作。

English
简体中文 (当前语言)

特点

  • 支持 64 位的 macOS 10.6 以及更新系统 (推荐使用 10.9 及以后的系统)
  • 实现 MMIO 协议以及适配现代版本 macOS 的中断响应机制
  • 正确提交键值属性以及它们的读写保护
  • 允许根据机器型号动态调节使用不同代的 SMC
  • 支持通过插件添加可扩展的传感器
  • 支持启动参数 smcdebug=XX (10.9+)
  • 替换查找到的硬件 SMC (你需要刷写特定的固件来完全禁用 SMC)

启动代码

  • 添加 -vsmcdbg 以开启 debug 输出 (需要 DEBUG 版本支持)。
  • 添加 -vsmcoff 以禁用所有 Lilu 增强。
  • 添加 -vsmcbeta 以在不支持的系统中启用 Lilu 增强 (11 及以下版本为默认开启)。
  • 添加 -vsmcrpt 以报告缺失的的 SMC 密钥到系统日志中。
  • 添加 -vsmccomp 以优先使用硬件 SMC(如果有)
  • 添加 vsmcgen=X 以强制暴露 X-gen SMC 设备 (支持 1 和 2 代)。
  • 添加 vsmchbkp=X 以设置 HBKP dumping mode (0 - 关闭, 1 - 普通, 2 - 没有加密)。
  • 添加 vsmcslvl=X 以设置 serialisation level 的值 (0 - 关闭, 1 - 普通, 2 - 包含敏感数据 (默认))。
  • 添加 smcdebug=0xff 以启用 AppleSMC debug 信息输出。
  • 添加 watchdog=0 以禁用看门狗 (WatchDog) 倒计时 (if you get accidental reboots).

感谢

  • 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 Super I/O chips support
  • theopolis for smc-fuzzer tool
  • kokke for tiny-AES-c
  • vit9696 for Lilu.kext and this software
  • 非常感谢所有参与到 Apple SMC 项目中探索的贡献者和研究者!

Core symbols most depended-on inside this repo

Shape

Method 801
Class 244
Function 205
Enum 16

Languages

C++98%
C2%

Modules by API surface

Sensors/SMCSuperIO/Devices.cpp525 symbols
Sensors/SMCSuperIO/SuperIODevice.hpp63 symbols
VirtualSMC/kern_vsmc.cpp28 symbols
Sensors/SMCBatteryManager/SMCBatteryManager.hpp28 symbols
Sensors/SMCDellSensors/SMIMonitor.cpp27 symbols
VirtualSMC/kern_keys.cpp26 symbols
Sensors/SMCBatteryManager/KeyImplementations.hpp26 symbols
Sensors/SMCSuperIO/ITEDevice.cpp22 symbols
VirtualSMC/kern_keys.hpp21 symbols
VirtualSMC/kern_keystore.cpp19 symbols
Sensors/SMCProcessor/SMCProcessor.hpp18 symbols
Sensors/SMCBatteryManager/BatteryManager.cpp18 symbols

For agents

$ claude mcp add VirtualSMC \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page