#!/usr/bin/env bash # fetch_sdk.sh - install Android SDK cmdline-tools + platform + build-tools from OFFICIAL Google source. # Idempotent. Sets nothing permanent; prints the env vars to export. # Only dl.google.com is used. Do NOT point this at third-party mirrors. set -euo pipefail SDK_ROOT="${ANDROID_SDK_ROOT:-${ANDROID_HOME:-$HOME/android-sdk}}" PLATFORM="${ANDROID_PLATFORM_PKG:-platforms;android-34}" BUILDTOOLS="${ANDROID_BUILDTOOLS_PKG:-build-tools;34.0.0}" CLT_URL="${CLT_URL:-https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip}" mkdir -p "$SDK_ROOT/cmdline-tools" if [ ! -x "$SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" ]; then echo "[*] Downloading Android command-line tools (official) ..." tmp="$(mktemp -d)"; curl -fL "$CLT_URL" -o "$tmp/clt.zip" unzip -q "$tmp/clt.zip" -d "$tmp" rm -rf "$SDK_ROOT/cmdline-tools/latest"; mkdir -p "$SDK_ROOT/cmdline-tools/latest" mv "$tmp/cmdline-tools/"* "$SDK_ROOT/cmdline-tools/latest/" rm -rf "$tmp" fi SDKM="$SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" yes | "$SDKM" --sdk_root="$SDK_ROOT" --licenses >/dev/null || true "$SDKM" --sdk_root="$SDK_ROOT" "platform-tools" "$PLATFORM" "$BUILDTOOLS" echo "[+] SDK ready at $SDK_ROOT" echo " export ANDROID_SDK_ROOT=$SDK_ROOT ANDROID_HOME=$SDK_ROOT" echo " export PATH=\$PATH:$SDK_ROOT/platform-tools:$SDK_ROOT/${BUILDTOOLS/;//}"