今すぐWindows11上でAndroidを動かせるようにしてみた

既に米国では、パブリックプレビューになっていて誰でも利用可能になっているWindows11の目玉機能の1つ「Windows Subsystem for Android」ですが、2022年8月19日、日本でもInsider PreviewからWSAが利用できるようになりました。そこで今回は、Android実行環境であるWindows Subsystem for Androidを導入し、APKファイルをサイドロードして動かしてみようと思います。

利用するには事前準備がそこそこ必要なので、面倒な人は公式が発表するまで待つ事になります。現時点では公式ではAmazon AppStoreのみが利用可能になっているようですが、今回の方法ではそれ以外の手段も利用可能になるので、発表後であっても有効だと思います。

※2022年9月21日、Windows11 22H2より日本でも全員WSAが利用できるようになりました。Windows Updateでアプデを実行するとインストールされます。

図:ねこあつめを起動してみた

今回必要なアプリ等

今回利用するもので、新規に導入が必要なのは上記の2つ。それ以外はWindowsの機能の追加で入れることになるので、手順に従ってインストールすればAmazon App Storeが無くとも、Androidアプリを導入(サイドロード)できるようになります。

今回は、VMware Workstation 16 PlayerにWindows11を入れて、RAMは8GB, CPUコアは4コアで設定しています。

事前準備

仮想マシンで使う場合の注意点

VMware Workstation Playerで使う場合重要な注意点があります。仮想環境の中で仮想環境をネストして動かす必要があるためです。

  1. ホスト側のOSでHyper-VやWindowsハイパーバイザープラットフォームが動いてると、ゲスト側ではAndroidが動きません
  2. また、仮想マシンの設定に於いて、プロセッサの仮想エンジンに於いて、「Intel VT-x または AMD/RVIを仮想化」にチェックが入ってる必要があります。
  3. 同じく仮想エンジンに於いて、IOMMUを仮想化はチェックを外しておく必要があります

図:仮想環境で動かす場合、この設定が必要になる

Nox Player、Bluestacks等を使ってる人の注意点

Windows Subsystem for AndroidはHyper-Vの環境が必要となるため、これをインストールし使えるようにすると、VirtualBoxやNox Player等のAndroidエミュレータが軒並み動作しなくなります。理由は、これらのエミュレータ類が全てVirtualBoxをバックエンドに使ってるアプリケーションであり、VirtualBox 6.1.28以降であればVirtualBox単体は共存ができますが、Androidエミュレータが利用してるVirtualBoxが古いため、動作しなくなるという仕組みです。

そのため、この問題はNox Playerなどのエミュレータ側が対応しない限り解決しないので、WSAの環境と共存はできません。BlueStacksの場合についても同様にエラーが発生して起動しません。また、Hyper-VはWindows11 Homeでは原則利用できないので注意が必要です。

ただし、Google提供のAndroid StudioのエミュレータはVirtualBoxを利用しているわけではないので、そちらを利用しているケースでは問題なく動作します。

図:他のAndroidエミュと共存ができません

図:Android Studioのエミュレータならば問題ない

開発者モード

まずは、Windows11側で以下の手順で開発者モードにしておきます。

  1. 設定アプリを開く
  2. プライバシーとセキュリティを開く
  3. 開発者向けを開く
  4. 開発者モードがあるのでスイッチをオンにして再起動

Windows機能の追加

Windows Subsystem for Androidは、WSL2同様に仮想環境でAndroidを動かすものになるため、以下の追加の機能を入れておく必要があります。

  1. コントロールパネルを開く
  2. プログラムを開く
  3. Windowsの機能の有効化または無効化を開く
  4. Hyper-V, Windows ハイパーバイザープラットフォーム, 仮想マシンプラットフォームにチェックを入れて再起動

図:追加機能が無いと起動しない

WSAのダウンロード

通常のダウンロード方法

Insider Previewの場合は、Microsoft Storeのバージョンを「22206.1401.6」にアップデートしておく必要があります。また、Windows11もWindows 11 バージョン 22H2以降(Release Preview Build 22621)にアップデートしておく必要があり、現在Insider PreviewのRelease Previewにて配布されているため、Insider Programに参加していない人は利用できません。あとは、Microsoft Storeから「Amazonアプリストア」をインストールすれば、Windows Subsystm for Androidとともにインストールされて使えるようになります。他にインストールする手間もありません。

ただしこちらの方法の場合、後でGoogle Playなどはインストールするといった改造はすることができません。

