macOS 27 上充电上限 App 失效?AlDente、batt 的现状与解决办法

macOSTahoe ·
macOS 27 上充电上限 App 失效?AlDente、batt 的现状与解决办法

AlDente、batt 和 Battery Toolkit 在 macOS 27 上不再限制充电,Mac 一路充到 100%。本文梳理变化原因、各 App 现状,以及安全的应对方案。

多年前你就把 MacBook 设成了充到 80% 停止,此后它一直默默地照做。然后你升级到 macOS 27 Golden Gate,几个小时后瞄了一眼菜单栏,电量却显示 100%。你的充电上限 App 依然显示绿色图标和一句友好的「已达到上限」,但 Mac 显然无视了它。这不是错觉,也不是你的配置有误。Apple 更改了 AlDente、batt、Battery Toolkit 以及 battery 命令行工具所依赖的底层控制项,而这些工具的开发者仍在追赶。本文将说明究竟发生了什么变化、各个项目公开表态了什么、哪些内容已被证实而哪些只是传闻,以及你今天该怎么做:改用 macOS 内置的充电上限、安全移除旧的辅助程序,并用数字而不是猜测来关注真实的电池健康状况。

核心要点

  • 这个症状真实存在且有据可查:AlDente 用户报告,在 macOS 27.0 和 27.0.1 上 Mac 会充过设定的上限;battery 和 batt 两个项目也都在文档中说明,它们的充电控制键在 macOS 27 上已失效。
  • 原因在 Apple 一侧,而不在你:根据 GitHub 上开发者的报告,这些工具过去用来暂停充电的 SMC 键已被移除、清空,或被锁在私有 entitlement 之后。这是开发者的发现,而不是 Apple 的官方说法。
  • 内置的充电上限是最稳妥的答案:在运行 macOS Tahoe 26.4 或更高版本的 Apple 芯片 Mac 上,「系统设置」>「电池」>「充电」旁的信息按钮提供 80% 到 100% 之间的上限设置,且受 Apple 官方支持。
  • 不要随意使用切断电源适配器的做法:battery 项目的维护者拒绝了一个禁用适配器的修复方案,因为它会导致持续的微循环;batt 项目也仅将类似模式作为可选功能提供。
  • 清理旧的辅助程序:残留的特权辅助程序可能在 App 被删除后继续存在。请按下文开发者提供的顺序卸载;对于通过 Homebrew 安装的 batt,必须先恢复默认充电上限,再停止服务或卸载。
  • 「重启后上限会重置」的说法未经证实:它出现在各类汇总文章中,却没有一手来源。请自己在重启后检查,具体方法见下文。

究竟是什么坏了:时间线

这件事并不是从正式版发布日才开始的,而是从开发者测试版就开始了,GitHub 上的公开记录让我们可以相当完整地还原过程。以下所有内容都来自我在撰写本文时打开的公开 issue 和 pull request 页面。其中没有任何一条是 Apple 的官方说法,因为 Apple 没有公开这些内部机制。

日期(2026)发生了什么来源
6 月 9 日一位使用 MacBook Air M3 的 AlDente Pro 用户报告,在 macOS 27 开发者测试版上 78% 的上限无法保持,电量涨到 94%,自动放电也表现异常AlDente issue 1771
6 月 13 日另一位使用 14 英寸 MacBook Pro(M1 Pro)的用户报告:「EC 充电控制完全不起作用」AlDente issue 1775
7 月 10 日一位贡献者为 battery 项目提交 pull request,在 macOS 27 测试版 3 上使用新的固件键battery PR 469
9 月 2 日一个 batt issue 报告称,在测试版 4 及之后,充电控制键被限制访问,「很可能是被 entitlement 检查挡住了」batt issue 152
9 月 10 日在 macOS 27 候选版上,AlDente Pro 1.39.1 显示相互矛盾的状态信息,并且没有执行 56% 的上限AlDente issue 1817
9 月 14 日macOS 27 Golden Gate 正式发布参见我们的发布日更新指南
9 月 16 日一个描述被移除的键并给出切断适配器变通方案的 battery pull request 被维护者关闭battery PR 478
9 月 17 日至 19 日又有两个 battery pull request 提议使用 macOS 自带的充电上限PR 479、PR 480
9 月 24 日batt 合并了针对受限 macOS 27 固件的可选适配器模式batt PR 154
9 月 29 日AlDente 出现新的报告,其中一条来自运行 macOS 27.0.1 和 AlDente Pro 1.39.4 的 Mac,均称充电超过上限issue 1840、issue 1841

