- Как пользоваться wine 3.0 Android
- Версии Wine 3.0 для Android
- Установка Wine Android
- Как пользоваться Wine на Android
- 1. Запуск wine
- 2. Настройка окружения wine
- 3. Запуск нативных приложений wine
- 4. Запуск сторонних приложений
- Выводы
- ARM support
- Status
- Todo
- How to help
- Compiling
- Running Windows RT Applications
- Running Windows CE Applications
- Running Windows/x86 Applications
- Analyzed/Known Test Failures
- Wine and Valgrind
- See also
- ARM64 support
- Status
- Todo
- ABI Problems
- How to help
- Compiling
- Running Windows arm64 Applications
Как пользоваться wine 3.0 Android
Wine — это программная прослойка, которая позволяет запускать Windows приложения в Linux. Программа реализует набор библиотек, которые транслируют вызовы Windows API в системные вызовы ядра Linux и других программ. Таким образом, вы получаете возможность запуска программ без эмуляции. Как вы знаете, недавно вышла версия Wine 3.0 для Android, целью которой было позволить запускать Windows программы в Android, также как и это делается в Linux.
Я протестировал это приложение на своем ARM планшете и в этой статье поделюсь опытом его использования. Мы рассмотрим как пользоваться wine 3.0 android, как установить это приложение и на что вообще оно способно.
Версии Wine 3.0 для Android
Раньше уже существовало несколько проектов, которые позволяли запускать Windows программы в Android, это, например, Crossover для x86 устройств и Exagear для ARM. Первая позволяла запускать WIndows программы в x86 на Android без эмуляции, а вторая — эмулировать х86 на ARM. Новая версия wine собирается занять новую нишу. Сейчас она существует в версиях для двух архитектур:
- wine 3.0 x86 — версия для архитектуры x86, в основном, для процессоров Intel, позволяет запускать почти все привычные х86 приложения, которые работали в обычном Wine в Linux, не поддерживается только 3D графика. Возможно, разработчики исправят это в скором времени.
- wine 3.0 arm — версия для архитектур ARM. Здесь все намного сложнее. Во-первых, стабильность программы оставляет желать лучшего, на многих устройствах она попросту не запускается, например, на OnePlus 3T мы можем видеть только серый экран. Второе. Wine — это не эмулятор, а поэтому вы можете запускать в нем только приложения, собранные для ARM. То есть Windows RT, обычные приложения win32 тут не заработают.
Еще одно замечание, которое нужно отметить — для запуска любой из версий нужна версия Android 5.0 или выше, права рут необязательны.
Установка Wine Android
Для того чтобы установить программу, вам необходимо скачать установщик из официального сайта winehq. Выберите версию для вашей архитектуры. На данный момент самая новая версия программы wine 3.1:
Чтобы установить программу, нужно включить «Недостоверные источники» в настройках системы:
Далее, откройте загруженный APK и дождитесь завершения установки. Думаете это все? Нет. Стандартная клавиатура в wine работать не будет, поэтому нужно установить Hackers Keyboard. Найдите ее в PlayMarket и установите:
Вы можете сразу открыть клавиатуру из плеймаркета, в приложении нажмите «Enalbe Keyboard»:
Затем выберите «Input languages» и отметьте русский, английский и другие языки, которые вам нужны:
Далее зайдите в настройки клавиатуры — «Общие настройки» — «Язык и ввод» — «Экранная клавиатура», выберите «Hackers keyboard».
Затем найдите «Use permanent notification» и установите галочку. Это нужно чтобы вы могли открыть клавиатуру из шторки. Также лучше запустить какое-либо приложение где нужно вводить текст и активировать эту клавиатуру. Теперь вы знаете как установить wine 3.0 на андроид.
Как пользоваться Wine на Android
1. Запуск wine
Теперь мы готовы к запуску приложения. Найдите его ярлык в главном меню и запустите. Сначала будут распакованы файлы и создано рабочее окружение:
Затем появится рабочий стол:
2. Настройка окружения wine
Программа Wine 3.0 запущена. Мне здесь не нравиться очень мелкий шрифт, давайте его увеличим до более удобного. Опустите шторку Android и откройте клавиатуру, тапнув по уведомлению «Show Hackers Keyboard»:
Затем наберите в терминале winecfg и нажмите Enter:
Чтобы убрать клавиатуру, нажмите кнопку «Назад», затем откройте вкладку «Графика»:
Здесь с помощью пункта «Расширение экрана» выберите удобный шрифт:
Затем опять вызовите клавиатуру и нажмите «Enter». Размер шрифта в терминале можно изменить кликнув по значку окна и открыв «Свойства»:
Тут на вкладке «Шрифт» можно выбрать тот шрифт, который вы хотите:
Осталось сохранить изменения. Чтобы изменить размер окна кликните по его значку и выберите «Размер»:
Затем можно перетягивать окно за его угол или сторону увеличивая или уменьшая размер:
Теперь пользоваться wine 3.0 android вполне возможно. Перейдем к запуску приложений.
3. Запуск нативных приложений wine
С нативными приложениями здесь все очень даже хорошо. Вы можете запустить такие приложения, взятые из Windows и поставляемые вместе с окружением:
И несколько других. Все приложения находятся на диске С:, доступном из программы. Откройте меню «Пуск»:
Выберите «Запустить», а затем «Обзор»:
Здесь выберите диск С: и программу, которую хотите запустить, например, из папки Program FIles или windows/system32. Например, мне удалось запустить IE и wordpad:
А вот при попытке запуска диспетчера задач на ARM возникает ошибка.
4. Запуск сторонних приложений
Здесь все очень плохо. По отзывам пользователей могу судить, что x86 версия программы работает хорошо, и запускает большинство программ, не требующих больших DirectX. Но ARM версия, которую тестировал я ведет себя ужасно.
Приложения WIndows RT можно найти в этой теме XDA Developers. Вы можете положить приложение во внутреннюю память устройства или на внешнюю флешку, а затем открыть через диск Z или / в программе:
Вот только на моем устройстве ни одна протетсированная программа не запустилась. Я пытался запустить FIleZilla, Paint, WinMerge, FDM, Vim, Keepass, TightVNC. Некоторые выдают непонятную ошибку:
А иные, например, FileZilla, вообще ничего не выдают и не запускаются. Но рассчитывать на большее вряд-ли было нужно, поскольку версия программы для ARM существует несколько месяцев и ничего нет удивительно в том, что она еще не работает как нужно. В будущем разработчики исправят ошибки и добавят больше приложений.
Выводы
В этой статье мы рассмотрели как пользоваться Wine 3.0 android. Как видите, программа выглядит очень интересно, особенно на архитектуре x86. Если вы уже тестировали wine 3.0 для андроид на архитектуре ARM и у вас получилось что-либо запустить, поделитесь в комментариях, также, думаю, многим будет интересно как работает версия для x86.
Этот парень таки смог запустить одно стороннее приложение на ARM — vcreditx86:
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
ARM support
Windows apps are mostly compiled for x86 and they won’t run on ARM with bare Wine, likewise ARM applications won’t run on x86(_64) with bare Wine, so this is not our motivation.
The original Motivation was to be able to run winelib-apps on ARM, that even was before it got public that win8 will run on ARM devices. Meanwhile we support these new ARM PEs for win8!
Status
- Yes, It works! (TM)
- Running win8 ARM PEs also works.
- Already ported Putty to ARM as winelib application.
- First patch was September 18. 2009, final patchset sent September 18. 2010 and they got in Wine-1.3.4
- Wine on ARM already gets packaged by Debian (since 1.7.35), Fedora, Maemo and openSUSE.
- Good debugger/disassembler support.
- Relay tracing.
- Relocation.
- Linux Kernel patched upstream for running Windows RT applications see
Bug 31322
Todo
How to help
- Fix compiler warnings.
- Run winetest and report your results.
- Fix test failures or analyse them, see below.
- Report bugs with winelib or Windows RT applications.
- Write tests for missing functions.
Compiling
Toolchains: Every toolchain with Thumb support should work as we are independent from the crti.o mode since wine-1.5.8
Compiling on the ARM Device is recommended:
Anyway here is a crosscompiling example:
../configure --host=arm-linux-gnueabihf host_alias=arm-linux-gnueabihf --with-wine-tools=../path/to/your/native/wine/build && make
Maybe you also should append something like:
CFLAGS="-mcpu=yourcpu -g -O2" LDFLAGS="-mcpu=yourcpu"
Fixme/Todo: Compiling inside a chroot
Running Windows RT Applications
You can find a list of such ported applications at forum.xda-developers.com. To run them you’ll need a recent Wine and a Linux Kernel with the tpidrurw patch, it’s included since Kernel 3.11-rc1. When you’re unsure if the Kernel you are using supports it, you can clone, make and run tpidrurw-test, it’ll tell you if your Kernel is suitable.
Running Windows CE Applications
That’s still pre-alpha/proof-of-concept and not part of official Wine, don’t expect any success. WineCE can be found at github.
Running Windows/x86 Applications
Analyzed/Known Test Failures
- d3dx9_36:mesh
- Crashes, https://bugs.winehq.org/show_bug.cgi?id=43945
- no wine-mono for arm, https://bugs.winehq.org/show_bug.cgi?id=43937
- no wine-gecko for arm, https://bugs.winehq.org/show_bug.cgi?id=43938
- https://bugs.winehq.org/show_bug.cgi?id=43944
- softfloat vs. hardfloat
- https://bugs.winehq.org/show_bug.cgi?id=43960
- per dissonant compile time checks the testsuite expects the x86 value for cbWndExtra, whereas the code uses the pointer size
Wine and Valgrind
Currently a work in progress — Austin English
See also
My and Vincents slides can be found here: FOSDEM2013
For Windows RT recompiled applications check: at xda-developers
There was some experience using Qemu to run the WINE x86 binary under Zaurus’s ARM Debian: http://www.oesf.org/forum/index.php?showtopic=14829
Android running x86 wine and solitaire (by using ubuntu hack and binfmt) : http://forum.xda-developers.com/showthread.php?t=1258506
Winulator (Android APP) claims it is not wine-based, but does somewhat the same a Wine x86_2_ARM would do: http://docs.winulator.com/faq
win86emu is Bochs and DOSBox based and run x86 Applications on Windows RT
Limbo is an Intel x86 PC Emulator for Android based on QEMU,also uses code from android-vnc-viewer and glib among others: https://code.google.com/p/limbo-android/
Eltechs’ ExaGear RPG ([1]) allows x86 applications to run on Android using wine.
ARM64 support
After my ARM port ARM64 (AArch64) was a logical step and due to my experience with ARM it only took days instead of month.
Again we are faster than the other win32 implementation :), therefore it’s a pure Winelib port.
Status
- Yes, It works! (TM)
- Patchset was committed on January 16. 2013 and is available since Wine-1.5.22
- Backtraces work
- WOW64 setup works now
- Stubs
- relay tracing
Todo
ABI Problems
As of now, we found two ABI incompatibilities:
How to help
- Analyze and/or fix (most likely in GCC) the variable arguments problem.
- Report bugs with winelib or Windows applications.
Compiling
In the likely case that you don’t own ARM64 Hardware at the moment, have a look at Linaro Engineering: ARMv8 activity/downloads,
there you get a cross-toolchain, a bootable system and instruction on how to get the Foundation Model from ARM. (qemu should also work, but i haven’t had much success with it yet) For the start run configure like:
../configure --host=aarch64-linux-gnu host_alias=aarch64-linux-gnu --with-wine-tools=../yourotherbuilddir/ --without-freetype --without-x --enable-win64
Running Windows arm64 Applications
The SDK for win10 includes some PEs for arm64, have a look at
Bug 38714.You may run into ABI problems described above.