├── .github └── FUNDING.yml ├── README-id.md ├── README-ja.md ├── README-pl.md ├── README-pt_BR.md ├── README-ru.md ├── README-ua.md ├── README-zh_CN.md ├── README.md ├── components ├── inputbridge.apk ├── liblzma-static_5.6.0-1_aarch64.deb ├── liblzma_5.6.0-1_aarch64.deb ├── termux-x11-1.02.07-0-all.deb ├── termux-x11.apk └── xz-utils_5.6.0-1_aarch64.deb ├── docs └── img │ └── logo.png ├── install └── patches ├── box64-setdirs.patch ├── box86-setdirs.patch ├── fix-address-space.diff └── ge-8-25.patch /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [olegos2] 2 | custom: ['https://boosty.to/olegos/donate'] 3 | -------------------------------------------------------------------------------- /README-id.md: -------------------------------------------------------------------------------- 1 | ![logo](docs/img/logo.png "logo") 2 | 3 | English 4 |   |    5 | Русский 6 |   |    7 | Українська 8 |   |    9 | Português Brasileiro 10 |   |    11 | Polski 12 |   |    13 | 日本語 14 |   |    15 | 简体中文 16 |   |    17 | Bahasa Indonesia 18 | 19 | ## 20 | 21 | `Mobox` adalah proyek yang dirancang untuk menjalankan aplikasi windows x86 di [Termux](https://github.com/termux/termux-app) menggunakan [Box64](https://github.com/ptitSeb/box64) dan [Wine](https://www.winehq.org/). 22 | 23 | # Instalasi 24 | 1. Install 25 | [Termux](https://f-droid.org/repo/com.termux_118.apk), 26 | [Termux-X11](https://raw.githubusercontent.com/olegos2/mobox/main/components/termux-x11.apk) and 27 | [Input Bridge](https://raw.githubusercontent.com/olegos2/mobox/main/components/inputbridge.apk). 28 | 29 | 2. Buka termux dan tempel perintah 30 | 31 | ```bash 32 | curl -s -o ~/x https://raw.githubusercontent.com/olegos2/mobox/main/install && . ~/x 33 | ``` 34 | 35 | 3. Ketik `mobox` di termux. 36 | 37 | # Konfigurasi 38 | ## Wine 39 | Wine dapat diinstal atau dihapus instalasinya di `Manage Packages` 40 | Untuk memilih container wine, gunakan opsi 4 di menu utama. 41 | Mesa VirGL, Turnip, Wine Mono dan Gecko dapat diinstal di Wine Start Menu. 42 | ## Pengaturan 43 | ### Variabel dinarec Box86 dan Box64 44 | Ada dua menu yang dapat dialihkan untuk mengubah variabel dynarec di menu pengaturan mobox. 45 | Untuk informasi lebih lanjut tentang variabel dynarec, lihat [Penggunaan Box64](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md) dan [Penggunaan Box86](https://github.com/ptitSeb/box86/blob/master/docs/USAGE.md) 46 | ### Pengaturan sistem 47 | Untuk mengubah lokal wine, preset dxvk hud, atau pengaturan Turnip, gunakan menu `System Settings` di mobox. 48 | Resolusi cadangan hanya digunakan ketika resolusi x11 tidak dapat dideteksi secara otomatis. 49 | Jika Anda memiliki Snapdragon 8 Gen 1, 8+ Gen 1, 7+ Gen 2, aktifkan opsi kedua di `select a7xx flickering fix (TU_DEBUG)` di menu `System settings`. 50 | ### Pengaturan root 51 | Jika Anda memiliki root, Anda dapat menggunakan OOM Adjuster yang berguna jika pembunuh memori rendah menghentikan termux. 52 | ## Preferensi Termux-X11 53 | * `Display resolution mode` exact 54 | * `Display resolution` 1280x720 55 | * `Reseed Screen While Soft Keyboard is open` OFF 56 | * `Fullscreen on device display` ON 57 | * `Force Landscape orientation` ON 58 | * `Hide display cutout` ON 59 | * `Show additional keyboard` OFF 60 | * `Prefer scancodes when possible` ON 61 | ## Kontrol 62 | Untuk kontrol sentuh, aplikasi Input Bridge diperlukan 63 | ## Uninstall 64 | Untuk menghapus instalasi mobox, gunakan menu `Backup and Restore`. 65 | ## Men-debug 66 | Untuk mengaktifkan logging - pilih opsi 2 di Mobox -> Settings -> Debug setting menu. Jalur ke log adalah /sdcard/mobox_log.txt 67 | 68 | ## Status dukungan 69 | ### Android 70 | * `Android 10` atau lebih tinggi dianjurkan. 71 | ### Perangkat 72 | * Kebanyakan ponsel Android dapat menjalankan game `mobox` dan DirectX 9 menggunakan Mesa VirGL. 73 | * Perangkat Snapdragon dengan Adreno 6xx atau Adreno 725-740 direkomendasikan untuk mencapai performa dan kompatibilitas terbaik dengan Turnip+DXVK. 74 | ### Root 75 | * Root tidak diperlukan 76 | 77 | ## Masalah Dikenal 78 | * Jika aplikasi termux mogok saat mencoba masuk ke menu mobox, hapus skrip tema khusus: 79 | ```bash 80 | rm -rf $PREFIX/glibc/opt/termux-style 81 | ``` 82 | * Beberapa perangkat mungkin mengalami masalah pembekuan pembuatan awalan saat menginstal PhysX, dalam hal ini ubah pengaturan di menu `Compatibility settings` 83 | * Untuk perangkat SD845, nonaktifkan dri3 di menu `Compatibility settings` 84 | 85 | ## Mendukung mobox 86 | [boosty](https://boosty.to/olegos/donate) 87 | 88 | # 89 | Terima kasih banyak kepada Hugo, JeezDisReez, ptitSeb, MishkaKolos, Xanzo, Jotaros, Maxython dan lain lain atas bantuannya. 90 | 91 | [MishkaKolos Discord](https://discord.gg/ZAQnZzbCXq) 92 | 93 | 94 | ## Aplikasi pihak ketiga 95 | 96 | [glibc-packages](https://github.com/termux-pacman/glibc-packages) 97 | 98 | [Box64](https://github.com/ptitSeb/box64) 99 | 100 | [Box86](https://github.com/ptitSeb/box86) 101 | 102 | [DXVK](https://github.com/doitsujin/dxvk) 103 | 104 | [DXVK-ASYNC](https://github.com/Sporif/dxvk-async) 105 | 106 | [DXVK-GPLASYNC](https://gitlab.com/Ph42oN/dxvk-gplasync) 107 | 108 | [VKD3D](https://github.com/lutris/vkd3d) 109 | 110 | [D8VK](https://github.com/AlpyneDreams/d8vk) 111 | 112 | [Termux-app](https://github.com/termux/termux-app) 113 | 114 | [Termux-x11](https://github.com/termux/termux-x11) 115 | 116 | [Wine](https://wiki.winehq.org/Licensing) 117 | 118 | [wine-ge-custom](https://github.com/GloriousEggroll/wine-ge-custom) 119 | 120 | [Mesa](https://docs.mesa3d.org/license.html) 121 | 122 | [mesa-zink-11.06.22](https://github.com/alexvorxx/mesa-zink-11.06.22) 123 | 124 | [Mesa-VirGL](https://github.com/alexvorxx/Mesa-VirGL 125 | -------------------------------------------------------------------------------- /README-ja.md: -------------------------------------------------------------------------------- 1 | ![logo](docs/img/logo.png "logo") 2 | 3 | English 4 |   |    5 | Русский 6 |   |    7 | Українська 8 |   |    9 | Português Brasileiro 10 |   |    11 | Polski 12 |   |    13 | 日本語 14 |   |    15 | 简体中文 16 | 17 | ## 18 | 19 | `Mobox` は [Box64](https://github.com/ptitSeb/box64) と [Wine](https://www.winehq.org/) を使って [Termux](https://github.com/termux/termux-app) で Windows x86 アプリケーションを実行するように設計されたプロジェクトです。 20 | 21 | # インストール 22 | 1. インストール 23 | [Termux](https://f-droid.org/repo/com.termux_118.apk), 24 | [Termux-X11](https://raw.githubusercontent.com/olegos2/mobox/main/components/termux-x11.apk) and 25 | [Input Bridge](https://raw.githubusercontent.com/olegos2/mobox/main/components/inputbridge.apk). 26 | 27 | 2. termuxを開き、コマンドを貼り付ける 28 | 29 | ```bash 30 | curl -s -o ~/x https://raw.githubusercontent.com/olegos2/mobox/main/install && . ~/x 31 | ``` 32 | 33 | 3. termux に `mobox` と入力。 34 | 35 | # コンフィグ 36 | ## Wine 37 | Wine は `Manage packages` メニューでインストールまたはアンインストールできる。 38 | Wine コンテナを選択するには、メインメニューのオプション 4 を使ってください。 39 | Mesa VirGL、Turnip、Wine Mono、Gecko は Wine Start Menu からインストールできます。 40 | ## 設定 41 | ### Box86 と Box64 の dynarec 変数 42 | mobox 設定メニューには、dynarec 変数を変更するための 2 つの切り替え可能なメニューがあります。 43 | dynarec 変数の詳細については、[Box64 の使い方](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)および [Box86 の使い方](https://github.com/ptitSeb/box86/blob/master/docs/USAGE.md)を参照のこと 44 | ### システム設定 45 | Wine ロケール、dxvk hud プリセット、Turnip の設定を変更するには、mobox の `System settings` メニューを使用してください。 46 | フォールバック解像度は、x11 解像度が自動的に検出できなかった場合にのみ使用される。 47 | Snapdragon 8 Gen 1、8+ Gen 1、7+ Gen 2 を使用している場合は、`System settings` メニューの `select a7xx flickering fix (TU_DEBUG)` を選択し、2 番目のオプションを有効にしてください。 48 | ### Root 設定 49 | root があれば、OOM Adjuster を使うことができ、メモリ不足でtermuxが止まってしまったときに便利です。 50 | ## Termux-X11 preferences 51 | * `Display resolution mode` exact 52 | * `Display resolution` 1280x720 53 | * `Reseed Screen While Soft Keyboard is open` OFF 54 | * `Fullscreen on device display` ON 55 | * `Force Landscape orientation` ON 56 | * `Hide display cutout` ON 57 | * `Show additional keyboard` OFF 58 | * `Prefer scancodes when possible` ON 59 | ## 操作方法 60 | タッチコントロールには Input Bridge アプリが必要 61 | ## アンインストール 62 | mobox をアンインストールするには、`Backup and restore` メニューを使用する。 63 | ## デバッグ 64 | ロギングを有効にするには、Mobox -> Settings -> Debug settings menu でオプション 2 を選択してください。ログへのパスは /sdcard/mobox_log.txt です。 65 | 66 | ## サポート状況 67 | ### Android 68 | * `Android 10` 以上を推奨。 69 | ### デバイス 70 | * ほとんどのアンドロイド携帯は、Mesa VirGL を使って `mobox` や DirectX 9 のゲームを動かすことができます。 71 | * 最高のパフォーマンスと Turnip+DXVK との互換性を実現するには、Adreno 6xx または Adreno 725-740 を搭載した Snapdragon デバイスを推奨します。 72 | ### Root 73 | * Root は不要。 74 | 75 | ## 既知の問題 76 | * mobox メニューに入ろうとすると termux アプリがクラッシュする場合は、カスタムテーマスクリプトを削除してください: 77 | ```bash 78 | rm -rf $PREFIX/glibc/opt/termux-style 79 | ``` 80 | * 一部のデバイスでは、PhysX のインストール時にプレフィックス作成がフリーズする問題が発生する可能性があります、この場合、`Compatibility settings` メニューの設定を変更します 81 | * SD845 デバイスの場合、`Compatibility settings` メニューで dri3 を無効にしてください 82 | 83 | ## mobox のサポート 84 | [boosty](https://boosty.to/olegos/donate) 85 | 86 | # 87 | Hugo、JeezDisReez、ptitSeb、MishkaKolos、Xanzo、Jotaros、Maxython、その他多くの協力に感謝する。 88 | 89 | [MishkaKolos Discord](https://discord.gg/ZAQnZzbCXq) 90 | 91 | 92 | ## サードパーティアプリ 93 | 94 | [glibc-packages](https://github.com/termux-pacman/glibc-packages) 95 | 96 | [Box64](https://github.com/ptitSeb/box64) 97 | 98 | [Box86](https://github.com/ptitSeb/box86) 99 | 100 | [DXVK](https://github.com/doitsujin/dxvk) 101 | 102 | [DXVK-ASYNC](https://github.com/Sporif/dxvk-async) 103 | 104 | [DXVK-GPLASYNC](https://gitlab.com/Ph42oN/dxvk-gplasync) 105 | 106 | [VKD3D](https://github.com/lutris/vkd3d) 107 | 108 | [D8VK](https://github.com/AlpyneDreams/d8vk) 109 | 110 | [Termux-app](https://github.com/termux/termux-app) 111 | 112 | [Termux-x11](https://github.com/termux/termux-x11) 113 | 114 | [Wine](https://wiki.winehq.org/Licensing) 115 | 116 | [wine-ge-custom](https://github.com/GloriousEggroll/wine-ge-custom) 117 | 118 | [Mesa](https://docs.mesa3d.org/license.html) 119 | 120 | [mesa-zink-11.06.22](https://github.com/alexvorxx/mesa-zink-11.06.22) 121 | 122 | [Mesa-VirGL](https://github.com/alexvorxx/Mesa-VirGL) 123 | 124 | -------------------------------------------------------------------------------- /README-pl.md: -------------------------------------------------------------------------------- 1 | ![logo](docs/img/logo.png "logo") 2 | 3 | Angielski 4 |   |    5 | Русский 6 |   |    7 | Українська 8 |   |    9 | Português Brasileiro 10 |   |    11 | Polski 12 |   |    13 | 日本語 14 |   |    15 | 简体中文 16 | 17 | ## 18 | 19 | `Mobox` jest aplikacją zaprojektowaną aby uruchamiać aplikacje x86 w programie [Termux](https://github.com/termux/termux-app) wykorzystując [Box64](https://github.com/ptitSeb/box64) oraz [Wine](https://www.winehq.org/). 20 | 21 | # Instalacja 22 | 1. Zainstaluj 23 | [Termux](https://f-droid.org/repo/com.termux_118.apk), 24 | [Termux-X11](https://raw.githubusercontent.com/olegos2/mobox/main/components/termux-x11.apk) oraz 25 | [Input Bridge](https://raw.githubusercontent.com/olegos2/mobox/main/components/inputbridge.apk). 26 | 27 | 2. Otwórz termux i wklej komendę 28 | ```bash 29 | curl -s -o ~/x https://raw.githubusercontent.com/olegos2/mobox/main/install && . ~/x 30 | ``` 31 | 32 | 3. Wpisz `mobox` w termux 33 | 34 | # Konfiguracja 35 | ## Wine 36 | Wine może być zainstalowane lub odinstalowane w menu `Manage packages`. 37 | Aby wybrać kontener wine, użyj opcji 4 w menu głównym. 38 | Mesa VirGL, Turnip, Wine Mono i Gecko mogą zostać zainstalowane z Menu Start (Wine). 39 | # Ustawienia 40 | ### Zmienne dynarec Box86 i Box64 41 | Są dwa dedykowane menu aby zmienić ustawienia dynarec w konfiguracji mobox. 42 | Aby dowiedzieć się więcej, zobacz [Box64 usage](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md) oraz [Box86 usage](https://github.com/ptitSeb/box86/blob/master/docs/USAGE.md) 43 | ### Ustawienia systemowe 44 | Aby zmienić język wine, konfigurację DXVK HUD lub Turnip użyj sekcji `System settings` w mobox. 45 | Rozdzielczość fallback powinna być ustawiona jeżeli oryginalna x11 nie jest w stanie wykryć się automatycznie. 46 | Jeżeli posiadasz Snapdragon 8 Gen 1, 8+ Gen 1, 7+ Gen 2 odblokuj opcję `select a7xx flickering fix (TU_DEBUG)` w sekcji `System settings`. 47 | ### Ustawienia root 48 | Jeżeli posiadasz roota, możesz użyć OOM Adjuster aby zapobiec ubijaniu procesów przez wysokie zużycie pamięci. 49 | ## Ustawienia Termux-X11 50 | * `Display resolution mode` exact 51 | * `Display resolution` 1280x720 52 | * `Reseed Screen While Soft Keyboard is open` OFF 53 | * `Fullscreen on device display` ON 54 | * `Force Landscape orientation` ON 55 | * `Hide display cutout` ON 56 | * `Show additional keyboard` OFF 57 | * `Prefer scancodes when possible` ON 58 | ## Sterowanie 59 | Dla kontrolera dotykowego aplikacja Input Bridge jest wymagana 60 | ## Odinstalowywanie 61 | Aby odinstalować mobox, użyj `Backup and restore`. 62 | ## Debugowanie 63 | Aby włączyć logging, wybierz opcję 2 w Mobox -> Settings -> Debug settings menu. 64 | 65 | ## Wsparcie 66 | ### Android 67 | * `Android 10` lub wyżej jest rekomendowany. 68 | ### Urządzenie 69 | * Większość telefonów z Androidem jest w stanie uruchomić `mobox` oraz gry DirectX9 korzystając z Mesa VirGL. 70 | * Urządzenia ze Snapdragonem oraz Adreno 6xx lub Adreno 725-740 są rekomendowane aby uzyskać najlepszą kompatybilność i wydajność korzystając z Turnip+DXVK. 71 | ### Root 72 | * Root nie jest wymagany. 73 | 74 | ## Znane problemy 75 | * Jeżeli termux crashuje w momencie wejścia do menu, usuń dodatkowe skrypty motywu: 76 | ```bash 77 | rm -rf $PREFIX/glibc/opt/termux-style 78 | ``` 79 | * Niektóre urządzenia mogą zawieszać się w momencie tworzenia prefixu oraz instalacji PhysX, w takim wypadku zmień konfigurację w `Compatibility settings` 80 | 81 | ## Wesprzyj mobox 82 | [boosty](https://boosty.to/olegos/donate) 83 | 84 | # 85 | Wielkie dzięki dla Hugo, JeezDisReez, ptitSeb, MishkaKolos, Xanzo, Jotaros, Maxython i innym za pomoc. 86 | 87 | [MishkaKolos Discord](https://discord.gg/ZAQnZzbCXq) 88 | 89 | 90 | ## Wykorzystane aplikacje 91 | 92 | [glibc-packages](https://github.com/termux-pacman/glibc-packages) 93 | 94 | [Box64](https://github.com/ptitSeb/box64) 95 | 96 | [Box86](https://github.com/ptitSeb/box86) 97 | 98 | [DXVK](https://github.com/doitsujin/dxvk) 99 | 100 | [DXVK-ASYNC](https://github.com/Sporif/dxvk-async) 101 | 102 | [DXVK-GPLASYNC](https://gitlab.com/Ph42oN/dxvk-gplasync) 103 | 104 | [VKD3D](https://github.com/lutris/vkd3d) 105 | 106 | [D8VK](https://github.com/AlpyneDreams/d8vk) 107 | 108 | [Termux-app](https://github.com/termux/termux-app) 109 | 110 | [Termux-x11](https://github.com/termux/termux-x11) 111 | 112 | [Wine](https://wiki.winehq.org/Licensing) 113 | 114 | [wine-ge-custom](https://github.com/GloriousEggroll/wine-ge-custom) 115 | 116 | [Mesa](https://docs.mesa3d.org/license.html) 117 | 118 | [mesa-zink-11.06.22](https://github.com/alexvorxx/mesa-zink-11.06.22) 119 | 120 | [Mesa-VirGL](https://github.com/alexvorxx/Mesa-VirGL) 121 | -------------------------------------------------------------------------------- /README-pt_BR.md: -------------------------------------------------------------------------------- 1 | ![logo](docs/img/logo.png "logo") 2 | 3 | English 4 |   |    5 | Русский 6 |   |    7 | Українська 8 |   |    9 | Português Brasileiro 10 |   |    11 | Polski 12 |   |    13 | 日本語 14 |   |    15 | 简体中文 16 | 17 | ## 18 | 19 | `Mobox` é um projeto criado para executar aplicativos do Windows x86 no [Termux](https://github.com/termux/termux-app) usando [Box64](https://github.com/ptitSeb/box64) e [Wine](https://www.winehq.org/). 20 | 21 | # Instalação 22 | 1. Instale 23 | [Termux](https://f-droid.org/repo/com.termux_118.apk), 24 | [Termux-X11](https://raw.githubusercontent.com/olegos2/mobox/main/components/termux-x11.apk) e 25 | [Input Bridge](https://raw.githubusercontent.com/olegos2/mobox/main/components/inputbridge.apk). 26 | 27 | 2. Abra o termux e cole o comando 28 | 29 | ```bash 30 | curl -s -o ~/x https://raw.githubusercontent.com/olegos2/mobox/main/install && . ~/x 31 | ``` 32 | 33 | 3. Digite `mobox` no termux. 34 | 35 | # Configuração 36 | ## Wine 37 | O Wine pode ser instalado ou desinstalado no menu `Gerenciar pacotes`. 38 | Para selecionar o contêiner do Wine, use a opção 4 no menu principal. 39 | Mesa VirGL, Turnip, Wine Mono e Gecko podem ser instalados no Menu Iniciar do Wine. 40 | ## Configurações 41 | ### Variáveis dynarec do Box86 e Box64 42 | Há dois menus alternáveis para alterar as variáveis dynarec no menu de configurações do mobox. 43 | Para mais informações sobre variáveis dynarec, consulte [Uso do Box64](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md) e [Uso do Box86](https://github.com/ptitSeb/box86/blob/master/docs/USAGE.md) 44 | ### Configurações do sistema 45 | Para alterar a localidade do Wine, a predefinição do hud do dxvk ou as configurações do Turnip, use o menu `Configurações do sistema` no mobox. 46 | A resolução de fallback é usada somente quando a resolução x11 não pode ser detectada automaticamente. 47 | Se você tiver Snapdragon 8 Gen 1, 8+ Gen 1, 7+ Gen 2, ative a segunda opção em `selecionar correção de oscilação a7xx (TU_DEBUG)` no menu `Configurações do sistema`. 48 | ### Configurações de root 49 | Se você tiver root, poderá usar o OOM Adjuster, que é útil se o eliminador de memória baixa parar o termux. 50 | ## Preferências do Termux-X11 51 | * `Modo de resolução de exibição` exato 52 | * `Resolução de exibição` 1280x720 53 | * `Reinicializar tela enquanto o teclado virtual estiver aberto` DESLIGADO 54 | * `Tela cheia na exibição do dispositivo` LIGADO 55 | * `Forçar orientação paisagem` LIGADO 56 | * `Ocultar recorte de exibição` LIGADO 57 | * `Mostrar teclado adicional` DESLIGADO 58 | * `Preferir códigos de varredura quando possível` LIGADO 59 | ## Controles 60 | Para controles de toque, o aplicativo Input Bridge é necessário 61 | ## Desinstalar 62 | Para desinstalar o mobox, use o menu `Backup e restauração`. 63 | ## Depuração 64 | Para habilitar o registro - selecione a opção 2 no menu Mobox -> Configurações -> Configurações de depuração. O caminho para o log é /sdcard/mobox_log.txt 65 | 66 | ## Status de suporte 67 | ### Android 68 | * `Android 10` ou superior é recomendado. 69 | ### Dispositivo 70 | * A maioria dos celulares Android pode executar `mobox` e jogos DirectX 9 usando Mesa VirGL. 71 | * O dispositivo Snapdragon com Adreno 6xx ou Adreno 725-740 é recomendado para obter o melhor desempenho e compatibilidade com Turnip+DXVK. 72 | ### Root 73 | * Root não é necessário. 74 | 75 | ## Problemas conhecidos 76 | * Se o aplicativo termux travar ao tentar entrar no menu mobox, remova os scripts de tema personalizados: 77 | ```bash 78 | rm -rf $PREFIX/glibc/opt/termux-style 79 | ``` 80 | * Alguns dispositivos podem ter problemas de congelamento de criação de prefixo ao instalar o PhysX, neste caso, altere as configurações no menu `Configurações de compatibilidade` 81 | * Para o dispositivo SD845, desative o dri3 no menu `Configurações de compatibilidade` 82 | 83 | ## Suporte mobox 84 | [boosty](https://boosty.to/olegos/donate) 85 | 86 | # 87 | Muito obrigado a Hugo, JeezDisReez, ptitSeb, MishkaKolos, Xanzo, Jotaros, Maxython e outros pela ajuda. 88 | 89 | [MishkaKolos Discord](https://discord.gg/ZAQnZzbCXq) 90 | 91 | 92 | ## Aplicativos de terceiros 93 | 94 | [glibc-packages](https://github.com/termux-pacman/glibc-packages) 95 | 96 | [Box64](https://github.com/ptitSeb/box64) 97 | 98 | [Box86](https://github.com/ptitSeb/box86) 99 | 100 | [DXVK](https://github.com/doitsujin/dxvk) 101 | 102 | [DXVK-ASYNC](https://github.com/Sporif/dxvk-async) 103 | 104 | [DXVK-GPLASYNC](https://gitlab.com/Ph42oN/dxvk-gplasync) 105 | 106 | [VKD3D](https://github.com/lutris/vkd3d) 107 | 108 | [D8VK](https://github.com/AlpyneDreams/d8vk) 109 | 110 | [Termux-app](https://github.com/termux/termux-app) 111 | 112 | [Termux-x11](https://github.com/termux/termux-x11) 113 | 114 | [Wine](https://wiki.winehq.org/Licensing) 115 | 116 | [wine-ge-custom](https://github.com/GloriousEggroll/wine-ge-custom) 117 | 118 | [Mesa](https://docs.mesa3d.org/license.html) 119 | 120 | [mesa-zink-11.06.22](https://github.com/alexvorxx/mesa-zink-11.06.22) 121 | 122 | [Mesa-VirGL](https://github.com/alexvorxx/Mesa-VirGL) 123 | -------------------------------------------------------------------------------- /README-ru.md: -------------------------------------------------------------------------------- 1 | ![logo](docs/img/logo.png "logo") 2 | 3 | English 4 |   |    5 | Русский 6 |   |    7 | Українська 8 |   |    9 | Português Brasileiro 10 |   |    11 | Polski 12 |   |    13 | 日本語 14 |   |    15 | 简体中文 16 | 17 | ## 18 | 19 | `Mobox` - это проект, разработанный для запуска windows x86 приложений в [Termux](https://github.com/termux/termux-app), используя [Box64](https://github.com/ptitSeb/box64) и [Wine](https://www.winehq.org/). 20 | 21 | # Установка 22 | 1. Установите 23 | [Termux](https://f-droid.org/repo/com.termux_118.apk), 24 | [Termux-X11](https://raw.githubusercontent.com/olegos2/mobox/main/components/termux-x11.apk) и 25 | [Input Bridge](https://raw.githubusercontent.com/olegos2/mobox/main/components/inputbridge.apk). 26 | 27 | 2. Откройте termux и вставьте команду 28 | 29 | ```bash 30 | curl -s -o ~/x https://raw.githubusercontent.com/olegos2/mobox/main/install && . ~/x 31 | ``` 32 | 33 | 3. Введите `mobox` в termux. 34 | 35 | # Конфигурация 36 | ## Wine 37 | Wine может быть установлен или удален в меню `Manage packages`. 38 | Для выбора контейнера wine, используйте опцию 4 в главном меню. 39 | Mesa VirGL, Turnip, Wine Mono и Gecko могут быть установлены в Wine Start Menu. 40 | ## Настройки 41 | ### Переменные dynarec в Box86 и Box64 42 | Есть два переключаемых меню для изменения переменных dynarec в меню настроек mobox. 43 | Посмотрите [как использовать Box64](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md) и [как использовать Box86](https://github.com/ptitSeb/box86/blob/master/docs/USAGE.md), чтобы узнать больше о переменных dynarec. 44 | ### Настройки системы 45 | Используйте меню `System settings` в mobox для локального изменения wine, пресета dxvk hud или настроек Turnip. 46 | разрешение fallback использовано только когда разрешение x11 не может быть обнаружено автоматически. 47 | Если у вас Snapdragon 8 Gen 1, 8+ Gen 1, 7+ Gen 2, активируйте вторую опцию в `select a7xx flickering fix (TU_DEBUG)` в меню `System settings`. 48 | ### Root настройки 49 | Если у вас есть Root, то можно использовать OOM Adjuster, который помогает сохранять Termux в фоне. 50 | ## Termux-X11 preferences 51 | * `Display resolution mode` exact 52 | * `Display resolution` 1280x720 53 | * `Reseed Screen While Soft Keyboard is open` OFF 54 | * `Fullscreen on device display` ON 55 | * `Force Landscape orientation` ON 56 | * `Hide display cutout` ON 57 | * `Show additional keyboard` OFF 58 | * `Prefer scancodes when possible` ON 59 | ## Управление 60 | Для сенсорного управления требуется приложение Input Bridge 61 | ## Удаление 62 | Используйте меню `Backup and restore` для удаления mobox. 63 | ## Отладка 64 | Для включения отладки - выберите опцию 2 в меню Mobox -> Settings -> Debug settings. Путь до логов - /sdcard/mobox_log.txt 65 | 66 | ## Поддержка 67 | ### Android 68 | * Рекомендован `Android 10` или выше. 69 | ### Устройство 70 | * Большинство Android телефонов может запускать `mobox` и игры с DirectX 9, используя Mesa VirGL. 71 | * Рекомендовано устройство со Snapdragon с Adreno 6xx или Adreno 725-740 для получения лучшей производительности и совместимости с Turnip+DXVK. 72 | ### Root 73 | * Root не требуется. 74 | 75 | ## Известные проблемы 76 | * Если termux вылетает, когда пытаетесь зайти в меню mobox, удалите пользовательские скрипты темы: 77 | ```bash 78 | rm -rf $PREFIX/glibc/opt/termux-style 79 | ``` 80 | * У некоторых устройств могут быть проблемы с зависанием создания префикса при установке PhysX, в таком случае измените настройки в меню `Compatibility settings` 81 | * Для устройства с SD845, отключите dri3 в меню `Compatibility settings` 82 | 83 | ## Поддержать mobox 84 | [boosty](https://boosty.to/olegos/donate) 85 | 86 | # 87 | Большое спасибо Hugo, JeezDisReez, ptitSeb, MishkaKolos, Xanzo, Jotaros, Maxython и другим за помощь. 88 | 89 | [MishkaKolos Discord](https://discord.gg/ZAQnZzbCXq) 90 | 91 | 92 | ## Сторонние приложения 93 | 94 | [glibc-packages](https://github.com/termux-pacman/glibc-packages) 95 | 96 | [Box64](https://github.com/ptitSeb/box64) 97 | 98 | [Box86](https://github.com/ptitSeb/box86) 99 | 100 | [DXVK](https://github.com/doitsujin/dxvk) 101 | 102 | [DXVK-ASYNC](https://github.com/Sporif/dxvk-async) 103 | 104 | [DXVK-GPLASYNC](https://gitlab.com/Ph42oN/dxvk-gplasync) 105 | 106 | [VKD3D](https://github.com/lutris/vkd3d) 107 | 108 | [D8VK](https://github.com/AlpyneDreams/d8vk) 109 | 110 | [Termux-app](https://github.com/termux/termux-app) 111 | 112 | [Termux-x11](https://github.com/termux/termux-x11) 113 | 114 | [Wine](https://wiki.winehq.org/Licensing) 115 | 116 | [wine-ge-custom](https://github.com/GloriousEggroll/wine-ge-custom) 117 | 118 | [Mesa](https://docs.mesa3d.org/license.html) 119 | 120 | [mesa-zink-11.06.22](https://github.com/alexvorxx/mesa-zink-11.06.22) 121 | 122 | [Mesa-VirGL](https://github.com/alexvorxx/Mesa-VirGL) 123 | 124 | 125 | -------------------------------------------------------------------------------- /README-ua.md: -------------------------------------------------------------------------------- 1 | ![logo](docs/img/logo.png "logo") 2 | 3 | English 4 |   |    5 | Русский 6 |   |    7 | Українська 8 |   |    9 | Português Brasileiro 10 |   |    11 | Polski 12 |   |    13 | 日本語 14 |   |    15 | 简体中文 16 | 17 | ## 18 | 19 | `Mobox` - це проєкт, розроблений з метою запуску windows x86 додатків у [Termux](https://github.com/termux/termux-app), використовуючи [Box64](https://github.com/ptitSeb/box64) та [Wine](https://www.winehq.org/). 20 | 21 | # Встановлення 22 | 1. Встановіть 23 | [Termux](https://f-droid.org/repo/com.termux_118.apk), 24 | [Termux-X11](https://raw.githubusercontent.com/olegos2/mobox/main/components/termux-x11.apk) та 25 | [Input Bridge](https://raw.githubusercontent.com/olegos2/mobox/main/components/inputbridge.apk). 26 | 27 | 2. Відкрийте termux та вставте команду 28 | 29 | ```bash 30 | curl -s -o ~/x https://raw.githubusercontent.com/olegos2/mobox/main/install && . ~/x 31 | ``` 32 | 33 | 3. Введіть `mobox` у termux. 34 | 35 | # Конфігурація 36 | ## Wine 37 | Wine може бути встановлений або видалений у меню `Manage packages`. 38 | Для вибіру контейнера wine, використовуйте опцію 4 у головному меню. 39 | Mesa VirGL, Turnip, Wine Mono та Gecko можуть бути встановлені у Wine Start Menu. 40 | ## Налаштування 41 | ### Змінні dynarec у Box86 та Box64 42 | Є двоє перемикаючих меню для модифікації змінних dynarec у меню налаштувань mobox. 43 | Подивиться [як використовувати Box64](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md) та [як використовувати Box86](https://github.com/ptitSeb/box86/blob/master/docs/USAGE.md), щоб дізнатися більше про змінні dynarec. 44 | ### Налаштування системи 45 | Використовуйте меню `System settings` у mobox для локальної модифікації wine, пресета dxvk hud або налаштувань Turnip. 46 | розширення fallback використовується лише коли розширення x11 не може бути виявлено самостійно. 47 | Якщо у вас Snapdragon 8 Gen 1, 8+ Gen 1, 7+ Gen 2, активуйте другу опцію у `select a7xx flickering fix (TU_DEBUG)` у меню `System settings`. 48 | ### Root налаштування 49 | Якщо ви маєте Root, то можна використовувати OOM Adjuster, який допомагає зберігати Termux у фоновому режимі. 50 | ## Termux-X11 preferences 51 | * `Display resolution mode` exact 52 | * `Display resolution` 1280x720 53 | * `Reseed Screen While Soft Keyboard is open` OFF 54 | * `Fullscreen on device display` ON 55 | * `Force Landscape orientation` ON 56 | * `Hide display cutout` ON 57 | * `Show additional keyboard` OFF 58 | * `Prefer scancodes when possible` ON 59 | ## Керування 60 | Для сенсорного керування потрібен додаток Input Bridge 61 | ## Видалення 62 | Використовуйте меню `Backup and restore` для видалення mobox. 63 | ## Налагодження 64 | Для того щоб включити налагодження - оберіть опцію 2 у меню Mobox -> Settings -> Debug settings. Шлях до логів - /sdcard/mobox_log.txt 65 | 66 | ## Підтримка 67 | ### Android 68 | * Рекомендовано `Android 10` або вище. 69 | ### Пристрій 70 | * Більшість Android телефонів можуть запустити `mobox` та ігри з DirectX 9, використовуючи Mesa VirGL. 71 | * Рекомендовано пристрії з Snapdragon з Adreno 6xx або Adreno 725-740 для отримання кращої продуктивності і сумісності з Turnip+DXVK. 72 | ### Root 73 | * Root не потрібен. 74 | 75 | ## Знайомі проблеми 76 | * Якщо termux вилітає, коли ви намагаєтеся зайти до меню mobox, видаліть користувацькі скрипти тем: 77 | ```bash 78 | rm -rf $PREFIX/glibc/opt/termux-style 79 | ``` 80 | * У деяких пристроїв можуть бути проблеми із зависаннями створення префіксу при встановленні PhysX, у такому випадку зміните налаштування у меню `Compatibility settings` 81 | * Для пристроїв з SD845, вимкніть dri3 у меню `Compatibility settings` 82 | 83 | ## Підтримка mobox 84 | [boosty](https://boosty.to/olegos/donate) 85 | 86 | # 87 | Велике спасибі Hugo, JeezDisReez, ptitSeb, MishkaKolos, Xanzo, Jotaros, Maxython, Swed та іншим за їх допомогу. 88 | 89 | [MishkaKolos Discord](https://discord.gg/ZAQnZzbCXq) 90 | 91 | 92 | ## Сторонні додатки 93 | 94 | [glibc-packages](https://github.com/termux-pacman/glibc-packages) 95 | 96 | [Box64](https://github.com/ptitSeb/box64) 97 | 98 | [Box86](https://github.com/ptitSeb/box86) 99 | 100 | [DXVK](https://github.com/doitsujin/dxvk) 101 | 102 | [DXVK-ASYNC](https://github.com/Sporif/dxvk-async) 103 | 104 | [DXVK-GPLASYNC](https://gitlab.com/Ph42oN/dxvk-gplasync) 105 | 106 | [VKD3D](https://github.com/lutris/vkd3d) 107 | 108 | [D8VK](https://github.com/AlpyneDreams/d8vk) 109 | 110 | [Termux-app](https://github.com/termux/termux-app) 111 | 112 | [Termux-x11](https://github.com/termux/termux-x11) 113 | 114 | [Wine](https://wiki.winehq.org/Licensing) 115 | 116 | [wine-ge-custom](https://github.com/GloriousEggroll/wine-ge-custom) 117 | 118 | [Mesa](https://docs.mesa3d.org/license.html) 119 | 120 | [mesa-zink-11.06.22](https://github.com/alexvorxx/mesa-zink-11.06.22) 121 | 122 | [Mesa-VirGL](https://github.com/alexvorxx/Mesa-VirGL) 123 | 124 | -------------------------------------------------------------------------------- /README-zh_CN.md: -------------------------------------------------------------------------------- 1 | ![logo](docs/img/logo.png "logo") 2 | 3 | English 4 |   |    5 | Русский 6 |   |    7 | Українська 8 |   |    9 | Português Brasileiro 10 |   |    11 | Polski 12 |   |    13 | 日本語 14 |   |    15 | 简体中文 16 | 17 | ## 18 | 19 | `Mobox` 是一个旨在使用 [Box64](https://github.com/ptitSeb/box64) 和 [Wine](https://www.winehq.org/) 在 [Termux](https://github.com/termux/termux-app) 中运行 Windows x86 应用程序的项目。 20 | 21 | # 安装 22 | 1. 安装 [Termux](https://f-droid.org/repo/com.termux_118.apk)、[Termux-X11](https://raw.githubusercontent.com/olegos2/mobox/main/components/termux-x11.apk) 和 [Input Bridge](https://raw.githubusercontent.com/olegos2/mobox/main/components/inputbridge.apk)。 23 | 24 | 2. 打开 termux 并粘贴以下命令 25 | 26 | ```bash 27 | curl -s -o ~/x https://raw.githubusercontent.com/olegos2/mobox/main/install && . ~/x 28 | ``` 29 | 30 | 3. 在 termux 中输入 `mobox`。 31 | 32 | # 配置 33 | ## Wine 34 | Wine 可以在 `Manage packages` 菜单中安装或卸载。 35 | 要选择 wine 容器,请使用主菜单中的选项 4。 36 | Mesa VirGL、Turnip、Wine Mono 和 Gecko 可以在 Wine Start Menu 中安装。 37 | ## 设置 38 | ### Box86 和 Box64 动态编译变量 39 | 有两个可切换的菜单用于更改 mobox 设置菜单中的动态编译变量。 40 | 有关动态编译变量的更多信息,请参阅 [Box64 usage](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md) 和 [Box86 usage](https://github.com/ptitSeb/box86/blob/master/docs/USAGE.md)。 41 | ### 系统设置 42 | 要更改 wine 区域设置、dxvk hud 预设或 Turnip 设置,请使用 mobox 中的 `System settings` 菜单。 43 | 只有在无法自动检测到 x11 分辨率时才使用回退分辨率。 44 | 如果您有骁龙 8 Gen 1、8+ Gen 1、7+ Gen 2,请在 `System settings` 菜单中启用 `select a7xx flickering fix (TU_DEBUG)` 中的第二个选项。 45 | ### Root 设置 46 | 如果您有 root 权限,则可以使用 OOM 调整器,这在低内存时阻止 termux 被杀死很有用。 47 | ## Termux-X11 推荐设置 48 | * `Display resolution mode` exact 49 | * `Display resolution` 1280x720 50 | * `Reseed Screen While Soft Keyboard is open` 关闭 51 | * `Fullscreen on device display` 打开 52 | * `Force Landscape orientation` 打开 53 | * `Hide display cutout` 打开 54 | * `Show additional keyboard` 关闭 55 | * `Prefer scancodes when possible` 打开 56 | ## 控制 57 | 对于触摸控制,需要 Input Bridge 应用程序 58 | ## 卸载 59 | 要卸载 mobox,请使用 `Backup and restore` 菜单。 60 | ## 调试 61 | 要启用日志记录-在 Mobox -> 设置 -> 调试设置菜单中选择选项 2。日志路径为 /sdcard/mobox_log.txt 62 | 63 | ## 支持状态 64 | ### Android 65 | * 建议使用 `Android 10` 或更高版本。 66 | ### 设备 67 | * 大多数 Android 手机都可以运行 `mobox` 并使用 Mesa VirGL 运行 DirectX 9 游戏。 68 | * 推荐使用带有 Adreno 6xx 或 Adreno 725-740 的 Snapdragon 设备,以获得最佳性能和与 Turnip+DXVK 兼容性。 69 | ### Root 70 | * 不需要 Root 权限。 71 | 72 | ## 已知问题 73 | * 如果尝试进入 mobox 菜单时 termux 应用程序崩溃,请删除自定义主题脚本: 74 | ```bash 75 | rm -rf $PREFIX/glibc/opt/termux-style 76 | ``` 77 | * 某些设备在安装 PhysX 时可能会遇到前缀创建冻结问题,在这种情况下,请在 `Compatibility settings` 菜单中更改设置 78 | * 对于 SD845 设备,请在 `Compatibility settings` 菜单中禁用 dri3 79 | 80 | ## 支持 mobox 81 | [boosty](https://boosty.to/olegos/donate) 82 | 83 | # 84 | 特别感谢 Hugo、JeezDisReez、ptitSeb、MishkaKolos、Xanzo、Jotaros、Maxython 等人的帮助。 85 | 86 | [MishkaKolos Discord](https://discord.gg/ZAQnZzbCXq) 87 | 88 | 89 | ## 第三方应用程序 90 | 91 | [glibc-packages](https://github.com/termux-pacman/glibc-packages) 92 | 93 | [Box64](https://github.com/ptitSeb/box64) 94 | 95 | [Box86](https://github.com/ptitSeb/box86) 96 | 97 | [DXVK](https://github.com/doitsujin/dxvk) 98 | 99 | [DXVK-ASYNC](https://github.com/Sporif/dxvk-async) 100 | 101 | [DXVK-GPLASYNC](https://gitlab.com/Ph42oN/dxvk-gplasync) 102 | 103 | [VKD3D](https://github.com/lutris/vkd3d) 104 | 105 | [D8VK](https://github.com/AlpyneDreams/d8vk) 106 | 107 | [Termux-app](https://github.com/termux/termux-app) 108 | 109 | [Termux-x11](https://github.com/termux/termux-x11) 110 | 111 | [Wine](https://wiki.winehq.org/Licensing) 112 | 113 | [wine-ge-custom](https://github.com/GloriousEggroll/wine-ge-custom) 114 | 115 | [Mesa](https://docs.mesa3d.org/license.html) 116 | 117 | [mesa-zink-11.06.22](https://github.com/alexvorxx/mesa-zink-11.06.22) 118 | 119 | [Mesa-VirGL](https://github.com/alexvorxx/Mesa-VirGL) 120 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![logo](docs/img/logo.png "logo") 2 | 3 | English 4 |   |    5 | Русский 6 |   |    7 | Українська 8 |   |    9 | Português Brasileiro 10 |   |    11 | Polski 12 |   |    13 | 日本語 14 |   |    15 | 简体中文 16 |   |    17 | Bahasa Indonesia 18 | 19 | ## 20 | 21 | `Mobox` is a project designed to run windows x86 applications in [Termux](https://github.com/termux/termux-app) using [Box64](https://github.com/ptitSeb/box64) and [Wine](https://www.winehq.org/). 22 | 23 | # Installation 24 | 1. Install 25 | [Termux](https://f-droid.org/repo/com.termux_118.apk), 26 | [Termux-X11](https://raw.githubusercontent.com/olegos2/mobox/main/components/termux-x11.apk) and 27 | [Input Bridge](https://raw.githubusercontent.com/olegos2/mobox/main/components/inputbridge.apk). 28 | 29 | 2. Open termux and paste command 30 | 31 | ```bash 32 | curl -s -o ~/x https://raw.githubusercontent.com/olegos2/mobox/main/install && . ~/x 33 | ``` 34 | 35 | 3. Type `mobox` in termux. 36 | 37 | # Configuration 38 | ## Wine 39 | Wine can be installed or uninstalled in `Manage packages` menu. 40 | To select wine container, use option 4 in main menu. 41 | Mesa VirGL, Turnip, Wine Mono and Gecko can be installed in Wine Start Menu. 42 | ## Settings 43 | ### Box86 and Box64 dynarec variables 44 | There are two switchable menus to change dynarec variables in mobox settings menu. 45 | For more information about dynarec variables see [Box64 usage](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md) and [Box86 usage](https://github.com/ptitSeb/box86/blob/master/docs/USAGE.md) 46 | ### System settings 47 | To change wine locale, dxvk hud preset or Turnip settings, use `System settings` menu in mobox. 48 | Fallback resolution is used only when x11 resolution couldn't be detected automatically. 49 | If you have Snapdragon 8 Gen 1, 8+ Gen 1, 7+ Gen 2, enable the second option in `select a7xx flickering fix (TU_DEBUG)` in `System settings` menu. 50 | ### Root settings 51 | If you have root, then you can use OOM Adjuster which is useful if low memory killer stops termux. 52 | ## Termux-X11 preferences 53 | * `Display resolution mode` exact 54 | * `Display resolution` 1280x720 55 | * `Reseed Screen While Soft Keyboard is open` OFF 56 | * `Fullscreen on device display` ON 57 | * `Force Landscape orientation` ON 58 | * `Hide display cutout` ON 59 | * `Show additional keyboard` OFF 60 | * `Prefer scancodes when possible` ON 61 | ## Controls 62 | For touch controls Input Bridge app is required 63 | ## Uninstall 64 | To uninstall mobox, use `Backup and restore` menu. 65 | ## Debugging 66 | To enable logging - select option 2 in Mobox -> Settings -> Debug settings menu. Path to the log is /sdcard/mobox_log.txt 67 | 68 | ## Support status 69 | ### Android 70 | * `Android 10` or higher is recommended. 71 | ### Device 72 | * Most Android cellphones can run `mobox` and DirectX 9 games using Mesa VirGL. 73 | * Snapdragon device with Adreno 6xx or Adreno 725-740 is recommended to achieve best performance and compatibility with Turnip+DXVK. 74 | ### Root 75 | * Root is not required. 76 | 77 | ## Known issues 78 | * If termux app crashes when trying to enter mobox menu, then remove custom theme scripts: 79 | ```bash 80 | rm -rf $PREFIX/glibc/opt/termux-style 81 | ``` 82 | * Some devices may have prefix creation freeze issues when installing PhysX, in this case change settings in `Compatibility settings` menu 83 | * For SD845 device, disable dri3 in `Compatibility settings` menu 84 | 85 | ## Support mobox 86 | [boosty](https://boosty.to/olegos/donate) 87 | 88 | # 89 | Big thanks to Hugo, JeezDisReez, ptitSeb, MishkaKolos, Xanzo, Jotaros, Maxython and others for help. 90 | 91 | [MishkaKolos Discord](https://discord.gg/ZAQnZzbCXq) 92 | 93 | 94 | ## Third party applications 95 | 96 | [glibc-packages](https://github.com/termux-pacman/glibc-packages) 97 | 98 | [Box64](https://github.com/ptitSeb/box64) 99 | 100 | [Box86](https://github.com/ptitSeb/box86) 101 | 102 | [DXVK](https://github.com/doitsujin/dxvk) 103 | 104 | [DXVK-ASYNC](https://github.com/Sporif/dxvk-async) 105 | 106 | [DXVK-GPLASYNC](https://gitlab.com/Ph42oN/dxvk-gplasync) 107 | 108 | [VKD3D](https://github.com/lutris/vkd3d) 109 | 110 | [D8VK](https://github.com/AlpyneDreams/d8vk) 111 | 112 | [Termux-app](https://github.com/termux/termux-app) 113 | 114 | [Termux-x11](https://github.com/termux/termux-x11) 115 | 116 | [Wine](https://wiki.winehq.org/Licensing) 117 | 118 | [wine-ge-custom](https://github.com/GloriousEggroll/wine-ge-custom) 119 | 120 | [Mesa](https://docs.mesa3d.org/license.html) 121 | 122 | [mesa-zink-11.06.22](https://github.com/alexvorxx/mesa-zink-11.06.22) 123 | 124 | [Mesa-VirGL](https://github.com/alexvorxx/Mesa-VirGL) 125 | 126 | -------------------------------------------------------------------------------- /components/inputbridge.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olegos2/mobox/24e5611620efbb133e42d4b26191bf2ef7b21768/components/inputbridge.apk -------------------------------------------------------------------------------- /components/liblzma-static_5.6.0-1_aarch64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olegos2/mobox/24e5611620efbb133e42d4b26191bf2ef7b21768/components/liblzma-static_5.6.0-1_aarch64.deb -------------------------------------------------------------------------------- /components/liblzma_5.6.0-1_aarch64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olegos2/mobox/24e5611620efbb133e42d4b26191bf2ef7b21768/components/liblzma_5.6.0-1_aarch64.deb -------------------------------------------------------------------------------- /components/termux-x11-1.02.07-0-all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olegos2/mobox/24e5611620efbb133e42d4b26191bf2ef7b21768/components/termux-x11-1.02.07-0-all.deb -------------------------------------------------------------------------------- /components/termux-x11.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olegos2/mobox/24e5611620efbb133e42d4b26191bf2ef7b21768/components/termux-x11.apk -------------------------------------------------------------------------------- /components/xz-utils_5.6.0-1_aarch64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olegos2/mobox/24e5611620efbb133e42d4b26191bf2ef7b21768/components/xz-utils_5.6.0-1_aarch64.deb -------------------------------------------------------------------------------- /docs/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olegos2/mobox/24e5611620efbb133e42d4b26191bf2ef7b21768/docs/img/logo.png -------------------------------------------------------------------------------- /install: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | rm ~/x 4 | 5 | echo "Installing termux-am" 6 | pkg install termux-am -y &>/dev/null 7 | 8 | termux-setup-storage & sleep 4 &>/dev/null 9 | 10 | while true; do 11 | if [ -d ~/storage/shared ]; then 12 | break 13 | else 14 | echo "Storage permission denied" 15 | fi 16 | sleep 3 17 | done 18 | 19 | echo "Installing termux packages" 20 | apt-get clean 21 | apt-get update >/dev/null 2>&1 22 | apt-get -y --with-new-pkgs -o Dpkg::Options::="--force-confdef" upgrade >/dev/null 2>&1 23 | pkg install x11-repo -y &>/dev/null 24 | pkg install pulseaudio -y &>/dev/null 25 | pkg install xwayland -y &>/dev/null 26 | pkg install wget -y &>/dev/null 27 | pkg install tsu -y &>/dev/null 28 | pkg install root-repo -y &>/dev/null 29 | pkg install patchelf -y &>/dev/null 30 | pkg install p7zip -y &>/dev/null 31 | pkg install xorg-xrandr -y &>/dev/null 32 | pkg install ncurses-utils -y &>/dev/null 33 | pkg install hashdeep -y &>/dev/null 34 | pkg install termux-x11-nightly -y &>/dev/null 35 | 36 | if [ -e $PREFIX/glibc ]; then 37 | echo -n "Removing previous glibc. Continue? (Y/n) " 38 | read i 39 | if [ "$i" = "Y" ] || [ "$i" = "y" ]; then 40 | rm -rf $PREFIX/glibc 41 | else 42 | return 1 43 | fi 44 | fi 45 | 46 | INSTALL_WOW64=0 47 | 48 | echo "Select an option" 49 | echo "1) Install previous mobox with box86" 50 | echo "2) Install new mobox wow64 version" 51 | echo "" 52 | echo -n "Selected number: " 53 | read i 54 | case "$i" in 55 | 1) 56 | INSTALL_WOW64=0 57 | ;; 58 | 2) 59 | INSTALL_WOW64=1 60 | ;; 61 | *) 62 | return 1 63 | ;; 64 | esac 65 | 66 | echo "Installing mobox" 67 | 68 | function wget-git-q { 69 | wget -q --retry-connrefused --tries=0 "https://gitlab.com/api/v4/projects/$PROJECT_ID/repository/files/$1/raw?ref=main" -O $2 70 | return $? 71 | } 72 | 73 | echo "Updating package manager" 74 | mkdir -p $PREFIX/glibc/opt/package-manager/installed 75 | 76 | if [ "$INSTALL_WOW64" = "1" ]; then 77 | echo "PROJECT_ID=54240888">$PREFIX/glibc/opt/package-manager/token 78 | else 79 | echo "PROJECT_ID=52465323">$PREFIX/glibc/opt/package-manager/token 80 | fi 81 | 82 | . $PREFIX/glibc/opt/package-manager/token 83 | if ! wget-git-q "package-manager" "$PREFIX/glibc/opt/package-manager/package-manager"; then 84 | echo "Download failed" 85 | return 1 86 | fi 87 | . $PREFIX/glibc/opt/package-manager/package-manager 88 | sync-all 89 | 90 | if [ "$INSTALL_WOW64" = "1" ]; then 91 | sync-package wine-9.3-vanilla-wow64 92 | else 93 | sync-package wine-ge-custom-8-25 94 | fi 95 | 96 | ln -sf $PREFIX/glibc/opt/scripts/mobox $PREFIX/bin/mobox 97 | echo "To start - type \"mobox\"" 98 | -------------------------------------------------------------------------------- /patches/box64-setdirs.patch: -------------------------------------------------------------------------------- 1 | diff -uraN a/src/main.c b/src/main.c 2 | --- a/src/main.c 2023-12-13 19:55:15.000000000 +0500 3 | +++ b/src/main.c 2023-12-13 23:06:35.780622983 +0500 4 | @@ -1161,12 +1161,8 @@ 5 | // check BOX64_LD_LIBRARY_PATH and load it 6 | LoadEnvPath(&context->box64_ld_lib, ".:lib:lib64:x86_64:bin64:libs64", "BOX64_LD_LIBRARY_PATH"); 7 | #ifndef TERMUX 8 | - if(FileExist("/lib/x86_64-linux-gnu", 0)) 9 | - AddPath("/lib/x86_64-linux-gnu", &context->box64_ld_lib, 1); 10 | - if(FileExist("/usr/lib/x86_64-linux-gnu", 0)) 11 | - AddPath("/usr/lib/x86_64-linux-gnu", &context->box64_ld_lib, 1); 12 | - if(FileExist("/usr/x86_64-linux-gnu/lib", 0)) 13 | - AddPath("/usr/x86_64-linux-gnu/lib", &context->box64_ld_lib, 1); 14 | + if(FileExist("/data/data/com.termux/files/usr/glibc/lib/x86_64-linux-gnu", 0)) 15 | + AddPath("/data/data/com.termux/files/usr/glibc/lib/x86_64-linux-gnu", &context->box64_ld_lib, 1); 16 | #else 17 | //TODO: Add Termux Library Path - Lily 18 | if(FileExist("/data/data/com.termux/files/usr/lib/x86_64-linux-gnu", 0)) 19 | @@ -1426,8 +1422,8 @@ 20 | static void load_rcfiles() 21 | { 22 | #ifndef TERMUX 23 | - if(FileExist("/etc/box64.box64rc", IS_FILE)) 24 | - LoadRCFile("/etc/box64.box64rc"); 25 | + if(FileExist("/data/data/com.termux/files/usr/glibc/etc/box64.box64rc", IS_FILE)) 26 | + LoadRCFile("/data/data/com.termux/files/usr/glibc/etc/box64.box64rc"); 27 | #else 28 | if(FileExist("/data/data/com.termux/files/usr/etc/box64.box64rc", IS_FILE)) 29 | LoadRCFile("/data/data/com.termux/files/usr/etc/box64.box64rc"); 30 | diff -uraN a/src/tools/fileutils.c b/src/tools/fileutils.c 31 | --- a/src/tools/fileutils.c 2023-12-13 19:55:15.000000000 +0500 32 | +++ b/src/tools/fileutils.c 2023-12-13 23:16:37.690682952 +0500 33 | @@ -127,11 +127,8 @@ 34 | if ((tmpdir = getenv ("TMPDIR")) != NULL) return tmpdir; 35 | if ((tmpdir = getenv ("TEMP")) != NULL) return tmpdir; 36 | if ((tmpdir = getenv ("TMP")) != NULL) return tmpdir; 37 | - if(FileExist("/tmp", 0)) return "/tmp"; 38 | - if(FileExist("/var/tmp", 0)) return "/var/tmp"; 39 | - if(FileExist("/usr/tmp", 0)) return "/usr/tmp"; 40 | 41 | - return "/tmp"; // meh... 42 | + return "/data/data/com.termux/files/usr/tmp"; // meh... 43 | } 44 | 45 | char* LowerCase(const char* s) { 46 | -------------------------------------------------------------------------------- /patches/box86-setdirs.patch: -------------------------------------------------------------------------------- 1 | diff -uraN a/src/main.c b/src/main.c 2 | --- a/src/main.c 2023-12-13 23:20:03.224036762 +0500 3 | +++ b/src/main.c 2023-12-13 23:24:41.650731169 +0500 4 | @@ -958,20 +958,8 @@ 5 | //TODO: add relative path to box86 location 6 | #endif 7 | #ifndef TERMUX 8 | - if(FileExist("/lib/box86", 0)) 9 | - AddPath("/lib/box86", &context->box86_ld_lib, 1); 10 | - if(FileExist("/usr/lib/box86", 0)) 11 | - AddPath("/usr/lib/box86", &context->box86_ld_lib, 1); 12 | - if(FileExist("/lib/i386-linux-gnu", 0)) 13 | - AddPath("/lib/i386-linux-gnu", &context->box86_ld_lib, 1); 14 | - if(FileExist("/usr/lib/i386-linux-gnu", 0)) 15 | - AddPath("/usr/lib/i386-linux-gnu", &context->box86_ld_lib, 1); 16 | - if(FileExist("/lib/i686-pc-linux-gnu", 0)) 17 | - AddPath("/lib/i686-pc-linux-gnu", &context->box86_ld_lib, 1); 18 | - if(FileExist("/usr/lib/i686-pc-linux-gnu", 0)) 19 | - AddPath("/usr/lib/i686-pc-linux-gnu", &context->box86_ld_lib, 1); 20 | - if(FileExist("/usr/lib32", 0)) 21 | - AddPath("/usr/lib32", &context->box86_ld_lib, 1); 22 | + if(FileExist("/data/data/com.termux/files/usr/glibc/lib32/i386-linux-gnu", 0)) 23 | + AddPath("/data/data/com.termux/files/usr/glibc/lib32/i386-linux-gnu", &context->box86_ld_lib, 1); 24 | #else 25 | if(FileExist("/data/data/com.termux/files/usr/lib/i386-linux-gnu", 0)) 26 | AddPath("/data/data/com.termux/files/usr/lib/i386-linux-gnu", &context->box86_ld_lib, 1); 27 | @@ -1188,8 +1176,8 @@ 28 | static void load_rcfiles() 29 | { 30 | #ifndef TERMUX 31 | - if(FileExist("/etc/box86.box86rc", IS_FILE)) 32 | - LoadRCFile("/etc/box86.box86rc"); 33 | + if(FileExist("/data/data/com.termux/files/usr/glibc/etc/box86.box86rc", IS_FILE)) 34 | + LoadRCFile("/data/data/com.termux/files/usr/glibc/etc/box86.box86rc"); 35 | #else 36 | if(FileExist("/data/data/com.termux/files/usr/etc/box86.box86rc", IS_FILE)) 37 | LoadRCFile("/data/data/com.termux/files/usr/etc/box86.box86rc"); 38 | diff -uraN a/src/tools/fileutils.c b/src/tools/fileutils.c 39 | --- a/src/tools/fileutils.c 2023-12-13 23:20:03.224036762 +0500 40 | +++ b/src/tools/fileutils.c 2023-12-13 23:25:42.957403943 +0500 41 | @@ -126,11 +126,8 @@ 42 | if ((tmpdir = getenv ("TMPDIR")) != NULL) return tmpdir; 43 | if ((tmpdir = getenv ("TEMP")) != NULL) return tmpdir; 44 | if ((tmpdir = getenv ("TMP")) != NULL) return tmpdir; 45 | - if(FileExist("/tmp", 0)) return "/tmp"; 46 | - if(FileExist("/var/tmp", 0)) return "/var/tmp"; 47 | - if(FileExist("/usr/tmp", 0)) return "/usr/tmp"; 48 | 49 | - return "/tmp"; // meh... 50 | + return "/data/data/com.termux/files/usr/tmp"; // meh... 51 | } 52 | 53 | char* LowerCase(const char* s) { 54 | -------------------------------------------------------------------------------- /patches/fix-address-space.diff: -------------------------------------------------------------------------------- 1 | --- a/loader/preloader.c 2023-10-14 05:00:12.000000000 +0800 2 | +++ b/loader/preloader.c.new 2023-10-24 19:04:06.351772428 +0800 3 | @@ -1447,7 +1447,7 @@ 4 | { 5 | /* don't warn for low 64k */ 6 | if (preload_info[i].addr >= (void *)0x10000 7 | -#ifdef __aarch64__ 8 | +#if 1 9 | && preload_info[i].addr < (void *)0x7fffffffff /* ARM64 address space might end here*/ 10 | #endif 11 | ) 12 | --- a/dlls/ntdll/unix/virtual.c.orig 2023-10-14 05:00:12.000000000 +0800 13 | +++ b/dlls/ntdll/unix/virtual.c 2023-10-24 21:55:03.330120144 +0800 14 | @@ -166,14 +166,14 @@ 15 | #ifdef __aarch64__ 16 | static void *address_space_limit = (void *)0xffffffff0000; /* top of the total available address space */ 17 | #elif defined(_WIN64) 18 | -static void *address_space_limit = (void *)0x7fffffff0000; 19 | +static void *address_space_limit = (void *)0x7fffff0000; 20 | #else 21 | static void *address_space_limit = (void *)0xc0000000; 22 | #endif 23 | 24 | #ifdef _WIN64 25 | -static void *user_space_limit = (void *)0x7fffffff0000; /* top of the user address space */ 26 | -static void *working_set_limit = (void *)0x7fffffff0000; /* top of the current working set */ 27 | +static void *user_space_limit = (void *)0x7fffff0000; /* top of the user address space */ 28 | +static void *working_set_limit = (void *)0x7fffff0000; /* top of the current working set */ 29 | #else 30 | static void *user_space_limit = (void *)0x7fff0000; 31 | static void *working_set_limit = (void *)0x7fff0000; 32 | @@ -557,7 +557,7 @@ 33 | /* if we don't have a preloader, try to reserve the space now */ 34 | reserve_area( (void *)0x000000010000, (void *)0x000068000000 ); 35 | reserve_area( (void *)0x00007f000000, (void *)0x00007fff0000 ); 36 | - reserve_area( (void *)0x7ffffe000000, (void *)0x7fffffff0000 ); 37 | + reserve_area( (void *)0x7ffe000000, (void *)0x7fffff0000 ); 38 | 39 | #endif 40 | } 41 | -------------------------------------------------------------------------------- /patches/ge-8-25.patch: -------------------------------------------------------------------------------- 1 | diff -uraN wine-src/dlls/ntdll/unix/esync.c b/dlls/ntdll/unix/esync.c 2 | --- wine-src/dlls/ntdll/unix/esync.c 2024-01-15 04:26:12.000000000 -0500 3 | +++ b/dlls/ntdll/unix/esync.c 2024-01-15 06:27:30.967565423 -0500 4 | @@ -97,7 +97,8 @@ 5 | }; 6 | C_ASSERT(sizeof(struct event) == 8); 7 | 8 | -static char shm_name[29]; 9 | +static char shm_name[200]; 10 | +static int termux_esync; 11 | static int shm_fd; 12 | static void **shm_addrs; 13 | static int shm_addrs_size; /* length of the allocated shm_addrs array */ 14 | @@ -1332,13 +1332,25 @@ 15 | 16 | if (stat( config_dir, &st ) == -1) 17 | ERR("Cannot stat %s\n", config_dir); 18 | - 19 | - if (st.st_ino != (unsigned long)st.st_ino) 20 | - sprintf( shm_name, "/wine-%lx%08lx-esync", (unsigned long)((unsigned long long)st.st_ino >> 32), (unsigned long)st.st_ino ); 21 | + 22 | + termux_esync = getenv("WINEESYNC_TERMUX") && atoi(getenv("WINEESYNC_TERMUX")); 23 | + 24 | + if (termux_esync) 25 | + { 26 | + if (st.st_ino != (unsigned long)st.st_ino) 27 | + sprintf( shm_name, "/data/data/com.termux/files/usr/tmp/wine-%lx%08lx-esync", (unsigned long)((unsigned long long)st.st_ino >> 32), (unsigned long)st.st_ino ); 28 | + else 29 | + sprintf( shm_name, "/data/data/com.termux/files/usr/tmp/wine-%lx-esync", (unsigned long)st.st_ino ); 30 | + } 31 | else 32 | - sprintf( shm_name, "/wine-%lx-esync", (unsigned long)st.st_ino ); 33 | + { 34 | + if (st.st_ino != (unsigned long)st.st_ino) 35 | + sprintf( shm_name, "/wine-%lx%08lx-esync", (unsigned long)((unsigned long long)st.st_ino >> 32), (unsigned long)st.st_ino ); 36 | + else 37 | + sprintf( shm_name, "/wine-%lx-esync", (unsigned long)st.st_ino ); 38 | + } 39 | 40 | - if ((shm_fd = shm_open( shm_name, O_RDWR, 0644 )) == -1) 41 | + if ((termux_esync && (shm_fd = open( shm_name, O_RDWR, 0644 )) == -1) || (!termux_esync && (shm_fd = shm_open( shm_name, O_RDWR, 0644 )) == -1)) 42 | { 43 | /* probably the server isn't running with WINEESYNC, tell the user and bail */ 44 | if (errno == ENOENT) 45 | diff -uraN wine-src/dlls/ntdll/unix/server.c b/dlls/ntdll/unix/server.c 46 | --- wine-src/dlls/ntdll/unix/server.c 2024-01-15 04:26:12.000000000 -0500 47 | +++ b/dlls/ntdll/unix/server.c 2024-01-15 05:58:50.272054376 -0500 48 | @@ -1175,9 +1175,9 @@ 49 | strcpy( dir, config_dir ); 50 | strcat( dir, "/.wineserver/server-" ); 51 | #else 52 | - len += sizeof("/tmp/.wine-") + 12; 53 | + len += sizeof("/data/data/com.termux/files/usr/tmp/.wine-") + 12; 54 | dir = malloc( len ); 55 | - sprintf( dir, "/tmp/.wine-%u/server-", getuid() ); 56 | + sprintf( dir, "/data/data/com.termux/files/usr/tmp/.wine-%u/server-", getuid() ); 57 | #endif 58 | p = dir + strlen( dir ); 59 | if (dev != (unsigned long)dev) 60 | @@ -1253,7 +1253,7 @@ 61 | mkdir( "drive_c", 0777 ); 62 | set_case_insensitive( "drive_c" ); 63 | symlink( "../drive_c", "dosdevices/c:" ); 64 | - symlink( "/", "dosdevices/z:" ); 65 | + symlink( "/data/data/com.termux/files", "dosdevices/z:" ); 66 | } 67 | else if (errno != EEXIST) fatal_perror( "cannot create %s/dosdevices", config_dir ); 68 | 69 | diff -uraN wine-src/programs/winebrowser/main.c b/programs/winebrowser/main.c 70 | --- wine-src/programs/winebrowser/main.c 2024-01-15 04:26:14.000000000 -0500 71 | +++ b/programs/winebrowser/main.c 2024-01-15 05:58:50.272054376 -0500 72 | @@ -116,7 +116,7 @@ 73 | { 74 | static const WCHAR defaultbrowsers[] = 75 | L"xdg-open\0" 76 | - "/usr/bin/open\0" 77 | + "/data/data/com.termux/files/usr/glibc/bin/open\0" 78 | "firefox\0" 79 | "konqueror\0" 80 | "mozilla\0" 81 | @@ -141,7 +141,7 @@ 82 | static int open_mailto_url( const WCHAR *url ) 83 | { 84 | static const WCHAR defaultmailers[] = 85 | - L"/usr/bin/open\0" 86 | + L"/data/data/com.termux/files/usr/glibc/bin/open\0" 87 | "xdg-email\0" 88 | "mozilla-thunderbird\0" 89 | "thunderbird\0" 90 | diff -uraN wine-src/programs/winemenubuilder/winemenubuilder.c b/programs/winemenubuilder/winemenubuilder.c 91 | --- wine-src/programs/winemenubuilder/winemenubuilder.c 2024-01-15 04:26:14.000000000 -0500 92 | +++ b/programs/winemenubuilder/winemenubuilder.c 2024-01-15 05:58:50.272054376 -0500 93 | @@ -1623,7 +1623,7 @@ 94 | if (_wgetenv( L"XDG_DATA_DIRS" )) 95 | dirs = xwcsdup( _wgetenv( L"XDG_DATA_DIRS" )); 96 | else 97 | - dirs = xwcsdup( L"/usr/local/share/:/usr/share/" ); 98 | + dirs = xwcsdup( L"/data/data/com.termux/files/usr/glibc/local/share/:/data/data/com.termux/files/usr/glibc/share/" ); 99 | 100 | ret = add_mimes(xdg_data_dir, mime_types); 101 | if (ret) 102 | diff -uraN wine-src/server/esync.c b/server/esync.c 103 | --- wine-src/server/esync.c 2024-01-15 04:26:14.000000000 -0500 104 | +++ b/server/esync.c 2024-01-15 06:27:55.759726857 -0500 105 | @@ -59,17 +59,18 @@ 106 | #endif 107 | } 108 | 109 | -static char shm_name[29]; 110 | +static char shm_name[200]; 111 | static int shm_fd; 112 | static off_t shm_size; 113 | static void **shm_addrs; 114 | static int shm_addrs_size; /* length of the allocated shm_addrs array */ 115 | static long pagesize; 116 | +static int termux_esync; 117 | 118 | static void shm_cleanup(void) 119 | { 120 | close( shm_fd ); 121 | - if (shm_unlink( shm_name ) == -1) 122 | + if ((termux_esync && unlink( shm_name ) == -1) || (!termux_esync && shm_unlink( shm_name ) == -1)) 123 | perror( "shm_unlink" ); 124 | } 125 | 126 | @@ -79,15 +80,27 @@ 127 | 128 | if (fstat( config_dir_fd, &st ) == -1) 129 | fatal_error( "cannot stat config dir\n" ); 130 | + 131 | + termux_esync = getenv("WINEESYNC_TERMUX") && atoi(getenv("WINEESYNC_TERMUX")); 132 | 133 | - if (st.st_ino != (unsigned long)st.st_ino) 134 | - sprintf( shm_name, "/wine-%lx%08lx-esync", (unsigned long)((unsigned long long)st.st_ino >> 32), (unsigned long)st.st_ino ); 135 | + if (termux_esync) 136 | + { 137 | + if (st.st_ino != (unsigned long)st.st_ino) 138 | + sprintf( shm_name, "/data/data/com.termux/files/usr/tmp/wine-%lx%08lx-esync", (unsigned long)((unsigned long long)st.st_ino >> 32), (unsigned long)st.st_ino ); 139 | + else 140 | + sprintf( shm_name, "/data/data/com.termux/files/usr/tmp/wine-%lx-esync", (unsigned long)st.st_ino ); 141 | + unlink( shm_name ); 142 | + shm_fd = open( shm_name, O_RDWR | O_CREAT | O_EXCL, 0644 ); 143 | + } 144 | else 145 | - sprintf( shm_name, "/wine-%lx-esync", (unsigned long)st.st_ino ); 146 | - 147 | - shm_unlink( shm_name ); 148 | - 149 | - shm_fd = shm_open( shm_name, O_RDWR | O_CREAT | O_EXCL, 0644 ); 150 | + { 151 | + if (st.st_ino != (unsigned long)st.st_ino) 152 | + sprintf( shm_name, "/wine-%lx%08lx-esync", (unsigned long)((unsigned long long)st.st_ino >> 32), (unsigned long)st.st_ino ); 153 | + else 154 | + sprintf( shm_name, "/wine-%lx-esync", (unsigned long)st.st_ino ); 155 | + shm_unlink( shm_name ); 156 | + shm_fd = shm_open( shm_name, O_RDWR | O_CREAT | O_EXCL, 0644 ); 157 | + } 158 | if (shm_fd == -1) 159 | perror( "shm_open" ); 160 | 161 | diff -uraN wine-src/server/request.c b/server/request.c 162 | --- wine-src/server/request.c 2024-01-15 04:26:14.000000000 -0500 163 | +++ b/server/request.c 2024-01-15 05:58:50.272054376 -0500 164 | @@ -665,9 +665,9 @@ 165 | strcpy( server_dir, config_dir ); 166 | strcat( server_dir, "/.wineserver" ); 167 | #else 168 | - len += sizeof("/tmp/.wine-") + 12; 169 | + len += sizeof("/data/data/com.termux/files/usr/tmp/.wine-") + 12; 170 | if (!(server_dir = malloc( len ))) fatal_error( "out of memory\n" ); 171 | - sprintf( server_dir, "/tmp/.wine-%u", getuid() ); 172 | + sprintf( server_dir, "/data/data/com.termux/files/usr/tmp/.wine-%u", getuid() ); 173 | #endif 174 | create_dir( server_dir, &st2 ); 175 | 176 | diff -uraN wine-src/server/unicode.c b/server/unicode.c 177 | --- wine-src/server/unicode.c 2024-01-15 04:26:14.000000000 -0500 178 | +++ b/server/unicode.c 2024-01-15 05:58:50.272054376 -0500 179 | @@ -278,7 +278,7 @@ 180 | /* load the case mapping table */ 181 | struct fd *load_intl_file(void) 182 | { 183 | - static const char *nls_dirs[] = { NULL, NLSDIR, "/usr/local/share/wine/nls", "/usr/share/wine/nls" }; 184 | + static const char *nls_dirs[] = { NULL, NLSDIR, "/data/data/com.termux/files/usr/glibc/local/share/wine/nls", "/data/data/com.termux/files/usr/glibc/share/wine/nls" }; 185 | static const WCHAR nt_pathW[] = {'C',':','\\','w','i','n','d','o','w','s','\\', 186 | 's','y','s','t','e','m','3','2','\\','l','_','i','n','t','l','.','n','l','s',0}; 187 | static const struct unicode_str nt_name = { nt_pathW, sizeof(nt_pathW) }; 188 | --------------------------------------------------------------------------------