闲置android手机尤其是具备root权限的手机作为一台服务器是比较不错的选择。
既然是云手机服务器,那就要解决两个核心痛点。
一、电池问题,作为服务器,长时间充电是不可取的,虽然现在手机都有过冲保护,但随着手机电量不断消耗,手机还是会在不停的充电,电池要不了多久就会废掉,那拆除电池可行吗?可行是可行,成本太高,费时费力,那有没有别的方法,经过亲自实验,最佳的方法是使用智能插座,而不是安装magisk模块来控制,我装过很多控制充电的模块,效果都不理想,根本无法有效阻断冲断电,可能是兼容性不佳。利用一个智能插座设置定时开关合理安排手机充电和断电,每天设定固定时间段即可,和自己使用手机充电没什么区别,这种方法最简单有效。
二、远程控制问题,作为服务器,不可能还拿着个屏幕去操作,肯定是要远程操作,局域网互联是必须的,广域网的话有公网ip,只要端口映射即可。我实践过rustdesk,效果不理想,远控流畅度不行,流畅性最佳的是android 的scrcpy 投屏,在电脑上连接,延迟就跟玩触屏似的,不建议使用任何第三方远控软件,一是不安全,二是流畅性不行。scrcpy在android11以后能支持声音的,所以很完美。但是scrcpy是建立在adb 的基础上的,难道手机还要usb插电脑上?肯定不是,我们使用无线adb即可。但是问题又来了,无线adb 需要adb 执行一条指定端口的命令。每次重启后就失效了,人在外面的话发生重启的话就失去连接了,必须要开机 让他执行,如果手机已经root装上了面具magisk,那这事就会非常容易。
只要在/data/adb/post-fs-data.d 新建一个脚本 adb-net.sh,内容如下:
stop adbd
setprop service.adb.tcp.port 5555
如果你是LG手机,可以参考我的这篇来开启root安装magisk,其他手机其实也差不多
android 抓包系列一(开启root)
进入/data/adb/post-fs-data.d 目录 赋予权限chmod +xr ./adb-net.sh
那么开机就会设置adb 端口,我们通过adb connect 手机ip:5555 就能连接手机,接着执行scrcpy就能投屏到电脑上
三、解决完电脑控制手机,手机怎么控制手机,还好有一个开源项目叫scrcpy-android
安装它,打开输入要控制手机的ip地址即可,虽然没有电脑端那么流畅,但是也够用,比起其他android端控制软件好太多了。
四、如果要在外网控制家里的手机,你需要把手机的5555端口映射出去,比如ikuai路由就去网络设置-->端口映射中去添加,添加完成后外网访问和内网只是ip要换成你公网ip的地址,其他都一样,如果你的家庭宽带没有公网ip,又想在外网访问,你可以尝试使用手机的ipv6地址或者借助一些内网穿透软件来实现。
五、解决完上面这些问题,还有个问题是有些应用在投屏的时候会检测出来,给你展示一个黑屏,比如一些敏感的二维码信息,如支付宝的付款码,paypal的二维码等等,如果看不到这些信息,那就不完美了,在android 10以前是没问题的,之后就加入了录屏、投屏的安全检测机制,这时候需要关闭这个机制才行。在LXPOSED中有这么一个模块,下载地址:https://github.com/Xposed-Modules-Repo/com.varuns2002.disable_flag_secure/releases,
安装重启就可以解决这个问题,前提是已经安装了Magisk和LXPOSED,没有安装的可以参考我的这篇文章:
android 抓包系列二(安装magisk模块隐藏root)
新建“ adb-net.sh”这个脚本的操作很骚,实测有效