镜像下载、域名解析、时间同步请点击 阿里云开源镜像站

Anbox 介绍

  • Anbox 是一个可以在 GNU/Linux 发行版上运行 Android App 的容器,是一个开源兼容层。
  • 其工作原理是在 LXC 容器中运行 Android 环境,重新创建 Android 的目录结构作为可挂载的 loop 镜像,同时使用本机 Linux 内核来执行应用,所以没有虚拟化的开销,非常轻量级且保障了运行速度。
  • 每个 Android 应用将在一个单独窗口打开,就像 Linux 本地应用程序一样。

安装过程

1、环境要求

  • Anbox 的 dkms 模块在内核版本 ≥ 5.7 下不会工作。
  • 需要运行带有 ashmem 和 binder 模块的内核,但它们不是 Arch Linux 默认内核 ( linux ) 的一部分。

2、开始安装

  • 确保系统安装了 Linux 内核头文件:

    sudo pacman -S linux-headers
  • 安装 Anbox :

    • anbox-image 是官方镜像,可根据需要选择其他镜像
    • anbox-git 是 Anbox 运行的容器
    • anbox-modules-dkms-git 是 Anbox 所需的内核模块
    yay -S anbox-image anbox-git anbox-modules-dkms-git
  • 加载 DKMS 模块:

    sudo modprobe ashmem_linux
    sudo modprobe binder_linux

    检查设备:

    ls -1 /dev/{ashmem,binder}

    看到如下信息,说明模块加载成功:

    /dev/ashmem
    /dev/binder
  • 挂载 binderfs

  • 启动服务,设置开机自启:

    sudo systemctl start anbox-container-manager.service
    sudo systemctl enable anbox-container-manager.service

3、配置网络

  • Arch Wiki 提供了三种连网方案:NetworkManager、systemd-networkd、anbox-bridge。
  • 笔者采用 anbox-bridge 方式:
    • 下载 anbox-bridge.sh 脚本到 /usr/bin 目录下,并赋予可执行权限

    • 创建文件 /etc/systemd/system/anbox-container-manager.service.d/enable-anbox-bridge.conf 并写入一下内容:

      [Service]
      ExecStartPre=/usr/bin/anbox-bridge.sh start
      ExecStopPost=/usr/bin/anbox-bridge.sh stop

4、安装 adb 工具

  • adb ( Android Debug Bridge ) 是安卓开发调试工具,我们用它来管理 Anbox 内的安卓应用。

    sudo pacman -S android-tools

adb 使用

  • 安装应用

    adb install /path/to/app.apk
  • 查看应用列表

    adb shell pm list packages
  • 卸载用户应用

    adb uninstall app.name
  • 卸载系统应用

    adb uninstall --user 0 app.name

尚未解决的问题

  • 某些应用打开后,窗口上方的标题栏消失,导致整体画面上移但实际点击区域未移动,且下方留有黑边。
  • 未挂载 binderfs 时,开关机会提示 [FAILED]Failed to Mount Android Binder File System
  • 按 Arch Wiki 步骤挂载binderfs后,开关机提示 [FAILED]Failed to Mount /dev/binderfs

本文转自:ONe2