なお、Microsoft Storeの更新が必要な場合は、右側のライブラリ→更新プログラムの取得で、自分自身のアプデを取得できます。アップデート後一旦再起動します。そのまま、Amazon AppStoreのURLを叩いて開こうとすると、「not available for bots to index」と出て、ページが表示されないので、以下の手順を踏みます。

  1. ウェブブラウザにてMicrosoft Storeのトップページを開く
  2. 右上のサインインから自身のMicrosoftアカウントでログインする
  3. その状態で、Amazon AppStoreのリンクをクリックする
  4. Microsoft Storeで開くをクリック
  5. すると、ここでようやくAmazonアプリストアのページが出てくるので、インストールをクリックする
  6. 「Amazon AppStore用にPCを準備する」という画面が出るので、ダウンロードをクリックする
  7. 管理者権限要求されるので、「はい」をクリックして次に進む
  8. 1.8GBくらいあるのでダウンロードが完了するまで待つ
  9. Amazon AppStoreを開くをクリックする
  10. WSAが起動してアプリが起動するので、追加のアプリを入れて運用開始
  11. Amazonのアカウントが必要なので、Amazonのアカウントでログインする
  12. 試しに「ママにゲーム隠された」というゲームを検索してインストールしてみる
  13. アプリがインストールされて、WSA上でゲームが動作します。

スタートメニューにも登録されてるので、以降は直接アプリを叩けば起動するようになります。

図:Microsoft Store自体の更新

図:InsiderのRelease Previewを選択する

図:Amazon AppStoreのインストール画面

図:Amazon AppStoreを起動してみた

図:ママにゲーム隠されたを起動してみた

ネットで流行したおもしろ人気ゲーム『 ママにゲーム隠された 』
元サイトで動画を視聴: YouTube.

手動でインストールする方法

ここまで来たら、以下の手順でWindows Subsystem for Androidのアプリをダウンロードしますが、こちらの方法は手動でインストールする方法です(後で改造したりGoogle Play入れたい場合の手法)。Microsoft Storeからはダウンロードできないので、以下の手順で入手します。

  1. こちらのサイトを開く
  2. URLをProductIDに変更する
  3. RPをSlowに変更する
  4. 検索窓に「9P3395VX91NR」を入れて、チェックをクリック
  5. 一覧が出てくるので一番下の拡張子が.Msixbundleとなってるものを右クリック⇒名前をつけて保存する
  6. ダウンロード警告が出るので、継続をクリック

これで、本体のインストール準備が完了しました。

図:アプリ本体のファイルを直接入手

ADBコマンドを使えるようにする

しかし、このままでは他のアプリ(apkファイル)を入れる手段が無いので、Windows11にadbコマンドをインストールする必要があります。以下の手順で導入します。

  1. こちらのサイトからWindows用のSDK Platform toolsをダウンロードする
  2. ZIPで固められてるので解凍したら、フォルダごとマイドキュメントのドキュメントフォルダ内にでも移動させる
  3. デスクトップのPCを右クリック⇒プロパティを開く
  4. システムの詳細設定を開く
  5. 環境変数をクリック
  6. 上のパネルの環境変数のPathをクリックして、編集をクリック
  7. 新規で、2.の移動先のフォルダのパスを入れる(例:C:\Users\ユーザ名\Documents\platform-tools)
  8. OKをクリック
  9. コマンドプロンプトを開き、adbと打って、色々出てきたら成功。

図:adbコマンドが使えるようになった

インストール

手動でWSAのインストールをする場合

前述の項目でダウンロードした、拡張子が.Msixbundleのファイルはダブルクリックしてもインストールできません。こちらの手法はAmazonアプリストアのインストールではなく、手動でイメージファイルをインストールしあとでGoogle Playなどを追加する場合の手順です。Windowsターミナルを使って以下の手順で導入します。

  1. Windowsターミナルを管理者権限で起動する
  2. 拡張子が.MsixBundleのファイルをCtrlキーを押しながら右クリックして、パスをコピーする
  3. ターミナル上で以下のコマンドを実行する

    ファイルのパスには2.でコピーしたフルパスを入れます。
  4. 実行すると、Windows11にWSAがインストールされます。
  5. インストールが完了したら、スタートメニューを開くと緑色のアイコンでWSAがインストールされてるのを確認できます

図:この画面からはインストールできない

図:インストール中の画面

図:インストールされました

WSAの初期セットアップ

早速インストールされたWSAを起動して初期セットアップをしてしまいます。以下の手順でセットして再起動してみましょう。

  1. WSAを起動する
  2. サブシステムリソースは「継続」に変更します
  3. 開発者モードは「オン」にします
  4. ファイルをクリックすると、Android標準装備のファイラアプリが起動するはずです
  5. また、4.の結果、IPアドレスが表示されているはずなのでこれをコピーします。これを次の項目で利用します。
  6. 開発者向け設定の管理をクリックすると、Androidではおなじみの開発者向けオプションが開きます。起動しない場合は、WSAになんらかの障害が出ていて起動できていません

図:ここで少し設定を変更する

図:Android側の開発者モード画面

APKファイルのサイドロード

通常のAPKダウンロード手段

