1. 先把“身份钥匙”这件事想明白
小米手环 6 这块 1.56 英寸的 AMOLED 小屏幕,官方表盘商店里的选择其实一直不算多,玩久了的兄弟都会想换点自己的东西。但真动手之后你会发现,卡住绝大多数人的从来不是作图,而是第一步:怎么让第三方的同步工具认下这块手环。手环在首次配对时会和手机 App 交换一份 16 字节的密钥,业内一般叫它 auth_key,之后所有非官方客户端的连接都要靠这把钥匙进门。iOS 用户在这一步尤其难受,因为苹果的沙盒机制基本堵死了直接翻 App 数据目录这条路。这篇东西就是把我自己在 iOS 环境下折腾小米手环 6 最新固件、把 auth_key 弄出来、再换上第三方表盘的完整过程捋一遍,顺便把踩过的坑都摊开讲。适合已经有一块手环 6、手里有 iOS 设备、又愿意为了一个好看的待机画面折腾一晚上的人看,纯小白也能跟着走,因为我会把每个动作为什么这么做都解释清楚。
1.1 auth_key 到底是把什么钥匙
你可以把整件事类比成一把防盗门锁。手环出厂时是“没锁”的状态,谁先连上谁就能配。你第一次用手机 App 连它的时候,两边会当场商量出一串 16 字节的随机数,这就是 auth_key,手环把它牢牢记在自己的安全存储区里,手机 App 也存一份。从此以后,任何人想跟手环建立那种能读数据、能写资源、能推固件的通道,都必须先拿这把钥匙做一次握手校验,对不上就直接断开。
关键点有三个。第一,这把钥匙是配对那一刻生成的,不是固定的、不是你手环序列号算出来的,所以你没在配对现场抓到它,后面就只能重来。第二,钥匙一旦生成,只有手环和一个“合法持有者”知道,官方 App 是合法持有者,社区开源同步工具想当第二个持有者,就得你手动把这串字符喂给它。第三,这串字符的形式就是一串 hex,比如 32 个十六进制字符,抄错一位、大小写混了、多复制了一个空格,结果都是握手失败,而且报错信息通常含糊得让人抓狂。
还有一个容易被忽略的细节:手环并不排斥“多把钥匙”,但同一时间只接受一个活动连接。所以你在用第三方工具连的时候,必须先让官方 App 彻底断连,否则手环会被两边抢,表现就是连上了又掉、掉了又连。这个现象我一开始以为是工具的问题,后来发现纯粹是抢占,写在这里让后来人少走弯路。
注意:下面所有操作都只针对你自己名下、自己配对过的设备。别人的手环、来路不明的二手机,不要碰。
1.2 为什么固件版本会左右整件事的难度
小米手环 6 的固件迭代过不少版本,每次更新除了修 bug,还会顺手收紧一些东西。对玩第三方表盘的人来说,影响主要落在三处:一是握手协议的鉴权流程,新固件在密钥校验之外可能加了时间戳或随机挑战,老版本的同步工具直接连不上,必须用支持新协议的版本;二是资源包的签名校验,早期固件对推入的表盘资源比较宽松,后期会检查资源包的头部字段和校验值,包不对就直接拒绝写入;三是固件与资源包的匹配关系,手环在升级固件时通常要求资源包版本与固件版本配套,你单独推一个不配套的资源包,轻则表盘显示错位,重则开机卡在 Logo。
我实测下来最稳的做法是:先把固件和资源包一起升到当前最新,再动手做第三方表盘。理由很实在——你迟早会被官方 App 提示升级,一旦升了,之前基于旧版本做的资源包可能全废;不如一次到位,把工具链和版本对齐,后面就省心了。反过来说,如果你只想快点看到效果,用旧版本确实更省事,但要接受某天被强制更新后前功尽弃的风险。
1.3 三条可行路线怎么选
折腾之前先把路线想清楚,能省掉大量无用功。我把常见的三种做法整理成表,你可以按自己手头的设备和耐心挑。
| 路线 | 需要什么 | 优点 | 代价与风险 |
|---|---|---|---|
| 官方 App 自定义表盘 | 只要 iOS 设备和官方 App | 零风险,官方支持,图片随便换 | 只能换背景图,控件布局和位置受严格限制 |
| 中转设备抓取 auth_key | 一台安卓手机或带蓝牙的电脑 | 一次搞定,之后长期可用 | 前期要做一次干净的重新配对,手环数据会清空 |
| 已备份密钥复用 | 以前在安卓上导出过的密钥文件 | 完全不用重新配对 | 固件大版本更新后可能失效,需要重新抓 |
我的建议是直接走第二条。第三条适合你之前玩过、手里还留着记录的人;第一条则是退路——万一你折腾到一半不想继续了,官方自定义表盘至少能让你有个不丑的待机画面,不至于白忙一场。
2. iOS 环境下绕不开的三个门槛
很多教程上来就教你怎么连工具,但对 iOS 用户来说,最要紧的是先接受一个现实:在 iPhone 上你几乎不可能把 auth_key 从官方 App 里抠出来。认清这一点,后面的方案设计才不会走偏。这一节我会把 iOS 的三个硬门槛讲清楚,再给出我实际用的绕行办法。
2.1 iOS 沙盒决定了密钥不能直接导出
安卓上抓密钥之所以简单,是因为你可以直接访问 App 的私有目录,或者用一个带 root 的文件管理器把共享配置文件读出来,那串 hex 就明明白白躺在里面。iOS 完全是另一套逻辑:每个 App 的数据都在自己的沙盒容器里,其他 App 根本看不到;就算你把 iPhone 完整备份到电脑,想从备份里翻出这个文件,也得面对备份加密的问题——密钥这类敏感信息通常被放进 Keychain,而 Keychain 在备份里的加密强度和你设置的备份密码直接挂钩,没有密码基本无解,有密码也要额外做解密和数据库解析,投入产出比极低。
所以别再去找什么“iOS 一键导出”的工具了,我翻了不少资料,靠谱的结论就是:这条路在 iOS 上不划算。真正务实的思路是承认 iOS 只负责日常使用和表盘效果验收,把“抓钥匙”这个动作交给另一台设备完成。
2.2 用一台中转设备把密钥“搬”出来
我最后采用的是“安卓手机中转”方案,逻辑很简单:auth_key 是配对那一刻生成的,那就找一台能抓到配对过程的设备去配对,抓完把钥匙抄下来,之后在 iOS 上照常用官方 App,表盘相关的操作则在第三方工具里完成。
具体分工是这样的:
- 安卓手机:负责一次干净的首次配对,并在配对过程中把交换的密钥记录下来。这一步做完,钥匙就永久属于你了。
- iOS 设备:日常戴手环、同步步数和睡眠数据,用官方 App 就行,它不影响你已经抓到的钥匙。
- 电脑:负责表盘的图像处理、资源包打包,以及通过社区工具把手环当作目标设备推送资源。
如果你手边没有安卓手机,带蓝牙适配器的电脑也能顶替,原理一样,只是配置蓝牙栈的过程会多花点时间。这一步的核心不是工具本身,而是你必须能观察到配对时的数据交换,任何能让你看到那一步的工具都可以。
2.3 固件与资源包的版本对应关系
在动手前,务必搞清楚你要推的三个东西分别是什么。很多人以为“刷表盘”就是换一个文件,实际上手环内部至少涉及三层内容:
| 名称 | 作用 | 量级参考 | 出错后果 |
|---|---|---|---|
| 固件包 | 手环的系统本体,决定功能与协议 | 几百 KB 到 1 MB 级 | 刷错会开不了机,风险最高 |
| 资源包 | 系统图标、字体、动画等基础资源 | 数百 KB 到数 MB | 显示错乱、部分界面空白 |
| 表盘资源 | 单个表盘的图片与布局定义 | 几十 KB 到几百 KB | 表盘白屏或自动跳回默认 |
看清这张表你就明白了:真正需要频繁替换的只有最底下那一层。固件包和资源包除非必要,别去动,尤其是固件。我的做法是固件和资源包保持官方当前版本,只折腾表盘资源,这样即使表盘包做坏了,手环的系统部分也不会受影响,最多是切回默认表盘,代价极小。
提示:在手环“设置”里能看到的版本号,和资源包版本号不是一回事,别拿一个去对另一个,对不上很正常。
3. 获取 auth_key 的完整实操流程
这一节是整篇的核心。我把过程拆成“重新配对—抓取数据—验证可用”三步,每一步都说明白为什么这么做,而不是给你一串命令让你抄。如果你已经在官方 App 里正常使用手环,要意识到接下来会清空手环上的数据,包括历史运动记录,所以先想清楚值不值。
3.1 从零开始:清空配对记录重新配
第一步是把手环恢复到未配对状态。在手环的设置里找到恢复出厂或解绑相关选项,执行后手环会重启并清空配对信息,屏幕上提示你去手机 App 里完成配对。这一步不能省,因为钥匙只在首次配对时生成,你在已有配对的基础上反复连接一百次也不会产生新的钥匙。
接着在安卓中转设备上装好官方 App,登录你的账号,进入添加设备的流程。这里有个细节值得注意:尽量让手环和中转设备离得近,并且关掉 iOS 设备上的蓝牙。我吃过这个亏——手环同时被两台设备扫到,配对过程中一度连到了 iPhone 上,导致中途换设备、密钥交换被打断,只能从头再来一次。配对过程中手环屏幕上会显示确认按钮,需要你点一下,这是防误配的机制,别漏掉。
配对成功后别急着庆祝,先在官方 App 里待一会儿,让它完成一次完整的同步,包括时间校准和基础配置下发,这样能确保密钥交换完整走完,不会出现半截状态。
3.2 抓取那一次配对时的交换数据
配对完成后,密钥已经存在于中转设备的 App 数据里。接下来要做的就是把那串 16 字节的值取出来。不同工具的做法不一样,思路大同小异:要么导出一个配置文件,要么在工具界面里直接显示为 hex 字符串。你要拿到的是形如a1b2c3d4e5f60718293a4b5c6d7e8f90这样的一串 32 位十六进制字符,一定核对长度是 32 位。
取出来之后立刻做两件事:一是存到密码管理器或加密笔记里,别只留在聊天记录;二是多抄一份到电脑上,因为后面在电脑上打表盘的时候会反复用到。我用的是最笨也最可靠的办法——手抄一遍,再复制一遍,两次结果比对,一致才算数。听上去有点小题大做,但我在这一步因为复制时多带了一个换行,白折腾了四十分钟,那种“明明都对就是连不上”的滋味真不想让第二个人尝。
3.3 验证密钥真伪的两种土办法
拿到密钥后先别急着灌表盘,花五分钟验证一下,能省掉后面一大圈排查。第一种办法是用带身份验证功能的社区同步工具连接手环:在工具里填入设备地址和这串密钥,能看到设备名称、电量、固件版本这些信息正常显示,就说明握手通过。第二种更土——把密钥故意改一位再连一次,如果报错信息明显不同,说明校验逻辑确实在跑,你的正确密钥也就得到了反向印证。
这里有个容易踩的坑:手环的蓝牙地址在不同工具里的写法可能不一样,有的要带冒号,有的不带,有的要全大写。连不上时先怀疑格式,别怀疑密钥。我一般会把几种写法都试一遍,通常三次之内就能连上。
4. 第三方表盘从改图到刷入的全过程
密钥到手,剩下的就是创作部分了。小米手环 6 的屏幕分辨率是 152 × 486 像素,这是个很瘦长的比例,所有作图决策都要围绕这个尺寸来。这一节我按“结构—作图—刷入”的顺序讲,把每一层的规矩和雷区都标出来。
4.1 表盘资源包的结构拆解
一个表盘资源包本质上是“图片 + 配置”的打包结果。图片部分包括背景图、时间数字的每一帧、日期数字、以及心率、步数等控件用到的图标;配置部分负责告诉手环:每张图片贴在哪、显示层级怎么叠、时间是 12 小时制还是 24 小时制、哪些控件只在特定模式下出现。理解这个结构,你在改图的时候就知道哪些图片是“必须保留”的,哪些是可以删掉换掉的。
这里有个经验:不要从零手搓配置。社区里成熟的做法是拿一个官方表盘资源包作为底子,只替换图片,保持文件数量、命名、尺寸完全不变。这样配置部分不用动,兼容性最好。我自己最早尝试删掉不用的控件,结果手环上表盘加载到一半就跳回默认,反复几次才想明白——配置里引用的文件一旦缺失,解析就中断,整套资源直接不被接受。
4.2 152×486 的作图规矩与常见翻车点
作图这一步是决定成品观感的关键。我给你列几条实打实的规矩:
- 尺寸必须精确,背景图就是 152 × 486,多一个像素少一个像素都可能被拒绝或者拉伸变形。
- 数字帧要逐张对齐,时间数字如果是分层图片,每一帧的笔画位置必须像素级一致,否则秒数跳动时你会看到数字在抖。
- 纯黑背景最省电,AMOLED 屏幕黑色像素不发光,深色表盘能明显省电,我做过对比,纯黑背景比浅色背景的续航大概能多撑小半天。
- 文字不要贴边,手环边缘有弧度和反光,留 8 到 12 像素的安全边距,观感会舒服很多。
- 对比度要够,这块屏幕在户外强光下的可读性一般,浅灰字配深灰底基本等于看不见。
我踩过最典型的一个坑是把时间数字用了很细的字体,在电脑上放大看很美,到手环上屏幕只有这么大,笔画糊成一团,秒数一动整块区域都在发虚。后来换成笔画稍粗的无衬线字体,情况立刻好转。这类问题只有把图按原始尺寸导出、在 1:1 比例下看,才能判断出来。
4.3 打包、刷入与回滚
图片准备好之后就是打包。工具会按你设定的顺序把图片和配置生成一个资源文件,你在这一步要特别注意保留原始的头部信息和校验字段,很多工具默认会自动处理,但如果你用的是比较自由的编辑器,就需要手动确认。打包完成后,用带密钥的同步工具连接手环,选择安装表盘资源,推送过程一般十几秒到一分钟,期间手环屏幕上会显示进度。
推完之后手环通常会自动应用新表盘,如果没有,就在表盘切换界面里找一下,新装的会排在列表后面。如果表盘显示异常或者手环反复重启,别慌,长按手环或者进设置切换回一个官方默认表盘,绝大多数情况下都能救回来。这就是我前面强调“不动固件”的意义——只要系统本体是好的,表盘层面的问题都是可控的。
注意:推送表盘资源期间不要断开连接、不要让手环没电。中途断连虽然一般不致命,但可能留下一个不完整的资源包,需要重新推一次。
5. 踩坑实录与问题速查
这一节是我最想写给后来人的部分。前面流程写得再顺,实际操作时你大概率还是会卡在某个地方,下面这些现象我基本都遇到过,整理成速查表加解释,遇到问题直接对号入座。
5.1 连接类问题的排查顺序
连不上是最高频的问题,我建议按这个顺序排查,从成本最低的开始:
| 现象 | 优先怀疑 | 处理方法 |
|---|---|---|
| 搜索不到设备 | 官方 App 还在后台连着 | 彻底关闭官方 App,关掉 iOS 蓝牙 |
| 能搜到但握手失败 | auth_key 抄错或格式不对 | 检查 32 位长度、大小写、有无空格换行 |
| 连上几秒就掉 | 两台设备抢连接 | 只保留一个活动连接,其余全部断开 |
| 每次都要重新配对 | 密钥与当前固件不匹配 | 确认固件是否大版本更新过,必要时重抓 |
第一行那个坑我印象最深。有一次死活搜不到手环,换了三次工具、重启两次电脑,最后发现是 iPhone 在口袋里自动连着,手环被占用了。从那以后我养成了一个习惯:动手前先把 iOS 设备的蓝牙关掉,省得它半夜偷偷连。
5.2 刷入失败与变砖的处理
严格说,只玩表盘资源的话,“变砖”的概率极低,因为系统本体没动。真正危险的是刷固件。如果你确实需要刷固件,务必注意三点:一是固件包必须与你的手环型号严格对应,手环 6 有多个版本分支,通用版和特定版不通用;二是刷的过程中保持电量在 50% 以上,中途断电是唯一可能造成硬件级问题的场景;三是刷完立即让官方 App 同步一次,让它确认设备状态。
如果你的手环真的开不了机、连屏幕都不亮,先别认定为报废,插上充电器等十几分钟,很多时候只是电量耗尽或者进入了某种保护状态。实在不行,用官方 App 完全解绑后重新配对,能恢复大部分异常状态。
5.3 版本升级后密钥失效的处理
这是最让人郁闷的一种情况:前一天还好好的,某天手环提示升级,升完之后第三方工具连不上了。原因通常是新固件改了鉴权流程或者要求重做一次密钥协商。处理办法只有一个——回到第 3 节的流程,重新走一遍配对和抓取。听上去很麻烦,但实际做一次也就十几分钟,而且你之前保存的表盘资源包不用重做,抓完新密钥直接就能继续用。
为了减少这种折腾,我的习惯是:手环到手后先确认当前固件版本,把固件和资源包一次性升到位,然后关掉自动更新提示,尽量让版本稳定下来。手环这东西,功能就那些,新固件带来的体验提升往往有限,版本稳定带来的省心是实打实的。
最后分享一个我自己用着很顺的小习惯:给表盘资源包按“日期+命名”的格式归档,同时把配套的 auth_key 版本、固件版本号写在文件夹里的一个说明文件里。隔几个月再回来折腾的时候,你根本记不住当时是什么状态,有这份记录能省掉大量重新摸索的时间。表盘这东西会一直想换,工具链理顺了,后面就是纯粹的画画和调色,那才是真正好玩的部分。