有两点值得注意。第一,这个问题在正式发布前三个多月就已经可见,所以它并不是某个后期构建版本带来的突发回归。第二,macOS 27.0.1 并没有修复它:issue 1840 中的报告就来自一台运行 27.0.1 的 Mac。

第三方充电限制工具此前为何有效

要理解它们为什么失效,先要了解它们当初在做什么。MacBook 并不是那种到了某个百分比就简单地停止吸入电流的手机。电池、充电电路和系统管理控制器(SMC)相互配合,通常由操作系统让 Apple 自己的固件决定何时充电。

第三方工具利用了其中的一个空隙。SMC 对外暴露了许多带名字的小数值,称为键,每个键是一个四字符代码。历史上,其中一些键会告诉充电硬件停止向电池灌入电流,同时仍让 Mac 由适配器供电。开发者报告中出现的名称包括 CH0B、CH0C、CHTE、CH0I 和 CH0J。App 会自带一个小型特权辅助程序,即以 root 身份运行的后台进程:当电量达到你的上限时写入这些键,当电量降到较低的阈值以下时再清除它们。这就是这些 App 在安装时要求输入管理员密码,并且在你关闭窗口后仍能在后台继续工作的原因。

关键在于「特权」这个词。这些工具用的不是公开的、受支持的接口,而是在写入 Apple 从未向第三方公开文档的硬件控制项。这样做多年来一直行得通,但始终存在 Apple 挪动这些控制项的风险,而各项报告表明,这正是 macOS 27 中发生的事情。

据开发者所述,macOS 27 改了什么

最详细的公开描述来自三个地方:battery pull request 478 的说明、batt 项目的 README 与 issue 152,以及一个面向 macOS 27 的 Battery Toolkit 社区分支的 README。它们在大体轮廓上一致,在某些细节上有出入,我会一一指出。

旧的键已消失或为空

根据 battery pull request 478,键 CHTE、CH0B、CH0C 和 CH0I 在 macOS 27 上返回「no data」,只剩 CHIE 有响应。Battery Toolkit macOS 27 分支说的是同样这些键加上 CH0J 都不在 SMC 索引中,而 CHIE 和 ACLC 仍然可读。在 batt issue 152 中,报告者描述的状态略有不同:CH0B、CH0C 和 CHTE 仍然存在,但只是大小为零的占位符。无论是「被移除」还是「被掏空」,结果都是工具无法暂停充电。

较新的固件键被锁定

接下来最自然的想法是使用名为 bfD0、bfE0 和 bfF0 的较新键,它们似乎与固件管理的充电上限有关。Battery Toolkit 分支报告说,这些键出现在索引中,但在其测试机器(一台搭载 M3 Pro 的 MacBook Pro)上返回的是「未找到」且大小为零。issue 152 则报告称,对它们的每一次操作都会失败并返回错误码 0xe00002c1,这是 IOKit 的「未授权」错误,即使以 root 运行也是如此。这里有一个细微之处:7 月针对 battery 项目的 pull request 曾报告这些键在测试版 3 上可用,而审阅者后来发现,这些键在运行 27.0 的 M4 MacBook Air 上并不存在。所以这种行为似乎因硬件和构建版本而异,这也是不同用户看到不同现象的原因之一。

控制权转移到了哪里

issue 152 提出了一个具体的说法:这项功能已转移到 powerd 内部一个私有的「SOC limit」子系统中,只有持有私有 entitlement com.apple.private.iokit.soc-limit 的进程才能访问。如果这是对的,就解释了为什么 root 权限也不够。在现代 macOS 上,成为 root 并不会授予 entitlement。第三方 App 也无法直接申请,因为 Apple 的私有 entitlement 只对由 Apple 签名的二进制文件生效。

我想在这里保持谨慎。这只是一位报告者在 GitHub issue 上的分析,我没有看到 Apple 对此加以确认。多个独立来源共同证实的是实际结果:旧的开关没有了,而新的开关对普通辅助程序不可用。

Apple 内置的限制,完整说明

整件事里最好的消息是:在当前的 Apple 芯片 MacBook 上,你并不需要第三方工具来限制充电。Apple 的支持页面关于 Mac 上的优化电池充电和充电上限介绍了两个独立的功能,把它们混为一谈会造成很多困惑。

