内容纲要

前言

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

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

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

BCLM

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

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

安装

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

$ brew tap zackelia/formulae
$ brew install bclm

否则就需要手动下载:🔗 BCLM

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

使用方法

$ 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

延伸