发布于 

智能手表刷机教程

⚠️ 风险提示

  • 刷机会清空全部数据,操作前完整备份(照片、通讯录、微信记录、OTP/Authenticator 密钥)
  • 解锁 Bootloader 通常失去保修,部分机型永久熔断保险丝(三星 Knox 0x1、小米部分机型)
  • 操作不当可能变砖,文末提供救砖思路,但不保证一定能救回
  • 电量 ≥ 60%、用原装数据线、台式机插机箱后置 USB 口
  • 本文仅用于技术学习与自有设备研究,请遵守当地法律法规

适用机型

手表刷机与手机完全不是一个量级的事。先明确本文覆盖范围:

类别 代表设备 可玩性 本文覆盖
Wear OS 手表 Google Pixel Watch、TicWatch(出门问问)、Fossil / Skagen / Michael Kors 系列、Mobvoi、部分小米/OPPO 海外款 ⭐⭐⭐⭐ ✅ 详细
Apple Watch 全系 ⛔ 基本无解 ✅ 如实说明
国产智能手表 华为 Watch GT/Watch 系列、小天才、小米手表、Amazfit、荣耀手表 ⭐ ✅ 有限说明
儿童手表 小天才、华为儿童手表、米兔 ⭐ ✅ 有限说明
开源 ESP32 手表 LILYGO T-Watch、Watchy、M5Stack ⭐⭐⭐⭐⭐ ✅ 重点推荐

⚠️ 总原则:手表刷机的风险远高于手机,收益远低于手机。 如果只是想换个表盘、装个 App,绝大多数情况不需要刷机。刷机的合理动机是:跑自己的固件、做硬件研究、救活被官方放弃的老设备。

手表与手机刷机的本质差异

维度 手机 手表 影响
存储容量 128GB ~ 1TB 4GB ~ 32GB 分区极小,刷错一个包就撑爆
Recovery 有标准 recovery / A/B 分区 多数没有独立 recovery,recovery 逻辑在 boot 里 无法卡刷,只能 fastboot 或官方工具
刷机接口 标准 USB-C / microUSB 多数无数据口,只有充电触点或磁吸 需要专用底座/夹具
Bootloader 多数可解锁 多数锁死,且无官方解锁渠道 刷不了第三方固件
官方固件 普遍提供 多数不提供公开下载 救砖困难
刷机工具 通用(fastboot / Odin / SP Flash) 高度厂商定制 资料稀缺
散热/续航 电池大,散热好 电池小(200~500mAh),无散热 刷一半没电 = 必砖
救砖手段 9008 / BROM 深刷 很多没有救砖通道 变砖基本等于报废
失败后果 还可救 可能永久报废(尤其无触点可短接的) 谨慎程度要翻倍

⚠️ 警告:手表刷机最致命的问题是电量。 手机刷到一半没电,插上充电器重来即可;手表刷到一半没电,bootloader 可能直接损坏,而很多手表没有等效于 9008 的深刷通道,结果是设备永久报废。

准备工作

通用工具清单

工具 用途 获取方式
Android SDK Platform Tools adb / fastboot developer.android.com/tools/releases/platform-tools
无线调试(Wireless Debugging) Wear OS 手表没有数据口时的主要通道 系统内置(Android 11+)
蓝牙配对工具 部分手表通过蓝牙 adb 系统内置
厂商专用工具 官方恢复 / 救砖 各厂商售后(多数不公开)
Arduino IDE ESP32 手表开发 arduino.cc
PlatformIO ESP32 手表开发(推荐) platformio.org
esptool.py ESP32 烧录底层工具 GitHub: espressif/esptool
USB-TTL 串口模块 调试、救砖、拿 shell CH340 / CP2102 / FT232(几块钱)
万用表 / 逻辑分析仪 找串口引脚、测电压 —

环境检查

# Windows PowerShell
cd D:\platform-tools
.\adb.exe version
.\adb.exe devices
# Linux / macOS
adb version
adb devices

# Linux udev
sudo tee /etc/udev/rules.d/51-android.rules <<'EOF'
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="2ca3", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="303a", MODE="0666", GROUP="plugdev"
EOF
sudo udevadm control --reload-rules
sudo udevadm trigger

常用 VID:

VID 设备
18d1 Google(Pixel Watch、多数 Wear OS)
2ca3 Google 备用
2717 小米
12d1 华为
303a / 1a86 ESP32 / CH340(开源手表)

📌 手表刷机前的第一件事:确认电量和充电方式。 让手表充到 100%,并在刷机全程保持充电状态(如果是触点充电,确保触点接触良好;磁吸的要确保吸牢)。

一、Wear OS 手表刷机

Wear OS(原 Android Wear)是谷歌的智能手表系统,本质上是裁剪版 Android。因此它保留了 adb 和 fastboot,是目前最可玩的智能手表类别。

1.1 适用设备

