Jonas Dressler do projeto GNOME, desenvolvendo a edição GNOME Shell para dispositivos móveis, publicou os avanços que permitem executar o ambiente Aliendalvik (AppSupport) em distribuições Linux convencionais. Aliendalvik é uma camada para a plataforma móvel Sailfish, que possibilita a execução de aplicativos desenvolvidos para a plataforma Android. Durante a engenharia reversa do Aliendalvik, foram preparados patches para o servidor compositor Mutter, scripts e bindings sobre o servidor de áudio e o sistema de entrada, necessários para executar o Aliendalvik fora do ambiente da plataforma Sailfish.
A execução do Aliendalvik foi demonstrada em smartphones Pinephone Pro e Oneplus 6, onde foi instalado o Arch Linux com a interface GNOME Mobile. Destaca-se que, para a interação do Aliendalvik com o ambiente de usuário Sailfish, são utilizadas as APIs padrão do Freedesktop, por exemplo, as notificações são transmitidas através da interface DBus org.freedesktop.Notification, e o protocolo MPRIS é utilizado para o controle de reprodutores de música. Cada aplicativo Android em execução é exibido usando uma superfície Wayland separada em sua própria janela, e para a organização da entrada foi utilizado o protocolo Wayland “text-input”.
O ambiente Aliendalvik é iniciado por meio de ferramentas de isolamento de contêiner LXC, e os componentes para integração com o sistema host foram compilados para a arquitetura ARM64 e desenvolvidos com o uso do Qt. Ao contrário do projeto similar Waydroid, que também executa um ambiente Android em contêiner, o Aliendalvik proporciona uma integração mais íntima com o sistema host, por exemplo, os aplicativos Android abrem em janelas normais, há sincronização do catálogo de endereços e é utilizada uma tecla de tela do Sailfish.
O ambiente do sistema Sailfish é construído com base no projeto Mer (desenvolvendo como parte do Sailfish desde abril de 2019) e nos pacotes da distribuição Mer Nemo. No ambiente, são utilizados systemd, DBus, RPM, PackageKit, PulseAudio, BlueZ, Wayland e Qt. O compositor servidor lipstick é baseado no QtCompositor. O Firejail é usado para o isolamento de aplicativos. O ConnMan é utilizado para gerenciar conexões de rede, e o oFono é usado como pilha telefônica.
Fonte: opennet.ru
