简介

前几天需要学习通进行考试,还指定了只能在手机上考试,废了我好多脑细胞,最后想到电脑有虚拟机手机也可以啊,但是在电脑上安装了安卓模拟器之后发现运行不起来学习通,直接闪退,后面就在雷电云手机开通了一个体验包,0.89元两个小时,在后面就想着能不能自己搭建一个,谷歌了一下果然有方法,但是不知道是我的电脑是X86架构的所以跑起来结果和安卓模拟器一样直接闪退还是什么其他原因,也没有深究。

反正就是没有事想自己折腾一下玩玩可以,但是没必要,直接安装一个安卓模拟器多简单省事。

准备

我是在VM虚拟机里面安装了一个20.04的ubuntu,虚拟机里面装虚拟机在装虚拟机,无限套娃,其实试过22.04,也可以,但是安装步骤不太一样,后面会说的。

然后就是开源的项目Redroid

开源地址:https://github.com/remote-android/redroid-doc

开始

安装Ubuntu的步骤跳过,这个很简单的,网上教程也很多的,主要的是我的博客是针对我自己记录的,这个我会,没必要重复记录【滑稽】

首先更新系统

sudo apt upgrade

1.png

更新完成后重启一下,这个应该不用教吧

切换到root身份

sudo su - root

2.png

安装 Docker 组件

apt-get install -y ca-certificates curl

install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

先执行第一条命令,然后在复制剩下的命令一起粘贴进去执行

3.png

安装内核模块

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

这里就是22.04和20.04的区别,22.04的内核已经有ashmem_linux了,所以不需要执行modprobe ashmem_linux

4.png

检查模块状态

lsmod | grep -e ashmem_linux -e binder_linux

5.png

安装 ADB 工具

apt install -y adb

6.png

拉取 Redroid 容器镜像,可以在https://github.com/remote-android/redroid-doc查看Redroid支持的镜像,然后把redroid/redroid:15.0.0_64only-latest换成你想要的镜像

docker pull redroid/redroid:15.0.0_64only-latest
docker images

可以看到我这边拉取镜像的时候报错了,这个是因为我的ubuntu有ipv6,把ipv6禁用了就可以了,下面是ipv6临时禁用的方法,重启之后恢复,如果提示权限不足则在前面加sudo

sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1
sysctl -w net.ipv6.conf.lo.disable_ipv6=1

7.png

启动 Redroid 容器

docker run -itd --privileged \
-v ~/data:/data -p 5555:5555 \
redroid/redroid:15.0.0_64only-latest \
androidboot.redroid_width=1920 \
androidboot.redroid_height=1080 \
androidboot.redroid_dpi=320

启动参数

名称 用途 参数
redroid/redroid:15.0.0_64only-latest 启动的容器名称 填写刚刚拉取的镜像
androidboot.redroid_width= 屏幕宽度 数值类型,例如1080
androidboot.redroid_height= 屏幕高度 数值类型,例如1920
androidboot.redroid_dpi= dpi 一般320

8.png

查看启动的容器

docker ps -a

9.png

连接

可以看到已经启动好了,现在就可以连接了,连接使用的是QtScrcpy这个工具,也是开源的

地址:https://github.com/barry-ran/QtScrcpy

下载解压然后打开

10.png

在右下角的无线选项里面填写你ubuntu的ip地址,端口是5555

11.png

填写好之后点【无线连接】

12.png

左上角出现设备之后双击连接

13.png

连接成功

14.png

安装软件

安装软件使用adb安装,进入刚刚解压出来的QtScrcpy工具的文件夹

15.png

把下载好的apk软件放进这里面来

16.png

在上面的地址栏输入cmd并回车打开cmd窗口

17.png

输入安装命令

adb install ka.apk

后面的ka.apk是需要安装的软件的名称

18.png

安装成功

19.png

连接云手机打开就可以看到刚刚安装的了

20.png

总结

在Ubunt上跑安卓可以跑起来,但是不知道是处理器是X86的原因还是什么原因,导致了大部分软件打开失败,直接闪退,想尝试玩玩的可以折腾一下,我个人感觉没必要。

二维码

发表评论