写在前面
众所周知,MAA是一款很好用的明日方舟挂机工具。
因为各种各样的原因,我经常需要一直挂着MAA。但电脑一直开着未免有点太浪费电了,因此便想着能不能在纯手机端进行部署。
本文操作较为繁琐,但我目前是真没找到啥更好的方案
本文最终的目的是运行maa-cli而非GUI版本
准备工作
1.一部安卓设备(Android11及以上,无须root,aarch64架构)
2.设备连接至局域网(流量不行)
3.掌握基本的Linux操作
安装Linux容器
MAA并没有提供安卓版本(废话),但有提供Linux aarch64版本。所以,要想运行MAA,还得先装上Linux容器。
1.安装Termux
Termux是一款基于Android平台的终端仿真器。我们将以它为基础安装一个完整的Linux容器。
Termux的安装非常简单,只需要从它Github的Release界面下载安装包安装就行了(arm64-v8a)。
安装完成后,打开Termux。
2.安装Linux容器
经测试,单Termux是无法运行MAA的。所以一个完整的Linux容器是必须的。
我们使用tmoe(官方手册)进行这一步的安装。
运行:
curl -LO https://l.tmoe.me/2.awk; awk -f 2.awk
随后跟着脚本一路安装下去即可。部分需要操作的内容如下(其余的选项基本无脑y/回车即可,但也要注意输出内容,防止出错):
这一步选择proot容器。
这里选择arm64发行版列表,并在之后的菜单中根据自己的喜好选择发行版(最好选择较新的版本,不然容易导致软件源里gcc版本过低导致无法运行,还要编译安装很麻烦)(我选的是Debian13)。
这里直接exit。
现在,一个完整的Linux容器已经安装完成了,正常情况会自动进入到容器内,Termux的home目录也生成了容器选择菜单.sh
,可以通过./容器选择菜单.sh
启动容器。
下载MAA
现在手机上有一个可以运行的Linux容器了,下一步就可以下载MAA了。
确保与Github的连接畅通(或者干脆用镜像站),然后在容器里运行:
(截止到写本文的时候,MAA的最新版本为v4.28.8,请根据实际需要修改)
wget https://github.com/MaaAssistantArknights/MaaAssistantArknights/releases/download/v4.28.8/MAA-v4.28.8-linux-aarch64.tar.gz
mkdir maa
cd maa
tar -zxvf ../MAA-v4.28.8-linux-aarch64.tar.gz
./maa install
操作完成后,执行./maa version
,成功安装的话会有如下输出:
maa-cli v0.3.12
MaaCore v4.28.8
启动无线调试
MAA的操作是基于adb的,我们可以通过无线调试实现adb本机的操作。
手机中找到设置-开发者选项-无线调试,开启并进入。Termux退出容器回到Termux终端,执行pkg i android-tools
安装adb
分屏,这时屏幕上一半是无线调试的设置界面一半是Termux终端。无线调试点开使用配对码配对设备,然后在Termux中执行:
adb pair 127.0.0.1:端口号
然后输入六位数配对码,点击回车,完成配对。
重新进入容器,执行:
apt install adb
adb connect 127.0.0.1:端口号(注意:两次的端口号不一样,一个是配对,一个是连接)
执行adb devices
,出现以下输出:
List of devices attached
127.0.0.1:端口号 device
修改分辨率
MAA只支持16:9的分辨率,但现在市面上大部分手机都不是这个比例。
执行:
adb shell wm size 1080x1920
将分辨率设置为1080x1920
若要重置分辨率,执行:
adb shell wm size reset
运行MAA
参考官方CLI使用指南
一些问题
1.无线调试的端口会变,每次变化都要修改asst.toml里的device项的端口号
2.若出现如下报错:
thread 'main' panicked at /project/maa-sys/src/binding.rs:28:1:
called `Result::unwrap()` on an `Err` value: DlOpen { desc: "/lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.30\' not found (required by /root/.local/share/maa/lib/libMaaCore.so)" }
则大概率为gcc版本过低,若apt upgrade
显示已经为最新版本则需要换更新的发行版或编译安装新版gcc。