写点什么

Battery Toolkit - 苹果硅 Mac 电池管理工具

作者:qife
  • 2025-07-09
    福建
  • 本文字数:1166 字

    阅读完需:约 4 分钟

项目标题与描述

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


功能特性

  • 可自定义电池充电上限:设置电池充电停止的百分比(最低 50%),避免电池长期处于满电状态

  • 可自定义电池充电下限:设置电池开始充电的百分比(最低 20%),减少频繁短时充电

  • 电源适配器控制

  • 无需物理拔插即可禁用电源适配器

  • 支持在禁用电源适配器时防止系统睡眠

  • 系统级集成

  • 通过 LaunchDaemon 实现后台服务

  • 使用 XPC 进行安全进程间通信

  • 支持 Apple SMC 接口访问

安装指南

  1. 下载最新版本安装包

  2. 在终端运行以下命令进行安装:


# 安装 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.htypedef 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.hIOReturn IOPMSetSystemPowerSetting(CFStringRef key, CFTypeRef value);CFDictionaryRef IOPMCopySystemPowerSettings(void);
复制代码

4. 签名信息获取

// SecCodeEx.hOSStatus SecCodeCopySigningInformationDynamic(    SecCodeRef code,    SecCSFlags flags,    CFDictionaryRef *information);
复制代码


更多精彩内容 请关注我的个人公众号 公众号(办公 AI 智能小助手)公众号二维码


办公AI智能小助手


用户头像

qife

关注

还未添加个人签名 2021-05-19 加入

还未添加个人简介

评论

发布
暂无评论
Battery Toolkit - 苹果硅 Mac 电池管理工具_macos_qife_InfoQ写作社区