Repository navigation
Releases
v2.0.1-rc24
Folds the rc24 changes into one release. Pairs with ACC v2025.5.18-6.5.1-rc25. Install both. Bundles AMPS v7.3.3, byte-identical to the module's copy.
Fixed
- The shutdown temperature can be set anywhere from 40 to 70 °C, independent of the max temperature, matching ACC rc25.
- Clearing a voltage limit releases the hardware cap after reboot or clean initialization, not only the value shown in the app.
- The dashboard no longer says "Idle" or shows 0.00 A when nothing was measured; it says "Unknown". Unreadable or
NaNcurrent is not treated as a measurement. A measured current wins over the daemon's label and kernel status in both directions. - "Fast charging is working" is shown only when the battery is actually taking charge, not just because the charger agreed to 9 V. Without a measured rate, the app says the contract exists but speed is unproven.
- The charger row no longer invents 0.00 A or 0.000 W for unreadable values and shows the whole reason charging is slow instead of cutting it off.
- A stopped daemon, failed config read, or failed read-back after apply no longer shows the default 70/80 config as if it were being enforced.
- When ACC corrects a value you entered, the app shows why instead of looking like it ignored you.
- A scheduled apply reports every refused command when the app next opens, not only the last command's result.
- Charge-once can be cancelled from the app. A leftover marker is no longer mistaken for a running charge-once; confirmation requires a live daemon, and
status=Fullis recognised when an aged pack finishes below the requested percentage. - Missing ACC and a failed AccA startup now show distinct errors. The missing-module dialog links to this fork's ACC release; startup errors point to this fork's issue tracker.
Added
- The reason line explains a battery held at the voltage limit.
- The About screen credits the original project authors and current fork maintainer. The APK includes GPLv3 and CircleProgressBar's Apache 2.0 license text.
APK below is built by GitHub Actions and signed with the project release key, so it updates cleanly over any AccA release from this fork.
v2.0.1-rc23
Pairs with ACC v2025.5.18-6.5.1-rc24. Install both.
Added
- Home-screen widget that works on Android 12 and later.
- Bundled AMPS switch-finder v7.3.1, byte-identical to the module's copy.
- Schedules remember which configuration sections they were written with.
- Profiles carry their own section gates, so a profile applies what it was saved with.
- The battery level appears on the dashboard as a number.
- CI runs the unit tests and lint before it builds anything, on a recorded lint baseline.
Fixed
- "Allow custom shell scripts" hid the add button and the edit menu but never gated RUNNING, and import had no check either, so an imported script body ran as root on a swipe with the preference off.
- Settings wrote
ui_refreshthrough a bareacc, which is not on the app shell's PATH; it exited 127 and the setting never landed. - The cool-down sentinel 101 was rendered as "Start at: 101%" and the editor's picker clamped it to 100, so opening the editor and saving armed cool-down at 100%.
- The cool-down percentage followed the load-time value instead of the picker, and was reset when the charge/pause ratio was cleared.
- The status-bar meter mixed the charger and battery sides, producing readings like "Charging 1.0 W 0.00 A"; both numbers now come from the same side, chosen by measured flow rather than by the cable.
- Switching a section off no longer blocks clearing what it already set: with
cueVoltage/cueCurrMaxoff the editor stops offering a control that would silently do nothing, and a skipped section is logged. - 19 locales labelled the resume-temperature field "Pause seconds" and 14 printed a raw
%3$ds; the stale translations fall back to English. - Boot receiver no longer reachable from other applications.
- Widget crashed on Android 12 and later (missing FLAG_IMMUTABLE).
- Widget refreshes from the charge meter instead of an exact alarm.
- Widget applied the current sign twice, so an inverted-polarity phone flipped between plus and minus.
- Widget printed charger watts on a row labelled "To battery".
- Dashboard and widget disagreed about whether the phone was charging; one rule now answers it everywhere.
- A held input read as Idle instead of a cut.
- Idle now means the pack is sitting still, not merely plugged and not charging.
- A measured drain overrides both the daemon's class and the kernel status. A collapsed charger and a latched native limit each printed Charging over a negative current.
- Charger row hid itself at a 0 W hold; it now shows the plug state and input voltage.
- Flipping a schedule's checkbox rewrote it with voltage, current and temperature control switched back on.
- Schedules ignored the DJS cue and rebuilt the command with every gate enabled.
- A daemon error payload was parsed as a real reading, showing -1%, 0 mA, 0 V instead of falling back to the legacy path.
- A truncated state document was accepted the same way.
- Celsius turned into Fahrenheit on stock installs; the unit preferences are three-valued, not two.
- A failed apply was still recorded as the current profile, so the screen could name profile B while ACC held profile A.
- Voltage and current-max are gated independently.
- Cloud backup uploaded the root scripts database; it is now excluded.
- The app resolves its real files directory, so a clone or secondary user can start the app-managed ACC install.
- AMPS recorded a probe-collapsed 0 as a current-limit node's original value, which let a restore replay 0 and leave the port at no input current.
- A switch artifact was accepted when it was incomplete, carried duplicate keys or lacked its end sentinel, and an unknown device could still be granted verified confidence.
- A native limit marked needs-test could be pinned without a rescan.
- Relative and grouped node paths were checked inconsistently across screens, and paths were interpolated into double-quoted shell.
- A successful config write hid a failed daemon restart, so the app could name a profile ACC was not holding.
- The scanner matched its own shell when searching for the engine process, kept a stale result on a failed start, started its elapsed counter before the run, and could report recovery it had not checked.
- Cancelling could force-kill the engine mid-restore; it now waits for the restore trap.
- Newer Android APIs were called unguarded on a declared minSdk 16.
- The widget's root reads had no ceiling, so a render that landed while a switch scan held the root shell could hold the broadcast open past Android's limit and raise "AccA isn't responding". Reproduced on a Pixel 6a by cancelling a quick scan.
APK below is built by GitHub Actions and signed with the project release key, so it updates cleanly over any AccA release from this fork.
v2.0.1-rc22
AccA v2.0.1-rc22
APK below is built by GitHub Actions and signed with the project release key, so it updates cleanly over any AccA release from this fork.
v2.0.1-rc21
Pairs with ACC v2025.5.18-6.5.1-rc22. Install both.
Added
- Find my charging switch has its own card on the dashboard, above the configuration.
- Profile and script export screens gained select-all and select-none.
Fixed
- A charge limit of 100% no longer silently becomes 80%.
- A limit of 100% no longer reads back as capacity control being off.
- Exporting several profiles or scripts no longer produces a truncated file.
- Importing no longer overwrites a local profile or script of the same name.
- Settings now shows the refresh interval ACC actually holds, not the default.
- The dashboard no longer shows wrong watts, amps or volts, or 0.00 W while current is flowing.
Changed
- Export saves the file by default; sharing moved to the toolbar.
- Exports go to their own Download/AccA folder and never overwrite an earlier backup.
- Import offers the same three routes as export: a file, the clipboard, or another app.
- Export screens start with everything selected.
Removed
- The fast-charge re-kick, and its "Re-kick fast charge on plug" setting. It wrote apsd_rerun and rerun_aicl straight to the nodes, without the guard ACC gained in rc22 that refuses to re-run charger detection while a working high-voltage contract is live. On a QC or PD supply that drops the contract to 5 V until you physically replug. ACC still re-kicks automatically when charging is genuinely stalled, and
acc -sk on|offremains the control.
AMPS 7.2.3
- A scan run during a pause or a thermal throttle no longer suggests pinning the phone at that current.
- A level-limit switch on a phone below its stop level now produces a usable config line instead of falling through to a current cap.
APK below is built by GitHub Actions and signed with the project release key, so it updates cleanly over any AccA release from this fork.
AccA v2.0.1-rc20 (vc220)
AccA v2.0.1-rc20
APK below is built by GitHub Actions and signed with the project release key, so it updates cleanly over any AccA release from this fork.
v2.0.1-rc19
Pairs with ACC v2025.5.18-6.5.1-rc20. Install both.
Changed
- Battery percentage now comes from ACC (the kernel) by default, not Android. Identical
numbers for almost everyone; it only differs if you set a Capacity Mask. Fixes the reported
case: when something freezes Android's battery state the app showed a stale number and
looked wrong. Measured on a Pixel 9a at 69% - no mask: both read 69; Android frozen: old
default read 23, new one read 69. Several users had already found this setting themselves. - Using a Capacity Mask and want the app to match your status bar? The System option is one
tap away. Display only - ACC's charging decisions always used the kernel and are unchanged. - Battery-source options reworded so it is clear which is which without trying them.
Fixed
- The fallback ACC version assumed before the installed one can be read now tracks rc20, so a
fresh install picks the newest handler.
APK below is built by GitHub Actions and signed with the project release key, so it updates cleanly over any AccA release from this fork.
v2.0.1-rc18
Fixed
- Battery percentage source labels were backwards. With a Capacity Mask set, "System" shows the masked value (it follows the status bar) and "ACC" shows the true measured level (it ignores the mask). The labels now match what each option does. Wording only, no behaviour change.
Changed
- Re-kick fast charge on plug description is clearer. It said "below your limit", which read as ambiguous; it now says "below your Stop level" and spells out that it does not start charging (your Resume level still does that) - it only makes a resumed charge run at full speed. Wording only.
APK below is built by GitHub Actions and signed with the project release key, so it updates cleanly over any AccA release from this fork.
v2.0.1-rc17
Fixed
- Find my switch (AMPS) v7.1.5. The charger/speed panel was accusing healthy phones of charging slowly. Three fixes, found from a Realme GT Neo 2 (65W SuperDart) report:
- It looked for the charger only on usb/main/dc/wireless/pc_port. On Qualcomm and OPLUS phones (Realme, OPPO, OnePlus) the mains path reports online on
acwhile usb stays at online=0 mid-charge, so it found nothing and said "not plugged / no input supply reports online" while the phone was actively charging, with input current and voltage all zero. It now scans every supply and takes whichever one the firmware marks online. - A cap that reads back negative is a kernel error code, not a value:
-22is-EINVAL("property not supported"). AMPS stripped the sign and reported "IC cap (CCC)=22mA", which also hid the real ceiling and could fire a false "IC/THERMAL-CAPPED" verdict blaming your charge IC. Caps now reject negatives. - Model spoofing. A ROM that fakes
ro.product.*(this one claimed to be a Galaxy S23 Ultra) would file its switches into the device database under someone else's model. AMPS now cross-checks the vendor partition, device tree and charger-driver family, reports the spoof, and keys the database on the hardware identity.
- It looked for the charger only on usb/main/dc/wireless/pc_port. On Qualcomm and OPLUS phones (Realme, OPPO, OnePlus) the mains path reports online on
APK below is built by GitHub Actions and signed with the project release key, so it updates cleanly over any AccA release from this fork.
v2.0.1-rc16
Added
- Re-kick fast charge on plug (Settings > Charging, off by default). Plug in below your pause limit and AccA nudges the charger to re-negotiate fast charge - useful on phones that drop to slow charging after a cut. Guarded so it can never overcharge or fight your setup: it only fires below the limit, is a no-op on phones with no such control (Pixel/Tensor and other PD chargers), and steps aside entirely if you run your own Apply-on-plug script.
- AMPS reports whether your phone can re-kick. The bundled compatibility tester (v7.1.4) detects your phone's resume mechanism: a software re-kick on Qualcomm (
apsd_rerun/rerun_aicl/dp_dm) and MediaTek (en_power_path), or "physical replug or reboot only" on newer PD-glink/UCSI chargers that self-negotiate in firmware. - Update notifications (on by default). AccA now checks for newer ACC and AccA versions and posts one combined, persistent notification - with each version's changelog and a per-app Update button - so a pending update for one never hides the other. It stays until you act on it or swipe it away, and a version you dismissed will not nag again.
- "See all switches" in the switch finder, so you can pin any verified switch, not only the recommended one.
- Sponsor links in About: Buy Me a Coffee and Ko-fi, alongside the fork's Telegram.
Changed
- ACC install/update reads GitHub Releases. The bundled ACC copy is gone - AccA now detects a separately-flashed ACC and points you to the download instead of shipping (and overwriting with) its own. Both update screens list every published version newest-first, default to the latest, show pre-releases, and show the version you have now.
- Battery-% source is one app-wide setting. The dashboard, the status-bar meter and the notification all follow the same choice (Android System vs ACC's real level).
- Support and community links now point to the fork's Telegram group and issue tracker.
- Long setting descriptions (re-kick fast charge, updating ACC) are now a short line with an info (i) icon that opens the full explanation on tap.
- Built against SDK 33; the switch finder is trimmed to verified switches; the redundant "Test" button was dropped from the switch editor.
Fixed
- Settings no longer crashes on open - a bare
%in the battery-source summary threw a format exception. - The switch picker no longer opens empty, recovers cleanly on first run, and no longer mis-renders under some locales; switches that share a short label (the same node reached by two paths) are shown by full path so you can tell them apart.
- Charge meter no longer dies or freezes. Screen-off used to detach its notification from the foreground service (letting the system kill it), and one glitchy "is the screen on?" read could freeze updates for good. It now stays a foreground service, swaps to a quiet no-status-bar-icon channel when the screen is off, and debounces the screen check.
- Consistent charge words and current everywhere. The status word (Charging / Idle / Bypass / Draining / Discharging) is derived from the same reading shown beside it, the dashboard and notification agree, the status-bar number is a median of recent samples (no fuel-gauge spikes), and the dashboard shows watts alongside amps.
- The About / team card lists the maintainer first.
APK below is built by GitHub Actions and signed with the project release key, so it updates cleanly over any AccA release from this fork.
v2.0.1-rc15
✨ Added
- Status-bar charge meter. Turn on Show charging current in the status bar for a live, edge-to-edge number in the status bar showing the current going into your battery, plus a matching notification line (current, watts, volts, temperature, and the hold level when ACC is holding your limit). It is a foreground service that draws zero battery while the screen is off.
- Battery source choice. A new setting picks which battery reading AccA trusts: the Android System percentage (matches the icon in your status bar, the default) or ACC's own Real Level. Use Real Level on phones whose framework rounds or smooths the percentage.
- Update browser. Check for updates now lists every AccA release published on GitHub, newest first, and downloads the one you tap instead of guessing a single "latest". Both the AccA and ACC update screens show the version you have installed now.
🔧 Changed
- Show charging current in the status bar is off by default and, when on, always shows and is bold and large by design; the earlier per-condition toggles for size, weight, unit, sign and on-battery were removed.
🐛 Fixed
- The status-bar meter no longer leaves a lingering on-battery notification row with a Stop button when you only wanted the number.
- A charge daemon left dead by a force-killed test is revived within about ten seconds of plugging in the charger (pairs with the ACC-side fix in 6.5.1-rc13).
- Charge vs discharge is read correctly on dual-path PMICs whose current sign flips with the charge mode (understands ACC's new
polarity=unstable).
APK below is built by GitHub Actions and signed with the project release key, so it updates cleanly over any AccA release from this fork.