#!/usr/bin/env bash # Align Tauri Android project with locally installed SDK (offline builds). set -euo pipefail ANDROID_GEN="${1:-/workspace/tauri_app/src-tauri/gen/android}" ANDROID_HOME="${ANDROID_HOME:-/opt/android-sdk}" ANDROID_SDK_ROOT="${ANDROID_SDK_ROOT:-${ANDROID_HOME}}" if [ ! -d "${ANDROID_GEN}" ]; then echo "Android project not found: ${ANDROID_GEN}" >&2 exit 1 fi if [ ! -d "${ANDROID_HOME}/platforms" ] && [ -d /opt/android-sdk-linux/platforms ]; then ANDROID_HOME="/opt/android-sdk-linux" ANDROID_SDK_ROOT="${ANDROID_HOME}" fi if [ ! -d "${ANDROID_HOME}/platforms" ]; then echo "Android platforms not found in ${ANDROID_HOME}/platforms" >&2 exit 1 fi SDK_LEVEL="$( find "${ANDROID_HOME}/platforms" -mindepth 1 -maxdepth 1 -type d -name 'android-*' \ | sed 's|.*/android-||' \ | sort -n \ | tail -n 1 )" if [ -z "${SDK_LEVEL}" ]; then echo "Не удалось определить установленный Android SDK platform" >&2 exit 1 fi APP_BUILD="${ANDROID_GEN}/app/build.gradle.kts" if [ -f "${APP_BUILD}" ]; then sed -i -E "s/compileSdk = [0-9]+/compileSdk = ${SDK_LEVEL}/g" "${APP_BUILD}" sed -i -E "s/targetSdk = [0-9]+/targetSdk = ${SDK_LEVEL}/g" "${APP_BUILD}" fi GRADLE_PROPS="${ANDROID_GEN}/gradle.properties" touch "${GRADLE_PROPS}" if ! grep -q '^android.builder.sdkDownload=' "${GRADLE_PROPS}"; then printf '\n# Offline / isolated network: do not download SDK packages from Google\nandroid.builder.sdkDownload=false\n' >> "${GRADLE_PROPS}" else sed -i 's/^android.builder.sdkDownload=.*/android.builder.sdkDownload=false/' "${GRADLE_PROPS}" fi cat > "${ANDROID_GEN}/local.properties" < Android SDK patched: compileSdk/targetSdk=${SDK_LEVEL}, sdk.dir=${ANDROID_HOME}, sdkDownload=false"