FanControl 是一款面向 Apple 芯片 Mac mini 和 Mac Studio 的原生风扇监控与控制工具。应用使用 SwiftUI,体积小,不依赖 Electron、Python 或 Node.js 运行环境。
- 显示 CPU、GPU、整机温度与实时风扇转速
- 动态读取风扇数量、最低转速和最高转速,不写死机型转速表
- 支持 Mac Studio 的多风扇分别选择和控制
- 提供静音、均衡、性能和全速预设
- 随时恢复 macOS 系统自动控制
- App 退出、失联或后台服务重启后,自动尝试交还风扇控制权
- 使用 macOS 自己的热压力状态驱动角色反馈,不用统一温度线误判不同芯片
- 支持女孩和男孩付费动态皮肤,公开源码不包含付费图片
| 系统状态 | 角色表现 | 文案 |
|---|---|---|
| 正常 | 开心轻微浮动 | 状态不错~ |
| 热压力轻微升高 | 微汗 | 有点热… |
| 热压力严重 | 冒烟、轻微晃动 | 好热啊,帮我降降温吧! |
| 危急或严重状态持续 10 分钟 | 害怕、发抖 | 主人,我有点撑不住了,先休息一下好吗? |
| 手动调至 70% 以上 | 吹风开心 4 秒 | 风来啦,爽~ |
| 从热状态恢复正常 | 开心上浮 8 秒 | 呼,好凉快~ |
系统开启“减少动态效果”后,角色会自动停止持续动画。
程序通过运行时探测 SMC 键值适配不同硬件,已覆盖 M1、M2、M3、M4、M5 的已知温度传感器布局,并兼容大小写不同的风扇模式键、带或不带 Ftst 解锁机制的机器。
当前实机验证:
- Mac mini,M4,型号标识符
Mac16,10 - 单风扇动态范围 1000–4900 RPM
- CPU、GPU、整机温度读取正常
- 手动目标 2326 RPM 写入和实际转速验证正常
- 强制结束界面后,后台服务可在租约超时后恢复系统自动模式
- 非 FanControl 进程连接后台服务会被拒绝
其他 Mac mini 和 Mac Studio 采用相同的动态探测路径,但仍建议用户提交真机反馈。没有真机记录的型号不会标注为“已实机验证”。
安装后可以运行下面的只读命令获取兼容性信息,并通过 GitHub 的“机型兼容性反馈”模板提交。输出只包含温度与风扇数据:
/Library/PrivilegedHelperTools/fanhelper read- macOS 13 Ventura 或更高版本
- Apple Silicon,也就是 M 系列芯片
- 首次安装或更新后台服务时需要管理员密码
- Xcode Command Line Tools,用于从源码编译
下载项目后,在项目目录运行:
./install.sh安装器会依次完成编译、文件检查、App 安装、后台服务安装、签名验证,然后自动打开应用。管理员密码不会被应用保存。
- 打开 FanControl,查看温度和实时 RPM。
- 选择需要控制的风扇。
- 拖动滑杆,或者选择静音、均衡、性能、全速。
- 不需要手动控制时,点击“恢复自动”。
- 退出应用时也会恢复系统自动控制。
“静音”代表硬件报告的最低安全转速,不会把风扇停转。
购买后会获得一个 .fancontrolskin 皮肤包。在应用右上角角色菜单中选择“导入付费皮肤…”,导入完成后即可选择女孩或男孩皮肤。
皮肤包只允许包含六张 PNG 图片和固定格式的 manifest.json。应用会检查扩展名、PNG 文件头、图片数量、单文件大小、像素尺寸和路径,拒绝符号链接及路径穿越。
公开 GitHub 仓库只包含普通版代码。PremiumSkinPacks/、设计源文件和角色图片均被忽略,不会意外上传。
./uninstall.sh卸载器会先恢复系统自动风扇控制,再移除 App 和后台服务。已经导入的付费皮肤会保留,重新安装后仍可使用。
make test
make build
make release- 普通界面进程不以 root 身份运行
- 只有后台 Helper 拥有写入风扇控制键的权限
- 本机套接字权限限定为当前登录用户
- Helper 会校验连接进程的 macOS 代码签名
- 所有目标 RPM 都限制在硬件实时报告的最小值和最大值之间
- 手动控制使用六秒租约,界面失联后自动恢复
- Helper 异常重启时使用所有权标记继续恢复自动模式
- 最后一个手动风扇恢复后才关闭
Ftst,重新交还thermalmonitord
Apple 没有公开 macOS 风扇写入接口。本项目通过 AppleSMC 工作,手动控制会暂时改变系统默认风扇策略。请勿修改源码绕过最低转速限制,也不要在高温时强行保持低转速。
公开发布预编译安装包前,还需要使用开发者自己的 Developer ID 完成正式签名和 Apple 公证。从源码本机编译安装可使用当前安装流程。
普通版源码可以独立运行,不包含任何付费角色图片。女孩和男孩版本以独立皮肤包交付,因此可以分别定价销售,也不会因为公开代码而把付费素材一同公开。
当前版本提供安全导入和本机保存,不绑定特定支付平台。后续可以接入 Lemon Squeezy、Paddle 或 App Store 作为购买与授权渠道。
当前仓库未附带开源许可,源码与未单独授权的素材保留全部权利。付费角色图片不会进入公开仓库。
- Apple Mac mini 技术规格
- Apple Mac Studio 技术规格
- macos-smc-fan,用于核对 Apple 芯片 SMC 风扇模式差异
- Stats,用于核对已知 Apple 芯片温度传感器键值