メインコンテンツへスキップ

LinuxでAndroidアプリを動かす、UbuntuへのWaydroidインストール手順

·
カテゴリー 情報技術 仮想化とコンテナ技術 Linuxでゲーム
タグ Waydroid Ubuntu Android LineageOS
目次

「Waydroid」は、LinuxシステムでAndroidアプリを動かせるソフトウェアです。

WaydroidではGoogle Playストアにログインしてアプリをダウンロードし、多くの一般的なアプリをインストールできます。さらにWaydroidはGPUハードウェアアクセラレーションに対応しているので、多くのAndroidスマホゲームも遊べます。

WaydroidでPlayストアからメッセージアプリLineをダウンロード
Waydroidを通してLinuxでスマホゲームFGOをプレイ

WaydroidのシステムはLineageOSをベースに構築されており、背後の技術はCanonicalのコンテナ技術「Anbox」に由来します。新しい開発チームがその機能をさらに完成度の高いものにしています。

Waydroidはコンテナ化技術であり、仮想マシンではありません。LXCを使い、さらにGPUアクセラレーションも使えるため、Waydroidはリソース消費が低く、実行性能はAndroid Studioのエミュレーターより高速です!

Waydroidの設計を見ると、このプロジェクトは表面的にはWindows 11のAndroidサブシステム(WSA)に似ており、ユーザーはLinuxを操作しながらAndroidアプリを使えます。数あるLinux向けAndroidエミュレーターソリューションの中でも、Waydroidはデスクトップシステムとの統合が比較的よい部類です。

この記事では、IvonがUbuntuにWaydroidをインストールする方法を説明します。

1. 前提条件
#

Waydroidをインストールする前に、以下の条件を満たしていることを確認してください。

CPUアーキテクチャ
#

PCアーキテクチャについて、Waydroidはx86とARMアーキテクチャのUbuntu PCに対応しており、パッケージインストール時にプログラムが自動判定します。

ただし注意したいのは、多くのスマホゲームはARMアーキテクチャのAPKしか提供しておらず、x86 PCでは使えないことです。x86アーキテクチャのPCにWaydroidをインストールした後は、ARM命令をx86へ変換するためのARMトランスレーターを手動でインストールする必要があります。ただし、これによりアプリ実行時にエラーが出る確率が上がるかもしれません。そのため理想的にはARMアーキテクチャのUbuntu PCの方がよく、その場合ARMトランスレーターを入れる必要がありません。

GPU型番
#

Nvidiaグラフィックカードを使っていないことを確認してください。現在WaydroidはIntelとAMDのグラフィックカード(内蔵GPUも可)のみ対応しています。開発者によると、Nvidiaのクローズドソースドライバーがグラフィックドライバー標準に従っていないため、Nvidiaグラフィックカードでは黒画面になります。現在最新のNvidiaクローズドソースドライバーはバージョン590ですが、この問題はまだ解決していません。進捗はGithubで確認できます

したがってNvidiaグラフィックカードのユーザーには3つの解決方法があります:1、内蔵GPUでWaydroidを動かす 2、ソフトウェアレンダリングを使う(非推奨) 3、他のAndroidエミュレーター方案を使う。

一部のIntelとAMD CPUには内蔵GPUがありますが、使っていないかもしれません。vulkaninfo --summaryコマンドで現在のPCのメインGPU型番を表示します。

PCに内蔵GPUがあるかどうかはどう確認する?sudo lshw -C displayコマンドでPC内のすべてのグラフィックカードを表示し、Nvidia以外のGPU型番があるか見ます。たとえば私のIntel i5-7400 CPUはUHD 630で、この内蔵GPUは軽めのスマホゲームには十分です。PCのマザーボードUEFI設定で内蔵GPU起動に切り替えれば、Waydroidを使えるようになります。

Linuxカーネルバージョン
#

Waydroidの実行はLinuxカーネルのbinderモジュールに依存しており、カーネルコンパイル時にANDROID_BINDERオプションを有効にする必要があります。Ubuntu 24.04以降でインストールされるLinux 6.0カーネルなら有効になっているはずなので、追加設定は不要です。

不安な場合は、以下のコマンドでカーネルコンパイル時にこのオプションが有効か確認します:

cat /boot/config-$(uname -r) | grep BINDER

Wayland表示プロトコル
#

Waydroidを起動するには、Wayland表示プロトコルを使うデスクトップが必要です。

Ubuntuのデフォルトデスクトップ環境はGNOMEです。現在のデスクトップ環境がWaylandセッションを使っていることを確認してください。端末を開き、以下のコマンドを入力します:

echo $XDG_SESSION_TYPE

表示がwaylandでなければ、まだX11を使っています。Ubuntuからログアウトし、パスワード入力時に右下の歯車をクリックして、UbuntuまたはXorgを含まない選択肢でログインしてください。

2. Waydroidをインストール
#

ここでのコマンドはUbuntuとDebianにのみ適用されます。他のLinuxディストリビューションは公式ドキュメントを参照してください。

  1. Waydroidと後続のスクリプトで使うパッケージを含む、以下のパッケージをインストールします
sudo apt install curl ca-certificates lzip python3 python3-pip
  1. LinuxとWaydroidでクリップボードを共有するため、以下のパッケージをインストールします。そのうち1つのPythonパッケージはUbuntuリポジトリにないため、pipで強制インストールします
sudo apt install wl-clipboard xclip

sudo pip install pyclip --break-system-packages
  1. Waydroid公式リポジトリのスクリプトを実行してWaydroidをインストールします。インストールスクリプトはシステムバージョンを自動検出するはずです
curl https://repo.waydro.id | sudo bash

sudo apt install waydroid
  1. Waydroidを初期化し、GAPPS内蔵イメージをダウンロードします。-s GAPPSパラメータを付けない場合、WaydroidはGMSサービスなしのvanillaイメージをダウンロードします。
sudo waydroid init -s GAPPS -f
  1. Waydroidコンテナサービスを起動
sudo systemctl start waydroid-container

# 起動時に自動起動
sudo systemctl enable waydroid-container
  1. アプリケーション一覧から「Waydroid」アイコンをクリックしてWaydroidを起動します。このアイコンの機能はwaydroid show-full-uiコマンドの実行と同じです。

  2. Waydroidのデフォルト画面は英語です。Androidシステム設定で言語を変更し、スライダーを動かして繁体中文を一番上に置き、タイムゾーンも調整してください。

  3. Waydroidがネットワークに接続できない場合は、UFWファイアウォールのポートを開放してからWaydroidを再起動してみてください:

sudo ufw allow 53

sudo ufw allow 67

sudo ufw default allow FORWARD

sudo ufw reload

sudo systemctl restart waydroid-container

3. インストール後にやること
#

Ivonはここで、Google Playストアをインストールしてデバイス認証を通すこと、さらにARMトランスレーターをインストールすることを強くおすすめします。

Waydroid Tipsを参照してください

參考資料
#

Waydroid官方文件

bug報告はWaydroidのGithubリポジトリ

関連記事


最後までお読みいただきありがとうございます。本サイトでは公開コメント欄を設けていません。私はソーシャルな反応やアクセス数を追い求めるためではなく、自分の考えを誠実に探求するために文章を書いています。記事を丁寧にお読みいただいたうえで、ご感想やご意見をお寄せいただければ幸いです。誤字・誤り・技術的な問題などを見つけた場合、またはフィードバックを共有したい場合は、Aboutページに記載しているメールアドレスまでお気軽にご連絡ください。