2 pontos por GN⁺ 2025-02-03 | 1 comentários | Compartilhar no WhatsApp
  • Waydroid é um projeto que inicializa um sistema Android completo em um contêiner em desktops GNU/Linux baseados em Wayland, permitindo executar apps Android junto com apps Linux como se fossem nativos
  • Usando namespaces do Linux, LXC e a interface binder, o contêiner Android acessa diretamente o hardware necessário e oferece suporte às plataformas GNU/Linux arm, arm64, x86 e x86_64
  • Os apps Android podem ser integrados à pasta de aplicativos do Linux, e o projeto oferece modos de execução conforme o uso, como Multi-Window Mode, Full UI Mode e Fullscreen Mode
  • O runtime é composto por uma imagem mínima de sistema Android customizada com base no LineageOS, e a imagem atual é baseada no Android 13
  • Após a instalação, é preciso iniciar o serviço waydroid-container e concluir o assistente de primeira execução no menu de aplicativos; a distribuição beta Waydroid-Linux não funciona em live mode, e sim em ambiente instalado

Estrutura Android-on-Linux do Waydroid

  • O Waydroid usa uma abordagem que inicializa um sistema Android completo em um contêiner dentro de um ambiente de desktop baseado em Wayland em um sistema GNU/Linux comum
  • O Android dentro do contêiner usa namespaces do Linux
    • user
    • pid
    • uts
    • net
    • mount
    • ipc
  • O sistema Android acessa diretamente o hardware necessário por meio de LXC e da interface binder
  • As plataformas compatíveis são arm, arm64, x86 e x86_64 baseadas em GNU/Linux
  • O projeto é gratuito e de código aberto, e seu repositório está no GitHub

Integração com o desktop e modos de execução

  • Os apps Android funcionam no desktop lado a lado com aplicativos Linux, e o Waydroid adiciona os apps Android à pasta de aplicativos do Linux
  • Os modos de execução variam de acordo com a forma de uso
    • Multi-window mode: amplia a definição de janelas freeform do Android com vários recursos adicionais
    • Full UI Mode: exibe a interface completa do Android para jogos e entretenimento em tela cheia
    • O Fullscreen Mode pode ser usado em desktops e quiosques
  • Em termos de desempenho, o objetivo é chegar o mais perto possível do nativo usando Wayland e AOSP mesa
  • O ambiente de runtime Android é fornecido com uma imagem mínima de sistema Android customizada com base no LineageOS, e a imagem atual é baseada no Android 13

Documentação, instalação e beta do Waydroid-Linux

  • A documentação e o gerenciamento de issues podem ser consultados em links separados
  • O fluxo rápido de instalação em distribuições com systemd consiste em seguir a documentação de instalação da sua distribuição e, se o início automático não acontecer, iniciar o serviço waydroid-container e executar o Waydroid pelo menu de aplicativos para concluir o assistente de primeira execução
  • Se for solicitado durante a primeira execução, insira os links OTA para System OTA e Vendor OTA
  • O Waydroid-Linux Beta consiste em distribuições totalmente integradas criadas para mostrar o potencial de integração que o Waydroid pode oferecer
    • A versão alfa inicial começou com Ubuntu 20.04(focal)
    • Atualmente também inclui Ubuntu 22.04(jammy) e Debian 12(bookworm)
    • Inclui várias ferramentas e scripts para ampliar o escopo do que é possível fazer
  • Como o Waydroid usa LXC e módulos de kernel para binder, o Waydroid-Linux não funciona em live mode e precisa ser instalado para operar corretamente
  • Os itens de download da beta pedem que o usuário consulte o README.md, e as versões de exemplo incluem Ubuntu 22.04 KDE-Plasma, Ubuntu 22.04 Gnome, Debian 12 Beta, Ubuntu 21.10 Beta e versões alfa anteriores

1 comentários

 
GN⁺ 2025-02-03
Opiniões no Hacker News
  • Surpreende que isso tenha chegado à página inicial. É um software bem conhecido
    O ponto decepcionante é que não há uma imagem fornecida pelo Google que rode no Waydroid. Algo como uma imagem de sistema genérica, por exemplo. Fico desconfortável em digitar minha senha numa ROM aleatória baixada da internet
    https://source.android.com/docs/core/tests/vts/gsi

    • É difícil chamar isso de “ROM aleatória baixada da internet”. O LineageOS é um projeto muito antigo e consolidado e, exceto pelo firmware necessário para dispositivos específicos, é software totalmente livre e de código aberto
      Para um projeto como o Waydroid, que precisa de suporte da comunidade e fornecimento contínuo, é uma escolha natural. Ao longo dos anos, o Google vem removendo continuamente muitas das partes livres e de código aberto que originalmente existiam no AOSP, a base do Android, e por isso projetos como o LineageOS tiveram de desenvolver componentes substitutos. Ainda assim, acho que as modificações que o LineageOS faz no AOSP são menores do que as da maioria dos fabricantes de celulares, incluindo o Google
    • Dá para chamar de aleatório? O LineageOS é um projeto bastante estabelecido. Eu ficaria mais receoso de inserir informações pessoais numa imagem fornecida pelo Google. Afinal, o modelo de negócios central do Google é coletar meus dados e me mostrar anúncios
    • Sinceramente, confio mais no LineageOS do que em uma imagem fornecida pelo Google
    • Para constar, o Firefox também já apareceu na página inicial antes. É permitido :)
    • O Google fornece uma imagem que roda no Docker
  • Seria bom ter um Android conteinerizado que desse para subir no Mac com algo como Docker Desktop ou OrbStack
    Eu gostaria de modificar a imagem Docker para deixar pré-configurado um proxy man-in-the-middle com root e subir apps Android para observar o tráfego de rede e chamadas de API com muito mais facilidade

    • Se quiser fazer algo simples agora, execute o Waydroid e depois rode o Wireshark dentro do namespace de rede criado para o Waydroid
      sudo ip netns exec wireshark
    • Não sei sobre a configuração de proxy, mas o redroid é, na prática, Android dentro de um contêiner Docker
  • Isso foi a base sobre a qual a FuriLabs fez bem a integração de apps Android. Claro, eles fizeram um fork e modificaram bastante [0], mas a experiência de usuário que permite usar apps Android em um celular Linux ficou excelente
    [0] https://github.com/FuriLabs/waydroid

    • Aqui é o Jesus, da FuriLabs. Estou encerrando a FOSDEM, mas posso responder a perguntas ou feedbacks :)
  • O Furiphone FLX1 está usando isso intensivamente e é muito bom. Dá para fazer a maioria das coisas que eu realmente gostaria de fazer num celular Android
    É claro que minhas exigências não são muitas, mas conheço pessoas que usam para Signal e Spotify. É um projeto excelente e combina perfeitamente com celulares Linux

    • Vi pela primeira vez nesta thread e fui dar uma olhada; parece bom. Eu gostaria de comprar um, mas a FAQ diz que “apps que precisam da Google Play Store completa e seus requisitos não funcionam, incluindo alguns apps de banco”
      No fim, acho que eu teria de carregar dois celulares. Apps de banco e cartão de crédito são essenciais e necessários todos os dias, e em algumas contas eu nem consigo fazer login pelo navegador desktop sem autenticação pelo app do celular. Pagamentos individuais também frequentemente exigem confirmação pelo app do celular. Também não estou em posição de trocar de banco em nome de uma experiência de usuário mais livre
      Fora finanças, no meu trabalho principal tenho de usar o conjunto de produtos do Google e, em outro trabalho, também tive de usar Discord. Isso talvez dê para fazer pelo navegador, mesmo com recursos reduzidos, mas apps de banco e cartão de crédito não
      Não é uma reclamação sobre o Waydroid ou o FLX1; valorizo o trabalho e a criatividade envolvidos. Há muito tempo sonho em ter e montar eu mesmo um celular totalmente livre e de código aberto, e sei o volume de trabalho que isso exige. Antigamente também tive dois Nokia N900
      Mas os tempos mudaram, e espero que se encontre uma forma de executar, sobre um sistema baseado em software livre e de código aberto ou lado a lado com ele, os apps e protocolos que a vida cotidiana atual exige
    • Este celular é quase perfeito. Tem conector TRRS, cartão uSD, bateria substituível pelo usuário e até venda nos EUA
      Mas a falta de um painel OLED talvez seja um ponto negativo decisivo
    • Tenho curiosidade sobre como é o Furiphone FLX1. Há poucas reviews online
    • A porta USB-C tem suporte a modo alternativo DP?
    • Existe um Flatpak do Signal que também funciona bem no FuriOS
  • Tenho três apps que comprei há muito tempo: um dicionário de sueco, um dicionário alemão-sueco e um dicionário inglês-sueco
    Ainda consigo instalá-los, mas eles não são mais oferecidos na loja de apps. A empresa, Norstedts, naturalmente migrou para um modelo de assinatura. Uso o Waydroid para usar esses apps no desktop e estou muito satisfeito

  • Muitos apps dependem de rodar em distribuições Android “oficiais”, como as do Google e da Samsung, e não funcionam na distribuição baseada no Lineage do Waydroid
    Acho que uma abordagem ao estilo Wine, como https://gitlab.com/android_translation_layer/android_transla..., poderia ajudar a enganar apps para fazê-los acreditar que estão rodando numa distribuição Android “oficial”

    • Para enganar apps desse jeito, há um conjunto específico de APIs que precisa ser imitado. No Android “de verdade”, isso é tratado com módulos Magisk que disfarçam algumas coisas, ou com o microG reimplementando os serviços do Google por completo
      A abordagem ao estilo Wine do ATL é certamente mais intuitiva para imitar APIs, mas ainda assim exigiria uma reimplementação separada para o ATL. Por outro lado, o Waydroid executa um ambiente Android completo, então há a possibilidade de reutilizar Magisk ou microG
  • Toda vez que vejo isso, penso: “Legal! Vou poder rodar aqueles apps Android ótimos que não têm equivalente para Linux”, mas nunca me vem nenhum à cabeça. Existe algum app Android realmente indispensável?

    • Existem o Organic Maps e o OSMAnd. São melhores do que os softwares de mapas open source para desktop que encontrei.
      O Organic Maps tem uma versão para desktop Linux, mas ainda está longe de ter paridade de recursos. Mas isso pode mudar graças a este financiamento [1] para criar uma boa UI de desktop para o Organic Maps.
      [1] https://nlnet.nl/project/OrganicMaps-ConvergentUI/
    • Gosto do FairEmail, um cliente de e-mail. Pode soar estranho, mas talvez seja melhor do que todos os clientes de e-mail para desktop que já usei.
    • Para mim, o importante são coisas como apps de banco que exigem autenticação baseada em app. Claro que esse tipo de solução, infelizmente, não funciona bem em algo como o Waydroid. O app percebe que está dentro de um contêiner e bloqueia funcionalidades.
    • Já vi isso ser recomendado principalmente para pessoas que querem jogar games mobile no Steam Deck.
    • Tenho uma “guitarra inteligente” que exige um app próprio para alterar configurações. Esse é o único motivo pelo qual ainda uso um “smart”phone.
  • Esse contêiner consegue acessar dispositivos USB de hardware? Tenho um cabo USB-C Moondrop FreeDSP com PEQ, que só funciona em um app Android péssimo.
    O tablet Android que tenho à mão também tem uma tela sensível ao toque ruim, então mudar as configurações do EQ leva tempo demais. Eu queria simplesmente fazer isso pelo notebook Linux.

    • Parece que sim. Quando o Android está em foco, se você conecta um dispositivo USB, ele chega a capturar esse dispositivo USB por engano: https://github.com/waydroid/waydroid/issues/778
      Mesmo que não, no fim das contas é um contêiner Linux, então com algumas regras udev provavelmente daria para fazê-lo funcionar de qualquer forma.
  • Há algumas coisas que parecem continuar faltando em projetos desse tipo. Falta a parte de usar a aceleração 3D de hardware do host com as versões de OpenGL ES e Vulkan que a maioria dos celulares oferece nativamente.
    Além disso, muitos apps têm formas embutidas de detectar que não estão rodando em um celular; olham o cpuinfo, comparam com o dispositivo declarado e então encerram.
    O suporte a ARM esperado nos dispositivos também está aumentando, junto com o throughput esperado. Por isso, para emular até mesmo um SoC ARM móvel moderno comum, o desempenho exigido do host x86 está ficando cada vez maior.
    Por fim, a versão do Android suportada quase sempre fica 3 ou 4 gerações atrás da mais recente. Os apps deixam de oferecer suporte a Androids antigos rapidamente, ou rodam em versões antigas do SO com menos recursos e otimizações. A versão-base de Android deste projeto é de 2020.
    Anedoticamente, mesmo o BlueStacks, que tem uma das pilhas de emulação com melhor compatibilidade e otimização nessa área, rodando em um 7800X3D / RTX 3090, é mais lento na maioria dos jogos do que esses mesmos jogos rodando nativamente em um celular Snapdragon 8 do ano passado.

  • O surpreendente é que ninguém abstraiu isso para permitir executar vários contêineres Android sob LXC.
    No Waydroid, há apenas uma imagem. Para mim, parecia usar um kernel Linux customizado com muitos patches, e não consegui entender direito, mas a interface com o LXC parecia bem simples.

    • O Waydroid usa o kernel do host.