Джонас Дреслер (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 (от април 2019 г. се развития като съставна част на Sailfish) и пакетите на Mer дистрибуцията Nemo. В средата се използват systemd, DBus, RPM, PackageKit, PulseAudio, BlueZ, Wayland и Qt. Композитният сървър lipstick е построен на основата на QtCompositor. За изолация на приложенията се използва Firejail. За управление на мрежовите връзки се ангажира ConnMan, а като телефонен стек се използва oFono.
Източник: opennet.ru
