本文将基于 Redroid 开源项目搭建自己的云手机,如果有服务器的话可以做到基于 Web 随时访问。

部署教程

准备工作:

  • 拥有云服务器,推荐配置:- 资源:建议 2H4G - 系统:Ubuntu20.04 - 依赖软件:Docker[1]

  • 个人电脑:基于虚拟机 安装 Ubuntu20.04,推荐使用 ARM 架构服务器或者 RK3588 开发板

首先,我们直接进入 Ubuntu20.04,如果有云服务器就直接进入,没有的话基于本机虚拟化一个,命令如下:

# 如果是国内服务器,不需要执行此操作,为了方便后续操作更快速,我们更换国内源
# https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
# 以下内容切记要根据自己系统版本替换,这里是 ubuntu:20.04
echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse" | tee /etc/apt/sources.list
apt update
# 如果有证书错误就执行
apt install ca-certificates -y

好了,现在我们都已经进去服务器了,然后需要安装好 Docker:

#卸载旧版本docker
apt remove docker docker-engine docker-ce docker.io
apt remove --auto-remove docker
apt update

# 安装
apt update
apt install apt-transport-https curl software-properties-common gnupg-agent -y
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
apt-cache policy docker-ce
apt install docker-ce -y
# 查看 Docker版本
docker version

# 启动 Docker
systemctl restart docker

接下来按照 redroid[2] 官方文档进行操作即可:

apt install linux-modules-extra-`uname -r`
modprobe binder_linux devices="binder,hwbinder,vndbinder"
modprobe ashmem_linux

docker run -itd --rm --privileged \
    --name=redroid \
    --pull always \
    -v ~/data:/data \
    -p 5555:5555 \
    redroid/redroid:11.0.0-latest

docker run -itd \
    --name=redroid \
    --memory-swappiness=0 \
    --privileged --pull always \
    -v ~/data:/data \
    -p 5453:5555 \
    redroid/redroid:13.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

为了可以远程操作我们的云安卓手机,我们需要借助 Scrcpy[3] 工具,Scrcpy 是一个开源的工具,功能点如下:

  • 通过 USB 进行屏幕镜像

  • 可以使用 Scrcpy 来远程控制你的 Android 设备

  • 使用鼠标和键盘来控制 Android 设备

  • 可以将文件在 Android 设备和电脑之间传输

  • 支持 Windows、macOS 和 Linux 系统

我们要使用的就是远程控制功能:

apt install scrcpy

scrcpy -s localhost:5555

效果如下:

630ebb3333aa81750622a8a969d35b4d.jpeg至此,我们算是把云手机给搭建起来了,但这还只是开始,接下来我们还要做一些事情:

  • 如何让云手机随时随地都能访问

  • 如何安装应用程序

  • 如何做一些自动化的事情

  • 等等

这个可玩性可太多了,让我们一起探索吧。

Web 云手机

要想让云手机随时随地都能访问,不难想到就是直接将 redroid 进行 web 化,开源社区也有相关项目:ws-scrcpy[4],我们直接拿过来用就好了:

# 由于官方不支持 Docker 部署
# 这里老胡选了一个其他人上传的
# https://hub.docker.com/r/emptysuns/scrcpy-web
docker run --rm -itd --privileged -v /root/scrcpy-web/data:/data --name scrcpy-web -p 8090:8000/tcp  --link redroid:howie_phone emptysuns/scrcpy-web:v0.1

# 连接前面部署的云手机
docker exec -it scrcpy-web adb connect howie_phone:5555

访问:ip:8090,可以看到页面如下:

38807320507ec18b4eb1dd762b4ca056.jpeg点击 H264 Converter 就能在浏览器里面操作云手机了。

软件安装

通过 adb 即可安装软件:

# 下载 *.apk放到 /root/scrcpy-web/data 目录下
docker exec -it scrcpy-web adb install /data/*.apk
# 远程安装
adb -s ip:5555 install "*.apk"
6ebe32de7053be870bd9713cbb2d60dd.jpeg
redroid_wechat

说明

本文参考资料如下:

  • remote-android[5]

  • scrcpy[6]

  • 使用 Docker 运行 ws-scrcpy:实现 Android web 远程桌面[7]

  • ARM 主机部署 Docker 云手机[8]

  • 在 RK3588 开发板上使用 AIC(Android IN Container)![9]

参考资料

[1]

Docker: https://docs.docker.com/engine/install/

[2]

redroid: https://github.com/remote-android/redroid-doc

[3]

Scrcpy: https://github.com/Genymobile/scrcpy

[4]

ws-scrcpy: https://github.com/NetrisTV/ws-scrcpy

[5]

remote-android: https://github.com/remote-android

[6]

scrcpy: https://github.com/Genymobile/scrcpy

[7]

使用Docker运行ws-scrcpy:实现Android web远程桌面: https://blog.imoeq.com/scrcpy-run-a-android-web-page/

[8]

ARM主机部署Docker云手机: https://www.liaomz.top/2023/08/28/arm-zhu-ji-bu-shu-docker-yun-shou-ji/

[9]

在RK3588开发板上使用AIC(Android IN Container)!: https://www.dnlab.net/archives/94/

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