A melhor solução Android no PC? Conheça o Waydroid!

Rodar Android no PC aparentemente se tornou algo viável e tão fácil que até SteamDeck roda, e tudo funciona graças ao Waydroid.


| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. 
Mais detalhes clicando aqui.


1. Introdução

Há um bom tempo eu fiz uma publicação sobre o Android x86 aqui no site. Na época ele foi a melhor solução que eu conhecia para rodar Android no PC.

Porém depois que migrei para o EndeavourOS MATE, e posteriormente para o Plasma Desktop e comecei a usar Wayland em vez de Xorg como servidor gráfico no dia a dia, eu pude finalmente conhecer o potencial do Waydroid: Uma solução Android no PC que até o presente momento foi a melhor e que mais tira proveito do seu hardware!

Hoje vou dar uma de Ana Maria Braga e trazer uma receita de bolo: Como rodar Android no PC com o Waydroid da forma mais “simples” possível. Sim, usaremos terminal, mas é igual receita de bolo: Copia e cola os comandos, sem choro nem vela, sem lenço, documento ou burocracias!

2. Requisitos de Hardware

Como toda receita você vai precisar de:

  • Processador Intel ou AMD, preferencialmente x86_64.
    Em teoria você também consegue rodar em arquiteturas aarch64, como em um Raspberry Pi 5 ou num celular destravado, porém não há uma compatibilidade plena com as flags de processador e muitos recursos podem ficar incompletos ou incorretos. – Em suma famílias Intel Core i5-i7 ou mesmo AMD Ryzen 3 são mais que suficientes.
  • Placa de Vídeo Intel UHG ou VEGA para a família de placas da AMD.
    Infelizmente NVIDIA está fora de questão! (exceto a família Tegra, se tiver uma possivelmente rodará bem) Quem utiliza NVIDIA está convidado a tentar forçar o uso do Waydroid como Software e eu não vou abordar isso neste tutorial porque eu acho que fica muito lento. Para maiores detalhes acesse este link.
  • Espaço de Armazenamento.
    Imagine quanto você ia querer de armazenamento se fosse usar um celular mesmo. Meu palpite: Tenha pelo menos uns 32 Gb livres para as imagens do sistema (elas pesam uns 4 Gb) + Aplicações que queira instalar. Esse Android suporta qualquer loja paralela, tal qual também suporta a PlayStore sem erros de “This device isn’t play protect certificated”.
  • Um sistema Linux com Wayland.*
    Atualmente temos Fedora, ArchLinux, Manjaro, EndeavourOS, KDE Neon e até mesmo o Ubuntu 24.04 com suporte ao Wayland por padrão.
    Para todos os efeitos utilizarei o sistema EndeavourOS e logo mais abaixo explicarei os motivos dessa decisão.

*O Waydroid funciona em sistemas com XOrg, como o Ubuntu MATE.
Mas eu vou priorizar, focar, especificar e deliberadamente recomendar o uso do Wayland neste tutorial porque é oficialmente suportado e portanto terá o melhor desempenho possível!

2.1 A escolha de uma base ArchLinux

Eu vou utilizar uma base ArchLinux, para ser mais exato o EndeavourOS padrão, com interface KDE Plasma e Wayland.
Dentre os motivos eu diria que:

  • A simplicidade de usar o repositório AUR que é habilitado por padrão e que costuma vir desativado ou com problemas em outras distribuições Linux.
  • Ter um sistema atualizado com os pacotes mais novos, porém não tão extremo a ponto de usar pacotes em testes ou em estágio release candidate.
    Assim você terá uma garantia maior de estar em dia com o que há de melhor em drivers e suporte ao Android no PC.
  • Achei ele bem bonitinho.

Obviamente você pode usar outros sistemas, mas eu gostei e confiei nesse, vou recomendar ele. Porque sim. E é isso!
Um pouco das minhas razões de adotar o EndeavourOS eu falei num vídeo recente lá no canal:

3. Android no PC: Waydroid

3.1 Instalação do Sistema

