游戏
morning
不再拆机飞线:借助 ACC 实现旧手机直供电「改造」
2026-08-11
1 阅读
约10分钟阅读
谷丰
字号:
去年4月,我在某视频的影响下,萌生了将家里的旧安卓手机利用起来的想法。后续虽然跑起来了,但因为设备需要长期充电,电池安全又成了一个让我困扰的难题。为了解决这个问题,我在《彻底告别电池焦虑:旧手机再利用 ... 去年 4 月,我在某视频的影响下,萌生了将家里的旧安卓手机利用起来的想法。后续虽然跑起来了,但因为设备需要长期充电,电池安全又成了一个让我困扰的难题。 为了解决这个问题,我在 《彻底告别电池焦虑:旧手机再利用的直供电改造》 一文中,把手机电池整个移除,然后通过飞线的方式,让充电器直接给主板供电,实现所谓的「直供电」或「旁路供电」。 当时的改造确实一劳永逸地解决了电池鼓包的问题(毕竟电池都被移除了😂),但代价是主板裸露、走线外接,手机的物理结构也被彻底破坏了。以至于我每次在家里看到它的时候,都会担心这种粗暴的改造方式会不会带来新的安全隐患,也总忍不住在心里琢磨: 有没有一种不用拆机、也能达成同样直供电效果的方式? 于是,我开始在网上搜寻,几番搜索之后,我惊奇地发现我以前用过的一个工具 Advanced Charging Controller (以下简称 ACC)就能满足我的「直供电」需求。 说来惭愧,之前我在使用 ACC 时,纯粹是照着网上的教程依葫芦画瓢,从没真正深入探究它的功能。而这一次,我决定沉下心来先搞懂它的原理,再完成对旧手机的直供电「改造」。 关于 ACC 多年的折腾经验教会我,想用好一个新工具,得先通读一遍「说明书」,尽量做到「知其所以然」,是避免弯路的最佳途径。 所幸,在该项目的 GitHub 主页 上作者对它的运作原理做了详细的说明,让我不必大费周章地去他处查找。通过阅读,我得以了解到 ACC 是通过读写系统底层的充电参数,来接管手机硬件原本的充电行为,进而实现对充电的精准控制。 简而言之,如果说原生系统的充电逻辑是「傻瓜式」——插上充电器就开始充电,充满了就停——那装上 ACC 就相当于给手机系统加装了一个「充电开关」。我们可以自由设置手机的充电过程(例如电量降到 40% 就启动充电,升到 60% 就自动停止等),甚至可以更进一步让电流绕过电池直接为主板供电。这也正是我想要实现的「直供电」模式。 安装 ACC 及相关工具 在对 ACC 有了基本的了解之后,接下来就是将它安装到手机中,并配置好相关工具。其中第一步是获得手机系统的 root 权限。 受限于文章篇幅,且 root 的方式往往会因手机品牌、型号的差异而不同,所以这一步我建议参考极客湾的视频:《 玩机必看!带你入坑安卓刷机,小白也能看懂的 ROOT 基础指南来啦! 》来进行操作。我也是参考着视频一步步操作之后,成功获得了手里这台小米 Note 3 的 root 权限,并顺利安装上了 Magisk(它是一个 root 后,能让手机安全安装各种功能模块的框架)。 Magisk 安装完成后就可以开始安装 ACC 模块了: 进入项目的 Releases 页面; 下载最新的 .zip 文件; 将文件传输到手机内; 打开手机中的 Magisk,依次点击「模块」->「从本地安装」; 找到已经传输到手机中的 .zip 文件,等待安装完成; 重启手机。 重启后 ACC 模块默认会随着 Magisk 的启动自动在后台运行。需要注意的是,由于它本身是一个纯后台服务,因此主屏幕上不会出现任何启动图标。如果你偏好图形化界面,可以考虑单独安装 ACCA 或 ACC Settings 这两个第三方客户端。不过由于二者均已停止维护,对新版 ACC 的兼容性较弱,因此强烈推荐直接使用命令行工具 Termux 来设置 ACC。 Termux 的安装过程与安装其它 APK 无异,同样在项目的 Releases 页面下载对应型号的 .apk 包即可。 Termux 安装完成后就可以通过它来执行命令来设置 ACC 了。不过在此之前,建议先执行一次 pkg update && pkg upgrade -y 命令,确保软件源与依赖都是最新的(此步骤为可选操作,非必要)。 如果过程中提示更新失败,大概率是因为国内网络直连受限,通常将软件源切换至国内镜像即可解决。具体操作如下: 执行: termux-change-repo ,系统会打开一个交互选单,将光标停在 Mirror groupRotate 上,按回车; 选择 Mirrors in chinese ,确认。之后 Termux 会自动将软件源切换为国内镜像; 再次执行: pkg update && pkg upgrade -y ,一般即可顺利完成更新。 至此,准备工作全部完成。接下来就正式进入 ACC 模块的参数配置环节了。 配置 ACC 接着回到 Termux 终端,继续以下操作: 执行 su ,获取 Root 权限; 执行 acc -v ,查看当前 ACC 版本; 执行 acc -u dev ,确保 ACC 版本为最新。 将手机插上充电线,确保手机是充电状态,在 Termux 中运行测试命令: acc -t 运行该命令后,ACC 会自动开始测试可以适配手机的充电开关(测试时间有点长,请耐心等待)。测试完成后,除了会在当前终端窗口中显示结果外,还会在 sdcard/Download 目录下自动生成一份 .log 文件。 ⚠️注意,为保证测试结果的可靠性,请尽可能使用原装充电头及数据线。 如何选择合适的充电开关 许多人可能会和我一样,初次看到测试结果的时候脑袋完全是发懵的:这么长的结果哪些是可用的?我该怎么选择? 其实这里我们任意选择一个测试结果最后两行显示如下的开关即可: Switch works ✅ battIdleMode=true 但若是你想更深入地了解这份测试报告背后的含义,就不得不了解一下 acc -t 这条命令背后的运作原理了: Android 手机的充电控制本质上依赖一个基本逻辑:系统向充电控制器发送「开始充电」或「停止充电」的指令。但由于安卓生态的高度碎片化,不同的设备制造商(OEM)、不同的芯片组(SoC)、不同的 Android 版本的「充电控制」指令各不相同,所以并不存在一条能「通杀」所有机型的统一指令。 那怎么办呢?ACC 的解决方案是内置了一个作者从大量设备中收集而来的充电控制参数列表,而 acc -t 这个命令,就是用来逐一验证列表中开关是否有效的命令。测试过程与结果会完整记录在测试报告中,以下面我测试出的这段为例: 6/33: battery/constant_charge_current_max 3300000 0 off (0) -6mA Idle on (3300000) -6mA Idle on (3300000) -866mA Charging Switch works ✅ battIdleMode=true 首行显示的是充电开关的参数说明: 6/33:它是当前测试的第 6 个开关,共 33 个; battery/constant_charge_current_max:是开关的路径或名称; 3300000 0:是开启和关闭这个开关的控制指令(数值)。 第二行是第一次的测试结果: off (0):充电开关成功关闭(执行关闭指令 0); -6mA:此时进入电池的电
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