Files
BuildChain/scripts/buildchain-setup

92 lines
3.0 KiB
Plaintext
Raw Permalink Normal View History

#!/system/bin/sh
# BuildChain Setup — installs Java, Python, Kotlin, Gradle, and dev tools via Termux
# Must be run from within Termux (or any shell with access to pkg/apt)
TERMUX_PREFIX="/data/data/com.termux/files/usr"
TERMUX_BIN="$TERMUX_PREFIX/bin"
echo "=== BuildChain Setup ==="
echo ""
# Check if we're in a Termux-capable environment
if [ ! -f "$TERMUX_BIN/pkg" ] && ! command -v pkg >/dev/null 2>&1; then
echo "ERROR: Termux pkg not found."
echo "This script must be run inside Termux or after Termux is installed."
echo ""
echo "Install Termux from F-Droid or GitHub, open it once, then run this again."
exit 1
fi
PKG="pkg"
command -v pkg >/dev/null 2>&1 || PKG="$TERMUX_BIN/pkg"
echo "[1/7] Updating package database..."
$PKG update -y 2>&1 | tail -3
echo ""
echo "[2/7] Installing Java (OpenJDK 21)..."
$PKG install -y openjdk-21 2>&1 | tail -3
echo " $(java -version 2>&1 | head -1)"
echo ""
echo "[3/7] Installing Python..."
$PKG install -y python 2>&1 | tail -3
echo " $(python3 --version 2>&1)"
echo ""
echo "[4/7] Installing Kotlin..."
$PKG install -y kotlin 2>&1 | tail -3
echo " $(kotlinc -version 2>&1 | head -1)"
echo ""
echo "[5/7] Installing Gradle..."
$PKG install -y gradle 2>&1 | tail -3
echo " $(gradle --version 2>&1 | grep 'Gradle ' | head -1)"
echo ""
echo "[6/7] Installing build essentials (git, cmake, make, clang, ndk tools)..."
$PKG install -y git cmake make clang ndk-sysroot binutils 2>&1 | tail -3
echo ""
echo "[7/7] Installing extra tools (curl, wget, zip, unzip, tar, openssh, jq)..."
$PKG install -y curl wget zip unzip tar openssh jq 2>&1 | tail -3
echo ""
echo "=== Setting up Android SDK structure ==="
ANDROID_HOME="/data/data/com.termux/files/home/android-sdk"
mkdir -p "$ANDROID_HOME/build-tools/35.0.2"
mkdir -p "$ANDROID_HOME/platform-tools"
# Symlink our build tools into the SDK structure so Gradle/AGP finds them
MODDIR=$(cat /data/adb/buildchain/moddir 2>/dev/null)
if [ -n "$MODDIR" ]; then
for tool in aapt aapt2 aidl dexdump zipalign split-select; do
ln -sf "$MODDIR/tools/build-tools/$tool" "$ANDROID_HOME/build-tools/35.0.2/$tool" 2>/dev/null
done
for tool in adb fastboot sqlite3; do
ln -sf "$MODDIR/tools/platform-tools/$tool" "$ANDROID_HOME/platform-tools/$tool" 2>/dev/null
done
echo " SDK structure created at $ANDROID_HOME"
fi
echo ""
echo "=== Setup Complete ==="
echo ""
echo "Installed:"
echo " Java: $(java -version 2>&1 | head -1)"
echo " Python: $(python3 --version 2>&1)"
echo " Kotlin: $(kotlinc -version 2>&1 | head -1)"
echo " Gradle: $(gradle --version 2>&1 | grep 'Gradle ' | head -1)"
echo " Git: $(git --version 2>&1)"
echo " CMake: $(cmake --version 2>&1 | head -1)"
echo " Clang: $(clang --version 2>&1 | head -1)"
echo ""
echo "Build tools: aapt2, aidl, zipalign (API 35)"
echo "BusyBox: $(busybox 2>&1 | head -1)"
echo ""
echo "Run 'buildchain status' to verify everything."
echo "Run 'buildchain test' to test all tools."
echo ""
echo "Source the environment in your shell:"
echo " source /data/adb/buildchain/env.sh"