【强迫症系列】OPPO 设备查询电池剩余容量


80 浏览
2397 字数
0 评论



一种查询 OPPO 设备查询电池剩余容量的方法


声明:这只是我偶然发现的一个方法,电池容量很可能不准确,仅供参考使用。强烈反对通过日志截图和日志内容去为难线下的人工客服要求换电池,或者在内测群凭借截图提出异议,这样只会导致这种方法被更快屏蔽。

和友商一样,OPPO 没有开放部分设备(或者说是大部分设备)的电池健康度查询功能,估计是对自己的电量算法不太自信。去售后到店可以免费人工查,但是也只能查出一个等级(优秀、良好、正常)。

但是谁愿意排那么长时间的队只是为了查询电池健康呢?
有些售后怕麻烦,甚至不给你查。根据你的手机使用时长,直接告诉你是否值得换电池。可能还要周旋很久才能查到。

其实 OPPO 设备(OPPO,一加)是支持开发者选项提交错误报告的,但是改了一点文本。「提交错误报告」的选项在开发者选项里面叫「蓝牙音频」。

话说回来就挺奇怪的,「蓝牙音频」这选项里面本来是该塞那些蓝牙编码器的,但是蓝牙编码器和蓝牙音频设置这些选项还是露在外面,就觉得有点可疑。

通过生成系统错误报告日志,可以大概查询系统内核的电池数据,从而获得大概的电池容量信息。[1]

步骤:

· 1. 设置 -> 系统设置 -> 开发者选项 -> 蓝牙音频

pic

(断网) -> 报告

· 2. 等报告生成,这个过程一般不会超过 5 分钟。

这时你应该就会发现这选项被打回原形了

pic

· 3. 报告生成后,分享错误报告到网络存储,或者是蓝牙传到电脑。
(别的手机或者本地查看也可以,但是因为内容海量,可能不好搜到,所以不是很建议)

pic

ColorOS 13 进一步阉割了这些选项,无法使用蓝牙。拥有互传联盟备用手机的用户仍可利用互传联盟查看。
如果身边没有其它设备,我推荐你借助阿里云盘进行网络传输。

电脑查看(推荐)

· 4. 电脑查看方式:将存储到网络存储或者是蓝牙传到电脑的文件下载下来,用压缩文件管理器打开。

pic

解压并打开里面 bugreport 开头的 txt 文本文件。这里推荐使用 Notepad++ 或者 Visual Studio Code 打开,速度会快很多。[1]
下面以 Visual Studio Code 为例:

· 5. 使用查找功能(Ctrl + F),查找关键词

healthd

pic

之后会列出一大堆含有这个关键词的内容,直接看内容即可。

pic
pic

如图所示,我搜索到的信息是:

healthd: battery l=59 v=3 t=31.6 h=2 st=4 c=115 fc=4178000 cc=1

大概表示的信息:

