如何在无root的手机上自动刷明日方舟1-7
众所周知,刷明日方舟(特别是1-7)是一个机械枯燥的过程,因为当年的小马活动太肝,所以有人开发了一个使用ADB连接安卓模拟器自动刷关卡的脚本ArknightsAutoHelper。 但是这个脚本设计是在PC上跑的,如果将其迁移到手机上就会方便很多,本文主要内容主要探讨迁移的过程。
一些FAQ:
Q: 这对我的手机有什么样的要求?
A: 需要是安卓,不需要root,不需要面具,不需要xposed,存储空间大,性能不是很拉跨。
Q: 我的账号会被封吗?
A: 该工具通过ADB实现一些点按以及图像识别的功能,并没有篡改客户端数据或者伪装客户端发送数据,
并不是严格意义上的外挂。并且因为该工具是通过操纵官方客户端来实现自动刷关,所以官方对该脚本
识别和检测的难度大。另外玩家不能通过该脚本去完成一些本来做不到的东西,并没有破坏游戏的公平性。
此脚本问世大概一年多了,真没听说过谁的号被封了。
Q: 我的手机是苹果怎么办?
A: 换安卓吧少年。
Q: 我需要提前会一些什么技能?
A: 熟悉你现在用的安卓系统,对Linux命令有一定的了解,手机上有梯子。本文会尽量详细地介绍各个过程,
但也建议先了解一下tab键,上下方向键的作用,这对整个配置使用过程起着事半功倍的作用。
Q: 为什么要在手机上的虚拟机上运行明日方舟?
A: 可以后台运行,并且方便调节分辨率。
Q: 为什么要扶墙?
A: 上gayhub,不扶墙速度很便秘的。
下载配置VMOS下载配置x8沙箱
因为最新版VMOS的rom去掉了adb,而VMOS Pro的adb设置相当的弱智,所以这里推荐x8沙箱(虽然它的开屏广告也很令人难受)
先下载一个VMOS,启动之后现在上面安装明日方舟。点开设置->其他设置->启用悬浮球,网络adb分辨率设置->看广告增加分辨率->宽1920,高1080,DPI480,重启- 下载一个x8沙箱,在上面安装明日方舟。
- 将其分辨率设置为宽1920,高1080
- 发现界面是横着的——不要紧
安装Termux
Termux是安卓上不错的终端模拟器,也就是“命令提示符”,推荐在Google Play上下载安装,Termux的上手建议从 这篇文章开始,建议换成清华源,文章里有具体方法。如果你已经是一个命令行老玩家,这里推荐termux-ohmyzsh,然后你需要有一个终端下的文本编辑器,老玩家可以直接上vim,新手建议通过这篇文章学习一下nano, 学会保存,退出就可以。
接下来安装几个必要软件:
1 | pkg install tree tesseract python |
安装ADB
因为Termux的库中不包含adb,所以我们采用了这个方案,
命令如下:
1 | apt update && apt install wget && wget https://github.com/MasterDevX/Termux-ADB/raw/master/InstallTools.sh && bash InstallTools.sh |
安装OpenCV
因为OpenCV官方没有对ARM进行编译,所以我们又要使用歪门邪道解决这个问题。我们加入了its-pointless的第三方仓库
来解决这个问题:
1 | curl -LO https://its-pointless.github.io/setup-pointless-repo.sh |
验证一下安装结果:输入python,在交互式界面属于以下内容:
1 | import cv2 as cv |
如果没有报错说明安装成功,按CTRL-D退出
配置ArknightsAutoHelper
运行以下命令:
1 | pkg install git |
然后编辑config/config.yaml
,将adb_server
改成127.0.0.1:5038
,还可以选择配置上报企鹅物流相关操作,保存退出。
运行脚本
配置到这里就完全结束了,下面来看如何运行脚本:
首先启动虚拟机,在上面运行明日方舟,进入指定界面,执行以下指令:
1 | cd ~/ArknightsAutoHelper && adb connect localhost:5666 python akhelper.py quick # VMOS端口是5666,X8沙箱端口是9527 具体命令见GitHub页面 |
然后就可以快乐1-7了,建议在手机中将Termux和虚拟机设置为允许后台运行,防止他俩被系统杀了。
TroubleShooting
- Tremux无法fork进程
启动adb后提示adb未启动,再次启动后还是未启动,可以尝试启动一个tmux,如果发现tmux无法启动可以基本判断是termux无法fork进程,
这个问题在某族手机更新最新系统后出现。整个安装配置过程主要有两个地方需要fork进程完成:
第一个是安装its-pointless的库,由于需要导入签名而gpg以fork的形式启动所以会导致导入签名失败,apt无法信任该源,可以让apt强制信任该源。可以修改$PREFIX/etc/apt/sources.list.d/pointless.list
,在deb后加入[trusted=yes]
另一个是启动adb,因为无法fork adb,所以可以再开一个termux的session,在里面运行adb server nodaemon
即可正常使用。