My original Li-ion has 3000 mAh capacity. I've modded my device to have a total of 7000 mAh capacity now.

The enhanced capacity means that my percentage is not displayed accurately anymore.

About 2000 mAh charge displays 75% charge. That means 5000 mAh are located in the top 25% of my battery indicator.

(Charging times confirm: 1 Hour @1800 mA goes from 25% to 75%, but 75 to 83 takes almost the same time and so on.)

I know a lot is possible with a rooted Android device but I'm not too much of a software person.

How can I change the percentages that display? There has to be some kind of lookup table where the Vbatt→"%" conversion is done.

Edit: If no one can help me, I am going to add a bunch of tp4056 chips to enable actually charging.

The software seems to mess around quite a bit.

Now my phone is charging the 2nd time, and (I assume because it is calculated that the battery should be “full” by now in terms of mAh) it has reached “100%” despite the Vbatt being 3.95 Volts. Actual charge is ~ 70% at max!

Here you can see it charged more than 2000 mAh after reaching “100%”. I stopped the charge at 4.2 V.

charging log

The lower portion reached 75% after 1000mAh and took 900 more for the rest. So this has lost all it's 'linearity'.

Can I (additionally to changing the display behavior) also change the charging algorithm?

Do I have to compile a kernel by myself? Is there settings for this? I want higher current first and very low current for the charging above 4.1 V.


2 Answers 2


Let's look at the challenges you would face in achieving correct reading, is not a magic key that let's you do everything easily:

  • The battery capacity (mAh) is coded in two places - the ROM and kernel (see Where are the battery capacity files located?) Only OEM would know from where the values are picked up, so you would need to have a custom ROM and kernel that stores this higher value. You would need to do this own and this is definitely not a trivial effort. ROM "chefs" wouldn't be interested in this (not appealing or in demand). You say you aren't a software person, so it's safe to discard this path.

  • The charging algorithm is also proprietary and not open source given the competition ( I can charge from xx to yy% in so many minutes is the sales pitch). So that's your next huge challenge since the charger, charging cable and the device need to be in sync with the algorithm. Impossible for you to replicate. See the charging algorithm (Source ) of an Anker power bank to get a sense of how challenging it would be to figure out on your own.

  • Charging incorrectly is going to damage your new battery and the purpose of acquiring it is partly defeated. This would be the result since you aren't easily going to achieve the first two points.

It is for these and probably more reasons that third party sellers who provide extended batteries do not attempt to show the correct percentage. Read the reviews of any such product and you will find complaints around this

What you can do

  • Use a battery bank of desired capacity.

  • Experiment at various charging speeds and arrive at a rough correlation between shown and actual voltages.

  • Rig up hardware based system as you suggested in your question (off-topic on this site)

  • Lazy possibility: make your own app which displays correct battery percentage Commented May 30, 2020 at 20:06
  • I think there is a guode out there to compile Lineage OS including the kernel. Given that I find the place where I can edit the capacity, that'd be a good start. For the charging algorithm, as far as I monitored my charging, that seems pretty straightforward. Charge slowly between 3.7 and 3.8 V, then full force 2500 mA while monitorimg temperature. Above 4.1 V slowing down drastically to squeeze the last Amp-hour into the Battery.
    – Oliver
    Commented May 30, 2020 at 22:39
  • As it seems, Samsung, by default does only switch the charging from constant current to constant voltage at 4.35 V. I definetly don't wish to go this brutal on my battery and keep a modest standard 4.2 Volts, maybe 4.25... Wish me luck with the kernel, I will start tomorrow
    – Oliver
    Commented May 30, 2020 at 22:58
  • Good luck and do come back to post your own answer here (it's allowed and appreciated). Some Samsung devices, have an option of disabling fast charge. If your device has that, than the charging process should be relatively simple compared to Quick Charge//switching to constant voltage at even lower %will help (Google Battery University and read up many articles there)
    – beeshyams
    Commented May 31, 2020 at 1:56
  • 1
    See this question for some useful pointers and on ACC app too
    – beeshyams
    Commented May 31, 2020 at 2:03

The go-to for my case would be not to edit voltages, but to change battery capacity in the system.

The device needs to be rooted in order to access and edit /etc/floating_feature.xml . This contains a section containing the capacity in mAh which can be edited to the desired amount (in my case 6500 mAh).

This is from a post by user Yamaha169 on XDA forums. (https://forum.xda-developers.com/s7-edge/help/mod-aftermarket-misreading-battery-t3510597/amp/)

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .