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.