diff --git a/scripts/setup-android-sdk.sh b/scripts/setup-android-sdk.sh index 0a5ebf1e1e..83e4aeabfa 100755 --- a/scripts/setup-android-sdk.sh +++ b/scripts/setup-android-sdk.sh @@ -17,17 +17,17 @@ elif [ "$TERMUX_NDK_VERSION" = 23c ]; then ANDROID_NDK_FILE=android-ndk-r${TERMUX_NDK_VERSION}-linux.zip ANDROID_NDK_SHA256=6ce94604b77d28113ecd588d425363624a5228d9662450c48d2e4053f8039242 else - echo "Error: unknown NDK version $TERMUX_NDK_VERSION" + echo "ERROR: unknown NDK version $TERMUX_NDK_VERSION" >&2 exit 1 fi -if [ ! -d $ANDROID_HOME ]; then - mkdir -p $ANDROID_HOME - cd $ANDROID_HOME/.. - rm -Rf $(basename $ANDROID_HOME) +if [ ! -d "$ANDROID_HOME" ]; then + mkdir -p "$ANDROID_HOME" + cd "$ANDROID_HOME/.." + rm -Rf "$(basename "$ANDROID_HOME")" # https://developer.android.com/studio/index.html#command-tools - echo "Downloading android sdk..." + echo "Downloading Android SDK..." termux_download https://dl.google.com/android/repository/${ANDROID_SDK_FILE} \ tools-$TERMUX_SDK_REVISION.zip \ $ANDROID_SDK_SHA256 @@ -38,11 +38,13 @@ if [ ! -d $ANDROID_HOME ]; then rm -Rf android-sdk-$TERMUX_SDK_REVISION/{emulator*,lib*,proguard,templates} fi -if [ ! -d $NDK ]; then - mkdir -p $NDK - cd $NDK/.. - rm -Rf $(basename $NDK) - echo "Downloading android ndk..." +if [ ! -d "$NDK" ]; then + mkdir -p "$NDK" + cd "$NDK/.." + rm -Rf "$(basename "$NDK")" + + # https://developer.android.com/ndk/downloads + echo "Downloading Android NDK..." termux_download https://dl.google.com/android/repository/${ANDROID_NDK_FILE} \ ndk-r${TERMUX_NDK_VERSION}.zip \ $ANDROID_NDK_SHA256 @@ -53,10 +55,24 @@ if [ ! -d $NDK ]; then rm -Rf android-ndk-r$TERMUX_NDK_VERSION/sources/cxx-stl/system fi -yes | $ANDROID_HOME/cmdline-tools/bin/sdkmanager --sdk_root=$ANDROID_HOME --licenses +if [ -x "$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" ]; then + SDK_MANAGER="$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" +elif [ -x "$ANDROID_HOME/cmdline-tools/bin/sdkmanager" ]; then + SDK_MANAGER="$ANDROID_HOME/cmdline-tools/bin/sdkmanager" +else + echo "ERROR: no usable sdkmanager found in $ANDROID_HOME" >&2 + echo "Checking other possible paths: (empty if not found)" >&2 + find "$ANDROID_HOME" -type f -name sdkmanager >&2 + exit 1 +fi + +echo "INFO: Using sdkmanager ... $SDK_MANAGER" +echo "INFO: Using NDK ... $NDK" + +yes | $SDK_MANAGER --sdk_root="$ANDROID_HOME" --licenses # The android platforms are used in the ecj and apksigner packages: -yes | $ANDROID_HOME/cmdline-tools/bin/sdkmanager --sdk_root=$ANDROID_HOME \ +yes | $SDK_MANAGER --sdk_root="$ANDROID_HOME" \ "platform-tools" \ "build-tools;${TERMUX_ANDROID_BUILD_TOOLS_VERSION}" \ "platforms;android-32" \