install.sh 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. cd "$(dirname "$0")/.."
  4. MODE="${1:-debug}"
  5. if [[ "$MODE" != "debug" && "$MODE" != "release" ]]; then
  6. echo "Usage: $0 [debug|release]" >&2
  7. exit 2
  8. fi
  9. export JAVA_HOME="${JAVA_HOME:-/usr/lib/jvm/java-21-openjdk}"
  10. if [[ ! -x "$JAVA_HOME/bin/java" ]]; then
  11. echo "JDK 21 not found at $JAVA_HOME" >&2
  12. exit 1
  13. fi
  14. SDK="${ANDROID_HOME:-/opt/android-sdk}"
  15. ADB="$SDK/platform-tools/adb"
  16. PACKAGE="com.wasp.cardash_launcher"
  17. echo "==> Building $MODE APK"
  18. flutter build apk "--$MODE"
  19. APK="build/app/outputs/flutter-apk/app-$MODE.apk"
  20. if [[ ! -f "$APK" ]]; then
  21. echo "APK not found at $APK" >&2
  22. exit 1
  23. fi
  24. if ! "$ADB" devices | grep -q "device$"; then
  25. echo "No Android device/emulator connected. Start one with ./tool/emulator.sh 35" >&2
  26. exit 1
  27. fi
  28. echo "==> Installing $APK"
  29. "$ADB" install -r "$APK"
  30. echo "==> Ensuring CarDash is the HOME app"
  31. if ! "$ADB" shell cmd role add-role-holder android.app.role.HOME "$PACKAGE" >/dev/null 2>&1; then
  32. echo "Role manager command was unavailable; open Settings > General > Home app in CarDash."
  33. fi
  34. echo "==> Starting CarDash"
  35. "$ADB" shell am start -a android.intent.action.MAIN -c android.intent.category.HOME >/dev/null
  36. echo "Installed and started $PACKAGE"