本教程将指导你如何在 x86_64 架构的 Linux 服务器上部署 Redroid(容器化安卓),并利用社区脚本实现对 ARM 应用的完美转译支持。

一、环境准备

在开始之前,请确保你拥有一台配置符合要求的云服务器。

  • 我的服务器配置:Linux 服务器,x86 架构(英特尔至强处理器16H16G)。如果是 ARM 架构服务器则性能更佳,无需转译。
  • 操作系统:Ubuntu 20.04 (内核版本 5.4)

    ⚠️ 特别注意:经测试,Ubuntu 22.04 (内核 5.10) 可能会出现在内核模块库找不到对应内核模块的情况。Redroid 官方文档也多以 20.04 为例,建议严格使用 Ubuntu 20.04 以避免踩坑。

  • 基础环境:确保已安装 Python3、pip3 和 git
  • 容器环境:已安装 Docker

💡 提示:如果你不熟悉 Docker 命令行安装,推荐使用宝塔面板或 1Panel 等图形化管理工具,它们通常支持“一键安装 Docker”,更加省心。

二、核心部署步骤

1. 安装内核模块(关键步骤)

Redroid 依赖特定的内核模块来运行。请依次执行以下命令:

# 安装额外的内核模块库
apt install linux-modules-extra-$(uname -r)

# 加载 binder 和 ashmem 模块
modprobe binder_linux devices="binder,hwbinder,vndbinder"
modprobe ashmem_linux

2. 验证模块状态

执行以下命令检查模块是否加载成功:

grep binder /proc/filesystems
grep ashmem /proc/misc
  • 成功标志:返回类似 nodev binderxxx ashmem 的内容
  • 失败标志:如果返回为空,则说明配置有问题,请检查内核模块是否正确加载成功。

3. 配置 Python 环境与脚本

接下来,我们需要使用一个强大的社区脚本来自动化构建镜像。

# 1. 拉取 GitHub 项目
git clone https://github.com/ayasa520/redroid-script/
cd redroid-script

# 2. 安装脚本依赖库 (requests, tqdm)
pip3 install -r requirements.txt

4. 构建 Redroid 镜像

执行 Python 脚本构建镜像。这里我们以 Android 11.0.0 为例(作者主要测试版本,稳定性最高),并开启 Magisk (Root) 和 NDK (ARM 转译) 支持。

python3 redroid.py -a 11.0.0 -mn

参数解析:

参数 说明
-a 11.0.0 指定安卓版本
-m 注入 Magisk,获取 Root 权限
-n 注入 libndk,用于在 x86 处理器上转译运行 ARM 应用

5. 启动容器

镜像构建完成后,使用以下命令启动容器:

docker run -itd --rm \
  --privileged \
  -v ~/data:/data \
  -p 5555:5555 \
  redroid/redroid:11.0.0_ndk_magisk \
  ro.product.cpu.abilist=x86_64,arm64-v8a,x86,armeabi-v7a,armeabi \
  ro.product.cpu.abilist64=x86_64,arm64-v8a \
  ro.product.cpu.abilist32=x86,armeabi-v7a,armeabi \
  ro.dalvik.vm.isa.arm=x86 \
  ro.dalvik.vm.isa.arm64=x86_64 \
  ro.enable.native.bridge.exec=1 \
  ro.vendor.enable.native.bridge.exec=1 \
  ro.vendor.enable.native.bridge.exec64=1 \
  ro.dalvik.vm.native.bridge=libndk_translation.so \
  ro.ndk_translation.version=0.2.3
  • 如果这里出现名称未找到,那你就找找你的docker镜像里面对应的名称将其复制下来粘贴替换redroid/redroid:11.0.0_ndk_magisk即可,如果多行复制粘贴回车执行不了那你就把多行转换成单行再去回车执行。

三、验证与连接

1. 检查容器状态

运行 docker ps,如果看到容器正在运行,说明部署成功。

2. 配置防火墙

请务必去云服务器的安全组放行 TCP 入站 5555 端口。

  • 如果你使用了宝塔面板,请同时在【安全】->【防火墙】中放行该端口。

3. 连接云手机

推荐使用 github项目(Escrcpy)进行连接,稳定性兼容性比原生 scrcpy 更好不易报错,界面比Qtscrcpy简洁。

  • 连接地址:你的服务器IP:5555

四、成功截图

Escrcpy远程连接成功
云手机redroid内运行安装arm应用成功

更多推荐