功能作用Apple 的要求
优化电池充电利用机器学习,在预测你会长时间插电时,延迟 80% 之后的充电。偶尔会充到 100%,以保证电池估算准确。macOS Big Sur 11 或更高版本
充电上限设置 80% 到 100% 之间的自定义最大电量。macOS Tahoe 26.4 或更高版本,且为 Apple 芯片 Mac

如何设置

Apple 给出的步骤很简短:打开苹果菜单,选择「系统设置」,点按侧边栏中的「电池」,点按「充电」旁的信息按钮,选择 80% 到 100% 之间的充电上限,然后点按「完成」。MacRumors 在该功能于 26.4 测试版中出现时报道过,选项为 80%、85%、90%、95% 和 100%。Apple 自己的 Mac 电池设置指南将其概括为一种「通过限制电池充电量来延长电池使用寿命」的方式。设置位置可能因 Mac 机型和 macOS 版本略有不同,所以如果信息按钮不在你预期的位置,请在「电池」面板中找到「充电」那一行。

它的行为方式

根据 Apple 的页面,Mac 会充电到接近上限的几个百分点之内,然后停止,并在电池状态菜单中显示「已充电至 [上限]」。如果在插电状态下电量下降超过 5%,就会恢复充电,并再次在上限附近几个百分点内停止。实际使用中有两点值得注意:

  • 停止点是近似值。上限设为 80% 时,可能停在 78% 到 82% 之间。这是 Apple 的原话,即「在上限的几个百分点之内」,而不是 bug。
  • 有一个刻意设计的覆盖选项。在电池状态菜单中选择「立即充满电」,会在这一次把电池充到 100%。这是出行前补满电量的官方支持方式。

关于该设置的更完整介绍,包括 26.4 中的引入,请参阅我们之前的 macOS Tahoe 的 Mac 电池充电上限指南。那篇文章写于 26.4 测试版期间,所以当它的措辞与 Apple 支持页面不一致时,请以 Apple 的为准。

一台轻薄的银色笔记本电脑接着充电器放在木质书桌上,旁边是一盏台灯,一只手正伸向电池设置

关于 Intel 的说明

Apple 将 Apple 芯片列为充电上限的要求,所以 Intel MacBook 只有优化电池充电。我无法验证第三方工具在 macOS 27 下的 Intel Mac 上表现如何;请查看兼容性检查器和你所用工具的文档。

各 App 状态一览表

此表反映的是我在 2026 年 9 月 30 日阅读到的公开页面。状态变化很快,请当作快照看待,操作前请点进去核实。「已报告」指存在用户报告或开发者评论,并不代表厂商已确认。

工具在 macOS 27 上的状态证据与日期
AlDente(免费版与 Pro 版)多条用户报告称充电超过上限;最新的 issue 上看不到开发者回复issue 1840 和 1841 于 9 月 29 日提交(27.0.1 上的 Pro 1.39.4,27.0 上的免费版 1.39.4);自 6 月起已有更早的报告。AlDente FAQ 称从 1.38 起仅支持 macOS 12 Monterey 到 macOS 27 Golden Gate
batt(charlie0129)已有文档说明的原生固件上限路径;可选适配器模式已合并README 描述了针对 macOS 27 时代固件的一个章节;适配器模式于 9 月 24 日在 PR 154 中合并。issue 152 报告键被限制访问
battery CLI(actuallymentor)就我读到的页面,上游尚未针对 macOS 27 更新PR 478 已关闭;就我读到的 pull request 列表,PR 479、480 和 469 仍处于打开状态
Battery Toolkit(mhaeuser)上游仓库已于 2026 年 3 月 21 日归档只读的仓库页面。另有一个社区分支针对某一台测试机器适配了 macOS 27
Battery Toolkit macOS 27 分支通过驱动 Apple 自己的上限来工作,仅在作者测试的那台 Mac 上有效分支 README:个人项目,无人维护,需要用你自己的签名证书来构建

关于这张表有几点说明。AlDente 的 FAQ 说明了自己的兼容范围,但在我读到的文字中并没有说充电上限在 27 上可用;而各 issue 表明对许多用户来说并非如此。AlDente 的状态也很容易被误读,因为 App 的部分功能仍在正常工作。报告描述的是界面、菜单栏图标和状态文字都表现正常,而真正的充电截止并没有发生。这是最危险的故障模式,因为没有任何提示告诉你它已经停止工作了。

我没有找到 AlDente 开发者关于 macOS 27 修复方案或时间的官方声明。如果有的话,很可能在他们的网站或发行说明中,我会更信任那里而不是本文的任何概述。