Arch Linux 安装 Anbox的更多相关文章

  1. Arch Linux 安装记录

    Arch Linux 安装记录 基本上参考wiki上的新手指南,使用arch 2014.6.1 iso安装 设置网络 有线网络 Arch Linux 默认开启DHCP. 静态ip 首先关闭DHCP:s ...

  2. Arch LInux安装dde(Deepin Desktop Environment 深度桌面环境)

    我一直比较推荐一些Linux新手使用Deepin Linux,因为我认为这种尽量的follow Windows的系统至少对于新手来说是比较的友好的,而且预装了QQ 火狐浏览器中文版,甚至还移植了像36 ...

  3. Arch Linux 安装rust

    Arch Linux 安装rust 0. 参考 Rust Toolchain 反向代理使用帮助 1. 安装 安装rustup和toolchain yaourt -S rustup rustup ins ...

  4. Arch Linux 安装简明流程

    Arch Linux 安装简明流程 这是一篇为 GPT/EFI 引导 的电脑安装 Arch Linux(双系统)的中文简明流程,尽可能省略了可以省略的流程与文字以使得篇幅尽量短小,基本上基于 Arch ...

  5. Arch Linux 安装博通 BCM4360 驱动(Arch Linux, Ubuntu, Debian, Fedora...)

    BCM4360 在2010年9月,博通完全开源的硬件驱动[1].该驱动程序 brcm80211已被列入到自2.6.37之后的内核中.随着2.6.39发布,这些驱动程序已被重新命名为 brcmsmac和 ...

  6. Arch Linux 安装、配置、美化和优化

    国庆假期玩了下Arch Linux,发现这货跟Ubuntu之流相差甚远,甚难调教,而且安裝过程全命令行,会有各种问题,各种知识... --- 安装引导器--- -------------------- ...

  7. Arch linux安装

    安装archlinux可参考: http://blog.sina.com.cn/s/blog_69e5d8400101bqlj.html http://www.cnblogs.com/mad/p/32 ...

  8. Arch Linux 安装过程

    在VM中装了Arch,由于过程较为曲折,现写博客一篇聊以慰藉. 1.新建虚拟机,将下载好的archlinux-2016.03.01-dual.iso挂到虚拟机设置的CD/DVD 2.进入Arch安装界 ...

  9. 把Arch Linux安装到U盘上的具体教程

    Arch Linux简介 Arch Linux(或称Arch)是一种以轻量简洁为设计理念的Linux发行版.其开发团队秉承简洁.优雅.正确和代码最小化的设计宗旨.Arch Linux 项目受 CRUX ...

随机推荐

  1. drop、truncate、delete的区别

    (1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作. TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独 ...

  2. Linux基础入门笔记

    今天带来Linux入门的一些基础的笔记,科班出身的同学们,Linux已经成为了必修课了,下面我带来关于Linux的相关入门知识以及Linux简单的介绍! Linux内核最初只是由芬兰人林纳斯·托瓦兹( ...

  3. find+grep+正则表达式

    目录 find+grep+正则表达式 1.find 2.grep 3.正则表达式 find+grep+正则表达式 1.find 根据文件的名称或者属性查找文件. # 自己在 /root/adc目录下长 ...

  4. Oracle表数据或结构误删还原

    数据误删 表结构没有发生改变 --开启表字段转移,不开启无法还原 alter table 表名 enable row movement; --数据闪回 flashback table 表名 to ti ...

  5. 解决Springboot中的日期解析错误

    错误信息: error: Failed to parse Date value '2022-01-12 15:00:00': Cannot parse date "2022-01-12 15 ...

  6. Dapr 助力应用架构的可持续性

    在文章亚马逊可持续软件工程实践[1] 有这么一段我们为什么要关注"可持续发展": 联合国于 2015 年制定了一个全球框架<巴黎协定>[2],随后各缔约国纷纷制定了&q ...

  7. 「在 Kubernetes 上运行 Pgpool-Il」实现 PostgreSQL 查询(读)负载均衡和连接池

    介绍如何在 Kubernetes 上运行 Pgpool-II 实现 PostgreSQL 读查询负载均衡和连接池. 介绍 因为 PostgreSQL 是一个有状态的应用程序,并且管理 PostgreS ...

  8. JS 逻辑运算符的特点

    致谢 首先说一下,其他数据类型转换为布尔类型的规则: null.undefined.0.NaN.空字符串转换为false,其他转化为 true. 1. 取反 ! 首先把数据转化为布尔值,然后取反,结果 ...

  9. png图片隐写

  10. scrapy爬取youtube游戏模块

    本次使用mac进行爬虫 mac爬虫安装过程中出现诸多问题 避免日后踩坑这里先进行记录 首先要下载xcode ,所以要更新macOS到10.14.xx版本 更新完之后因为等下要进行环境路径配置 但是ma ...