Battery Toolkit - 苹果硅 Mac 电池管理工具
项目标题与描述
Battery Toolkit 是一个专为 Apple Silicon Mac 设计的平台电源状态控制工具。项目旨在提供比 macOS 原生"优化电池充电"更灵活、更精确的电池管理功能,帮助用户延长电池寿命。

功能特性
- 可自定义电池充电上限:设置电池充电停止的百分比(最低50%),避免电池长期处于满电状态
- 可自定义电池充电下限:设置电池开始充电的百分比(最低20%),减少频繁短时充电
- 电源适配器控制:
- 无需物理拔插即可禁用电源适配器
- 支持在禁用电源适配器时防止系统睡眠
- 系统级集成:
- 通过 LaunchDaemon 实现后台服务
- 使用 XPC 进行安全进程间通信
- 支持 Apple SMC 接口访问
安装指南
- 下载最新版本安装包
- 在终端运行以下命令进行安装:
# 安装 Battery Toolkit 守护进程
sudo cp /path/to/me.mhaeuser.batterytoolkitd.plist /Library/LaunchDaemons/
sudo cp /path/to/me.mhaeuser.batterytoolkitd /Library/PrivilegedHelperTools/
sudo launchctl load /Library/LaunchDaemons/me.mhaeuser.batterytoolkitd.plist
系统要求:
- Apple Silicon Mac
- macOS 12.0 或更高版本
使用说明
基本使用
通过系统偏好设置或命令行工具控制电池设置:
# 设置充电上限为80%
batterytoolkit --upper-limit 80
# 设置充电下限为30%
batterytoolkit --lower-limit 30
# 禁用电源适配器
batterytoolkit --disable-adapter
高级功能
// 通过 XPC 与服务通信
NSXPCConnection *connection = [[NSXPCConnection alloc]
initWithMachServiceName:@BT_DAEMON_CONN_
options:NSXPCConnectionPrivileged];
connection.remoteObjectInterface = [NSXPCInterface
interfaceWithProtocol:@protocol(BatteryToolkitProtocol)];
[connection resume];
核心代码
1. SMC 参数结构定义
// SMCParamStruct.h
typedef struct {
uint32_t key;
SMCVersion vers;
SMCPLimitData pLimitData;
SMCKeyInfoData keyInfo;
uint8_t result;
uint8_t status;
uint8_t data8;
uint32_t data32;
uint8_t bytes[32];
} SMCParamStruct;
2. XPC 连接审计令牌扩展
// NSXPCConnection+AuditToken.h
@interface NSXPCConnection (AuditToken)
@property (nonatomic, readonly) audit_token_t auditToken;
@end
3. 电源管理接口
// IOPMLibPrivate.h
IOReturn IOPMSetSystemPowerSetting(CFStringRef key, CFTypeRef value);
CFDictionaryRef IOPMCopySystemPowerSettings(void);
4. 签名信息获取
// SecCodeEx.h
OSStatus SecCodeCopySigningInformationDynamic(
SecCodeRef code,
SecCSFlags flags,
CFDictionaryRef *information
);
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
公众号二维码


浙公网安备 33010602011771号