变通方案的分支项目实际做了什么

由于 Apple 的上限位于 powerd 内部,几个项目采取了三种做法之一。了解它们有助于你判断是否该信任其中任何一个。

做法一:驱动 Apple 自己的上限

Battery Toolkit 分支和 battery pull request 480 都试图使用 macOS 的充电上限,而不是 SMC 键。该分支的做法是在域 com.apple.smartcharging.topoffprotection 中写入偏好设置 mclLimitValue,再让以 root 身份运行的 PowerUIAgent 把它交给 powerd。根据其 README,这使得该分支可以设置低于 80% 的上限,因为范围检查只发生在用户界面路径中。README 同样明确地说明了代价:它使用未公开的私有 API,修改归 root 所有的偏好设置域,任何 macOS 更新都可能使其失效,而低于 80% 的路径「依赖于 Apple 可能会关闭的未经验证的代码路径」。

battery pull request 480 通过一个私有客户端类走了类似的路线,并报告称低于 80% 的上限会被固件拒绝,上限是由固件以大约 1.5 到 1.9 安培的电流对高于上限的电池放电来执行的,而且启用它会覆盖用户自己的 macOS 上限。这两种描述都来自 pull request 的作者,我没有测试过,该请求也尚未合并。

做法二:常驻辅助程序

Pull request 479 提出了一种由常驻辅助程序持有的可选策略,让它保持当前电量而不是充到满。其作者报告称,曾让一台 M3 Pro 在 87% 保持了 250 秒,并将睡眠、唤醒和重启时的行为列为未验证。这是一次实验,而不是一个完成的功能。

做法三:切断适配器

Pull request 478 试图抑制电源适配器本身。就该页面的总结来看,维护者的反对理由是:禁用适配器会让 Mac 改由电池供电而不是直通供电,从而造成持续的微循环,这违背了保护电池的初衷。一位评论者在 9 月 16 日是这样说的:「When you disable the adapter the mac starts to work on battery, while we want a power pass through」。作者承认了这一缺陷。

batt 项目采取了更为审慎的路线:适配器模式于 9 月 24 日合并,为可选功能,据该 pull request 的描述,它「在达到上限时切断市电,在降到下限时恢复」。其自身的说明称,在所测试的情形中,一块 66 Wh 的电池每天大约多出一个等效循环,并论证浅循环比长期停留在高电量更温和,同时承认它只会在 Mac 处于唤醒状态时执行上限。最后这一点很重要。笔记本整夜接着充电器睡眠,恰恰是内置固件上限表现更好的场景。

我的建议

对绝大多数人来说,这些分支没有一个比 Apple 自带的设置更好。它们是为需要低于 80% 上限、想要校准或放电功能,或是运行脚本化设备群的人准备的。如果你不是这类人,请使用「系统设置」,避开特权且不受支持的辅助程序所带来的风险。

现在该怎么办:分步方案

第 1 步:确认你的 Mac 是否真的在过度充电

查看菜单栏中的电池图标,或点按电池图标。如果 Mac 已插电且电量高于你预期的上限,那它多半没有被限制住。要在不借助第三方工具的情况下确认,请使用 Apple 自己的数据:

# Read the current percentage and whether AC power is connected
pmset -g batt

# Show the power source and battery details Apple exposes
system_profiler SPPowerDataType

这两条命令都只读取信息,不会更改任何内容。pmset -g batt 会打印充电百分比,以及 Mac 是否使用交流电并处于充电中或「已充满」。system_profiler SPPowerDataType 会打印电池信息,包括循环次数、状况,以及在许多 Mac 上的最大容量。具体字段名因机型和 macOS 版本而异,所以请阅读你的 Mac 实际输出的内容,而不是去找某个特定字符串。

第 2 步:先关闭第三方限制

在动 Apple 的设置之前,先让那个工具别再与之对抗。AlDente 自己的 FAQ 说,要把充电上限设回 100%,等待 30 秒让更改生效,退出 App,然后再删除它。如果你打算继续使用带有原生上限模式的 App,请改为遵循该项目的文档。

先这样做的原因是:仍然认为自己掌控着一切的辅助程序,可能会让充电器处于你看不到的状态。干净地交还控制权,可以降低出现怪异行为的概率。

第 3 步:设置 Apple 的充电上限

