如何在无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沙箱(虽然它的开屏广告也很令人难受)

  1. 先下载一个VMOS,启动之后现在上面安装明日方舟。
  2. 点开设置->其他设置->启用悬浮球,网络adb
  3. 分辨率设置->看广告增加分辨率->宽1920,高1080,DPI480,重启
  4. 下载一个x8沙箱,在上面安装明日方舟。
  5. 将其分辨率设置为宽1920,高1080
  6. 发现界面是横着的——不要紧

安装Termux

Termux是安卓上不错的终端模拟器,也就是“命令提示符”,推荐在Google Play上下载安装,Termux的上手建议从 这篇文章开始,建议换成清华源,文章里有具体方法。如果你已经是一个命令行老玩家,这里推荐termux-ohmyzsh,然后你需要有一个终端下的文本编辑器,老玩家可以直接上vim,新手建议通过这篇文章学习一下nano, 学会保存,退出就可以。

接下来安装几个必要软件:

1
2
pkg install tree tesseract python 
wget https://github.com/tesseract-ocr/tessdata/raw/master/chi_sim.traineddata -o $PREFIX/share/tessdata/chi_sim.traineddata

安装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
2
3
curl -LO https://its-pointless.github.io/setup-pointless-repo.sh
bash setup-pointless-repo.sh
pkg install opencv

验证一下安装结果:输入python,在交互式界面属于以下内容:

1
2
import cv2 as cv
cv.__version__

如果没有报错说明安装成功,按CTRL-D退出

配置ArknightsAutoHelper

运行以下命令:

1
2
3
4
5
6
pkg install git
git clone https://github.com/ninthDevilHAUNSTER/ArknightsAutoHelper.git
cd ArknightsAutoHelper
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install numpy Pillow requests ruamel.yaml coloredlogs ./vendor/penguin_client
cp config/config-template.yaml config/config.yaml

然后编辑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

  1. 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即可正常使用。
知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。