[APP][ROOT][4.0+]Battery Charge Limit v1.1.1

Search This thread

amn1987

Senior Member
Android 10? This old phone was on 2.3.4, and CyanogenMod 11 (Android 4.4.4) is the most recent ROM I could find for it. I did not try Battery Charge Limit with anything else for the Samsung Gio.

In contrast, BCL works great on an LG G4 running /e/-OS based on Android 9, with control file data /sys/class/power_supply/battery/battery_charging_enabled, 1, 0. Permissions for the file are 644.

I'm wondering if different control file data is needed for the Gio, or if there could be another issue?
Oops! I misread it as Android 11. Anyways was BCL working OK previously?
 

nubla

Senior Member
Sep 7, 2020
84
31
OK. Check out all the other charge control files if any. Maybe a different kernel is needed or even a different ROM. Are you using Magisk?
No Magisk. I believe CyanogenMod is rooted by default. When BCL is started there is a popup that shows it is granted superuser rights.

BCL shows only one control file, /sys/class/power_supply/battery/status with states Charging and Discharging, nominally for a Motorola Defy+ MB526 (experimental). That file exists, but its value is always Charging even when the battery is at 100% and the lock screen shows "Charged".

Here are the contents of /sys/class/power_supply/battery:

Code:
[email protected]:/sys/class/power_supply/battery # ls -la
-rw-rw---- root     root         4096 2021-05-17 11:38 amp_down
-rw-rw---- root     root         4096 2021-05-17 11:38 batt_low_noty
-r--r--r-- root     root         4096 2021-05-17 00:37 batt_temp
-r--r--r-- root     root         4096 2021-05-17 11:38 batt_temp_adc
-r--r--r-- root     root         4096 2021-05-17 11:38 batt_temp_adc_aver
-r--r--r-- root     root         4096 2021-05-17 11:38 batt_temp_aver
-r--r--r-- root     root         4096 2021-05-17 11:38 batt_vf_adc
-r--r--r-- root     root         4096 2021-05-17 11:38 batt_vol
-r--r--r-- root     root         4096 2021-05-17 11:38 batt_vol_adc
-r--r--r-- root     root         4096 2021-05-17 11:38 batt_vol_adc_aver
-r--r--r-- root     root         4096 2021-05-17 11:38 batt_vol_aver
-rw-rw---- root     root         4096 2021-05-17 11:38 bt_down
-rw-rw---- root     root         4096 2021-05-17 11:38 camcoder_down
-rw-rw---- root     root         4096 2021-05-17 11:38 camera_down
-rw-rw---- root     root         4096 2021-05-17 11:38 camera_flash_down
-r--r--r-- root     root         4096 2021-05-17 00:37 capacity
-rw-rw---- root     root         4096 2021-05-17 11:38 control_tmp
lrwxrwxrwx root     root              2021-05-17 11:38 device -> ../../../msm-battery
-r--r--r-- root     root         4096 2021-05-17 00:37 health
-rw-rw---- root     root         4096 2021-05-17 11:38 keypad_backlight
-rw-rw---- root     root         4096 2021-05-17 11:38 lcd_backlight
-rw-rw---- root     root         4096 2021-05-17 11:38 lcd_dimming
drwxr-xr-x root     root              2021-05-17 11:38 power
-r--r--r-- root     root         4096 2021-05-17 00:37 present
-r--r--r-- root     root         4096 2021-05-17 00:37 status
lrwxrwxrwx root     root              2021-05-17 11:38 subsystem -> ../../../../../class/power_supply
-rw-rw---- root     root         4096 2021-05-17 11:38 talk_gsm
-rw-rw---- root     root         4096 2021-05-17 11:38 talk_wcdma
-r--r--r-- root     root         4096 2021-05-17 00:37 technology
-r--r--r-- root     root         4096 2021-05-17 11:38 type
-rw-r--r-- root     root         4096 2021-05-17 11:38 uevent
-rw-rw---- root     root         4096 2021-05-17 11:38 vibrator
-rw-rw---- root     root         4096 2021-05-17 11:38 video_down
-r--r--r-- root     root         4096 2021-05-17 11:38 voltage_max_design
-r--r--r-- root     root         4096 2021-05-17 11:38 voltage_min_design
-r--r--r-- root     root         4096 2021-05-17 00:37 voltage_now

