限制 macOS 的最大充电电量

内容纲要

查看【 Apple】专题可浏览更多内容

前言

限制电池的最大充电量的目的是延长电池的健康和防止损害的电池。各种资料表明,锂离子电池的最佳充电范围在 40% 至 80% 之间,通常称为 40-80 法则 [1] [2] [3]。这对那些整天把 Mac 电脑都接着充电器的人特别有帮助。

Apple 在 macOS Catalina 10.15.5 才终于引入了电池健康管理功能,这在一些 PC 厂家上是已经实际应用很久的功能了,对于使用 macOS Catalina 10.15.5 以上版本及使用雷雳 3(Thunderbolt™3)端口的 Mac 你可以通过以下方法开启它:

选取苹果菜单  > 「系统偏好设置」,点按「电池」并在边栏中选择「电池」,然后点按「电池健康」。

限制 macOS 的最大充电电量

但个人觉得这个系统自带的功能并没有后面介绍的第三方工具好用

但如果你停留在了老系统或是使用的不是 Thunderbolt™3(2016 年以前)的 Mac 怎么办呢?

AlDente

AlDente 是一个图形化的限制最大充电百分比的 macOS 工具,但要求使用的是 macOS 11 Big Sur 及以上版本。

AlDente 下载地址:AlDente - Github

如果你的系统是旧版本的 macOS,可以使用 BCLM。

BCLM

BCLM 是一个包装器,用于在 Mac 计算机上向系统管理控制器(SMC)读取和写入电池最大充电电量(BCLM)值。这个项目的灵感来自于几个电池管理解决方案,包括苹果自己的电池健康管理。

如果正在使用 Homebrew 包管理器可以使用命令安装:

brew tap zackelia/formulae
brew install bclm

否则就需要手动下载:BCLM - Github

# 解压 bclm.zip
unzip bclm.zip
# 将其拷贝到 /usr/local/bin 目录
sudo cp bclm /usr/local/bin

⚠️ 注意:如果你使用的系统是 macOS Mojave 10.14.4 之前的版本,会遇到报错:dyld: Library not loaded: @rpath/libswiftCore.dylib Referenced from: /usr/local/bin/bclm Reason: image not found

这需要安装「Swift 5 Runtime Support for Command Line Tools」,你可以在 Apple 官网找到它:Download Swift 5 Runtime Support for Command Line Tools - Apple

bclm
OVERVIEW: Battery Charge Level Max (BCLM) Utility.

USAGE: bclm <subcommand>

OPTIONS:
  --version               显示版本。
  -h, --help              显示帮助信息。

SUBCOMMANDS:
  read                    读取 BCLM 值。
  write                   写入 BCLM 值。
  persist                 持久化 bclm。
  unpersist               取消持久化 bclm。

  查看 'bclm help <subcommand>' 获取详细帮助。

在写入数值时,macOS 的充电量会略微超过设定值(约3%)。为了在完全充电时显示 80%,建议将 BCLM 值设置为 77

sudo bclm write 77
bclm read
77

注意,写入数值时需要以 root 身份运行,但读取时则不需要这么做。

关于持久化

SMC 可以通过启动快捷方式或其他各种技术原因进行复位。为确保 BCLM 始终处于其预期值,应持久化使用。

这将在 /Library/LaunchDaemons 中创建一个新的 plist,并通过 launchctl 加载它。它将保持当前的 BCLM 值,并在后续的 BCLM 写操作中进行更新。

sudo bclm persist

同样,可以取消持久化,这将卸载 plist。

sudo bclm unpersist

延伸