1+ #! /bin/bash
2+ set -e
3+ set +H
4+
5+ URL_SDK=" https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip"
6+
7+ # Options.
8+ if [ -z " $PLATFORM " ]; then
9+ PLATFORM=" 34"
10+ fi
11+ if [ -z " $BUILD_TOOLS " ]; then
12+ BUILD_TOOLS=" 34.0.0"
13+ fi
14+ if [ -n " $BASE_PACKAGES " ]; then
15+ IFS=' ' read -ra PACKAGES <<< " $BASE_PACKAGES"
16+ else
17+ PACKAGES=( " platform-tools" " platforms;android-$PLATFORM " " build-tools;$BUILD_TOOLS " )
18+ fi
19+ if [ -n " $EXTRA_PACKAGES " ]; then
20+ IFS=' ' read -ra extra <<< " $EXTRA_PACKAGES"
21+ PACKAGES=(" ${PACKAGES[@]} " " ${extra[@]} " )
22+ fi
23+
24+ DEBIAN_FRONTEND=" noninteractive" sudo apt update &&
25+ sudo apt install --no-install-recommends -y openjdk-17-jdk-headless unzip wget usbutils &&
26+ apt clean
27+
28+ # Prepare install folder.
29+ mkdir -p " $ANDROID_HOME "
30+ chown -R " $_REMOTE_USER :$_REMOTE_USER " " $ANDROID_HOME "
31+
32+ su - " $_REMOTE_USER "
33+
34+ cd $ANDROID_HOME
35+
36+ wget -q " $URL_SDK " -O sdk.zip
37+ unzip sdk.zip
38+ rm sdk.zip
39+
40+ mkdir -p $ANDROID_HOME /cmdline-tools/latest
41+ cd $ANDROID_HOME /cmdline-tools
42+ shopt -s extglob dotglob
43+ mv ! (latest) latest
44+ shopt -u dotglob
45+
46+ cd $ANDROID_HOME
47+
48+ export PATH=" $PATH :$ANDROID_HOME /cmdline-tools/latest/bin"
49+
50+ # Save original JAVA_HOME.
51+ OG_JAVA_HOME=$JAVA_HOME
52+
53+ # thanks https://askubuntu.com/questions/772235/how-to-find-path-to-java#comment2258200_1029326.
54+ export JAVA_HOME=$( dirname $( dirname $( update-alternatives --list javac 2>&1 | head -n 1) ) )
55+
56+ # TODO: Update everything to future-proof for the link getting stale.
57+ # yes | sdkmanager "cmdline-tools;latest"
58+ # Download the platform tools.
59+ yes | sdkmanager " ${PACKAGES[@]} "
60+
61+ # Restore JAVA_HOME.
62+ export JAVA_HOME=$OG_JAVA_HOME
63+
64+ # Make sure the Android SDK has the correct permissions.
65+ sudo chown -R " $_REMOTE_USER :$_REMOTE_USER " " $ANDROID_HOME "
66+
67+ # Exist subshell.
68+ exit
0 commit comments