下面是一份从零开始,在 Fedora 上安装并配置 Waydroid添加 ARM 转译层(libhoudini),并通过 ADB 将 ARM64 APK 安装到容器里的详细教程。


一前置条件

  1. Fedora(建议 36 及以上版本)。

  2. 拥有 sudo 权限的用户。

  3. 已联网,可访问外网下载镜像和脚本。

  4. 已安装基础开发工具:

    sudo dnf groupinstall "Development Tools"
    sudo dnf install wget git python3-pip lzip sqlite
    
  5. (可选)宿主机上已安装并配置好 Clash/VPN 等代理工具,以保证下载速度和稳定性。


二安装 Waydroid

  1. 启用 Waydroid 官方仓库(如果已添加可跳过):

    sudo dnf install dnf-plugins-core
    sudo dnf config-manager --add-repo https://repo.waydro.id/fedora/waydroid.repo
    
  2. 安装 Waydroid

    sudo dnf install waydroid
    
  3. 查看安装结果

    rpm -q waydroid
    # 应输出类似:waydroid-1.5.4-1.fc42.noarch
    

三初始化 Waydroid

从 1.4.3 版本开始,waydroid init 命令必须指定系统及厂商 OTA 镜像地址。

  1. 停止(或确保未运行)Waydroid 服务

    sudo systemctl stop waydroid-container
    
  2. 初始化容器镜像

    sudo waydroid init \
      -c https://ota.waydro.id/system \
      -v https://ota.waydro.id/vendor
    
    • -c/--system-ota:下载并解压 Android System 镜像
    • -v/--vendor-ota:下载并解压 Vendor 分区镜像
      期间会下载约 800 MB 的文件,请耐心等待。
  3. 启动并开机自启服务

    sudo systemctl enable --now waydroid-container
    
  4. 启动容器会话并打开完整桌面

    waydroid session start
    waydroid show-full-ui
    
  5. 确认容器状态

    waydroid status
    # 应显示:container is running
    

四给容器添加 ARM 转译(libhoudini)

Waydroid 默认只跑 x86(64) Android,无法直接安装 ARM 原生 APK需要引入 Houdini 翻译层。

  1. 克隆并安装辅助脚本

    cd ~
    git clone --depth=1 https://github.com/casualsnek/waydroid_script.git
    cd waydroid_script
    sudo pip3 install -r requirements.txt
    
  2. 运行脚本只安装 libhoudini

    sudo python3 main.py
    
    • 选择 Android 13
    • 选择 “Install” 操作
    • 在组件列表里,用空格只选中 libhoudini,确保其他项都是“○”
    • 回车确认,等待脚本下载并安装(体积小速度快)
  3. 重启容器使生效

    sudo waydroid session stop
    sudo waydroid session start
    waydroid show-full-ui
    

五连接 ADB 并安装 APK

  1. 查看容器内 Android 的 IP
    在 Waydroid 桌面里打开 “设置 → 关于平板 → 状态信息 → IP 地址”
    假设显示:192.168.240.112

  2. 在宿主机连接 ADB

    adb kill-server
    adb start-server
    adb connect 192.168.240.112:5555
    # 返回 “connected to 192.168.240.112:5555”
    
  3. (可选)验证连接

    adb devices
    # 列出 192.168.240.112:5555 device
    
  4. 推送并安装 ARM64 应用

    • 方法 A:直接安装本地 APK

      adb install ~/下载/gwy-online-arm64-6.17.75-final.apk
      
    • 方法 B:推送到 Download 再在 UI 安装

      adb push ~/下载/gwy-online-arm64-6.17.75-final.apk /sdcard/Download/
      

      然后在 Waydroid 的文件管理器中浏览 /sdcard/Download,点击 APK 安装。

  5. 启动并验证应用运行

    • 在 Waydroid 的应用抽屉里找到新装图标,点击打开

    • 若要从宿主机命令行启动:

      WAYDOID_PKG=$(adb shell pm list packages | grep gwy | cut -d: -f2)
      adb shell am start -n ${WAYDOID_PKG}/.MainActivity
      

六常见问题与排查

  • 仍报 INSTALL_FAILED_NO_MATCHING_ABIS
    确认 libhoudini 安装成功:

    waydroid shell ls /system/lib*/libhoudini*.so
    
  • ADB 连接不上

    • 确保容器在跑:waydroid status
    • 防火墙允许 5555 端口或临时关闭:sudo systemctl stop firewalld
  • 网络不通
    容器默认透传宿主网络,无需额外配置。如无法上网,检查宿主机防火墙对 waydroid0 接口的放行。

  • 想装 Google Play 等
    重新运行脚本时可选 gapps,体积较大,需耐心等待下载完成。


至此,你已在 Fedora 上完整配置好了 Waydroid,包括 ARM 转译层,并能通过 ADB 向容器安装任意 ARM64 应用,享受流畅原生体验。