跳过正文
  1. Posts/

打造自己的云手机

·1063 字·3 分钟·
项目部署 Docker Cloud Android Linux NixOS
Aaron
作者
Aaron
I only know that I know nothing.
目录

前言
#

当前市面上已经有很多家的云手机厂商,虽然比较稳定,但是把数据全都放在别人手里感觉感觉不是很安全,谁知道每次进行操作时候厂商会不会进行录屏等操作呢。

Github 上有一个开源项目 Redroid 可以使用 Docker 运行安卓容器,我已经使用了很长时间了,很稳定。

准备环境
#

需要一台服务器,AMD64 和 ARM64 都是可以的。

支持的系统如下:点击即可查看各个发行版的部署操作。

如果你是小白,推荐使用 Ubuntu、Arch Linux 或者 NixOS,其中 Ubuntu 需要加载内核模块,Arch Linux 和 NixOS 直接更换 zen 内核即可。

操作部分
#

这里只写出上面所说的三个操作系统,其他的系统可自行阅读官方 Doc。

Ubuntu
#

建议不要使用最新的 Ubuntu 可能会有各种小问题,我这里测试 20.04 和 22.04 版本没有问题,执行下面命令加载内核模块

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

使用一键脚本安装 Docker,不过我还是喜欢用包管理器安装,虽然可能版本旧了一些

curl -sSL https://get.docker.com/ | sh

或者使用包管理器安装 Docker 以及 Docker-compose

sudo apt install docker docker-compose

Arch Linux
#

安装 linux-zen 内核

# 更新系统
sudo pacman -Syu
# 安装 linux-zen 内核
sudo pacman -S linux-zen linux-zen-headers
# 更新 GRUB 引导配置
sudo grub-mkconfig -o /boot/grub/grub.cfg
# 重启系统
sudo reboot
# 验证内核版本,可以看到内核带有 zen 字样
uname -r

使用包管理器安装 Docker 以及 Docker-compose

sudo pacman -S docker docker-compose

NixOS
#

安装 linux-zen 内核

# 编辑 /etc/nixos/configuration.nix 增加一行
boot.kernelPackages = pkgs.linuxPackages_zen
# rebuild 更新配置
sudo nixos-rebuild switch 
# 重启系统
sudo reboot
# 验证内核版本,可以看到内核带有 zen 字样
uname -r

安装 Docker 以及 Docker-compose

# 编辑 /etc/nixos/configuration.nix 添加一行
virtualisation.docker.enable = true;
# docker-compose
environment.systemPackages = with pkgs; [ docker-compose ];
# rebuild 更新配置
sudo nixos-rebuild switch 

运行 Redroid 容器
#

直接启动
#

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

使用 Docker-compose 启动
#

## 编辑 docker-compose.yaml
version: "3"
services:
    redroid:
        stdin_open: true
        tty: true
        privileged: true
        pull_policy: always
        volumes:
            - ~/data:/data
        ports:
            - 5555:5555
        image: redroid/redroid:11.0.0-latest
## 启动 docker 容器
sudo docker-compose up -d

其他说明
#

连接设备
#

可以通过安装 adb 和 scrcpy 使用鼠标来操作安卓

MacOS 和 linux 环境 直接使用包管理器安装 android-platform-toolsscrcpy 就可以了。

### MacOS
brew install --cask android-platform-tools scrcpy
### Debian & Ubuntu
sudo apt install android-platform-tools scrcpy
### Arch linux
sudo pacman -S android-platform-tools scrcpy
### NixOS
environment.systemPackages = with pkgs; [ android-tools scrcpy ];

如果你想使用网页进行操作,可以尝试 ws-scrcpy 这个项目。

如果不想配置环境可以使用我打包的镜像 aaronyes/ws-scrcpy

直接运行

sudo docker run --name ws-scrcpy -d -p 8000:8000 aaronyes/ws-scrcpy

或者使用 docker-compose 启动都是可以的。

version: "3"
services:
    ws-scrcpy:
        container_name: ws-scrcpy
        ports:
            - 8000:8000
        image: aaronyes/ws-scrcpy

启动后可以执行 adb 命令 连接安卓

sudo docker exec ws-scrcpy adb connect ip:5555

如果这里使用的 docker-compose 可以把两个放到一起使用。

version: "3"
services:
    redroid:
        container_name: redroid
        stdin_open: true
        tty: true
        privileged: true
        pull_policy: always
        volumes:
            - ~/data:/data
        ports:
            - 5555:5555
        image: redroid/redroid:11.0.0-latest

    ws-scrcpy:
        container_name: ws-scrcpy
        ports:
            - 8000:8000
        image: aaronyes/ws-scrcpy

这时可以直接使用容器名连接

docker exec ws-scrcpy adb connect redroid:5555

没有应用商店怎么安装软件
#

  1. 可以使用 adb 安装,在电脑上下载安装的 apk 应用包,然后执行 adb install (apk安装包的路径)

  2. 这里还有一个推荐的方法,就是安装一个 via浏览器(这个浏览器很小很轻量无广告),以后的操作可以通过这个浏览器进行

安装 Magisk
#

可以参考下面这个地址

GMS 支持
#

参考下面这个地址

参考文献
#