There is also /sys/class/power_supply/ac:

Code:
[email protected]:/sys/class/power_supply/ac # ls -la
lrwxrwxrwx root     root              2021-05-17 11:53 device -> ../../../msm-battery
-r--r--r-- root     root         4096 2021-05-17 00:37 online
drwxr-xr-x root     root              2021-05-17 11:53 power
lrwxrwxrwx root     root              2021-05-17 11:53 subsystem -> ../../../../../class/power_supply
-r--r--r-- root     root         4096 2021-05-17 11:53 type
-rw-r--r-- root     root         4096 2021-05-17 11:53 uevent

Is there a way to tell if the current kernel is suitable? There aren't many options for a different newish ROM on this ancient phone.
 

Flyview

Senior Member
May 17, 2010
2,467
1,639
Toronto/San Diego
The app automatically disables BO IIRC. Since it's setup correctly maybe someone else can point out what's the issue.

I think the problem might be a trickle charge. Accubattery reports 2%/h charge even though BCL is saying it's just maintaining charge. That or something resets the file periodically, and BCL doesn't maintain it. Would you please post screenshots of exactly how you have it set up? There's a lot of options, maybe I haven't checked the right stuff for the Pixel 4 XL.

I might have to write my own app for this! :p This one hasn't been updated in 3 years?
 

amn1987

Senior Member
I think the problem might be a trickle charge. Accubattery reports 2%/h charge even though BCL is saying it's just maintaining charge. That or something resets the file periodically, and BCL doesn't maintain it. Would you please post screenshots of exactly how you have it set up? There's a lot of options, maybe I haven't checked the right stuff for the Pixel 4 XL.

I might have to write my own app for this! :p This one hasn't been updated in 3 years?
Having used BCL in my devices over the years from the last couple of months I have switched to using Tasker as it also allows battery temp. based controls. BCL had no issues with trickle charging at least in my case. I had manually limited charging current to 40mA. In my Poco F1 bypass charging used to kick in only when fully charged. But this wasn't an acceptable solution as charging to 100% and worse staying at that level for prolonged periods is undesirable. Instead just limiting the max. charging voltage to say 4.1V fools the system into thinking charging is complete and so bypass charging can be triggered at any arbitrary level.
If BCL isn't working out as expected maybe try Tasker or Macrodroid. Just a matter of using the right terminal commands.
 
  • Like
Reactions: Flyview

amn1987

Senior Member
No Magisk. I believe CyanogenMod is rooted by default. When BCL is started there is a popup that shows it is granted superuser rights.

BCL shows only one control file, /sys/class/power_supply/battery/status with states Charging and Discharging, nominally for a Motorola Defy+ MB526 (experimental). That file exists, but its value is always Charging even when the battery is at 100% and the lock screen shows "Charged".

Here are the contents of /sys/class/power_supply/battery:

Code:
[email protected]:/sys/class/power_supply/battery # ls -la
-rw-rw---- root     root         4096 2021-05-17 11:38 amp_down
-rw-rw---- root     root         4096 2021-05-17 11:38 batt_low_noty
-r--r--r-- root     root         4096 2021-05-17 00:37 batt_temp
-r--r--r-- root     root         4096 2021-05-17 11:38 batt_temp_adc
-r--r--r-- root     root         4096 2021-05-17 11:38 batt_temp_adc_aver
-r--r--r-- root     root         4096 2021-05-17 11:38 batt_temp_aver
-r--r--r-- root     root         4096 2021-05-17 11:38 batt_vf_adc
-r--r--r-- root     root         4096 2021-05-17 11:38 batt_vol
-r--r--r-- root     root         4096 2021-05-17 11:38 batt_vol_adc
-r--r--r-- root     root         4096 2021-05-17 11:38 batt_vol_adc_aver
-r--r--r-- root     root         4096 2021-05-17 11:38 batt_vol_aver
-rw-rw---- root     root         4096 2021-05-17 11:38 bt_down
-rw-rw---- root     root         4096 2021-05-17 11:38 camcoder_down
-rw-rw---- root     root         4096 2021-05-17 11:38 camera_down
-rw-rw---- root     root         4096 2021-05-17 11:38 camera_flash_down
-r--r--r-- root     root         4096 2021-05-17 00:37 capacity
-rw-rw---- root     root         4096 2021-05-17 11:38 control_tmp
lrwxrwxrwx root     root              2021-05-17 11:38 device -> ../../../msm-battery
-r--r--r-- root     root         4096 2021-05-17 00:37 health
-rw-rw---- root     root         4096 2021-05-17 11:38 keypad_backlight
-rw-rw---- root     root         4096 2021-05-17 11:38 lcd_backlight
-rw-rw---- root     root         4096 2021-05-17 11:38 lcd_dimming
drwxr-xr-x root     root              2021-05-17 11:38 power
-r--r--r-- root     root         4096 2021-05-17 00:37 present
-r--r--r-- root     root         4096 2021-05-17 00:37 status
lrwxrwxrwx root     root              2021-05-17 11:38 subsystem -> ../../../../../class/power_supply
-rw-rw---- root     root         4096 2021-05-17 11:38 talk_gsm
-rw-rw---- root     root         4096 2021-05-17 11:38 talk_wcdma
-r--r--r-- root     root         4096 2021-05-17 00:37 technology
-r--r--r-- root     root         4096 2021-05-17 11:38 type
-rw-r--r-- root     root         4096 2021-05-17 11:38 uevent
-rw-rw---- root     root         4096 2021-05-17 11:38 vibrator
-rw-rw---- root     root         4096 2021-05-17 11:38 video_down
-r--r--r-- root     root         4096 2021-05-17 11:38 voltage_max_design
-r--r--r-- root     root         4096 2021-05-17 11:38 voltage_min_design
-r--r--r-- root     root         4096 2021-05-17 00:37 voltage_now

There is also /sys/class/power_supply/ac:

Code:
[email protected]:/sys/class/power_supply/ac # ls -la
lrwxrwxrwx root     root              2021-05-17 11:53 device -> ../../../msm-battery
-r--r--r-- root     root         4096 2021-05-17 00:37 online
drwxr-xr-x root     root              2021-05-17 11:53 power
lrwxrwxrwx root     root              2021-05-17 11:53 subsystem -> ../../../../../class/power_supply
-r--r--r-- root     root         4096 2021-05-17 11:53 type
-rw-r--r-- root     root         4096 2021-05-17 11:53 uevent

Is there a way to tell if the current kernel is suitable? There aren't many options for a different newish ROM on this ancient phone.
None of those files look particularly promising. You might manually check them after excluding the ones that obviously aren't related to charging.
Just limiting the max. charging voltage is sufficient to limit the battery charge levels. But there's no voltage_max. Maybe try creating it on your own. In some devices the value there is in milli volts but in others it's micro volts.
 

Flyview

Senior Member
May 17, 2010
2,467
1,639
Toronto/San Diego
Having used BCL in my devices over the years from the last couple of months I have switched to using Tasker as it also allows battery temp. based controls. BCL had no issues with trickle charging at least in my case. I had manually limited charging current to 40mA. In my Poco F1 bypass charging used to kick in only when fully charged. But this wasn't an acceptable solution as charging to 100% and worse staying at that level for prolonged periods is undesirable. Instead just limiting the max. charging voltage to say 4.1V fools the system into thinking charging is complete and so bypass charging can be triggered at any arbitrary level.
If BCL isn't working out as expected maybe try Tasker or Macrodroid. Just a matter of using the right terminal commands.

