智能手表刷机教程
⚠️ 风险提示
- 刷机会清空全部数据,操作前完整备份(照片、通讯录、微信记录、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 的开发者选项位置与手机不同:
设置 → 系统 → 关于(或关于手表)- 找到 版本号(Build number)
- 连续点击版本号 7 次
- 屏幕提示"您现在处于开发者模式"或 "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 恢复与售后(唯一可行路径) |
📌 智能手表型号繁杂、硬件迭代快,且厂商普遍不公开技术资料。本文中的按键组合、工程模式进入方式在不同批次、不同区域版本上可能完全不同,操作前请以对应型号的最新社区资料与官方说明为准。对于没有公开固件的设备,最理性的选择是不刷。