Perangkat Bluetooth Hemat Energi (BLE)
Implementasi Layanan Sambungan Cepat Google (GFPS) untuk perangkat BLE kompatibel dengan Bluetooth Core Specification v4.2 atau yang lebih baru.
Adendum berikut untuk spesifikasi Sambungan Cepat akan memungkinkan dukungan untuk perangkat khusus Hemat Energi (LE) dan Audio Hemat Energi (LEA) di GFPS.
Tingkat Kepatuhan
Kata kunci “shall”, “must”, “will”, “should”, “may”, dan “can” yang disebutkan dalam spesifikasi dijelaskan di bawah:
Istilah | Deskripsi |
---|---|
shall | diperlukan untuk - digunakan untuk menentukan persyaratan. |
harus | digunakan untuk menyatakan: konsekuensi alami dari persyaratan wajib yang dinyatakan sebelumnya ATAU pernyataan fakta yang tidak dapat disangkal (yang selalu benar terlepas dari situasinya). |
oleh | benar bahwa - hanya digunakan dalam pernyataan fakta. |
harus | sebaiknya - digunakan untuk menunjukkan bahwa di antara beberapa kemungkinan, salah satunya direkomendasikan karena sangat sesuai, tetapi tidak wajib. |
Mei | diizinkan untuk - digunakan untuk mengizinkan opsi. |
dapat | dapat - digunakan untuk mengaitkan pernyataan secara kausal. |
Karakteristik Penyambungan Berbasis Kunci
Pesan dari Pencari ke Penyedia
Permintaan Mentah type 0x00
dari karakteristik Penyambungan Berbasis Kunci menggunakan Bit 4
untuk menunjukkan apakah Pencari Kerja mendukung Spesifikasi Perangkat BLE, dan menggunakan
Bit 5 untuk menunjukkan apakah Pencari mendukung Audio LE.
Oktet | Jenis data | Deskripsi | Nilai | Wajib? |
---|---|---|---|---|
0 | uint8 |
Jenis pesan | 0x00 = Permintaan Penyambungan Berbasis Kunci |
Wajib |
1 | uint8 |
Flag
|
bervariasi | Wajib |
2 - 7 | uint48 |
Salah satu:
|
bervariasi | Wajib |
8 - 13 | uint48 |
Alamat BR/EDR Pencari | bervariasi | Hanya ada jika Flag Bit 1 atau 3 disetel |
n - 15 | Nilai acak (salt) | bervariasi | Wajib |
Pesan dari Penyedia ke Pencari Kerja
Saat Bit 4 permintaan ditetapkan, pesan respons baru type 0x02
untuk karakteristik Penyambungan Berbasis Kunci dapat digunakan untuk memberikan opsi pengikatan tambahan kepada Pencari.
Oktet | Jenis data | Deskripsi | Nilai |
---|---|---|---|
0 | uint8 |
Jenis pesan | 0x02 = Respons yang Diteruskan Penyambungan Berbasis Kunci |
1 | uint8 |
Flag
|
bervariasi |
2 | uint8 |
Jumlah alamat Penyedia (dalam versi saat ini, jumlahnya adalah 1 atau 2, karena kita perlu mengubah mode block cipher menjadi AES-CTR jika jumlahnya >= 3) |
bervariasi |
3 - 8 atau 3 - 14 |
|
bervariasi | |
9 - 15 atau 15 | Nilai acak (salt) | bervariasi |
Penyedia yang mendukung Spesifikasi Perangkat BLE harus membaca Bit 4 dan Bit 5 untuk memahami kemampuan Pencari
- Jika Bit 4 adalah 0, Penyedia harus mengabaikan Bit 5 dan merespons dengan format
type 0x01
- Jika Bit 4 adalah 1,
- Untuk Penyedia khusus LE, penyedia tersebut harus merespons dengan
type 0x02
untuk menunjukkan preferensi ikatan LE. - Untuk Penyedia mode ganda, Penyedia dapat merespons dengan
type 0x02
untuk menunjukkan preferensi pengikatan BR/EDR atau LE.
- Untuk Penyedia khusus LE, penyedia tersebut harus merespons dengan
- Untuk kasus Penyedia mode ganda LE Audio (LEA), lihat Contoh: Menyambungkan dengan Penyedia mode ganda LEA untuk referensi
Karakteristik PSM (Multipleks Layanan Protokol) Aliran Pesan
Untuk mendukung Aliran pesan untuk perangkat BLE, Sambungan Cepat akan membuat dan mempertahankan saluran BLE L2CAP untuk mengirim dan menerima pesan. Server L2CAP Sambungan Cepat akan menerapkan kontrol alur berbasis kredit LE.
Karakteristik ini memungkinkan Pencari membaca nilai PSM, lalu membuat koneksi L2CAP yang aman berdasarkan nilai PSM.
Karakteristik Layanan Sambungan Cepat | Dienkripsi | Izin | UUID |
---|---|---|---|
PSM Message Stream | Ya | Baca | FE2C1239-8366-4814-8EB0-01DE32100BEA |
Octet | Jenis data | Deskripsi | Nilai |
---|---|---|---|
0 | uint8 |
Status
|
bervariasi |
1 - 2 | uint16 |
Nilai PSM harus dalam rentang antara 0x80 dan 0xFF | bervariasi |
Catatan: Untuk TWS, ada dua
komponen: primer dan sekunder. Peran untuk komponen ini
dapat dipertukarkan dalam kondisi tertentu. Dengan asumsi A adalah komponen utama dan B adalah
komponen sekunder, karena baterai terkuras pada komponen A , komponen B perlu
mengambil peran komponen utama dan skenario ini disebut role switch
.
Setelah role switch
, jika penyedia
tidak dapat menangani streaming pesan Sambungan Cepat, penyedia akan secara proaktif memutuskan
koneksi L2CAP yang ada. Pencari Sambungan Cepat kemudian dapat membuat ulang koneksi streaming pesan
L2CAP dengan komponen utama yang baru.
Karakteristik Kunci Sandi Tambahan
Karakteristik ini adalah untuk memberikan perlindungan MITM pada komponen tambahan.
Perlindungan MITM Anggota Palsu CSIS
Sambungan Cepat memerlukan perlindungan MITM sebagai bagian dari prosedur penyambungan. Karena CSIS tidak memberikan perlindungan MITM, desain saat ini untuk FP untuk beberapa komponen perlu diperluas untuk memberikan perlindungan MITM pada komponen tambahan.
Definisi Karakteristik
Karakteristik Layanan Sambungan Cepat | Dienkripsi | Izin | UUID |
---|---|---|---|
Kunci Sandi Tambahan | Ya | Read,write,notify | FE2C123A-8366-4814-8EB0-01DE32100BEA |
Pesan
Format pesan diterapkan ke operasi baca, tulis, dan notifikasi.
Format Data Terenkripsi
Data terenkripsi dikirim menggunakan koneksi GATT Sambungan Cepat.
Octet | Jenis data | Deskripsi | Nilai |
---|---|---|---|
0-15 | uint128 | Blok kunci sandi tambahan terenkripsi | di waktu/bulan/tempat/tanggal tertentu |
Format Data Mentah
Setelah mendekripsi data terenkripsi menggunakan secret bersama, formatnya adalah sebagai berikut
Octet | Jenis data | Deskripsi | Nilai |
---|---|---|---|
0 | uint8 | Jenis pesan | salah satu dari
|
1-3 | uint24 | Kunci sandi 6 digit | di waktu/bulan/tempat/tanggal tertentu |
4-9 | uint48 | Alamat komponen bonding target | di waktu/bulan/tempat/tanggal tertentu |
10 | uint8 | Kode status, ini hanya digunakan oleh operasi baca | Salah satu dari
|
11-15 | Nilai acak (garam) | di waktu/bulan/tempat/tanggal tertentu |
Utama (komponen yang terikat pertama) adalah jembatan antara Pencari Sambungan Cepat dan komponen pengikatan tambahan. Karakteristik harus mengikuti panduan:
- Saat menerima permintaan tulis dari Pencari Sambungan Cepat, Penyedia harus
- Menetapkan alamat komponen yang sedang di-bonding
- Mengirim kunci sandi ke komponen yang diikat
- Setel kode status ke Tertunda, 0x01
- Saat menerima permintaan baca apa pun sebelum menerima kunci sandi dari komponen
yang diikat, Penyedia harus menampilkan pesan dengan
- Kunci sandi, nilai apa pun
- Alamat komponen yang di-bonding
- Kode status tertunda, 0x01
- Sebelum Penyedia mengirim notifikasi ke Pencari Sambungan Cepat, tetapkan hasil
untuk permintaan baca dengan
- Kunci sandi dari komponen yang di-bonding
- Alamat komponen yang diikat
- Kode status berhasil, 0x00
- Jika ada error yang tidak dapat dipulihkan di sisi Penyedia, tetapkan hasilnya
- Kunci sandi, nilai apa pun
- Alamat komponen yang di-bonding
- Kode status kegagalan, 0x02
Lihat diagram MITM 1 dan diagram MITM 2 untuk detail selengkapnya.
Persyaratan Perangkat LE
LE Advertising
Untuk mode yang dapat ditemukan atau mode yang tidak dapat ditemukan, Penyedia harus menggunakan RPA untuk mengumumkan data FastPair.
Kemampuan Pengikatan
Untuk perangkat yang kompatibel dengan LE, Pencari harus membuat ikatan dengan koneksi LE yang ada. Setelah lulus verifikasi Penyambungan berbasis Kunci Sambungan Cepat, Penyedia akan mengizinkan pengikatan dengan RPA, dan menetapkan kemampuan IO ke DisplayYesNo untuk verifikasi Kunci Sambungan Cepat.
Persyaratan Perangkat LEA
LEA Advertising
Untuk perangkat mode ganda: Untuk mode yang dapat ditemukan, Penyedia harus mengiklankan data Sambungan Cepat dengan alamat Identitas. Untuk mode yang tidak dapat ditemukan, Penyedia harus mengiklankan data Sambungan Cepat dengan RPA. Sebaiknya gunakan iklan lama (BT 4.2) untuk mendukung perangkat lama untuk kompatibilitas mundur. IRK harus diubah setiap kali perangkat direset ke setelan pabrik.
Untuk perangkat non-mode ganda: Untuk mode yang dapat ditemukan atau mode yang tidak dapat ditemukan, Penyedia harus menggunakan iklan yang diperluas (BT 5.0) dengan RPA untuk mengiklankan data FastPair.
Iklan LE yang dapat dihubungkan yang berisi data layanan FP harus menyertakan CAS UUID sesuai dengan persyaratan Profil Adaptor Bluetooth (BAP 1.0.1) dan Profil Audio Umum. Untuk iklan yang tidak dapat ditemukan, jika tidak ada cukup ruang dalam iklan lama karena penyertaan data baterai dan SASS, Anda wajib menyertakan CAS UUID dalam respons pemindaian dalam kasus tersebut.
Kemampuan Bonding LEA
Pencari harus membuat ikatan dengan koneksi LE yang ada. Setelah lulus verifikasi Penyambungan berbasis Kunci Sambungan Cepat, Penyedia mode ganda akan mengizinkan pengikatan dengan alamat Identitas dan RPA, sedangkan Penyedia mode non-ganda akan mengizinkan pengikatan dengan RPA, dan menetapkan kemampuan IO ke DisplayYesNo untuk verifikasi Kunci Sandi Sambungan Cepat.
Saluran komunikasi internal antar komponen
Koneksi GATT yang ada dipertahankan untuk melakukan perlindungan MITM pada komponen tambahan. Komponen terikat utama akan menangani pengiriman pesan antara Pencari Sambungan Cepat dan komponen lainnya.
Komunikasi internal digunakan untuk Initial Pair
dan Subsequent Pair
- Saat prosedur Penyambungan Berbasis Kunci meneruskan komponen utama, komponen utama akan mengirim pesan untuk mengubah kemampuan IO dari komponen yang tersisa
- Saat Sambungan Cepat selesai, komponen utama harus mengirim pesan untuk mereset kemampuan IO komponen yang tersisa
- Saat menjalankan prosedur Kunci Sandi Tambahan, komponen utama akan menangani pengiriman kunci sandi antara Pencari Sambungan Cepat dan komponen lainnya
Waktu untuk mengubah kemampuan IO
- Mengubah kemampuan IO menjadi DisplayYesNo saat prosedur Penyambungan Berbasis Kunci diteruskan
- Jika perangkat memiliki beberapa komponen, semua komponen akan disetel ke DisplayYesNo
- Satu pengecualian bahwa Penyedia tidak boleh
mengubah kemampuan IO menjadi DisplayYesNo adalah
Retroactive Pair
, yang Bit 3 dari Permintaan Penyambungan Berbasis Kunci ditetapkan ke 1, lihat Pesan dari Pencari ke Penyedia
- Mengubah kemampuan IO ke setelan default
- Penyambungan awal
- Jika koneksi LE terputus, akhiri sesi Sambungan Cepat
- Setelah primer terikat, jika tidak ada permintaan penulisan kunci sandi tambahan dalam 15 detik, akhiri sesi Sambungan Cepat
- Setelah permintaan tulis kunci sandi tambahan diterima, jika komponen yang diikat tidak diikat dalam waktu 15 detik, akhiri sesi Sambungan Cepat
- Setelah semua komponen terikat, jika tidak ada permintaan tulis kunci akun dalam waktu 15 detik, akhiri sesi Sambungan Cepat
- Setelah permintaan penulisan kunci akun diterima, tetapkan waktu tunggu 15 detik untuk mengakhiri sesi Sambungan Cepat
- Penyambungan berikutnya
- Jika koneksi LE terputus, akhiri sesi Sambungan Cepat
- Setelah utama terikat, jika tidak ada permintaan tulis kunci sandi tambahan dalam waktu 15 detik, akhiri sesi Sambungan Cepat
- Setelah permintaan tulis kunci sandi tambahan diterima, jika komponen yang terikat tidak terikat dalam 15 detik, akhiri sesi Sambungan Cepat
- Saat semua komponen terikat, akhiri sesi Sambungan Cepat
- Penyambungan awal
Menyembunyikan Indikasi UI
Jika headset belum siap untuk disambungkan, Penyedia harus menggunakan type 0b0010
untuk menetapkan indikasi UI sembunyikan untuk Data Kunci Akun guna memberi tahu Pencari agar tidak menampilkan
UI penyambungan berikutnya (lihat Payload iklan: Data Akun Penyambungan Cepat).
Persyaratan Perangkat Audio LE
Persyaratan Bluetooth
Lihat rekomendasi headset Android dan LE Audio.
Dukungan CTKD
Untuk perangkat mode ganda, CTKD dari LE ke BR/EDR bersifat wajib dan sesuai dengan persyaratan BAP.
Pengumuman Target
Perangkat periferal harus menggunakan Pengumuman yang Ditargetkan untuk meminta koneksi dari perangkat pusat yang disambungkan. Pengumuman Bertarget didefinisikan dalam BAP dan CAP untuk pengelolaan koneksi menurut CAP 1.0 Tabel 8.4 (p48/58).
Dukungan Server GATT EATT
EATT memungkinkan perangkat pusat mengirim beberapa transaksi GATT secara paralel saat perangkat terikat. Untuk perangkat yang mendukung CSIP, perangkat akan meningkatkan performa koneksi profil, lalu segera memulai prosedur pengikatan CSIP untuk bud lainnya.
Penyimpanan dalam Cache yang Andal GATT (Sangat Direkomendasikan)
Jika Penyedia bukan perangkat tunggal, melainkan set terkoordinasi dengan implementasi CSIP, untuk mengurangi jumlah waktu melakukan penemuan layanan dan mempercepat koneksi, Penyedia harus mengimplementasikan Cache GATT yang ditentukan dalam Bluetooth 5.1.
Persyaratan Sambungan Cepat
Periklanan LE
Untuk mode dapat ditemukan atau mode yang tidak dapat ditemukan, jika perangkat memiliki beberapa komponen, data Sambungan Cepat harus diiklankan oleh komponen utama. Jika perangkat tidak siap untuk penyambungan berikutnya, komponen sekunder dapat mengumumkan data Sambungan Cepat untuk fitur yang diperluas. lihat Menyembunyikan Indikasi UI.
Visibilitas Layanan GATT
Database GATT harus sama untuk semua koneksi GATT transpor LE. Layanan LE Audio (0x184E) harus disertakan dalam database GATT koneksi Sambungan Cepat.
Contoh: Menyambungkan dengan Penyedia mode ganda LEA
Skenario 1 - Saat Pencari Kerja tidak mendukung LEA
Penyedia harus memiliki kompatibilitas mundur dengan Pencari Kerja yang tidak mendukung LEA.
Komponen
- Penyedia: A2DP/HFP/LEA
- Pencari: A2DP/HFP
Perilaku yang Diharapkan untuk Penyambungan Awal / Penyambungan Berikutnya
- Penyedia mengiklankan data layanan
Fast Pair (0xFE2C) dengan alamat Identitas (awal) atau RPA (berikutnya).
- Menggunakan Iklan lama
- Pencari menerima iklan Penyedia dengan alamat Identitas untuk awal atau RPA untuk penyambungan berikutnya
- Pencari mengirimkan permintaan Penyandingan berbasis Kunci
- Bit-5 flag pada permintaan Pasangan Berbasis Kunci diatur ke 0
- Penyedia mengirimkan respons Penyambungan Berbasis Kunci dengan alamat publik dalam salah satu
hal berikut:
- Jika jenis pesan 0x01 digunakan, alamatnya harus berupa alamat publik
- Jika jenis pesan 0x02 digunakan
- Bit-0 harus 0
- Bit-1 harus 0
- Alamat tersebut harus berupa alamat publik
- Pencari membuat ikatan dengan transpor BR/EDR
- Kemampuan IO ditetapkan ke DisplayYesNo untuk BR/EDR
- Pencari dan Penyedia melakukan prosedur verifikasi kunci sandi Sambungan Cepat
Skenario 2 - Ketika Pencari Kerja mendukung LEA
Komponen
- Penyedia
- Mendukung A2DP/HFP/LEA
- Satu komponen
- Pencari
- MendukungA2DP/HFP/LEA
Perilaku yang Diharapkan untuk Penyambungan Awal / Penyambungan Berikutnya
- Penyedia mengiklankan data layanan
Fast Pair (0xFE2C) dengan alamat Identitas (awal) atau RPA (berikutnya).
- Gunakan Iklan lama
- Pencari mengirimkan permintaan Penyandingan berbasis Kunci
- Bit-5 flag pada permintaan Pasangan Berbasis Kunci diatur ke 1
- Penyedia mengirimkan respons Penyambungan Berbasis Kunci dengan jenis pesan 0x02
- Bit-0 harus 0
- Bit-1 harus 1
- Alamatnya adalah Alamat identitas
- Seeker menciptakan ikatan dengan
koneksi LE yang ada di transpor LE
- Arah CTKD adalah dari LE ke BR/EDR
- Kemampuan IO disetel ke DisplayYesNo untuk LE
- Pencari dan Penyedia melakukan prosedur verifikasi kunci sandi Sambungan Cepat
Skenario 3 - saat Pencari mendukung LEA dan CSIP yang terlibat
Komponen
- Penyedia
- Mendukung A2DP/HFP/LEA
- Beberapa komponen
- Komponen utama adalah BR/EDR/LE
- Komponen sekunder khusus LE
- Pencari
- Mendukung A2DP/HFP/LEA
Perilaku yang Diharapkan untuk Penyambungan Awal / Penyambungan Berikutnya
- Komponen utama mengiklankan data layanan
Sambungan Cepat (0xFE2C) dengan alamat Identitas (awal) atau RPA (berikutnya).
- Gunakan Iklan lama
- Pencari mengirimkan permintaan Penyandingan berbasis Kunci ke komponen utama
- Bit flag 5 dari permintaan Penyandingan berbasis Kunci ditetapkan ke 1
- Komponen utama mengirim respons Penyambungan Berbasis Kunci dengan jenis pesan 0x02
- Bit-0 harus 0
- Bit-1 harus 1
- Alamatnya adalah sebagai berikut:
- Alamat pertama adalah alamat Identitas komponen utama
- Alamat kedua adalah alamat ikatan untuk komponen sekunder, komponen kedua juga menggunakan alamat ini untuk melakukan iklan CSIP
- Pencari membuat ikatan dengan komponen
utama pada koneksi LE yang ada
- Arah CTKD adalah dari LE ke BR/EDR
- Kemampuan IO disetel ke DisplayYesNo untuk LE
- Pencari membuat ikatan dengan komponen
sekunder yang alamatnya berasal dari Respons Perluasan Penyambungan
berbasis Kunci
- Kemampuan IO harus DisplayYesNo, jika tidak, tolak permintaan penyambungan
- Pencari dan Penyedia melakukan prosedur perlindungan MITM untuk menyambungkan komponen sekunder, Penyedia akan menerapkan kedua skenario tersebut
- Pencari menunggu hingga terikat dengan komponen sekunder
Diagram Urutan untuk MITM
Sesi ini bertujuan untuk menjelaskan urutan prosedur perlindungan MITM.
Mendapatkan kunci sandi dari komponen yang diikat oleh notifikasi
Mendapatkan kunci sandi dari komponen yang terikat dengan operasi baca
Masalah Umum
FP untuk LEA telah dioptimalkan agar berfungsi dengan Android V(Android 15).
Sebaliknya, kami telah mengalami banyak masalah dengan headset yang mendukung LEA tetapi tidak memiliki implementasi Sambungan Cepat melalui LEA yang benar (yaitu hanya Sambungan Cepat melalui Klasik). Secara khusus dan misalnya, saat RPA penyedia tidak dihasilkan oleh Kunci Penyelesaian Identitas (IRK) yang benar, dan alamat tidak dapat di-resolve. Meskipun kami belum dapat menguji daftar lengkap konfigurasi headset, pengujian terbatas kami mengungkapkan berbagai masalah, termasuk kegagalan untuk menampilkan notifikasi baterai earbud, kurangnya fungsi Audio Switching (SASS), kegagalan penyambungan awal dan berikutnya yang meluas, dan lainnya.
Oleh karena itu, sebaiknya mitra menerapkan spesifikasi Fast Pair-LEA untuk perangkat baru dan perangkat yang ada di lapangan (melalui update over-the-air) yang mendukung mode ganda.