Coder Social home page Coder Social logo

vaginessa / acca Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mattecarra/acca

0.0 1.0 0.0 6.15 MB

Acc app allows to edit acc config file and add a tile to start and stop acc deamon

License: GNU General Public License v3.0

Kotlin 99.14% Shell 0.86%

acca's Introduction

Advanced Charging Controller App (AccA)


LEGAL

Copyright (c) 2019, MatteCarra, VR25, Squabbi

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.


DISCLAIMER

Always read/reread this reference prior to installing/upgrading this software.

While no cats have been harmed, the authors assume no responsibility for anything that might break due to the use/misuse of it.

To prevent fraud, do NOT mirror any link associated with this project; do NOT share APKs! Share the official releases link instead.


WARNING

ACC manipulates Android low level (kernel) parameters which control the charging circuitry. The author assumes no responsibility under anything that might break due to the use/misuse of this software. By choosing to use/misuse ACC, you agree to do so at your own risk!


DESCRIPTION

ACC is primarily intended for extending battery service life. On the flip side, the name says it all.

AccA is an official ACC front-end app. It targets mainly those who feel uncomfortable with terminal.


PREREQUISITES

  • Android or Android based OS
  • Any root solution (e.g., Magisk)
  • Busybox (only if not rooted with Magisk)

Notes

  • ACC comes bundled into AccA. Any existing version is automatically replaced.
  • Uninstalling AccA also removes ACC.
  • The GUIs for ACC upgrade/downgrade are work in progress. Meanwhile, you can upgrade/downgrade from Magisk Manager, EX/FK Kernel Manager, or similar app. Alternatively, the acc --upgrade command can be used; for details, run acc --help.

USAGE

ACC is designed to run out of the box, without user intervention. You can simply install it and forget. However, as it's been observed, most people will want to tweak settings - and obviously everyone will want to know whether the thing is actually working.

AccA's user interface is intuitive and displays configuration information/tips so that users don't have to read documentation to find their way. However, it's still highly recommended to read ACC's documentation in order to have a broader understanding of how ACC and AccA work together.


TROUBLESHOOTING

AccA Says "Daemon Is Not Running", Despite acc -D Showing Otherwise

  • ACC language must be set to English (language=en). AccA doesn't work with other ACC languages.
  • AccA must run as root.
  • Make sure you have the latest version.

Battery Capacity (% Level) is Misreported

The "smart" battery must be calibrated. Refer to the FAQ section below for details.

Charging Switch

By default, ACC uses whatever charging switch works.

If prioritizeBattIdleMode is enabled, charging switches that support battery idle mode take precedence - allowing the device to draw power directly from the external power supply when charging is paused.

However, things don't always go well.

  • Some switches are unreliable under certain conditions (e.g., screen off).
  • Others hold a wakelock - causing faster battery drain.
  • High CPU load and inability to re-enable charging may also be experienced.

In such situations, you have to find and enforce a switch that works as expected. Here's how to do it:

  1. Run acc -test -- (or acc -t --) to see which switches work.
  2. Run acc --set chargingSwitch (or acc -s s) to enforce a working switch. Alternatively, this can be done from the app.
  3. Test the reliability of the set switch. If it doesn't work properly, try another one.

Charging Voltage And Current Limits

Unfortunately, not all kernels support these features. Those that do are rare. Most OEMs don't care about that.

The existence of potential voltage/current control file doesn't necessarily mean these features are supported.

Restore Default Config

The app offers that option. Alternatively, you can run acc --set reset (or acc -s r).

Slow Charging

Check whether charging current in being limited by applyOnPlug or applyOnBoot.

Set coolDownCapacity to 101, nullify coolDownRatio (from the app, or by running acc --set coolDownRatio), or change its value. By default, coolDownRatio is unset/null.

Diagnostics/Logs

Logs are stored at /sbin/.acc/. You can export all to /sdcard/acc-logs-$device.tar.bz2 with acc --log --export. In addition to acc logs, the archive includes charging-ctrl-files.txt, charging-voltage-ctrl-files.txt, config.txt, magisk.log, and everything from /data/adb/acc-*/logs/.

Installation and initialization logs are located at /data/adb/acc-*/logs/.

The existence of /dev/acc-modpath-not-found indicates a fatal ACC initialization error.


POWER SUPPLY LOG

Please upload /sbin/.acc/acc-power_supply-*.log to this dropbox. This file contains invaluable power supply information, such as battery details and available charging control files. A public database is being built for mutual benefit. Your cooperation is greatly appreciated.