打开「系统设置」>「电池」,点按「充电」旁的信息按钮,选择一个上限。选哪个?Apple 的支持页面只说上限是 80% 到 100% 之间的自定义值,并没有告诉你哪个值最好。常见的思路是:80% 最保守,如果你偶尔会拔掉电源就出门,90% 是合理的折中,而 100% 则相当于关闭上限。请根据你使用 Mac 的方式来选择,并在你的日常安排变化时随时调整。

第 4 步:优化电池充电

在同一个界面上,「优化电池充电」是一个单独的开关。AlDente 的 FAQ 建议在 AlDente 掌控时把它关闭。我读到的 Apple 页面没有说使用充电上限时必须禁用它,所以保持开启是一个合理的默认选择。如果你看到奇怪的「充电已暂停」提示,请分别单独试验每个开关。

第 5 步:重启一次并验证

重启 Mac,插上电源,确认上限在「系统设置」中仍然处于已设置状态。这一步很重要,因为下一节要讨论的那个说法。它只需要一分钟,就能为你的机器解决这个问题。

内置上限在重启后会重置吗?

你会在各类汇总文章中看到这个说法。有些文章称,80% 的上限在 Golden Gate 中「每次重启后都会重置为 100%」。我试着追查过来源。MacPaw 指南写道「Some users have reported that the 80% charging limit resets to 100% after each restart」,且没有给出任何来源。我还打开了一些汇总文章引用的 OSXDaily 电池技巧文章,就我读到的内容,它根本没有讨论充电上限。我没有找到来自正式版本的一手论坛帖子、Apple 声明或 bug 报告。

还有一个相关的说法,来自一家竞争对手。AlDente 的 FAQ 称,「the macOS charge limit is also not persistent when the MacBook is turned off.」这是厂商的说法,而该厂商销售的是竞品。Apple 的支持页面在我读到的文字中没有提及持久性,MacRumors 对该功能的报道也没有涉及。因此这一点仍归入未证实之列。

你能做什么?测试一下,这很容易:

  1. 把上限设置为一个你能认出的值,例如 85%。
  2. 执行一次完整重启,而不只是睡眠。
  3. 打开「系统设置」>「电池」>「充电」旁的信息按钮,查看它显示的内容。
  4. 如果它已经恢复了原值,请记下你的 Mac 机型、macOS 构建版本,以及你是否使用优化电池充电,并通过「反馈助理」发送给 Apple。经确认的重置是值得上报的 bug。

还要记住另一个容易造成混淆的原因。即使上限正常工作,它也只是几个百分点范围内的目标值,并且按 Apple 的说法,电量下降 5% 后会恢复充电。看到设为 90% 的 Mac 显示 95%,并不等于发生了重置。

安全清理旧的充电上限辅助程序

如果你安装过这类工具,即使你把 App 拖进了废纸篓,它的一部分也可能仍以 root 身份运行。这一点现在很重要,原因有二:一个已经失效的辅助程序可能无害,但一个半失效的辅助程序仍可能尝试写入硬件控制项;而且辅助程序是以高权限持续运行的软件,没有理由就不该留着。

请按顺序操作,如果有任何看起来不熟悉的东西就停下。

如有卸载程序,请使用工具自带的卸载程序

移除特权辅助程序的正确方式是开发者提供的卸载途径。我核实过的文档中记载的选项:

  • batt:请根据你的安装方式遵循维护者的卸载说明。对于 Homebrew 安装,先运行 sudo batt disable,恢复默认充电上限;只有在该命令成功后,才运行 sudo brew services stop batt,然后运行 brew uninstall batt。如果任何命令失败或返回意外结果,请立即停止操作。对于脚本安装或手动安装,使用 sudo batt uninstall;对于 GUI 版本,请先选择「Uninstall Daemon...」,再删除 App。清理剩余配置或二进制文件时也请遵循同一份指南,不要猜测路径或使用通配符删除。
  • battery(actuallymentor):运行 battery uninstall。README 将其描述为启用充电、移除 smc 工具和 battery 脚本。
  • AlDente:按其 FAQ,把上限设回 100%,等待 30 秒,退出并删除 App。我读到的 FAQ 文字没有描述单独的辅助程序移除步骤,所以如果 App 内有相应选项就使用它,并检查下面几个部分。
  • Battery Toolkit:在我读到的页面中,没有找到有文档说明的卸载命令。删除 App 之前,请在 App 自己的菜单中查看是否有移除其后台服务的选项。

只读检查还剩下什么

以下命令只查看,不会更改任何内容。

# Third-party launch daemons (privileged background services)
ls -l /Library/LaunchDaemons

# Privileged helper executables installed by apps
ls -l /Library/PrivilegedHelperTools

