最近找到一个叫redroid的Android on Linux项目,类似于waydroid,但不需要图形界面(如gnome)就可以运行。redroid使用docker来一键部署启动,非常方便,且全部操作均可通过adb来实现
整个安装教程甚至可以在10分钟内完成
安装教程
- 安装docker
sudo apt update
sudo apt install docker.io
- 配置国内docker镜像源
sudo vim /etc/docker/daemon.json
添加本站的镜像源
{
"registry-mirrors": [
"https://docker.vip.xuebuhui.cn"
]
}
- 重启docker服务
systemctl daemon-reload
systemctl restart docker
- 安装必要依赖
sudo apt install linux-modules-extra-`uname -r`
sudo modprobe binder_linux devices="binder,hwbinder,vndbinder"
sudo modprobe ashmem_linux
- 部署redroid
根据情况选择安卓版本
# x86_64 Android11 定制版本,添加了x86转arm转译库
docker run -itd --rm --privileged \
-v ~/data:/data \
-p 5555:5555 \
teddynight/redroid:latest \
androidboot.redroid_net_proxy_type=static \
androidboot.hardware=mt6891 \
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.enable.native.bridge.exec64=1 \
ro.dalvik.vm.native.bridge=libhoudini.so
# arm原生版本,官网提供多个docker镜像版本
docker run -itd --rm --memory-swappiness=0 \
--privileged --pull always \
-v ~/data:/data \
-p 5555:5555 \
redroid/redroid:11.0.0-latest \
androidboot.hardware=mt6891 ro.secure=0 ro.boot.hwc=GLOBAL ro.ril.oem.imei=861503068361145 ro.ril.oem.imei1=861503068361145 ro.ril.oem.imei2=861503068361148 ro.ril.miui.imei0=861503068361148 ro.product.manufacturer=Xiaomi ro.build.product=chopin \
redroid.width=720 redroid.height=1280 \
redroid.gpu.mode=guest
arm或纯x86_64(不含转译arm)的版本选择就相当多了,docker会自动根据系统选择合适的架构
当前支持的安卓版本:
- Android 15 (
redroid/redroid:15.0.0-latest) - Android 15 64bit only (
redroid/redroid:15.0.0_64only-latest) - Android 14 (
redroid/redroid:14.0.0-latest) - Android 14 64bit only (
redroid/redroid:14.0.0_64only-latest) - Android 13 (
redroid/redroid:13.0.0-latest) - Android 13 64bit only (
redroid/redroid:13.0.0_64only-latest) - Android 12 (
redroid/redroid:12.0.0-latest) - Android 12 64bit only (
redroid/redroid:12.0.0_64only-latest) - Android 11 (
redroid/redroid:11.0.0-latest) - Android 10 (
redroid/redroid:10.0.0-latest) - Android 9 (
redroid/redroid:9.0.0-latest) - Android 8.1 (
redroid/redroid:8.1.0-latest)
推荐用最新版本安卓15。目前cs起源仅在安卓15启动成功了,安卓14及以下低版本的会出现闪退和黑屏现象,Android8.1甚至无法启动到安卓系统
x86_64带转译层的我也试过了,cs起源无法正常渲染游戏界面,启动执行map指令会直接崩溃(但是仅测试过listenserver,没试过纯种server,其实可以试试!)
默认docker内外网不互通,只映射了5555端口,想新增多个端口可以修改docker启动指令,或添加--network=host参数以让安卓和Linux使用同一个网络。注意这个我试过在部分机子上添加此参数,docker无法启动起来,暂时不知道什么原因
- 连接到Android
使用adb connect 公网IP:5555来连接到Android
使用scrcpy连接到远程桌面
基本上就是这样,其它功能可以继续探索一下
参考资料:
超级简单无坑,云服务器部署云手机android,docker + redroid + 安卓控(支持arm)-CSDN博客
redroid搭建云手机学习笔记(一)-CSDN博客
通过Redroid搭建自己的云手机 | Hexo
remote-android/redroid-doc: redroid (Remote-Android) is a multi-arch, GPU enabled, Android in Cloud solution. Track issues / docs here
我的启动命令
预设1 华为鲲鹏920 (arm64 only)
docker run -itd --rm --network=host --memory-swappiness=0 --privileged --pull always -v ~/data:/data -p 5555:5555 redroid/redroid:15.0.0_64only-latest androidboot.hardware=mt6891 ro.secure=0 ro.boot.hwc=GLOBAL ro.ril.oem.imei=861503068361145 ro.ril.oem.imei1=861503068361145 ro.ril.oem.imei2=861503068361148 ro.ril.miui.imei0=861503068361148 ro.product.manufacturer=Xiaomi ro.build.product=chopin redroid.width=720 redroid.height=1280 redroid.gpu.mode=guest