Waydroid

Материал из ALT Linux Wiki

Запуск приложений Android на Альте.

Сайт: https://waydro.id/

Параметры ядра

Добавьте psi=1 в строку GRUB_CMDLINE_LINUX_DEFAULT в файле /etc/sysconfig/grub2. Например:

GRUB_CMDLINE_LINUX_DEFAULT=' quiet resume=/dev/disk/by-uuid/26fa2b6f-de49-4388-a962-e39e4e956a95 panic=30 splash psi=1'

И выполните

update-grub

Установка

Внимание! Ядерные модули anbox для Waydroid поддерживают только ядро un-def в p10


1. Под правами root обновляем ядро un-def:

update-kernel -t un-def

2. Устанавливаем ядерный модуль anbox, библиотеку binder и пакет waydroid:

apt-get install kernel-source-anbox kernel-modules-anbox-un-def libgbinder1 waydroid

3. Перезагружаемся c новым ядром.

4. Загружаем контейнер Waydroid:

# waydroid init
[13:39:19] x86_64 CPU does not support SSE4.2, falling back to x86...
[13:39:21] Downloading https://sourceforge.net/projects/waydroid/files/images/system/lineage/waydroid_x86/lineage-18.1-20230422-VANILLA-waydroid_x86-system.zip/download
[Downloading] 606.27 MB/606.46 MB    25110.97 kbps(approx.)[13:39:51] Validating system image
[13:39:54] Extracting to /var/lib/waydroid/images
[13:40:13] Downloading https://sourceforge.net/projects/waydroid/files/images/vendor/waydroid_x86/lineage-18.1-20230422-MAINLINE-waydroid_x86-vendor.zip/download
[Downloading] 92.14 MB/92.24 MB    1473.69 kbps(approx.)[13:40:24] Validating vendor image
[13:40:24] Extracting to /var/lib/waydroid/images

5. Запускаем службу waydroid-container:

systemctl enable --now waydroid-container

Wayland

В сеансе под Xorg Waydroid не работает, появляется предупреждение:

[13:50:51] WAYLAND_DISPLAY is not set, defaulting to "wayland-0"
[13:50:51] Wayland socket '/run/user/500/wayland-0' doesn't exist; are you running a Wayland compositor?

Вы можете запустить сеансы KDE (Wayland) или GNOME.
Или в качестве простой среды на Wayland установите пакет weston и выберите сеанс Weston.

Запуск сеанса

В запущенной графической среде Wayland под пользователем выполните:

waydroid session start

после этого можно запускать саму среду (в отдельном терминале):

waydroid show-full-ui

Будет открыто окно Android: Waydroid-session.png

Установка приложений в Waydroid

Установка .apk с веб-сайтов

Запускаем браузер по значку:

Browser waydroid.png


Зайдем на офф сайт разработчика или доверенного мобильного портала, например 4pda.ru. Загрузим .apk файл Жмем Download. По умолчанию загруженные файлы попадают в каталог: sdcard/Download. Запускаем скаченный файл На сообщение "For your security, your phone is not allowed to install unknown apps from this source" заходим в Settings и включаем настройку "Allow from this source"
Allow install.jpg
Отвечаем - Install. По итогу запускаем приложение. Open.

Установка приложений из f-droid

Через браузер заходим на сайт f-droid https://f-droid.org
F-Droid - это каталог приложений FOSS (Free and Open Source Software - свободное программное обеспечение с открытым исходным кодом) для платформы Android. F-Droid упрощает просмотр, установку и отслеживание обновлений на вашем устройстве.
Скачиваем f-droid.apk запускаем и устанавливаем, по аналогии с пунктом инструкции 5.1. При запуске будет выполнено обновление, дожидаемся. Теперь можно устанавливать ПО из магазина приложений.
Есть кнопка поиска по названию. F-droid apps.jpg

Установка приложений из google play market

Останавливаем текущий контейнер, если он ранее был запущен командой:

#systemctl stop --now waydroid-container

Инициализируем контейнер для google apps и дожидаемся загрузки командой:

#waydroid init -s GAPPS -f
[12:42:48] Downloading
https://sourceforge.net/projects/waydroid/files/images/system/li
neage/waydroid_x86_64/l
ineage-18.1-20230422-GAPPS-waydroid_x86_64-system.zip/download
[Downloading] 858.98 MB/858.98 MB 4273.36 kbps(approx.)
[12:47:47] Validating system image
[12:47:49] Extracting to /var/lib/waydroid/images

Запускаем контейнер:

#systemctl enable --now waydroid-container

Устанавливаем сертификаты для работы с Google сервисами:
1. Запускаем команды ниже в оболочке waydroid

#waydroid shell
#ANDROID_RUNTIME_ROOT=/apex/com.android.runtime ANDROID_DATA=/data #ANDROID_TZDATA_ROOT=/apex/com.android.tzdata #ANDROID_I18N_ROOT=/apex/com.android.i18n 
#sqlite3 /data/data/com.google.android.gsf/databases/gservices.db "select * from main where name = \"android_id\";"

2. Зарегистрируем идентификатор устройства на сайте: https://www.google.com/android/uncertified/ Для этого выполняем:

#waydroid shell
#sqlite3 /data/*/*/*/gservices.db "select * from main where name = \"android_id\";"

вставляем полученный id в форму «Идентификатор Google Services Fram...» отвечаем «Я не робот» и жмем «Регистрация»
Activate waydroid in google apps.jpg
3. Перезапускаем сессию

$waydroid session stop
$waydroid session start

Теперь при запуске

$waydroid show-full-ui

в списке приложений будет доступен play store. Останется только войти под аккаунтом @gmail.com и можно устанавливать приложения из магазина.
Waydroid play market.jpg

Ориентация экрана при запуске приложений

Может возникнуть проблема при запуске приложений в полноэкранном режиме, что изображение перевернуто на 180 градусов и курсор двигается с инверсией. Для решения проблемы можно ввести команду:

#waydroid shell wm set-fix-to-user-rotation enabled

Ссылки