My sister got a HTC Desire which had been rooted, for several month. It has been flashed for many a time also with ICS onto it.
It works quite well at first. However lately, the phone has been turning off at about 20%, far away from 0%...
She asked me for help though she had tried to find a solution, but fail. I got many different answers on google, but none seemed to work consistently for me. Until I tried running it flat, and charging the phone while it was off. Finally, after a couple of charges with the battery drained and off, it has recalibrated itself and now tells me approximately the right percentage of battery left. I am quite satisfy with the result that It turns off around 1% battery rather than 20% now.
I first discharge the phone until the phone turns itself off as per normal. Then charge it up until the light turns green. Turn it back on and use it normally until it was drained again. At this stage the battery indicator had already improved a bit, but was still off.
Then charge it back up until the light is green again after my second charge. Once the phone has been fully charged a second time, the battery indicator should be back to normal.
However after several weeks of charging it when it was not empty, it had gone back to turning off at about 20%. So I have to repeat the above procedure to calibrate it again. I just keep emptying it and charging the phone while it is off until it back to normal.
The battery meter of HTC relies on a ‘Coulomb Meter’ to measure how much battery has been used by the phone. If you charge the phone before it’s empty, eventually the coulomb meter gets inaccurate. This issue is more apparent in the old phone, so the battery doesn’t hold as much charge as when it’s new.
Hopefully this has helped someone out there with an annoying phone that turns off at 20% battery