AVD - Android Virtual Device
Grazie mille a @offsecjay per il suo aiuto nella creazione di questo contenuto.
Che cos'è
Android Studio consente di eseguire macchine virtuali di Android che puoi utilizzare per testare gli APK. Per utilizzarle avrai bisogno di:
Gli strumenti Android SDK - Scarica qui.
Oppure Android Studio (con gli strumenti Android SDK) - Scarica qui.
In Windows (nel mio caso) dopo aver installato Android Studio ho avuto gli Strumenti SDK installati in: C:\Users\<UserName>\AppData\Local\Android\Sdk\tools
Su Mac puoi scaricare gli strumenti SDK e averli nel PATH eseguendo:
Oppure dall'interfaccia grafica di Android Studio come indicato in https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a che li installerà in ~/Library/Android/sdk/cmdline-tools/latest/bin/
e ~/Library/Android/sdk/platform-tools/
e ~/Library/Android/sdk/emulator/
Per i problemi di Java:
GUI
Prepara la Macchina Virtuale
Se hai installato Android Studio, puoi semplicemente aprire la vista del progetto principale e accedere a: Strumenti --> AVD Manager.
Successivamente, fai clic su Crea dispositivo virtuale
seleziona il telefono che desideri utilizzare e fai clic su Avanti.
Se hai bisogno di un telefono con Play Store installato, seleziona uno con l'icona del Play Store!
Nella vista attuale potrai selezionare e scaricare l'immagine di Android che il telefono eseguirà:
Quindi, selezionala e se non è già stata scaricata fai clic sul simbolo Download accanto al nome (ora attendi che l'immagine venga scaricata).
Una volta scaricata l'immagine, seleziona Avanti
e Fine
.
La macchina virtuale verrà creata. Ora ogni volta che accedi al gestore AVD sarà presente.
Esegui la Macchina Virtuale
Per avviarla basta premere il pulsante di avvio.
Strumento a riga di comando
Innanzitutto devi decidere quale telefono vuoi utilizzare, per visualizzare l'elenco dei telefoni possibili esegui:
Una volta che hai deciso il nome del dispositivo che vuoi utilizzare, devi decidere quale immagine Android vuoi eseguire su questo dispositivo.
Puoi elencare tutte le opzioni utilizzando sdkmanager
:
E scarica quello (o tutti) che vuoi utilizzare con:
Una volta scaricata l'immagine di Android che desideri utilizzare, puoi elencare tutte le immagini di Android scaricate con:
In questo momento hai deciso il dispositivo che vuoi utilizzare e hai scaricato l'immagine di Android, quindi puoi creare la macchina virtuale usando:
Nell'ultimo comando ho creato una VM chiamata "AVD9" utilizzando il dispositivo "Nexus 5X" e l'immagine Android "system-images;android-28;google_apis;x86_64". Ora puoi elencare le macchine virtuali che hai creato con:
Esegui macchina virtuale
Abbiamo già visto come è possibile elencare le macchine virtuali create, ma puoi anche elencarle usando:
Puoi semplicemente eseguire qualsiasi macchina virtuale creata usando:
Oppure utilizzando opzioni più avanzate è possibile eseguire una macchina virtuale come:
Opzioni della riga di comando
Tuttavia ci sono molte diverse opzioni utili della riga di comando che puoi utilizzare per avviare una macchina virtuale. Di seguito puoi trovare alcune opzioni interessanti ma puoi trovare un elenco completo qui
Avvio
-snapshot name
: Avvia lo snapshot della VM-snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img
: Elenca tutti gli snapshot registrati
Rete
-dns-server 192.0.2.0, 192.0.2.255
: Consente di indicare separatamente da virgola i server DNS alla VM.-http-proxy 192.168.1.12:8080
: Consente di indicare un proxy HTTP da utilizzare (molto utile per catturare il traffico utilizzando Burp)-port 5556
: Imposta il numero di porta TCP utilizzato per la console e adb.-ports 5556,5559
: Imposta le porte TCP utilizzate per la console e adb.-tcpdump /path/dumpfile.cap
: Cattura tutto il traffico in un file
Sistema
-selinux {disabled|permissive}
: Imposta il modulo di sicurezza Linux potenziato a sicurezza disabilitata o permessiva su un sistema operativo Linux.-timezone Europe/Paris
: Imposta il fuso orario per il dispositivo virtuale-screen {touch(default)|multi-touch|o-touch}
: Imposta la modalità dello schermo tattile emulato.-writable-system
: Utilizza questa opzione per avere un'immagine di sistema scrivibile durante la sessione di emulazione. Dovrai anche eseguireadb root; adb remount
. Questo è molto utile per installare un nuovo certificato nel sistema.
Ottenere i permessi di root su un dispositivo Play Store
Se hai scaricato un dispositivo con Play Store non sarai in grado di ottenere direttamente i permessi di root e riceverai questo messaggio di errore
Utilizzando rootAVD con Magisk sono riuscito a eseguire il root (segui ad esempio questo video o questo).
Installa il Certificato Burp
Controlla la seguente pagina per imparare come installare un certificato CA personalizzato:
pageInstall Burp CertificateBelle Opzioni AVD
Fare uno Snapshot
Puoi utilizzare l'interfaccia grafica per fare uno snapshot della VM in qualsiasi momento:
Last updated