# Any sudoers drop-ins added by command line tools
ls -l /etc/sudoers.d

查找与你所安装工具相关的名称,例如 batt 对应的 cc.chlc.batt 或 homebrew.mxcl.batt。名称匹配的文件只是一条线索,不能证明服务正在运行,也不能证明它是 App 卸载后的残留。如果你不认识某个文件,不要删除它;请先查阅开发者文档。

你也可以在「系统设置」>「通用」中查看「登录项与扩展」。现代 macOS 会在那里列出后台项目及注册它们的 App,你可以用开关将它们关闭。这是可以撤销的第一步。AlDente 的 issue 追踪器里有一份报告称,在 macOS 27 上出现了同名的重复后台项目,所以如果你看到两个条目,不必感到意外。

移除残留的守护进程

不要用通用的 launchctl 命令或文件删除步骤代替 App 文档中规定的卸载流程。「No such file or directory」并不能证明后台任务已经停止。如果你曾通过 sudo brew services 运行 batt v0.7.3 或更早版本,请阅读维护者关于 Homebrew 服务标签迁移的说明:旧的 cc.chlc.batt 任务可能仍处于注册状态,仅删除其 plist 并不会注销该任务。这份说明介绍的是迁移,而不是卸载流程;不要在卸载 batt 时执行其中的升级或启动步骤。如果卸载失败,或者无法确定安装方式,请停止操作,并向维护者或你的管理员寻求帮助。

不要这样做

  • 不要用通配符删除 /Library/LaunchDaemons 或 /Library/PrivilegedHelperTools 中的文件。Apple、安全工具和其他厂商也把文件放在那里。
  • 不要在没有读懂的情况下运行论坛帖子里随手贴出的清理脚本。
  • 不要为了绕过这些变化而关闭系统完整性保护。这里没有必要,而且会降低整个系统的防护。
  • 不要同时启用两个限制工具。两个都认为自己掌管充电的控制项,只会导致 AlDente 报告中出现的那种相互矛盾的行为。

如果你使用的是受管理的 Mac,请在移除任何内容之前先询问你的管理员;管理配置描述文件可能会重新安装工具,或期望它们存在。

电池健康背景:你可以自己核对的数字

充电上限的目的是延长电池寿命。最好把它量化出来,而不是凭信念接受,而 macOS 提供了你所需要的一切。

Apple 对循环次数的说法

Apple 的循环次数页面指出,要查看循环次数,需按住 Option 键,点按苹果菜单,选择「系统信息」,然后在「硬件」下选择「电源」。页面说明大多数现代 MacBook 的设计寿命为 1,000 次循环,并且电池「在达到最大循环次数时,设计上可保持不低于其原始充电容量的 80%」。一次循环是累计 100% 的放电量,而不是一次插电事件,所以两次各用掉 50% 只算一次。

通过「终端」读取

system_profiler SPPowerDataType 会打印电池信息,包括循环次数和状况,你可以对其进行过滤:

# Battery section only, with cycle count and health lines
system_profiler SPPowerDataType | grep -E "Cycle Count|Condition|Maximum Capacity"

grep 只是过滤输出。如果某一行没有出现,说明你的 Mac 不打印它,这没有问题。

要获取原始硬件数值,可以从 I/O 注册表中读取电池信息:

# Read-only: dump the smart battery registry entry
ioreg -rn AppleSmartBattery

包括一个关于 M3 Pro MacBook 的 Apple 社区帖子在内的社区来源,描述了这些字段:CycleCount、DesignCapacity(出厂容量,单位 mAh)、AppleRawMaxCapacity(当前满充容量,单位 mAh)和 NominalChargeCapacity。估算健康度的常见方法是用 AppleRawMaxCapacity 除以 DesignCapacity。在 Apple 芯片上,字段 MaxCapacity 读出的是百分比而不是 mAh。这些都是第三方对未公开字段的描述,所以请把结果当作有用的估算,而不是官方的健康数值。在同一个帖子里,有一位回复者提醒说,pmset -g rawbatt 的输出在 M 系列 Mac 上并不准确。「系统设置」的「电池」中显示的电池健康度,才是 Apple 支持的、可作为维修决策依据的数字。

一双技术人员的手托着一台拆掉了底壳的轻薄银色笔记本电脑,在工作灯下检查电池单元

化学原理究竟怎么说?

