Esta página descreve como iniciar um build do AOSP usando o Cuttlefish.
Verificar a disponibilidade da KVM
O Cuttlefish é um dispositivo virtual e depende da disponibilidade da virtualização na máquina host.
Em um terminal da máquina host, confira se a virtualização com uma Kernel-based Virtual Machine (KVM) está disponível:
grep -c -w "vmx\|svm" /proc/cpuinfo
Esse comando precisa retornar um valor diferente de zero.
Ao executar em uma máquina ARM64, a maneira mais direta é procurar
/dev/kvm
:
find /dev -name kvm
Iniciar o Cuttlefish
Em uma janela do terminal, faça o download, crie e instale os pacotes host do Debian:
sudo apt install -y git devscripts equivs config-package-dev debhelper-compat golang curl
git clone https://github.com/google/android-cuttlefish
cd android-cuttlefish
tools/buildutils/build_packages.sh
sudo dpkg -i ./cuttlefish-base_*_*64.deb || sudo apt-get install -f
sudo dpkg -i ./cuttlefish-user_*_*64.deb || sudo apt-get install -f
sudo usermod -aG kvm,cvdnetwork,render $USER
sudo reboot
A reinicialização aciona a instalação de outros módulos do kernel e aplica as regras
udev
.O Cuttlefish faz parte da plataforma de código aberto do Android (AOSP). Os builds do dispositivo virtual estão no site de integração contínua do Android. Para encontrar um índice de todos os builds do Android, navegue até o site de integração contínua do Android em http://ci.android.com/.
Digite o nome da ramificação. Use a ramificação
aosp-main
padrão ou uma imagem genérica do sistema (GSI), comoaosp-android13-gsi
.Navegue até o build de destino aosp_cf_x86_64_phone e clique em userdebug para conferir o build mais recente.
Clique na caixa verde abaixo de userdebug para selecionar esse build. Um painel Details (detalhes) vai aparecer com mais informações específicas sobre o build. Clique em Artifacts (artefatos) para conferir uma lista de todos os artefatos anexados a esse build.
No painel "Artifacts", faça o download dos artefatos do Cuttlefish.
Clique no artefato
aosp_cf_x86_64_phone-img-xxxxxx.zip
para x86_64 ou no artefatoaosp_cf_arm64_only_phone-xxxxxx.zip
para ARM64, que contém as imagens do dispositivo. No nome de arquivo, "xxxxxx" é o ID do build do dispositivo.Role para baixo no painel e faça o download de
cvd-host_package.tar.gz
. Sempre faça o download do pacote host do mesmo build das imagens.
Crie uma pasta de contêiner no seu sistema local e extraia estes pacotes:
Arquitetura x86_64:
mkdir cf
cd cf
tar -xvf /path/to/cvd-host_package.tar.gz
unzip /path/to/aosp_cf_x86_64_phone-img-xxxxxx.zip
Arquitetura ARM64:
mkdir cf
cd cf
tar -xvf /path/to/cvd-host_package.tar.gz
unzip /path/to/aosp_cf_arm64_only_phone-img-xxxxxx.zip
Inicie o Cuttlefish:
HOME=$PWD ./bin/launch_cvd --daemon
Verificar se o Cuttlefish está visível pelo adb
Assim como em um dispositivo físico, o Cuttlefish fica visível pelo Android Debug Bridge (adb).
Na mesma pasta em que você iniciou o Cuttlefish, execute o comando abaixo para conferir uma lista de todos os dispositivos Android disponíveis pelo adb na máquina host:
./bin/adb devices
Acessar e interagir com o dispositivo virtual na Web
Por padrão, o Cuttlefish é iniciado com --start_webrtc
, o que ativa uma WebView
pela porta 8443 na máquina host.
Para acessar e interagir com seus dispositivos virtuais, acesse https://localhost:8443 no navegador da Web.
Para mais informações, consulte Cuttlefish: streaming WebRTC.
Parar o Cuttlefish
Pare o dispositivo virtual no mesmo diretório usado para iniciá-lo:
HOME=$PWD ./bin/stop_cvd