A Raspberry Pi 5, placa mais recente da linha Raspberry Pi, mantém a tradição de suas antecessoras ao oferecer uma plataforma poderosa, compacta, simples de usar e com um preço acessível para entusiastas das áreas de desenvolvimento e tecnologia. Dado seu grande poder computacional – sobretudo em sua versão mais completa, com 8GB de RAM – é possível utilizar nela sistemas operacionais que vão além das distros Linux comumente utilizadas nas placas Raspberry Pi, sendo possível rodar sistemas operacionais bastante escaláveis e completos, como o Android 14, por exemplo. Com isso, é possível desenvolver soluções bastante interessantes com Android na Raspberry Pi 5.
Ainda, com a disponibilidade de HDMI e portas USBs oferecida pela placa, é possível também adicionar uma tela HDMI com touch screen, o que aumenta significativamente a qualidade de experiência de uso do Android na Raspberry Pi 5, dando realmente a impressão de estar-se utilizando um celular ou tablet. Com isso, é possível criar soluções que exigem rica interface de usuário, tais como totens, IHMs para maquinário industrial, cardápios eletrônicos interativos para restaurantes e bares e muito mais.
Neste artigo, será explorado o processo de compilação, grave execução do Android 14 na placa Raspberry Pi 5, além de abordar o uso de uma tela HDMI com touch screen.
Android: Visão Geral
Muito provavelmente você já ouviu falar que o Android está sendo usado nos mais variados dispositivos eletrônicos atualmente, tais como: smartphones, tablets, televisores, TV boxes, smartwatches, centrais multimídia de carros e em uma infinidade de outros dispositivos que nos cercam no cotidiano. Mas você sabe o que é o Android?
O Android é um sistema operacional baseado no Linux (ambos compartilham muitas coisas, incluindo boa parte do Kernel Linux), desenvolvido inicialmente pela startup Android Inc. (startup posteriormente adquirida pelo Google). A primeira versão do Android foi lançada no segundo semestre de 2008, sendo um grande sucesso pela interatividade, fluidez e facilidade de uso que oferecia, perante outras opções de sistemas operacionais para dispositivos móveis na época.
Em pouco tempo, o Android tornou-se um dos sistemas operacionais dominantes para dispositivos móveis, status que mantém até os dias atuais. O Android, ao contrário da grande maioria dos seus concorrentes em sistemas operacionais para dispositivos móveis, possui grande parte de seu código-fonte aberto, estando portanto em pleno desenvolvimento pela comunidade de desenvolvedores global.
Por essa razão, muitas das grandes inovações atualmente aparecem primeiro no Android, já que ele é melhorado todo dia por desenvolvedores independentes e fabricantes. O código-fonte do Android é referido como AOSP (Android Open-Source Project), e pode ser obtido livremente aqui.
É importante dizer que, conforme dito, o Android possui grande parte de seu código-fonte aberto, não tudo. Isso é verdade pois, por mais aberto que o Android seja, os dispositivos sempre possuirão especificações de hardware (quantidade de RAM, modelo de SoC, I/Os, etc.) diferentes entre si. Logo, é correto dizer que o Android é composto de duas partes: system e vendor.
- system: corresponde a parte do Android que é comum entre todos os dispositivos, ou seja, a parte de software que independe do hardware utilizado.
- vendor: corresponde a parte do Android que contém particularidades referentes ao hardware do dispositivo que rodará o Android. Aqui, entram os softwares que são específicos do fabricante e modelo de dispositivo.
Portanto, para compilar o Android para um dispositivo, é preciso ter o software (drivers, device trees, binários fechados do fabricante de SoC, etc.) relativo ao hardware do mesmo.
Requisitos para Instalação do Android na Raspberry Pi 5
Como dito anteriormente, o Android é utilizado em dispositivos de muitos fabricantes ao redor do mundo, cada um com seu hardware e requisitos diferentes, provando que o Android é um sistema operacional bastante versátil e escalável. O mesmo vale para a Raspberry Pi 5.
Para a Raspberry Pi 5, existe um projeto open-source na Internet chamado Raspberry-Vanilla, o qual contém tudo que é preciso para baixar o código-fonte, compilar e gravar no micro-SD card o Android 14 para a Raspberry Pi 5. Ou seja, o projeto já contém tudo que é necessário (system e vendor) para você compilar seu próprio Android 14 para a sua Raspberry Pi 5.
Porém, é muito importante frisar que o Android 14 é, sim, um sistema operacional que demanda muitos recursos computacionais (processamento e memória RAM) do Raspberry Pi 5. Dessa forma, é preciso seguir as observações abaixo:
- Sempre utilizar a versão da Raspberry Pi 5 com maior quantidade de memória RAM possível, o que corresponde até a data de escrita deste artigo na versão com 8GB de memória RAM.
- É mandatório utilizar um cooler e dissipadores, uma vez que o Android 14 utiliza muito processamento e vai provocar um aquecimento significativo no SoC. Caso não seja utilizado o cooler e os dissipadores, as chances da Raspberry Pi 5 desligar logo nos primeiros minutos de uso devido a alta temperatura de CPU são altíssimas.
- Naturalmente, por demandar muito processamento, a Raspberry Pi 5 vai consumir muita energia. Logo, é mandatório utilizar uma fonte com boa capacidade de corrente (5A, por exemplo).
Materiais Necessários
Para conseguir rodar o Android 14 com fluidez na Raspberry Pi 5 e com tela HDMI touch screen, você precisará de:
- Raspberry Pi 5 com 8GB de RAM.
- Fonte Raspberry Pi 5 Oficial.
- Case Raspberry Pi 5 Oficial, o qual já vem com cooler e dissipadores.
- Cartão micro-SD classe 10 de, no mínimo, 16GB.
- Um display HDMI touch screen.
- Um adaptador micro-HDMI.
Caso opte por utilizar um monitor comum como tela, será preciso utilizar um teclado e mouse USB também.
Configuração Recomendada do Computador para Compilar o Android para a Raspberry Pi 5
Compilar o Android 14 (ou qualquer outra versão de Android) é algo que exige muito processamento, espaço em disco e memória RAM, pois o Android 14 é um sistema operacional gigantesco. Portanto, será preciso utilizar um computador com configurações bastante expressivas para esta compilação.
Abaixo segue as configurações recomendadas do computador para compilar o Android 14 para a Raspberry Pi 5:
- Processador: i7, com 12 ou mais núcleos, com frequência máxima de 4900MHz
- Armazenamento: SSD (ou, idealmente, um drive NVME) de 1TB, uma vez que o Android 14 sozinho (código-fonte + imagens compiladas) irá ocupar cerca de 250GB.
- Memória RAM: 32 GB de RAM
- Memória de SWAP: é preciso ampliar o tamanho da memória de swap para 64GB. Saiba como fazer isso clicando aqui.
Em relação ao sistema operacional do computador, há uma ressalva: não é possível utilizar Windows para compilar o Android 14 (ou qualquer outra versão de Android, na verdade), é preciso usar Linux. A distro recomendada é a versão LTS mais recente do Ubuntu (no momento da escrita deste artigo, corresponde à versão 22.04 LTS). Não é recomendável o uso de máquina virtual para rodar o Ubuntu, uma vez que o desempenho na compilação seria muito inferior em relação a uma máquina com Ubuntu (Linux) nativo, além de haver chance de efeitos colaterais da virtualização que inviabilizaram a compilação.
Ainda, como o código-fonte do Android tem um tamanho gigantesco (mais de 200GB), é recomendável você uma conexão bastante rápida para poder baixar tudo em um curto período de tempo. Como recomendação, o mínimo seria uma conexão de 300Mbps.
Instalação de Dependências para Compilar o Android para a Pi 5
Uma vez com os materiais necessários para rodar o Android e com acesso a um computador com as configurações recomendadas, é o momento de instalar as dependências para poder compilar o Android 14 para a Raspberry Pi 5.
Primeiramente, atualize todos os pacotes instalados em seu computador utilizando os comandos abaixo:
sudo apt-get update sudo apt-get upgrade -y
Com todos pacotes atualizados, algumas dependências podem ser instaladas com os seguintes comandos:
sudo apt-get install bc coreutils dosfstools e2fsprogs fdisk kpartx mtools ninja-build pkg-config python3-pip sudo pip3 install meson mako jinja2 ply pyyaml dataclasses
Para finalizar a instalação das dependências necessárias para a compilação do Android 14 para a Raspberry Pi 5, faça a instalação da versão mais atual da ferramenta repo, utilizando para isso os comandos abaixo:
mkdir -p ~/.bin PATH="${HOME}/.bin:${PATH}" curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo chmod a+rx ~/.bin/repo
Compilação do Android para a Raspberry Pi 5
Para a compilação, o primeiro passo é criar um diretório para armazenar o código-fonte do Android e as imagens compiladas. Para isso, dentro do seu home, utilize os comandos abaixo para criar o diretório Android_14_rpi4 e entrar nele.
cd ~ mkdir Android_14_rpi4 cd Android_14_rpi4
Feito isso, é o momento de fazer o repo init. O Android, sob o ponto de vista de organização de software, é um aglomerado de centenas (ou, em alguns casos, até milhares) de projetos distintos (projetos Git), onde cada projeto é responsável por uma parte do Android. O repo init é uma operação usada para inicializar os repositórios Git que irão ser, num momento posterior, baixados para poderem ser utilizados na compilação do Android. Para o caso da Raspberry Pi 5, o repo init pode ser feito com o seguinte comando:
repo init -u https://android.googlesource.com/platform/manifest -b android-14.0.0_r55 --depth=1
E, ainda, os códigos-fonte e binários específicos da Broadcom (fabricante do SoC da Raspberry Pi 5) devem ser incluídos nesta operação utilizando os seguintes comandos:
curl -o .repo/local_manifests/manifest_brcm_rpi.xml -L https://raw.githubusercontent.com/raspberry-vanilla/android_local_manifest/android-14.0/manifest_brcm_rpi.xml --create-dirs curl -o .repo/local_manifests/remove_projects.xml -L https://raw.githubusercontent.com/raspberry-vanilla/android_local_manifest/android-14.0/remove_projects.xml
Neste ponto, todas as referências para os projetos que irão compor o Android 14 para a Raspberry Pi 5 estão configuradas. Elas ficam em um diretório oculto, chamado .repo . Para ver esse conteúdo, utilize o comando abaixo:
ls .repo
Você verá o conteúdo exibido na figura 1:
Figura 1 – conteúdo do .repo
É chegada a hora de baixar todo o código-fonte do Android 14 para a Raspberry Pi 5, assim como alguns binários da Broadcom exigidos para a compilação. Para isso, será feito um repo sync. O repo sync consiste na operação de baixar cada um dos projetos que compõem o Android 14 para a Raspberry Pi 5. Como dito anteriormente, o conteúdo a ser baixado é gigantesco (mais de 200GB), e dependendo da velocidade de sua conexão à Internet, é recomendável que você deixe o repo sync sendo feito de um dia para o outro.
Para fazer o repo sync, utilize o comando abaixo:
repo sync
Após finalizado o repo sync, o diretório que você criou para armazenar o Android 14 para a Raspberry Pi 5 estará com muitas pastas e arquivos, todos correspondentes às partes de system e vendor do Android 14. O seu diretório estará como o mostrado na figura 2.
Figura 2 – estrutura de diretórios do Android 14
Enfim, chegou a hora de compilar o Android 14 para a Raspberry Pi 5. Para isso, siga o procedimento abaixo:
1.Prepare as variáveis de ambiente para a compilação com o comando abaixo:
. build/envsetup.sh
2. Informe o “produto” (tipo de Android 14) a ser compilada como sendo aosp_rpi5-ap2a-userdebug (versão comum do Android, em modo user debug) utilizando o comando abaixo:
lunch aosp_rpi5-ap2a-userdebug
3. Inicie a compilação, especificando todas as CPUs do seu computador para isso:
make bootimage systemimage vendorimage -j$(nproc)
Agora basta aguardar que a compilação termine. Pode ser um bom negócio deixar compilando de um dia para o outro, dado que o processo é demorado.
Observe que todas as CPUs do seu computador serão utilizadas no computador, significando que, durante a compilação:
- Seu computador ficará muito lento para quaisquer outras operações. Então, evite utilizá-lo enquanto compila o Android
- Seu computador ficará por horas com uso de CPU em 100%, levando a um uso constante do cooler dele. Portanto, deixe seu computador no ambiente mais arejado possível, para evitar superaquecimento e, consequentemente, o CPU throttling.
- Seu computador vai consumir bastante energia (em relação ao uso cotidiano dele). Se você utilizar um notebook,deixe-o todo o tempo na tomada.
Após algumas horas, a compilação estará concluída, e você poderá ver as imagens compiladas na pasta out/target/product/rpi5 dentro do diretório que você criou para Armazenar o Android 14. Você pode ver as imagens compiladas com o comando abaixo:
ls out/target/product/rpi5/*.img
Você verá as imagens compiladas conforme mostrado na figura 3.
Figura 3 – imagens compiladas do Android 14 para a Raspberry Pi 5
Gravação das Imagens Compiladas do Android no cartão micro SD
Uma vez com as imagens compiladas, chegou a hora de gravá-las no cartão micro-SD, para posterior uso na Raspberry Pi 5.
Há, no conteúdo que você já baixou, um script que faz isso da forma mais transparente possível, chamado rpi5-mkimg.sh. Este script automaticamente faz o particionamento do cartão micro-SD e grava nas partições as imagens corretas / esperadas. Para utilizar esse script, siga o procedimento abaixo:
1. Insira o cartão micro-SD no seu computador. Você pode precisar de um adaptador USB para isso, caso seu computador não tenha entrada para micro-SD ou cartão-SD.
2. Rode o script com o comando abaixo:
./rpi5-mkimg.sh
Basta aguardar a gravação do cartão. Em poucos minutos, o micro-SD estará com o Android 14 pronto para ser usado na Raspberry Pi 5. Lembre-se de remover o cartão / ejetar o cartão com segurança, para evitar que o mesmo se corrompa.
Como Utilizar o Display HDMI Touchscreen na Raspberry Pi 5?
Antes de colocar o micro-SD na Raspberry Pi 5, é preciso conectar na placa o display HDMI touchscreen. O referido display requer duas ligações:
- HDMI: esta ligação deve ser feita com o cabo HDMI fornecido junto com o display e com o adaptador micro-HDMI adquirido. Utilize a saída HDMI 1 da Raspberry Pi 5.
- Cabo micro-USB: o cabo micro-USB é responsável tanto por alimentar o display via USB da Raspberry Pi 5, quanto por permitir que o Android faça a leitura dos eventos de toque feitos na tela. Portanto, este cabo deve ser ligado no display (na primeira entrada, logo abaixo do conector de HDMI) e em qualquer porta USB livre da Raspberry Pi 5.
Feitas estas ligações, basta colocar o micro-SD na Raspberry Pi 5 e alimentá-la. O resultado final – placa com fonte e display conectados – pode ser visto na figura 4.
Figura 4 – setup completo com Raspberry Pi 5, fonte e display HDMI touch screen
Como referência, este suporte para o display HDMI touch screen foi impresso na impressora 3D (com filamento PLA), e o modelo pode ser obtido clicando aqui.
Utilizando o Android na Pi 5
Finalmente, para utilizar o Android 14 na Raspberry Pi 5, basta agora ligar a fonte na tomada. Após alguns segundos, o Android será inicializado e você pode configurá-lo e utilizá-lo exatamente como faria com qualquer smartphone ou tablet do mercado.
Após a inicialização e configuração inicial completa, seu setup estará com Android 14 rodando plenamente, conforme mostra o vídeo abaixo.
Se você tiver dúvidas, sugestões ou experiências para compartilhar, fique a vontade para deixar um comentário abaixo. E para não perder nenhum conteúdo como este, não deixe de nos seguir no Instagram.