Waydroid on Ubuntu — LinuxでAndroidアプリをネイティブ実行する方法

デスクトップ



Ubuntuを使っていると「あのAndroidアプリ、PCでもそのまま動かせたらいいのに」と思う場面はありませんか。ゲーム・SNS・音楽アプリなど、スマホにしか無いアプリは意外と多いものです。

結論からいうと、Waydroid というツールを入れると、UbuntuデスクトップでAndroidアプリをほぼネイティブの感覚で動かせます。一般的なAndroidエミュレーター(仮想マシン型)と違い、LinuxカーネルのAndroid互換機能を直接使うため軽快に動くのが特長です。

本記事では、公式リポジトリ(repo.waydro.id)と Ubuntu 24.04 / 22.04 の公式Dockerイメージを実際に叩いて取得した一次データをもとに、インストールから初期化・APK導入・Google Play対応・エラー対処までを丁寧に解説します。古い手順をなぞった日本語記事が多いなか、本記事は2026年6月14日時点の実測値で書いています。

この記事のポイント

  • WaydroidはAndroidをLXCコンテナとして動かす仕組み。エミュレーターより軽い
  • 公式APTリポジトリの最新版はwaydroid 1.6.2、GitHubのソース最新リリースは1.6.3(実取得で確認)
  • リポジトリのコードネームはnoble(24.04)/jammy(22.04)。古い記事の「focal固定」は不要
  • 依存はlxciptablespipewire-pulseなど。Binder系(python3-gbinder等)はWaydroidリポジトリが供給
  • APKはwaydroid app install、Google Playはwaydroid init -g GAPPSで導入

目次

  1. Waydroidとは何か
  2. 動作要件を確認する
  3. 最新バージョンを実データで確認する
  4. Waydroidのインストール手順
  5. Androidイメージの初期化と起動
  6. APKのインストールと基本的な使い方
  7. Google Playストア(GApps)を使う
  8. よくあるエラーと解決策
  9. まとめ

Waydroidとは何か

Waydroidは、LinuxカーネルのAndroid互換機能(Binder=Androidのプロセス間通信の仕組み)を使って、Ubuntuなどのデスクトップ上でAndroidシステム全体をLXCコンテナ(軽量なコンテナ実行基盤)として動かすツールです。

従来のAndroidエミュレーター(BlueStacksやAVDなど)はハードウェアを丸ごと仮想化するため重く、ホストのGPUやオーディオとの連携も複雑でした。Waydroidはそこが大きく異なります。

  • エミュレーターではなくコンテナ:ハードウェアを仮想化しないので消費リソースが少ない
  • Wayland/X11に直接表示:UbuntuのデスクトップにAndroidアプリのウィンドウが出る
  • Android 13ベース:比較的新しいAndroidで動作する
  • オープンソース:GitHubで開発されており(GPL-3.0、11,500★超)、無料で使える

前提:実機Linuxが必要です

Waydroidはbinder_linuxカーネルモジュールとLXCを使うため、カーネルを共有しないコンテナの中や、binder無しの環境では原則として「起動」できません。本記事のバージョン確認・依存解決・インストールはDocker(ubuntu:24.04)で実測していますが、実際にAndroid UIを表示する工程は実機のUbuntuデスクトップで行ってください。

動作要件を確認する

インストール前に、まず動作環境を確認しましょう。チェックすべきは大きく4つです。

Waydroid導入前チェックリスト(前提整理)
Waydroid導入前チェックリスト(前提整理)

手順1:カーネルのbinderモジュールを確認する

Waydroid最大の要件がLinuxカーネルにbinder_linuxモジュールが含まれていることです。Ubuntuデスクトップ版(22.04以降)ではlinux-modules-extraパッケージにbinderが含まれています。




ubuntu@desktop: ~
$ modinfo binder_linux
filename: /lib/modules/6.8.0-xx-generic/kernel/drivers/android/binder_linux.ko
license: GPL v2
description: Android Binder Driver
author: Google, Inc.
# ↑ このように表示されれば binder が使える

binderが見つからない場合

エラーが出たら、次のコマンドでlinux-modules-extraを追加します。

sudo apt install linux-modules-extra-$(uname -r)

インストール後、再起動してからもう一度確認してください。

手順2:Wayland環境を確認する




ubuntu@desktop: ~
$ echo $XDG_SESSION_TYPE
wayland
# Ubuntu 22.04以降のGNOMEはデフォルトでwayland
$ echo $WAYLAND_DISPLAY
wayland-0

Ubuntu 22.04以降のGNOMEデスクトップはデフォルトでWaylandを使います。x11と表示された場合でも、WaydroidはDISPLAY環境変数経由でX11にも表示できます。

最新バージョンを実データで確認する

ここがこの記事の核心です。多くの日本語記事が古いバージョン(1.4系など)のまま止まっていますが、公式APTリポジトリとGitHubを実際に叩いて、2026年6月14日時点の最新版を取得しました

公式リポジトリ(1.6.2)とGitHub(1.6.3)の実測バージョン
公式リポジトリ(1.6.2)とGitHub(1.6.3)の実測バージョン

結果はこうでした。

  • 公式APTリポジトリ(repo.waydro.id)の最新版:waydroid 1.6.2(noble・jammy 共通で各8バージョンが公開済み)
  • GitHubのソース最新リリース:1.6.3(2026-05-28 公開)

つまり、apt で入る版(1.6.2)はGitHubのソース最新(1.6.3)より1リリース分だけ後追いになっています。日常的に使うなら apt 版の 1.6.2 で十分です。さらに新しい機能を試したい人だけ、GitHubからソース導入を検討すればよい、という温度感がデータから読み取れます。

リポジトリのメタ情報を見るとOrigin: mrcyjanek(Czarek Nakamoto’s repo)、対応コードネームはnoblejammyでした。公式のセットアップスクリプトもUBUNTU_CODENAMEをそのまま使う作りで、「focalで固定」という古い手順は今は不要です(後述)。

Waydroidのインストール手順