设备 平台 可解锁 BL 备注
Google Pixel Watch 1/2/3 三星 Exynos + Cortex-M ✅ 官方支持 最友好,官方提供工厂镜像
TicWatch Pro 3 / E3 / Pro 5 骁龙 4100 / Wear 4100+ ✅ 可解锁 刷机圈最常用
TicWatch C2 / E2 / S2 骁龙 2100 / Wear 2100 ⚠️ 部分可 较老
Fossil Gen 5 / Gen 6 骁龙 3100 / Wear 4100 ⚠️ 部分可 需查具体型号
Skagen / Michael Kors / Diesel 与 Fossil 同平台 ⚠️ 部分可 同 Fossil 方案
小米手表(国际版)/ Mi Watch Wear OS ⚠️ 有限 国内版是 MIUI for Watch,不是 Wear OS
OPPO Watch(国际版) Wear OS ⚠️ 有限
三星 Galaxy Watch 4/5/6 Wear OS(One UI Watch) ⚠️ 复杂 走三星 Knox 体系,见下文

📌 Pixel Watch 上手难度最低,官方提供完整工厂镜像和解锁支持,是 Wear OS 刷机的首选。TicWatch 系列次之(社区资料多)。

1.2 开启开发者选项

Wear OS 的开发者选项位置与手机不同:

  1. 设置 → 系统 → 关于(或 关于手表)
  2. 找到 版本号(Build number)
  3. 连续点击版本号 7 次
  4. 屏幕提示"您现在处于开发者模式"或 "You are now a developer"
典型路径(不同版本略有差异):
设置 → 系统 → 关于 → 版本号        (连点7次)
设置 → 开发者选项                  (新出现的菜单)

Wear OS 3.x 之后路径可能是:

设置 → 系统 → 关于 → 版本 → 版本号(连点7次)

1.3 开启调试方式

Wear OS 手表多数没有 USB 数据口(只有磁吸充电触点),所以调试主要靠无线。

方式一:无线调试(Android 11+,推荐)

1. 手表连上 WiFi(设置 → 连接 → WLAN)
2. 设置 → 开发者选项 → 打开 "ADB 调试"
3. 打开 "通过 WLAN 调试"(Wireless debugging)
4. 点击 "通过 WLAN 调试" 进入详情页
   → 显示 IP 地址和端口,如 192.168.1.50:5555
5. 点击 "使用配对码配对设备"(Pair device with pairing code)
   → 显示 配对码(6位数字)+ 端口,如 192.168.1.50:37891
# 电脑执行配对(Android 11+ 必须走配对流程)
adb pair 192.168.1.50:37891
# 提示:Enter pairing code:
# 输入手表上显示的6位配对码
# 预期输出:
# Successfully paired to 192.168.1.50:37891 [guid=adb-xxxx]

# 配对后连接
adb connect 192.168.1.50:5555
# 预期输出:connected to 192.168.1.50:5555

# 验证
adb devices
# List of devices attached
# 192.168.1.50:5555    device

⚠️ 注意:配对端口(如 37891)和连接端口(5555)是不同的。配对用前者,连接用后者。而且配对码每次点击都会变化,超时需要重新点。

方式二:蓝牙调试

1. 开发者选项 → 打开 "ADB 调试"
2. 打开 "蓝牙调试"(Bluetooth debugging)
3. 手机/电脑与手表蓝牙配对
4. 手表上会提示 "允许蓝牙调试?",确认
# 蓝牙调试的 adb 连接需要设备支持,多数情况不如 WiFi 稳定

方式三:USB 调试(少数有数据口的手表)

TicWatch Pro 3 / E3 等部分型号底座带数据引脚
或通过专用的 USB 调试底座
adb devices
# 直接识别

方式四:充电底座 + 特殊线

部分手表(如 TicWatch)的充电底座里其实有 USB 数据线,只是默认不暴露 adb。需要用特定的"调试底座"或"工程线"(把磁吸触点的 D+/D- 引出来)。

📌 TicWatch Pro 3 的调试底座:原装充电底座引出的 USB 线插电脑后,通常只充电不传数据。需要购买或自制"数据底座"(把底座 PCB 上的 D+/D- 触点飞线到 USB)。大部分人直接用无线调试更省事。

1.4 进入 Bootloader / Fastboot

# 方式一:adb 命令(最常用)
adb reboot bootloader

# 方式二:按键组合(各机型不同)
# TicWatch Pro 3:关机后长按 电源键 + 侧键
# Pixel Watch:关机后长按 表冠 + 侧键
# 通用:关机后按住 电源键 或 侧键,在震动瞬间切换到另一个键

# 验证
fastboot devices
# 预期输出:xxxxxxx    fastboot
按键进入的典型时序(以多数 Wear OS 手表为例):
1. 手表开机状态下,长按电源键 → 出现关机菜单
2. 选择关机,等待完全关机(屏幕全黑)
3. 按住 电源键(或侧键)不放
4. 感觉到震动 / 看到 LOGO 的瞬间,改为按住 另一个键
5. 进入 bootloader 界面

⚠️ 警告:按键组合因机型而异,且很多手表没有公开的官方说明。 错误的按键组合最多进不了 bootloader,不会损坏设备。但不要反复长按电源键强制重启,可能耗尽电量。

1.5 解锁 Bootloader

# 开发者选项里先打开 "OEM 解锁"
# 然后:
adb reboot bootloader
fastboot devices

