首页 > 资讯 > 告别第三方工具!macOS Terminal 直接查看更真实的电池健康度

告别第三方工具!macOS Terminal 直接查看更真实的电池健康度

事件背景

起因是之前发现 21 款的 MBP 电池不耐用了,所以就去 Apple Store 上检测了一下电脑;检测后电池寿命是 82%,还不能换电池……

不过有趣的是,确实和系统设置内的电池健康度不一样(86%):

于是就好奇,是不是有其他地方有电池的日志?

确实有,省流版本,Terminal 运行:

1

ioreg -rn AppleSmartBattery | awk '/AppleRawMaxCapacity/ {raw=$NF} /DesignCapacity/ {design=$NF} END {printf "电池健康度: %.1f%%n", raw/design*100}'

BASH

ioreg 命令

网上冲浪‍♂️了一下,发现 macOS 自带 ioreg 这个用于查询 I/O 注册表和信息结构:

https://www.manpagez.com/man/8/ioreg/

我们可以用这个命令查询设备树相关信息。常用的命令:

选项 说明 ioreg -l 显示所有设备的完整属性(比较长) ioreg -p IODeviceTree 查看设备树(类似 Linux 的 lspci) ioreg -p IOService 默认平面,显示服务层设备信息 ioreg -c IOService 仅显示 IOService 类及其子类的设备 ioreg -k BatteryPercent 查找包含 BatteryPercent 属性的设备(如电池信息) ioreg -n AppleSmartBattery 显示名为 AppleSmartBattery 的设备信息 ioreg -a -x 以 XML 格式输出,适合脚本解析 ioreg -r -d 1 递归查询并限制深度为 1,即: 仅显示顶层设备(常用)

支持创作

电池健康度

查看电池健康就是这个AppleSmartBattery:

主要的信息,配合 AI 分析,应该是:

电池状态​

字段 值 说明 ​​CurrentCapacity​​ 100 当前电量百分比(100% 表示满电) ​​MaxCapacity​​ 100 电池最大容量(百分比) ​​FullyCharged​​ Yes 是否已充满电 ​​IsCharging​​ No 当前是否在充电 ​​ExternalConnected​​ Yes 是否连接了电源适配器 ​​ExternalChargeCapable​​ Yes 电源适配器是否支持充电

电池硬件信息​

字段 值 说明 ​​DeviceName​​ "bq40z651" 电池控制器芯片型号(TI 的 BQ40Z651 电量计) ​​DesignCapacity​​ 6075 电池设计容量(单位:mAh) ​​NominalChargeCapacity​​ 5107 当前实际可用容量(可能因老化降低) ​​CycleCount​​ 216 电池循环次数(216 次) ​​DesignCycleCount9C​​ 1000 电池设计循环寿命(1000 次) ​​Temperature​​ 3061 电池温度(单位:0.1K,3061 = 30.61°C) ​​Serial​​ "F8Y3******LTAR" 电池序列号

如果我们想过滤看看电池是否在充电,配合 grep 我们过滤一下:

1

ioreg -n AppleSmartBattery -r | grep -E "CurrentCapacity|FullyCharged|IsCharging|ExternalConnected"

BASH

你也可以再优化一下:

1
2

# 提取为 key = value
ioreg -n AppleSmartBattery -r | grep -Eo '"CurrentCapacity" = [0-9]+|"FullyCharged" = w+|"IsCharging" = w+|"ExternalConnected" = w+'

BASH

AppleRawMaxCapacity 是当前的电池容量,DesignCapacity 为设计容量;那么配合 grep 来查看电池的健康度:

1
2
3
4

# 输出 电池健康度: 81.6%
ioreg -rn AppleSmartBattery | awk '/AppleRawMaxCapacity/ {raw=$NF} /DesignCapacity/ {design=$NF} END {printf "电池健康度: %.1f%%n", raw/design*100}'
# 输出 当前最大容量: 4957 mAh | 设计容量: 6075 mAh | 循环次数 216 次 | 健康度: 81.6%
ioreg -rn AppleSmartBattery | awk '/AppleRawMaxCapacity/{raw=$NF} /DesignCapacity/{design=$NF} /CycleCount/{cycle=$NF} END{printf "当前最大容量: %d mAh | 设计容量: %d mAh | 循环次数 %d 次 | 健康度: %.1f%%n", raw, design, cycle, (raw/design)*100}'

BASH

写在最后

其实,最开始我是在 stackoverflow 上看到 ioreg 的使用的。

后来是怎么发现电池健康度的测算呢? 是发现 coconutBattery 这个软件,读取的字段就是 AppleRawMaxCapacity 和 DesignCapacity:

最后,如果你觉得本篇教程对你有帮助,欢迎加入我们的开发者交流群: 812198734 ,一起交流学习,共同进步。

相关知识

怎么查看笔记本电池的健康度(笔记本电池健康状态查询方法)
笔记本如何查看电池寿命
macOS 10.15.5为Mac引入电池健康管理功能:可看健康度及延长电池寿命
iPhone电池健康度捷径查询工具,查看电池循环次数/寿命和16项数据
教你怎么查看mac电池健康度?揭秘怎么提升mac电池寿命
教你简单查看笔记本电脑电池健康度,保护你的设备!
如何查看电池健康状态
三星电池健康度怎么查看
如何查看iPhone电池真实健康度
怎么查看新能源电池报告?分享4个方法查看新能源电池健康度

网址: 告别第三方工具!macOS Terminal 直接查看更真实的电池健康度 https://m.trfsz.com/newsview1388180.html