1788 字
9 分钟
Redroid 运行 MAA 明日方舟助手配置指南

本文提供在 Redroid 容器中运行 MAA(明日方舟助手)的完整配置方案,适用于无人值守自动化任务场景。


一、 适用场景#

  • 无人值守自动化:MAA 自动刷图、基建收菜等后台任务
  • 无需实时预览:不使用 scrcpy 等实时投屏工具
  • 追求极致稳定性:使用纯 CPU 软解,规避 GPU 硬件加速的潜在风险
  • 共享显卡环境:多个虚拟机共用同一块物理显卡,不允许任何 GPU 复位

二、 虚拟机内核参数配置#

在启动 Redroid 容器之前,需要先配置虚拟机的内核启动参数,启用 PSI(Pressure Stall Information)支持。

为什么必须启用 psi=1?#

Android 12+ 的 lmkd(Low Memory Killer Daemon)完全依赖 Linux 内核的 /proc/pressure/memory 接口来判定内存压力并实施进程保护。如果内核未启用 PSI,会导致:

  • 容器内 lmkd 守护进程启动即挂死退出
  • ActivityManager 每秒疯狂抛出连接失败异常
  • 白白耗尽 CPU 和 IPC 管道资源

配置步骤#

编辑虚拟机 /etc/default/grub:

Terminal window
sudo nano /etc/default/grub

修改启动参数(如果使用 Intel SR-IOV 显卡,保留相关参数;否则只需 psi=1):

GRUB_CMDLINE_LINUX_DEFAULT="quiet psi=1"

更新引导配置并重启虚拟机:

Terminal window
sudo update-grub
sudo update-initramfs -u -k all
sudo reboot

验证 PSI 是否生效#

Terminal window
cat /proc/cmdline | grep psi

应该看到输出中包含 psi=1。


三、 Docker Compose 配置#

完整配置文件#

在工作目录(如 /mnt/redroid)创建 docker-compose.yml:

services:
redroid:
image: redroid/redroid:12.0.0-latest
container_name: redroid
privileged: true
restart: always
shm_size: "1gb"
ports:
- "5555:5555"
volumes:
- ./data:/data
devices:
- /dev/binder:/dev/binder
- /dev/hwbinder:/dev/hwbinder
- /dev/vndbinder:/dev/vndbinder
- /dev/dri/card0:/dev/dri/card0
- /dev/dri/renderD128:/dev/dri/renderD128
command:
- androidboot.redroid_width=720
- androidboot.redroid_height=1280
- androidboot.redroid_dpi=320
- androidboot.redroid_fps=60
- androidboot.redroid_gpu_mode=guest
- androidboot.use_memfd=1
- androidboot.redroid_input=touch

核心参数详解#

1. 显示分辨率参数#

androidboot.redroid_width=720

  • 虚拟屏幕宽度(像素)
  • MAA 推荐使用 720×1280 标准竖屏分辨率
  • 更低的分辨率可以减少渲染开销,提升图像识别速度

androidboot.redroid_height=1280

  • 虚拟屏幕高度(像素)
  • 与 MAA 的图像识别模板匹配
  • 过高的分辨率会增加 CPU 软解负担

androidboot.redroid_dpi=320

  • 屏幕像素密度,控制 Android 系统 UI 元素的缩放比例
  • 320 对应标准高清屏幕,与明日方舟官方推荐一致
  • 影响游戏内按钮和文字的显示大小

2. 性能参数#

androidboot.redroid_fps=60

  • 目标帧率上限,限制渲染刷新率为 60 FPS
  • 对于 MAA 自动化场景,实际帧率通常低于此值
  • 可适当降低至 30 以进一步节省 CPU 资源

3. GPU 渲染模式(核心参数)#

androidboot.redroid_gpu_mode=guest

这是 MAA 配置与硬件加速配置的核心差异:

  • guest:纯 CPU 软件渲染模式,完全不使用 GPU 硬件加速
  • host:宿主机 GPU 硬件加速模式

选择 guest 的原因:

  • MAA 不需要高性能 3D 渲染,2D UI 软解完全够用
  • 彻底规避 Intel SR-IOV 等虚拟化显卡的 GPU 复位风险
  • 避免与其他虚拟机争抢 GPU 资源
  • 现代 CPU(如 12 代酷睿)的软解性能足以应对明日方舟的 2D 游戏画面
  • 极致稳定性:软解模式不会触发任何 GPU 相关故障

4. IPC 通信优化#

androidboot.use_memfd=1

  • 启用内存文件描述符(memfd_create() 系统调用)
  • 使用匿名内存文件替代传统 tmpfs
  • 减少磁盘 I/O,提升 Binder IPC 通信效率
  • Android 12+ 的推荐配置

5. 输入设备类型#

