Skip to content

android-sdk

Version 2026.145.1302
Repo superproject

Android SDK toolchain (sdkmanager/adb/aapt2/emulator + API-36 system image) under /opt/android-sdk Installs the Android SDK from CachyOS/AUR packages under /opt/android-sdk: cmdline-tools (sdkmanager/avdmanager), platform-tools (adb), build-tools 36 (aapt2), platform android-36, and the emulator; plus apkeep (the by-package-name app downloader the charly check adb install-app verb drives IN the pod), installed from its upstream precompiled x86_64 binary. The one component with NO package anywhere — the API-36 google_apis_playstore x86_64 system image — is fetched by sdkmanager into a persistent cache and copied alongside the AUR-installed tools. Every artifact is a fixed path under /opt/android-sdk, so the SDK is verifiable by probing those paths and running adb.

This candy’s plan: — the runnable spec charly check executes against a live deployment. check: steps are idempotent probes; run: steps change state.

Intent Step
run download=https://github.com/EFForg/apkeep/releases/download/${APKEEP_VERSION}/apkeep-x86_64-unknown-linux-gnu
run command=set -euo pipefail export JAVA_HOME=/usr/lib/jvm/charly-jdk21 export PATH=“$JAVA_HOME/bin:/opt/android-sdk/cmdline-tools/latest/bin:$PATH” SDK_CACHE=/var/cache/charly-android-sysimg SYSIMG=“system-images;android-${EMULATOR_API_LEVEL};${EMULATOR_IMG_TYPE};${EMULATOR_SYS_IMG}” SENTINEL=“${SDK_CACHE}/.charly-sysimg-complete-${EMULATOR_API_LEVEL}-${EMULATOR_IMG_TYPE}” if [ ! -f “${SENTINEL}” ]; then # Bounded for-loop emits enough y’s for the license prompts without # the SIGPIPE that yes | sdkmanager triggers under pipefail. for _ in $(seq 1 100); do echo y; done | sdkmanager –sdk_root=“${SDK_CACHE}” –licenses >/dev/null sdkmanager –sdk_root=“${SDK_CACHE}” “${SYSIMG}” touch “${SENTINEL}” fi mkdir -p /opt/android-sdk/system-images cp -a “${SDK_CACHE}/system-images/.” /opt/android-sdk/system-images/
check the cmdline-tools sdkmanager lands under /opt/android-sdk
check platform-tools provides adb
check build-tools 36 provides aapt2 (Appium’s ADB badging probe needs it)
check the emulator binary is installed
check adb runs and reports the Android Debug Bridge banner
check apkeep (the by-package-name app downloader) is installed and on PATH
check the android-36 platform is installed
check the sdkmanager-fetched google_apis_playstore x86_64 system image is present
check file=/opt/android-sdk/cmdline-tools/latest/bin/avdmanager