介绍

这本来是我之前在 reddit 上面发的一个 帖子. 现在干脆把它重新写成中文, 姑且算是给自己引流.

Anbox 实现了基于 lxc 的 Android on Linux 支持, 由于 WSL 2 就是完整的 Linux, 于是稍加折腾就能跑起来了.

安装 anbox

我在 copr 上有现成的 Anbox build, 直接安装即可. 我使用的 WSL 内发行版是 Fedora Remix.

Ubuntu 上我也试过, 但是不能正常显示(窗口啥都没有), 但是 Android 跑起来了, 可能是 SDL 的锅. 跑 Arch 的 WSL 也能跑起来 步骤几乎相同.

1
2
$ sudo dnf copr enable yanqiyu/anbox
$ sudo dnf install anbox
Copy

从源代码编译

你需要 anbox-modules 和 kernel 的源代码. 内核源代码选择和你的 WSL 一致的版本(uname -r).

我这儿是 4.19.84-microsoft-standard, 下面的步骤以此为例, 如果你的版本不一样, 直接换掉版本就成.

解压并准备好编译. (我把它解压到了 ~/WSL2-Linux-Kernel-4.19.84-microsoft-standard).

1
2
3
4
5
6
7
8
9
$ cd WSL2-Linux-Kernel-4.19.84-microsoft-standard
$ cp /proc/config.gz ./
$ gzip -d config.gz
$ mv config .config
$ sudo dnf install bison flex elfutils-libelf-devel openssl-devel -y
$ make prepare
$ make modules_prepare
$ sudo mkdir -p /lib/modules/4.19.84-microsoft-standard
$ sudo ln /home/(USERNAME)/WSL2-Linux-Kernel-4.19.84-microsoft-standard -s /lib/modules/4.19.84-microsoft-standard/build
Copy

编译模块

1
2
3
4
5
$ git clone https://github.com/anbox/anbox-modules.git
$ sudo cp -rT ashmem /usr/src/anbox-ashmem-1
$ sudo cp -rT binder /usr/src/anbox-binder-1
$ sudo dkms install anbox-ashmem/1
$ sudo dkms install anbox-binder/1
Copy

安装模块

1
2
$ sudo modprobe ashmem_linux
$ sudo modprobe binder_linux
Copy

可能会有报错, 完全正常, 只要下面的命令输出提示模块正常工作就行

1
2
$ lsmod | grep -e ashmem_linux -e binder_linux
$ ls -alh /dev/binder /dev/ashmem
Copy

安装 Android 镜像

在 这里 下载 Android 镜像

放到 /var/lib/anbox/android.img

启动 anbox!

提前准备

1
2
3
$ export $(dbus-launch)
$ mkdir /tmp/runtime-user
$ export XDG_RUNTIME_DIR=/tmp/runtime-user
Copy

运行!

1
2
3
$ sudo /usr/share/anbox/anbox-bridge.sh start
$ sudo daemonize /usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox
$ anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
Copy

修复网络

使用 /usr/share/anbox/anbox-shell.sh 的脚本获得 Anbox 中的管理员权限

1
2
3
ip route add default dev eth0 via 192.168.250.1
ip rule add pref 32766 table main
ip rule add pref 32767 table local
Copy

效果

运行截图

当前问题

  • 试图打开设置首页铁定会崩溃, 可能和 这个 有关
  • Ubuntu 下不好使, 虽然可能和 SDL 之类的有关, 但是我也不想管
  • 没图形加速

WSL2运行 Anbox相关推荐

  1. anbox 使用情况_如何在Linux PC上启动并运行Anbox?

    目前 下面的教程教你如何在Linux PC上启动并运行Anbox 在你的Linux电脑上运行Android应用和游戏可以提高你的生产力,Android的应用相比电脑上的应用设计会比较简单的多,但是更加 ...

  2. 在Windows10上基于WSL2运行Linux端图形应用程序

    近期入手了新的电脑,不想折腾,就用了自带的 Windows 系统.但近两三年来基本上都是使用 Ubuntu 系统,所以一时间系统之间切换使用竟还有些不适应.刚巧发现 WSL2 的 Linux 端子系统 ...

  3. anbox 使用情况_开源Anbox在Linux中运行Android应用

    Android 运行时情况带有一个基于 Android 开源项目镜像的最小自定义 Android 体系.所应用的镜像今朝基于 Android 7.1.1. Anbox 以基于容器的方法,在像 Ubun ...

  4. 为什么jupyterlab运行程序的时候会自动停止_搭建 Julia 轻量级编写环境(VSCode,JupyterLab)

    作为数据科学中的后起之秀,Julia 以其出色的运算速度,受到了不少人媒体的追捧(虽然也不清楚这些写稿的人都用没有).Julia 致力于成为一个全面的数据科学语言,不过由于社区依然不如 Python ...

  5. 从零实操基于WSL2 Docker部署Asp.Net Core项目

    前言 平日在公司里都是基于阿里Teambition中的飞流进行Docker部署Api项目或服务,已经习惯了那一套成熟的操作流程,开发和部署确实快捷方便,但是还没在自己的电脑上进行操作过,特别是Wind ...

  6. WSL2支持GPU使用docker

    1.在最新Win10(版本号 2004)安装WSL2 2.下载docker https://hub.docker.com/editions/community/docker-ce-desktop-wi ...

  7. 手把手教程 | 使用 NICE DCV 在 G4 实例上运行 Android 应用程序

    随着Android应用程序和游戏变得越来越丰富,其中有些甚至比PC上的软件更易于使用和娱乐,因此许多人希望能够在云上运行Android游戏或应用程序,而在EC2实例上运行Android的解决方案可以让 ...

  8. anbox android 镜像,Anbox:容器中的 Android

    转自:Linux中国 本文由LCTT原创编译,Linux中国荣誉推出 Anbox 以基于容器的方式,在像 Ubuntu 这样的常规的 GNU Linux 系统上启动一个完整的 Android 系统. ...

  9. Anbox安装apk失败(提示Failure res=-113等)的解决方法

    详细描述,如下(Anbox:如何安装Google Play商店并启用ARM(libhoudini)支持,简单方法): Failed to install PACKAGE.NAME.apk: Failu ...

最新文章

  1. Git commit message和工作流规范
  2. 用DirectX Audio和DirectShow播放声音和音乐(1)
  3. Spring Boot——开发新一代Spring Java应用
  4. 使用Swoole服务搭建简易聊天室
  5. 改写Unity DropDown 支持多次点击同一选项均回调
  6. Echarts开源可视化库学习(一) 介绍与快速上手
  7. 下个软件包可能泄露信用卡信息,Python 包存储库 PyPI 又爆恶意代码,下载达 3 万次,你中招了吗?...
  8. 缩放浏览器时 背景图片固定
  9. 父、子页面之间页面元素的获取,方法的调用
  10. 收藏 | 12 种 NumpyPandas 高效技巧
  11. Spring整合Quartz实现定时任务
  12. 05-netty小例子
  13. paip.验证码识别---除噪算法-中值滤波
  14. 电信 联通双线ip接入服务配置
  15. 韩国程序员面试考什么?
  16. mysql 计算工作日_MySQL函数查找两个日期之间的工作日数
  17. Element el-select 选择器(下拉框)详解
  18. 技术周刊(第10期):新技术又来了?
  19. 软件测试实战教程系列—接口测试用例和报告模板|收藏版
  20. LayUItable动态表格分栏操作

热门文章

  1. C++ 模板和 C# 泛型之间的区别(C# 编程指南)
  2. Innodb独立的undo tablespace
  3. UVA 11478(差分约束 + 二分)
  4. 判断两个ListInteger是否包含同样的值,不考虑位置关系
  5. Linux常用的基本命令13
  6. 简单的BBcode parsing
  7. DB2中不同于其它数据库的操作
  8. [轉]VS 2010 通过 Architecture创建UML类图设计
  9. 对学生朋友的一点建议
  10. Excel Spreadsheet 转换web HTML 5 展示