# 解锁
fastboot flashing unlock
# 老设备可能用
fastboot oem unlock

手表屏幕会出现确认界面。Wear OS 手表的解锁确认通常是通过触摸屏幕或侧键旋转表冠来选择,不是音量键。

界面类似:
Unlock bootloader?
[触摸屏幕 / 旋转表冠 选择 YES]
[按侧键确认]
# 验证
fastboot getvar unlocked
# unlocked: yes

fastboot oem device-info
# Device unlocked: true

⚠️ 警告:解锁会清除手表全部数据,并且与手机解除配对。解锁后首次开机需要重新配对,可能耗时较长。

1.6 刷入系统

Wear OS 的分区与手机类似,但更小:

分区 作用 备注
boot 内核 + ramdisk
init_boot Android 13+ 的 ramdisk(Pixel Watch 3 等)
vendor_boot 厂商内核模块
dtbo 设备树覆盖
vbmeta AVB 校验元数据
super 动态分区容器(system/vendor/product) 通常只有几百 MB
system Wear OS 系统
vendor 厂商实现
persist 传感器校准(手表传感器多,尤其重要) ⛔ 绝不刷
oem 厂商定制数据(表盘、预装 App)
# Pixel Watch 官方工厂镜像刷入流程(与 Pixel 手机几乎一致)
# 1. 下载官方工厂镜像(developers.google.com/android/images 里 Wear OS 部分)
# 2. 解压
tar -xzf ryu-ap1a.240405.002-factory-xxxx.zip
cd ryu-ap1a.240405.002/

# 3. 刷入
adb reboot bootloader
./flash-all.sh
# 或保留数据:去掉 -w 后执行
# 手动逐分区
adb reboot bootloader
fastboot getvar current-slot

fastboot flash boot boot.img
fastboot flash init_boot init_boot.img
fastboot flash vendor_boot vendor_boot.img
fastboot flash dtbo dtbo.img
fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img

fastboot reboot fastboot
fastboot flash super super.img

fastboot erase userdata
fastboot erase metadata
fastboot reboot

1.7 adb sideload 侧载 OTA

手表最常用的升级方式其实是 sideload——因为很多手表的官方 OTA 推送会卡住或跳过。

# 进入 recovery
adb reboot recovery

# 手表屏幕显示恢复菜单(通常是:
# 无命令 / No command
# → 需要按 电源键 + 短按侧键(或旋转表冠)进入菜单)

# 菜单中选择 "Apply update from ADB"(从 ADB 应用更新)

# 电脑执行
adb devices
# 预期:xxxx    sideload

adb sideload ota_update.zip
# 预期输出:
# Loading update...
# Total xfer: 2.00x

📌 手表的 recovery 菜单操作方式:由于手表屏幕小、按键少,通常是:

  • 旋转表冠 或 滑动屏幕 = 上下移动选项
  • 按侧键 = 确认
  • 显示"No command"时,需要 长按电源键 + 短按侧键 才出菜单(不同机型不同)

1.8 安装第三方 App

不需要刷机,但需要 adb:

# 安装 APK
adb install myapp.apk
# 预期输出:Performing Streamed Install ... Success

# 安装到指定用户
adb install --user 0 myapp.apk

# 卸载系统应用(不需要 Root)
adb shell pm uninstall -k --user 0 com.google.android.apps.wearable.xxx

# 禁用应用
adb shell pm disable-user --user 0 com.xxx.package

# 推送文件
adb push watchface.watch /sdcard/

📌 手表屏幕小,adb install 后 App 可能不显示。Wear OS 只显示声明了 wearable 支持的 App。可用 adb shell am start -n com.xxx/.MainActivity 强制启动。

1.9 Wear OS 常见坑

问题 原因 处理
adb pair 提示 failed to authenticate 配对码过期或输错 重新点击"使用配对码配对"获取新码
adb connect 后 unauthorized 手表上没确认 手表屏幕看是否有授权弹窗,勾选"一律允许"
WiFi 断连后 adb 掉线 手表 WiFi 会休眠 开发者选项 → 打开"保持 WiFi 开启"(充电时)
adb devices 列表为空 端口错误 确认连接端口(5555),不是配对端口
fastboot devices 无输出 驱动问题 装 Google USB Driver;换 USB 2.0 口
刷完无法与手机配对 数据未清 / 配对数据残留 手表和手机都清除 Wear OS App 数据后重新配对
刷完传感器全失灵 persist 被刷掉 从备份恢复(见 1.10)
刷完耗电异常 系统未完成优化 充满电静置几小时,让系统重新学习使用模式

1.10 手表 persist 备份(重要)

手表的传感器(心率、血氧、加速度计、陀螺仪、气压计)校准数据都在 persist 分区。丢了之后:

  • 心率读数不准或完全不可用
  • 步数统计异常
  • 陀螺仪漂移
  • 蓝牙 MAC 异常
# 需要 Root 或 TWRP
adb shell
su

ls /dev/block/bootdevice/by-name/ | grep -E "persist|frp|misc"

dd if=/dev/block/bootdevice/by-name/persist of=/sdcard/persist.img
dd if=/dev/block/bootdevice/by-name/persistbak of=/sdcard/persistbak.img

