Skip to main content

Установка WayDroid

Какую проблему будем решать?

В какой-то момент мне понадобилось заиметь Android-хост в своей инфраструктуре. Да не простой, а с GooglePlay и, по возможности, не заставляющий ЦПУ биться в конвульсиях при запуске первого инстанса.

Основная загвоздка тут в том, что решение должно так или иначе вписываться в мои реалии - наличие хоста Proxmox и нескольких (десятков) ВМ. Вариант с LXC я отмел сразу, т.к. мне нужен был ванильный Android, а не его сборка. К тому же, я бы не хотел на одной ноде держать и LXC, и ВМ.   

И я нашел решение этой проблемы - WayDroid.

image.png

Как мы ее будем решать?

В первую очередь, определимся с вводными. Я буду:

  1. Создавать ВМ на Ubuntu Server 24.04 (это важно, т.к. на момент написания статьи это самый стабильный дистрибутивы под такие цели);
  2. Устанавливать и настраивать систему как в GUI, так и в CLI (я почему отдельно что и где нужно сделать).

Процесс установки

Создание ВМ

В PVE:

  1. Загружаем и импортируем образ Ubuntu Server 22.04 в PVE (прямая ссылка на ISO-образ Ubuntu)
  2. Создаем ВМ с произвольным названием указываем наш ISO как загрузочный (установочный) образ
  3. Перед ее запуском, сверяемся с параметрами:
    1. Ресурсы (рекомендовано под 1 ВМ, можно и больше):
      1. ЦПУ, ядер: 4 (важно: тип ЦПУ - "host")
      2. ОЗУ, ГБ: 4
      3. СХД, ГБ: 75 (в моем случае, SSD)
    2. Machine: q35
    3. Display: SPICE
  4. (ВАЖНО!) Устанавливаем сетевой адаптер - для установки нам понадобится интернет 

Получается примерно так:

image.png

Дальше, устанавливаем ОС. Из важных моментов:

  1. Ubuntu наверняка вам предложит обновить установочный скрипт на более новую версию. В моменте, лучше согласиться с обновлением. Если вы не согласились - ничего страшного, на работу системы это не влияет; 
  2. На моменте разметки, выделите LVM больше места (чтобы убрать свободное место, в установщике оно помечено как "free space");
  3. Мы установили Display типа SPICE (qxl). Это сыграет в плане производительности. Но с нюансом... 

Важно понимать, что привычная Console в ВЕБ (сверху справа) через него не откроется - в моем случае, PVE 9 версии по этой кнопке начинает скачивать обрывки сертификата (и это не зависит от браузера). Не пугайтесь, установку вы можете продолжить из одноименной вкладки слева:

image.png

В крайнем случае, вы можете временно изменить значение параметра на default.

TIP: Переходите к следующему после того, как вы установите систему

 

Установка WayDroid

Установка GUI

Важно понимать, что WayDroid работает исключительно в GUI. При том, только на Wayland.

Поэтому первым шагом его необходимо установить. Делается это 3 командами:

# Опционально: установка времени (в примере - Москва)
timedatectl set-timezone Europe/Moscow
# Синхронизация с репозиториями 
apt update
# Установка последних обновлений пакетов на ОС (может занять какое-то время)
apt upgrade -y
# Установка доп. ПО - оно будет полезно дальше
apt install -y curl wget nano
# Установка GUI на Wayland (может занять какое-то большое кол-во времени)
apt install -y ubuntu-desktop-minimal

После установки, нам нужно сделать еще 1 вещь: заставить ОС грузиться не в терминальную, а в графическую оболочку. Делается это двумя командами, включая перезагрузку.

sudo systemctl set-default graphical.target
reboot

Ждем, пока ВМ перезагрузится. Затем - первый вход.

                                                                                                       Важно!                                                                                                     

  1. Входим от обычного пользователя (не root);
  2. При входе, после выбора пользователя, нажимаем на "шестеренку" (⚙️) и выбираем Ubuntu (без каких-либо приписок).  

После первого входа в ОС, в терминале проверяем, что мы используем верный GUI-менеджер:

echo $XDG_SESSION_TYPE
# Ожидаем вывод:
# wayland

Если вывод совпадает (wayland) - переходим к дальнейшей установке. В противном случае - гуглим

Установка эмулятора WayDroid

Здесь все просто. Все делается в 3 команды:

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

После этого, у вас должна появиться команда "waydroid" в CLI.

Запуск первого приложения

Скачивание образов

Скачиваем образы Android:

# Без сервисов GooglePlay
sudo waydroid init
# С сервисами GooglePlay (не самый стабильный, но возможный вариант)
sudo waydroid init -s GAPPS

В случае, если вы получаете таймаут:

image.png

Вы можете попробовать временно отключить IPv6. Часто, это решает проблему:

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

После чего повторите команды выше.

Запуск приложения

                          Если здесь будут использованы команды из CLI - они выполняются в GUI-сессии, а не через SSH!                         

Теперь,