保贝狗是一款个人信息保护软件
欢迎体验、使用~

打造属于自己的android云手机

市面上有很多厂商提供云手机服务,价格从几十到上百元每月一台。但如果对设备的稳定性、安全性、隐私性有要求的话,也可以完全自己动手打造一个。

开源的解决方案主要有两个一个是基于Anbox的Anbox Cloud,配置稍显复杂,小编在Orange Pi 5 上没有试验成功;另一个采用容器方案的ReDroid(Remote anDroid) ,也就是本期的主角了。

redroid介绍

redroid是GPU加速的AIC(Android In Cloud)解决方案。您可以在 Linux 主机中启动多个实例( Docker 、 podman 、 k8s 等)。 redroid 支持 arm64 和 amd64 架构。 redroid 适用于云游戏、虚拟化电话、自动化测试等。

目前支持的android版本及对应的docker镜像:

  • 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)

安装环境

redroid 支持 arm 和 x86,但目前很多android应用都只适配了arm,要在x86上跑依赖arm的应用就需要用到模拟技术,性能肯定没法和原生相比,因此想要获得比较好的性能体验,可以上一个Arm的板子,目前Arm芯片中RK3588(S)性价比较高,小编手上有一个基于此芯片的Orange Pi 5, 使用的系统为Armbian 23.5 Jammy,接下来就以此为实验对象。

开始安装

官方教程中,Ubuntu在运行redroid之前需要安装并启用一些内核模块(如下命令行),Armbian 23.5 Jammy是基于ubuntu,应该也安装下,但在试验中发现并不需要,应该系统内核集成了

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

更多Linux发行版的依赖安装教程参考官方的部署教程

相关依赖安装后,用以下docker命令即可创建一个android 12的容器。

docker run -itd --rm --privileged \
    -v ~/data:/data \
    -p 5555:5555 \
    redroid/redroid:12.0.0-latest

通过adb连接到android系统,并通过scrcpy来操控,想远程(非局域网)操作,可以参照之前发表的文章 – 异地如何访问家庭网络

adb connect {ip}:5555
scrcpy -s {ip}:5555
主页/桌面
主页/桌面

通过adb安装AIDA查看系统信息,以及微信做测试

adb install AIDA64_1.91.apk
adb install weixin8040android2420_arm64_1.apk

系统信息

AIDA系统信息
AIDA系统信息

微信

微信
微信

常用的配置

## 使用自定义设置运行redroid
docker run -itd --rm --privileged \
    --pull always \
    -v ~/data:/data \
    -p 5555:5555 \
    redroid/redroid:12.0.0-latest \
    androidboot.redroid_width=1080 \
    androidboot.redroid_net_proxy_host=192.168.10.117 \
    androidboot.redroid_net_proxy_port=8080 \
    androidboot.redroid_net_proxy_type=static \
    androidboot.redroid_height=1920 \
    androidboot.redroid_dpi=480 \
    ro.product.brand=Sony \
    ro.product.device=XQ-BC72 \
    ro.product.model=XQ-BC72 \
    ro.product.name=XQ-BC72 \
    ro.product.manufacturer=Sony

一些常用参数的说明

参数 描述 默认值
androidboot.redroid_width 显示宽度 720
androidboot.redroid_height 显示高度 1280
androidboot.redroid_fps 显示帧率 30(启用 GPU时)
15 (未启用 GPU时)
androidboot.redroid_dpi 显示分辨率 320
androidboot.redroid_net_proxy_type 代理类型: static, pac, none, unassigned; 一般用static
androidboot.redroid_net_proxy_host 代理类型为static时,此处填http代理的IP或域名
androidboot.redroid_net_proxy_port http代理端口 3128
androidboot.redroid_gpu_mode guest: 使用软件渲染
host: 使用GPU加速渲染
auto: 自动检测
auto
ro.xxx 允许覆盖 ro.xxx 属性;例如设置 ro.secure=0 ,则默认提供 root adb shell;或改变设备的信息,如设备型号、设备名之类的

通过以上对redroid的介绍,及其安装与配置说明,即可打造属于自己的云手机服务,但由于大多数设备不支持GPU加速,所以界面还是一点卡的,做一些自动化测试或跑一些计划任务还是不错的,后面有机会再讲一下在orange pi 5上的GPU加速方案。

-END-

作者|dev2ex 保贝狗后端开发工程师

网络安全
互联网安全
-=||=-收藏赞 (0)
保贝狗是一款个人信息保护产品。 » 打造属于自己的android云手机

评论 抢沙发

保贝狗

保贝狗是一款免费的个人信息保护产品
大家都在用的隐私保护软件
保贝狗专注于个人信息保护的研究
实用、简单、方便、快捷

QQ联系我们微信联系我们

登录

找回密码

注册