Wallytina 发表于 2025-8-13 09:10:05

谷歌查找我的设备配件(Google Find My Device Accessory)详解和应用(6) 

2. DULT( Detecting Unwanted Location Trackers)协议DULT( Detecting Unwanted Location Trackers)是苹果和谷歌合作制定的一项适用于蓝牙跟踪设备的行业规范——‘发现不需要的位置跟踪器’,该规范可以跨iOS和安卓系统,提醒用户未知设备是否正在被用来跟踪他们。这将有助于减少追踪物品的设备(例如AirTag)被滥用。在iPhone手机上,如果用户附近发现未知的蓝牙跟踪器,并且该跟踪器随其移动了一段时间,无论该设备与哪个平台配对,用户都会收到一条通知:“发现[物品]与您同行”。安卓用户则会收到类似的提醒:“跟踪器正与您同行”。用户点击通知可以查看跟踪器的识别信息,并且支持播放声音来定位跟踪器。该功能还包含如何禁用跟踪设备的说明。DULT协议规范:https://datatracker.ietf.org/doc/draft-ietf-dult-accessory-protocol/2.1 FMDN协议对DULT的规范Google的FMDN协议规范对DULT有具体的要求,解释网址如下:https://developers.google.com/nearby/fast-pair/specifications/extensions/fmdn#unwanted-tracking-preventionRelevant guidelines specific to FMDN to be compliant with DULT spec:为符合 DULT 规范,“查找我的设备网络”(FMDN)相关的具体准则如下:
[*]Any FMDN compatible device must be registered in the Nearby Device Console, and have the "Find My Device" capability activated.
[*]任何与 “查找我的设备网络”(FMDN)兼容的设备都必须在 “Nearby Device Console” 中注册,并激活 “Find My Device” 功能。
[*]The device must implement the Accessory Non-Owner service and characteristic defined in the implementation version of the DULT spec, including the Accessory Information operations and Non-owner controls.
[*]设备必须实现 DULT 规范实施版本中定义的 “配件非所有者服务” 及特性,包括 “配件信息” 操作和 “非所有者控制”
[*]During the backward compatibility period, as defined in the DULT spec, there are no changes to the advertised frame as defined in this document.
[*]在 DULT 规范所定义的向后兼容期内,本文档中定义的广播帧不得进行更改。
[*]"Unwanted tracking protection mode" defined in this document maps to the "separated state" defined by the DULT spec.
[*]本文档中定义的 “防止不必要追踪模式” 与 DULT 规范中定义的 “分离状态” 相对应。
[*]Guidelines for implementing the Accessory Information opcodes:

[*]Get_Product_Data should return the model ID provided by the console, zero padded to fit the 8-byte requirement. For example, model ID 0xFFFFFF is returned as 0x0000000000FFFFFF.
[*]“获取产品数据”(Get_Product_Data)操作应返回控制台提供的型号标识,并且需用零填充以满足 8 字节的要求。例如,型号标识为 0xFFFFFF 时,应返回为 0x0000000000FFFFFF。
[*]Get_Manufacturer_Name and Get_Model_Name should match the values provided in the console.
[*]“获取制造商名称”(Get_Manufacturer_Name)和 “获取型号名称”(Get_Model_Name)操作返回的内容应与控制台中提供的值一致。
[*]Get_Accessory_Category can return the generic "Location Tracker" value if no other category better fits the type of the device.
[*]如果没有更适合该设备类型的类别,“获取配件类别”(Get_Accessory_Category)操作可返回通用的 “位置追踪器” 这一值。
[*]Get_Accessory_Capabilities must indicate the support for ringing as well as BLE identifier lookup.
[*]“获取配件功能”(Get_Accessory_Capabilities)操作必须表明设备支持响铃功能以及Bluetooth LE(BLE)标识符查找功能。
[*]Get_Network_ID should return Google's identifier (0x02).
[*]“获取网络标识”(Get_Network_ID)操作应返回谷歌的标识(0x02)。
[*]Guidelines for implementing the Get_Identifier opcode:

[*]The operation should only return a valid response for 5 minutes after the user activated the 'identification' mode, which requires a combination of button presses. A visual or audio signal should indicate to the user that the provider entered that mode. The model-specific instructions for activating that mode must be provided to Google as a requirement for certification and at least 10 days prior to any update or modification to the instructions.
[*]只有在用户激活 “识别” 模式后的 5 分钟内,该操作才应返回有效响应。激活 “识别” 模式需要组合按下按钮。应通过视觉或音频信号向用户表明设备已进入该模式。激活该模式的具体型号操作说明必须作为认证要求提供给谷歌,并且在对操作说明进行任何更新或修改之前至少 10 天提供。
[*]The response is constructed as: the first 10 bytes of current ephemeral identifier, followed by the first 8 bytes of HMAC-SHA256(recovery key, the truncated current ephemeral identifier).
[*]响应的结构为:当前临时标识符(EID)的前 10 个字节,接着是使用 HMAC-SHA256 算法(基于恢复密钥和截断后的当前临时标识符EID)生成结果的前 8 个字节。
[*]Guidelines for implementing Identifier over NFC:

[*]As a URL, use find-my.googleapis.com/lookup.
[*]网址方面,使用find-my.googleapis.com/lookup。
[*]As the e parameter, use the same response as constructed for Get_Identifier, hex encoded.
[*]对于 “e” 参数,使用与 “获取标识符”(Get_Identifier)操作构建的响应相同的内容,并进行十六进制编码。
[*]As the pid parameter, use the same response as constructed for Get_Product_Data, hex encoded.
[*]对于 “pid” 参数,使用与 “获取产品数据”(Get_Product_Data)操作构建的响应相同的内容,并进行十六进制编码。
[*]It is mandatory for the device to include a sound maker and support the ringing function. Per the DULT spec, the sound maker must emit a sound with minimum 60 Phon peak loudness as defined by ISO 532-1:2017.
[*]设备必须配备发声装置并支持响铃功能。根据《检测不必要位置追踪器》(DULT)规范,发声装置必须发出符合 ISO 532-1:2017 标准所定义的、峰值响度至少为 60 方(Phon)的声音。
[*]Guidelines for implementing the Sound_Start opcode:

[*]The command should trigger ringing in all available components.
[*]该命令应触发所有可用组件发出铃声。
[*]The maximal supported volume should be used.
[*]应使用设备支持的最大音量。
[*]The recommended duration for ringing is 12 seconds.
[*]铃声的推荐持续时长为 12 秒。
[*]Locator tags must include a mechanism that lets users temporarily stop advertising without factory resetting the device (for example, pressing a combination of buttons).
[*]定位标签必须具备一种机制,使用户能够在不将设备恢复出厂设置的情况下暂时停止广播(例如,通过组合按键操作)

[*]The disablement instructions must be documented in a publicly available URL and provided to Google as a requirement for certification and at least 10 days prior to any update or modification to the instructions.
[*]禁用说明必须记录在一个公开可访问的网址上,并作为认证要求提供给谷歌,且在对该说明进行任何更新或修改之前至少 10 天提供。
[*]The URL should support localization. Depending on the client, the language will be provided either as a query param ("hl=en") or using the "accept-language" HTTP header.
[*]该网址应支持本地化。根据客户端的不同,语言信息将通过查询参数(如 “hl=en”)或使用 “accept-language” HTTP 标头来提供。


NikolayDah 发表于 2025-8-17 00:47:36

For step-by-step guidance, this blog post is very clear.
页: [1]
查看完整版本: 谷歌查找我的设备配件(Google Find My Device Accessory)详解和应用(6)