#!/bin/bash # 编译并侧载到通过 USB 接入的 Garmin 手表。 # # tools/install.sh # 默认 enduro3 # tools/install.sh fenix847mm # 指定机型 # # 机型 id 见 manifest.xml 的 。 # # 前提:手表用数据线接到电脑,并且在 Finder 里能看到名为 GARMIN 的卷。 # 看不到的话见本文件末尾的说明。 set -e DEV="${1:-enduro3}" ROOT="$(cd "$(dirname "$0")/.." && pwd)" SDK="$HOME/Library/Application Support/Garmin/ConnectIQ/Sdks" MONKEYC="$(ls -d "$SDK"/*/bin/monkeyc 2>/dev/null | sort | tail -1)" [ -z "$MONKEYC" ] && { echo "找不到 monkeyc,请先装 Connect IQ SDK"; exit 1; } [ -f "$ROOT/developer_key.der" ] || { echo "缺 developer_key.der"; exit 1; } grep -q "\"$DEV\"\|id=\"$DEV\"" "$ROOT/manifest.xml" || { echo "manifest.xml 里没有机型 '$DEV'"; exit 1; } PRG="$ROOT/bin/Fenix8V3_${DEV}.prg" echo "==> 编译 $DEV(release)" mkdir -p "$ROOT/bin" "$MONKEYC" -o "$PRG" -f "$ROOT/monkey.jungle" -y "$ROOT/developer_key.der" \ -d "$DEV" -r 2>&1 | tail -1 # Garmin 卷的名字通常就是 GARMIN,个别机型会带型号后缀 VOL="" for v in /Volumes/*; do [ -d "$v/GARMIN" ] && VOL="$v" && break done if [ -z "$VOL" ]; then cat <<'EOS' ==> 没找到手表。 在 Finder 里看不到 GARMIN 卷,通常是这两种情况之一: 1. 表没解锁 —— 部分机型插上后要在表上确认一次 2. 走的是 MTP 协议 —— macOS 的 Finder 不支持 MTP。fenix 7 之后的机型 多半是这种。装一个 OpenMTP(免费,https://openmtp.ganeshrvel.com) 或 Android File Transfer,就能像普通盘一样浏览手表了。 用 MTP 工具时,把下面这个文件拖到手表的 GARMIN/APPS/ 目录即可: EOS echo " $PRG" exit 0 fi DEST="$VOL/GARMIN/APPS" mkdir -p "$DEST" cp "$PRG" "$DEST/" echo "==> 已复制到 $DEST/$(basename "$PRG")" echo echo "接下来:" echo " 1. 在 Finder 里推出(Eject)手表这个卷,再拔线" echo " 2. 表上长按 UP/MENU -> 表盘 -> 找到 Fenix 8 V3" echo " 3. 再长按 MENU 可以进这个表盘自己的设置,改主题和四个数据位"