exit
adb pull /sdcard/persist.img ./backup/

⚠️ 警告:手表的 persist 比手机更重要也更难恢复——手表传感器多,且售后通常也没有单独的校准工具(直接换主板)。刷机前必做。

二、Apple Watch:如实说明

⚠️ 结论先行:Apple Watch 基本无法自行刷机。这不是"方法难找",而是"技术上被封死"。

2.1 为什么不行

障碍 说明
无公开固件 苹果不提供 Apple Watch 的 IPSW 固件公开下载(iPhone 的 IPSW 是公开的,watchOS 不是)
专用诊断接口 Apple Watch 没有 USB 口,只有隐藏的诊断端口(在表带插槽内),需要苹果专用的 Apple Diagnostic Cable / 磁力诊断夹具
专用工具 需要苹果内部的 Apple Configurator 2 + 授权,或 AST 2(Apple Service Toolkit 2)——这是给 AASP(苹果授权服务提供商)用的,需要 Apple ID 授权
签名验证 watchOS 固件刷入需要苹果服务器实时签名(SHSH blobs),苹果停止签名的版本永远无法刷入
Secure Enclave 配对、激活、健康数据全部由 SEP 保护,硬件级
无 Bootloader 解锁 完全不存在"解锁 BL"这个概念
加密与绑定 watchOS 与配对的 iPhone 强绑定,且激活需要苹果服务器验证

2.2 实际可行的操作(有限)

操作 可行性 说明
系统更新 ✅ 通过 iPhone 上的 Watch App → 通用 → 软件更新
抹掉所有内容和设置 ✅ 手表 设置 → 通用 → 还原,或 iPhone Watch App 里操作
恢复出厂(DFU 模式) ✅ 长按侧键 + 表冠 10 秒以上,出现苹果 LOGO 时松开侧键
重新配对 ✅ iPhone Watch App → 开始配对
降级 watchOS ❌ 不可能,苹果停止签名后无法刷入
越狱 ❌ watchOS 从未有过公开可用的越狱(历史上仅有极少数研究性质的、未公开的漏洞利用)
安装非 App Store 应用 ⚠️ 需要开发者账号 + Xcode,通过 Apple Developer 身份侧载自己的 App(7 天/1 年签名限制),这不是刷机
刷入自定义系统 ❌ 不可能

2.3 官方恢复流程(救砖唯一手段)

1. 手表接上充电器(务必充上电)
2. 强制重启:长按 侧键 + 数码表冠 10 秒以上
   → 出现 Apple LOGO 时松开
3. 若仍卡住,进入恢复模式:
   - 断开充电器
   - 长按 侧键 + 数码表冠 10 秒
   - 看到 Apple LOGO 的瞬间,松开 表冠,继续按住 侧键
   - 直到看到 "连接到 iTunes / 连接到 iPhone" 的界面
4. 用 iPhone 的 Watch App 尝试恢复
5. 若提示需要服务 → Apple Store / AASP
设备卡死无法恢复时的现实选项:
- Apple Store 天才吧(保内免费,保外付费)
- 苹果授权服务提供商(AASP)
- 第三方维修店(多数也只能用 AST2,且需要苹果授权)
- 数据线级别的刷机:不存在

⚠️ 警告:网上所有"Apple Watch 刷机教程""Apple Watch 越狱工具"基本都是:

  • 把普通恢复出厂包装成"刷机"
  • 诱导下载恶意软件 / 付费工具
  • 完全虚构的内容

不要浪费时间,也不要花钱。

2.4 开发者侧载(唯一"折腾"空间)

如果你是苹果开发者,可以:

1. 注册 Apple Developer(付费或免费账号)
2. Xcode 中新建 watchOS App 项目
3. 连接 iPhone,Xcode 会自动配对手表
4. 在手表上信任开发者证书
5. 运行安装到手表
限制:
- 免费账号:7 天签名过期
- 付费账号:1 年
- 只能用 Xcode,不能装别人的 ipa
- 这不是刷机,是正常的应用开发部署

三、国产智能手表

华为、小天才、小米手表(国内版)、Amazfit、荣耀等国产手表,绝大多数 Bootloader 锁死,无官方解锁渠道,无公开固件。

⚠️ 诚实说明:本节不提供任何绕过 BL 锁的方法(也不存在公开的通用方法)。以下只介绍官方恢复模式与工程/工厂测试模式的进入方式——这些是官方提供或社区公开整理的常规功能,不是刷机。

3.1 现实情况

品牌 系统 BL 状态 官方固件 可玩性
华为 Watch GT / Watch 数字系列 HarmonyOS / LiteOS ⛔ 锁死 ❌ 无公开下载 ⭐ 极低
荣耀手表 HarmonyOS / MagicOS ⛔ 锁死 ❌ ⭐ 极低
小天才(儿童手表) 定制 Android ⛔ 锁死 ❌ ⭐ 极低
小米手表(国内版) MIUI for Watch ⛔ 锁死 ⚠️ 部分机型社区有 ⭐⭐
Amazfit / 华米 Zepp OS ⛔ 锁死 ⚠️ 部分有 ⭐⭐
OPPO / vivo 手表(国内版) 定制 RTOS ⛔ 锁死 ❌ ⭐

3.2 官方恢复模式

绝大多数国产手表都有恢复出厂的组合键,但具体组合各不相同,且厂商很少公开。以下是社区整理的常见方式(不同批次可能不同,请以官方客服答复为准):

操作 通用做法 说明
恢复出厂(系统内) 设置 → 系统 → 重置 / 恢复出厂设置 最安全,优先用这个
强制重启 长按 电源键 10~15 秒 解决卡死
Recovery 模式 关机后按住 电源键 + 上键(或下键)直到出现菜单 菜单里选 wipe data / factory reset
App 端恢复 手机上的配套 App(华为运动健康 / 小天才 App)里有"解除绑定""恢复出厂" 推荐

⚠️ 警告:国产手表的 Recovery 菜单通常用电源键确认、用上/下键(或旋转表冠)切换。强行按键进入的 Recovery 可能包含"清除所有数据"以外的危险选项(如 clear eMMC、format all),不要乱选。

3.3 工程模式 / 工厂测试模式

部分手表内置了工厂测试模式(Factory Test Mode / 工程模式),用于生产线检测硬件。这是厂家内部功能,进入方式在维修圈流传。

常见的进入方式(不保证有效,仅供参考):

方式 说明 适用
按键组合 关机后按住特定组合(如 电源+上+下) 部分机型
暗码 在拨号/计算器界面输入特定数字串,如 *#*#2846579#*#* 多见于华为/荣耀手机,手表上支持有限
adb 启动 adb shell am start -n com.xxx.factory/.FactoryTest 需 adb 权限,多数没有
连续点击版本号 开发者选项 → 工厂测试 少数机型
# 若能拿到 adb shell(极少见),可尝试列出 factory 相关应用
adb shell pm list packages | grep -i -E "factory|test|engineer|diag"

# 尝试启动
adb shell am start -n com.android.factorytest/.MainActivity

⚠️ 警告

  • 工程模式是厂家内部工具,里面的选项(如"清除 SN"、"写 IMEI"、"格式化全盘")可能永久损坏设备
  • 不要动任何你不理解的选项
  • 部分工程模式里的写号/写 SN 功能,在多数地区属于违法操作
  • 本文不提供、也不鼓励寻找具体机型的工程模式进入码

3.4 小米手表(国内版)的特殊情况

小米手表国内版(MIUI for Watch / Xiaomi HyperOS Watch)不是 Wear OS:

版本 系统 说明
小米手表(2019,国内) MIUI for Watch(基于 Android) 有 adb,但 BL 锁死
小米手表 Color / 运动版 定制 RTOS 无 adb
小米 Watch S1 / S2 / S3 定制系统 无 adb
小米手表(国际版 / Mi Watch) Wear OS ✅ 走 Wear OS 流程
# 国内版小米手表若开发者选项可用,可能能拿到 adb
# 设置 → 关于 → 连点版本号
# 设置 → 开发者选项 → ADB 调试
adb connect 192.168.1.x:5555

3.5 儿童手表(小天才等)

⚠️ 警告:儿童手表的"破解"在中文互联网上常见,但相关内容大量涉及:

  • 绕过家长管控(可能涉及未成年人保护问题)
  • 刷入第三方固件以安装社交/游戏 App
  • 未经授权修改运营商绑定

本文不提供此类方法。 合理需求(如家长自己管理设备)应通过官方 App 的家长控制功能实现。

合理操作 方式
恢复出厂 小天才 App → 设备管理 → 解绑 / 恢复出厂
换绑家长账号 官方 App 内操作
系统更新 手表自动推送,或 App 内检查更新
硬件故障 官方售后

四、开源 ESP32 手表(重点推荐)

这才是真正适合折腾的手表。 ESP32 平台的开源手表:

  • Bootloader 完全开放(原生支持 UART 下载模式)
  • 官方工具链免费(esptool.py、Arduino、PlatformIO)
  • 社区固件丰富
  • 坏不了(ESP32 的 ROM bootloader 在芯片里,永远救得回来)
  • 便宜(100~300 元)

4.1 主流开源手表

设备 主控 屏幕 特性 价格区间
LILYGO T-Watch 2020 V3 ESP32(双核 240MHz) 1.54" IPS 240×240 触摸 带触控、加速度计、可选 GPS/ LoRa 模块 中等
LILYGO T-Watch S3 ESP32-S3 1.85" AMOLED 性能更强,触摸 + 圆形屏 中高
LILYGO T-Watch Ultra ESP32-S3 2.0" AMOLED 较新型号 中高
Watchy(SQFMI) ESP32 1.54" 电子墨水屏 超长续航(7天+)、开源硬件 中高
M5Stack M5StickC / Core2 ESP32 0.96" / 2.0" 不是手表形态但可做穿戴 低中
LILYGO T-Display / T-Deck ESP32 / ESP32-S3 各种 开发板,可自制手表 低

📌 入门推荐:

  • 想做智能手表功能(消息通知、运动追踪)→ T-Watch 2020 V3(资料最多)
  • 想做超长续航、极客风格 → Watchy(电子墨水屏,完全开源硬件)
  • 想性能强 → T-Watch S3

