快轉到主要內容

Termux Proot安裝Box64與Box86,Android手機執行Windows exe

智慧型手機 Termux教學 Box86 Box64 Wine Raspberry Pi ExaGear
🗓️ 民國112年 癸卯年
✍ 切換正體/簡體字
目錄

🇺🇸 English version

註1:本文提及的程式都需要手動安裝,如果您覺得很麻煩,請改用這個自動安裝指令稿: Ilya114/Box64Droid

註2:不是所有程式都能用Box64 + Wine跑,請先在x86架構的Linux PC上用Wine測試,確認你的Windows程式能正常執行再用Box64執行。如果有任何問題,請優先向 Box64開發者回報看看。

如果想在Android手機跑Windows exe程式,在Termux中用Box86/Box64轉譯x86架構的Wine,再用來跑Windows程式會是個好方法。

我們知道Linux平台有Wine能跑Windows遊戲,且幾乎沒有效能損失。但是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
#

  1. 以一般帳戶登入Proot Debian
proot-distro login debian --user user shared-tmp
  1. 透過第三方儲存庫安裝Box86
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 | gpg --dearmor -o /etc/apt/trusted.gpg.d/box86-debs-archive-keyring.gpg
dpkg --add-architecture armhf
sudo apt update
sudo apt install libc6:armhf
sudo apt install box86-android:armhf
  1. 透過第三方儲存庫安裝Box64
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 | gpg --dearmor -o /etc/apt/trusted.gpg.d/box64-debs-archive-keyring.gpg
sudo apt update
sudo apt install box64-android

3. 安裝Wine和Wine64
#

Wine用於執行32位元(x86)的exe;Wine64則是執行64位元exe。

ARM環境下,i386架構的Wine用套件管理員是裝不起來的。此處是直接下載Wine的執行檔,並用符號連結的模式安裝。

  1. 安裝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
  1. Kron4ek’s Wine-Builds下載Wine和Wine64:
cd ~/
wget https://github.com/Kron4ek/Wine-Builds/releases/download/8.0.1/wine-8.0.1-amd64.tar.xz
wget https://github.com/Kron4ek/Wine-Builds/releases/download/8.0.1/wine-8.0.1-x86.tar.xz
  1. 解壓縮
tar xvf wine-8.0.1-amd64.tar.xz
tar xvf wine-8.0.1-x86.tar.xz
rm wine-8.0.1-amd64.tar.xz wine-8.0.1-x86.tar.xz
mv wine-8.0.1-amd64 wine64
mv wine-8.0.1-x86 wine
  1. 建立捷徑
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
  1. 將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
  1. 最後,安裝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
  1. 在系統桌面建立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程式的效能。

  1. 執行以下指令:
sudo apt install mesa-vulkan-drivers mesa-vulkan-drivers:armhf libvulkan1 libvulkan1:armhf
wget https://github.com/doitsujin/dxvk/releases/download/v2.1/dxvk-2.1.tar.gz
tar xvf dxvk-2.1.tar.gz
cd dxvk-2.1
cp x32/* ~/.wine32/drive_c/windows/system32
cp x32/* ~/.wine64/drive_c/windows/system32
cp x64/* ~/.wine64/drive_c/windows/syswow64
  1. 開啟Wine設定,覆寫d3d11, d3d10core, dxgi, and d3d9的DLL檔案。
wine winecfg
wine64 winecfg

5. Box86+Wine的使用方式
#

您可以開啟Proot的瀏覽器下載Windows exe,或者複製手機的檔案到Proot Linux裡面。

Linux開啟檔案管理員 → 檔案系統的/sdcard目錄便是手機內部儲存空間的目錄。

注意有些程式可能需要 GPU硬體加速才能正常開啟。

執行程式前可以到 WineDB看該程式是否需要裝其他套件才能跑,並透過winetricks指令安裝額外的exe。


執行程式前要確認你的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

參考資料
#

相關文章

Termux以virglrenderer達成GPU 3D硬體加速
智慧型手機 Termux教學 VirGL Wine
用Proot-Exagear在Android手機上跑Windows exe程式
智慧型手機 Termux教學 ExaGear Wine
用Termux Proot在Android手機玩Minecraft Java版
智慧型手機 Termux教學 Raspberry Pi Minecraft

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。