cd ~,请严格复制,不要自己乱切目录。右键“开始菜单” -> 终端 (管理员),输入以下命令启用 Linux 子系统支持:
# 安装 WSL 功能并启用虚拟机平台
wsl --install
完成后重启电脑。
重启后进入 WSL (Ubuntu),执行以下命令安装构建 Linux 内核所需的依赖包:
# 回到用户主目录 cd ~ # 更新软件源并安装编译所需的依赖包 (如 gcc, make, git 等) sudo apt update && sudo apt install -y build-essential flex bison dwarves libssl-dev libelf-dev cpio qemu-utils git bc pahole unzip
设置 Git 缓存以防止下载大文件失败,并克隆微软官方的 WSL2 内核源码:
# 确保在主目录操作 cd ~ # 设置 Git 缓存区为 500MB,防止下载大文件中断 git config --global http.postBuffer 524288000 # 关闭 SSL 验证,防止因网络问题导致连接失败 git config --global http.sslVerify false # 创建存放内核的目录并进入 mkdir -p ~/kernel && cd ~/kernel # 克隆微软官方 WSL2 内核源码 (6.6.y 版本),--depth=1 表示只下载最新一次提交,节省流量 git clone https://github.com/microsoft/WSL2-Linux-Kernel.git --depth=1 --branch linux-msft-wsl-6.6.y # 进入源码目录 cd WSL2-Linux-Kernel
这里使用 6.6.x 内核的新版配置。这些命令将开启安卓运行所需的 Binder IPC 通信机制:
# 1. 复制微软官方提供的 WSL 默认配置文件 cp Microsoft/config-wsl .config # 2. 修改配置文件,追加 Android 支持和 PSI 性能监控支持 cat >> .config <<EOF CONFIG_ANDROID=y CONFIG_ANDROID_BINDER_IPC=y CONFIG_ANDROID_BINDERFS=y CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder" CONFIG_PSI=y EOF # 3. 根据新修改的配置,自动更新其他依赖选项 make olddefconfig
这一步耗时约 15-20 分钟,将编译内核并生成独立的驱动磁盘文件:
# 使用所有 CPU 核心并行编译内核 (加快速度) make -j$(nproc) # 安装编译好的模块到 modules 目录 make INSTALL_MOD_PATH="$PWD/modules" modules_install # 精简驱动文件,去除不必要的调试符号,减小体积 find ./modules/lib/modules/$(make -s kernelrelease) -name '*.ko' -exec strip --strip-unneeded {} \; # 赋予脚本执行权限 sudo chmod +x Microsoft/scripts/gen_modules_vhdx.sh # 运行微软官方脚本,将 modules 目录打包成 modules.vhdx 虚拟磁盘文件 sudo ./Microsoft/scripts/gen_modules_vhdx.sh "$PWD/modules" $(make -s kernelrelease) modules.vhdx
注意: 执行完这一步会自动退出 WSL。
# 在 D 盘创建文件夹 (你可以改成其他盘符,但后面配置要对应) sudo mkdir -p /mnt/d/MyWaydroid # 复制编译好的内核文件 (bzImage) 到 D 盘 sudo cp arch/x86/boot/bzImage /mnt/d/MyWaydroid/bzImage # 复制打包好的驱动磁盘 (modules.vhdx) 到 D 盘 sudo cp modules.vhdx /mnt/d/MyWaydroid/modules.vhdx # 提示成功并退出 WSL echo "✅ 导出成功,准备退出..." exit
在 Windows PowerShell (管理员) 中执行以下命令,删除刚才的编译环境,释放空间:
# 注销并删除 Ubuntu 系统,清理编译产生的垃圾文件
wsl --unregister Ubuntu
# 重新安装一个干净的 Ubuntu wsl --install -d Ubuntu # 注意:进入系统后设置好用户名密码,然后输入 exit 退出! exit
在 PowerShell 中执行(确保路径是双斜杠 `\\`)。此配置将启用镜像网络(解决代理问题)并挂载我们在第二阶段编译的内核:
# 定义配置内容变量 $config = @" [wsl2] networkingMode=mirrored dnsTunneling=true firewall=true autoProxy=true memory=8GB processors=4 kernel=D:\\MyWaydroid\\bzImage kernelModules=D:\\MyWaydroid\\modules.vhdx [experimental] ignoredPorts=53 "@ # 将配置写入用户主目录下的 .wslconfig 文件 Set-Content -Path "$env:USERPROFILE\.wslconfig" -Value $config # 强制关闭 WSL 以应用新配置 wsl --shutdown
重新输入 wsl 进入 Ubuntu。
cd ~ # 1. 创建 binderfs 挂载点目录 sudo mkdir -p /dev/binderfs # 2. 将 binder 文件系统挂载到该目录 sudo mount -t binder binder /dev/binderfs # 3. 创建软链接,让 Waydroid 能在默认路径找到驱动 sudo ln -s /dev/binderfs/binder /dev/binder sudo ln -s /dev/binderfs/hwbinder /dev/hwbinder sudo ln -s /dev/binderfs/vndbinder /dev/vndbinder # 4. 修改 fstab 文件,确保开机自动挂载驱动 echo "binder /dev/binderfs binder nofail 0 0" | sudo tee -a /etc/fstab # 5. 验证是否成功 (如果输出 /dev/binder 则成功) ls /dev/binder
# 更新软件源并安装基础依赖工具 sudo apt update && sudo apt install -y curl ca-certificates python3-pip python3-venv weston # 添加 Waydroid 官方软件源 curl https://repo.waydro.id | sudo bash # 安装 Waydroid 主程序 sudo apt install -y waydroid
这一步会下载约 800MB 的镜像,请保持网络通畅,耐心等待,不要中断。
# 初始化 Waydroid,-s GAPPS 表示下载带谷歌框架的版本,-f 表示强制重置
sudo waydroid init -s GAPPS -f
在安装后续补丁前,先启动一次 UI 确保基础环境正常:
# 启动 Waydroid 图形界面
waydroid show-full-ui
Waydroid 默认未通过谷歌认证,这会导致 Google Play 无法登录并疯狂弹窗。我们需要手动注册设备 ID。
A. 获取 Android ID
在 Ubuntu 终端执行以下命令:
# 进入安卓 Shell,查询 Google 服务数据库中的 Android ID
sudo waydroid shell sqlite3 /data/data/com.google.android.gsf/databases/gservices.db "select * from main where name = \"android_id\";"
(输出结果应为一串纯数字,例如:345678901234567)
B. 注册设备
C. 清除缓存生效
注册后通常需要等待 5-10 分钟生效。生效后执行以下操作:
为了运行 ARM 应用(如微信、王者荣耀)并获取 Root 权限,执行以下脚本:
cd ~ # 清理旧的脚本目录 (如果有) sudo rm -rf waydroid_script # 克隆第三方安装脚本仓库 git clone https://github.com/casualsnek/waydroid_script cd waydroid_script # 创建 Python 虚拟环境,防止污染系统环境 python3 -m venv venv # 激活虚拟环境 source venv/bin/activate # 安装脚本需要的 Python 库 pip install -r requirements.txt # 运行主脚本 sudo venv/bin/python3 main.py
Libhoudini 和 Magisk)。安装完成后,退出虚拟环境:
# 退出 Python 虚拟环境
deactivate
⚠️ 注意: 安装完后,请务必重启一次 Waydroid 才能看到 Magisk 图标:
# 停止 Waydroid 会话 waydroid session stop # 重新显示 UI waydroid show-full-ui
为了让银行 App 正常使用不闪退,请按以下步骤操作:
打开 Waydroid 安卓系统自带的浏览器,访问以下链接下载 ZIP 包:
下载的文件默认会保存在安卓的 Downloads 文件夹中。
⚠️ 重要提示:
我们默认使用了 swiftshader (CPU 渲染) 以确保 100% 成功启动。
如果你想追求高性能(比如王者荣耀 60 帧、界面丝滑),可以按以下方案尝试开启 GPU 加速。
进入 Ubuntu 终端,输入以下命令修改配置:
# 1. 进入 Waydroid 配置模式 sudo waydroid shell # 2. 修改渲染驱动为 d3d12 (这是 WSLg 专门的 GPU 接口) setprop ro.hardware.gralloc default setprop ro.hardware.egl d3d12 # 3. 退出配置模式 exit
然后重启 Waydroid 生效:
# 停止会话 waydroid session stop # 重新启动 waydroid show-full-ui
如果你改完上面的设置,启动 Waydroid 后发现窗口全黑、一直转圈或者闪退,说明你的显卡驱动和当前的 Waydroid 镜像不兼容。
不需要重装! 只需要改回 CPU 渲染即可:
# 进入配置模式 sudo waydroid shell # 改回软件渲染 (SwiftShader) setprop ro.hardware.egl swiftshader # 退出 exit
在你的 Windows 桌面上新建两个文本文档,分别粘贴下面的代码,然后将后缀名由 .txt 改为 .bat。
双击后会弹出一个黑框(请不要关闭它),稍等片刻安卓界面就会出现。
@echo off
echo 正在启动 Waydroid...
:: 调用 WSL 中的 Ubuntu 发行版,执行显示 UI 的命令
wsl -d Ubuntu waydroid show-full-ui
exit
作用:关闭安卓窗口,并强制杀死 WSL 后台进程。执行后,任务管理器里将看不到任何 WSL/Vmmem 进程,彻底释放内存。
@echo off echo 正在停止 Waydroid 会话... :: 先尝试温和地停止 Waydroid 服务 wsl -d Ubuntu waydroid session stop echo 正在关闭 WSL 子系统... :: 强制关闭整个 WSL 子系统,释放内存 wsl --shutdown echo ✅ 已彻底关闭,Waydroid 进程已结束。 :: 等待 2 秒后自动关闭窗口 timeout /t 2
ignoredPorts=53,如果你发现安卓没网,请检查 .wslconfig 是否生效。至此,你已经拥有了一个完整、纯净且高性能的安卓子系统。享受你的 2025 新体验吧!