【超详细|保姆级教程】手机搭建服务器 · 第 二 期

上期回顾: 【超详细|保姆级教程】手机搭建服务器 · 第 一 期 前言 第一期文字内容看上去很多,但其实就讲了两个事情: 1.判断自己的设备和网络是否具备公网访问的条件。 2.设备为什么需要root。 当你同时具备这两个条件时,你的手机才能更接近一台服务器,才具备更高的可玩性 当然,这里还是要提前说...
【超详细|保姆级教程】手机搭建服务器 · 第 二 期
【超详细|保姆级教程】手机搭建服务器 · 第 二 期

上期回顾:【超详细|保姆级教程】手机搭建服务器 · 第 一 期


前言

第一期文字内容看上去很多,但其实就讲了两个事情:

1.判断自己的设备和网络是否具备公网访问的条件。

2.设备为什么需要root。

当你同时具备这两个条件时,你的手机才能更接近一台服务器,才具备更高的可玩性

当然,这里还是要提前说明一下: 不 root 也不是完全不能玩。 如果你只是想简单体验一下,比如在 Termux 里跑个小服务、局域网访问一下网页,那不 root 也可以。

但如果你的目标是:让手机长期插电、自动运行、开机自启、网络异常自动恢复等等,并且尽量像一台真正的小服务器一样稳定工作,那 root 基本就是绕不开的一步。

因为手机毕竟不是服务器。手机原本的设计就是直接拿手里就能用,而不是随时插着电。

所以我们要让手机长期当服务器,接下来就必须要先解决一个非常现实的问题:手机究竟怎样做更好的电源管理。也就是本期要讲的核心内容:旁路供电。

本期主题:手机如何实现旁路供电

如果供电问题不解决,后面即使你把 SSH、Nginx、Node.js、DDNS 全部配置好了,也会有一个很尴尬的问题:手机天天插着电,电池一直处于充电、发热、满电、掉电、再充电的状态。

短期玩玩问题肯定不大。 但如果你准备长期运行,甚至 7×24 小时放在家里当服务器,这个问题就必须必须必须重视。

所以本期主要解决下面几个问题:

1. 什么是旁路供电?
2. 为什么手机当服务器最好实现旁路供电?
3. ACC + AccA 是什么?
4. QSC 定量停充模块是什么?
5. 两种方案有什么区别?
6. 如何判断旁路供电是否真的生效?
7. 如果没有真正旁路供电,应该怎么设置才比较安全?


一、什么是旁路供电?

先用最通俗的话解释吧

正常情况下,手机插着充电器时,大概是这样的:

充电器 -> 电池 -> 手机正常运行

也就是说,充电器给到电池电量,然后手机又从电池那里获取电量。所以哪怕你一直插着充电器,电池也会一直参与充放电过程。千万不要以为插着充电器,假设电量一直是100%,就没有充电过程了,充电过程很可能还在不断进行。

而我们希望的旁路供电,大概是这样的:

充电器 -> 手机运行
      -> 电池尽量不参与

也就是说,手机插着充电器的时候,主要由充电器直接给手机供电,电池尽量保持不充、不放,或者至少减少反复充放电的频率。

这就是大家常说的旁路供电,不够准确的用大白话说就是:

[!note] 旁路供电:
大白话就是,充电器直接给手机提供电源,电池不参与或者极少参与手机供电 :rofl:

不过这里要特别注意一个点:

安卓上很多所谓的"旁路供电",并不一定是真正硬件级的旁路供电。

因为不同手机的硬件、电源管理芯片、内核驱动都不一样。所以同样是"停止充电",在不同手机上的表现可能完全不同。

大概会有这三种情况:


情况一:比较理想的真正旁路供电

这种是最理想的状态。

当电量达到设定值,比如 80% 时,模块停止给电池充电。

但是手机仍然插着充电器,并且手机运行主要消耗充电器的电,而不是继续消耗电池。

这种情况就比较接近真正的旁路供电。

