Aquí en el blog hemos compartido información sobre Sailfish OS (el cual no ha tenido mucha actividad desde hace ya algunos meses) y en esta ocasión se ha dado a conocer información sobre un trabajo de ingeniería inversa que se han logrado en Aliendalvik (AppSupport). Jonas Dressler del proyecto GNOME fue quien compartió parte de los logros que se ha llevado a cabo en el trabajo de Aliendalvik.
Lo que hace interesante al trabajo realizado por parte de Jonas Dressler en Aliendalvik, es que este es propietario, es decir, de código cerrado, por lo que solo se ofrece como binario, no código fuente, y solo se envía como parte de las imágenes de sus teléfonos oficialmente compatibles.
Para quienes desconocen de Aliendalvik, deben saber que este es lo que Waydroid es para Linux, pues básicamente es una capa para la plataforma móvil Sailfish que permite ejecutar aplicaciones escritas para Android. Aliendalvik ejecuta un sistema Android modificado dentro de un contenedor LXC, compartiendo el kernel con el sistema host.
El entorno del sistema Sailfish se basa en el proyecto Mer (desde abril de 2019 se ha estado desarrollando como parte integral de Sailfish) y los paquetes de distribución Mer Nemo. El entorno utiliza systemd, DBus, RPM, PackageKit, PulseAudio, BlueZ, Wayland y Qt. El servidor compuesto lipstick está construido sobre QtCompositor. Firejail se utiliza para aislar aplicaciones y ConnMan se utiliza para gestionar las conexiones de red y oFono se utiliza como pila telefónica.
Sobre Aliendalvik
En comparación con Waydroid, Aliendalvik tiene una integración mucho mejor con el host. Muestra aplicaciones de Android como ventanas individuales de Wayland, reenvía notificaciones y MPRIS desde Android, sincroniza contactos del host con Android, utiliza el teclado nativo en pantalla y mucho más.
El entorno Aliendalvik se ejecuta utilizando herramientas de aislamiento de contenedores y los componentes para la integración con el sistema host están construidos para la arquitectura ARM64 y escritos usando Qt.
En el artículo donde se presentan las mejoras que se han logrado en Aliendalvik al aplicar ingeniería inversa para poder ejecutarlo en distribuciones de Linux ARM, la implementación de Aliendalvik se ha demostrado exitosamente en los teléfonos inteligentes Pinephone Pro y OnePlus 6, los cuales tenían instalada la distribución Arch Linux junto con el shell GNOME Mobile.
Se menciona que el contenedor de Android se puede iniciar utilizando herramientas de contenedor estándar de Linux y los binarios de integración del host se compilan para ARM64 y, en su mayoría, se vinculan a varias bibliotecas Qt de código abierto.
Además de ello comparte:
Pero en mi opinión, el verdadero potencial de Aliendalvik estaría en convertirlo en parte de la comunidad de código abierto. La disponibilidad para la comunidad Linux en general significaría que podríamos trabajar juntos y ayudar a corregir errores, implementar nuevas funciones y cooperar en la pila subyacente para satisfacer mejor las necesidades de Aliendalvik. Y si bien Waydroid como solución FLOSS actual ya es excelente, llegar al punto en el que se encuentra actualmente Aliendalvik requerirá mucho tiempo y esfuerzo. Es una pena que tengamos que rehacer ese trabajo cuando ya existe una gran solución.
Jonas Dressler señala en su artículo que, las API estándar de Freedesktop se utilizan para interactuar con Aliendalvik con el entorno de usuario de Sailfish; por ejemplo, las notificaciones se transmiten a través de la interfaz DBus org.freedesktop.Notification y el protocolo MPRIS se utiliza para controlar los reproductores de música . Cada aplicación de Android en ejecución se muestra utilizando una superficie Wayland separada en su propia ventana, y se utilizó el protocolo de «entrada de texto» de Wayland para organizar la entrada.
Durante la ingeniería inversa de Aliendalvik, se prepararon parches para el servidor compuesto Mutter, scripts y enlaces para el servidor de sonido y el sistema de entrada necesarios para ejecutar Aliendalvik fuera del entorno de la plataforma Sailfish.
Pero en mi opinión, el verdadero potencial de Aliendalvik estaría en convertirlo en parte de la comunidad de código abierto. La disponibilidad para la comunidad Linux en general significaría que podríamos trabajar juntos y ayudar a corregir errores, implementar nuevas funciones y cooperar en la pila subyacente para satisfacer mejor las necesidades de Aliendalvik
Finalmente, si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.