#!/usr/bin/env bash # Start CrklEmulator via launchd so qemu survives Cursor/agent sandboxes on macOS. set -euo pipefail BREW_PREFIX="$(brew --prefix 2>/dev/null || echo /opt/homebrew)" ANDROID_HOME="${ANDROID_HOME:-$BREW_PREFIX/share/android-commandlinetools}" AVD_NAME="${AVD_NAME:-CrklEmulator}" GPU="${EMULATOR_GPU:-host}" LABEL=com.crkl.emulator PLIST="/tmp/${LABEL}.plist" UID_NUM="$(id -u)" pkill -f 'qemu-system' >/dev/null 2>&1 || true launchctl bootout "gui/${UID_NUM}/${LABEL}" >/dev/null 2>&1 || true sleep 1 : >/tmp/crkl-emulator.log cat >"$PLIST" < Label${LABEL} ProgramArguments ${ANDROID_HOME}/emulator/emulator -avd${AVD_NAME} -memory3072 -cores4 -no-audio -gpu${GPU} -accelon -no-snapshot-load -grpc8554 -no-metrics EnvironmentVariables ANDROID_HOME${ANDROID_HOME} PATH ${ANDROID_HOME}/emulator:${ANDROID_HOME}/platform-tools:/usr/bin:/bin StandardOutPath/tmp/crkl-emulator.log StandardErrorPath/tmp/crkl-emulator.log RunAtLoad EOF launchctl bootstrap "gui/${UID_NUM}" "$PLIST" launchctl kickstart -k "gui/${UID_NUM}/${LABEL}" echo "Emulator launchd job ${LABEL} started (log: /tmp/crkl-emulator.log)"