如果你的手机能做到这种状态,那就非常适合长期当服务器。

在我的记忆里面,以前的安卓手机系统是没有旁路供电这种设置的,是后来出现了游戏手机,玩游戏的时候,有这种开关。除了游戏手机,现在很多高配置的安卓手机都有这种模式,我亲自接触过的,比如真我,玩游戏的时候就有这个设置,但是我忘记系统设置里面是否有单独的开关了。


情况二:只能做到"停止充电",但不能真正旁路

这种情况也很常见。

比如你设置:

充到 80% 停止充电
掉电道 70% 恢复充电

当手机充到 80% 后,模块确实让手机停止充电了。哪怕插着充电器,电池图标都是未充电状态。
但是手机这个时候用的是电池的电,并不是充电器的电。

所以它会这样循环:

充到 80% -> 停止充电 -> 电池慢慢掉到 70% -> 恢复充电 -> 又再充到 80%

这种严格来说不是真正的旁路供电,而是"定量停充 + 定量恢复"。

它的好处是电池不会长期顶在 100%,大大减少了频繁充放电的频率。但是它的缺陷也很明显,就是电池仍然会反复在范围区间充放电。

但总比你拿着一根数据线长期让手机100%满电要好太多。

这种情况在小米8se上我就遇到,因为之前我是一加9R做服务器的,当时用的方案是QSC(下面会讲),一加上运行是好好,但是到小米8se上,就不行了,充到一定量就停止充电,改用电池。


情况三:完全不生效

这是最后一种情况,就是你的模块设置了,但是手机不听话。

比如你设置了 80% 停止充电,但手机还是一路充到 100%。
或者设置了停止充电之后,手机状态栏显示没在充电,但实际上电池还是在涨。
又或者停止之后无法恢复充电。

反正就是模块不生效,一点用都没有。比如我乐视不管是QSC还是Acc都不行。

我猜测,要么是手机太老了,要么是脚本根本不支持,需要重写脚本,奈何我不会啊!

后面我会专门写如何判断是否真的生效。


二、细说为什么手机做服务器需要旁路供电?

其实我觉得我上面已经说的够多了,但是还是细说一下,因为我发现第一期就有人反复问这个问题。

原因一:长期满电对电池不友好

手机正常使用时,大家可能一天一充,或者两天一充。
但手机当服务器之后,情况完全不一样。

它可能是这样的:每天 24 小时插着充电器、每周 7 天不关机、连续运行几个月甚至更久。

如果一直让电池停留在 100%,再加上手机本身还在运行服务,就很容易带来几个问题:

· 电池长期高电量保存;
· 充电时发热,如果是夏天或者超级快充,电池更热;
· 后台服务过多,运行也可能会发热;
· 电池老化加快;
· 电池鼓包风险增加。


原因二:手机需要长期稳定运行

如果只是普通手机,电池衰减一点可能也没那么明显。
但手机当服务器后,稳定性真的超级重要。
比如你在手机上跑了:
· SSH;
· Debian;
· Nginx;
· DDNS;
· 内网穿透;
· 定时任务;
· IPv6 检查脚本。
这时候你希望的是:

手机一直稳定运行,不要因为电池、温度、供电问题出幺蛾子。

[!warning] 踩过坑
你们千万别以为电池会很少或者不会引起什么幺蛾子。因为现在很多手机都有自己的系统优化策略,比如温度一高或者低电量的时候,很多后台服务是不会运行的,或者运行变得比较诡异。

比如我之前设置的自动化脚本,原计划是10s执行一次,结果变成了20s或者30s执行一次,每次间隔还不一样。真的无语:downcast_face_with_sweat:

其他原因比如减少电池发热从而减少手机发热、减少电池反复充放电延长寿命,我就不多说了。大家肯定都懂。所以就说刚才这两个最重要的。


三、本期推荐2种方案

  1. ACC + AccA
  2. QSC 定量停充模块

我个人更推荐第一种:ACC + AccA

