GAPPS 与默认(AOSP)镜像版本的核心区别

以下对比以 Waydroid init 时不带 -s(默认 AOSP 镜像)和带 -s GAPPS 两种版本为例。


1. 镜像内容对比

特性 默认(AOSP) GAPPS
Google Play 商店 ×
Google Play 服务 ×
Google 帐号管理 ×
系统镜像体积 大约 800 MB 大约 1000 MB
镜像来源 官方 AOSP 官方 AOSP + GMS 补丁
应用兼容性 需手动侧载 原生支持绝大多数应用

2. 适用场景

  • 默认(AOSP)

    • 只需运行开源安卓环境
    • 注重隐私或希望极简系统
    • 通过 APK 侧载安装第三方商店(如 F-Droid)
  • GAPPS

    • 需要原生 Google 服务框架
    • 直接安装并使用 Google Play 商店
    • 大部分国内外付费应用和依赖 GMS 的应用均可运行

3. 优缺点总结

  • 默认(AOSP)

    • 优点:镜像更小无闭源组件开箱即用纯净环境
    • 缺点:无法访问官方应用商店,需手动安装依赖
  • GAPPS

    • 优点:即装即用 Google Play 商店和服务,高兼容性
    • 缺点:镜像更大包含闭源组件,有时需额外注册 Device ID

 

 

一.在 Fedora 上安装Waydroid

下面是一份从零开始,在 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 -s GAPPS
    \
      -c https://ota.waydro.id/system \
      -v https://ota.waydro.id/vendor
    
    • -c/--system-ota:下载并解压 Android System 镜像
    • -v/--vendor-ota:下载并解压 Vendor 分区镜像
      期间会下载约 1000 MB 的文件,请耐心等待。

                  或者用代理            

      • sudo http_proxy=http://127.0.0.1:10808 https_proxy=http://127.0.0.1:10808 waydroid init -s GAPPS
        

       

  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
    

扩展,虚拟环境版,git clone 后重启前使用

pipenv install

pipenv shell

pip install -r requirements.txt  # 注意:不要加 sudo,也不需要写 pip3(虚拟环境中 pip 已关联当前 Python 版本)

sudo /home/yys/.local/share/virtualenvs/waydroid_script-Tl8wA1rk/bin/python3 main.py # 直接指定虚拟环境中 Python 的完整路径来运行脚本

 


五连接 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,体积较大,需耐心等待下载完成。

 

七停止容器并删除数据

sudo systemctl stop waydroid-container
sudo rm -rf /var/lib/waydroid \
             ~/.local/share/waydroid \
             ~/.share/waydroid \
             ~/waydroid

二.在Kubuntu上安装Waydroid

在Kubuntu上安装Waydroid可以按照以下步骤进行,Waydroid是一个在Linux上运行Android应用的容器解决方案,基于Wayland协议:

1. 确保系统要求

  • 运行Kubuntu 20.04或更高版本
  • 启用Wayland会话(Kubuntu默认可能使用X11,需要在登录界面切换)
  • 系统支持KVM虚拟化(推荐,可提供更好性能)
  • Waydroid 依赖 Wayland 显示服务器以获得最佳性能和兼容性。Kubuntu 24.04 默认使用传统的 X11,因此我们的首要任务是彻底切换环境。

    1. 安装 Plasma Wayland 会话组件
      打开终端 (Konsole),输入以下命令来安装 Wayland 会话所需的核心软件包:

      sudo apt update
      sudo apt install plasma-workspace-wayland -y
      
    2. 设置 Wayland 为默认登录会话
      为了让系统每次启动都自动进入 Wayland,我们需要编辑显示管理器 (SDDM) 的配置文件。

      执行以下命令,使用 nano 编辑器打开或创建配置文件:

      sudo nano /etc/sddm.conf
      

      在打开的文件中,粘贴以下内容。如果文件已有内容,请确保 [Autologin] 部分和 Session 的值与下面一致(x11为Session=plasma.desktop):

      [Autologin]
      Session=plasmawayland.desktop
      
      • 说明: 这行配置告诉登录管理器,默认加载的桌面会话是 plasmawayland.desktop,也就是 Plasma 的 Wayland 会话。

      完成后,按下 Ctrl + X,然后按 Y 键保存,最后按 Enter 键确认退出。

    3. 重启并验证
      重启您的电脑以使配置生效。登录后,打开终端并运行以下命令来验证当前会话类型:

      echo $XDG_SESSION_TYPE
      

      如果终端输出 wayland,恭喜您,最关键的一步已成功完成!您的系统现在默认运行在 Wayland 之上。


