Skip to content

Instantly share code, notes, and snippets.

@jaredh
Created December 3, 2025 06:51
Show Gist options
  • Select an option

  • Save jaredh/a5289bb78ef24e14b5c1cd80eae20649 to your computer and use it in GitHub Desktop.

Select an option

Save jaredh/a5289bb78ef24e14b5c1cd80eae20649 to your computer and use it in GitHub Desktop.
Embedded Android Studio sdkmanager
#!/bin/bash
# Direct Android SDK Manager CLI invocation using Android Studio JARs
ANDROID_LIB=$HOME/android-studio/plugins/android/lib
STUDIO_LIB=$HOME/android-studio/lib
KOTLIN_LIB=$HOME/android-studio/plugins/Kotlin/kotlinc/lib
# Build comprehensive classpath - order matters for class resolution
CLASSPATH="$STUDIO_LIB/protobuf.jar"
CLASSPATH="$CLASSPATH:$ANDROID_LIB/libstudio.proto.jar"
CLASSPATH="$CLASSPATH:$ANDROID_LIB/google-analytics-library.jar"
CLASSPATH="$CLASSPATH:$ANDROID_LIB/sdklib.jar"
CLASSPATH="$CLASSPATH:$ANDROID_LIB/sdk-common.jar"
CLASSPATH="$CLASSPATH:$ANDROID_LIB/sdk-tools.jar"
CLASSPATH="$CLASSPATH:$ANDROID_LIB/repository.jar"
CLASSPATH="$CLASSPATH:$ANDROID_LIB/repository-sdk-schema.jar"
CLASSPATH="$CLASSPATH:$ANDROID_LIB/sdklib-sdk-schema.jar"
CLASSPATH="$CLASSPATH:$ANDROID_LIB/android-common.jar"
CLASSPATH="$CLASSPATH:$ANDROID_LIB/android-base-common.jar"
CLASSPATH="$CLASSPATH:$ANDROID_LIB/build-common.jar"
CLASSPATH="$CLASSPATH:$ANDROID_LIB/libagp-version.jar"
CLASSPATH="$CLASSPATH:$ANDROID_LIB/libjava_version.jar"
CLASSPATH="$CLASSPATH:$STUDIO_LIB/util-8.jar"
CLASSPATH="$CLASSPATH:$STUDIO_LIB/util.jar"
CLASSPATH="$CLASSPATH:$STUDIO_LIB/annotations.jar"
CLASSPATH="$CLASSPATH:$STUDIO_LIB/lib.jar"
CLASSPATH="$CLASSPATH:$STUDIO_LIB/app.jar"
CLASSPATH="$CLASSPATH:$KOTLIN_LIB/kotlin-stdlib.jar"
CLASSPATH="$CLASSPATH:$KOTLIN_LIB/kotlin-stdlib-jdk8.jar"
CLASSPATH="$CLASSPATH:$KOTLIN_LIB/kotlinx-coroutines-core-jvm.jar"
CLASSPATH="$CLASSPATH:$STUDIO_LIB/jaxb-api.jar"
CLASSPATH="$CLASSPATH:$STUDIO_LIB/jaxb-runtime.jar"
CLASSPATH="$CLASSPATH:$STUDIO_LIB/javax.activation.jar"
CLASSPATH="$CLASSPATH:$STUDIO_LIB/groovy.jar"
# Set SDK root - default to $HOME/Android/Sdk if not set
SDK_ROOT="${ANDROID_SDK_ROOT:-$HOME/Android/Sdk}"
# Invoke SDK Manager CLI
exec java -cp "$CLASSPATH" com.android.sdklib.tool.sdkmanager.SdkManagerCli --sdk_root="$SDK_ROOT" "$@"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment