Eles conseguiram rodar o Aliendalvik, o middleware para rodar aplicativos Android fora do Sailfish OS

Aliendalvik

Demonstração Aliendalvik no Linux ARM

Aqui no blog compartilhamos informações sobre o Sailfish OS (que não tem muita atividade há alguns meses) e nesta ocasião foram divulgadas informações sobre um trabalho de engenharia reversa que foi alcançado em Aliendalvik (Suporte de aplicativo). Jonas Dressler do projeto GNOME foi quem compartilhou parte das conquistas que foi realizado no trabalho da Aliendalvik.

o que torna interessante ao trabalho realizado por Jonas Dressler em Aliendalvik, este é o proprietário, isto é, código fechado, então ele é oferecido apenas como binário, não como código-fonte, e é enviado apenas como parte das imagens dos seus telefones oficialmente suportados.

Para quem não sabe Aliendalvik, você deve saber que é isso que Waydroid é para Linuxbem basicamente é uma camada para a plataforma móvel Sailfish que permite executar aplicativos escritos para Android. Aliendalvik executa um sistema Android modificado dentro de um contêiner LXC, compartilhando o kernel com o sistema host.

O ambiente do sistema Sailfish é baseado no projeto Mer (desde abril de 2019 é desenvolvido como parte integrante do Sailfish) e nos pacotes de distribuição Mer Nemo. O ambiente usa systemd, DBus, RPM, PackageKit, PulseAudio, BlueZ, Wayland e Qt. O servidor composto de batom é construído sobre o QtCompositor. Firejail é usado para isolar aplicativos e ConnMan é usado para gerenciar conexões de rede e oFono é usado como pilha telefônica.

Sobre Aliendalvik

Comparado com Waydroid, Aliendalvik tem uma integração muito melhor com o host. Exibir aplicativos Android como janelas individuais do Wayland, encaminhar notificações e MPRIS do Android, Sincronize os contatos do host com o Android, use o teclado nativo na tela e muito mais.

O ambiente Aliendalvik é executado usando ferramentas de isolamento de contêiner e os componentes para integração com o sistema host são construídos para a arquitetura ARM64 e escritos em Qt.

No artigo que apresenta as melhorias que foram alcançadas no Aliendalvik através da engenharia reversa para poder executá-lo em distribuições ARM Linux, a implementação do Aliendalvik foi demonstrado com sucesso nos smartphones Pinephone Pro e OnePlus 6, que tinha a distribuição Arch Linux instalada junto com o shell GNOME Mobile.

É mencionado que o contêiner Android pode ser iniciado usando ferramentas de contêiner Linux padrão e binários de integração de host Eles são compilados para ARM64 e principalmente vinculados a várias bibliotecas Qt de código aberto.

Além disso, ele compartilha:

Mas na minha opinião, o verdadeiro potencial do Aliendalvik estaria em torná-lo parte da comunidade de código aberto. A disponibilidade para a comunidade Linux mais ampla significaria que poderíamos trabalhar juntos e ajudar a corrigir bugs, implementar novos recursos e cooperar na pilha subjacente para melhor atender às necessidades da Aliendalvik. E embora o Waydroid como solução FLOSS atual já seja ótimo, chegar ao ponto em que o Aliendalvik está atualmente exigirá muito tempo e esforço. É uma pena termos que refazer esse trabalho quando já existe uma ótima solução.

Jonas Dressler aponta em seu artigo que as APIs padrão do Freedesktop são usadas para interagir com o Aliendalvik com o ambiente de usuário Sailfish; por exemplo, as notificações são transmitidas através da interface DBus org.freedesktop.Notification e o protocolo MPRIS é usado para controlar tocadores de música. Cada aplicativo Android em execução é exibido usando uma superfície Wayland separada em sua própria janela, e o protocolo de "entrada de texto" do Wayland foi usado para organizar a entrada.

Durante a engenharia reversa do Aliendalvik, foram preparados patches para o servidor composto Mutter, scripts e ganchos para o servidor de som e sistema de entrada necessários para executar o Aliendalvik fora do ambiente da plataforma Sailfish.

Mas na minha opinião, o verdadeiro potencial do Aliendalvik estaria em torná-lo parte da comunidade de código aberto. A disponibilidade para a comunidade Linux mais ampla significaria que poderíamos trabalhar juntos e ajudar a corrigir bugs, implementar novos recursos e cooperar na pilha subjacente para melhor atender às necessidades da Aliendalvik.

Finalmente, se você estiver interessado em saber mais sobre isso, você pode verificar os detalhes no link a seguir.