AVD - Android Virtual Device
Muito obrigado a @offsecjay por sua ajuda na criação deste conteúdo.
O que é
O Android Studio permite executar máquinas virtuais do Android que você pode usar para testar APKs. Para usá-las, você precisará de:
As ferramentas Android SDK - Baixe aqui.
Ou o Android Studio (com as ferramentas Android SDK) - Baixe aqui.
No Windows (no meu caso) após instalar o Android Studio eu tive as Ferramentas SDK instaladas em: C:\Users\<NomeDoUsuário>\AppData\Local\Android\Sdk\tools
No Mac, você pode baixar as ferramentas SDK e tê-las no PATH executando:
Ou a partir da interface gráfica do Android Studio conforme indicado em https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a que os instalará em ~/Library/Android/sdk/cmdline-tools/latest/bin/
e ~/Library/Android/sdk/platform-tools/
e ~/Library/Android/sdk/emulator/
Para os problemas de Java:
GUI
Preparar Máquina Virtual
Se você instalou o Android Studio, você pode simplesmente abrir a visualização do projeto principal e acessar: Ferramentas --> Gerenciador AVD.
Em seguida, clique em Criar Dispositivo Virtual
selecione o telefone que deseja usar e clique em Avançar.
Se você precisa de um telefone com a Play Store instalada, selecione um com o ícone da Play Store nele!
Na visualização atual, você poderá selecionar e baixar a imagem do Android que o telefone irá executar:
Então, selecione e se não estiver baixado, clique no símbolo de Download ao lado do nome (agora aguarde até que a imagem seja baixada).
Assim que a imagem for baixada, basta selecionar Avançar
e Concluir
.
A máquina virtual será criada. Agora, toda vez que você acessar o gerenciador AVD, ela estará presente.
Executar Máquina Virtual
Para executá-la, basta pressionar o botão Iniciar.
Ferramenta de Linha de Comando
Primeiramente, você precisa decidir qual telefone deseja usar, para ver a lista de telefones possíveis execute:
Depois de decidir o nome do dispositivo que deseja usar, você precisa decidir qual imagem do Android deseja executar neste dispositivo.
Você pode listar todas as opções usando sdkmanager
:
E baixe aquele (ou todos) que deseja usar com:
Depois de ter baixado a imagem do Android que deseja usar, você pode listar todas as imagens do Android baixadas com:
Neste momento, você decidiu o dispositivo que deseja usar e baixou a imagem do Android, então você pode criar a máquina virtual usando:
No último comando criei uma VM chamada "AVD9" usando o dispositivo "Nexus 5X" e a imagem do Android "system-images;android-28;google_apis;x86_64". Agora você pode listar as máquinas virtuais que você criou com:
Executar Máquina Virtual
Já vimos como você pode listar as máquinas virtuais criadas, mas você também pode listá-las usando:
Você pode simplesmente executar qualquer máquina virtual criada usando:
Ou usando opções mais avançadas, você pode executar uma máquina virtual como:
Opções da linha de comando
No entanto, existem muitas opções úteis de linha de comando diferentes que você pode usar para iniciar uma máquina virtual. Abaixo você pode encontrar algumas opções interessantes, mas pode encontrar uma lista completa aqui
Inicialização
-snapshot name
: Iniciar snapshot da VM-snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img
: Listar todos os snapshots gravados
Rede
-dns-server 192.0.2.0, 192.0.2.255
: Permite indicar separados por vírgula os servidores DNS para a VM.-http-proxy 192.168.1.12:8080
: Permite indicar um proxy HTTP a ser usado (muito útil para capturar o tráfego usando o Burp)-port 5556
: Define o número da porta TCP usado para o console e adb.-ports 5556,5559
: Define as portas TCP usadas para o console e adb.-tcpdump /path/dumpfile.cap
: Captura todo o tráfego em um arquivo
Sistema
-selinux {disabled|permissive}
: Define o módulo de segurança Linux Security-Enhanced Linux como desativado ou em modo permissivo em um sistema operacional Linux.-timezone Europe/Paris
: Define o fuso horário para o dispositivo virtual-screen {touch(default)|multi-touch|o-touch}
: Define o modo de tela sensível ao toque emulado.-writable-system
: Use esta opção para ter uma imagem de sistema gravável durante sua sessão de emulação. Você também precisará executaradb root; adb remount
. Isso é muito útil para instalar um novo certificado no sistema.
Fazendo root em um dispositivo da Play Store
Se você baixou um dispositivo com a Play Store, não será possível obter acesso root diretamente e você receberá esta mensagem de erro
Usando rootAVD com Magisk consegui fazer root nele (siga, por exemplo, este vídeo ou este).
Instalar Certificado Burp
Verifique a seguinte página para aprender como instalar um certificado CA personalizado:
pageInstall Burp CertificateÓtimas Opções AVD
Tirar um Snapshot
Você pode usar a GUI para tirar um snapshot da VM a qualquer momento:
Last updated