From 00bce1b6abd903d550ed334b384d1dd23a841261 Mon Sep 17 00:00:00 2001 From: ericwyuan Date: Thu, 10 Sep 2026 21:16:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20tools/install.sh=EF=BC=9A?= =?UTF-8?q?=E4=B8=80=E6=9D=A1=E5=91=BD=E4=BB=A4=E7=BC=96=E8=AF=91=E5=B9=B6?= =?UTF-8?q?=E4=BE=A7=E8=BD=BD=E5=88=B0=E6=89=8B=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 编译 release 版(enduro3 上 49.6 KB,debug 版是 168 KB),自动找已挂载的 GARMIN 卷复制到 GARMIN/APPS/。找不到卷时打印 .prg 路径和排查提示 —— macOS 上 fenix 7 之后的机型多数走 MTP,Finder 根本看不到这个盘,得用 OpenMTP 之类 的工具,这一点脚本里和 README 里都写了。 Co-Authored-By: Claude Opus 5 --- README.md | 17 +++++++++++++- tools/install.sh | 61 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+), 1 deletion(-) create mode 100755 tools/install.sh diff --git a/README.md b/README.md index d2dfd4d..eded046 100644 --- a/README.md +++ b/README.md @@ -358,7 +358,22 @@ monkeydo bin/Fenix8V3_fenix847mm.prg fenix847mm # 载入表盘 非 release 编译会同时产出 `bin/*-settings.json`,可在模拟器 `View → Settings` 载入以实时切换主题与指标。注意模拟器会**持久化**已保存的设置,改 `properties.xml` 的默认值对已运行过的实例不生效,需先重置应用数据。 -真机侧载:用 Garmin Express 或 Connect 手机 App 导入对应机型的 `bin/Fenix8V3_.prg`,或把 `.prg` 拷入手表 `/GARMIN/Apps/`。 +### 侧载到真机 + +```bash +tools/install.sh # 默认 enduro3 +tools/install.sh fenix847mm # 指定机型,id 见 manifest.xml +``` + +脚本会编译 release 版并自动找已挂载的 GARMIN 卷复制过去。找不到卷时会打印 +`.prg` 的路径和排查提示。 + +手动做的话就是:编译出 `bin/Fenix8V3_<机型>.prg`,拷进手表的 `GARMIN/APPS/`, +推出后拔线,表上长按 UP/MENU → 表盘 → 选 Fenix 8 V3。再长按 MENU 进表盘设置。 + +> macOS 上 fenix 7 之后的机型多数走 MTP,Finder 看不到这个盘。装 +> [OpenMTP](https://openmtp.ganeshrvel.com)(免费)或 Android File Transfer +> 就能拖文件了。 --- diff --git a/tools/install.sh b/tools/install.sh new file mode 100755 index 0000000..fd0b4ca --- /dev/null +++ b/tools/install.sh @@ -0,0 +1,61 @@ +#!/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 可以进这个表盘自己的设置,改主题和四个数据位"