Windows Updateを実行すると勝手にAmazon AppStoreが入ったりしますが、正直Google Playと比較してショボい品揃えで全く約に立たないです。現在は米国アカウントでないとログインもできません。そこで以下の手順でGoogle PlayからAPKファイルを手に入れてAPKをadbコマンドでサイドロードしてインストールします。

  1. 今回はねこあつめをインストールするので、ページのURLをコピーしておく
  2. APK Downloaderにゆき、1.のアドレスを入れて、Get Download Linkをクリックする
  3. Click here to downloadのボタンが出るのでクリックするとAPKファイルとしてダウンロードされます
  4. 3.のAPKファイルをCtrlキーを押しながら右クリック⇒パスをコピーしておく
  5. Windowsターミナルを起動する
  6. 以下のコマンドを入力して、adb接続してinstallする

    IPアドレスは前項で取得しておいたアドレスです。127.0.0.1:58526は何故か接続できない。apkファイルのフルパスは4.で取得しておいたパスです
  7. インストールが完了するとスタートメニューにねこあつめが出てくるのでクリックで起動できます。

ADBコマンドが使えるので、scrcpy, wsaLink、WSA PackmanなどのADB系のツールがあれば、GUIからAPKを押し込めると思うので、そちらも利用すると良いでしょう。

※類似のサイトとして、こちらのサイトもあるので使えない場合は試してみると良い。

図:APKを入手している様子

図:adbコマンドでAPKをサイドロードしてる様子

Chrome拡張機能を使う手段

APK Downloaderの手法でダウンロードできないケースがあります(Google側が対策したり?なにかの不具合で)。その場合、Google Chromeの拡張機能をインストールしてダウンロードする手段があります。

  1. APKダウンローダを追加する
  2. ねこあつめのURLを開く
  3. 拡張機能のボタンをクリック
  4. URLをコピペしてダウンをクリック
  5. なぜか一発ではエラーとなるので表示された入力欄にてもう一度入力して実行
  6. ダウンロードができるようになる。

ただ、通常は前述のサイトで十分用をなすのでわざわざ拡張機能をいれてまでというのは非効率かなと思います。それほど利用するものでもないので。

図:ダウンロード中の様子

Google Playを入れる

概要

Amazon App Store以外にも、Androidの場合は非公式ストアがいくつかあって、APKPureやAurora Store、YalpStore、AptoideTVなど色々とあります。しかしこれらはすべて非公式なもので、どんな管理がされてるか不明です。やはりGoogle Playがほしい所。また、APKファイルをGoogle Playからダウンロードしてインストールと言っても、Google Play Serviceに依存してるアプリはそのままでは動作しません(アカウントリンクなどをするタイプのアプリは動くけれど、Googleアカウントで連携とかができない)

Google Playを導入するためのOpenGApps Projectというものがあるのですが、これをWSAに導入するのは、Fire7タブレットのように簡単には行きません。また、利用するとアカウントBANされる可能性、Microsoft Store経由でWSAを更新できない等リスクもあります。入れることは可能ですが自分は検証していません。

興味がある方はこちらのサイトを開いてみると良いでしょう。

※但し、入れられてもアプリ側でUSBデバッグ検知をすると動かせないように対策していたりするアプリは動かないです。

※最近、ウイルス入りのGoogle Play導入用ツールが出回ってました。すでに対象のGithubのアカウントは閉鎖されましたが、Google Play導入は自己責任となるので要注意です。

図:SmartNewsを使ってみた

MagiskOnWSAで簡単導入

WSAScriptを使うのがこれまでの方法でしたが、非常に手間が多いため、今回はMagiskOnWSAを利用してインストールしてみます。事前にもしもWSAがインストール済みの場合はアンインストールが必要です。また、今回の方法は、事前にGithubアカウントが必要になるので、作成しておきましょう。

※現在以下の手順は利用できず、同プロジェクトではローカルでビルドする手法に変更(要WSL2のUbuntu環境)されています。

  1. MagiskOnWSAを開く
  2. 左上のActionをクリックし、右上のForkをクリックする
  3. フォークすると自分のアカウントに一式がコピーされるので、次にフォーク先の自分のアカウント上でActionをクリック
  4. Workflows⇒BuildWSAをクリックし、Run Workflowをクリック
  5. Variants of gappsをpicoに指定、Root soluctionをnoneに指定する。
  6. Run Workflowをクリックしてビルド開始
  7. およそ10分程度でビルドが完了し、x64用とARM用の2つが出来るので、x64用のWSA-with-magisk-GApps-pico_2203.40000.3.0_x64_Release-Nightlyをダウンロードする
  8. ダウンロードされたZIPファイルを解凍する
  9. PowerShellを管理者権限で実行する
  10. 8.の中のディレクトリまで移動し、install.ps1ファイルを実行する
  11. 色々インストールされて完了すると、WSAの設定アプリとともにGoogle Playが起動する
  12. アカウントにログインすると、更にGoogle Play Service関連が次々とインストールされる。
  13. あとはGoogle Playからアプリを追加するだけ

Google Play Serviceが利用出来るので、Google関係のライブラリを使ってるアプリの導入が出来るようになります。Intel向けのアプリがリストアップされるので、中には存在しないアプリもあるかもしれないですが、概ねのアプリは両対応してるはずなので、普段遣いで困ることは無いと思われます。

図:Github上でのBuild指定してる様子

図:Google Playがインストールされた

図:アプリ追加中

アンインストール

不要になった場合、アンインストールをする方法ですが、3パターンあります。

  • スタートメニューからアンインストールする方法(最も手軽)
  • 設定アプリからアンインストールする方法
  • Windows Terminalを使ってコマンドラインでアンインストールする方法(面倒)

スタートメニューからのアンインストール法がもっとも簡単で、

  1. スタートメニューを開く
  2. すべてのアプリをクリック
  3. Android用 Windows サブシステム設定を右クリック
  4. アンインストールをクリック

設定アプリからは、

  1. 設定→アプリを開いて
  2. Windows Subsystem for Androidの「︙」をクリックして
  3. アンインストールをクリック

Windows Terminalの場合は、

  1. Windows Terminalを起動する
  2. winget listを入力する(wingetをインストールしていないと利用できない)
  3. windows subsystem for androidがいるはずなので、その部分をコピーして、winget uninstallに貼り付け
  4. winget uninstall "Windows Subsystem for AndroidTM"と入力実行

アンインストールすると、改造してインストールしていたGoogle Playなども全て消えてしまうので要注意です。

大規模アップデート

2022年7月7日、WSAが大幅アップデートが実行されました。今回のエントリーのように手動でインストールしているようなケースでは、同じ手順でアップデートされた最新版を手動でインストールが必要です。

アップデートされた内容は

  • AV1コーデックに対応
  • VMの個別IPアドレス表示が廃止されて、ホストと同じIPアドレスに
  • IPv6およびVPNのサポート
  • Android12.0の5月適用までの最新パッチ適用
  • フルスクリーン表示に対応しました(F11キーで全画面表示になります)
  • Shiftキー押しながらマウスホイールを動かすと水平スクロールになります(スワイプと同じ)
  • Altキー押しながらクリックで、2本指タップと同じになります。
  • ゲームパッドに対応しました。

となっています。

使ってみたレビュー

実際に使ってみたレビューとして、他のAndroidエミュレータ類(Android EmulatorやNox Playerなど)と比較してみました。

Subsystemという仕組みつまりは仮想環境で動かしているのと同じであるため、かなりマシンパワーを要求します。また、エミュレーションではなく、ハイパーバイザな仮想化という仕組みであるため、CPUがHyper-Vに対応している必要があり、WSL2がインストールできないようなマシン(Surface Go 2など)では動作しません。現時点では、vmmemwsaプロセスが相当なリソースを消費するため、これを常用するというのはちょっと辛いのではないかと思います。

また、通常インストールではGoogle Playがインストールできるわけではないため、Google Playをインストールして自由自在にアプリを追加したい場合は、Android EmulatorやNox Playerのほうが全然動作も軽いため、そちらのほうがオススメです(前述の改造法を使えばGoogle PlayをWSAに追加もできますが、なかなか面倒が手段が必要です)。Android Emulatorの場合、M1 Macなどの別のプラットフォームでも使えますし。Amazon AppStoreだけでは到底、アプリが充足しませんので、サイドロード手段も必要になります。

また仮想環境内で動作させたい場合には、CPUがNested Virtualizationに対応してる必要があるため、Windows11であっても、M1 MacのようなARMの場合は、Nested Virtualizationに対応していないため、WSA自体インストールも動作もしません。

しかし、利点が一つあって、Androidアプリを直接動かしているため、他のWindowsアプリと同様に、ネイティブのアプリであるかのように動作するため、Androidのメイン画面も無く使えるという点がこのWSAの特徴と言えます。

色々期待はされてる機能ではありますが、正直言って常用するかといったら結構怪しい・・・・開発する側にとってはAndroid Emulatorがあるため、WSAは使わないでしょうし。といった感じです。常用するには、WSAの動作が軽量化し、アプリが充足しなければならないのでなかなか壁が高いのではないかと思います。個人的にはエミュレータを使わない、scrcpyを使った手法で実機をケーブル接続した上でWindows上に投影して操作する方法のほうがまだいいんじゃないかなぁと思う次第。

※Android Emulatorでは動かないFate Grand Orderが動く等メリットも確かにあります。

図:scrcpyで投影した様子

図:Fate Grand Orderが動いたりする

関連リンク

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。