インストール - WayDroid
概要
Waydroidは、Ubuntuのような通常のGNU/Linuxシステム上で完全なAndroidシステムを起動するコンテナベースのアプローチである。
Linuxの名前空間(user、pid、uts、net、mount、ipc)を使用して、コンテナ内で完全なAndroidシステムを実行して、GNU/Linuxベースのプラットフォーム上でAndroidアプリケーションを提供する。
コンテナ内のAndroidは、必要なハードウェアに直接アクセスできる。
また、Androidランタイム環境は、LineageOSをベースにカスタマイズされた最小限のAndroidシステムイメージとともに出荷される。
2024年4月現在、使用されているイメージはAndroid 11に基づいている。
WayDroidは、Debian(Mobian)、UBPorts等のWayland環境のみ動作することに注意すること。
Waydroidの詳細を知りたい場合は、Waydroidの公式ドキュメントまたはMobianの公式Wikiを参照すること。
依存関係のライブラリのインストール
WayDroidを動作させるため、依存関係のライブラリをインストールする。
Debian / Mobian
sudo apt install curl ca-certificates python3 lxc # または sudo apt install curl ca-certificates python3 \ apparmor arch-test bridge-utils busybox-static debootstrap distro-info mmdebstrap uidmap uuid-runtime \ fakechroot libdistro-info-perl libfakechroot liblxc1 libpam-cgfs lxc lxc-templates lxcfs
Manjaro ARM
sudo pip install pyclip # または sudo pamac build python-pyclip
次に、/boot/boot.txtファイルを以下のように編集する。
sudo vi /boot/boot.txt
# /boot/boot.txtファイル # 編集前 setenv bootargs loglevel=4 console=tty0 console=${console} earlycon=uart,mmio32,0x01c28000 consoleblank=0 boot=PARTUUID=${uuid_boot} root=PARTUUID=${uuid_root} rw rootwait quiet audit=0 bootsplash.bootfile=bootsplash-themes/manjaro/bootsplash # 編集後 setenv bootargs loglevel=4 console=tty0 console=${console} earlycon=uart,mmio32,0x01c28000 consoleblank=0 boot=PARTUUID=${uuid_boot} root=PARTUUID=${uuid_root} rw rootwait quiet audit=0 bootsplash.bootfile=bootsplash-themes/manjaro/bootsplash psi=1
設定を適用するため、U-bootをアップデートする。
sudo pp-uboot-mkscr
WayDroidのリポジトリの登録
Debian / Mobian
WayDroidのリポジトリを登録する。
もし、Linuxディストリビューションの検出に失敗した場合は、-s <ディストリビューション名>
オプションを付加する。
現在サポートされている値は、以下の通りである。
bookworm
bullseye
sid
mantic
focal
jammy
kinetic
lunar
noble
trixie
curl https://repo.waydro.id | sudo bash または curl https://repo.waydro.id | sudo bash -s <ディストリビューション名>
パッケージ管理システムを更新する。
sudo apt update
WayDroidのインストール
Debian / Mobian
Waydroidをインストールする。
sudo apt install waydroid
次に、WayDroidの初期化プロセスを開始する。
sudo waydroid init
WayDroidコンテナデーモンを起動する。
# Mobian sudo start waydroid # Debian sudo systemctl start waydroid-container
Manjaro ARM
WayDroidをインストールする。
sudo pacman -S waydroid waydroid-image sudo pkexec setup-waydroid
この時、/var/lib/waydroid/waydroid_base.propファイルの内容の一部に誤りがあるため、修正する。
sudo vi /var/lib/waydroid/waydroid_base.prop
# /var/lib/waydroid/waydroid_base.propファイル # 編集前 ...略 ro.product.waydroid.model=Pine64 PinePhone (1.2)^@ ro.product.waydroid.name=^@ # 編集後 ...略 ro.product.waydroid.model=Pine64 PinePhone (1.2) ro.product.waydroid.name=
次に、WayDroidの初期化プロセスを開始する。
Waydroidを起動する時、自動的に最新のAndroidイメージがダウンロードされる。
sudo waydroid init
WayDroidコンテナデーモンを起動する。
sudo systemctl start waydroid-container # または sudo start waydroid
WayDroidコンテナデーモンを自動起動する場合、以下のコマンドを実行する。
sudo systemctl enable waydroid-container
WayDroidコンテナデーモンを起動した後、WayDroidセッションをアクティブにする。
waydroid session start
WayDroidセッションと対話するためのコマンドを、以降のセクションに記載する。
手動でのWayDroidの起動
systemctl
コマンドを使用せずにWayDroidを起動するには、以下の手順を行う必要がある。
- まず、WayDroidコンテナを起動する。
sudo waydroid container start
- 次に、ターミナルを起動して、WayDroidセッションを開始する。
この時、"Android with user 0 is ready"と表示された後、アプリケーションメニューからWayDroidを起動する。waydroid session start
ネットワークの設定
必要な場合は、WayDroidのセッションを開始する前に、ファイアウォールにおいて以下のようなルールを許可する。
以下の例では、ufwを使用している。
# DNSトラフィックを許可する場合 ufw allow 67 ufw allow 53 # パケット転送を許可する場合 ufw default allow FORWARD
WayDroidをフルスクリーンモードで起動する
まず、WayDroidを起動する。
# Debian sudo waydroid container start # Mobian sudo start waydroid
WayDroidの起動中に、以下のコマンドを実行する。
waydroid show-full-ui
マルチウィンドウモードでWayDroidを起動する
WayDroidのセッションが実行されている間に、プロパティを設定する必要がある。
waydroid prop set persist.waydroid.multi_windows true
次に、WayDroidコンテナデーモンを再起動する。
Androidのソフトウェアを起動する準備が整い、マルチウインドウモードで起動できるようになる。
sudo systemctl restart waydroid-container
Androidソフトウェアのインストール
Androidソフトウェアをインストールする。
waydroid app install <APKファイルのパス>
Web上に存在するAPKファイルは、ARM /AArch64のみサポートしている傾向が多いため、x86 64のPCでは動作しない。
その場合、F-Droidをインストールしてアプリケーションを取得することを推奨する。
または、GAppsイメージをインストールした場合は、Playストアを使用することができる。
Androidソフトウェアの実行
インストールしたAndroidソフトウェア名を確認する。
waydroid app list
インストールしたAndroidソフトウェアを実行する。
waydroid app launch <Androidソフトウェア名>
また、アプリケーションメニューからアプリケーションを起動することもできる。
その他、Androidパッケージ名(com.xxx.yyy)が既に分かっている場合は、コマンドラインを実行して起動することもできる。
waydroid app launch <Androidパッケージ名 例: com.xxx.yyy>
WayDroidのアンインストール
まず、WayDroidのセッションとコンテナを停止する。
waydroid session stop sudo waydroid container stop
次に、WayDroidをアンインストールする。
sudo apt purge waydroid
Linuxを再起動する。
sudo systemctl reboot
再起動後、以下のディレクトリを削除する。
sudo rm -rf /var/lib/waydroid /home/.waydroid ~/waydroid
再インストールする場合は、再度、WayDroidをインストールして初期化プロセスを開始する。
sudo apt install waydroid sudo waydroid init
エラー
まず、WayDroidが最新であることを確認する。
waydroid upgrade
WayDroidコンテナデーモンを停止して、不要なファイルを削除する。
sudo systemctl stop waydroid-container sudo rm -rf ~/waydroid ~/.share/waydroid ~/.local/share/waydroid "~/.local/share/applications/*aydroid*" sudo rm -rf /var/lib/waydroid /home/.waydroid
WayDroidを再初期化して、WayDroidコンテナデーモンを開始する。
sudo waydroid init -f sudo systemctl start waydroid-container
より詳細なことを知りたい場合は、公式WebサイトのWaiDroid Issue Trackerを参照すること。