androidboot.redroid_input=touch

  • 模拟触摸屏输入设备(而非鼠标指针)
  • MAA 必需参数:MAA 通过 ADB 发送触摸事件
  • 不启用会导致 MAA 的点击、滑动操作完全失效

四、 与硬件加速配置的对比#

配置项MAA 软解配置硬件加速配置说明
GPU 模式guest(CPU 软解)host(硬件加速)软解更稳定,硬件加速性能更强
GPU 节点绑定不需要androidboot.redroid_gpu_node=/dev/dri/renderD128软解模式无需指定渲染节点
OMX 硬编禁用不需要ro.kernel.redroid.omx=0
androidboot.redroid_omx=0
软解模式天然不会触发 GPU 复位
DRI 设备挂载可选(建议保留)必需软解模式下挂载仅用于兼容性检测
CPU 占用中等(2D 软解)极低(GPU 卸载)MAA 场景下 CPU 占用完全可接受
GPU 复位风险完全规避需额外配置防护共享显卡环境的最优选择
适用场景自动化任务、后台挂机实时投屏、高性能游戏根据实际需求选择

五、 启动容器#

Terminal window
cd /mnt/redroid
# 首次启动
docker compose up -d
# 更新配置后重启
docker compose down
docker compose up -d

六、 验证配置#

检查渲染模式#

Terminal window
docker exec redroid dumpsys SurfaceFlinger | grep -E "GLES|Vendor|Renderer"

预期输出(软解模式):

GLES: Google, llvmpipe (LLVM 15.0.0, 256 bits), OpenGL ES 3.0 Mesa 24.0.8

输出中显示 Google 和 llvmpipe 说明正在使用 CPU 软件渲染,这正是 MAA 场景的预期配置。

检查 lmkd 状态#

确认没有 ActivityManager 连接失败的报错:

Terminal window
docker exec redroid logcat -d | grep -i "lowmemorykiller"

如果没有高频报错,说明 PSI 配置生效。

检查系统属性#

Terminal window
docker exec redroid getprop | grep -iE "gpu|redroid"

应该看到 [ro.kernel.redroid.gpu.mode]: [guest]。


七、 MAA 连接与使用#

连接设备#

Terminal window
# 从宿主机连接
adb connect 127.0.0.1:5555
# 验证连接
adb devices

启动 MAA#

在 MAA 客户端中:

  1. 选择设备:127.0.0.1:5555
  2. 配置任务:刷图、基建、公招等
  3. 启动自动化任务

软解模式下,MAA 可以正常执行所有自动化操作,包括图像识别、点击、滑动等。


八、 常见问题#

Q: 为什么不用硬件加速?#

A: 对于 MAA 自动化场景:

  • 不需要高帧率和实时投屏
  • 2D 游戏画面软解性能足够
  • 软解模式稳定性更高,不会触发 GPU 复位
  • 避免与其他虚拟机争抢显卡资源

如果需要实时投屏或玩原神等 3D 游戏,参考硬件加速配置文档。

Q: CPU 占用高怎么办?#

A: 可以降低帧率和分辨率:

- androidboot.redroid_fps=30 # 降低至 30 FPS
- androidboot.redroid_width=640 # 降低分辨率
- androidboot.redroid_height=1136

Q: MAA 点击操作无响应?#

A: 确认启动参数中包含 androidboot.redroid_input=touch,这是 MAA 必需的参数。

Q: ActivityManager 报错刷屏?#

A: 检查虚拟机内核参数中是否包含 psi=1:

Terminal window
cat /proc/cmdline | grep psi

如果没有,重新配置 GRUB 并更新引导。


九、 性能与稳定性#

CPU 占用参考#

在 12 代酷睿 i5 上运行明日方舟:

  • 待机场景:5-10% CPU
  • 战斗场景:15-25% CPU
  • MAA 识图操作:10-20% CPU

对于服务器级 CPU 或多核心处理器,占用更低。

长期稳定性#

软解模式下:

  • 无 GPU 复位风险
  • 不影响其他虚拟机
  • 可 7×24 小时无人值守运行
  • 容器重启后自动恢复

总结#

MAA 明日方舟助手在 Redroid 中的最佳配置是使用 CPU 软解模式(gpu_mode=guest),配合 PSI 内核支持(psi=1)和 触摸输入模拟(redroid_input=touch)。

这种配置方案:

  • 稳定性极高,完全规避 GPU 相关故障
  • 性能充足,现代 CPU 软解 2D 游戏毫无压力
  • 兼容性好,适用于各种虚拟化环境
  • 资源友好,不与其他虚拟机争抢显卡

如果后续需要实时投屏或运行 3D 游戏,可以参考硬件加速配置文档,调整 gpu_mode 和相关参数。

Redroid 运行 MAA 明日方舟助手配置指南
https://iiii.fun/posts/redroid/redroid-maa-config/
作者
庆灵
发布于
2026-10-03
许可协议
CC BY-NC-SA 4.0