Mac 电池是锂离子电池,值得直接阅读 Apple 的电池性能指南。它将华氏 62 至 72 度(摄氏 16 至 22 度)称为其设备的理想舒适区间,警告环境温度高于华氏 95 度(摄氏 35 度)可能永久损害电池容量,并建议长期存放时充电至约 50%,避免充满或完全放空,因为这两种极端都可能降低容量。对于 MacBook,它给出的工作温度范围更宽,为华氏 50 至 95 度(摄氏 10 至 35 度)。Apple 还表示,其系统会管理充电模式和温度,而优化电池充电等功能会根据你的使用习惯进行调整,以延长使用寿命。

这就是 Apple 在那里所说的全部。它没有给出某个具体充电上限的量化收益。大体上,锂离子电池的损耗被认为在高电量和高温下更快,这也是充电上限背后的道理,但我不会引用寿命倍数,因为上限能带来多大帮助,取决于电芯设计、温度和使用方式。本站较早的一篇 2026 年指南引用了诸如 500 次循环后容量保持率之类的数字;请把它们当作粗略的经验法则,而不是你这台 Mac 的实测结果。想更深入了解电源管理,请参阅我们的电池诊断指南。

常见问题排查

设置了内置上限,我的 Mac 仍然充到 100%

首先确认你的 Mac 支持它。Apple 列出的要求是 Apple 芯片和 macOS Tahoe 26.4 或更高版本。打开「系统设置」>「电池」>「充电」旁的信息按钮,检查所选的值是否低于 100%。确保没有任何第三方辅助程序仍处于活动状态;请按上文的清理步骤逐一检查。如果你之前使用过「立即充满电」,那只是一次性的覆盖。重启,插上电源,并留意菜单栏中的「已充电至」提示。如果它仍然无视一个明显较低的上限,请收集 macOS 构建版本、Mac 机型和复现步骤,并提交反馈。

AlDente 显示已达到上限,但电量仍在上升

这与 issue 1840 和 1841 上的报告一致。退出 AlDente,先设置 100%,再切换到 Apple 的充电上限。然后检查辅助程序是否仍在运行(见上文的检查命令)。在重新启用它之前,请关注 AlDente 的 issue 和发行说明,等待官方更新。

插着电时电池在放电

有些工具会使用强制放电或切断适配器,这会让 Mac 即使插着电也由电池供电。batt 的文档指出,在 macOS 27 时代的固件上,当电量高于上限时 Mac 可能改由电池供电,另有一份 AlDente 报告描述了放电意外停止又重新开始的情况。如果你的 Mac 在连接电源时电池电量仍在下降,请按上文与你的安装方式相对应的步骤卸载该工具。如果卸载失败,请停止操作;否则请重启,然后只用 Apple 的设置重新测试。另外,低功率充电器也可能表现出类似现象:据 9to5Mac 报道,macOS 26.4 新增了慢速充电器提示,而且 Apple 针对各机型推荐了最低功率。

升级后 Mac 发烫、电量消耗很快

这是另一个问题:升级后的索引可能会造成一两天的发热和耗电。请参阅我们的 macOS 27 中 Spotlight 重新索引导致耗电的指南,并在评判上限是否生效之前,等索引完成。

「系统设置」中没有充电上限控件

先检查你的 Mac 和 macOS 版本。Apple 的页面要求 Apple 芯片和 macOS Tahoe 26.4 或更高版本。Intel Mac 和较旧的 macOS 版本不会显示它。如果你使用的是受支持的 Mac 和 macOS 27,请更新到最新的小版本,重启,然后再次在「系统设置」>「电池」>「充电」旁的信息按钮中查看。

低于 80% 的自定义上限

Apple 的设置最低只到 80%,我没有找到受支持的更低设置方式。能做到这一点的社区分支依赖私有 API,正如它们自己的 README 所警告的那样。

受管理的 Mac 与设备群

在推送 macOS 27 之前,先清点启动守护进程和特权辅助程序,在政策允许的情况下使用 Apple 受支持的设置,并先进行试点。我没有找到有文档说明的、针对充电上限的 MDM 键,所以不要假设它存在。如果考虑回退,请参阅降级助手。

常见问题

为什么我的充电上限 App 在 macOS 27 上停止工作了?

根据 GitHub 上开发者的报告,macOS 27 移除或锁定了这些 App 所写入的 SMC 充电控制键。这些键要么返回无数据,要么即使对 root 也会失败,而替代的控制项则位于 Apple 私有 entitlement 之后。Apple 没有公布细节,所以请将其视为开发者的分析,而不是 Apple 的声明。