· l=59,电池电量为 59%
· v=3,电池电压为 3~4V(实际上是被限制读取)
· t=31.6,电池温度为 31.6℃
· h=2,电池健康参数为 Good(这是个枚举量)
· st=4,电池温控等级为 4
· c=115,实时放电电流为 115mA
· fc=4178000,串联电池组的等价剩余容量约为 4178mAh
· cc=1,电池充电循环次数为 1(绿厂电池管理芯片不支持该参数存储

这样就知道了电池的大概信息。如上面所示,我的手机最大电池容量还有 4178mAh。手机型号是一加 Ace,电池额定容量为 4500mAh。
按照这个参数来换算的话,我这台使用了一个半月的一加的剩余电池最大容量还有:
4178 / 4500 = 0.9284 ≈ 92.84%

目测的充电次数也只有不到 30,10 次极速闪充。
这才一个半月啊老哥

不过有一点可以确认,OPPO 的长寿命电池仿生修复技术引擎算法包括了截除部分电池最大容量,实现电池长寿命的使用。这个算法也是目前市面上主流使用的电池保养算法。

pic


手机查看

推荐安装 ZArchiver 查看,否则速度极慢。

· 4. 将存储在网络存储的错误日志下载到本地,移动到一个你比较容易找到的文件夹中。用压缩文件管理器打开。系统压缩文件管理器很废,打不开这个

· 5. 解压里面 bugreport 开头的文件,用系统文件管理器文本方式打开。
系统文件管理器打开文本的话是使用内置的 WPS 查看器,支持直接的搜索功能。
所以,直接在搜索框里面输入

healthd

之后会列出一大堆含有这个关键词的内容,和上面是一样的了。

pic


更准确的电池最大容量查询

这个方法适用于 2022 年 6 月之后发布的含有电池健康引擎的 OPPO 设备(包含一加,电池选项有下图所示的健康优化标志)。

在这之后发布的不含电池健康引擎的 OPPO 设备其实也可以用,但不保证真的有理论电池最大容量信息。

pic

虽然 OPPO 层层设限,但在系统日志中还是把电池健康引擎的电池状态寄存器给弄出来了,这大大方便了非 Root 用户,因为这个电池状态寄存器恰好储存了当前电池理论最大容量。

而读取电池状态寄存器的另外一种办法,是 Root 后通过内核调试日志读取。如果内核调试被干掉了,不但在错误日志中无法读取数据,而且无论是否获取了 Root 权限,不刷其他的内核将无法读取该数据。

其实很简单,方法和上面几乎是一样的,不同点在于,搜索的内容需要改成这个:(注意冒号)

gauge regs:

这是由电池健康引擎算出来的理论电池最大容量,大多数情况下,这个容量只会缓慢下降,不会大幅度波动。


完成。

因为健康算法的原因,当手机通过这种方式查询的电池容量低于 70% 时,可以考虑更换电池。如果电池容量低于 60%,代表电池损耗严重,请尽快更换电池。

因为绿厂自家的电池健康引擎缘故,这个电池容量很可能会不准确。 为了保护电池,一般都是偏低的容量。
所以当这里的最大容量低于 80% 时,实际的电池最大容量应该还在 85%~90% 之间。因此还需要继续往下推移。

绿厂很早就开始使用 3.87V/4.45V 的高压电池了,这种电池的特性是内阻极低,电池衰减基本只会导致容量下降和快充衰退,一般不会产生 3.85V/4.4V 电池因为内阻过大而放电不稳定的情况(表现为电量突然归 0)。不过也不排除偶然。当你的 OPPO 设备出现了突然关机 0 电量的情况,请立即售后检查。

如果是含有电池健康引擎的设备,且通过电池健康引擎方法查询更准确的电池最大容量,查询的容量会更高,这是真实意义上的电池最大容量。这个值低于额定容量的 80% 就需要考虑电池更换;低于额定容量的 70% 则请尽快更换电池,以免造成后盖鼓包。


其实很多品牌的手机都能用这种方式免 root 查询电池容量。但是有些厂商,为了防止用户挑刺,删掉了内核日志,那这样这种方法直接就没法用了。比如下面这台华为鸿蒙提取的文件和我提取的文件做对比:

pic
pic


2023-01-09 更新:

部分支持 OPPO 电池健康优化引擎的「长寿版快充」机型,由于 OPPO 自研电源管理芯片设定了长寿容量限制(智能最大容量),使用友商查询的传统方法查出来的电量会存在 5%~7% 的大浮动,因此友商查询方法只能作为参考,无法推测电池健康度的详细数值。

这也可以解释,为什么某个友商电池健康只按照等级计算,但是硬是不给出实际数值,因为电源管理芯片很普通,这些机型的电池健康浮动实在是太大了,没法给出实际的电池健康数值,还不如按照等级计算——包括 OPPO 较旧的无电池健康引擎机型,去售后自助查询也只会告诉你电池健康是什么等级(优,或者良)。

但是,OPPO 引以为傲的长寿电池健康引擎确实可以直接计算准确的电池最大容量,不过这个功能真正稳定下放是在 2022 年 11 月后发布的预搭载 ColorOS 13 的 OPPO 和一加机型(专门设置了查询电池最大容量的设置选项),而升级到 ColorOS 13 的机型可能会因厂商的原因告别可直接查询的电池最大容量选项,并不代表它不支持电池最大容量计算。

比如,我手上这台一加 Ace 没有电池最大容量查询的选项,但系统确实留了稳定的电池最大容量数值查询接口。


参考文章

[1] https://www.coolapk.com/feed/35861382


本文完成于 Obsidian

本文为原创文章,由 浮伦大麦茶 撰写,版权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
部分内容来源于网络,若有疑问可在评论区留邮箱与站长取得联系。

评论区

空空如也

写条评论吧