Ubuntu 22.04 下体验 Waydroid

Waydroid 是 Linux 下使用容器技术运行 Android 的一个产品。它有点像 Docker 而不是 Virtual Box。官方针对各种 Linux 发行版的安装文档在 https://docs.waydro.id/usage/install-on-desktops 可以找到。

安装 Waydroid 成功后,再下载需要的 Android 映像,之后就可以启动 Android 了。要向 Android 中安装 apk 的话,可以使用 waydroid app install 命令。要是想在 Android 内部执行命令(非 GUI 应用),则可以使用 sudo waydroid shell。这样的用法,看上去又和 adb 类似。

第一个要解决的问题是 Play Store,要执行这些命令(信息源:https://github.com/casualsnek/waydroid_script):

  • 前提:sudo apt install lzip sqlite
  • 安装 OpenGapps:
    • git clone https://github.com/casualsnek/waydroid_script
    • cd waydroid_script
    • sudo python3 -m pip install -r requirements.txt,这是安装此脚本工具所需的依赖
    • sudo python3 main.py -g,这是安装 OpenGapps
    • waydroid show-full-ui,启动 Android,请等待完全启动就绪
    • sudo python3 main.py -i,获取 Android ID 以便注册设备

笔者在获取 Android ID 时遇到了错误,命令行执行后一直报以下信息:

ERROR: Cannot access gservices.db, make sure gapps is installed and waydroid was started at least once after installation and make sure waydroid is running !

所以只好自己再去寻找答案,找到 https://github.com/waydroid/waydroid/issues/753,其中提到可以执行 sudo grep android_id ~/.local/share/waydroid/data/data/com.google.android.gms/shared_prefs/Checkin.xml | cut -f2 -d">" | cut -f1 -d"<"。后来发现,其实也可以在 waydroid shell 中执行 sqlite3 /data/data/com.google.android.gsf/databases/gservices.db "select * from main where name = \"android_id\";" 获取到。

然后用浏览器打开 https://www.google.com/android/uncertified/?pli=1,使用 Google 账户登录后,把上面取得的 Android ID 填进去进行注册。注册成功后,在命令行执行 sudo waydroid session stop 以确保 Waydroid 完全退出,然后重新启动 Waydroid。此时再打开 Play Store 应用,就可以像正常手机上那样登录,并下载安装应用了。

笔者另外还遇到了 Waydroid 内的 Android 网络不通的情况,折腾 Wi-Fi 连接许久无果,后来的某次重启系统后,Waydroid 内的 Android 突然以有线连接的方式联网了,就这么将就着往下用了。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注