Ubuntu22.04 waydroid 安装使用
发表于|更新于
|阅读量:
1. 安装
1
| curl -s https://repo.waydro.id | sudo bash
|
1
| sudo apt install waydroid -y
|
2. 初始化
默认点击应用图标,点击 download 下载 system.img 和 vendor.img 太慢了
这里选择手动下载
- 下载 system.img 和 vendor.img
sourceforge 官网下载:https://sourceforge.net/projects/waydroid/files/images/
- 解压 system.img 和 vendor.img 并放至指定目录
1 2
| sudo cp system.img /etc/waydroid-extra/images sudo cp vendor.img /etc/waydroid-extra/images
|
3. 安装 ARM 转译
初始化后可以正常使用 waydroid 但是还不能使用 arm 版的 app, 安装指令翻译工具 libhoudini(AMD CPU 可以安装 libndk)
1 2
| apt install git python3.10-venv
|
1
| git clone https://github.com/openfde/waydroid_script
|
- 进入下载得到的 waydroid_script 目录,安装
1 2 3 4
| cd waydroid_script python3 -m venv venv venv/bin/pip install -r requirements.txt sudo venv/bin/python3 main.py
|
交互选择:选择安卓版本 ➡️ 选择安装操作 ➡️ 空格选中libhoudini ➡️ 回车下载
4.设置网络
waydroid 容器是通过 waydroid0 虚拟网口进行访问外网的,将 waydroid0 的 nat 转发到我们实际上网的网卡 wlan0/eth0
1 2 3 4 5 6 7 8 9 10 11 12 13
| sudo iptables -t nat -A POSTROUTING -s 192.168.240.0/24 -o enp3s0 -j MASQUERADE sudo iptables -A FORWARD -i waydroid0 -o enp3s0 -j ACCEPT sudo iptables -A FORWARD -i enp3s0 -o waydroid0 -m state --state RELATED,ESTABLISHED -j ACCEPT
waydroid shell ip route add default via 192.168.240.1
iptables -t nat -L -v
iptables -L FORWARD -v
apt install iptables-persistent netfilter-persistent save
|
5. 共享文件夹
对于任何容器或虚拟系统而言,共享目录都是一个重要的功能,在 WayDroid 内也提供了一个轻松建立共享文件夹的机制,本文会概述如何对该功能进行快速的上手。
对于 WayDroid 而言,在进行初始化时会在 /var/lib/wadroid/images 内将文件系统和安全系统下载下来,然后首次运行时,会对 system.img 和 vendor.img 进行解压,具体路径为 ~/.local/share/waydroid。
对于安卓系统而言,一般的 Download、Movies 等目录会存放在 Data 目录下面,可以通过命令 sudo ls ~/.local/share/waydroid/data/media/0/ 查看目录结构的相信信息,然后安装下方的命令将本机的文件夹挂载到 WayDroid 的目录下,在完成挂载之后,宿主机和 WayDroid 容器之间就可以分享文件了。
1 2 3 4 5 6
| sudo mount --bind ~/Documents ~/.local/share/waydroid/data/media/0/Documents sudo mount --bind ~/Downloads ~/.local/share/waydroid/data/media/0/Download sudo mount --bind ~/Music ~/.local/share/waydroid/data/media/0/Music sudo mount --bind ~/Pictures ~/.local/share/waydroid/data/media/0/Pictures sudo mount --bind ~/Videos ~/.local/share/waydroid/data/media/0/Movies
|
或者,你也可以直接将内部存储挂载到主机上的目标文件夹,使用 bindfs 设置用户为所有已挂载文件的所有者(原始所有者权限保留在源文件夹中)。
1 2
| sudo mkdir /mnt/waydroid sudo bindfs --mirror=$(id -u) ~/.local/share/waydroid/data/media/0 /mnt/waydroid
|
6 .常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| waydroid prop set persist.waydroid.multi_windows true
waydroid prop set persist.waydroid.width 0-9999 waydroid prop set persist.waydroid.height 0-9999
sudo vim /var/lib/waydroid/waydroid.cfg
sudo systemctl start waydroid-container sudo systemctl stop waydroid-container
waydroid session start waydroid session stop
waydroid app install xxx.apk
scrcpy -s 192.168.240.112
adb shell settings put global http_proxy "192.168.240.1:10808"
sudo waydroid shell settings get global http_proxy
echo 'curl -vvv https://www.google.com -x 192.168.240.1:8049' | sudo waydroid shell
sudo waydroid shell settings put global http_proxy :0
adb disconnect 192.168.240.112:5555 adb kill-server adb start-server adb devices
|
7. 卸载 waydroid
1 2
| waydroid session stop sudo waydroid container stop
|
1
| sudo apt remove --autoremove waydroid
|
1
| sudo rm -rf /var/lib/waydroid ~/waydroid ~/.share/waydroid ~/.local/share/applications/*aydroid* ~/.local/share/waydroid
|
1
| sudo rm /etc/apt/sources.list.d/waydroid.list /usr/share/keyrings/waydroid.gpg
|