BatteryKiller logo macOS 菜单栏应用

BatteryKiller 让电池按你设定的区间充放电循环

BatteryKiller 用软件方式切断和恢复 MacBook 的电源适配器:升到区间上限就断电让电池真的放电,降到下限再充回来,如此往复。它不保护电池——每一次循环都在消耗循环次数、加速老化。名字就是字面意思。

5%–100%
循环区间可调
5s
电量轮询与判定
1
安装时授权一次
Free
免费开源

主界面

BatteryKiller 主界面:电量、供电状态与循环区间

它会把电池玩坏,这正是它的用途

每切断一次适配器让电池放电、再充回来,都在消耗电池的循环次数、加速老化。BatteryKiller 不做任何电池保养,也不是省电工具。用之前请确认你不在乎这台机器的电池。

核心特性

从区间循环、一键切换电源到菜单栏常驻,把电池的充放电节奏交回你手里。

🔄

自动充放电循环

电量升到区间上限就切断适配器,让电池真实放电;降到下限再恢复供电重新充电,如此往复。

一键切换供电来源

一个按钮在「电池供电」与「直流电源供电」之间切换,按下即终止正在运行的循环。

🎚️

双滑块循环区间

拖动两个滑块设定放电下限与停充上限,靠近 5 / 10 / 20 / 30 与 80 / 90 / 100 时自动吸附;循环运行中区间会锁定。

📊

实时状态与阶段提示

大号电量百分比,加上供电状态(正在充电 / 已插电未充电 / 使用电池供电)与当前循环阶段说明。

🧩

菜单栏常驻

图标随供电方式切换配色,菜单里可直接开关循环、切换电源、唤出窗口。关掉窗口不影响运行。

🛡️

中英双语与安全兜底

界面跟随系统语言,也可手动切换。循环期间申请电源断言防止机器睡过去,退出应用前自动恢复墙上供电。

三步开始区间循环

装好之后就只剩拖两个滑块、开一个开关。

1
Step 1

下载并安装

从 GitHub Releases 取 dmg 或 zip,拖进「应用程序」。项目未签名公证,首次打开需要右键 → 打开。

2
Step 2

首次授权一次

第一次点「自动循环」时输入一次管理员密码,把特权助手装进系统目录,此后不再询问。

3
Step 3

设定区间并开启循环

拖动滑块选好下限与上限,打开「自动循环」开关,剩下的交给它自己往复。

产品截图

一个窗口放完全部状态与操作,没有多余层级。

中文界面
BatteryKiller 中文主界面

电量、供电状态与循环区间

大号电量显示当前供电来源,下方一键切换电源,双滑块设定放电下限与停充上限,底部实时说明当前阶段。

English UI
BatteryKiller English interface

界面跟随系统语言

中文环境显示中文,其余显示英文;也可以在窗口页脚或菜单栏菜单里手动切换,选择会被记住。

它是怎么做到的

没有公开 API 可用,所以走的是 SMC 固件加一个最小权限助手这条路。

🔌

控制电源的是 SMC 的 CHIE 键

macOS 没有公开的「断开充电器」接口,真正的开关在 AppleSMC 固件里:写入 CHIE = 0x00 接通适配器,CHIE = 0x08 切断适配器,机器转为电池供电。

🔐

写 SMC 要 root,所以配了常驻助手

非 root 进程能读 SMC,但所有写入都会被内核拒绝。助手 bkhelper 由 launchd 以 root 常驻,对外只有 VERSION / STATUS / ON / OFF 四条指令。

每次写入都读回校验

SMC 固件存在「谎报成功」的情况,所以每次写入之后都会立刻读回比对,确认状态真的切换了才算数。

注意:CHIE 只表示电源通路的意愿,并不代表充电器是否物理接入;后者要看 AC-W 或 IOKit 的电源接口信息。应用基于 SMC 私有键实现,系统固件更新后行为可能变化,风险自负。

适合谁用

给明确知道自己在干什么的人:这台机器的电池你不在乎。

就是想把电池玩坏:循环数涨就涨,健康度掉就掉,这台机器的电池不在你的考虑范围内。
需要快速耗电:在真机上测试低电量行为、验证电源相关逻辑,要电量又快又可控地降下去。
想看循环和衰减怎么走:盯着循环计数与健康度,看它们随一次次充放电怎么变化。
只想要那个开关:不关心循环,纯粹想要一键在「电池供电 / 电源供电」之间切换,不装后台服务。

常见问题

关于安装、权限与适用机型的常见疑问。

BatteryKiller 支持哪些机型?

支持 Apple Silicon(arm64)且系统为 macOS 13 及以上的 Mac,Intel Mac 不在支持范围。此外只有在 SMC 的 CHIE 键存在且可写的机型上才能工作,其他机型启动后会直接提示「本机不支持软件控制电源适配器」——这个判断只读 SMC 元信息,不需要 root,所以不会白弹一次授权框。

为什么打开时会提示「无法验证开发者」?

项目没有 Apple 开发者签名,也没有做公证,Release 里的包是 ad-hoc 签名,所以 Gatekeeper 会拦一下。首次打开请右键 → 打开,或者先在终端执行 xattr -rd com.apple.quarantine /Applications/BatteryKiller.app 解除隔离属性。这是本项目的现状而非下载出错,每次升级新版本后都需要再做一次。

为什么首次使用需要输入管理员密码?

因为写入 SMC 必须以 root 身份进行,而图形界面进程始终以登录用户身份运行。应用会把特权助手 bkhelper 安装到 /Library/PrivilegedHelperTools 并交给 launchd 常驻,所以只需要授权这一次,之后不再弹框。

会不会把电池弄坏?

会,这就是它的用途。每切断一次适配器让电池放电、再充回来,都在消耗循环次数并加速老化,应用本身不做任何电池保养。如果你要的是延长电池寿命,这个工具不适合你。另外它基于 SMC 私有键实现,系统固件更新后行为可能变化,风险自负。

退出应用后电源会怎样?

退出应用前会自动恢复墙上供电,不会把机器留在断电状态。另外循环运行期间会申请电源断言,避免机器空闲睡眠导致循环卡住。

会上传我的数据吗?

不会。应用只在本机读取电池状态并读写 SMC,不联网、不收集任何信息,源码在 GitHub 上完全公开。