GFP/SASS
GFP / SASS 学习文档
本文基于 Google Fast Pair 官方文档整理,重点覆盖 GFP/GFPS、SASS/Audio Switch、认证测试流程,以及如何结合本地日志理解测试结果。
官方入口:https://developers.google.com/nearby/fast-pair/specifications/introduction
1. 名词速查
| 名词 | 含义 |
|---|---|
GFPS |
Google Fast Pair Service,通常也被口语化叫 GFP 或 Fast Pair |
SASS |
Seamless Audio Source Switching,官方文档现在多称为 Audio Switch |
Provider |
被发现/被连接的设备,例如耳机、音箱 |
Seeker |
发起发现、配对、切换的设备,例如 Android 手机、平板 |
Model ID |
Google 给产品分配的 24-bit 模型 ID,用于初次识别设备 |
Anti-Spoofing Key |
防伪公私钥,用于初次配对时生成共享密钥 |
Account Key |
初次配对成功后写入耳机,用于同账号后续配对和 SASS |
KBP |
Key-based Pairing,Fast Pair 的核心握手流程 |
Message Stream |
连接后用于扩展消息交互的通道,SASS 主要依赖它 |
Bloom Filter |
设备非配对模式广播 Account Key Filter,用于同账号识别 |
RPA |
Resolvable Private Address,BLE 可解析私有地址,涉及隐私和地址轮换 |
2. GFPS 整体架构
GFPS 的目标是让蓝牙设备以最少用户操作完成配对,并把设备绑定到 Google 账号。
核心能力:
| 能力 | 说明 |
|---|---|
| 初次配对 | 设备进入 pairing mode 后,手机扫描到 Model ID,弹出 Fast Pair 半屏通知 |
| 账号绑定 | 初次配对成功后,手机向设备写入 Account Key,同时同步到 Google Account |
| 后续配对 | 同账号的新手机通过 Account Key Filter 识别设备,无需设备重新进入 pairing mode |
| 电量通知 | 耳机可广播/上报左右耳和充电盒电量 |
| 个性化名称 | Google 账号下同步设备名称 |
| Find Device | 通过 Google 设备页面响铃查找耳机 |
| SASS | 在多个音源设备之间自动切换音频连接 |
| LE Audio | 支持 BLE/LE Audio 场景下的 Fast Pair 和 Audio Switch |
3. GFPS 广播机制
GFPS 主要依赖 BLE 广播发现设备,广播内容取决于设备当前是否可被经典蓝牙发现。
| 场景 | 广播内容 | 目的 | 广播间隔 |
|---|---|---|---|
| Discoverable / Pairing mode | Fast Pair Model ID Data |
初次配对发现 | 不大于 100 ms |
| Not discoverable / 非配对模式 | Fast Pair Account Data |
后续配对、同账号识别 | 不大于 250 ms |
Discoverable 广播:
| 字段 | 内容 |
|---|---|
| Service UUID | 0xFE2C |
| Service Data | 3-byte Model ID |
Not discoverable 广播:
| 字段 | 内容 |
|---|---|
| Service UUID | 0xFE2C |
| Version/Flags | 通常 0x00,SASS 场景可为 0x10 |
| Account Key Data | Account Key Bloom Filter + Salt |
| Battery Data | 可选 |
| Random Resolvable Data | SASS 场景必需,用于加密连接状态 |
重点理解:
- 初次配对靠
Model ID。 - 后续配对靠
Account Key Filter。 - SASS 在 Account Data 基础上增加
Random Resolvable Data,携带加密后的连接状态。 - Account Key Filter 只有设备已经保存至少一个 Account Key 时才应该广播。
- Salt 需要随机,并且应随 RPA 轮换,避免被追踪。

浙公网安备 33010602011771号