Instale e configure seu EndeavourOS como qualquer outro sistema Linux. O tutorial para isso inclusive foi publicado aqui:

De certo modo, até a instalação concluir, tudo será padrão.
Instalado? Pronto? Então, vamos seguindo!

OBS: Desconecte qualquer dispositivo de armazenamento externo, pendrive e cartões de memória que estejam no computador antes de prosseguir!
Isso evitará alguns possíveis problemas com o /dev/ do sistema. Se você está recarregando seu celular via USB, desconecte também!

3.2 Comandos

Hora de abrir o terminal e digitar os seguintes comandos um por um em sequência. Não execute o próximo se o anterior não concluir:

$ yay -Syyu
$ sudo pacman -S lzip radeontop nvtop
$ yay -S binder_linux-dkms
$ sudo modprobe binder-linux device=binder,hwbinder,vndbinder
$ yay -S waydroid

Só isso.
Fim.

A imagem do Android estará em /var/lib/waydroid, enquanto que seus dados pessoais do Android estarão em ~/.local/share/waydroid/

Pulando um pouco a parte burocrática, o que você precisa saber e entender é que os comandos vão atualizar seu sistema, instalar 3 pacotes extras, configurar o suporte a Bind Linux DKMS e habilitar esse suporte em seu sistema.

Sem o Bind via DKMS você teria que compilar o kernel Linx ou ter que trocá-lo por outro como o Zen Linux e acredite: Você não vai querer mexer com isso!

3.2.1 Outras Distros

Pelo que fui informado cada distribuição Linux costuma ter seus ajustes, e apesar do EndeavourOS ter os repositórios via AUR, ele requer mais comandos.
Já no CachyOS este possui os repositórios dos pacotes do Waydroid e também já possui os módulos no kernel nativamente! Portanto o comando seria apenas:

$ sudo pacman -S waydroid

E ele deverá funcionar de primeira, sem nenhum ajuste adicional requerido.
Se você já usa o kernel do CachyOS em seu sistema ArchLinux ou Arch-based, possivelmente serão menos comandos para executar na instalação.

3.2.2 O Segredo

O Waydroid utiliza o sistema de containers LXC para funcionar!

Ao contrário do Docker ou Podman, bases do Distrobox por exemplo, o LXC é um container que chega mais perto do hardware enquanto executa sobre um sistema Linux.

É a forma que melhor se equipara ao Windows Subsystem for Android, do Windows, ou ainda o Rosetta em sistemas macOS, ao executar o kernel do Android num sistema aninhado dando passagem de dados ao kernel Linux diretamente quando for conveniente comunicar com o hardware, seja processador ou placa de vídeo.

A perda de desempenho ou qualquer input lag é reduzido a praticamente zero e a virtualização/emulação/tradução beira a perfeição.

3.3 Firewall

No caso do EndeavourOS, caso tenha deixado tudo padrão na instalação, o Firewall precisa das seguintes liberações:

$ sudo firewall-cmd --zone=trusted --add-port=67/udp
$ sudo firewall-cmd --zone=trusted --add-port=53/udp
$ sudo firewall-cmd --zone=trusted --add-forward
$ sudo firewall-cmd --zone=trusted --add-interface=waydroid0
$ sudo firewall-cmd --runtime-to-permanent

Isso garante que o Android no PC terá conexão com a internet!

Por padrão ele estará sob uma placa virtual NAT, ou seja, inacessível externamente.
Portanto compartilhamento de arquivos diretamente partindo do próprio Android não serão acessíveis na sua rede.
Lembre-se que seus dados internos do Android estarão em ~/.local/share/waydroid/ 

4. Execução

4.1 Init

A imagem padrão na data desta publicação é o LineageOS 18.x baseado no Android 11.
Você pode pegar a versão Android sem Google:

$ sudo waydroid init

Ou pegar a versão com Google:

$ sudo waydroid init -s GAPPS

Quando o download terminar, você já terá o Waydroid em seu menu iniciar!
Caso deseje, pode iniciá-lo pelo terminal com:

$ waydroid show-full-ui

Simples assim. A interface será aberta e você poderá mexer no sistema.

Para fechar o Waydroid não vi um meio mais bonito que o terminal, então:

$ sudo systemctl stop waydroid-container

Ou ainda:

$ waydroid session stop
$ sudo waydroid container stop

Se abriu via terminal, basta matar o comando com CTRL+C lá no terminal.

4.2 Formatando e Refazendo

Caso queira recomeçar a configuração toda, pare o Android e apague os arquivos das imagens e de suas configurações:

$ sudo systemctl stop waydroid-container
$ sudo rm -rf /var/lib/waydroid
$ rm -rf ~/waydroid ~/.share/waydroid ~/.local/share/applications/*aydroid* ~/.local/share/waydroid

Assim você vai baixar novamente a imagem do sistema e criar uma configuração limpa.

4.3 SteamDeck

Se instalou o EndeavourOS num armazenamento externo e colocou no SteamDeck poderá rodar da mesma maneira e ainda poderá usar a tela touchscreen do aparelho para navegar no sistema! O SteamOS por padrão não tem suporte ao Waydroid. Use outro sistema, seja via microSD Card ou mesmo SSD Externo USB.

5. Desempenho e Benchmarks

Em todos os testes que fiz o Waydroid brilhou como o sol! – E vale todo o exagero que eu puder empregar.

Utilizando o SteamDeck pra rodar o programa, simplesmente com o GFX Benchmark que engasga no meu humilde Xiaomi Poco M4 Pro, os resutados foram estes:

Resultados quando comparado ao NVIDIA Shield, iPad Pro ou mesmo Galaxy S8.

Resultados dos benchmarks com picos de 3.000 frames para algumas cenas!

Utilizou a GPU Custom do SteamDeck como se fosse só mais uma aplicação gráfica:

Execução num singelo Celeron!

E isso era algo que eu sempre tive problemas em outros sistemas que tentam resolver as questões de emulação e execução do Android no PC.

Alguma dúvida de que roda bem o Android agora?

6. Solução de Problemas

Deu ruim? Perrengou seu sistema?

6.1 Como atualizar a versão da imagem do Android caso tenha alguma novidade?

Pare tudo com:

$ sudo systemctl stop waydroid-container

E em seguida:

$ waydroid upgrade

6.2 Incompatibilidade geral com vários .apk’s para ARM64/aarch64

Por executar aplicações ARM em um processador x86_64, possivelmente haverão erros de execução, o app não vai abrir, entre outros.
Faça os seguintes comandos no EndeavourOS pra baixar e aplicar um script extra em seu sistema e garantir plena compatibilidade:

$ git clone https://github.com/casualsnek/waydroid_script
$ cd waydroid_script
$ python3 -m venv venv
$ venv/bin/pip install -r requirements.txt
$ sudo venv/bin/python3 main.py

Ao fim do ultimo comando você verá uma TUI, interface por terminal.

image-20230430013103883

Escolha a versão do Android, que no caso aqui é o 11. O Script também funciona para o 13, até a data desta publicação, mas o 11 é o padrão do Waydroid.

Selecione Install:

image-20230430013119763

Selecione os itens que desejar, no caso, marque o “libndk” para arquitetura AMD ou “libhoudini” para CPU’s AMD antigas ou Intel. – São bibliotecas portadas do Windows Subsystem for Android!

image-20230430013148814

Caso precise, recomendo marcar também os Magisk para acesso root e o winedevine para ter DRM e reprodução de mídias.
Pode selecionar todos de uma vez, apertando Espaço, e aplicar com Enter. Reinicie seu Android em seguida.

6.3 Erro “This device isn’t play protect certificated”

Esse erro indica que seu dispositivo Android não é certificado. Isso não é problema, temos 2 soluções:

6.3.1 Método A

Inicie seu Waydroid, minimize-o e entre no shell do Android pelo terminal do sistema linux:

$ sudo waydroid shell

Em seguida rode este comando:

ANDROID_RUNTIME_ROOT=/apex/com.android.runtime ANDROID_DATA=/data ANDROID_TZDATA_ROOT=/apex/com.android.tzdata ANDROID_I18N_ROOT=/apex/com.android.i18n sqlite3 /data/data/com.google.android.gsf/databases/gservices.db "select * from main where name = \"android_id\";"

O resultado é um código semelhante a 02398529857. Com o código em mãos, entre nesse link:

https://www.google.com/android/uncertified/?pli=1

Faça login em uma conta Google, insira o código, valide o Captcha e dê Ok.
Aguarde, pode demorar até 20 MINUTOS para o Google validar seu Waydroid.
Após isso, apague todo o Cache da PlayStore e tente fazer login novamente.

Para sair do shell basta digitar exit e dar enter.

6.3.2 Método B

Você vai precisar do script do Item 6.2 acima! Caso não esteja nele, volte na pasta do waydroid_script com o comando:

$ cd waydroid_script

E então use o seguinte comando para pegar a ID do Android:

$ sudo venv/bin/python3 main.py certified

O resultado é um código semelhante a 02398529857. Com o código em mãos, entre nesse link:

https://www.google.com/android/uncertified/?pli=1

Faça login em uma conta Google, insira o código, valide o Captcha e dê Ok.
Aguarde, pode demorar até 20 MINUTOS para o Google validar seu Waydroid.
Após isso, apague todo o Cache da PlayStore e tente fazer login novamente.

Para sair do shell basta digitar exit e dar enter.

7. Perguntas Frequentes

7.1 Comandos Úteis

Para acessar o Shell ADB do Android:

$ waydroid shell

Para instalar um aplicativo .apk que foi baixado em seu computador:

$ waydroid app install caminho_do_apk

Para listar os aplicativos instalados:

$ waydroid app list

Para iniciar um aplicativo:

$ waydroid app launch $package_name

7.2 Usabilidade

  • Apps rotacionados não respondem.
    Tente pressionar F11.
  • Serviço de Clipboard não funciona?
    Tente esse comando: yay -S python-pyclip
    E reinicie o Android.
  • Teclado físico não quer funcionar. Mas pelo virtual eu clico sem problemas.
    Pressione ALT esquerdo.
  • Comandos do Waydroid Shell dão inaccessible or not found
    As vezes um bug no adbd ou settings podem falhar no input do shell. Uma alternativa ao comando “waydroid shell” é este:
$ sudo lxc-attach -P /var/lib/waydroid/lxc/ -n waydroid --clear-env

Melhore a integração com o desktop, permitindo que cada App Android fique em uma janela separada, com o seguinte comando em seu sistema Linux:

$ waydroid prop set persist.waydroid.multi_windows true

Reinicie o Android e inicie os apps preferencialmente pelo Menu Iniciar!

Caso você queira que o Android SEMPRE inicialize com o sistema, use este comando:

$ sudo systemctl enable waydroid-container --now

Fique tranquilo quando desligá-lo, o sistema Linux vai mandar a solicitação e aguardar até que o Android finalize os processos para desligar evitando corrupção de dados:

8. Conclusão

Depois de muito procurar eu vos digo que achei a solução mais amigável possível e que funcionou melhor quando se trata de rodar Android no PC.

Responsivo, baixa latência de input da tela graças ao Wayland, excelente desempenho por contar com drivers mais novos, pacotes extras que maximizam a compatibilidade com .apk’s compilados para aarch64/ARM64, enquanto que apresenta um Android com suporte a Google Apps, Root e mais um monte de recursos que possam ser desejados.

Não é uma interface tão simples, afinal desligar o Android é uma tarefa estranhamente contraproducente, enquanto que não há qualquer controle direto sobre conexão de internet, sem contar nas vezes em que o teclado externo pode falhar. Não é perfeito.

Mas rodou games, usa aceleração 3D e o desempenho geral é satisfatório pra valer a pena essa pequena luta para quem busca uma alternativa viável ao Bluestacks e ao MEmu! É quase um ChromeOS, digno de sua confiança.

#ZoioTheGreenEye

Fonte:
ArchLinux

Deixe um comentário