原因很简单:一是因为它比较成熟,git上有2k star;二是它可以搭配AccA软件管理配置,可以不用去改配置文件。


方案一:ACC + AccA(推荐)

先科普一下ACC:

ACC全写是Advanced Charging Controller,看名字大家就知道啥意思了。我要补充一点的是,ACC它不是普通的省电控制器。它是通过 root 权限去操作手机底层的充电控制文件,从而实现一些普通 App 做不到的事情。

比如:

· 限制最高充电电量;
· 设置低于多少电量恢复充电;
· 限制充电电流;
· 限制充电电压;
· 根据温度暂停充电;
· 根据温度恢复充电;
· 查看当前充电状态;
· 测试当前手机支持哪些充电开关;
· 很强的记录日志功能,以后出问题可以把日志给AI,让AI来排查问题。


ACC安装教程:

项目地址:https://github.com/VR-25/acc

1. 打开ACC的github项目地址,找到releases点此直达

image

2. 版本我建议选择 v2023.10.16,原因是:

· 2025的版本处于dev阶段,而且很久没有发布正式版了,2023的版本更稳定;

· 一般大家都是拿旧手机玩这个,2023年之前的手机,ACC的支持度还算是不错的。

懒得去github的,可以在本站直接下载:
acc_v2023.10.16_202310160.zip (201.9 KB)

3. 在magisk中安装模块:
image

补充一点: 由于我个人比较青睐面具,所以如果是其他的root管理方案,比如APatch、KernelSU等等,可以自行去寻求AI帮助,看看如何安装,我就不去测试了。安装方式其实很简单,如果你自己都会安装Magisk、APatch、KernelSU,那管理器对应的模块如何安装肯定不在话下的。

4. 重启手机让模块生效

[!info] ACC模块安装成功后
重新开机后,你会发现没有任何与ACC操作相关的软件,因为改配置需要用到命令行或者用到MT管理器或者RE管理器,然后去/data/adb/modules/acc/中修改配置文件再执行脚本,所以这个地方对于新手来说配置起来是很麻烦的。

好在有大佬根据ACC模块,开发出了AccA,突然感觉真的很幸福 :laughing: :smiling_face_with_three_hearts:


什么是AccA​:backhand_index_pointing_down:

AccA 是 ACC 的图形界面 App。
ACC 本身更偏向命令行和配置文件。想修改配置,通常要通过命令行或者手动编辑配置文件。
而 AccA 的作用就是:让你可以通过 App 界面管理 ACC。
比如你可以在界面里设置:

· 充到多少停止;
· 掉到多少恢复;
· 温度到多少停止;
· 是否启用 / 停止 / 重启 ACC;
· 查看 ACC 状态充电状态;
· 管理配置;
· 查看日志。

简单说就是:ACC 负责真正干活、AccA 负责让你更方便地操作 ACC


AccA安装和配置教程:

项目地址:https://github.com/MatteCarra/AccA

F-Droid 页面: Advanced Charging Controller (ACCA)

本站不允许直接上传apk,所以我就不上传了。

安装完成后,建议重启一次手机。因为这类底层模块,重启后状态会更稳定。

1. 重启手机之后,打开软件,如果是未启动,就点击启动

Screenshot2026-05-14-14-51-16-779mattecarra.accapp

2. 如果已经是启动状态,那就点击配置列表。

由于我之前配置过,所以我的配置列表只有一个配置,其余的配置被我删除了。你们第一次打开的话,会有很多个配置;

Screenshot2026-05-14-14-57-39-049mattecarra.accapp

说一下配置的基础操作:

添加: 在配置列表页面右下角有一个蓝色按钮,点击就可以添加配置;
image

删除: 点击“配置卡片”的右上角菜单,点击删除即可
image

重命名: 参考上图,点击“配置卡片”的右上角菜单,点击重命名即可;

配置详情页:
Screenshot2026-05-14-15-22-57-061mattecarra.accapp

