#!/usr/bin/env bash # 安装 Mac 常驻「连接守护」LaunchAgent(每 15s 扫描 ADB + 自动拉起 Termux Agent) set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SDK_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)" PROJ_ROOT="$(cd "${SDK_ROOT}/.." && pwd)" LABEL="com.karuo.workphone.connection-keeper" PLIST="${HOME}/Library/LaunchAgents/${LABEL}.plist" LOG="${SDK_ROOT}/logs/connection_keeper.log" mkdir -p "${SDK_ROOT}/logs" "${HOME}/Library/LaunchAgents" cat > "${PLIST}" < Label ${LABEL} ProgramArguments /bin/bash ${SDK_ROOT}/scripts/connection_keeper_daemon.sh WorkingDirectory ${PROJ_ROOT} EnvironmentVariables PATH /opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin ANDROID_ADB_SERVER_PORT 5038 WORKPHONE_SDK_PORT 8899 KEEPER_INTERVAL 15 DEVICE_SERIAL 192.168.110.80:5555 DEVICE_ID xgfe65eimrrofyws RunAtLoad KeepAlive StandardOutPath ${LOG} StandardErrorPath ${LOG} EOF launchctl bootout "gui/$(id -u)/${LABEL}" 2>/dev/null || true launchctl bootstrap "gui/$(id -u)" "${PLIST}" launchctl enable "gui/$(id -u)/${LABEL}" launchctl kickstart -k "gui/$(id -u)/${LABEL}" 2>/dev/null || \ bash "${SDK_ROOT}/scripts/connection_keeper_daemon.sh" --bg echo "✅ 连接守护 LaunchAgent 已安装: ${LABEL}" echo " 日志: ${LOG}" echo " 停止: bash ${SDK_ROOT}/scripts/connection_keeper_daemon.sh --stop"