Jonas Dressler z projektu GNOME, rozwijający edycję GNOME Shell dla urządzeń mobilnych, opublikował prace umożliwiające uruchomienie środowiska Aliendalvik (AppSupport) w standardowych dystrybucjach Linuksa. Aliendalvik jest warstwą dla mobilnej platformy Sailfish, która umożliwia uruchamianie aplikacji napisanych dla systemu Android. W ramach inżynierii wstecznej Aliendalvik przygotowano łatki dla serwera złożeniowego Mutter, skrypty oraz powiązania z serwerem dźwiękowym i systemem wejścia, niezbędne do uruchomienia Aliendalvik poza środowiskiem platformy Sailfish.
Uruchomienie Aliendalvik zademonstrowano na smartfonach Pinephone Pro i Oneplus 6, na których zainstalowano Arch Linux z powłoką GNOME Mobile. Zauważono, że do interakcji Aliendalvik z użytkowym środowiskiem Sailfish wykorzystywane są standardowe API Freedesktop, przykładowo powiadomienia przekazywane są przez interfejs DBus org.freedesktop.Notification, a do zarządzania odtwarzaczami muzycznymi używany jest protokół MPRIS. Każda uruchomiona aplikacja Android wyświetlana jest z wykorzystaniem osobnej powierzchni Wayland w swoim oknie, a do organizacji wejścia zastosowano protokół Wayland „text-input”.
Środowisko Aliendalvik uruchamiane jest przy pomocy narzędzi izolacji kontenerów LXC, a komponenty do integracji z systemem gospodarza są skompilowane dla architektury ARM64 i napisane z użyciem Qt. W przeciwieństwie do projektu Waydroid, który również uruchamia środowisko Android w kontenerze, Aliendalvik zapewnia ściślejszą integrację z systemem gospodarza, na przykład, aplikacje Android otwierane są w standardowych oknach, wspierana jest synchronizacja książki adresowej, a używana jest ekranowa klawiatura Sailfish.
Systemowe środowisko Sailfish opiera się na projekcie Mer (od kwietnia 2019 roku rozwijanym jako część Sailfish) oraz pakietach dystrybucji Mer Nemo. W środowisku wykorzystywane są systemd, DBus, RPM, PackageKit, PulseAudio, BlueZ, Wayland i Qt. Kompozytowy serwer lipstick zbudowany jest na podstawie QtCompositor. Do izolacji aplikacji stosowane jest Firejail. Do zarządzania połączeniami sieciowymi wykorzystywany jest ConnMan, a jako stos telefoniczny - oFono.
Źródło: opennet.ru