2. 安装依赖包

打开终端,首先安装必要的依赖:

sudo apt update
sudo apt install curl ca-certificates -y

3. 添加Waydroid仓库

Waydroid提供了官方Debian/Ubuntu仓库,执行以下命令添加:

# 添加仓库
curl https://repo.waydro.id | sudo bash

# 更新包索引
sudo apt update

4. 安装Waydroid

sudo apt install waydroid -y

5. 初始化Waydroid

安装完成后,需要对 Android 容器进行初始化。

  1. 初始化 Waydroid 容器
    • 镜像类型选择

      • VANILLA:纯净版 Android,不含谷歌服务,系统轻量。
      • GAPPS:预装谷歌移动服务 (GMS) 和 Play 商店,方便绝大多数用户。强烈推荐选择此项
    • 提示:如果官方镜像下载缓慢,可以搜索并使用国内镜像源(如清华源)手动下载镜像包,再进行初始化。

  2. 运行初始化命令,系统会请您选择 Android 镜像类型:
    sudo waydroid init -s GAPPS

            或者用代理            

  • sudo http_proxy=http://127.0.0.1:10808 https_proxy=http://127.0.0.1:10808 waydroid init -s GAPPS
    

 

后续同一.在 Fedora 上安装Waydroid

 

三Waydroid GAPPS 版 Play 商店提示“设备未经过 Play Protect 认证”的原因与解决方法

 

一问题现象

在 Linux 上安装了 Waydroid GAPPS 版(带 Google Play 商店)后,首次打开 Play 商店或 Google 应用时,可能会弹出如下提示:

此设备未经过 Play Protect 的认证
此设备未经过认证,无法访问 Google 应用和其他 Google 服务。
要了解详情,请访问 g.co/AndroidDeviceCert

点击“确定”后,依然无法正常登录 Google 账号或下载应用。


二问题原因

Waydroid 本质上是一个运行在 Linux 上的 Android 容器,它并不是 Google 官方认证的硬件设备。
Google Play Protect 会检查设备的 Google Services Framework ID(GSF ID) 是否在认证数据库中,如果没有,就会判定为“未认证设备”,从而限制 Google 服务的使用。

注意

  • settings get secure android_id 获取到的是 系统 Secure ID,不是 Google Play 服务用的 GSF ID。
  • 注册时必须使用 GSF ID,否则 Google 会提示“值有误”。

三解决方法

1. 启动 Waydroid 并确保 GAPPS 正常运行

先启动容器并进入 UI,确保 Play 商店和 Google Play 服务已经运行过一次:

sudo systemctl start waydroid-container
waydroid show-full-ui

2. 获取 GSF ID

在宿主机终端执行:

sudo waydroid shell

sqlite3 /data/data/com.google.android.gsf/databases/gservices.db \
"select * from main where name='android_id'"

输出会是一个十进制的长数字,例如:

android_id|4208739898732660414 # 取4208739898732660414

 

这串 字符串(不带 0x 前缀)就是要注册的 GSF ID


4. 注册到 Google 认证数据库

  1. 打开浏览器访问:
    https://www.google.com/android/uncertified/
  2. 登录你要在 Waydroid 中使用的 Google 账号。
  3. 将刚才的 十进制 GSF ID 粘贴到输入框。
  4. 勾选“我不是机器人”并完成验证。
  5. 点击 Register 注册。

5. 等待同步并重启 Waydroid

注册后等待几分钟到几小时,让 Google 同步认证信息。