4.2 环境搭建:PlatformIO(推荐)

PlatformIO 比 Arduino IDE 更适合手表项目(依赖管理更好)。

# 方式一:VS Code + PlatformIO 插件(推荐)
# 1. 安装 VS Code
# 2. 扩展市场搜索 "PlatformIO IDE" 安装
# 3. 重启 VS Code

# 方式二:命令行
pip install platformio
pio --version

创建 T-Watch 项目:

# 初始化项目
mkdir twatch-project && cd twatch-project
pio project init --board esp32dev

编辑 platformio.ini:

[env:twatch2020_v3]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
upload_speed = 921600

; T-Watch 2020 V3 使用 16MB Flash
board_build.partitions = default_16MB.csv
board_upload.flash_size = 16MB

; 关键:PSRAM 支持(T-Watch 2020 V3 有 8MB PSRAM)
build_flags =
    -DBOARD_HAS_PSRAM
    -mfix-esp32-psram-cache-issue
    -DLILYGO_WATCH_2020_V3

lib_deps =
    ; T-Watch 官方库
    https://github.com/Xinyuan-LilyGO/TTGO_TWatch_Library

⚠️ 注意:platformio.ini 里的 board 配置和 build_flags 必须与实际硬件型号匹配。T-Watch 2020 有多个版本(V1/V2/V3),屏幕驱动、引脚定义不同,刷错版本会白屏或无法启动(不会永久损坏,重刷即可)。

4.3 Arduino IDE 方式

1. Arduino IDE → 首选项 → 附加开发板管理器网址:
   https://espressif.github.io/arduino-esp32/package_esp32_index.json
2. 工具 → 开发板 → 开发板管理器 → 搜索 "esp32" → 安装
3. 工具 → 开发板 → 选择 "ESP32 Dev Module"(或 "ESP32S3 Dev Module")
4. 配置参数(关键):
   - Upload Speed: 921600
   - Flash Frequency: 80MHz
   - Flash Mode: QIO
   - Flash Size: 16MB (128Mb)
   - Partition Scheme: Default 16MB with spiffs
   - PSRAM: Enabled        ← T-Watch 2020 V3 必须开
   - Port: 选择实际 COM 口
5. 库管理器 → 搜索安装 TTGO T-Watch 库
6. 文件 → 示例 → TTGO T-Watch → 选一个示例
7. 点击上传

4.4 用 esptool.py 烧录(底层方式)

所有 Arduino/PlatformIO 上传最终都调用 esptool.py。直接用它更可控。

# 安装
pip install esptool

# 查看芯片信息(先确认连线正常)
esptool.py --port COM3 chip_id
# 预期输出:
# ESP32D0WDQ6 (revision 1)
# Chip ID: 0x123456789abc

# 读取 Flash 大小
esptool.py --port COM3 flash_id
# 预期输出:
# Manufacturer: c8
# Device: 4018      ← 表示 16MB
# Detected flash size: 16MB

# 整片备份(刷机前必做)
esptool.py --port COM3 --baud 921600 read_flash 0x0 0x1000000 twatch_backup_16MB.bin
# 这会花几分钟

# 全片擦除
esptool.py --port COM3 erase_flash

# 写入固件(Arduino/PlatformIO 编译出的 bin)
# 标准 ESP32 分区偏移:
esptool.py --port COM3 --baud 921600 write_flash \
  0x1000  bootloader.bin \
  0x8000  partitions.bin \
  0xe000  boot_app0.bin \
  0x10000 firmware.bin
# Linux/macOS 端口通常是 /dev/ttyUSB0 或 /dev/cu.usbserial-xxx
esptool.py --port /dev/ttyUSB0 chip_id

4.5 分区表说明

偏移 内容 说明
0x1000 bootloader.bin 二级 bootloader
0x8000 partitions.bin 分区表
0xe000 boot_app0.bin OTA 应用选择
0x10000 firmware.bin 主程序(app0)
后续 spiffs / littlefs 文件系统(表盘、字体、配置)

📌 T-Watch 的表盘/字体通常打包在 SPIFFS 或 LittleFS 分区里。只刷 firmware.bin 可能导致字体缺失、显示乱码。官方库提供了上传文件系统的方式:

# PlatformIO 上传文件系统
pio run --target uploadfs

4.6 进入下载模式

ESP32 有硬件自动下载电路(DTR/RTS 控制),多数开发板不需要手动操作。若需要手动:

T-Watch 手动进入下载模式:
1. 断开 USB
2. 按住 BOOT 键(部分 T-Watch 没有外露 BOOT 键,用侧键替代)
3. 插入 USB
4. 松开 BOOT 键
5. esptool 可连接
# 验证
esptool.py --port COM3 chip_id

📌 ESP32 的救砖能力极强:芯片内部 ROM 里固化了 first-stage bootloader,只要 GPIO0 能拉低上电,就永远能进下载模式。所以 ESP32 手表基本刷不坏——刷错了重刷即可。这是它相比商业手表最大的优势。

4.7 串口监视与调试

# PlatformIO
pio device monitor --baud 115200

