Script em Python para automatizar a criacao de um Android Virtual Device (AVD) e aplicar root com Magisk usando o projeto rootAVD.
O fluxo automatizado e:
- Validar a instalacao do Android SDK.
- Instalar os pacotes necessarios do SDK.
- Criar o AVD, se ele ainda nao existir.
- Iniciar o emulador com
-writable-system. - Aguardar o dispositivo aparecer no
adb. - Localizar o
ramdiskcorreto. - Executar o
rootAVD.she selecionar a opcao do Magisk.
- macOS com Android SDK instalado
- Android SDK Command-line Tools (
cmdline-tools/latest) platform-toolsemulator- Python 3
rootAVD
Por padrao, o script espera:
- SDK em
~/Library/Android/Sdk rootAVD.shem~/tools/rootAVD/rootAVD.sh
- Detecta a arquitetura do host (
arm64oux86_64) - Seleciona automaticamente a
system imageadequada quando--pkg autoe usado - Instala:
platform-toolsemulatorplatforms;android-<api>system-images;android-<api>;<channel>;<abi>
- Cria o AVD se necessario
- Inicia o emulador com proxy HTTP configuravel
- Executa o
rootAVDapontando para oramdiskcorreto do AVD
target- Atalho opcional para informar o nome do AVD ou um pacote
system-images;...
- Atalho opcional para informar o nome do AVD ou um pacote
--sdk- Caminho do Android SDK
--avd- Nome do AVD a criar/usar
--pkg- Pacote da system image
--api- API Android usada para montar o pacote automatico
--channel- Canal da imagem, por exemplo
google_apis_playstore
- Canal da imagem, por exemplo
--device- Perfil do device no
avdmanager
- Perfil do device no
--proxy- Proxy HTTP passado ao emulador
--rootavd- Caminho do script
rootAVD.sh
- Caminho do script
--skip-sdk-download- Nao instala/atualiza dependencias do SDK
--magisk-choice- Opcao enviada ao menu do
rootAVD
- Opcao enviada ao menu do
--no-emulator- Nao inicia o emulador; assume que ja existe um device online no
adb
- Nao inicia o emulador; assume que ja existe um device online no
Ajuda:
python3 android-avd-magisk-automation.py -hCriar um AVD automaticamente usando a imagem compativel com o host:
python3 android-avd-magisk-automation.py --avd Pentest_ARM2 --pkg auto --api 34Usar argumento posicional como nome do AVD:
python3 android-avd-magisk-automation.py ehtmobileUsar uma system image explicita:
python3 android-avd-magisk-automation.py \
--avd ehtmobile \
--pkg 'system-images;android-34;google_apis_playstore;arm64-v8a'Executar sem baixar pacotes do SDK:
python3 android-avd-magisk-automation.py \
--avd ehtmobile \
--skip-sdk-downloadExecutar contra um emulador que ja esta online:
python3 android-avd-magisk-automation.py \
--avd ehtmobile \
--no-emulatorDefinir proxy customizado:
python3 android-avd-magisk-automation.py \
--avd ehtmobile \
--proxy http://127.0.0.1:8080Para Apple Silicon:
python3 android-avd-magisk-automation.py \
--avd Pentest_ARM2 \
--api 34 \
--channel google_apis_playstore \
--pkg auto \
--proxy http://127.0.0.1:8080Depois da execucao:
- Faça
Cold Bootno AVD. - Abra o app
Magisk. - Finalize a configuracao inicial do Magisk, se solicitada.
- Reinicie o emulador se necessario.
- O script detecta o host e recomenda
arm64-v8aem Apple Silicon ex86_64em hosts Intel. - Quando
--pkg autoe usado, a imagem e montada automaticamente com base em--api,--channele na arquitetura do host. - A localizacao do
ramdiske resolvida a partir doconfig.inido AVD e, como fallback, do caminho derivado do pacotesystem-images. - A opcao de menu do
rootAVDpode mudar entre versoes. Se necessario, ajuste--magisk-choice.
Verifique se o arquivo existe no caminho esperado:
ls ~/tools/rootAVD/rootAVD.shOu informe manualmente:
python3 android-avd-magisk-automation.py \
--rootavd /caminho/para/rootAVD.shO script exige pelo menos:
cmdline-tools/latest/bin/avdmanagercmdline-tools/latest/bin/sdkmanagerplatform-tools/adbemulator/emulator
Se estiver usando um SDK fora do padrao:
python3 android-avd-magisk-automation.py --sdk /caminho/do/sdkVerifique se o emulador realmente iniciou:
~/Library/Android/Sdk/platform-tools/adb devicesSe o device ja estiver online, rode com:
python3 android-avd-magisk-automation.py --no-emulatorEm Apple Silicon, prefira arm64-v8a.
Exemplo:
system-images;android-34;google_apis_playstore;arm64-v8aEm macOS Intel, prefira x86_64.
O script tenta localizar:
ramdisk.imgramdisk-qemu.img
Caso o layout da imagem seja diferente, valide o conteudo de:
~/.android/avd/<nome>.avd/config.inie o diretorio da system image no SDK.
- O script foi escrito com foco em macOS.
- A automacao depende do comportamento atual do menu do
rootAVD. - O processo nao conclui a configuracao final dentro do app Magisk; ainda e necessario abrir o app apos o
Cold Boot.
Este repositorio nao define licenca no estado atual. Se o projeto for publicado ou compartilhado, vale adicionar uma licenca explicita.