Йонас Дреслер (Jonas Dressler) от проекта GNOME, който развива версията на GNOME Shell за мобилни устройства, публикува разработки, позволяващи стартиране на средата Aliendalvik (AppSupport) в обикновени Linux дистрибуции. Aliendalvik представлява прослойка за мобилната платформа Sailfish, осигуряваща стартирането на приложения, написани за Android. В хода на обратното инженерство на Aliendalvik са подготвени пачове за композитния сървър Mutter, скриптове и обвивки над звуковия сървър и системата за вход, необходими за стартиране на Aliendalvik извън платформата Sailfish.
Стартирането на Aliendalvik беше демонстрирано на смартфоните Pinephone Pro и Oneplus 6, на които беше инсталиран Arch Linux с GNOME Mobile интерфейс. Отбелязва се, че за взаимодействие на Aliendalvik с потребителската среда Sailfish се използват стандартни API на Freedesktop, например известията се изпращат чрез DBus интерфейс org.freedesktop.Notification, а за управление на музикалните плейъри се използва протоколът MPRIS. Всяко стартирано Android приложение се визуализира с помощта на отделна Wayland повърхност в собственото си прозорче, а за организирането на входа се използва Wayland протокола „text-input“.
Средата Aliendalvik се стартира с помощта на инструменти за контейнерна изолация LXC, а компонентите за интеграция с хост системата са събрани за архитектура ARM64 и написани с помощта на Qt. В отличие от подобния проект Waydroid, който също стартира Android среда в контейнер, в Aliendalvik е осигурена по-тясна интеграция с хост системата, например, Android приложенията се отварят в обикновени прозорци, поддържа се синхронизация на адресната книга и се използва екранна клавиатура на Sailfish.
Системната среда Sailfish е изградена на база проекта Mer (развива се като част от Sailfish от април 2019 г.) и пакети от Mer разпространение Nemo. В средата се използват systemd, DBus, RPM, PackageKit, PulseAudio, BlueZ, Wayland и Qt. Композитният сървър lipstick е изграден на база QtCompositor. За изолация на приложенията се използва Firejail. За управление на мрежовите свързвания се използва ConnMan, а като телефонен стек — oFono.
Източник: opennet.ru
