As a battery ages, it loses capacity. Along with voltage, the charging current is an important criterion. By fully discharging and recharging, the battery management system (BMS) can recalibrate the percentage classification. While partial charging and discharging may extend the batteryās lifespan, it ultimately leads to a decoupling of the classification, which can result in unpleasant events such as a sudden shutdown of the device at 10% or similar occurrences. Until proper calibration is achieved, the percentage display is inaccurate and worthless.
When not calibrated and after a battery replacement, the new battery charges relatively quickly to 100%, as indicated by the old POWER_SUPPLY_CHARGE_FULL value. If you disconnect the charger at the indicated 100%, only a fraction of the actual capacity of the new battery is charged. This is evident because the charging current is still high at the indicated 100%, indicating that calibration is necessary. If this is not done, you are effectively only using the remaining capacity of the old battery with the new battery when relying on the percentage display.
I experienced this problem also on my Sony Xperia X Compact as well, but I thought it was just a display error without investigating or following up further.
Under Android, it was the case that after the battery replacement, the correct capacity was displayed immediately. The batteries have a small circuit board with monitoring, sensor, and protection functions. Itās possible that some values are not being transmitted or reset correctly after the exchange.
Thatās why I wonder where the problem lies. Was this calibration mechanism forgotten to be implemented or activated in the AOSP drivers/kernel provided by Sony, or is this function missing in (Community-Ports of) SailfishOS?
When my Jolla C2 is delivered and set up, I will flash my XZ2 Compact with the Sony stock ROM and see if that correctly calibrates the new battery and if it stays that way after SFOS is flashed back on. Maybe I can install the stock ROM on Slot B and change the bootloader without having to delete/overwrite SFOS!? I will report back.