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 .全体の流れ ~概要~
- Waydroidインストール
- 初期設定
- AndroidID登録
2.Waydroidインストール
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-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から任意のアプリがインストール可能となります。
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分程度待たないと登録されないことが多かったです。