# 或
screen /dev/ttyUSB0 115200     # Linux/macOS

# Windows:Arduino IDE 串口监视器 / PuTTY

预期输出(T-Watch 启动日志):

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:1184
load:0x40078000,len:13260
load:0x40080400,len:3028
entry 0x400805e4
[   123][I][twatch.cpp:45] setup(): T-Watch 2020 V3 initialized
[   156][I][display.cpp:22] Display: 240x240

4.8 现成固件推荐

固件 说明 适用
官方 TTGO T-Watch 示例 库自带示例 入门
Wasp-OS(已归档) MicroPython 的 Watchy 系统 Watchy
InkWatchy Watchy 的 C++ 固件 Watchy
Watchy 官方固件 SQFMI 提供 Watchy
Open-Smartwatch 开源智能手表项目 ESP32 系列
Chronos / 自制固件 GitHub 上大量个人项目 视项目而定

📌 选择固件时务必确认对应的硬件版本(T-Watch 2020 V1/V2/V3 屏幕驱动不同)。刷错版本最常见的症状是白屏或花屏——重刷正确版本即可,不会损坏硬件。

五、手表的特殊坑

5.1 电量(最致命)

风险 说明
刷一半没电 手表电池 200~500mAh,刷机功耗大,刷到一半没电 = bootloader 损坏
手表显示"充电中"但实际没充上 磁吸/触点偏移,虚充
USB 供电不足 电脑 USB 口输出不够
长时间刷机导致过热 手表无散热,过热会降频或断电保护

应对措施:

1. 刷机前充到 100%,静置 10 分钟确认没掉电
2. 刷机全程保持充电(磁吸的用胶带固定,触点的用夹具)
3. 如果是 Wear OS 无线调试刷机,WiFi 传输更耗电,务必插着充电
4. 刷机前关闭蓝牙、心率持续监测、抬腕亮屏等耗电功能
5. 环境温度适宜,不要在被窝/阳光直射下刷
# 查看电量
adb shell dumpsys battery | grep level
#  level: 100

# 查看温度
adb shell dumpsys battery | grep temperature
#  temperature: 285   (单位 0.1°C,即 28.5°C)

⚠️ 警告:电量低于 60% 不要开始任何手表刷机操作。 这不是保守建议——手表的 bootloader 损坏后,很多型号根本没有救砖通道。

5.2 充电触点接触

类型 问题 处理
磁吸(Apple Watch、多数 Wear OS) 位置偏移导致断续充电 用胶带固定;清理金属触点氧化层
金属触点(TicWatch 部分型号) 触点氧化、脏污 酒精棉片擦拭;用夹具压紧
USB-C(少数) 与普通手机相同 用原装线
无线充电 线圈对不准 对准中心;刷机时不要用(效率低)
清理触点:
1. 用无水酒精 + 棉签擦拭手表背面触点
2. 同样擦拭充电器触点
3. 检查触点有无凹陷/变形
4. 用万用表测充电电压(正常 5V 左右)

5.3 USB 调试授权

手表上必须先授权,否则 adb 连不上:

1. 手表开启 ADB 调试后,连接时屏幕会弹窗:
   "允许 USB 调试吗?" / "Allow USB debugging?"
   → 勾选 "一律允许使用这台计算机进行调试"
   → 点击 确定

2. 如果弹窗没出现:
   - 开发者选项 → 撤销 USB 调试授权 → 重新连接
   - 重启手表
   - 检查是否配对的是同一个网络
# 检查授权状态
adb devices
# xxxx    unauthorized    ← 未授权,看手表屏幕

# 撤销授权重来(手表端操作)
# 开发者选项 → 撤销 USB 调试授权

5.4 刷后无法配对

这是手表刷机最常见的后遗症:

表现 原因 处理
手机搜不到手表 蓝牙配对数据残留 手机蓝牙设置里忽略此设备,重新配对
配对时提示"已有配对记录" 手表端残留 手表恢复出厂;手机 Wear OS App 清除数据
配对卡在某一步 网络/账号问题 检查 Google 账号登录;换网络
Wear OS App 检测不到系统版本 系统被修改 刷回官方版本
# 手机端清除 Wear OS App 数据
adb shell pm clear com.google.android.wearable.app
adb shell pm clear com.google.android.gms

# 手表端重置
adb shell recovery --wipe_data
# 或进 Recovery 选 wipe data/factory reset
标准重配对流程:
1. 手表:设置 → 系统 → 断开连接并重置(或恢复出厂)
2. 手机:设置 → 蓝牙 → 找到手表 → 忽略此设备
3. 手机:设置 → 应用 → Wear OS → 存储 → 清除数据 + 清除缓存
4. 手机:卸载 Wear OS App 更新(可选,重装)
5. 重启手机和手表
6. 打开 Wear OS App 重新配对

5.5 屏幕与触摸

问题 原因
刷完白屏 屏幕驱动不匹配(ESP32)/ 分区刷错(Wear OS)
触摸失灵 触摸驱动不匹配 / 排线松动
显示错位 分辨率配置错误
屏幕闪烁 背光 PWM 配置错误

5.6 防水失效