可以放心依赖内置的充电上限吗?

可以。这是 Apple 自己受支持的功能。Apple 的支持页面说它需要 macOS Tahoe 26.4 或更高版本以及 Apple 芯片 Mac,允许你选择 80% 到 100%,并允许你用「立即充满电」来覆盖它。与第三方辅助程序不同,它不依赖不受支持的硬件键,所以未来的 macOS 更新不应该悄无声息地把它弄坏。

AlDente 会修复吗?

我不知道。截至 2026 年 9 月 30 日,GitHub 上最新的 issue 报告下我看不到任何开发者回复,也没有找到官方声明或日期。FAQ 将 macOS 27 列入自 AlDente 1.38 起支持的版本,但使用 1.39.4 的用户仍在报告过度充电。请关注厂商的发行说明,而不要依赖各类汇总文章。

内置上限在重启后会重置为 100% 吗?

未证实。一些汇总文章这样说,但没有一手来源,而一家竞争厂商的 FAQ 则声称它不具持久性。Apple 的支持页面没有涉及这一点。请在你自己的 Mac 上测试:设置一个容易辨认的上限,重启,然后检查「系统设置」。如果它恢复了,请通过「反馈助理」上报。

我可以继续使用切断适配器的模式吗?

它们被设计为可选功能是有原因的。battery 项目的维护者拒绝了禁用适配器的做法,因为它会导致持续的微循环,而 batt 在文档中说明其适配器模式会增加浅循环,并且只在 Mac 处于唤醒状态时才执行。如果你在特殊情况下需要一个硬性上限,请先了解这些取舍。对其他所有人来说,Apple 的上限更简单。

如何检查我的电池是否健康?

打开「系统设置」>「电池」并查看电池健康度,或按住 Option 键,点按苹果菜单并打开「系统信息」>「电源」查看循环次数。Apple 表示大多数现代 MacBook 的设计寿命为 1,000 次循环,并且在那时可保持最高 80% 的容量。像 system_profiler SPPowerDataType 这样的终端工具显示的是同样的数据。

我需要删除我的充电上限 App 吗?

如果它已经不能用了,需要,请正确卸载它,而不是让特权辅助程序继续运行。请使用开发者针对你的安装方式提供的卸载程序。对于 batt,请遵循上文步骤:Homebrew 用户必须先恢复默认充电上限,再停止服务并卸载;sudo batt uninstall 适用于脚本安装或手动安装。battery CLI 提供了 battery uninstall 命令。对于 AlDente,按其 FAQ,设置 100%,等待 30 秒,退出并删除。然后检查启动守护进程中是否有残留。

这会影响 Intel MacBook 吗?

Apple 的充电上限要求 Apple 芯片,所以 Intel MacBook 没有这个功能。优化电池充电从 Big Sur 起提供。我无法验证第三方工具在 macOS 27 下的 Intel Mac 上表现如何,所以请阅读你所用工具的文档,并首先确认你的 Mac 受支持。

结论

简而言之,macOS 27 破坏了一个由来已久的取巧办法,而这个办法的维护者们仍在摸索替代方案。AlDente、batt、Battery Toolkit 和 battery CLI 都建立在 Apple 从未承诺长期保留的硬件控制项之上,公开记录显示,这些控制项在测试期间乃至正式发布后逐渐消失或变得无法访问。与此同时,Apple 推出了受支持的充电上限,为大多数人完成了最重要的那部分工作:Mac 接着充电器放置时,让电池保持在满电以下。

所以实际的方案很简单。不要再依赖一个声称有上限却不执行的工具。干净地交还控制权,在「系统设置」>「电池」下设置 Apple 的充电上限,重启一次以验证它能保持,并使用开发者自己的卸载程序移除残留的特权辅助程序。用循环次数和电池健康度来衡量你的电池,而不是相信菜单栏图标。对于耸人听闻的说法,包括重启重置的传闻,在有人拿出可复现的案例之前,都把它们当作悬而未决的问题。如果你想要低于 80% 的上限,请接受这意味着你正在走出 Apple 受支持的路径。

这件事仍在变化之中。过去两周内,这些项目都有新的提交,而 macOS 27.0.1 并没有改变我所读到的那些报告所呈现的局面。随着各项目的回应,我会更新状态表。

相关阅读:macOS Tahoe 26.4 中的 Mac 电池充电上限、Tahoe 电池诊断指南、Tahoe 电池优化进阶指南、耗电修复指南、Golden Gate 发布日更新指南