I finally figured it out by trial and error:

For my Pixel 4XL I also needed these set to the opposite of their defaults:

Enforce charge limit: disabled
Always Write CFTRL File: enabled

Works like a charm now. I updated my initial post in this thread to include that for the Pixel 4 XL.

I would love to make a non-root app to accomplish this. I have an idea that might work. Are you able to do it without root with Tasker?
 

amn1987

Senior Member
None of those files look particularly promising. You might manually check them after excluding the ones that obviously aren't related to charging.

I finally figured it out by trial and error:

For my Pixel 4XL I also needed these set to the opposite of their defaults:

Enforce charge limit: disabled
Always Write CFTRL File: enabled

Works like a charm now. I updated my initial post in this thread to include that for the Pixel 4 XL.

I would love to make a non-root app to accomplish this. I have an idea that might work. Are you able to do it without root with Tasker?
No. Root is compulsory. Unless if it comes implemented out of the box in the ROM I think. Are you on the stock ROM? Smart Charging is included in most custom ROMs.
 
Last edited:
  • Like
Reactions: Flyview

nubla

Senior Member
Sep 7, 2020
84
31
None of those files look particularly promising. You might manually check them after excluding the ones that obviously aren't related to charging.
Just limiting the max. charging voltage is sufficient to limit the battery charge levels. But there's no voltage_max. Maybe try creating it on your own. In some devices the value there is in milli volts but in others it's micro volts.
Yeah, "status" seems like the most sensible file, but for some reason its value is not changing from "Charging".

I'm not able to create any new file (eg. voltage_max). Is there something simple I'm missing? I used adb, switch to root user, and neither "touch voltage_max" nor "vi voltage_max" create a file in the /sys/class/power_supply/battery directory. vi complains of "no such file or directory" when trying to save.
 

amn1987

Senior Member
Yeah, "status" seems like the most sensible file, but for some reason its value is not changing from "Charging".

I'm not able to create any new file (eg. voltage_max). Is there something simple I'm missing? I used adb, switch to root user, and neither "touch voltage_max" nor "vi voltage_max" create a file in the /sys/class/power_supply/battery directory. vi complains of "no such file or directory" when trying to save.
Could be a kernel or ROM limitation. At this point you could use a 1A charger and use Accubattery to sound an alarm when battery reaches say 75/80%. Voltage can't be modified but this should stop it from going much above 4.2V.
 

Dosclic98

Member
Nov 21, 2016
5
0
Hi, I am facing an issue where i connect my phone, the battery charges up to the set limit, it discharges down to the discharge limit but then it does not start the charge again. I am on Lineage OS 18.1 and Redmi note 7.
 