Privacy Notes

  • When asked for a name, give your XDA username or any random name.
  • For the email, you can type something like [email protected].

Example

See current submissions here.


LOCALIZATION

Help us with translations at CrowdIn!


TIPS

Generic

Control the max USB input current: applyOnPlug=usb/current_max:MICRO_AMPS (e.g., 1000000, that's 1A)

Force fast charge: applyOnBoot=/sys/kernel/fast_charge/force_fast_charge:1

Use voltage control file as charging switch file (beta, battery idle mode support): chagingSwitch=FILE DEFAULT_VOLTAGE STOP_VOLTAGE (e.g., chagingSwitch=battery/voltage_max 4380000 3500000)

Google Pixel

Force fast wireless charging with third party wireless chargers that are supposed to charge the battery faster: applyOnPlug=wireless/voltage_max:9000000.

Razer Phone

Alternate charging control configuration:

applyOnBoot=razer_charge_limit_enable:1 usb/device/razer_charge_limit_max:80 usb/device/razer_charge_limit_dropdown:70 --exit

Samsung

The following files could be used for controlling charging current and voltage (with applyOnBoot or applyOnPlug):

battery/batt_tune_fast_charge_current

battery/batt_tune_input_charge_current

battery/batt_tune_float_voltage

FREQUENTLY ASKED QUESTIONS (FAQ)

How do I report issues?

Open issues on GitHub or contact the developers on Telegram/XDA (linked below). Always provide as much information as possible, and attach /sdcard/acc-logs-*tar.bz2. This file is generated automatically. When this doesn't happen, run acc --log --export shortly after the problem occurs.

What's "battery idle" mode?

That's a device's ability to draw power directly from an external power supply when charging is disabled or the battery is pulled out. The Motorola Moto G4 Play and many other smartphones can do that. Run acc -t -- or use the app to test yours.

What's "cool down" capacity for?

It's meant for reducing stress induced by prolonged high charging voltage (e.g., 4.20 Volts). It's a fair alternative to the charging voltage limit feature.

Why won't you support my device? I've been waiting for ages!

First, never lose hope! Second, several systems don't have intuitive charging control files; I have to dig deeper and improvise; this takes extra time and effort. Lastly, some systems don't support custom charging control at all; in such cases, you have to keep trying different kernels and uploading the respective power supply logs.

Why, when and how should I calibrate the battery?

Refer to https://batteryuniversity.com/index.php/learn/article/battery_calibration

How do I get rid of the annoying screen constantly lighting up issue?

This is a device-specific issue. Use the app SnooZZy Charger to prevent it.


LINKS


LATEST CHANGES

v1.0.18 (22)

ACC (201909010)

  • acc -u: always use current installDir
  • Back-end can be upgraded from Magisk Manager, EX/FK Kernel Manager, and similar apps (alternative to acc -u)
  • Attribute back-end files ownership to front-end app
  • Automatically copy installation log to /logs/
  • Back-end can be upgraded from Magisk Manager, EX/FK Kernel Manager, and similar apps (alternative to acc -u)
  • bundle.sh - bundler for front-end app
  • Enhanced power supply logger (psl.sh)
  • Fixed busybox and loopDelay handling issues
  • Fixed coolDownRatio delays
  • Flashable uninstaller: /sdcard/acc-uninstaller.zip
  • Major optimizations
  • Prioritize nano -l for text editing
  • Richer installation and initialization logs (/data/adb/acc-*/logs/)
  • Updated build.sh and documentation
  • Updated Telegram group link (t.me/acc_group/)
  • Use umask 077 everywhere
  • Workaround for front-end autostart blockage (Magisk service.d script)

AccA

  • Delete ACCA orphan schedules (for example when reinstalling the app after the database has been reset)

DJS (201909010)

  • Fixed : --boot option

v1.0.16 (21)

AccA

  • Fixed execute on boot regex
  • Fixed battery idle mode support test

v1.0.14 (19)

ACC (201907211)

  • Fixed install-latest.sh inconsistencies
  • Fixed voltage limit typo (3920-4349, 3500-4350)

AccA

  • Fixed incorrect voltage limit range (3920-4350, 3500-4350)

v1.0.13 (18)

ACC (201907210)

  • Enhanced busybox detection and handling (solves installation and a bunch of other issues)
  • Fixed acc -x "file not found" error
  • Start accd immediately after installation (no more ~30 seconds delay)
  • Show more descriptive installation info (including which logs to share on failure, and where to send them to)

AccA

  • Updated documentation

acca's People

Contributors

icassius avatar kmarius avatar mattecarra avatar squabbi avatar vr-25 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.