#!/usr/bin/env bash set -euo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" ANDROID_DIR="$ROOT/apps/android" OUTPUT_DIR="$ANDROID_DIR/dist" KEYSTORE_FILE="$ANDROID_DIR/.factory-release.keystore" KEYSTORE_PROPS="$ANDROID_DIR/keystore.properties" mkdir -p "$OUTPUT_DIR" if [[ ! -f "$KEYSTORE_PROPS" ]]; then if [[ ! -f "$KEYSTORE_FILE" ]]; then echo "Generating factory release keystore at $KEYSTORE_FILE" keytool -genkeypair \ -alias ladill-frontdesk-kiosk \ -keyalg RSA \ -keysize 4096 \ -validity 10000 \ -keystore "$KEYSTORE_FILE" \ -storepass "change-me-before-production" \ -keypass "change-me-before-production" \ -dname "CN=Ladill Frontdesk Kiosk, OU=Hardware, O=Forty8Tech, L=Accra, ST=Greater Accra, C=GH" fi cp "$ANDROID_DIR/keystore.properties.example" "$KEYSTORE_PROPS" fi if [[ -z "${ANDROID_HOME:-}" && -d "$HOME/Library/Android/sdk" ]]; then export ANDROID_HOME="$HOME/Library/Android/sdk" fi if [[ -z "${JAVA_HOME:-}" ]]; then if /usr/libexec/java_home -v 17 >/dev/null 2>&1; then export JAVA_HOME="$(/usr/libexec/java_home -v 17)" fi fi cd "$ANDROID_DIR" ./gradlew --no-daemon clean assembleRelease APK_SRC="$ANDROID_DIR/app/build/outputs/apk/release/app-release.apk" APK_DEST="$OUTPUT_DIR/ladill-frontdesk-kiosk-$(grep versionName app/build.gradle.kts | head -1 | sed -E 's/.*"([^"]+)".*/\1/').apk" cp "$APK_SRC" "$APK_DEST" echo "" echo "Built release APK:" echo " $APK_DEST" echo "" echo "Package: com.ladill.frontdesk.kiosk" echo "Factory admin PIN: 462834 (change from kiosk admin after provisioning)" echo "" echo "See docs/KIOSK-MANUFACTURER-FLASH.md for full OEM flash instructions."