Waydroid本体はUbuntu標準リポジトリには含まれていません。公式リポジトリ(https://repo.waydro.id/)を追加してインストールします。ここではUbuntu 24.04公式Dockerイメージで実際にリポジトリ追加からapt-get install -y waydroidまで通した実ログを見せます。

検証環境

  • 実行環境:Docker ubuntu:24.04(arm64)でリポジトリ追加〜インストールを実行
  • 検証日:2026-06-14
  • インストールされた本体:waydroid 1.6.2

手順3:依存パッケージのバージョンを把握する

Waydroidはlxcなどいくつかのパッケージに依存します。Ubuntu 22.04と24.04で、Ubuntu本体が提供する依存パッケージの実バージョンを比較しました。

Ubuntu 22.04/24.04 の依存パッケージ実バージョン比較
Ubuntu 22.04/24.04 の依存パッケージ実バージョン比較

WaydroidはArchitectureがallのため、22.04でも24.04でも入る本体は同じ1.6.2です。差が出るのは下回りで、たとえばlxcは22.04が1:5.0.0~git2209、24.04が1:5.0.3-2ubuntu7.2でした。基本的にはより新しい依存が揃う Ubuntu 24.04 LTS を推奨します。

Binder系パッケージはどこから来るのか

python3-gbinderlibgbinderlibglibutilはUbuntu本体には存在せず、Waydroid公式リポジトリ側から供給されます(実測で python3-gbinder 1.3.1 / libgbinder 1.1.43 / libglibutil 1.0.80)。だからこそリポジトリ追加が必須なのです。

手順4:リポジトリを追加する

公式が配布するGPG鍵を取得し、自分のUbuntuのコードネームでリポジトリ行を書きます。コードネームは$UBUNTU_CODENAMEを使えば自動で正しい値(24.04ならnoble)が入ります




ubuntu@desktop: ~
$ . /etc/os-release; echo $UBUNTU_CODENAME
noble
# GPG鍵を取得して保存
$ curl -sSf https://repo.waydro.id/waydroid.gpg \
| sudo tee /usr/share/keyrings/waydroid.gpg > /dev/null
# リポジトリ行を追加(コードネームは自動で noble に)
$ echo “deb [signed-by=/usr/share/keyrings/waydroid.gpg] \
https://repo.waydro.id/ $UBUNTU_CODENAME main” \
| sudo tee /etc/apt/sources.list.d/waydroid.list
$ sudo apt update
Get:5 https://repo.waydro.id noble InRelease [1309 B]
Get:6 https://repo.waydro.id noble/main all Packages [3708 B]
Fetched 5017 B in 1s (3458 B/s)

古い記事の「focal」は今は不要

かつてWaydroidのリポジトリはFocal(20.04)向けしか無く「24.04でもfocalと書く」という回避策が広まりました。現在はnoble(24.04)・jammy(22.04)が正式に用意されているので、自分のコードネームをそのまま指定すればOKです。

手順5:Waydroidをインストールする

準備ができたらインストールします。実際に通したログがこちらです。

Ubuntu 24.04でwaydroid 1.6.2を実インストールしたログ
Ubuntu 24.04でwaydroid 1.6.2を実インストールしたログ



ubuntu@desktop: ~
$ sudo apt install -y waydroid
Setting up pipewire-pulse (1.0.5-1ubuntu3.2) …
Setting up libgtk-3-0t64:arm64 (3.24.41-4ubuntu1.3) …
Setting up polkitd (124-2ubuntu1.24.04.3) …
Setting up waydroid (1.6.2) …
Waydroid is not initialized, run “waydroid init”
Created symlink …/waydroid-container.service
$ waydroid –version
1.6.2

インストールが終わるとwaydroid --version1.6.2を返し、systemdサービスwaydroid-container.serviceが登録されました。なお、この時点ではまだ未初期化なので「run "waydroid init"」と案内が出ます。

Androidイメージの初期化と起動

本体のインストールが終わったら、次はAndroidシステムイメージのダウンロードと初期化です。正直、ここが一番時間のかかるステップです。

Waydroid導入の全体フロー(概念図)
Waydroid導入の全体フロー(概念図)

手順6:Waydroidを初期化する




ubuntu@desktop: ~
# Google Play なしで初期化(AOSP版)
$ sudo waydroid init
[..] Downloading images …
[..] pulling: system.img …
[..] pulling: vendor.img …
[..] Initialization complete

回線速度によりますが、初回のwaydroid init10〜20分程度かかります。約1.5GBのシステムイメージとベンダーイメージをダウンロードするためです。

手順7:Waydroidセッションを起動する




ubuntu@desktop: ~
# コンテナサービスを起動
$ sudo systemctl start waydroid-container
# Android UIを全画面で表示
$ waydroid show-full-ui

waydroid show-full-uiを実行すると、UbuntuのデスクトップにAndroidのホーム画面が表示されます。初回起動は少し待ちますが、2回目以降はすばやく立ち上がります。起動状態はwaydroid statusで確認できます(Session: RUNNING / Container: RUNNINGになっていればOK)。

公式ドキュメントにもデスクトップ向けのインストール手順がまとまっています。ディストリ別の手引きも揃っているので、Ubuntu以外の人も一度見ておくとよいでしょう。

Waydroid公式ドキュメントのインストール手順ページ(実スクリーンショット)
Waydroid公式ドキュメントのインストール手順ページ(実スクリーンショット)

APKのインストールと基本的な使い方

APKファイルをインストールする

Google Playなしの環境では、APKファイルを直接インストールしてアプリを追加します。




ubuntu@desktop: ~
# APKをインストール(例:F-Droid)
$ waydroid app install ~/Downloads/FDroid.apk
Success
# インストール済みアプリを確認
$ waydroid app list
org.fdroid.fdroid F-Droid
com.android.calculator2 Calculator

F-Droid(オープンソースアプリのマーケット)を入れておくと、Google Playなしでも多数のアプリを入手できます。特定アプリの直接起動はwaydroid app launch org.fdroid.fdroidのようにアプリIDを指定します。

Androidのプロパティ情報を確認する




ubuntu@desktop: ~
$ waydroid prop get ro.build.version.release
13
# Android 13ベースで動作していることを確認

Google Playストア(GApps)を使う

標準のwaydroid initだとGoogle Playストアは含まれません。GApps(Googleモバイルサービス)を使いたい場合は、初期化時に-g GAPPSを指定します。

注意:GAppsの利用条件

GAppsを使う場合はGoogleの利用規約に同意する必要があります。また初回起動後にGoogleアカウントでログインし、デバイスを認証(Play Protect認証)する手順が別途必要です。




ubuntu@desktop: ~
# 既存の初期化をリセットしてGApps版で再初期化
$ sudo waydroid init -g GAPPS -f
[..] Downloading system image with GApps …
[..] Initialization complete

デバイス認証(Play Protect認証)を通す




ubuntu@desktop: ~
# Android IDを確認(認証申請に使う)
$ sudo waydroid shell
android# sqlite3 /data/*/com.google.android.gsf/databases/gservices.db \
“select * from main where name = ‘android_id'”
android_id|xxxxxxxxxxxxxxxx

取得したandroid_idをGoogleの「デバイス未登録」ページに入力して認証を申請します。反映には10〜20分かかることがあります。

よくあるエラーと解決策

エラー1:FAILED TO OPEN /dev/binder




ubuntu@desktop: ~
ERROR: FAILED TO OPEN /dev/binder: No such file or directory

原因:カーネルにbinder_linuxモジュールが読み込まれていない(コンテナ内や、binder無しカーネルでよく起きます)。

解決




ubuntu@desktop: ~
$ sudo modprobe binder_linux devices=”binder,hwbinder,vndbinder”
$ ls /dev/binder
/dev/binder
# 永続化するにはモジュール設定ファイルを追加
$ echo “binder_linux” | sudo tee /etc/modules-load.d/waydroid.conf

エラー2:Container failed to start

原因:前回のセッションが正常終了していない、またはLXCコンテナの状態が壊れている。

解決




ubuntu@desktop: ~
$ sudo systemctl restart waydroid-container
$ waydroid status
Session: STOPPED
Container: RUNNING
$ waydroid show-full-ui

エラー3:ウィンドウが表示されない(Waylandセッション)

原因WAYLAND_DISPLAYがWaydroidに正しく渡っていない。

解決:環境変数を明示して起動します。




ubuntu@desktop: ~
$ WAYLAND_DISPLAY=wayland-0 waydroid show-full-ui

うまくいかないときは、開発状況やIssueをGitHubで確認するのが早道です。リリースの更新も活発で、最新版が1.6.3まで来ていることが分かります。

Waydroid公式GitHubリポジトリ(最新リリース1.6.3を確認できる実スクリーンショット)
Waydroid公式GitHubリポジトリ(最新リリース1.6.3を確認できる実スクリーンショット)

まとめ

本記事では、WaydroidをUbuntuにインストールしてAndroidアプリを動かす手順を、公式リポジトリとDockerの実データで解説しました。

  • Waydroidはエミュレーターではなくコンテナ技術でAndroidを動かすため軽量
  • apt版の最新は waydroid 1.6.2、GitHubのソース最新は 1.6.3(2026-06-14 実取得)
  • リポジトリのコードネームは noble(24.04)/ jammy(22.04)。「focal固定」はもう不要
  • 依存は lxc・iptables・pipewire-pulse 等。Binder系(python3-gbinder 1.3.1 ほか)はWaydroidリポジトリが供給
  • APKは waydroid app install、Google Play は waydroid init -g GAPPS で導入
著者アイコン
著者アイコン

Waydroidを動かすと「本当にAndroidが動いている」という驚きがあります。バージョンの進みが速いツールなので、古い記事の手順で詰まったら、まず公式リポジトリの最新版を確認するのがおすすめです。

自宅PCだけでなく、VPS上のLinux環境を本格的に運用してみたい方は、こちらも参考にしてください:

コメント

タイトルとURLをコピーしました