Usar o Cuttlefish para iniciar um build do AOSP

Esta página ensina a 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 ARM, a maneira mais direta é procurar /dev/kvm:

find /dev -name kvm

Iniciar o Cuttlefish

  1. Em uma janela do terminal, faça o download, crie e instale os pacotes host do Debian:

    sudo apt install -y git devscripts config-package-dev debhelper-compat golang curl
    git clone https://github.com/google/android-cuttlefish
    cd android-cuttlefish
    for dir in base frontend; do
      cd $dir
      debuild -i -us -uc -b -d
      cd ..
    done
    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.

  2. 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/.

  3. Digite o nome da ramificação. Use a ramificação aosp-master padrão ou uma imagem genérica do sistema (GSI), como aosp-android13-gsi.

  4. Navegue até o build de destino aosp_cf_x86_64_phone e clique em userdebug para conferir o build mais recente.

  5. 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.

  6. No painel "Artifacts", faça o download dos artefatos do Cuttlefish.

    1. Clique no artefato aosp_cf_x86_64_phone-img-xxxxxx.zip, que contém as imagens do dispositivo. No nome de arquivo, "xxxxxx" é o ID do build do dispositivo.

    2. 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.

  7. Crie uma pasta de contêiner no seu sistema local e extraia estes pacotes:

    mkdir cf
    cd cf
    tar -xvf /path/to/cvd-host_package.tar.gz
    unzip /path/to/aosp_cf_x86_64_phone-img-xxxxxx.zip
    
  8. Para iniciar 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