⚠️ 警告:任何需要拆机的操作都会破坏手表的防水密封。手表拆开后基本无法恢复原有的 IP68/5ATM 防水等级。拆机前请权衡。

六、救砖

6.1 各平台救砖可行性

平台 救砖通道 可行性
ESP32 开源手表 ROM bootloader(GPIO0 拉低) ⭐⭐⭐⭐⭐ 永远能救
Pixel Watch 官方工厂镜像 + fastboot ⭐⭐⭐⭐ 很高
TicWatch(可解锁) fastboot + 官方固件 ⭐⭐⭐ 较高
其他 Wear OS(可解锁) fastboot(需找到固件) ⭐⭐ 中
三星 Galaxy Watch Odin / Download 模式 ⭐⭐ 中(有 Knox 问题)
国产 RTOS 手表 官方售后工具 ⭐ 低(个人基本无解)
Apple Watch 苹果官方(AST2) ⭐ 低(需苹果授权)

6.2 通用救砖步骤

1. 先充电 30 分钟以上(很多"砖"只是没电)
2. 强制重启:长按电源键 15~30 秒
3. 尝试按键进入 bootloader / recovery / download 模式
4. 若能进 fastboot → 刷官方固件
5. 若能进 recovery → adb sideload 官方 OTA 包
6. 若完全无反应 → 拆机短接(有风险)
7. 售后

6.3 Wear OS 救砖命令

# 1. 尝试进 fastboot
fastboot devices

# 2. 切槽(A/B 机型)
fastboot set_active other
fastboot reboot

# 3. 清数据
fastboot erase userdata
fastboot erase metadata
fastboot reboot

# 4. 完整刷入官方固件
./flash-all.sh

# 5. 三星 Galaxy Watch 系(走 Odin 流程)
# 关机 → 按住 电源键 + 上键 进 Download 模式 → Odin 刷四件套

6.4 ESP32 救砖(最简单)

# 无论刷成什么样,都能救
# 1. 进下载模式(GPIO0 拉低上电,或按住 BOOT 键插 USB)
# 2. 擦除
esptool.py --port COM3 erase_flash

# 3. 重刷官方固件
esptool.py --port COM3 --baud 921600 write_flash \
  0x1000  bootloader.bin \
  0x8000  partitions.bin \
  0xe000  boot_app0.bin \
  0x10000 firmware.bin

# 4. 或直接用 PlatformIO 重新上传
pio run --target upload

6.5 手表救砖的现实

⚠️ 警告

  • 没有公开固件的手表,变砖基本等于报废。买之前先确认该型号是否有公开固件下载,这是最重要的"可刷性"判断标准
  • 国产 RTOS 手表(华为 GT、Amazfit 等)没有 fastboot 概念,没有公开固件,没有第三方工具,个人完全无法救砖
  • 拆机短接手表主板的风险远高于手机——排线极细、元件极小、防水全毁
  • 官方售后是绝大多数手表变砖的唯一出路

七、操作检查清单

Wear OS 手表:

  • [ ] 确认型号与系统版本
  • [ ] 确认 Bootloader 可解锁(开发者选项有 OEM 解锁且可操作)
  • [ ] 电量 100%,刷机全程保持充电
  • [ ] 触点/磁吸清洁,充电稳定
  • [ ] 已备份 persist 分区(传感器校准)
  • [ ] 与手机的配对信息已知(重配对需要 Google 账号)
  • [ ] adb 无线调试已配对成功(adb pair + adb connect)
  • [ ] 官方固件/OTA 包已下载到本地
  • [ ] 了解该型号的 bootloader 按键组合

ESP32 开源手表:

  • [ ] 确认硬件版本(T-Watch V1/V2/V3、Watchy 版本)
  • [ ] platformio.ini / Arduino 配置与硬件匹配(尤其 PSRAM 和 Flash Size)
  • [ ] esptool 能识别芯片(chip_id 正常返回)
  • [ ] 已用 read_flash 整片备份
  • [ ] 驱动已装(CP2102 / CH340)
  • [ ] 串口波特率 115200 可正常看到启动日志

通用:

  • [ ] 已评估:这个操作是否真的必要?
  • [ ] 已了解:变砖后的退路是什么?
  • [ ] 已接受:防水可能失效、保修必然失效

参考资源

类型 说明
Google Wear OS 官方开发者文档 调试、配对、开发者选项
Pixel Watch 工厂镜像 developers.google.com(Wear OS 部分)
XDA Forums → Smartwatches 版块 各型号讨论、固件、救砖
GitHub: Xinyuan-LilyGO/TTGO_TWatch_Library T-Watch 官方库与示例
SQFMI Watchy 官方仓库 Watchy 硬件与固件(完全开源)
GitHub: espressif/esptool ESP32 烧录工具
PlatformIO 文档 环境配置与项目构建
Apple 官方支持 watchOS 恢复与售后(唯一可行路径)

📌 智能手表型号繁杂、硬件迭代快,且厂商普遍不公开技术资料。本文中的按键组合、工程模式进入方式在不同批次、不同区域版本上可能完全不同,操作前请以对应型号的最新社区资料与官方说明为准。对于没有公开固件的设备,最理性的选择是不刷。