v1.3
Thông số kỹ thuật của phụ kiện Mạng Tìm thiết bị của tôi (FMDN) xác định một phương pháp mã hoá hai đầu để theo dõi các thiết bị Bluetooth năng lượng thấp (BLE). Trang này mô tả FMDN là phần mở rộng cho quy cách Ghép nối nhanh. Nhà cung cấp nên bật tiện ích này nếu có thiết bị tương thích với FMDN và sẵn sàng bật tính năng theo dõi vị trí cho các thiết bị đó.
Quy cách của GATT
Bạn nên thêm đặc điểm thuộc tính chung (GATT) bổ sung vào Dịch vụ ghép nối nhanh với ngữ nghĩa sau:
Đặc điểm của Dịch vụ ghép nối nhanh | Đã mã hoá | Quyền | mã nhận dạng duy nhất (UUID) |
---|---|---|---|
Hành động báo hiệu | Không | Đọc, viết và thông báo | FE2C1238-8366-4814-8EB0-01DE32100BEA |
Bảng 1: Các đặc điểm của Dịch vụ ghép nối nhanh cho FMDN.
Xác thực
Các thao tác mà tiện ích này yêu cầu được thực hiện dưới dạng thao tác ghi, được bảo mật theo cơ chế phản hồi thử thách. Trước khi thực hiện bất kỳ thao tác nào, Trình tìm kiếm dự kiến sẽ thực hiện thao tác đọc từ đặc tính trong bảng 1, dẫn đến một vùng đệm ở định dạng sau:
Hình bát giác | Loại dữ liệu | Nội dung mô tả | Giá trị |
---|---|---|---|
0 | uint8 | Số phiên bản lớn của giao thức | 0x01 |
1 – 8 | mảng byte | Số chỉ dùng một lần ngẫu nhiên | không cố định |
Mỗi thao tác đọc phải dẫn đến một số chỉ dùng một lần khác nhau và một số chỉ dùng một lần chỉ hợp lệ cho một hoạt động. Số chỉ dùng một lần phải bị vô hiệu hoá ngay cả khi thao tác không thành công.
Sau đó, Trình tìm kiếm sẽ tính toán khoá xác thực một lần để dùng trong yêu cầu ghi tiếp theo. Khoá xác thực được tính toán như mô tả trong bảng từ 2 đến 5. Tuỳ thuộc vào thao tác được yêu cầu, Trình tìm kiếm chứng minh rằng bạn biết một hoặc nhiều khoá sau:
Khoá tài khoản: Khoá tài khoản Ghép nối nhanh có kích thước 16 byte, như xác định trong thông số kỹ thuật của tính năng Ghép nối nhanh.
Khoá tài khoản chủ sở hữu: Nhà cung cấp chọn một trong các khoá tài khoản hiện có làm khoá tài khoản chủ sở hữu trong lần đầu tiên Người tìm kiếm truy cập vào đặc điểm Hành động báo hiệu. Bạn không thể thay đổi khoá tài khoản chủ sở hữu đã chọn cho đến khi Nhà cung cấp được đặt lại về trạng thái ban đầu. Nhà cung cấp không được xoá khoá tài khoản chủ sở hữu khi hết vùng khoá tài khoản miễn phí.
Các nhà cung cấp đã hỗ trợ FMDN khi ghép nối lần đầu (hoặc hỗ trợ khi được ghép nối sau khi đặt lại về trạng thái ban đầu) sẽ chọn khoá tài khoản đầu tiên, vì đây là khoá tài khoản hiện có duy nhất khi Trình tìm kiếm đọc trạng thái cấp phép trong quá trình ghép nối.
Các nhà cung cấp nhận được dịch vụ hỗ trợ FMDN sau khi được ghép nối (ví dụ: thông qua một bản cập nhật chương trình cơ sở) có thể chọn bất kỳ khoá tài khoản hiện có nào. Bạn nên chọn khoá tài khoản đầu tiên dùng để đọc trạng thái cấp phép từ đặc tính hành động beacon sau khi cập nhật chương trình cơ sở, giả sử người dùng đã thực hiện cập nhật là chủ sở hữu hiện tại của Nhà cung cấp.
Khoá nhận dạng tạm thời (EIK): Khoá 32 byte do Trình tìm kiếm chọn ngẫu nhiên khi thực hiện quá trình cấp phép FMDN. Khoá này dùng để lấy các khoá mã hoá dùng cho báo cáo vị trí mã hoá hai đầu. Trình tìm kiếm không bao giờ tiết lộ thông tin này cho phần phụ trợ.
Khoá khôi phục: Được xác định là
SHA256(ephemeral identity key || 0x01)
, bị cắt bớt còn 8 byte đầu tiên. Khoá được lưu trữ trên phần phụ trợ và Trình tìm kiếm có thể sử dụng khoá đó để khôi phục EIK, miễn là người dùng thể hiện sự đồng ý bằng cách nhấn một nút trên thiết bị.Khoá chuông: Được xác định là
SHA256(ephemeral identity key || 0x02)
, được cắt bớt đến 8 byte đầu tiên. Khoá được lưu trữ trên phần phụ trợ và Trình tìm kiếm chỉ có thể dùng khoá này để đổ chuông thiết bị.Khoá bảo vệ chống theo dõi không mong muốn: Được xác định là
SHA256(ephemeral identity key || 0x03)
, được cắt bớt còn 8 byte đầu tiên. Khoá được lưu trữ trên phần phụ trợ và Người tìm kiếm chỉ có thể sử dụng khoá này để kích hoạt chế độ bảo vệ chống theo dõi không mong muốn.
Hoạt động tính toán
Định dạng của dữ liệu được ghi vào đặc điểm này được cho trong các bảng từ 2 đến 5. Mỗi hoạt động sẽ được thảo luận chi tiết hơn ở phần sau của phần này.
Hình bát giác | Loại dữ liệu | Nội dung mô tả | Giá trị |
---|---|---|---|
0 | uint8 | Mã dữ liệu |
|
1 | uint8 | Thời lượng dữ liệu | không cố định |
2 – 9 | mảng byte | Khoá xác thực một lần | 8 byte đầu tiên của HMAC-SHA256(account key, protocol major version number || the last nonce
read from the characteristic || data ID || data length || additional data) |
10 – var | mảng byte | Dữ liệu bổ sung |
|
Bảng 2: Yêu cầu cấp phép báo hiệu.
Hình bát giác | Loại dữ liệu | Nội dung mô tả | Giá trị |
---|---|---|---|
0 | uint8 | Mã dữ liệu | 0x04: Đọc khoá nhận dạng tạm thời khi có sự đồng ý của người dùng |
1 | uint8 | Thời lượng dữ liệu | 0x08 |
2 – 9 | mảng byte | Khoá xác thực một lần | 8 byte đầu tiên của HMAC-SHA256(recovery key, protocol major version number || the last nonce
read from the characteristic || data ID || data length) |
Bảng 3: Yêu cầu khôi phục khoá cấp phép báo hiệu.
Hình bát giác | Loại dữ liệu | Nội dung mô tả | Giá trị |
---|---|---|---|
0 | uint8 | Mã dữ liệu |
|
1 | uint8 | Thời lượng dữ liệu | không cố định |
2 – 9 | mảng byte | Khoá xác thực một lần | 8 byte đầu tiên của HMAC-SHA256(ring key, protocol major version number || the last nonce read
from the characteristic || data ID || data length || additional data) |
10 – var | mảng byte | Dữ liệu bổ sung |
|
Bảng 4: Yêu cầu đổ chuông.
Hình bát giác | Loại dữ liệu | Nội dung mô tả | Giá trị |
---|---|---|---|
0 | uint8 | Mã dữ liệu |
|
1 | uint8 | Thời lượng dữ liệu | không cố định |
2 – 9 | mảng byte | Khoá xác thực một lần | 8 byte đầu tiên của HMAC-SHA256(unwanted tracking protection key, protocol major version number
|| the last nonce read from the characteristic || data ID || data length ||
additional data) |
10 – var | mảng byte | Dữ liệu bổ sung |
|
Bảng 5: Yêu cầu chống theo dõi không mong muốn.
Ghi thành công các thông báo kích hoạt như được liệt kê trong bảng 6.
Bạn nên gửi thông báo có mã dữ liệu khác 0x05: Thay đổi trạng thái chuông trước khi giao dịch ghi kích hoạt thông báo hoàn tất, tức là trước khi gửi PDU phản hồi cho yêu cầu ghi.
Hình bát giác | Loại dữ liệu | Nội dung mô tả | Giá trị |
---|---|---|---|
0 | uint8 | Mã dữ liệu |
|
1 | uint8 | Thời lượng dữ liệu | không cố định |
2 – 9 | mảng byte | Xác thực | Thông tin chi tiết trong mỗi thao tác |
10 – var | mảng byte | Dữ liệu bổ sung |
|
Bảng 6: Phản hồi của dịch vụ báo hiệu.
Bảng 7 liệt kê các mã lỗi GATT mà các thao tác có thể trả về.
Mã | Nội dung mô tả | Ghi chú |
---|---|---|
0x80 | Chưa được xác thực | Được trả về để phản hồi yêu cầu ghi khi xác thực không thành công (bao gồm cả trường hợp sử dụng số chỉ dùng một lần cũ). |
0x81 | Giá trị không hợp lệ | Được trả về khi cung cấp bất kỳ giá trị không hợp lệ nào hoặc dữ liệu nhận được có số lượng byte ngoài dự kiến. |
0x82 | Không có sự đồng ý của người dùng | Được trả về để phản hồi yêu cầu ghi có mã dữ liệu 0x04: Đọc khoá nhận dạng tạm thời khi có sự đồng ý của người dùng khi thiết bị không ở chế độ ghép nối. |
Bảng 7: Mã lỗi GATT.
Đọc thông số của beacon
Trình tìm kiếm có thể truy vấn Nhà cung cấp về các tham số của beacon bằng cách thực hiện thao tác ghi vào đặc tính bao gồm yêu cầu từ bảng 2 với mã dữ liệu 0x00. Nhà cung cấp xác minh rằng khoá xác thực một lần đã cung cấp khớp với mọi khoá tài khoản được lưu trữ trên thiết bị.
Nếu xác minh không thành công, Nhà cung cấp sẽ trả về lỗi chưa được xác thực.
Khi thành công, Nhà cung cấp sẽ thông báo bằng phản hồi từ bảng 6 với mã dữ liệu 0x00. Nhà cung cấp tạo phân đoạn dữ liệu như sau:
Hình bát giác | Loại dữ liệu | Nội dung mô tả | Giá trị |
---|---|---|---|
0 | uint8 | Nguồn đã hiệu chỉnh | Công suất đã hiệu chỉnh khi nhận được ở khoảng cách 0m (giá trị trong khoảng [-100, 20]). Được biểu thị dưới dạng số nguyên đã ký, có độ phân giải 1 dBm. |
1 – 4 | uint32 | Giá trị đồng hồ | Giá trị đồng hồ hiện tại tính bằng giây (dấu tận cùng lớn). |
5 | uint8 | Chọn đường cong | Đường cong elip được dùng để mã hoá:
|
6 | uint8 | Thành phần | Số lượng thành phần có thể đổ chuông:
|
7 | uint8 | Khả năng đổ chuông | Các tuỳ chọn được hỗ trợ bao gồm:
|
8-15 | mảng byte | Khoảng đệm | Không có khoảng đệm khi mã hoá AES. |
Dữ liệu phải được mã hoá AES-ECB-128 bằng khoá tài khoản dùng để xác thực yêu cầu.
Phân đoạn xác thực được định nghĩa là 8 byte đầu tiên của HMAC-SHA256(account key, protocol major version number || the last nonce read
from the characteristic || data ID || data length || additional data after
encryption || 0x01)
.
Đọc trạng thái cấp phép của beacon
Trình tìm kiếm có thể truy vấn Nhà cung cấp về trạng thái cấp phép của beacon bằng cách thực hiện thao tác ghi vào đặc tính này, bao gồm một yêu cầu từ bảng 2 với mã dữ liệu 0x01. Nhà cung cấp xác minh rằng khoá xác thực một lần đã cung cấp khớp với mọi khoá tài khoản được lưu trữ trên thiết bị.
Nếu xác minh không thành công, Nhà cung cấp sẽ trả về lỗi chưa được xác thực.
Khi thành công, Nhà cung cấp sẽ thông báo bằng phản hồi từ bảng 6 với mã dữ liệu 0x01. Nhà cung cấp tạo phân đoạn dữ liệu như sau:
Hình bát giác | Loại dữ liệu | Nội dung mô tả | Giá trị |
---|---|---|---|
0 | uint8 | Trạng thái cấp phép | Một bitmask có các giá trị sau:
|
1 – 20 hoặc 32 | mảng byte | Giá trị nhận dạng tạm thời hiện tại | 20 hoặc 32 byte (tuỳ thuộc vào phương thức mã hoá đang sử dụng) cho biết mã nhận dạng tạm thời hiện tại mà beacon quảng cáo, nếu một mã được đặt cho thiết bị. |
Phân đoạn xác thực được định nghĩa là 8 byte đầu tiên của HMAC-SHA256(account key, protocol major version number || the last nonce read
from the characteristic || data ID || data length || additional data || 0x01)
.
Đặt khoá nhận dạng tạm thời
Để cấp phép cho một Nhà cung cấp không được cấp phép dưới dạng beacon FMDN hoặc thay đổi khoá nhận dạng tạm thời của Nhà cung cấp đã được cấp phép, Trình tìm kiếm thực hiện thao tác ghi vào đặc điểm bao gồm một yêu cầu từ bảng 2 với mã dữ liệu 0x02. Nhà cung cấp xác minh rằng:
- Khoá xác thực một lần đã cung cấp khớp với khoá tài khoản của chủ sở hữu.
- Nếu bạn cung cấp một hàm băm của khoá nhận dạng tạm thời, thì khoá nhận dạng tạm thời đã băm sẽ khớp với khoá nhận dạng tạm thời hiện tại.
- Nếu bạn chưa cung cấp hàm băm của khoá nhận dạng tạm thời, hãy xác minh rằng Nhà cung cấp chưa được cấp phép dưới dạng beacon FMDN.
Nếu xác minh không thành công, Nhà cung cấp sẽ trả về lỗi chưa được xác thực.
Khi thành công, khoá nhận dạng tạm thời sẽ được khôi phục bằng phương thức giải mã AES-ECB-128 bằng khoá tài khoản đã khớp. Khoá phải được duy trì trên thiết bị và từ thời điểm đó trên Nhà cung cấp sẽ bắt đầu quảng cáo các khung FMDN. Khoá nhận dạng tạm thời mới sẽ có hiệu lực ngay sau khi bạn chấm dứt kết nối BLE. Bên cung cấp thông báo bằng phản hồi từ bảng 6 với ID dữ liệu 0x02.
Phân đoạn xác thực được định nghĩa là 8 byte đầu tiên của HMAC-SHA256(account key, protocol major version number || the last nonce read
from the characteristic || data ID || data length || 0x01)
.
Xoá khoá nhận dạng tạm thời
Để huỷ cấp phép phần beacon của Nhà cung cấp, Trình tìm kiếm thực hiện thao tác ghi vào đặc điểm, bao gồm một yêu cầu từ bảng 2 với mã dữ liệu là 0x03. Nhà cung cấp xác minh rằng:
- Khoá xác thực một lần đã cung cấp khớp với khoá tài khoản của chủ sở hữu.
- Khoá nhận dạng tạm thời đã băm khớp với khoá nhận dạng tạm thời hiện tại.
Nếu Nhà cung cấp không được cấp phép dưới dạng beacon FMDN hoặc quá trình xác minh không thành công, thì Nhà cung cấp sẽ trả về lỗi chưa được xác thực.
Khi thành công, Nhà cung cấp quên khoá và ngừng quảng cáo các khung FMDN.
Trình cung cấp thông báo bằng phản hồi từ bảng 6 với ID dữ liệu 0x03.
Phân đoạn xác thực được định nghĩa là 8 byte đầu tiên của HMAC-SHA256(account key, protocol major version number || the last nonce read
from the characteristic || data ID || data length || 0x01)
.
Đọc khoá nhận dạng tạm thời khi có sự đồng ý của người dùng
Tuỳ chọn này chỉ có sẵn để khôi phục khoá bị mất, vì khoá chỉ được Trình tìm kiếm lưu trữ cục bộ. Do đó, tính năng này chỉ hoạt động khi thiết bị đang ở chế độ ghép nối hoặc trong một khoảng thời gian giới hạn nào đó sau khi người dùng nhấn nút vật lý trên thiết bị (tạo thành sự đồng ý của người dùng).
Trình tìm kiếm phải lưu trữ khoá khôi phục trên phần phụ trợ để có thể khôi phục khoá văn bản thô, nhưng không lưu trữ chính EIK.
Để đọc EIK, Trình tìm kiếm thực hiện thao tác ghi vào đặc điểm này, bao gồm yêu cầu từ bảng 3 với mã dữ liệu 0x04. Nhà cung cấp xác minh rằng:
- Khoá khôi phục đã băm khớp với khoá khôi phục dự kiến.
- Thiết bị đang ở chế độ khôi phục EIK.
Nếu xác minh không thành công, Nhà cung cấp sẽ trả về lỗi chưa được xác thực.
Nếu thiết bị không ở chế độ ghép nối, thì Nhà cung cấp sẽ trả về lỗi Không có sự đồng ý của người dùng.
Khi thành công, Nhà cung cấp sẽ thông báo bằng phản hồi từ bảng 6 với mã dữ liệu 0x04.
Phân đoạn xác thực được định nghĩa là 8 byte đầu tiên của HMAC-SHA256(recovery key, protocol major version number || the last nonce read
from the characteristic || data ID || data length || additional data || 0x01)
.
Hoạt động đổ chuông
Trình tìm kiếm có thể yêu cầu Nhà cung cấp phát âm thanh bằng cách thực hiện thao tác ghi vào đặc điểm, bao gồm một yêu cầu từ bảng 4 có mã dữ liệu là 0x05. Nhà cung cấp tạo phân đoạn dữ liệu như sau:
Hình bát giác | Loại dữ liệu | Nội dung mô tả | Giá trị |
---|---|---|---|
0 | uint8 | Hoạt động đổ chuông | Một bitmask có các giá trị sau:
|
1 – 2 | uint16 | Lần bị tạm ngừng | Thời gian chờ tính bằng deci giây. Không được bằng 0 và không được lớn hơn tương đương với 10 phút. Trình cung cấp sử dụng giá trị này để xác định thời lượng sẽ đổ chuông trước khi tắt tiếng. Thời gian chờ sẽ ghi đè thời gian chờ đã có hiệu lực nếu bất kỳ thành phần nào của thiết bị đang đổ chuông. Nếu bạn đặt thao tác đổ chuông thành 0x00, thì thời gian chờ sẽ bị bỏ qua. |
3 | uint8 | Âm lượng |
|
Khi nhận được yêu cầu, Nhà cung cấp sẽ xác minh rằng:
- Khoá xác thực một lần được cung cấp khớp với khoá đổ chuông.
- Trạng thái được yêu cầu khớp với các thành phần có thể đổ chuông.
Nếu Nhà cung cấp không được cấp phép dưới dạng beacon FMDN hoặc quá trình xác minh không thành công, thì Nhà cung cấp sẽ trả về lỗi chưa được xác thực. Tuy nhiên, nếu Nhà cung cấp đang bật tính năng bảo vệ theo dõi không mong muốn và yêu cầu bảo vệ theo dõi không mong muốn kích hoạt đã bật cờ xác thực bỏ qua đổ chuông, thì Nhà cung cấp nên bỏ qua bước kiểm tra đó. Trình tìm kiếm dự kiến vẫn cung cấp dữ liệu xác thực nhưng dữ liệu này có thể được đặt thành một giá trị tuỳ ý.
Khi chế độ đổ chuông bắt đầu hoặc kết thúc, thông báo sẽ được gửi như thể hiện trong bảng 6 với mã dữ liệu là 0x05. Nội dung thông báo được xác định như sau:
Hình bát giác | Loại dữ liệu | Nội dung mô tả | Giá trị |
---|---|---|---|
0 | uint8 | Trạng thái đổ chuông |
|
1 | uint8 | Các thành phần đổ chuông | Mặt nạ bit của các thành phần đang đổ chuông, như được xác định trong yêu cầu. |
2 – 3 | uint16 | Lần bị tạm ngừng | Thời gian còn lại để đổ chuông tính bằng deci giây. Nếu thiết bị đã ngừng đổ chuông, hàm sẽ trả về 0x0000. |
Phân đoạn xác thực được định nghĩa là 8 byte đầu tiên của HMAC-SHA256(ring key, protocol major version number || the nonce used to
initiate the ringing command || data ID || data length || additional data ||
0x01)
.
Khi nhận được yêu cầu đổ chuông hoặc dừng đổ chuông, nếu thiết bị đã ở trạng thái đổ chuông theo yêu cầu, Nhà cung cấp sẽ gửi một thông báo có trạng thái đổ chuông hoặc 0x00: Started (Bắt đầu) hoặc 0x04: Paused (Đã dừng) (yêu cầu GATT). Yêu cầu này sẽ ghi đè các thông số của trạng thái hiện có để có thể kéo dài thời lượng đổ chuông.
Nếu Nhà cung cấp có nút vật lý (hoặc cảm giác chạm đang bật), thì nút đó sẽ dừng chức năng đổ chuông nếu được nhấn trong khi tính năng đổ chuông đang hoạt động.
Nhận trạng thái đổ chuông của beacon
Để biết trạng thái đổ chuông của beacon, Trình tìm kiếm thực hiện thao tác ghi vào đặc điểm này, bao gồm một yêu cầu từ bảng 4 với mã dữ liệu là 0x06. Trình cung cấp xác minh rằng khoá xác thực một lần đã cung cấp khớp với khoá đổ chuông.
Nếu Nhà cung cấp không được cấp phép dưới dạng beacon FMDN hoặc nếu xác minh không thành công, thì Nhà cung cấp sẽ trả về lỗi chưa được xác thực.
Khi thành công, Nhà cung cấp sẽ thông báo bằng phản hồi từ bảng 6 với mã dữ liệu 0x06. Nhà cung cấp tạo phân đoạn dữ liệu như sau:
Hình bát giác | Loại dữ liệu | Nội dung mô tả | Giá trị |
---|---|---|---|
0 | uint8 | Các thành phần đổ chuông | Các thành phần sẽ chủ động đổ chuông, như xác định trong yêu cầu đổ chuông. |
1 – 2 | uint16 | Lần bị tạm ngừng | Thời gian còn lại để đổ chuông tính bằng deci giây. Lưu ý rằng nếu thiết bị không đổ chuông, thì hàm sẽ trả về 0x0000. |
Phân đoạn xác thực được định nghĩa là 8 byte đầu tiên của HMAC-SHA256 (ring key, protocol major version number || the last nonce read
from the characteristic || data ID || data length || additional data || 0x01)
.
Chế độ chống theo dõi không mong muốn
Chế độ chống theo dõi không mong muốn được dùng để cho phép mọi ứng dụng xác định những thiết bị vi phạm mà không có giao tiếp với máy chủ. Theo mặc định, Nhà cung cấp phải xoay vòng tất cả các giá trị nhận dạng như mô tả trong bài viết Xoay vòng mã nhận dạng. Dịch vụ Tìm thiết bị của tôi có thể chuyển tiếp yêu cầu kích hoạt chế độ bảo vệ theo dõi không mong muốn thông qua mạng lưới Tìm thiết bị của tôi. Bằng cách làm như vậy, dịch vụ khiến Nhà cung cấp tạm thời sử dụng một địa chỉ MAC cố định, cho phép ứng dụng phát hiện thiết bị và cảnh báo người dùng về hoạt động theo dõi không mong muốn có thể xảy ra.
Để kích hoạt hoặc huỷ kích hoạt chế độ bảo vệ theo dõi không mong muốn của beacon, Trình tìm kiếm thực hiện thao tác ghi vào đặc tính này, bao gồm yêu cầu từ bảng 5 với mã dữ liệu là 0x07 hoặc 0x08 tương ứng.
Khi bật chế độ bảo vệ chống theo dõi không mong muốn
Nhà cung cấp tạo phân đoạn dữ liệu như sau:
Hình bát giác | Loại dữ liệu | Nội dung mô tả | Giá trị |
---|---|---|---|
0 | uint8 | Cờ điều khiển |
Cờ chỉ có hiệu lực cho đến khi chế độ bảo vệ theo dõi không mong muốn bị huỷ kích hoạt. |
Nhà cung cấp xác minh rằng khoá xác thực một lần đã cung cấp khớp với khoá bảo vệ theo dõi không mong muốn. Nếu Nhà cung cấp không được cấp phép dưới dạng beacon FMDN hoặc quá trình xác minh không thành công, thì Nhà cung cấp sẽ trả về lỗi chưa được xác thực.
Khi chế độ bảo vệ chống theo dõi không mong muốn được kích hoạt, beacon sẽ giảm tần suất xoay địa chỉ riêng tư MAC xuống một lần mỗi 24 giờ. Giá trị nhận dạng tạm thời được quảng cáo sẽ tiếp tục xoay vòng như bình thường. Bạn nên đặt loại khung thành 0x41. Trạng thái cũng được phản ánh trong phần cờ đã băm.
Khi tắt chế độ bảo vệ chống theo dõi không mong muốn
Nhà cung cấp xác minh rằng:
- Khoá xác thực một lần được cung cấp khớp với khoá bảo vệ chống theo dõi không mong muốn.
- Khoá nhận dạng tạm thời đã băm khớp với khoá nhận dạng tạm thời hiện tại.
Nếu Nhà cung cấp không được cấp phép dưới dạng beacon FMDN hoặc quá trình xác minh không thành công, thì Nhà cung cấp sẽ trả về lỗi chưa được xác thực.
Khi bạn tắt chế độ bảo vệ theo dõi không mong muốn, beacon sẽ bắt đầu xoay địa chỉ MAC ở tốc độ bình thường một lần nữa, được đồng bộ hoá với chế độ xoay giá trị nhận dạng tạm thời. Bạn nên đặt loại khung về lại 0x40. Trạng thái cũng được phản ánh trong phần cờ đã băm.
Khi thành công, Trình cung cấp sẽ thông báo bằng phản hồi từ bảng 6 với mã dữ liệu là 0x07 hoặc 0x08.
Phân đoạn xác thực được định nghĩa là 8 byte đầu tiên của HMAC-SHA256(unwanted tracking protection key, protocol major version number ||
the last nonce read from the characteristic || data ID || data length ||
0x01)
.
Khung đã quảng cáo
Sau khi cấp phép, Nhà cung cấp dự kiến sẽ quảng cáo các khung FMDN ít nhất 2 giây một lần. Nếu bạn quảng cáo khung Ghép nối nhanh, thì Nhà cung cấp phải xen kẽ các khung FMDN trong các quảng cáo Ghép nối nhanh thông thường. Ví dụ: Cứ 2 giây, Nhà cung cấp nên quảng cáo 7 quảng cáo Ghép nối nhanh và 1 quảng cáo FMDN.
Khung FMDN chứa một khoá công khai dùng để mã hoá các báo cáo vị trí của mọi ứng dụng hỗ trợ góp phần vào mạng lưới sử dụng nguồn lực cộng đồng. Có 2 loại khoá đường cong elip: khoá 160 bit phù hợp với các khung BLE 4 cũ hoặc khoá 256 bit yêu cầu BLE 5 với khả năng quảng cáo mở rộng. Phương thức triển khai của Trình cung cấp sẽ xác định đường cong được sử dụng.
Khung FMDN có cấu trúc như sau.
Hình bát giác | Giá trị | Nội dung mô tả |
---|---|---|
0 | 0x02 | Chiều dài |
1 | 0x01 | Giá trị loại dữ liệu gắn cờ |
2 | 0x06 | Dữ liệu về cờ |
3 | 0x18 hoặc 0x19 | Chiều dài |
4 | 0x16 | Giá trị loại dữ liệu dịch vụ |
5 | 0xAA | Mã nhận dạng duy nhất cho dịch vụ 16 bit |
6 | 0xFE | ... |
7 | 0x40 hoặc 0x41 | Loại khung FMDN có chỉ báo chế độ bảo vệ theo dõi không mong muốn |
8..27 | Giá trị nhận dạng tạm thời 20 byte | |
28 | Cờ đã băm |
Bảng 8: Khung FMDN hỗ trợ đường cong 160 bit.
Bảng 9 cho thấy các độ lệch byte và giá trị của đường cong 256 bit.
Hình bát giác | Giá trị | Nội dung mô tả |
---|---|---|
0 | 0x02 | Chiều dài |
1 | 0x01 | Giá trị loại dữ liệu gắn cờ |
2 | 0x06 | Dữ liệu về cờ |
3 | 0x24 hoặc 0x25 | Chiều dài |
4 | 0x16 | Giá trị loại dữ liệu dịch vụ |
5 | 0xAA | Mã nhận dạng duy nhất cho dịch vụ 16 bit |
6 | 0xFE | ... |
7 | 0x40 hoặc 0x41 | Loại khung FMDN có chỉ báo chế độ bảo vệ theo dõi không mong muốn |
8,.39 | Giá trị nhận dạng tạm thời 32 byte | |
40 | Cờ đã băm |
Bảng 9: Khung FMDN hỗ trợ đường cong 256 bit.
Tính toán giá trị nhận dạng tạm thời (EID)
Một ngẫu nhiên được tạo bằng cách AES-ECB-256 mã hoá cấu trúc dữ liệu sau đây bằng khoá nhận dạng tạm thời:
Hình bát giác | Kỹ thuật | Nội dung mô tả |
---|---|---|
0 – 10 | Khoảng đệm | Giá trị = 0xFF |
11 | nghìn | Số mũ của chu kỳ xoay |
12 – 15 | TS[0]...TS[3] | Bộ đếm thời gian báo hiệu, ở định dạng Big-endian 32 bit. Các bit thấp nhất của K sẽ bị xoá. |
16 – 26 | Khoảng đệm | Giá trị = 0x00 |
27 | nghìn | Số mũ của chu kỳ xoay |
28 - 31 | TS[0]...TS[3] | Bộ đếm thời gian báo hiệu, ở định dạng Big-endian 32 bit. Các bit thấp nhất của K sẽ bị xoá. |
Bảng 10: Xây dựng một số giả ngẫu nhiên.
Kết quả của phép tính này là một số có 256 bit, được biểu thị bằng r'
.
Trong phép tính còn lại, SECP160R1
hoặc SECP256R1
được dùng cho các thao tác mã hoá đường cong elip. Xem định nghĩa đường cong trong
SEC 2: Tham số miền đường cong elip được đề xuất. Tham số này sẽ xác định Fp
, n
và G
được tham chiếu tiếp theo.
r'
hiện được chiếu vào trường hữu hạn Fp
bằng cách tính r = r' mod n
.
Cuối cùng, hãy tính toán R = r * G
, là một điểm trên đường cong đại diện cho khoá công khai đang được sử dụng. beacon quảng cáo Rx
, là toạ độ x
của R
làm giá trị nhận dạng tạm thời.
Cờ đã băm
Trường cờ đã băm được tính toán như sau (các bit được tham chiếu từ quan trọng nhất đến ít quan trọng nhất):
- Bit 0-4: Đặt trước (được đặt thành 0).
- Bit 5-6 cho biết mức pin của thiết bị như sau:
- 00: Chỉ báo mức pin không được hỗ trợ
- 01: Mức pin bình thường
- 10: Mức pin thấp
- 11: Mức pin quá yếu (cần sớm thay pin)
- Bit 7 được đặt thành 1 nếu beacon ở chế độ bảo vệ theo dõi không mong muốn và là 0 nếu không.
Để tạo giá trị cuối cùng của byte này, byte này được xor-ed với byte SHA256(r)
ít quan trọng nhất.
Lưu ý rằng r phải được căn chỉnh theo kích thước của đường cong. Thêm số 0 làm bit có ý nghĩa nhất nếu giá trị biểu diễn ngắn hơn 160 hoặc 256 bit, hoặc cần cắt bớt các bit quan trọng nhất nếu giá trị biểu diễn lớn hơn 160 hoặc 256 bit.
Nếu beacon không hỗ trợ chỉ báo mức pin và không ở chế độ bảo vệ hoạt động theo dõi không mong muốn, thì beacon được phép bỏ qua hoàn toàn byte này khỏi quảng cáo.
Mã hoá bằng EID
Để mã hoá tin nhắn m
, người nhìn (đã đọc Rx
từ beacon) sẽ làm như sau:
- Chọn một số ngẫu nhiên
s
trongFp
, như xác định trong phần Tính toán EID. - Tính toán
S = s * G
. - Tính
R = (Rx, Ry)
bằng cách thay thế trong phương trình đường cong và chọn một giá trịRy
tuỳ ý trong số các kết quả có thể xảy ra. - Tính toán khoá AES 256 bit
k = HKDF-SHA256((s * R)x)
, trong đó(s * R)x
là toạ độx
của kết quả nhân đường cong. Muối không được chỉ định. - Đặt
URx
vàLRx
lần lượt là 80 bit trên và dưới củaRx
ở định dạng lớn (big-endian). Tương tự như vậy, hãy xác địnhUSx
vàLSx
choS
. - Tính toán
nonce = LRx || LSx
. - Tính toán
(m’, tag) = AES-EAX-256-ENC(k, nonce, m)
. - Gửi
(URx, Sx, m’, tag)
cho chủ sở hữu, có thể thông qua một dịch vụ từ xa không đáng tin cậy.
Giải mã các giá trị được mã hoá bằng EID
Ứng dụng của chủ sở hữu sở hữu EIK và số mũ của thời gian xoay, sẽ giải mã thông báo như sau:
- Với
URx
, hãy lấy giá trị bộ đếm thời gian beacon màURx
dựa trên. Điều này có thể được thực hiện bằng máy khách của chủ sở hữu tính toán các giá trịRx
cho các giá trị bộ đếm thời gian beacon trong quá khứ gần đây và tương lai gần. - Với giá trị bộ đếm thời gian beacon làm cơ sở cho
URx
, hãy tính toán giá trị dự kiến củar
như xác định trong phần tính toán EID. - Tính toán
R = r * G
và xác minh rằng kết quả khớp với giá trị củaURx
do trình theo dõi cung cấp. - Tính
S = (Sx, Sy)
bằng cách thay thế trong phương trình đường cong và chọn một giá trịSy
tuỳ ý trong số các kết quả có thể xảy ra. - Tính toán
k = HKDF-SHA256((r * S)x)
, trong đó(r * S)x
là toạ độx
của kết quả nhân đường cong. - Tính toán
nonce = LRx || LSx
. - Tính toán
m = AES-EAX-256-DEC(k, nonce, m’, tag)
.
Xoay mã nhận dạng
Bạn phải sử dụng địa chỉ BLE có thể phân giải (RPA) hoặc không thể phân giải (NRPA) để quảng cáo khung FMDN. RPA là bắt buộc đối với các thiết bị LE Audio (LEA) và nên dùng cho các thiết bị khác, ngoại trừ những thẻ định vị không dùng liên kết.
Quảng cáo Ghép nối nhanh, quảng cáo FMDN và(các) địa chỉ BLE tương ứng phải xoay vòng cùng lúc. Quá trình xoay sẽ diễn ra trung bình 1024 giây một lần. Điểm chính xác mà beacon bắt đầu quảng cáo giá trị nhận dạng mới phải được chọn ngẫu nhiên trong cửa sổ.
Phương pháp đề xuất để sắp xếp ngẫu nhiên thời gian xoay là đặt thời gian xoay đó thành thời gian xoay dự kiến tiếp theo (nếu không áp dụng sắp xếp ngẫu nhiên) cùng với hệ số thời gian được sắp xếp ngẫu nhiên dương trong khoảng từ 1 đến 204 giây.
Khi thiết bị ở chế độ bảo vệ theo dõi không mong muốn, bạn phải khắc phục địa chỉ BLE của quảng cáo FMDN, nhưng RPA cho các quảng cáo không phát hiện được FP (chẳng hạn như tính năng Ghép nối nhanh) phải tiếp tục xoay vòng. Bạn có thể dùng địa chỉ khác nhau cho các giao thức khác nhau.
Phục hồi sau khi mất điện
Việc phân giải giá trị nhận dạng tạm thời có liên quan chặt chẽ đến giá trị đồng hồ tại thời điểm quảng cáo. Vì vậy, điều quan trọng là Nhà cung cấp có thể khôi phục giá trị đồng hồ nếu bị mất điện năng. Nhà cung cấp nên ghi giá trị xung nhịp hiện tại vào bộ nhớ bất biến ít nhất một lần mỗi ngày, và tại thời điểm khởi động, Nhà cung cấp sẽ kiểm tra NVM để xem có giá trị nào cần khởi chạy hay không. Các trình phân giải của giá trị nhận dạng tạm thời sẽ triển khai độ phân giải trong một khoảng thời gian đủ để cho phép xảy ra tình trạng trôi dạt xung nhịp hợp lý và kiểu khôi phục mất điện này.
Nhà cung cấp vẫn phải cố gắng hết sức để giảm thiểu tình trạng trôi xung nhịp vì khoảng thời gian phân giải bị giới hạn. Bạn phải triển khai ít nhất một phương thức đồng bộ hoá đồng hồ bổ sung (quảng cáo các khung Ghép nối nhanh không phát hiện được hoặc triển khai luồng thông báo).
Nguyên tắc triển khai tính năng Ghép nối nhanh
Phần này mô tả các khía cạnh đặc biệt của việc triển khai tính năng Ghép nối nhanh trên các Nhà cung cấp hỗ trợ FMDN.
Nguyên tắc dành riêng cho thẻ định vị
- Nếu Nhà cung cấp đã được ghép nối, nhưng FMDN không được cấp phép trong vòng 5 phút (hoặc nếu bản cập nhật OTA được áp dụng trong khi thiết bị được ghép nối nhưng không được FMDN cấp phép), thì Nhà cung cấp phải hoàn nguyên về cấu hình ban đầu và xoá các khoá tài khoản đã lưu.
- Sau khi Nhà cung cấp được ghép nối, không nên thay đổi địa chỉ MAC của mình cho đến khi FMDN được cấp phép hoặc cho đến khi 5 phút trôi qua.
- Nếu khoá nhận dạng tạm thời bị xoá khỏi thiết bị, thì thiết bị cũng phải đặt lại về trạng thái ban đầu và xoá các khoá tài khoản đã lưu trữ.
- Nhà cung cấp nên từ chối các nỗ lực ghép nối Bluetooth thông thường và chỉ chấp nhận ghép nối tính năng Ghép nối nhanh.
- Nhà cung cấp phải có một cơ chế cho phép người dùng tạm thời dừng quảng cáo mà không cần đặt lại thiết bị về trạng thái ban đầu (ví dụ: nhấn một tổ hợp các nút).
- Sau khi mất điện, thiết bị sẽ quảng cáo các khung Ghép nối nhanh không phát hiện được cho đến khi lệnh gọi đọc tham số beacon tiếp theo. Điều này cho phép Trình tìm kiếm phát hiện thiết bị và đồng bộ hoá đồng hồ ngay cả khi đồng hồ bị trôi đáng kể.
- Khi quảng cáo các khung Ghép nối nhanh không phát hiện được, bạn không nên bật chỉ báo giao diện người dùng.
- Bạn không được quảng cáo các khung Ghép nối nhanh có thể phát hiện được trong khi Trình cung cấp được cấp phép cho FMDN.
- Trình cung cấp không được hiển thị bất kỳ thông tin nhận dạng nào theo cách chưa được xác thực (ví dụ: tên hoặc giá trị nhận dạng).
Nguyên tắc dành riêng cho thiết bị Bluetooth cổ điển
Phần này mô tả các khía cạnh đặc biệt của thiết bị Bluetooth cổ điển có hỗ trợ FMDN.
Cấp phép FMDN của các thiết bị đã ghép nối
Không phải lúc nào Nhà cung cấp cũng được cấp phép cho FMDN khi ghép nối với Trình tìm kiếm, nhưng sẽ thực hiện sau đó. Trong trường hợp đó, Nhà cung cấp có thể không có địa chỉ BLE MAC mới nhất cần thiết để thiết lập kết nối GATT. Nhà cung cấp phải hỗ trợ ít nhất một trong các cách sau đây để Trình tìm kiếm nhận được địa chỉ BLE trong khi đã ghép nối:
- Nhà cung cấp có thể định kỳ quảng cáo dữ liệu tài khoản Ghép nối nhanh để cho phép Trình tìm kiếm tìm thấy địa chỉ BLE thông qua quá trình quét BLE.
Phương pháp này phù hợp với những Nhà cung cấp không triển khai luồng tin nhắn. - Nhà cung cấp có thể cung cấp dữ liệu này thông qua luồng thông báo Ghép nối nhanh qua Bluetooth cũ.
Phương pháp này phù hợp với những Nhà cung cấp không quảng cáo khung Ghép nối nhanh trong khi kết nối với Trình tìm kiếm qua Bluetooth.
Việc hỗ trợ cả hai phương pháp này sẽ làm tăng khả năng người dùng có thể cung cấp thiết bị cho FMDN.
Luồng tin nhắn Ghép nối nhanh
Nhà cung cấp có thể triển khai luồng thông báo Ghép nối nhanh và dùng luồng này để thông báo cho Người tìm kiếm về Thông tin thiết bị. Việc triển khai luồng thông báo sẽ bật một số tính năng nhất định như mô tả trong phần này.
Nhà cung cấp phải gửi thông báo thông tin thiết bị một lần mỗi khi thiết lập kênh RFCOMM truyền thông báo.
Phiên bản chương trình cơ sở (mã thông tin thiết bị 0x09) và khả năng theo dõi
Khi một bản cập nhật chương trình cơ sở bổ sung tính năng hỗ trợ FMDN cho Nhà cung cấp, một Trình tìm kiếm đã kết nối có thể thông báo cho người dùng về điều đó và đề nghị cung cấp dịch vụ đó. Nếu không, người dùng phải chuyển đến danh sách thiết bị Bluetooth theo cách thủ công để bắt đầu cấp phép FMDN.
Để cho phép việc đó, Nhà cung cấp phải sử dụng thuộc tính phiên bản Chương trình cơ sở (mã 0x09) để báo cáo một giá trị chuỗi biểu thị phiên bản chương trình cơ sở. Ngoài ra, Nhà cung cấp phải hỗ trợ giao thức cho phép Trình tìm kiếm biết về Các thay đổi về Tính năng do bản cập nhật chương trình cơ sở.
Hình bát giác | Loại dữ liệu | Nội dung mô tả | Giá trị |
---|---|---|---|
0 | uint8 | Sự kiện thông tin thiết bị | 0x03 |
1 | uint8 | Phiên bản chương trình cơ sở | 0x09 |
2 – 3 | uint16 | Thời lượng dữ liệu bổ sung | không cố định |
var | mảng byte | Chuỗi phiên bản | không cố định |
Bảng 11: Sự kiện thông tin thiết bị: phiên bản chương trình cơ sở đã cập nhật.
Khi nhận được yêu cầu cập nhật chức năng (0x0601), nếu Nhà cung cấp đã bật tính năng hỗ trợ theo dõi FMDN, thì Nhà cung cấp sẽ phản hồi như trong bảng 12.
Hình bát giác | Loại dữ liệu | Nội dung mô tả | Giá trị |
---|---|---|---|
0 | uint8 | Sự kiện đồng bộ hoá chức năng của thiết bị | 0x06 |
1 | uint8 | Theo dõi FMDN | 0x03 |
2 – 3 | uint16 | Thời lượng dữ liệu bổ sung | 0x0007 |
4 | uint8 | Trạng thái cấp phép FMDN | 0x00 nếu không được cấp phép; 0x01 nếu được bất kỳ tài khoản nào cấp phép |
5 - 10 | mảng byte | Địa chỉ BLE MAC hiện tại của thiết bị | không cố định |
Bảng 12: Sự kiện đồng bộ hoá chức năng của thiết bị: chức năng theo dõi bổ sung.
Giá trị nhận dạng tạm thời hiện tại (mã thông tin thiết bị 0x0B)
Nhà cung cấp có thể sử dụng giá trị nhận dạng tạm thời hiện tại (mã 0x0B) để báo cáo EID và giá trị xung nhịp hiện tại khi Nhà cung cấp được cấp phép cho FMDN, để đồng bộ hoá Trình tìm kiếm trong trường hợp xảy ra sự cố trôi xung nhịp (ví dụ: do hết pin). Nếu không, Trình tìm kiếm sẽ bắt đầu một kết nối tốn kém hơn và kém tin cậy hơn cho mục đích này.
Hình bát giác | Loại dữ liệu | Nội dung mô tả | Giá trị |
---|---|---|---|
0 | uint8 | Sự kiện thông tin thiết bị | 0x03 |
1 | uint8 | Giá trị nhận dạng tạm thời hiện tại | 0x0 tỷ |
2 – 3 | uint16 | Thời lượng dữ liệu bổ sung | 0x0018 hoặc 0x0024 |
4 – 7 | mảng byte | Giá trị đồng hồ | Ví dụ: 0x13F9EA80 |
8 – 19 hoặc 31 | mảng byte | EID hiện tại | Ví dụ: 0x1122334455667788990011223344556677889900 |
Bảng 13: Sự kiện thông tin thiết bị: đồng bộ hoá đồng hồ.
Đặt lại về trạng thái ban đầu
Đối với các thiết bị hỗ trợ đặt lại về trạng thái ban đầu: nếu thực hiện đặt lại về trạng thái ban đầu, thì Nhà cung cấp phải ngừng phát tín hiệu và xoá khoá nhận dạng tạm thời cũng như mọi khoá tài khoản được lưu trữ, bao gồm cả khoá tài khoản của chủ sở hữu.
Sau khi đặt lại về trạng thái ban đầu (theo cách thủ công hoặc có lập trình), Nhà cung cấp không nên bắt đầu quảng cáo tính năng Ghép nối nhanh ngay để ngăn quy trình ghép nối bắt đầu ngay sau khi người dùng xoá thiết bị.
Ngăn chặn hoạt động theo dõi không mong muốn
Các thiết bị FMDN được chứng nhận cũng phải đáp ứng các yêu cầu trong phiên bản triển khai của thông số kỹ thuật trên nhiều nền tảng cho tính năng Phát hiện trình theo dõi vị trí không mong muốn (DULT).
Các nguyên tắc liên quan dành riêng cho FMDN để tuân thủ quy cách của DULT:
- Mọi thiết bị tương thích với FMDN đều phải được đăng ký trong Bảng điều khiển thiết bị ở gần và kích hoạt tính năng "Tìm thiết bị của tôi".
- Thiết bị phải triển khai dịch vụ Không phải chủ sở hữu phụ kiện và đặc điểm được xác định trong phiên bản triển khai của thông số kỹ thuật DULT, bao gồm cả thao tác Thông tin phụ kiện và Quyền kiểm soát của người không phải chủ sở hữu.
- Trong giai đoạn tương thích ngược, như định nghĩa trong thông số kỹ thuật DULT, không có thay đổi nào đối với khung quảng cáo như xác định trong tài liệu này.
- "Chế độ chống theo dõi không mong muốn" được xác định trong tài liệu này sẽ ánh xạ tới "trạng thái phân tách" được xác định theo quy cách DULT.
- Nguyên tắc triển khai các mã cơ sở Thông tin phụ kiện:
- Get_Product_Data sẽ trả về mã kiểu máy do bảng điều khiển cung cấp, không có khoảng đệm nào để phù hợp với yêu cầu về 8 byte. Ví dụ: mã mô hình 0xFFFFFF được trả về là 0x0000000000FFFFFF.
- Get_Manufacturer_Name và Get_Model_Name phải khớp với các giá trị được cung cấp trong bảng điều khiển.
- Get_Accessory_Category có thể trả về giá trị chung "Trình theo dõi vị trí" nếu không có danh mục nào khác phù hợp hơn với loại thiết bị này.
- Get_Accessory_Capabilities phải cho biết tính năng hỗ trợ đổ chuông cũng như tra cứu giá trị nhận dạng BLE.
- Get_Network_ID sẽ trả về giá trị nhận dạng của Google (0x02).
- Nguyên tắc triển khai mã vận hành Get_Identifier:
- Thao tác này chỉ trả về phản hồi hợp lệ trong 5 phút sau khi người dùng kích hoạt chế độ "nhận dạng", chế độ này yêu cầu kết hợp các lần nhấn nút. Tín hiệu âm thanh hoặc hình ảnh phải cho người dùng biết rằng nhà cung cấp đã chuyển sang chế độ đó. Bạn phải cung cấp cho Google hướng dẫn dành riêng cho từng mô hình để kích hoạt chế độ đó theo yêu cầu để chứng nhận và ít nhất 10 ngày trước khi cập nhật hoặc sửa đổi hướng dẫn đó.
- Phản hồi được tạo dưới dạng: 10 byte đầu tiên của giá trị nhận dạng tạm thời hiện tại, tiếp theo là 8 byte đầu tiên của
HMAC-SHA256(recovery key, the truncated current ephemeral identifier)
.
- Nguyên tắc triển khai mã hoạt động Sound_Start:
- Lệnh này sẽ kích hoạt chế độ đổ chuông trong tất cả các thành phần có sẵn.
- Bạn nên sử dụng âm lượng tối đa được hỗ trợ.
- Thời lượng chuông đề xuất để đổ chuông là 12 giây.
- Thẻ định vị phải bao gồm một cơ chế cho phép người dùng tạm thời dừng quảng cáo mà không cần đặt lại thiết bị về trạng thái ban đầu (ví dụ: nhấn tổ hợp các nút).
- Bạn phải ghi lại hướng dẫn vô hiệu hoá trong một URL có sẵn công khai và cung cấp cho Google theo yêu cầu chứng nhận và ít nhất 10 ngày trước khi cập nhật hoặc sửa đổi hướng dẫn đó.
- URL phải hỗ trợ bản địa hoá. Tuỳ thuộc vào ứng dụng, ngôn ngữ sẽ được cung cấp dưới dạng tham số truy vấn ("hl=en") hoặc sử dụng tiêu đề HTTP "chấp nhận ngôn ngữ".
Nguyên tắc về giao thức có thể chuyển đổi
- Bạn chỉ nên sử dụng một giao thức tại một thời điểm. Đảm bảo chỉ có một mạng có thể hoạt động trên thiết bị cùng lúc. Yêu cầu này là cần thiết để đảm bảo rằng không có dữ liệu nhạy cảm của người dùng kết hợp với nhau giữa các giao thức khác nhau.
- Bạn nên kết hợp quy trình khôi phục chế độ cài đặt gốc vào thiết bị để cho phép người dùng thiết lập lại thiết bị bằng một mạng khác.
- Quá trình cập nhật thiết bị lên mạng phải thân thiện với người dùng và công bằng giữa các mạng. Người dùng phải chọn được mạng họ muốn sử dụng mà không cần ưu tiên một trong các mạng. Quy trình này cần được nhóm Google phê duyệt.
Các bản cập nhật chương trình cơ sở
Đối tác phải quản lý quy trình và việc phân phối bản cập nhật OTA bằng quy trình công việc của riêng họ trong Ứng dụng web hoặc ứng dụng di động.
Khả năng tương thích
Mạng lưới Tìm thiết bị của tôi yêu cầu bật dịch vụ vị trí và Bluetooth. Cần phải có dịch vụ di động hoặc kết nối Internet. Hoạt động trên Android 9 trở lên và ở một số quốc gia dành cho người dùng đủ tuổi.
Nhật ký thay đổi
Phiên bản FMDN | Ngày | Bình luận |
---|---|---|
v1 | Bản phát hành đầu tiên của thông số kỹ thuật FMDN để tiếp cận sớm. | |
v1.1 | Feb 2023 |
|
v1.2 | Tháng 4 năm 2023 |
|
v1.3 | Tháng 12 năm 2023 |
|