os-issue-tracker icon indicating copy to clipboard operation
os-issue-tracker copied to clipboard

Battery charge limits (e.g. max 85%) to improve battery health over time

Open sandreas opened this issue 1 year ago • 7 comments

Usually, the battery of my phone charges until it hits 100% charging level.

I would love to see a feature to limit the charging level to e.g. 85%. This would improve battery health over time. This setting is also present in Lenovo Notebooks.

sandreas avatar Feb 10 '24 21:02 sandreas

FWIW the pixel tablet restricts charging to ~80% when on the provided dock..

snrkl avatar Mar 17 '24 08:03 snrkl

@thestinger Is there any way to vote for this feature? I wonder if thumbsup clicks are recognized in any way...

sandreas avatar Mar 17 '24 11:03 sandreas

You can use the thumbs up reaction to express support for it. Please don't use comments for it. Doesn't mean it will get prioritized.

thestinger avatar Mar 17 '24 14:03 thestinger

To add a little more here... It appears there's a Magisk module (link) that already do that as well as a front-end app (link). The main issue though is this solution require root access to the device to control the android kernel behavior.

To be confirmed, but it feels like this would require a tight integration into GrapheneOS as exposing root is a no.

aureq avatar Mar 24 '24 01:03 aureq

@aureq

Yeah there is a reddit post claiming, that the indicator totally is a lie and 100% actually represents 80%-90% charging level to optimize the battery life and 80% would be somewhere around 64% in reality.

However, although this sounds plausible, I would love to hear that from a developer posting a code reference - I did not find something reliable anywhere.

sandreas avatar Mar 24 '24 07:03 sandreas

First, that feature is an absolute and hard requirement for devices that expected to last 3+ years! I can understand why Google won't implement it as a manual option (dumb users, AI propagation, short device upgrade cycles etc) but I can't figure why it is not a standard option on GrapheneOS especially when configuring battery charging limits on Tensor SOCs is as simple as:

echo 80 > /sys/devices/platform/google,charger/charge_start_level
echo 85 > /sys/devices/platform/google,charger/charge_stop_level

And this is exactly how Pixel's "AI" does it to optimize the battery

Unfortunately, that requires root access or integration in the OS. It should pretty trivial to do and I hope there will enough pressure on Graphene to do that since that's the only thing keeping me from using GrapheneOS.

Regarding "fake" charge levels, it's incorrect. Android's "charge control" will inform you about if and when it does the "optimization" and you'll continue to see the actual battery state of charge.

eugenesan avatar Apr 21 '24 18:04 eugenesan