Top Liked Posts

  • 1
    After messing around with it last night, I was able to get it working on my 9 Pro.

    Have the control file data of
    /sys/class/oplus_chg/usb/chg_enable, 1, 0


    I don't have either of the advanced settings toggled on for it to work. Only tested it on USB and not sure if it'll work with the wireless charging as well.
    Sorry for my bad english
    Yeah after read this

    I've checked and found out control file on my phone Mi11ultra's control file for battery charge limit worked. Battery Charge Limit on Android 11 not work like before we known
    First, your device require root permission to run Battery Charge Limit, then go to setting

    Turn on "Configurable CTRL File Data" and touch "Configure Control Data" then touch "Understand" and type like below:

    /sys/class/qcom-battery/input_suspend
    0
    1


    then touch "UPDATE CONTROL FILE DATA" and done, battery charge limit worked

    You guys can watch video below for sure: From original control file not work then after re-config control file and work perfectly.
    P/s: From 84% to 85% i made app for auto charge limit itself and you guys can go to end of video for result.


    Good health for battery charge overnight
  • 4
    Works on my 6t also. Can't get it working on 9 Pro
    After messing around with it last night, I was able to get it working on my 9 Pro.

    Have the control file data of
    /sys/class/oplus_chg/usb/chg_enable, 1, 0


    I don't have either of the advanced settings toggled on for it to work. Only tested it on USB and not sure if it'll work with the wireless charging as well.
    2
    Can confirm, on OnePlus9 Pro it's working for wired and wireless charging with


    Code:
    wired:
    /sys/class/oplus_chg/usb/chg_enable, 1, 0
    wireless:
    /sys/class/oplus_chg/wireless/chg_enable, 1, 0

    I am changing always both files using Tasker. Working very well.
    1
    Sorry I have no idea. In some of my devices while charging control worked fine in older Android versions limiting max. charging voltage and current only started working in P/Q. Prior to that the files in control of charging voltage and current were read only.
    Can't that be at least temporarily addressed with adb and chmod? I noticed that my /sys/class/power_supply/battery/status file has 444 permissions, i.e. read only. With adb and chmod I changed it to 644, but I'm really confused why I cannot manually write to it with echo or vi, or create a new file in that directory.
    1
    The "status" file just reports the current state of charging whether plugged, unplugged or full. It doesn't have any control over charging.
    It's listed as an experimental control file: https://github.com/sriharshaarangi/...f/app/src/main/res/raw/control_files.json#L75

    None of the other control files exist on this Cyanogenmod 11 ROM for the Samsung Gio: https://forum.xda-developers.com/t/rom-cyanogenmod-11-final-05-08-2015.3066771/
    1
    After messing around with it last night, I was able to get it working on my 9 Pro.

    Have the control file data of
    /sys/class/oplus_chg/usb/chg_enable, 1, 0


    I don't have either of the advanced settings toggled on for it to work. Only tested it on USB and not sure if it'll work with the wireless charging as well.
    Going to try when I get home. Thanks for this.

    Edit. Can confirm this works on the wall charger. Thanks so much dude!
  • 393
    Please read the following before installing the app:
    • This app requires a rooted mobile (Android 4.0 or later)
    • Before uninstalling the app, disable limit in the app (if forgotten, reboot after uninstalling)

    Usage instructions and app details:
    • Enable limit in the app
    • Change the limit up to which it should charge (default: 80)
    • Check which control file suits best for your device, see Q/A section below for hints. In most cases, the pre-selected choice should be the best that's available for your device.
    • The app only gets kicked in while you connect a charger (or USB), and automatically closes shortly after unplugging charger (or USB) i.e it only runs in the background as long as it is plugged in, and won't affect your battery life.
    • If your device is not charging even after disabling the limit (which shouldn't happen, just in case), uninstall the app and reboot the device (The changes made by the app don't survive a reboot). Your device should charge normally then.

    If the app says "your device is not yet supported"
    There are various control files in different devices (due to OEMs), and toggling the values in them (0 and 1) makes it possible to enable and disable charging via software (might not be possible for every device), though the charging cable is still physically connected.
    Since we cannot own every device, it is impossible for us to find every file. We can support a lot more devices with information provided by testing possible files on different devices by you, the people in the community.
    Hence, for support to be provided to other devices, you need to do some detective work to find the files on the respective devices. Please refer to this file for control files of currently supported devices, so you can know where they are generally present: https://github.com/sriharshaarangi/BatteryChargeLimit/blob/master/app/src/main/res/raw/control_files.json
    You can send us a pull request or open an issue on GitHub. If necessary, you can also post the name of the device and the file here.

    FAQ
    Q) Can you please add support for... (insert arbitrary device name here)?
    A) Maybe, but we need your help. Bottom line, this app does nothing but modifying the content of a certain "control file", some more details are given above. If you find such a control file for your device, please let us know (ideally, open a GitHub issue here: https://github.com/sriharshaarangi/BatteryChargeLimit/issues) and we will add support for your device.

    Q) I think I observed a bug. Can you fix it?
    A) We'll do our best, but we need your help: Please open an issue on GitHub (https://github.com/sriharshaarangi/BatteryChargeLimit/issues) and provide as much information as possible about the problem.
    In most cases, we need the "logcat" logs of your device to find out about the exact issue. In order to provide those, you could use aLogcat (https://play.google.com/store/apps/details?id=rs.pedjaapps.alogcatroot.app).
    FOR CHARGING-RELATED ISSUES: Select the "Time" format in the preferences of aLogcat, so we can see precise timings, and filter for "(Charging|Power) State" with "Apply as regular expression" ticked.
    FOR CRASHES: Please also select the "Time" format and provide unfiltered logcat data that includes the stack trace of the crash.

    Q) Why do you want to limit charge to a lower capacity?
    A) In short, to prolong battery life in long term usage. For more information, refer this : http://batteryuniversity.com/learn/article/how_to_prolong_lithium_based_batteries

    Q) How does this app work? Does it modify something in the ROM/Kernel to stop charging?
    A) It writes "0" or "1" to a control file that represents some state of the power supply hardware, as simple as that. The file is normally read-only, so you need root to overwrite it.
    The change might be automatically reversed by the OS if the power supply situation changes. Anyway, it should never survive a reboot of the device.

    Q) I can select multiple more than one control file in the radio group. Which one should I use?
    A) For most devices, battery_charging_enabled or store_mode are preferable. Try those first and see if it works. If you observe any bugs, try another file.

    Q) I have a OnePlus device, and the app doesn't work correctly for me. What to do?
    A) Check that the control file you selected is NOT battery_charging_enabled! Although it should be preferred in general, there are known issues for this file with OnePlus devices.

    Q) I use the store_mode on a Samsung device. My device always stops charging at 70 % (or other specific percentage), no matter what limit I have set.
    A) The store_mode implementation differs among the supported (Samsung) devices.
    Normally, it freezes the level at the current percentage when store_mode is triggered until the cable is unplugged for some seconds. This is a normal condition due to Samsung's kernel implementation, it's not a bug of this app.
    If this is a problem for you, try to switch to another control file (e.g. batt_slate_mode), if supported.

    Q) How does the "automatic stats reset" work?
    A) The automatic reset should perform a stats reset when your power supply is removed while the battery level is within the desired range. Everything else is wrong behavior.

    Q) No matter if I the "automatic stats reset" is enabled or not, my phone is always resetting my battery statistics. Why?
    A) Are you using a threshold above 90%? If yes, your ROM will most likely clear the stats when the power is removed. There is nothing we can do about that.

    Downloads:
    The app is available on Google Play Store

    Alternate APK download links:
    v1.1.1: https://www.androidfilehost.com/?fid=674106145207486851
    v1.1.0: https://www.androidfilehost.com/?fid=817906626617956614
    v1.0.4: https://www.androidfilehost.com/?fid=889764386195927297
    v1.0.3: https://www.androidfilehost.com/?fid=745425885120755941
    v1.0.2: https://www.androidfilehost.com/?fid=889764386195923345
    v1.0.1: https://www.androidfilehost.com/?fid=889764386195919111
    v1.0.0: https://www.androidfilehost.com/?fid=817550096634789023
    v0.11.0: https://www.androidfilehost.com/?fid=961840155545580765
    v0.10.0: https://www.androidfilehost.com/?fid=961840155545576298
    v0.9.2: https://www.androidfilehost.com/?fid=457095661767160082
    v0.8.2: https://www.androidfilehost.com/?fid=673368273298951679

    Please uninstall versions < 0.8 before installing this!

    Changelog:

    1.1.1:
    • Fix charging status layout issues and misc UI fixes @xdnax
    • Added switch to disable toasts on service changes @xdnax
    • Added switch to show temperature in notification @xdnax
    • Ensuring write permissions on the charging control file @real_milux
    • Fixed notification sound on limit reach @sriharshaarangi
    • Fixed a bug causing crash
    • Added Russian translation
    • Updated Bengali, German and Brazilian Portuguese translations
    • Added control file for Amazon Tate (LineageOS 14.1)

    1.1.0:
    • UI & icon redesign @xdnax
    • Custom control file data support @xdnax
    • Improved control file lists @real_milux
    • ICS (Android 4.0, API 14) compatibility @real_milux
    • Pixel/Pixel 2 support fixes @xdnax
    • Added control files for Pixel/Pixel 2, Xiaomi Redmi Note 2, Sony XPERIA Mini, Le 1s, Huawei P10 lite, HTC One, Motorola Defy+, Xiaomi Mi A1
    • Bengali translation @AdroitAdorKhan
    • Spanish translation @Joseahfer
    • Lots of bugfixes and minor improvements

    1.0.4:
    • New "always write" setting for devices that modify their control files in a problematic way
    • Experimental support for Xiaomi MiPad 2, Nexus 5, Nexus 9, Galaxy Nexus (maguro) and Xiaomi Mi6

    1.0.3:
    • Fixed service starting after boot when disabled

    1.0.2:
    • Fixed ignoring "ACTION_POWER_CONNECTED" when service was disabled
    • Experimental support for Nexus 10, Nvidia Shield and Xiaomi Mi6

    1.0.1:
    • Added preference to disable limit enforcement aka "state fixing"
    • Added expert preference to enable immediate reaction to power state events (be careful!)

    1.0.0:
    • Tested Magisk 13.x support
    • Improved UI
    • Even higher service priority (against being killed by Android)
    • Online limit change support (limit changeable while service is active)
    • Settings with control file selection and temperature scale
    • Fahrenheit temperature info support
    • Greatly improved "state fixing" with exponentially increasing delay (hopefully fixing GitHub issue #15 aka "rapid cycling")
    • Greatly improved SU shell speed/performance
    • German translation

    0.11.0:
    • Improved UI (Using NumberPickers, GitHub issue #13)
    • Show voltage and temperature in app and notification (GitHub issue #14)

    0.10.0:
    • The recharge threshold can now be customized between 0 and the chosen charging limit
    • Sending a charging limit of 100 via (broadcast) intent will disable the service.
    • Sending values between 40 and 99 will enable and start the service if it was previously disabled.

    0.9.2:
    • Fixed crash on some devices that are unrooted or unsupported

    0.9.1:
    • Fixed widget not showing in some devices

    0.9:
    • Added Widget to toggle service
    • Added scrollable view

    0.8.2:
    • experimental Amazon Fire support

    0.8.1:
    • Bugfixes

    0.8:
    • State check after boot (starting monitoring service as necessary)
    • Bugfixes

    0.7:
    • Experimental support for Huawei and Nexus 4 devices
    • Support for external control over charging limit
    • Bug fixes

    0.5
    • Ability to select recharge limit (Range: 10%)
    • Automatic file selection
    • Added store_mode for Samsung devices
    • Added option to auto reset stats
    • (Huge code refactoring)

    0.3
    • Updated to support 7.1.1
    • Auto-select the battery charging file for Samsung, Pixel and Nexus devices
    • Added clear battery stats button
    • Auto-whitelisting from Doze mode

    XDA:DevDB Information
    Battery Charge Limit, App for all devices (see above for details)

    Contributors
    harsha1397, real_milux
    Source Code: https://github.com/sriharshaarangi/BatteryChargeLimit


    Version Information
    Status: Stable
    Current Stable Version: 1.1.1
    Stable Release Date: 2018-10-17
    Current Beta Version: 1.0.4
    Beta Release Date: 2017-09-04

    Created 2017-02-15
    Last Updated 2020-08-05
    57
    Todo:
    - Check for charging on device boot
    - Widget for quick toggle
    - Widget to reset batterystats
    - Limit reached alert
    - Low battery alert - Needs a service running in the background
    - UI overhaul
    - on/off switch to enable/disable charging
    38
    Announcement: Official Version 1.1.0, welcome @xdnax!

    Hello everybody,

    it has been quite a while since I wrote my last post here. The reason for this is rather simple:
    Apart from being very busy in the last months, I realized some time ago that I was investing more time in reading and answering posts in this thread than doing actual implementation work for BCL, which is definitely not my intended workflow.
    Therefore, I shifted my attention completely to GitHub, where the workflow was/is much more efficient.
    Some people here suggested to officially fork this project and continue it elsewhere. I want to say the following to those people:
    While it is in general a good thing that dead projects are forked and continued, good behavior demands to first open a GitHub issue asking whether the project is to be continued before suggesting an official fork, which did afaik not happen.
    Furthermore, a simple look at GitHub would have clearly revealed at all times that I was reacting to issues there on a regular basis, so our project was hardly inactive, and surely not dead!
    Luckily, @xdnax was considerate and smart enough to keep mentioning that he wants to respect our work and keep his fork unofficial for the moment, which deserves a huge THANK YOU from my side!

    Talking about @xdnax:
    He did a great job in contributing to the development of this app during the last months.
    Unfortunately, I didn't have his contributions on my radar for quite a while.
    Since we love to work with other motivated and decent developers like him, we are happy to announce that he is now the third "official developmer" of BCL.
    Welcome to the team, @xdnax!

    Some people noticed the appearance of a semi-official version 1.0.5.
    Although I never had time to publish an official build, I indeed created this version and uploaded it with a "v1.0.5" tag to our GitHub repo.
    This is where the F-Droid build system picked it up and created an APK from it, which I myself wasn't aware of for some while. Sorry for the confusion guys...

    During the last days, we organized our internal communication and unified our contributions to bring out a new official version.
    Well, here we go: I'm happy to announce that we finally release version 1.1.0!
    Link: https://www.androidfilehost.com/?fid=817906626617956614
    Please don't get confused about the numbering: This release includes all improvements of @xdnax and more, and is not a major version step because it doesn't introduce any breaking behavior changes.
    Happy charging, opening post will be updated soon!

    Changelog:
    • UI & icon redesign @xdnax
    • Custom control file data support @xdnax
    • Improved control file lists @real_milux
    • ICS (Android 4.0, API 14) compatibility @real_milux
    • Pixel/Pixel 2 support fixes @xdnax
    • Added control files for Pixel/Pixel 2, Xiaomi Redmi Note 2, Sony XPERIA Mini, Le 1s, Huawei P10 lite, HTC One, Motorola Defy+, Xiaomi Mi A1
    • Bengali translation @AdroitAdorKhan
    • Lots of bugfixes and minor improvements
    22
    Source code: https://github.com/sriharshaarangi/BatteryChargeLimit
    App v0.3: https://www.androidfilehost.com/?fid=745425885120716170
    Changelog:
    - Updated to support 7.1.1
    - Auto-select the battery charging file for Samsung, Pixel and Newus devices
    - Added clear battery stats button
    - Auto-whitelisting from doze
    19
    Update to version 1.1.1

    This is mainly a bug fixing update, with loads of improvements. Should reduce crashes as well.
    Download link: https://www.androidfilehost.com/?fid=674106145207486851
    The update will be available on Play Store soon[UPDATE: Now available]
    Changelog:
    • Fix charging status layout issues and misc UI fixes @xdnax
    • Added (i) Switch to disable toasts on service changes (ii)Add switch to show temp. in notification @xdnax
    • Ensuring write permissions on the charging control file @real_milux
    • Fixed notification sound on limit reach @sriharshaarangi
    • Fixed a bug causing crash
    • Added Russian translation
    • Updated Bengali, German and Brazilian Portuguese translations
    • Added control file for Amazon Tate
    • Other minor fixes