Implantação de Desktop Ubuntu 24.04 em Dispositivos Android Utilizando Termux e PRoot

Requisiots e Configuração do Ambiente

Este guia detalha o processo de configuração de um ambiente de desktop Ubuntu 24.04 LTS (Noble) com interface XFCE4 em dispositivos Android, utilizando a arquitetura ARM64. A stack baseia-se na combinação de Termux, Termux:X11 e PRoot-Distro.

Pré-requisitos de Software

Antes de iniciar a configuração no terminal, certifique-se de que os seguintes aplicativos estão instalados no seu dispositivo Android:

  • Termux: Disponível no repositório oficial do GitHub (F-Droid ou GitHub Releases).
  • Termux:X11: Cliente X11 para renderização gráfica, também obtido via GitHub.

Preparação do PRoot e Instalação da Imagem

Inicie o Termux e atualize os repositórios de pacotes base. Em seguida, instale o gerenciador de distribuições PRoot e um editor de texto de suporte.

pkg update -y && pkg upgrade -y
pkg install proot-distro vim nano -y

Obtenção e Registro da Imagem Ubuntu 24.04

Para garantir a integridade e utilizar uma versão específica (Noble), faremos o download manual do tarball e o registraremos no PRoot.

1. Download do arquivo compactado:

wget https://github.com/termux/proot-distro/releases/download/v4.11.0/ubuntu-noble-aarch64-pd-v4.11.0.tar.xz -O ubuntu_noble_arm64.tar.xz

2. Cálculo do hash e resolução do caminho absoluto:

ARCHIVE_PATH=$(readlink -f ubuntu_noble_arm64.tar.xz)
CHECKSUM_SHA256=$(sha256sum ubuntu_noble_arm64.tar.xz | awk '{print $1}')

3. Criação do script de plugin personalizado:

cat <<PLUGIN_EOF > $PREFIX/etc/proot-distro/ubuntu-noble-custom.sh
DISTRO_NAME="Ubuntu 24.04 LTS (Custom Noble)"
TARBALL_URL['aarch64']="file://${ARCHIVE_PATH}"
TARBALL_SHA256['aarch64']="${CHECKSUM_SHA256}"
distro_setup() {
    sed -i -E 's/^[#[:space:]]*(pt_BR.UTF-8[[:space:]]+UTF-8)/\1/g' ./etc/locale.gen
    run_proot_cmd DEBIAN_FRONTEND=noninteractive dpkg-reconfigure locales
}
PLUGIN_EOF

Verifique se o PRoot reconheceu a nova configuração:

proot-distro list

4. Instalação do contêiner:

proot-distro install ubuntu-noble-custom

Configuração de Repositórios e Pacotes Base

Acesse o ambiente Ubuntu recém-instalado para ajustar as fontes de pacotes e instalar dependências críticas.

proot-distro login ubuntu-noble-custom

Ajuste de Mirrors e Certificados

Como a instalação base não inclui certificados CA atualizados, configuraremos temporariamente um mirror via HTTP para baixar os certificados, alternando para HTTPS logo em seguida.

cat <<SOURCES_EOF > /etc/apt/sources.list
deb http://ports.ubuntu.com/ubuntu-ports/ noble main restricted universe multiverse
deb http://ports.ubuntu.com/ubuntu-ports/ noble-updates main restricted universe multiverse
deb http://ports.ubuntu.com/ubuntu-ports/ noble-backports main restricted universe multiverse
deb http://ports.ubuntu.com/ubuntu-ports/ noble-security main restricted universe multiverse
SOURCES_EOF

apt update
apt install ca-certificates apt-transport-https -y

# Migrar para HTTPS
sed -i 's|http://|https://|g' /etc/apt/sources.list
apt update

Instalação do Ambiente Gráfico e Utilitários

Com a rede segura, instale os componentes necessários para a interface gráfica XFCE e ferramentas do sistema.

apt upgrade -y
apt install sudo curl wget dbus-x11 lxterminal -y
apt install xfce4 xfce4-goodies fonts-wqy-zenhei -y

Gerenciamento de Usuários

Aplicações gráficas no Linux frequentemente falham quando executadas como root. Criaremos um usuário padrão com privilégios administrativos.

# Substitua 'devuser' pelo nome de usuário de sua preferência
USERNAME="devuser"

useradd -m -G sudo -s /bin/bash $USERNAME
passwd $USERNAME

# Configurar execução sudo sem senha
echo "$USERNAME ALL=(ALL:ALL) NOPASSWD:ALL" | tee -a /etc/sudoers > /dev/null

Após concluir a configuração do usuário, saia do contêiner PRoot para retornar ao shell nativo do Termux:

exit

Script de Inicialização do Desktop

Para automatizar a inicialização do servidor X11, o acelerador de hardware e a sessão do XFCE, criaremos um script bash no ambiente host do Termux.

cat << 'LAUNCHER_EOF' > ~/launch_xfce.sh
#!/data/data/com.termux/files/usr/bin/bash

# Limpeza de sessões anteriores e sockets
pkill -9 termux-x11 2>/dev/null
pkill -9 virgl 2>/dev/null
rm -rf $TMPDIR/.X11-unix $TMPDIR/.X*

# Configurar permissões de exibição
pkg install xhost -y >/dev/null 2>&1
xhost + >/dev/null 2>&1

# Iniciar renderizador GPU e servidor X11
virgl_test_server_android &
termux-x11 :0 -ac &
sleep 3

# Iniciar sessão PRoot com variáveis de ambiente gráficas
proot-distro login ubuntu-noble-custom --user devuser --shared-tmp -- bash -c "
    export DISPLAY=:0
    export GALLIUM_DRIVER=virpipe
    export MESA_GL_VERSION_OVERRIDE=4.6
    export LANG=pt_BR.UTF-8
    export XDG_RUNTIME_DIR=/tmp
    
    dbus-launch --exit-with-session startxfce4
"
LAUNCHER_EOF

chmod +x ~/launch_xfce.sh

Execução do Ambiente

Para iniciar o desktop Ubuntu, execute o script criado no terminal do Termux:

~/launch_xfce.sh

Após a execução do comando, alterne para o aplicativo Termux:X11 no seu dispositivo Android para interagir com a interface gráfica do Ubuntu 24.04.

Tags: termux PRoot-Distro Ubuntu android Termux-X11

Publicado em 9-23 13:42