<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/ DTD/wml_1.1.xml">

<wml>
<head>
<meta http-equiv="cache-control" content="max-age=180,private" />
</head>
<card title="ReDroid打造自己的云手机">
<p>
作者:<a href="index.php?action=showuser&amp;userid=1&amp;hash=">admin</a><br />时间:2022-10-27 09:14<br />分类:<a href="index.php?action=list&amp;cid=3&amp;hash=">电脑技术</a><br />内容:
ReDroid打造自己的云手机


自己做一个云手机，开源的 Android In Container 解决方案




前言


市面上已经存在很多云手机厂商如多多云、雷电云、河马云手机等，价格从几十到上百元每月一台。价格还好说，但设备运行稳定性、可靠性、数据安全性全部依赖第三方厂商，注定不能进行敏感性操作或部署对安全可靠高要求的企业级服务。


本文介绍一种开源的 AIC (Android In Container) 解决方案 ReDroid，使用本教程可以在一台普通型服务器运行多个安卓设备环境，并可在客户机电脑连接使用该云手机。


 


正文


这里我选择了腾讯云主机 x86架构 CPU(AMD/INTEL)，配置至少 2c2g，推荐 2c4g，带宽设置为 10M


本文以 2c2g 低配云主机为例


 


系统是腾讯云公共镜像 Ubuntu18.04 注意系统如果使用 Centos 按照 github 的说明操作会下载不到依赖 建议优先使用 Ubuntu18.04 系统


注意 Ubuntu 系统使用 ssh 登录时默认不允许 root 用户直接登录，可以在配置开启也可以使用普通账户登录，以普通账户登录为例


 


ssh ubuntu@ip


#输入密码


sudo su 


#进入root


 


Install Docker Engine on Ubuntu


根据 Docker 官方文档安装Docker


 


curl -fsSL https://get.docker.com -o get-docker.sh


sudo sh get-docker.sh


# 或者从仓库下载都可


# sudo apt-get install -y docker.io


# systemctl start docker


# systemctl enable docker


 


ReDroid Kernel Modules


根据 ReDroid 官方文档执行以下操作


 


# Ubuntu 16.04 / 18.04 / 20.04 


sudo apt-get install -y git kmod make gcc linux-headers-`uname -r` 


# 本环境即 linux-headers-4.15.0-159-generic


# 解压项目 master 分支代码到服务器任意位置


sudo make # build kernel modules 


sudo make install # build and install *unsigned* kernel modules


 


ReDroid-Doc


根据 ReDroid 官方文档执行以下操作


这里我选择手机系统版本是 AOSP8.1 amd架构


注：AOSP8.1 即谷歌原版的纯净系统 Android8.1


 


docker run -itd --rm --memory-swappiness=0 --privileged \


-v ~/data:/data \


-p 5555:5555 \


redroid/redroid:8.1.0-amd64


 


Scrcpy


根据 Scrcpy 官方文档下载安卓投屏软件源码包到客户机，解压使用


 


adb connect ip:5555


# adb devices 可查看连接设备列表


scrcpy --serial ip:5555


 


至此云手机运行成功并可以投屏操作使用，如果想再开一台手机只需要将容器启动命令里的 &ldquo;-p 5555:5555&rdquo; 里前面的 5555 替换个新端口号即可，如 &ldquo;-p 5556:5555&rdquo;，再使用 &ldquo;adb connect ip:5556&rdquo; 就连上第二台云手机了


 


测试结果


使用 ARM CPU(SR1) + Ubuntu20.04 AOSP11或8.1 arm架构 连接出现设备 offline 异常


使用 x86 CPU + Ubuntu20.04 AOSP11或8.1 amd64架构 连接正常 投屏出现闪屏


使用 x86 CPU + Ubuntu18.04 AOSP11或8.1 amd64架构 连接正常 投屏正常


 


强烈建议一开始就使用 Ubuntu18.04 系统，避免不必要的麻烦！


开启一台云手机时，占用CPU 20%，内存不到1G，所以 2c2g 的 x86 CPU 服务器也可以同时运行两三台云手机，具体还要视手机实际使用情况而定


 


总结


打造自己的云手机既可以用来做测试开发使用，也可以保证安全隐私的情况下执行敏感操作，还可以用来做模拟操作RPA机器人，或执行挂机任务，值得一试。


 


详细教程见：https://blog.csdn.net/u012960155/article/details/124003870


甲骨文ARM利用docker镜像运行安卓云手机：https://blog.imoeq.com/oracle-arm-run-android-by-docker/




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



Docker Hub：https://hub.docker.com/r/redroid/redroid


</p><p>
<a href="index.php?action=login&amp;hash=">立即登陆发表评论</a><br />
</p>
<p><a href="index.php?action=list&amp;hash=">返回日志列表</a><br /><a href="index.php?action=index&amp;hash=">返回主页</a></p>
</card>
</wml>
