Last year, I fell down a rabbit hole of YouTube videos about repurposing old Android phones. The idea was simple: turn that dusty drawer-dweller into something useful. But after a few weeks of running, I realized the real headache wasn't software—it was the battery. Keeping it plugged in 24/7 meant constant heat, constant worry about swelling, and that nagging sense that I was sitting on a tiny firework.
My first fix was drastic. I opened up the phone, ripped out the battery, and soldered a charger directly to the motherboard. It worked—sort of. The battery was gone, so no more bulge, but the phone was now a naked board with wires dangling everywhere. Every time I walked past it, I half-expected a short circuit. That's when I started hunting for a cleaner way.
The ACC Discovery
After some digging, I stumbled onto a tool called Advanced Charging Controller (ACC). I'd used it before, but only as a blind copy-paste from tutorials. This time, I decided to actually read the manual. The GitHub page explains it well: ACC reads and writes low-level charging parameters, hijacking the phone's native charging behavior. In plain terms, it gives you a manual override for when and how your phone charges.
Instead of the dumb default (charge until full, stop, repeat), you can set rules like "start charging at 40%, stop at 60%." Even better, you can make the current bypass the battery entirely—true direct power, no battery involved. That's exactly what I needed.
Rooting the Phone
The first hurdle is root. The process varies by brand and model, so I won't walk through every step here. There's a solid video guide by GeekBay that got me through it. On my Xiaomi Note 3, I used Magisk, which is a framework that lets you install modules safely. Once rooted, installing ACC is straightforward:
- Download the latest ACC .zip from the project's Releases page.
- Transfer it to your phone.
- Open Magisk, go to Modules, tap "Install from storage," and select the file.
- Reboot.
ACC runs in the background after boot—no icon on your home screen. If you prefer a GUI, you can try ACCA or ACC Settings, but both are unmaintained and spotty with newer versions. I recommend using Termux, a terminal emulator, to control ACC via command line.
Setting Up Termux
Termux installs like any APK. After installing, fire it up and run:
pkg update && pkg upgrade -yIf the update fails due to network restrictions (common in some regions), switch to a Chinese mirror by running termux-change-repo. Choose the mirror group and pick a Chinese source. Then retry the update.
Testing for Compatible Switches
Now the fun part. With root access, open Termux and run:
suCheck your ACC version and update it if needed:
acc -vacc -u dev
Plug in your charger, then run the test:
acc -tThis command tries a list of known charging switches collected by the developer from various devices. The test takes a while, so be patient. When it finishes, you'll see a report on screen and a .log file saved to /sdcard/Download. For reliable results, use your original charger and cable.
Reading the Test Results
The output looks like alphabet soup at first. Here's a sample from my test:
6/33: battery/constant_charge_current_max 3300000 0
off (0) -6mA Idle
on (3300000) -6mA Idle
on (3300000) -866mA Charging
Switch works ✅
battIdleMode=trueHere's how to read it: The first line names the switch and its on/off commands. The next two lines show the state after each command. A low current (like -6mA) means the battery is idle—no charging. A high negative current (like -866mA) means it's charging. If the switch successfully toggles between idle and charging, ACC marks it as working and notes whether it supports battery idle mode (which is what you want for direct power).
In my report, three switches worked. The first one I showed, plus:
7/33: battery/constant_charge_current_max 3300000 10000
off (10000) -6mA Idle
on (3300000) -897mA Charging
Switch works ✅
battIdleMode=trueAnd another one. You only need one working switch. To pick the best, look for the one that flips between idle and charging most cleanly—ideally with a near-zero current in idle mode.
Configuring ACC for Direct Power
Once you've chosen a switch, tell ACC to use it. For example, to use battery/constant_charge_current_max 3300000 0, run:
acc -s s="battery/constant_charge_current_max 3300000 0 --"Verify with acc -s and check that charging_switch is set correctly.
Now set your charging thresholds. The idea: charge up to a high limit, then switch to direct power (bypassing battery), and when the battery drops to a low limit, resume charging. For example, to charge up to 50% and resume at 40%:
acc 50 40Check your settings with acc -s again. The key values should reflect your limits.
Sailing with a Repurposed Phone
So why does this matter for sailing? On a boat, every amp counts. A repurposed Android can run navigation apps, weather downloads, or a media server—but only if you can keep it powered without babysitting a battery. With ACC, you can run the phone straight off a 12V-to-USB adapter, bypassing the internal battery entirely. No more swollen cells, no more fire hazard, and no need to crack the case open. The phone stays sealed, the wiring stays inside, and you get a reliable onboard device that just works.
Sure, you lose the ability to unplug and go portable. But for a dedicated ship's tablet or a fixed display, it's a trade worth making. And if you ever need to take it ashore, you can always re-enable battery charging with a simple command.
Give it a try on your next voyage. Your old phone might just become the most dependable crew member you have.
Comments (0)
Please sign in to post a comment.
Don't have an account? Create one
No comments yet. Be the first to comment!