Waydroid 安装配置指南:3 步在 Linux 桌面跑起 Android 13 容器
【免费下载链接】waydroidWaydroid uses a container-based approach to boot a full Android system on a regular GNU/Linux system like Ubuntu.项目地址: https://gitcode.com/gh_mirrors/wa/waydroid
一条命令拉起 Waydroid 窗口,就能在 Ubuntu 桌面上打开只有安卓版的应用。Waydroid 是一个开源项目,它在 Linux 容器里启动一套完整的 Android 13 系统,把那些安卓 App 直接带进桌面环境。
底层其实是一套 Linux 命名空间
说白了,Waydroid 走的是 LXC 路线:拿宿主内核的命名空间切出一块独立的进程、挂载和 IPC 空间,再在里面启动一套基于 LineageOS 的完整 Android 13。Android 本质上是宿主内核里的一组普通进程,中间没有虚拟机模拟层,所以启动快、资源占用低。代价是宿主内核得加载 binder 和 ashmem 两个模块,安卓的进程间通信靠它们。
第一次把容器跑起来
1. 克隆源码并装进系统
git clone https://gitcode.com/gh_mirrors/wa/waydroid cd waydroid && make install装完在/usr/bin里能看到waydroid。这一步同时把容器服务定义和 DBus 配置拷进系统,剩下的就是把容器拉起来。
2. 如果缺 /dev/binder,先加载内核模块
第一次启动最常见的坑是内核模块。如果宿主上没有/dev/binder或/dev/ashmem,容器根本起不来。这时先执行:
sudo modprobe binder_linux devices="binder,vndbinder,hwbinder" sudo modprobe ashmem_linux加载后用ls /dev/binder确认能看到文件即可。代码里的驱动探测逻辑也是在做同样的检查。
3. 初始化并让它下载系统镜像
sudo waydroid init这一步会下载 system 和 vendor 镜像,校验 sha256 后解压到本地镜像目录,具体可以看镜像下载与校验。网络慢的话可以加-c和-v换更近的 OTA 频道,看到结尾输出 Done 就算成功。
4. 启动并看到一个窗口
waydroid show-full-ui弹出窗口、看到 Android 13 桌面,就说明容器起来了。show-full-ui是把完整安卓装进一个窗口,想换启动方式可以试试first-launch。
容器起来之后能干的事
如果你是开发者,最有用的是调试。waydroid adb connect之后,宿主的 adb 就能直接连进容器,装应用、抓日志,流程和真机没有区别。logcat、shell这些子命令被 Waydroid 封装好了,不用敲 adb 也能看日志。
日常使用最直观的是剪贴板。剪贴板服务把宿主剪贴板和容器打通,在 Linux 里复制的文本能直接贴进安卓 App。配合通知,几个只有安卓版的工具在桌面上就能处理完,不用摸手机。
想把它写进脚本的话,waydroid app install可以装 apk,app list列出已装应用,prop get、prop set读写系统属性。这套子命令对 CI 或自动化流程比较顺手。
第一次跑最容易卡住的三个点
⚠️症状:init 下载卡住或特别慢。原因:默认 OTA 频道是海外服务器,国内网络不一定快。处理:用waydroid init -c <频道> -v <频道>换更近的源。镜像下载后会校验 sha256,哈希不对会自动重下。
⚠️症状:窗口黑屏或者图形很慢。原因:多半是 GPU 直通没生效。处理:看 GPU 处理逻辑 里走的是哪条路径,再确认宿主的 Wayland GPU 栈和驱动是通的。
⚠️症状:容器起来又立刻退出。原因:通常是 AppArmor 或安全策略拦住了某个域。处理:检查data/configs/apparmor_profiles/下的三个 profile,确认容器和 adbd 被允许运行的域没有缺失。
再往深一点走
基础跑通之后,值得接着看的方向:
tools/actions/upgrader.py:负责系统镜像的 OTA 升级,版本比对和拉新镜像的逻辑都在里面。tools/actions/prop.py:读写安卓系统属性,是调容器行为的基础。data/configs/:LXC 配置、seccomp 和 AppArmor profile 都在这,看懂它们才能进一步调隔离和性能。
装好之后在你机器上跑一遍waydroid init试试,遇到问题就把日志贴到项目 issue 里。
【免费下载链接】waydroidWaydroid uses a container-based approach to boot a full Android system on a regular GNU/Linux system like Ubuntu.项目地址: https://gitcode.com/gh_mirrors/wa/waydroid
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考