Advanced Charging Controller

ACC is a complex Android tool that was made mostly to improve and lengthen the life of your device’s battery. The main idea behind how it works is to intelligently control and limit important charging parameters like voltage levels, battery temperature, and electrical current. This module is made to work with a wide range of root solutions. Also, it always installs “systemless,” which means it won’t change your system partition, no matter what rooting method you use, like KernelSU, Magisk, or another one.

Essential Prerequisites

Please make sure your system meets the following requirements in order to install and use ACC successfully:

*Note on Busybox: A busybox binary can be manually placed in the /data/adb/vr25/bin/ directory. The correct permissions (0755) will be applied automatically by ACC as needed. The software follows a specific precedence for locating Busybox: /data/adb/vr25/bin/busybox > KernelSU/Magisk’s integrated busybox > system’s native busybox. Other executables can also be placed in this directory to be used without system-wide installation.

Configuration and Usage

Because it relies on a reliable default configuration, ACC is designed to function immediately out of the box and requires little to no user intervention.

The main command for using the software is “acc.” When you run this command, a full configuration wizard opens up and walks you through the choices.

There are a number of front-end applications for people who like a graphical interface better than the command line. Advanced users can also change the configuration file at /data/adb/vr25/acc-data/config.txt directly with a text editor. The instructions in this file are very similar to the ones in the default configuration section.

Key Terminal Commands

For a full list of commands and options, execute: acc --help

Extending Functionality with Plugins

Users make plugins, which are scripts that change the default functions and some global variables, making it possible to customize things in great detail. Put these scripts in the /data/adb/vr25/acc-data/plugins/ folder.

For testing or debugging purposes, ACC also works with “volatile” plugins that are put in the folder /dev/.vr25/acc/plugins/. These are removed when the computer is restarted and are more important than permanent plugins. You need to restart the ACC daemon for any new or changed plugins to work. You can use one-line scripts instead of full plugin scripts. For more information, see the default configuration section.

Professional Tips and Best Practices

Always Limit Charging Current on Older Batteries

If your battery is old or discharges quickly, consistently limiting the charging current can greatly extend its life and may even improve how it discharges.

Generic Device Tips

You can use the command below to force fast charging on devices that support it: appy_on_boot="/sys/kernel/fast_charge/force_fast_charge::1::0 usb/boost_current::1::0 charger/boost_current::1::0".

Google Pixel Device Optimization

You can use this setting to allow fast wireless charging with third-party chargers that work with it: apply_on_plug=wireless/voltage_max::9000000. Keep in mind that this might not work on all Pixel models, and it won’t hurt anything if it doesn’t.

Exporting and Importing Configurations

Overriding Battery mAh Capacity

If you have installed a battery with more capacity, the system’s kernel may still keep the stock charge_full_design value, which could stop it from fully charging. If your device supports it, you can change this by using apply_on_boot to set the new capacity value in the right /sys/class/power_supply/*/charge_full_design file.

Fixing a Broken Temperature Sensor

If your device’s thermistor reports erroneous negative temperature values, causing charging to be slow or disabled, execute the following command in a terminal to attempt a fix: acc -c d temp_cool; acc -c a ':; for i in */temp_cool */temp_cold; do [ -f $i ] || continue; chown 0:0 $i && chmod 0644 $i && echo "-999" > $i && chown 0444 $i || :; done'


Frequently Asked Questions (FAQ)

How can I report an issue or bug? Please open an issue on the project’s GitHub page or contact the developer through Telegram (preferred) or XDA if you need technical help or want to report a problem. Give as much information as you can when you report. It’s very important that you run acc -le right after the problem happens to make a log file. Then, attach the /sdcard/Download/acc-logs-*.tgz file to your report.

Why is my device not yet supported? It can be hard to get device support. Some systems don’t have easy-to-use charging control files, so you have to do a lot of research and come up with your own solutions. Some systems might not even let you change the charging controls. In these situations, trying out different custom kernels and sending power supply logs can help with the development process. Thank you very much for being patient. When and why should I perform a battery calibration? Most of the time, modern battery management systems don’t need to be calibrated. But if your battery is really not working well, you might want to try the steps in this guide: How to Calibrate a Smart Battery. Is it safer to limit charging by voltage (e.g., 4080mV) or by percentage (e.g., pausing and resuming between 74-75%)? The main goal is to make electrons more stable by controlling both voltage (pressure) and current flow. If the device isn’t plugged in for too long, limiting the voltage to a level below the standard 4200mV is a good way to do it on its own. The pause/resume method based on percentages is better for shortening the time spent in high-voltage areas. The best way to do things is to use both methods. Turn on a cooldown cycle for even more benefits. Keep in mind that lithium-ion batteries lose power when they are kept at very high or very low states of charge for a long time.

What is the purpose of the -f|--force|--full [capacity] option? This option is for when you need to charge your battery as quickly as possible, without using your normal ACC settings. Think about a time when you were going to travel, wouldn’t be able to charge your phone, and needed a full battery. This command lets you charge your device fully once without having to change your settings or restart the daemon. Is it necessary to update both ACC and its graphical front-end (e.g., AccA)? ACC is the main back-end service that handles the logic for charging. AccA is a GUI (graphical user interface) that makes it easy to use ACC’s command-line interface (CLI). AccA comes with a version of ACC, but you can update the core ACC module on its own by flashing the most recent ZIP file. It’s usually best to keep both up to date, but if your current setup is stable, you don’t need to update right away. You can think of ACC as the engine and AccA as the dashboard. You can upgrade the engine for better performance even if the dashboard stays the same. Does ACC function when the device is powered off? No, ACC needs the Android operating system to work. But it does work in recovery mode. People are currently looking into the possibility of controlling charging while not connected to the internet. I’m experiencing a wakelock after charging is paused. How can this be resolved? The best thing to do is to find and use a charging switch that doesn’t cause a wakelock. Setting your resume capacity just below your pause capacity is a common and effective way to get around this. For example, you could set resume_capacity=74 and pause_capacity=75. What is idle mode and how can I configure it? Idle mode, also called passthrough charging, lets the device run directly from the charger’s power while the battery is disconnected and doesn’t charge or discharge. A charging current close to 0mA shows this. This mode is great for long periods of use while plugged in, like gaming, navigation, or using it as a server, because it puts less stress on the battery. When the battery is between 40% and 60% full, it is best for its health to use idle mode. If your device doesn’t support native idle mode, you can use these emulated methods:

How do I configure “smart charging” profiles? You can create scheduled profiles for different times of the day. For example, to set a day and night profile, use the following commands: acc -c a ": day profile; at 6:00 \"acc -s pc=75 mcc= mcv=4100; acc -n 'Switched to day profile'\""; acc -c a ": night profile; at 22:00 \"acc -s pc=50 mcc=500 mcv=3900; acc -n 'Switched to night profile'\""

Download Link

Module Info

Search on : Google Bing Yandex