metalnikovg.ru
MetalnikovG.ru

Waydroid - запуск Android приложений на Linux

Banner.png
Опубликовано
//
4 мин. чтения

Введение

Waydroid - это контейнер для загрузки полноценной системы Android OS на системах GNU/Linux, работающих под управлением настольных сред на базе Wayland.

Waydroid переносит все ваши любимые приложения прямо на ваш рабочий стол, работая бок о бок с вашими приложениями Linux. Android внутри контейнера имеет прямой доступ к необходимому оборудованию. Среда выполнения Android поставляется с минимальным настроенным образом системы Android на основеLineageOS. В настоящее время используемый образ основан на Android 11.

Установка

Для Fedora:

sudo dnf install waydroid

Для Ubuntu и Debian:

sudo apt install curl ca-certificates -y
curl https://repo.waydro.id | sudo bash
sudo apt install waydroid -y

Первая команда установит необходимые программы, вторая добавит репозиторий Waydroid, третья установит сам Waydroid.

После установки выполните:

sudo systemctl start waydroid-container
sudo systemctl enable waydroid-container

Первая команда запустит сервис Waydroid, а вторая команда включает автозапуск сервиса при загрузке системы (её нужно выполнить только один раз).

Запустите Waydroid из меню приложений. Когда спросит ссылки на образы Android, вставьте следующие:

  • System OTA: https://ota.waydro.id/system

  • Vendor OTA: https://ota.waydro.id/vendor

После запуска у вас откроется Android 11 с минимальным набором приложений. В уведомлениях вы увидите ошибку, что устройство не сертифицировано.

В следующих шагах мы исправим эту ошибку.

Добавление поддержки архитектуры ARM и сервисов Google

Из коробки Waydroid поддерживает только x86 приложения. Это связано с тем, что Waydroid - это контейнер (по типу Docker, LXC). Для поддержки ARM нужно установить транслятор. Также нужно установить сервисы Google.

Все это нам поможет осуществить данный скрипт. Для его запуска должны быть установлены Python и lzip. Устанавливаются они командами:

sudo apt install python && sudo apt install lzip  # для Ubuntu, Debian
sudo dnf install python && sudo dnf install lzip  # для Fedora

Установка и запуск waydroid_script:

#скачивание скрипта
git clone https://github.com/casualsnek/waydroid_script
#переход в папку со скриптом
cd waydroid_script
#создание виртуального окружения в папке venv, чтобы не замусоривать основную систему
python3 -m venv venv
#установка необходимых модулей
venv/bin/pip install -r requirements.txt
#запуск скрипта
sudo venv/bin/python3 main.py

Так как Waydroid использует Android 11. Выбирайте его нажав Enter.

Далее выбираем Install.

На следующем экране выберите нужные пункты нажатием на пробел.

Выбираем пункты:

  • gapps (сервисы Google)
  • widevine (DRM для медиаконтента)
  • libndk (для процессоров от AMD) или libhoudini (для процессоров от Intel, или если возникнут проблемы с libndk, всегда можно переустановить).
  • smartdock (для использования многооконного режима)

TIP

В целом, libhoudini прекрасно работает и на AMD процессорах

NOTE

smartdock - это лаунчер, который добавляет десктопный интерфейс (меню приложений, панель задач и уведомления снизу). Посмотреть на него вы можете здесь.

WARNING

Так как скрипт давно не обновлялся, для установки smartdock его нужно немного поправить.

Перейдите в /waydroid_script/stuff/, откройте файл smartdock.py найдите ссылку в 7 строке и отредактируйте её заменив /repo/ на /archive/.

smartdock.py
import os
import shutil
from stuff.general import General

class Smartdock(General):
    id = "smartdock"
    dl_link = "https://f-droid.org/repo/cu.axel.smartdock_1100.apk"
    partition = "system"
    dl_file_name = "smartdock.apk"
    act_md5 = "f4087d34218eac902a5cca98ee03d215"
    apply_props = { "qemu.hw.mainkeys" : "1" }
    skip_extract = True
    permissions = """<?xml version="1.0" encoding="utf-8"?>

После выбора нужных пунктов нажмите Enter.

Регистрация устройства

Теперь зарегистрируем наше устройство в Google, чтобы работал Google Play. Для этого выполняем:

sudo venv/bin/python3 main.py certified

NOTE

Waydroid должен быть запущен. Эта команда выдаст ID и URL, по которому нужно перейти, и в текстовом поле ввести этот ID.

Если всё сделано правильно - сервисы Google перестанут сыпать ошибки.

Активация мультиоконного режима

Для этого в терминале выполните следующую команду:

waydroid prop set persist.waydroid.multi_windows true

TIP

Для деактивации режима, вместо true введите false.

Так же можно изменить разрешение окна Waydroid согласно документации.

Затем перезапустите Waydroid:

waydroid session stop
waydroid session start

NOTE

У такого режима есть минус: интеграции уведомлений в систему пока нет, и чтобы посмотреть уведомления, нужно запустить рабочий стол Waydroid.

Для этого выполните команду:

waydroid show-full-ui

TIP

Окно Waydroid не имеет верхнюю рамку. Для того чтобы перемещать его в оболочке Gnome, используйте зажатую клавишу Super

TIP

Скопировав файл или папку по пути /home/$USER/.local/share/waydroid/data/media/0 они появится в корне вашей файловой системы Android.

Заключение

Мы установили Waydroid и теперь можем запускать Android приложения на нашей Linux системе.