Skip to content

Instantly share code, notes, and snippets.

@valtoni
Last active May 17, 2025 01:59
Show Gist options
  • Save valtoni/0e9e42d5a0c03403242b60d4be58dddc to your computer and use it in GitHub Desktop.
Save valtoni/0e9e42d5a0c03403242b60d4be58dddc to your computer and use it in GitHub Desktop.
Install Android SDK, cmdline, set enviroment variables and path
# Automatiza download, instalação e configuração completa do Android SDK com variáveis no estilo %%ENV%%
# 0. Garantir execução do script sem bloqueio
Set-ExecutionPolicy Bypass -Scope Process -Force
# Define as variáveis de caminho no estilo Windows
$env:ANDROID_SDK_ROOT = "C:\work\apps\android"
$env:ANDROID_SDK_CURR = "36.0.0"
$env:ANDROID_HOME = "%ANDROID_SDK_ROOT%"
$env:ANDROID_BIN_PATH = "%ANDROID_SDK_ROOT%\build-tools\%ANDROID_SDK_CURR%;%ANDROID_SDK_ROOT%\cmdline-tools\bin"
$SDKRoot = $env:ANDROID_SDK_ROOT
$CmdlineURL = "https://dl.google.com/android/repository/commandlinetools-win-9477386_latest.zip"
$ZipName = "commandlinetools.zip"
$DestDir = "$SDKRoot\cmdline-tools"
$LatestPath = "$DestDir\latest"
$BuildToolsVersion = $env:ANDROID_SDK_CURR
$PlatformVersion = "android-35"
Write-Host "[🔥] Começando preparo do Android SDK completo..."
# 1. Criar estrutura
Write-Host "[+] Criando diretórios: $DestDir"
New-Item -Path "$DestDir\temp" -ItemType Directory -Force | Out-Null
# 2. Download do Command Line Tools
Write-Host "[+] Baixando Command Line Tools..."
Invoke-WebRequest -Uri $CmdlineURL -OutFile $ZipName
# 3. Extração
Write-Host "[+] Extraindo..."
Expand-Archive -Path $ZipName -DestinationPath "$DestDir\temp" -Force
# 4. Ajustar estrutura
Write-Host "[+] Reorganizando..."
Move-Item -Path "$DestDir\temp\cmdline-tools" -Destination $LatestPath -Force
Remove-Item -Path "$DestDir\temp" -Recurse -Force
Remove-Item $ZipName -Force
# 5. Instalar pacotes com sdkmanager
$SdkManager = "$LatestPath\bin\sdkmanager.bat"
Write-Host "[+] Instalando componentes essenciais..."
& $SdkManager "platform-tools" "platforms;$PlatformVersion" "build-tools;$BuildToolsVersion" | Out-Null
# 6. Atualizar PATH da sessão PowerShell com checagem
Write-Host "[+] Atualizando PATH da sessão..."
$buildToolsPath = "$SDKRoot\build-tools\$BuildToolsVersion"
$platformToolsPath = "$SDKRoot\platform-tools"
if (-not ($env:Path -like "*$platformToolsPath*")) {
$env:Path = "$platformToolsPath;$env:Path"
}
if (-not ($env:Path -like "*$buildToolsPath*")) {
$env:Path = "$buildToolsPath;$env:Path"
}
Write-Host "`n[v] Android SDK pronto para uso"
Write-Host "[→] sdkmanager: $SdkManager"
Write-Host "[→] build-tools: $BuildToolsVersion"
Write-Host "[→] platform: $PlatformVersion"
Write-Host "[→] PATH atualizado nesta sessão."
Write-Host "`n💡 Dica: use %ANDROID_BIN_PATH% no PATH do sistema para builds globais."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment