1. 使用 redroid 玩耍 Arknights
    1. 准备工作
    2. 启动模拟器容器
      1. 安装国服
      2. 安装日服
    3. 配置 MAA
    4. あとがき
    5. 评论

使用 redroid 玩耍 Arknights

至今为止我们已经尝试过 anbox, waydroid 等优秀的安卓模拟器了,但是实际上我还是感觉不太方便。之后我尝试了一下 redroid,并觉得这才是我希望的解决方案。

本文将会介绍在 Arch Linux 上使用 redroid 运行明日方舟国服、日服的教程,以及配置 MAA 进行自动化玩游戏的相关内容。

准备工作

首先你需要切换到 linux-zen 内核,或者使用其他带有 binderfsmemfd 模块的内核。

其次你需要安装 docker,如果有必要可以配置使用 sjtu 的镜像

启动模拟器容器

首先随便找个地方创建一个文件夹(例如 ~/vms/redroid11),当作安卓模拟器的 /data 目录。

接下来直接使用 docker 创建并运行一个安卓模拟器。

docker run -d --privileged \
  -v ~/vms/redroid11:/data \
  -p 5555:5555 \
  --name redroid11 \
  redroid/redroid:11.0.0-latest \
  androidboot.redroid_width=1280 \
  androidboot.redroid_height=720 \
  androidboot.redroid_gpu_mode=host \
  androidboot.use_memfd=1

容器启动之后就会直接开启模拟器,可以使用 adb connect localhost:5555 连接到模拟器。连接完成之后直接使用 scrcpy -s localhost:5555 就可以看到模拟器的界面。声音可能由于编解码器的问题传不过来,如果想要打开声音需要给 scrcpy 添加 --audio-codec=raw 参数。如果一切正常就可以看到如下界面。

screenshot

之后如果要关闭模拟器,可以使用 docker stop redroid11;如果想要再次开启模拟器,就使用 docker start redroid11

如果你不小心配置崩了,可以用 docker rm redroid11 删除容器,并使用 sudo rm -rf ~/vms/redroid11 清空整个目录,然后从头开始重新来一遍。

安装国服

直接去 ak.hypergryph.com 上下载 apk,然后使用 adb install arknights-xxx.apk 安装。

安装完成之后直接启动即可,不会有任何运行的问题。

安装日服

apkpure 或者 uptodown 等网站下载 apk,然后使用 adb install xxx.apk 安装到模拟器中。

这还没完,你还需要一个 .obb 文件才可以正常运行,不知道为什么上面的网站都没抓这个 .obb,所以你需要自己找到这个 .obb 文件然后放到合适的位置。一般来说,你可以从一个已经通过 Google Play 安装完成的设备上拷贝下来,然后复制到 redroid 上面。

这个 .obb 文件位于 /storage/emulated/0/Android/obb/com.YoStarJP.Arknights/main.2000094.com.YoStarJP.Arknights.obb,大概有 1.7G 大小。

放好之后直接启动就可以了,实际上并不需要使用代理或者 Play Service 就可以运行,帮我们省去了很多麻烦事。就是跑起来有点卡

配置 MAA

安装 maa-assistant-arknights-bin (AUR),安装完成之后可以使用 maa --help 查看帮助。

根据 MAA 惨不忍睹的文档,我们进行如下的配置工作。

编辑 ~/.config/maa/asst.toml,写入如下内容。

[connection]
type = "ADB"
adb_path = "adb"
device = "localhost:5556"
config = "CompatPOSIXShell"

[instance_options]
touch_mode = "MAATouch"
deployment_with_pause = false
adb_lite_enabled = false
kill_adb_on_exit = false

注意 device 一行写入 adb devices 连接到的设备名称,一般就是你 connect 的时候的地址。如果你可能同时跑多个模拟器,那么这里必须要留空(注释掉)。

之后创建目录 ~/.config/maa/tasks,里面就可以开始写你的各个任务了。

本人的配置文件如下(具体每个字段可以参考写的稀烂的集成文档):

# 国服每日任务
# cn_daily.yaml
tasks:
  - type: StartUp
    params:
      client_type: Official
      start_game_enabled: true
  - type: Recruit
    params:
      refresh: true
      select: [4, 5, 6]
      confirm: [4, 5]
      times: 4
  - type: Infrast
    params:
      mode: 0
      facility:
        - Mfg
        - Trade
        - Power
        - Control
        - Reception
        - Office
        - Dorm
      dorm_notstationed_enabled: true
      dorm_trust_enabled: true
      drones: CombatRecord
  - type: Mall
    params:
      shopping: true
      buy_first: ["招聘许可"]
      blacklist: ["加急许可", "家具零件", "碳"]
  - type: Award
```yaml
# 清体力
# cn_fight.yaml
tasks:
  - type: StartUp
    params:
      client_type: Official
      start_game_enabled: true
  - type: Fight
    params:
      stage:
        default: ""
        description: 哪一关
      medicine:
        default: 0
        description: 吃多少药
      expiring_medicine: 0
      stone:
        default: 0
        description: 吃多少石头
      report_to_penguin: true
      server: CN
      client_type: Official
```yaml
# 肉鸽刷到死
# cn_roguelike.yaml
tasks:
  - type: StartUp
    params:
      client_type: Official
      start_game_enabled: true
  - type: Roguelike
    params:
      theme: Mizuki
      core_char: 焰影苇草
      use_support: false
      refresh_trader_with_dice: true

日服的相关配置和国服区别不大,主要是 client_type 设置成 YoStarJP,以及汇报企鹅物流的 server 写成 JP

之后使用 maa run <task_name> 运行即可,例如 maa run cn_daily

如果上面没有填写 device 参数的话,就在前面加一个 -a <device> 参数指定 adb 设备,例如 maa run -a localhost:5555 cn_daily

全部配置完成之后你就可以开始挂机了,甚至可以同时挂两个号。

あとがき

因为图像是通过视频流传过来的,所以画质可能不会很清楚,这一点上面大概比不过 Waydroid 之类的模拟器,貌似也没有什么很好的解决办法。

如果想要调整分辨率可以使用 adb shell wm size 1920x1080

如果想要调整 DPI 可以使用 adb shell wm density 240

如果你想尝试装上 Google Play,你可以尝试参考这篇 ReDroid 教學:用 Docker 跑 Android 系統,在 x86 電腦玩 ARM 手機遊戲。经过我的尝试,确实可以装上 Google Play,但是每次安装/更新 arm 架构的 app 都会失败,然后到头来还不如 Aurora Store 好使。顺便一提 Aurora Store 4.3.5 版本在 redroid 里面会直接崩溃,我也不知道为什么,但是回退到 4.2.5 版本就可以正常运行了。

顺便一提,如果跑日服比较卡顿的话,可以将 /opt/maa/resource/config.json 复制到 /opt/maa/resource/global/YoStarJP/resource/config.json,然后编辑其中的 taskDelay 属性,让 MAA 操作的慢一点,这样可以减少 MAA 识别失败的几率。

Good Luck & Have Fun!

评论

少女祈祷中…

文章作者: Billy
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 billy blog
娱乐 游戏
喜欢就支持一下吧
打赏
微信 微信