Metonymical Deflection

ゆるく日々のコト・たまにITインフラ

Waydroid インストール方法

Waydroidのインストール方法について記載します。
WaydroidはLinuxデスクトップ上で動作するAndroidアプリケーションの実行環境となります。
今回はGAPPSにてインストールします。*1

1.環境

1-1.VMWare
筐体                             : 自作PC(Win10pro)
VMWare              : VMware(R) Workstation 17 Pro 17.5.1 build-23298084
仮想マシン                       : Ubuntu 22.04.4 Desktop

補足1
仮想マシンのリソースですが、CPU:2, Mem:4GBとしています。
CPU:1, Mem:2GBでもWaydroidは起動しましたが、カクカクした動きになってしまうためです。

補足2
仮想マシンのOSとして、Ubuntu 22.04.4 Desktopを利用しますが、Server版ではなく、必ずDesktop版を使用してください。
これは、ディスプレイサーバとしてWaylandを利用する必要があるためです。*2
Server版の場合、DefaultのディスプレイサーバがX Window Systemとなるため、エラーが出力されてしまいWaydroidが起動できませんでした。*3

1-2 .全体の流れ ~概要~
  1. Waydroidインストール
  2. 初期設定
  3. AndroidID登録

2.Waydroidインストール

Ubuntuデスクトップに一般ユーザでログインします。*4

2-1.事前準備

デスクトップ上から画面左上のActivitiesをクリックし、Type to searchにTerminalと入力して起動します。

Terminal上で以下のコマンドを入力し、Waydroidに必要な各種パッケージをインストールします。

sudo apt update && \
sudo apt -y install python3-pip wl-clipboard && \
pip install pyclip
2-2.Waydroidインストール

Waydroidのリポジトリ登録後、Waydroidをインストールします。

sudo apt install curl ca-certificates -y && \
curl https://repo.waydro.id | sudo bash && \
sudo apt install waydroid -y

3.初期設定

3-1.初期設定とダウンロード

Activitiesをクリックし、Type to searchにWaydroidと入力して起動します。

初期起動時は以下の画面が表示されます。
Android TypeにGAPPSを選択し、Downloadをクリックします。

Download中は以下のような画面表示されます。*5

Downloadが完了すると以下の画面が表示されますので、Doneをクリックします。

3-2.waydroid.cfg設定

仮想環境のためソフトウェアレンダリングの設定を行います。
以下のコマンドでwaydroidセッションを一旦停止します。

waydroid session stop
waydroid status

waydroid.cfgを開いて、[properties]の最下行に以下の赤文字2行を追記します。

sudo vi /var/lib/waydroid/waydroid.cfg

[properties]
ro.hardware.gralloc=default
ro.hardware.egl=swiftshader

設定を反映します。

sudo waydroid upgrade -o
3-3.Waydroid画面サイズの設定

Defaultでは全画面表示となってしまうため、Waydroidの画面サイズを調整します。
Waydroidセッションを開始します。

waydroid session start

以下の画面のようにForegraoundでService Managerが起動した状態となります。

Terminal左上のタブ追加ボタンをクリックして、別タブを開きます。

別タブ上で以下のコマンドを入力し、Waydroidの画面サイズを設定します。

waydroid prop set persist.waydroid.width 500
waydroid prop set persist.waydroid.height 760
waydroid session stop

Waydroidセッションを停止して、一旦再起動します。

waydroid session stop
sudo reboot
3-4.Waydroid初回起動

再び、ActivitiesからWaydroidを起動します。
すると、今度は以下のような画面でWaydroidが起動し始めます。

起動が完了すると、Waydroidの画面が表示されます。

画面に表示されている通り、Google appsやServiceが利用できない状況のため、AndroidIDの登録を行っていきます。

4.AndroidID登録

4-1.AndroidIDの出力

Terminalを起動し、以下のコマンドを入力します。

sudo waydroid shell

以下のようにプロンプトがwaydroidシェルのプロンプト(:/ #)に変わります。

waydroidシェルプロンプトに以下のコマンドを入力します。

ANDROID_RUNTIME_ROOT=/apex/com.android.runtime ANDROID_DATA=/data ANDROID_TZDATA_ROOT=/apex/com.android.tzdata ANDROID_I18N_ROOT=/apex/com.android.i18n sqlite3 /data/data/com.google.android.gsf/databases/gservices.db "select * from main where name = \"android_id\";"

以下のようにAndroidID(42212~0214)が出力されますので、数字の部分だけをテキストエディタなどに保存しておきます。

4-2.AndroidIDの登録

Googleアカウントを利用してAndroidIDを登録しますので、Googleアカウントは事前に作成しておいてください。

4-2-1.AndroidIDの登録と再起動

ブラウザから以下URLにアクセスし、事前に作成してあるGoogleアカウントでログインします。*6
https://www.google.com/android/uncertified

Googleアカウントでログイン後、以下の画面が表示されます。
Google Services Framework Andorid ID欄に、
前項で保存したAndroidIDを入力し、Registerをクリックします。

登録が完了すると、画面の一番下 Registered Android IDs に登録したAndroidIDが表示されればOKです。
約5-10分くらい待ってから、一旦Ubuntuを再起動してください。*7

4-2-2.再起動後の確認

登録が完了すると、Play Storeアプリが表示されます。

初回起動時はGoogleアカウントにてログインが必要です。
2回目以降はPlay Storeアプリをクリックすると、Google Playから任意のアプリがインストール可能となります。

4-3.Waydroidウインドウの動かし方

Ubuntuデスクトップ上でWaydroidウインドウの位置を移動したい場合、Alt + F7を使います。
マウスポインタがWaydroidウインドウ上にあるとき、Alt + F7を押すと、Waydroidウインドウをドラッグした状態となります。
このままマウスを動かすとWaydroidウインドウが動きますので、移動後の位置でマウスをクリックすると、Waydroidウインドウの位置が確定します。

以上です。

5.最後に

以下のサイトを参考にさせて頂きました。
Install Instructions | Waydroid
Get Waydroid to work through a VM | Waydroid

仮想マシン上でAndroidアプリを実行することができれば、Androidアプリの動作をちょこっと検証したいときなどに、活用できるかと思います。

*1:インストール時にAndroid Typeとして2種類選択でき、1つ目はVANILLAで、2つ目はGAPPSです。VANILLAはGoogleアプリを使用しない純粋なAndroid環境となります。GAPPSはGoogleアカウントを利用してAndroidIDを登録することにより、Google PlayからアプリがDLできる環境となります。

*2:Waydroidの'Way'は、Waylandの'Way'のようです。

*3:もちろん、頑張ってWayland環境を構築すれば、やってできないことは無いと思いますが、Server版で頑張る必要が無かったので素直にDesktop版を使用しました。

*4:rootユーザでログインしないでください。

*5:そこそこ時間が掛かります。私の環境では10分程度要しました。

*6:AndroidID登録用URLへのアクセスは、Ubuntu上のFirefoxでアクセスしてもよいですし、自身のPC上からアクセスしてもよいです。

*7:再起動のタイミングが早すぎると、Waydroid起動後にThis device isn't Play Protect certifiedのメッセージが再び表示されてしまいますので、もう少し待ってからWaydroidを起動してください。私の環境では、7-8分から10分程度待たないと登録されないことが多かったです。