/Box64Droid

Running x86_64 applications on Android

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Box64Droid

telegram discord

Box64Droid is a project with scripts that automate installing preconfigured rootfs with Box64, Box86, Wine Stable 8.0, DXVK, D8VK on Android. Originally was a fork of Box4Droid with Box64. The project site is available here.

Made by a guy from Lysychansk, Luhansk region of Ukraine.

News about the project are published on the Telegram channel.

README parts:

Installation instructions

  1. Install Termux and Termux-x11.
  2. In Termux, run the Box64Droid install command: curl -o install https://raw.githubusercontent.com/Ilya114/Box64Droid/main/installers/install.sh && chmod +x install && ./install

After the installation is completed, run box64droid --start. The script will start Termux-X11 and show the start menu.

You can also use Input Bridge. Install apk version 0.1.9 and then simply run the app on Android and in Wine from the start menu.

System requirements

  • Adreno 610+ (Other GPUs are supported by VirGL, but many games might not work)
  • Android 12+ (non-root, VirGL version), Android 10+ (root version), Android 9+ (native version)
  • 64-bit Android
  • You also need ~4,2GB (for root version), 4,5GB (for non-root version) or ~3,3GB (for VirGL version) worth of free space for the installation to run without problems.

To increase performance and stability, use the root version (root access required) or the native version (less stable but offers the same performance as the root version).

Configuring

You can choose to use environment variables; there are three files: DXVK_D8VK.conf, Box64Droid.conf, and DXVK_D8VK.conf. These files are created and found in the /sdcard/Box64Droid/ folder after the first Box64Droid run.

The Box64Droid.conf file includes configurations for rootfs, Box86, Box64, and Wine. You can utilize the Box86 and Box64 environment variables; you can find more information about them here and here. You can add as many variables as needed.

The DXVK_D8VK_HUD.conf file is intended for using environment variables related to DXVK_HUD.

The DXVK_D8VK.conf file is intended for using environment variables related to dxvk.

Known issues

  • Error occurs when updating Termux packages. Clearing Termux data can resolve this issue.
  • Android 12+ may terminate Termux, displaying [Process completed (signal 9) - press Enter]. To resolve this, execute the following command in adb shell from your PC: adb shell "/system/bin/device_config put activity_manager max_phantom_processes 2147483647".
  • Winetricks takes a long time to run when Proton is installed (non-root version).

Instructions on how to mount SD-card external HDD/SSD (chroot version only)

If you want to mount an SD card or an external drive (HDD/SSD), you need to add the mountpoint manually. Follow these steps:

  1. Mount the drive onto the phone storage:
    • For an SD card, navigate to /storage and check the folders (using sudo ls), for example, 8D3E-2B7K.
    • For external drives, navigate to /mnt/media_rw and check for a folder like C3G3H6B8A56212H7.
  2. Mount the drive into the chroot envrionment:
    • Type nano $PREFIX/bin/box64droid and add the mount command before the sudo chroot login ... line: sudo mount --bind /mnt/media_rw/drivename (or /storage/sdcardname) $ROOTFSPATH/needfolder.
    • You need to manually create needfolder in the ~/ubuntu folder by using sudo mkdir foldername.

Things to note

Using Box86 and Box64 in a proot environment can lead to some issues and instabilities. Therefore, it's not recommended to use them for debugging or testing purposes; there are better options available.

Applications and scripts which were used in Box64Droid

Thanks to:

  • Herick75 - for providing patches that made compiling Mesa Turnip possible
  • Inguna87 - for start chroot fix for MIUI and Oxygen
  • Alfhashut - inspired me to try VirGL again and tried to help me with it