在这个配置详情页中,可以配置的充电相关的设置非常多,但是我们只关心两个问题就可以了:一个是电池停充的电量区间,一个是电池停充的温度区间

[!warning] 电量区间
1.我建议给一个保守的值,像我一样,电量低于75%就开始充电,电量高于85%就停止充电;

2.不要一上来就设置成:98% - 100%、78%-80%这种区间非常小的值,因为间隔太小,手机可能会频繁切换充电状态,电池会短时间充充停停影,这种对电池的寿命影响其实是比较大的。

[!warning] 温度区间
1.这个也不用写得很死,可以像我一样,温度恢复到40%就开始充电,温度高于45%就停止充电;我是保守派,所以最高温度我也写得很小

2.大家可以暴瘦一点,宁愿充得慢一点,也不要长期高温,别想着cpu温度高充着电不影响,其实温度对电池的寿命影响比充充停停影响更大

[!note] 电量和温度之间的条件关系
在 ACC 中,电量条件和温度条件可以简单理解为:

停止充电时,是“谁先触发,谁就让充电停下来”。
不管是电量已经到达设定上限,还是手机温度过高,只要其中一个条件满足,ACC 都会暂停充电。

恢复充电时,更保守些。
ACC 不会只看一个条件,而是会判断当前状态是否已经适合继续充电。只有当电量和温度都回到相对安全、合适的范围内,才会重新允许充电。

在这里给ACC点一波赞:+1:

配置应用:
保存好配置之后,点击哪个配置卡片,就表示哪个配置生效。生效的配置前面会有蓝色的边框。比如下面这就是Default配置在生效。

Screenshot2026-05-14-15-53-18-522mattecarra.accapp

[!tip] 配置切换时要注意
配置文件切换的时候,AccA会有短暂的卡顿,蓝色条不会立马切换显示。因为你选择配置之后,后台要做的事情非常多,所以界面上会有短暂的卡顿感,切换配置的时候,大家多点耐心,等他切换成功,不要疯狂各种点击。


[!question] 如何判断ACC是否成功?
这个个我就不细说了吧,你自己插上数据线测试就行,如果电量低于你设定的值,能自动充电,电量高于你设定的值能停止充电,那基本没问题。我要重点说的是下面这个问题。


[!question] 如何判断旁路充电是否成功?
充电停止会有两种情况,拿85%停止充电举例:

如果电量到了85%,你的电池图标显示正在充电,但是软件中显示没有充电,这个时候,就是最接近旁路供电的,看下图:backhand_index_pointing_down:

image

如果电量到了85%,你的电池图标没有显示正在充电,软件中也没有显示正在充电,这个时候,说明AccA并不支持做到旁路供电。
这个时候你的手机只能用到75%才会又开始充电。
相当于,AccA只能做到让你的手机什么时候开始充电,什么时候停止充电,但是做不到充好电的时候,数据线给你供电。由于之前的乐视手机出掉了,没法给大家看截图了。

除了看电池图标以外,还有种更直接更准确的方式: 就是你在你的手机充电到85%的时候,你继续插上数据线使用手机,看看一段时间后电量是否会往下掉,或者电量下降的速度是不是巨慢,如果是这样,那说明旁路供电是在生效的。


[!question]如何恢复正常充电
恢复正常充电,只需要在AccA中停止模块即可


[!question] 如何卸载Acc核心
在magisk中正常删除,然后重启手机就行了


方案二:QSC定量停充

先科普一下QSC:

QSC全写是Quantitative Stop Charging_switch,是酷安大佬top大佬开发的一个模块,github很久没更新了,推荐大家看酷安板块,但是在酷安用的人很多,甚至还形成了一个专属话题【QSC定量停充】。
目前模块也很久没更新了,最后一个版本是2023年12月4日更新的,估计后续也不维护了。

如果你使用ACC没有任何问题,不要折腾这个方案,除非你使用ACC出现了问题,你可以试试QSC。

QSC安装:

原下载地址:

蓝奏云:https://topdalao.lanzoui.com/b02dplxrc
密码:1111
@来自原作者top大佬

本站直链:
QSC定量停充_独立开关版_20231204.zip (104.7 KB)

安装:
安装方式和ACC一样,直接magisk刷入后,重启即可。

配置:
1. 安装MT管理器或者RE管理器,然后打开路径/data/adb/modules/QuantitativeStopCharging_switch

2. 找到config.conf文件,根据文件内的提醒,配置电量区间和温度区间;

image               image

启动QSC:

由于现在MT管理器没有权限直接执行sh脚本了,给大家提供一个最适合的启动方式,这个方式还可以把开关添加到状态栏的下拉控制中心中(大部分手机都支持)

1. 安装Anywhere-软件,这里不过多介绍这个软件了,我个人认为是我用过最好用的快捷方式管理软件。

2.打开Anywhere-,点击右上角的设置图标,把工作模式改成root模式

image

3.返回Anywhere-首页,点击首页右下角的:plus:号,然后点击添加卡片:

image

4.在卡片中选择Shell开关

image
5.按照下面的内容填写后保存,名称那里可以自定义

image

[!note]开指令
sh /data/adb/modules/QuantitativeStopCharging_switch/打开定量停充.sh

[!note]关指令
sh /data/adb/modules/QuantitativeStopCharging_switch/关闭定量停充.sh

6.点击卡片,会在开与关两个状态之间切换:

image               image

[!question]如何判断QSC是否生效
判断逻辑参考ACC部分,逻辑都是通用的。另外,QSC还可以在magisk中看到充电状态展示。但是我没使用QSC,所以就简单截图吧。

image

[!question]如何删除QSC
直接在magisk中删除后,重启即可。


常见问题

[!question]手机重启后需要重新打开脚本或者软件运行ACC或者QSC吗?
不需要,只要你配置好了,启动脚本以后,重新开机脚本都是正常运行的,自己试一次就知道了

[!question]ACC、QSC 能不能保证一定实现真正旁路供电?
不能百分百保证。这个地方一定要说清楚:ACC 、QSC不是凭空制造旁路供电能力的软件。
它的原理大概是:ACC 或者QSC 通过 root 权限,去控制系统底层暴露出来的充电开关、电流限制、充电状态等节点。
但是不同手机的硬件、电源管理芯片、内核驱动不一样。有的手机确实支持类似“旁路供电 / 电池空闲 / 主板由充电器供电”的模式;有的手机只是能做到“停止给电池充电”,但手机本身仍然从电池取电。所以严谨点说得话就是他们可以尝试调用手机底层的充电控制能力。如果这台手机的硬件和内核支持旁路/电池空闲模式,ACC 就有机会实现比较理想的旁路供电。
如果手机本身不支持,ACC 也不能强行把它变成真正旁路供电。
今天刚好看到一个帖子,荣耀手机(忘记型号了)好像新系统提供了“充电分离”开关,在软件上也实现了类似ACC这样的功能。

[!question]只安装AccA,不安装ACC模块行不行?
绝对不行,AccA可以不装,只是配置起来麻烦,ACC是核心模块,你只安装AccA,根本不可能工作的。

[!question]首页显示这个是什么意思?

image
这个表示配置正在读取或者加载中,这个时候尽量别动,等加载好就行了

[!success]结束语
写这个教程真的非常耗费时间,几乎占用了我白天一大半的时间才搞定。所以我在想,要不后面的教程我写的简单一些,不这么详细了。但是不会说写的云里雾里,肯定能保证大家直接跟上手的。不然按照这个程度更新下去,感觉进度很慢不说,我真担心我会放弃掉,后面还有很多事情要做,比如如何解决wifi网络稳定问题,如何保证ipv6的有效性,如何做DDNS等等

现在写完后背都很疼,还希望大家能理解

4 个帖子 - 4 位参与者

阅读完整话题

来源: LinuxDo 最新话题查看原文