termux-packages/scripts/setup-android-sdk.sh

78 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
set -e -u
: "${TERMUX_PKG_TMPDIR:="/tmp"}"
# Install desired parts of the Android SDK:
. $(cd "$(dirname "$0")"; pwd)/properties.sh
. $(cd "$(dirname "$0")"; pwd)/build/termux_download.sh
ANDROID_SDK_FILE=commandlinetools-linux-${TERMUX_SDK_REVISION}_latest.zip
ANDROID_SDK_SHA256=0bebf59339eaa534f4217f8aa0972d14dc49e7207be225511073c661ae01da0a
if [ "$TERMUX_NDK_VERSION" = "26b" ]; then
ANDROID_NDK_FILE=android-ndk-r${TERMUX_NDK_VERSION}-linux.zip
ANDROID_NDK_SHA256=ad73c0370f0b0a87d1671ed2fd5a9ac9acfd1eb5c43a7fbfbd330f85d19dd632
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" >&2
exit 1
fi
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..."
termux_download https://dl.google.com/android/repository/${ANDROID_SDK_FILE} \
tools-$TERMUX_SDK_REVISION.zip \
$ANDROID_SDK_SHA256
rm -Rf android-sdk-$TERMUX_SDK_REVISION
unzip -q tools-$TERMUX_SDK_REVISION.zip -d android-sdk-$TERMUX_SDK_REVISION
fi
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
rm -Rf android-ndk-r$TERMUX_NDK_VERSION
unzip -q ndk-r${TERMUX_NDK_VERSION}.zip
# Remove unused parts
rm -Rf android-ndk-r$TERMUX_NDK_VERSION/sources/cxx-stl/system
fi
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 | $SDK_MANAGER --sdk_root="$ANDROID_HOME" \
"platform-tools" \
"build-tools;${TERMUX_ANDROID_BUILD_TOOLS_VERSION}" \
"platforms;android-33" \
"platforms;android-28" \
"platforms;android-24"