この記事はBox64+Wine環境を手動で設定する手順です。ワンクリックでインストールしたい場合は、AndroidでWindows exeゲームを変換実行する方法まとめを参照してください。
AndroidスマホでWindowsのexeプログラムを動かしたいなら、TermuxでBox86/Box64を使ってx86アーキテクチャのWineを変換し、それでWindowsプログラムを実行するのがよい方法です。
LinuxにはWindowsゲームを動かせるWineがあり、しかも性能低下はほとんどありません。ただしWineが変換できるのはx86/x64アーキテクチャのWindowsプログラムだけなので、ARMアーキテクチャが中心のAndroidデバイスではそのまま使えません。
そこで必要になるのが変換レイヤー、つまりBox86とBox64です。Box86は32ビットのx86命令セットをARMへ変換し、Box64は64ビットのx64命令セットをARM64へ変換します。両者は共存できます。
クローズドソースのExagearと比べると、Box86はオープンソースで無料の技術です。Githubでも毎週更新されており、作者が各種機能を積極的に改善しています。
1. Termux Prootディストリビューションをインストールする#
まず、Termuxをインストールします。
次にProot Debianをインストールします。
さらにTermux X11をインストールしてデスクトップ環境へアクセスできるようにします。
2. Box86とBox64をインストールする#
- 通常ユーザーでProot Debianにログインする
proot-distro login debian --user user shared-tmp- armhfパッケージリポジトリのサポートを有効化する
dpkg --add-architecture armhf- ryanfortnerのリポジトリを追加し、Box86をインストールする
sudo apt install gpg
sudo wget https://ryanfortner.github.io/box86-debs/box86.list -O /etc/apt/sources.list.d/box86.list
wget -qO- https://ryanfortner.github.io/box86-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box86-debs-archive-keyring.gpg
sudo apt update
sudo apt install box86-android- ryanfortnerのリポジトリを追加し、Box64をインストールする
sudo wget https://ryanfortner.github.io/box64-debs/box64.list -O /etc/apt/sources.list.d/box64.list
wget -qO- https://ryanfortner.github.io/box64-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box64-debs-archive-keyring.gpg
sudo apt update
sudo apt install box64-android3. WineとWine64をインストールする#
Wineは32ビット(x86)のexeを実行するために使い、Wine64は64ビットexeを実行するために使います。
ARM環境では、i386アーキテクチャのWineをパッケージマネージャーでインストールできません。ここではWineの実行ファイルを直接ダウンロードし、シンボリックリンクでインストールします。
- Wineの依存パッケージをインストールする
sudo apt install nano cabextract libfreetype6 libfreetype6:armhf libfontconfig libfontconfig:armhf libxext6 libxext6:armhf libxinerama-dev libxinerama-dev:armhf libxxf86vm1 libxxf86vm1:armhf libxrender1 libxrender1:armhf libxcomposite1 libxcomposite1:armhf libxrandr2 libxrandr2:armhf libxi6 libxi6:armhf libxcursor1 libxcursor1:armhf libvulkan-dev libvulkan-dev:armhf zenity- Kron4ek’s Wine-BuildsからWineとWine64をダウンロードする。現在の最新版はWine 9.7です。
cd ~/
wget https://github.com/Kron4ek/Wine-Builds/releases/download/9.7/wine-9.7-amd64.tar.xz
wget https://github.com/Kron4ek/Wine-Builds/releases/download/9.7/wine-9.7-x86.tar.xz- ファイルを展開し、不要なファイルを削除する
tar xvf wine-9.7-amd64.tar.xz
tar xvf wine-9.7-x86.tar.xz
rm wine-9.7-amd64.tar.xz wine-9.7-x86.tar.xz
mv wine-9.7-amd64 wine64
mv wine-9.7-x86 wine- 以下のコマンドでシンボリックリンクを作成し、
/usr/local/bin/wineを$HOME/wine/bin/wineに向けます。
echo '#!/bin/bash
export WINEPREFIX=~/.wine32
box86 '"$HOME/wine/bin/wine "'"$@"' > /usr/local/bin/wine
chmod +x /usr/local/bin/wine
echo '#!/bin/bash
export WINEPREFIX=~/.wine64
box64 '"$HOME/wine64/bin/wine64 "'"$@"' > /usr/local/bin/wine64
chmod +x /usr/local/bin/wine64- 以下のコマンドでBox86とBox64のPATHを
~/.bashrcに追加する
echo 'export DISPLAY=:0
export BOX86_PATH=~/wine/bin/
export BOX86_LD_LIBRARY_PATH=~/wine/lib/wine/i386-unix/:/lib/i386-linux-gnu/:/lib/aarch64-linux-gnu/:/lib/arm-linux-gnueabihf/:/usr/lib/aarch64-linux-gnu/:/usr/lib/arm-linux-gnueabihf/:/usr/lib/i386-linux-gnu/
export BOX64_PATH=~/wine64/bin/
export BOX64_LD_LIBRARY_PATH=~/wine64/lib/i386-unix/:~/wine64/lib/wine/x86_64-unix/:/lib/i386-linux-gnu/:/lib/x86_64-linux-gnu:/lib/aarch64-linux-gnu/:/lib/arm-linux-gnueabihf/:/usr/lib/aarch64-linux-gnu/:/usr/lib/arm-linux-gnueabihf/:/usr/lib/i386-linux-gnu/:/usr/lib/x86_64-linux-gnu' >> ~/.bashrc
source ~/.bashrc- 以下のコマンドでWinetricksをインストールする
cd ~/
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks
mv winetricks /usr/local/bin/
echo '#!/bin/bash
export BOX86_NOBANNER=1 WINE=wine WINEPREFIX=~/.wine32 WINESERVER=~/wine/bin/wineserver
wine '"/usr/local/bin/winetricks "'"$@"' > /usr/local/bin/winetricks32
chmod +x /usr/local/bin/winetricks32
echo '#!/bin/bash
export BOX64_NOBANNER=1 WINE=wine64 WINEPREFIX=~/.wine64 WINESERVER=~/wine64/bin/wineserver
wine64 '"/usr/local/bin/winetricks "'"$@"' > /usr/local/bin/winetricks64
chmod +x /usr/local/bin/winetricks64- 以下のコマンドでLinuxデスクトップにWineファイルマネージャーのショートカットを作成します。これでexeを直接クリックして起動できます。
cd ~/Desktop
echo '[Desktop Entry]
Name=Wine32 Explorer
Exec=bash -c "wine explorer"
Icon=wine
Type=Application' > ~/Desktop/Wine32_Explorer.desktop
chmod +x ~/Desktop/Wine32_Explorer.desktop
cp ~/Desktop/Wine32_Explorer.desktop /usr/share/applications/
cd ~/Desktop
echo '[Desktop Entry]
Name=Wine64 Explorer
Exec=bash -c "wine64 explorer"
Icon=wine
Type=Application' > ~/Desktop/Wine64_Explorer.desktop
chmod +x ~/Desktop/Wine64_Explorer.desktop
cp ~/Desktop/Wine64_Explorer.desktop /usr/share/applications/4. DXVKをインストールする#
DXVKはDirectXをVulkanへ変換するツールで、一部のWindowsプログラムの性能を向上できます。
- 依存パッケージをインストールする
sudo apt install mesa-vulkan-drivers mesa-vulkan-drivers:armhf libvulkan1 libvulkan1:armhf- Githubから最新版のDXVKをダウンロードする。現在は2.3.1です。
wget https://github.com/doitsujin/dxvk/releases/download/v2.4.1/dxvk-2.4.1.tar.gz- 展開し、dxvkのファイルをWineのディレクトリへ移動する
tar -xvf dxvk-2.4.1.tar.gz
cd dxvk-2.4.1
cp x32/* ~/.wine32/drive_c/windows/system32
cp x32/* ~/.wine64/drive_c/windows/system32
cp x64/* ~/.wine64/drive_c/windows/syswow64- Wine設定を開き、ライブラリページでDLLオーバーライドを設定し、d3d11、d3d10core、dxgi、d3d9を「内蔵版を先に使う」に調整します。
export WINEPREFIX=~/.wine
cp x64/*.dll $WINEPREFIX/drive_c/windows/system32
cp x32/*.dll $WINEPREFIX/drive_c/windows/syswow645. Box86+Wineの使い方#
Proot内のブラウザでWindows exeをダウンロードしてもよいですし、スマホ内のファイルをProot Linuxへコピーしてもかまいません。
Linuxのファイルマネージャーを開くと、ファイルシステム内の/sdcardディレクトリがスマホ内部ストレージのディレクトリです。
一部のプログラムは正常に起動するためにGPUハードウェアアクセラレーションが必要になる場合があります。
プログラムを実行する前に、WineDBでそのプログラムが追加パッケージを必要とするか確認し、winetricksコマンドで追加のexeをインストールできます。
Wineのコマンドの使い方はこちらを参照してください。
プログラムを実行する前に、そのexeが32ビット版か64ビット版か確認してください。
例えばNotepad++の32ビット版をダウンロードした場合、exeがあるディレクトリで右クリックしてターミナルを開きます。
box86 wine notepad++.exe数秒待つとNotepad++のウィンドウが開きます。
同じ要領で、64ビット版のプログラムなら次のように実行します。
box64 wine64 notepad++.exe- Wine64コマンドを実行する前に
WINEPREFIXを宣言しておくと、新しいディレクトリが作成され、ビット数の異なる実行環境を分けられます。
export WINEPREFIX=~/.wine64
export WINEARCH=win64
box64 wine64 notepad++.exe

