[Samsung Galaxy SL i9003] supergaijin:
*this technique needs root access, and make sure you're in r/w permissions at the time you try to make/replace your copy of the file!

I know there is a thread about how to calibrate your battery, linked in my sig already, but I figured I'd try preempting needing significant calibration by doing something that's actually just as simple.

it occurred to me that one of the causes of improper calibration is backing up/restoring/flashing at various levels of battery charge. so, for those not in a rush, you can choose to always do your stuff at full charge, just after your phone stops charging.

in addition, to help ensure the closest to 100% accurate information is in your batterystats.bin:

1) charge your phone and immediately remove the phone from the charger

2) using root explore or other similar root file apps, go into /data/system/ and make a copy of the batterystats.bin file and put it on your REMOVABLE sd card and if you like, make an additional copy on your computer as backup.

* if done right, at the time you make your copy of the battery stats.bin file, it will be around 3kb. if you see 5kb-25kb, there is other information being held in the file from the time it was charging, and unplugging the charger and closing the root exploration and reopening it to the batterystats.bin file should be enough to clear it out so you only see it at 3kb in size. I have tested with a 5kb file and it doesn't see to be inaccurate. just don't use one with 25kb or it might ruin your calibration and you'll have to start over.

making this backup copy of the batterystats.bin file will also help shorten any calibration time needed when you have to restore/flash at other than 100% charge. to do this:

1) after flashing/restoring, start charging your phone to 100%

2) while your phone is charging, prepare your copy of the fully calibrated batterystats.bin on your sd card

3) as soon as your phone reaches 100% charge, make a copy of the batterystats.bin that you have on your sd card, and replace the one in /data/system/ with that copy. this will basically give you a fully calibrated battery with little to no draining/recharging.

i did this test that the time I upgraded from kph to kpq, and here are my results, with kpq, cranium 5.1, and uc kernel 5 test 6 (green obsession is my theme, but shouldn't have any effect on battery life)

the results you see here are similar to the battery test I did on cranium 3.1. at that time, I only played angry birds for about 23 minutes, and my phone lasted an extra day under otherwise similar usage compared to this test. notice my battery doesn't increase and decrease the charge without using the charger or without explanation. I simply chose to kill the battery at the end because I wanted to do more testing on other things. those currently in the process of flashing may want to try this and give feedback. hope this helps you guys with your batteries!

*for those willing to test (at your own risk), I have attached my 3.2kb copy of a fully calibrated battery just after reaching 100% charge and disconnecting the charger! this is not flashable; you must extract and insert it manually using any root exploration app.

I recommend making a backup of your personal batterystats.bin file before trying this, in case each phone is individualized. after replacing yours with this, if it's not working and you decide to switch back, unless you switch back at the same charge level/state, you'll likely have to recalibrate anyway.

*the batterystats.bin currently attached is only for GB roms, since I can't be sure how froyo, miui, or cyanogenmod use information from this file. I wll upload a miui stats later.