Jonas Dressler del progetto GNOME, che sviluppa l'editor di GNOME Shell per dispositivi mobili, ha pubblicato risultati che consentono di avviare l'ambiente Aliendalvik (AppSupport) nelle normali distribuzioni Linux. Aliendalvik è un layer per la piattaforma mobile Sailfish, che permette l'esecuzione di applicazioni scritte per la piattaforma Android. Durante l'ingegneria inversa di Aliendalvik sono stati preparati patch per il server composito Mutter, script e wrapper per il server audio e il sistema di input, necessari per eseguire Aliendalvik al di fuori dell'ambiente della piattaforma Sailfish.
L'avvio di Aliendalvik è stato dimostrato sugli smartphone Pinephone Pro e Oneplus 6, sui quali è stato installato Arch Linux con interfaccia GNOME Mobile. Si nota che per l'interazione di Aliendalvik con l'ambiente utente Sailfish vengono utilizzate le API standard di Freedesktop, ad esempio, le notifiche vengono inviate tramite l'interfaccia DBus org.freedesktop.Notification, mentre per il controllo dei lettori musicali viene utilizzato il protocollo MPRIS. Ogni applicazione Android avviata viene visualizzata utilizzando una superficie Wayland separata nella propria finestra, e per l'organizzazione dell'input è stato utilizzato il protocollo Wayland "text-input".
L'ambiente Aliendalvik viene avviato tramite strumenti di isolamento dei contenitori LXC, e i componenti per l'integrazione con il sistema host sono stati compilati per l'architettura ARM64 e scritti utilizzando Qt. A differenza di un progetto simile, Waydroid, che avvia anche un ambiente Android in un contenitore, Aliendalvik offre un'integrazione più stretta con il sistema host, ad esempio, le applicazioni Android si aprono in normali finestre, è supportata la sincronizzazione della rubrica e viene utilizzata la tastiera su schermo di Sailfish.
L'ambiente di sistema Sailfish si basa sul progetto Mer (che da aprile 2019 si sviluppa come parte integrante di Sailfish) e sui pacchetti della distribuzione Mer Nemo. Nell'ambiente vengono utilizzati systemd, DBus, RPM, PackageKit, PulseAudio, BlueZ, Wayland e Qt. Il compositore server lipstick si basa su QtCompositor. Per l'isolamento delle applicazioni viene utilizzato Firejail. Per la gestione delle connessioni di rete è stato impiegato ConnMan, e come stack telefonico viene utilizzato oFono.
Fonte: opennet.ru
