🚀 2025 完美避坑版:Windows 11 原生运行安卓 (Waydroid) 完整教程

方案亮点:

⚠️ 避坑指南(必读):

第一阶段:准备一次性编译环境

1. 初始化 WSL

右键“开始菜单” -> 终端 (管理员),输入以下命令启用 Linux 子系统支持:

# 安装 WSL 功能并启用虚拟机平台
wsl --install

完成后重启电脑

2. 安装编译工具

重启后进入 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

3. 下载源码

设置 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

第二阶段:编译内核与驱动 (VHDX 方案)

1. 配置内核

这里使用 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

2. 编译并打包

这一步耗时约 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

3. 导出文件

注意: 执行完这一步会自动退出 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

第四阶段:配置正式环境

1. 重装 Ubuntu

# 重新安装一个干净的 Ubuntu
wsl --install -d Ubuntu
# 注意:进入系统后设置好用户名密码,然后输入 exit 退出!
exit

2. 配置 .wslconfig (解决代理和内存问题)

在 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。

1. 修复 BinderFS (解决 "ls: cannot access" 报错)

🔥 关键步骤: 新版内核必须手动挂载驱动,否则无法启动!
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

2. 安装 Waydroid

# 更新软件源并安装基础依赖工具
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

3. 初始化 (自动下载)

这一步会下载约 800MB 的镜像,请保持网络通畅,耐心等待,不要中断

# 初始化 Waydroid,-s GAPPS 表示下载带谷歌框架的版本,-f 表示强制重置
sudo waydroid init -s GAPPS -f
看到 "Waydroid initialized successfully" 即为成功!

第六阶段:补丁、Root 与银行认证

1. 启动 Waydroid

在安装后续补丁前,先启动一次 UI 确保基础环境正常:

# 启动 Waydroid 图形界面
waydroid show-full-ui

2. 修复 Play Protect 认证 (解决 Google 弹窗)

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. 注册设备

  1. 复制上面查询到的那串数字。
  2. 点击访问 Google 设备注册页面 (google.com/android/uncertified)
  3. 登录你的谷歌账号,将数字粘贴到输入框中,点击 "注册 (Register)"。

C. 清除缓存生效

注册后通常需要等待 5-10 分钟生效。生效后执行以下操作:

  1. 进入 Waydroid 安卓界面。
  2. 打开 Settings (设置) -> Apps (应用) -> See all apps
  3. 找到 Google Play Store -> Storage & cache -> Clear storage (清除数据)
  4. 找到 Google Play Services -> Storage & cache -> Clear storage (清除数据)
  5. 重启 Waydroid。

3. 安装 ARM 转译与 Magisk (交互式)

为了运行 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
🎮 菜单操作指南:

安装完成后,退出虚拟环境:

# 退出 Python 虚拟环境
deactivate

⚠️ 注意: 安装完后,请务必重启一次 Waydroid 才能看到 Magisk 图标:

# 停止 Waydroid 会话
waydroid session stop
# 重新显示 UI
waydroid show-full-ui

4. 通过 Play Integrity 认证(解决银行 App 闪退)

为了让银行 App 正常使用不闪退,请按以下步骤操作:

A. 基础配置

  1. 在安卓里找到 Magisk (或 Kitsune Mask) 图标打开。
  2. 点击 Magisk 右上角齿轮 -> 开启 Zygisk -> 重启 Waydroid。

B. 下载模块 (直接在安卓内操作)

打开 Waydroid 安卓系统自带的浏览器,访问以下链接下载 ZIP 包:

下载的文件默认会保存在安卓的 Downloads 文件夹中。

C. 刷入与配置

  1. 在 Magisk -> 模块 -> 从本地安装,找到 Downloads 文件夹,依次刷入刚才下载的两个 zip。
  2. 在 Magisk -> 设置 -> 配置排除列表 (Configure DenyList)
  3. 点击右上角菜单 -> 显示系统应用
  4. 勾选 银行 App王者荣耀
  5. 注意: 因为安装了 Zygisk-Assistant,设置里的“遵守排除列表 (Enforce DenyList)”开关建议关闭
  6. 重启 Waydroid,大功告成!

第七阶段:性能释放 —— 开启 GPU 硬件加速

⚠️ 重要提示:
我们默认使用了 swiftshader (CPU 渲染) 以确保 100% 成功启动。
如果你想追求高性能(比如王者荣耀 60 帧、界面丝滑),可以按以下方案尝试开启 GPU 加速。

🚀 方案 A:开启 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

🚑 方案 B:如果黑屏了,如何救回(后悔药)

如果你改完上面的设置,启动 Waydroid 后发现窗口全黑、一直转圈或者闪退,说明你的显卡驱动和当前的 Waydroid 镜像不兼容。

不需要重装! 只需要改回 CPU 渲染即可:

# 进入配置模式
sudo waydroid shell
# 改回软件渲染 (SwiftShader)
setprop ro.hardware.egl swiftshader
# 退出
exit

🛠️ 懒人福利 —— 一键启停脚本

在你的 Windows 桌面上新建两个文本文档,分别粘贴下面的代码,然后将后缀名由 .txt 改为 .bat

🟢 脚本 1:启动安卓 (Start_Waydroid.bat)

双击后会弹出一个黑框(请不要关闭它),稍等片刻安卓界面就会出现。

@echo off
echo 正在启动 Waydroid...
:: 调用 WSL 中的 Ubuntu 发行版,执行显示 UI 的命令
wsl -d Ubuntu waydroid show-full-ui
exit

🔴 脚本 2:彻底关闭 (Kill_Waydroid.bat)

作用:关闭安卓窗口,并强制杀死 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

💡 常见问题避坑

🎉 最终成果

至此,你已经拥有了一个完整、纯净且高性能的安卓子系统。享受你的 2025 新体验吧!