Perangkat Bluetooth Hemat Energi (BLE)
Implementasi Layanan Sambungan Cepat (GFPS) Google untuk perangkat BLE kompatibel dengan Bluetooth Core Specification v4.2 atau yang lebih baru.
Adendum berikut pada spesifikasi Sambungan Cepat akan memungkinkan dukungan khusus untuk perangkat Hemat Energi (LE) dan Audio Hemat Energi (LEA) di RStudioS.
Tingkat Kesesuaian
Kata kunci “harus”, “harus”, “akan”, “seharusnya”, “mungkin”, dan “dapat” yang disebutkan dalam spesifikasi dijelaskan di bawah ini:
Istilah | Deskripsi |
---|---|
seharusnya | 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 | memang benar - hanya digunakan dalam pernyataan fakta. |
seharusnya | disarankan - digunakan untuk menunjukkan bahwa di antara beberapa kemungkinan, satu di antara beberapa kemungkinan direkomendasikan sebagai sangat sesuai, tetapi tidak wajib. |
mei | diizinkan untuk - digunakan untuk mengizinkan opsi. |
dapat | dapat - digunakan untuk mengaitkan pernyataan dengan cara kausal. |
Karakteristik Pasangan 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 Kerja mendukung LE Audio.
Oktet | Jenis data | Deskripsi | Nilai | Wajib? |
---|---|---|---|---|
0 | uint8 |
Jenis pesan | 0x00 = Permintaan Penyambungan Berbasis Kunci |
Wajib |
1 | uint8 |
Bendera
|
bervariasi | Wajib |
2 - 7 | uint48 |
Memenuhi salah satu ketentuan berikut:
|
bervariasi | Wajib |
8-13 tahun | uint48 |
Alamat BR/EDR Pencari | bervariasi | Hanya ada jika Flag Bit 1 atau 3 disetel |
n - 15 | Nilai acak (garam) | bervariasi | Wajib |
Pesan dari Penyedia ke Pencari Kerja
Saat Bit 4 permintaan ditetapkan, pesan respons baru type 0x02
untuk
Karakteristik Pasangan Berbasis Kunci dapat digunakan untuk memberikan ikatan tambahan
pilihan kepada Pencari Kerja.
Oktet | Jenis data | Deskripsi | Nilai |
---|---|---|---|
0 | uint8 |
Jenis pesan | 0x02 = Respons Tambahan Penyambungan Berbasis Kunci |
1 | uint8 |
Bendera
|
bervariasi |
2 | uint8 |
Jumlah alamat Penyedia (dalam versi saat ini, angkanya adalah 1 atau 2, karena kita perlu mengubah mode block cipher menjadi AES-CTR jika angkanya >= 3) |
bervariasi |
3 - 8 atau 3 - 14 |
|
bervariasi | |
9-15 atau 15 tahun | Nilai acak (garam) | bervariasi |
Penyedia yang mendukung Spesifikasi Perangkat BLE harus membaca Bit 4 dan Bit 5 untuk memahami kemampuan Pencari Kerja
- Jika Bit 4 adalah 0, Penyedia harus mengabaikan Bit 5 dan merespons dengan format
type 0x01
- Ketika Bit 4 adalah 1,
- Untuk Penyedia khusus LE, penyedia tersebut harus merespons dengan
type 0x02
untuk menunjukkan LE preferensi ikatan. - Untuk Penyedia mode ganda, penyedia dapat merespons dengan
type 0x02
untuk menunjukkan Preferensi ikatan 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 (Protocol Service Multiplexor) Aliran Pesan
Guna mendukung Streaming pesan untuk perangkat BLE, Sambungan Cepat akan membuat dan mempertahankan saluran BLE L2CAP untuk mengirim dan menerima pesan. Sambungan Cepat Server L2CAP akan menerapkan kontrol alur berbasis kredit LE.
Karakteristik ini memungkinkan Pencari untuk membaca nilai PSM, lalu menyusun koneksi L2CAP yang aman dengan nilai PSM.
Karakteristik Layanan Sambungan Cepat | Dienkripsi | Izin | UUID |
---|---|---|---|
PSM Aliran Pesan | Ya | Baca | FE2C1239-8366-4814-8EB0-01DE32100BEA |
Oktet | 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
utama dan sekunder. Peran dari
komponen-komponen ini adalah
dapat dipertukarkan
dalam kondisi tertentu. Dengan asumsi A adalah
komponen utama dan B adalah
komponen sekunder, karena pengurasan baterai pada komponen A , komponen B membutuhkan
untuk mengambil peran komponen utama dan skenario ini disebut role switch
.
Setelah role switch
, Jika penyedia
tidak dapat menangani streaming pesan Sambungan Cepat, tindakan ini akan secara proaktif memutuskan sambungan
koneksi L2CAP yang ada. Pencari Sambungan Cepat kemudian dapat mengaktifkan kembali L2CAP
koneksi aliran pesan dengan komponen utama yang baru.
Karakteristik Kunci Sandi Tambahan
Karakteristik ini adalah untuk memberikan perlindungan MITM pada komponen.
Perlindungan MITM Anggota Palsu CSIS
Sambungan Cepat memerlukan perlindungan MITM sebagai bagian dari prosedur penyambungan. Sebagai CSIS tidak memberikan perlindungan MITM, desain saat ini untuk FP untuk beberapa komponen perlu diperpanjang untuk memberikan perlindungan MITM pada komponen.
Definisi Karakteristik
Karakteristik Layanan Sambungan Cepat | Dienkripsi | Izin | UUID |
---|---|---|---|
Kunci Sandi Tambahan | Ya | Membaca,menulis,memberi tahu | FE2C123A-8366-4814-8EB0-01DE32100BEA |
Pesan
Format pesan diterapkan untuk operasi baca, tulis, dan beri tahu.
Format Data Terenkripsi
Data terenkripsi dikirim menggunakan koneksi GATT Sambungan Cepat.
Oktet | 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 rahasia bersama, formatnya adalah seperti di bawah ini
Oktet | 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 ikatan 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 dengan ikatan pertama) adalah jembatan antara Sambungan Cepat Pencari dan komponen ikatan tambahan. Karakteristik tersebut harus ikuti panduan:
- Saat menerima permintaan tulis dari Pencari Sambungan Cepat, Penyedia harus
- Menetapkan alamat komponen yang sedang terikat
- 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 mengembalikan pesan dengan
- Kunci sandi, nilai apa pun
- Alamat komponen yang diikat
- Kode status tertunda, 0x01
- Sebelum Penyedia mengirimkan notifikasi kepada Pencari Sambungan Cepat, menetapkan hasil
untuk permintaan baca dengan
- Kunci sandi dari komponen yang diikat
- Alamat komponen yang diikat
- Kode status berhasil, 0x00
- Jika ada error yang tidak dapat dipulihkan pada sisi Penyedia, tetapkan hasilnya
- Kunci sandi, nilai apa pun
- Alamat komponen yang diikat
- Kode status kegagalan, 0x02
Lihat Diagram MITM 1 dan Diagram MITM 2 untuk detail selengkapnya.
Persyaratan Perangkat LE
Periklanan LE
Untuk mode dapat ditemukan atau mode yang tidak dapat ditemukan, Penyedia harus menggunakan RPA untuk mengiklankan data FastPair.
Kemampuan Ikatan
Untuk perangkat berkemampuan LE, Pencari Kerja harus menjalin ikatan dengan koneksi LE. Setelah lulus verifikasi Pasangan Berbasis Kunci Pasangan Cepat, Penyedia harus mengizinkan ikatan dengan RPA, dan menyetel kemampuan IO ke DisplayYesNo untuk verifikasi Kunci Sandi Sambungan Cepat.
Persyaratan Perangkat LEA
Iklan LEA
Untuk perangkat mode ganda: Untuk mode dapat ditemukan, Penyedia harus mengiklankan data Sambungan Cepat dengan Identitas alamat IPv6 Untuk mode yang tidak dapat ditemukan, Penyedia harus mengiklankan data Sambungan Cepat dengan RPA. Sangat disarankan untuk menggunakan iklan lama (BT 4.2) untuk mendukung perangkat untuk kompatibilitas mundur. Anda perlu mengubah IRK setiap kali perangkat direset ke setelan pabrik.
Untuk perangkat non mode ganda: Untuk mode dapat ditemukan atau mode tidak dapat ditemukan, Penyedia harus menggunakan mode beriklan (BT 5.0) dengan RPA untuk mengiklankan data FastPair.
Iklan LE yang dapat dihubungkan yang berisi data layanan FP harus mencakup CAS UUID dengan mematuhi Profil Adaptor Bluetooth (BAP 1.0.1) dan Profil Audio Umum persyaratan. Untuk iklan yang tidak dapat ditemukan jika ruang yang cukup tidak tersedia dalam iklan lama karena disertakannya data baterai dan SASS, wajib menyertakan CAS UUID dalam respons pemindaian dalam kasus tersebut.
Kemampuan Ikatan LEA
Pencari Kerja harus membuat ikatan dengan koneksi LE yang ada. Setelah lulus Verifikasi Sambungan Berbasis Kunci Sambungan Cepat, Penyedia mode ganda mengizinkan terikat dengan alamat Identitas dan RPA, sementara Penyedia mode non-dual harus mengizinkan terhubung dengan RPA, dan menyetel kemampuan IO ke DisplayYesNo untuk Sambungan Cepat Verifikasi kunci sandi.
Saluran komunikasi internal antar komponen
Koneksi GATT yang ada disimpan untuk melakukan perlindungan MITM pada komponen tambahan. Komponen berikat utama harus menangani pesan pengiriman antara Pencari Sambungan Cepat dan komponen lainnya.
Komunikasi internal digunakan untuk Initial Pair
dan Subsequent Pair
- Ketika prosedur {i>Key-based Pairing<i} diteruskan pada komponen utama, akan mengirim pesan untuk mengubah kemampuan IO yang tersisa komponen
- Saat Sambungan Cepat selesai, komponen utama harus mengirim pesan untuk mengatur ulang Kemampuan IO untuk komponen yang tersisa
- Saat menjalankan prosedur Kunci Sandi Tambahan, komponen utama harus menangani pengiriman kunci sandi antara Pencari Sambungan Cepat dan komponen lainnya
Saatnya mengubah kemampuan IO
- Mengubah kemampuan IO menjadi DisplayYesNo saat Prosedur Penyambungan Berbasis Kunci lulus
- Jika perangkat memiliki beberapa komponen, semua komponen harus diatur ke DisplayYesNo
- Satu pengecualian bahwa Penyedia seharusnya
tidak mengubah kemampuan IO ke DisplayYesNo adalah
Retroactive Pair
, yang Bit 3-nya dari Key-based Pairing Request diatur 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 yang utama diikat, jika tidak ada kunci sandi tambahan, tulis permintaan dalam 15 detik, akhiri sesi Sambungan Cepat
- Setelah permintaan tulis kunci sandi tambahan diterima, jika komponen sedang tidak terikat dalam waktu 15 detik, akhiri sesi Sambungan Cepat
- Setelah semua komponen diikat, jika tidak ada penulisan kunci akun dalam waktu 15 detik, akhiri sesi Sambungan Cepat
- Setelah permintaan tulis kunci akun diterima, setel waktu tunggu 15 detik untuk akhiri sesi Sambungan Cepat
- Penyambungan berikutnya
- Jika koneksi LE terputus, akhiri sesi Sambungan Cepat
- Setelah yang utama diikat, jika tidak ada kunci sandi tambahan, tulis dalam waktu 15 detik, akhiri sesi Sambungan Cepat
- Setelah permintaan tulis kunci sandi tambahan diterima, jika komponen sedang tidak terikat dalam waktu 15 detik, akhiri sesi Sambungan Cepat
- Setelah semua komponen terhubung, akhiri sesi Sambungan Cepat
- Penyambungan awal
Sembunyikan Indikasi UI
Jika headset belum siap disambungkan, Penyedia harus menggunakan type 0b0010
untuk menyetel penyembunyian indikasi UI untuk Data Kunci Akun guna memberi tahu Pencari agar tidak menampilkan
UI penyambungan berikutnya (lihat Payload iklan: Data Akun Sambungan 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 Bertarget untuk meminta koneksi dari perangkat pusat yang disambungkan. Pengumuman Bertarget ditentukan dalam BAP dan CAP untuk manajemen koneksi menurut CAP 1.0 Tabel 8.4 (p48/58).
Dukungan Server GATT EATT
EATT memungkinkan perangkat pusat untuk mengirim beberapa transaksi GATT secara paralel saat perangkat diikat. Untuk perangkat yang mendukung CSIP, parameter ini akan meningkatkan performa koneksi profil, lalu segera memulai ikatan CSIP prosedur untuk buds lainnya.
Penyimpanan Cache GATT yang Efektif (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 menerapkan GATT Caching yang ditentukan dalam Bluetooth 5.1.
Persyaratan Sambungan Cepat
Periklanan LE
Untuk mode dapat ditemukan atau mode yang tidak dapat ditemukan, jika perangkat memiliki komponen, data Sambungan Cepat harus diiklankan oleh komponen utama. Jika perangkat tidak siap untuk pemasangan berikutnya, komponen sekunder dapat mengiklankan data Sambungan Cepat untuk fitur yang diperluas. lihat Sembunyikan Indikasi UI.
Visibilitas Layanan GATT
Database GATT harus sama untuk semua koneksi GATT transportasi LE. LE Audio (0x184E) harus dimasukkan ke dalam {i>database<i} 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 Pasangan Awal / Pasangan Berikutnya
- Penyedia mengiklankan layanan Sambungan Cepat
data (0xFE2C) dengan alamat Identitas (awal) atau RPA (selanjutnya).
- Gunakan Iklan lama
- Pencari Kerja menerima iklan dengan alamat Identitas untuk inisial atau RPA untuk pemasangan berikutnya
- Pencari Kerja mengirimkan permintaan Penyambungan Berbasis Kunci
- Bit-5 flag pada permintaan Pasangan Berbasis Kunci diatur ke 0
- Penyedia mengirimkan respons {i>Key-based Pairing<i}
dengan alamat publik pada salah satu
hal berikut:
- Jika jenis pesan 0x01 digunakan, alamatnya adalah alamat publik
- Jika jenis pesan 0x02 digunakan
- Bit-0 harus 0
- Bit-1 harus 0
- Alamat tersebut harus berupa alamat publik
- Pencari Kerja menciptakan ikatan dengan transpor BR/EDR
- Kemampuan IO disetel 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 Kerja
- MendukungA2DP/HFP/LEA
Perilaku yang Diharapkan untuk Pasangan Awal / Pasangan Berikutnya
- Penyedia mengiklankan layanan Sambungan Cepat
data (0xFE2C) dengan alamat Identitas (awal) atau RPA (selanjutnya).
- Gunakan Iklan lama
- Pencari Kerja mengirimkan permintaan Penyambungan Berbasis Kunci
- Bit-5 flag pada permintaan Pasangan Berbasis Kunci diatur ke 1
- Penyedia mengirimkan respons Pasangan Berbasis Kunci dengan jenis pesan 0x02
- Bit-0 harus 0
- Bit-1 harus 1
- Alamatnya adalah Alamat identitas
- Pencari Kerja menciptakan ikatan dengan
Koneksi LE di transportasi 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 - ketika Pencari Kerja mendukung LEA dan CSIP yang terlibat
Komponen
- Penyedia
- Mendukung A2DP/HFP/LEA
- Banyak komponen
- Komponen utama adalah BR/EDR/LE
- Komponen sekunder hanya untuk LE saja
- Pencari Kerja
- Mendukung A2DP/HFP/LEA
Perilaku yang Diharapkan untuk Pasangan Awal / Pasangan Berikutnya
- Komponen utama mengiklankan Sambungan Cepat
data layanan (0xFE2C) dengan alamat Identitas (awal) atau RPA (selanjutnya).
- Gunakan Iklan lama
- Pencari Kerja mengirimkan permintaan Penyambungan Berbasis Kunci ke komponen utama
- Bit-5 flag pada permintaan Pasangan Berbasis Kunci diatur ke 1
- Komponen utama mengirimkan 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 yang dapat diikat untuk komponen sekunder, komponen kedua juga menggunakan alamat ini untuk menjalankan iklan CSIP
- Pencari kerja menciptakan ikatan dengan
pada koneksi LE yang ada
- Arah CTKD adalah dari LE ke BR/EDR
- Kemampuan IO disetel ke DisplayYesNo untuk LE
- Pencari kerja menciptakan ikatan dengan
komponen yang alamatnya berasal dari Respons Tambahan Pasangan Berbasis Kunci
- Kemampuan IO harus DisplayYesNo, jika tidak, tolak permintaan penyambungan
- Pencari dan Penyedia melakukan prosedur perlindungan MITM untuk memasangkan sekunder, Penyedia harus menerapkan kedua skenario tersebut
- Pencari Kerja menunggu hingga terhubung dengan komponen sekunder
Diagram Sekuensial untuk MITM
Sesi ini akan menjelaskan urutan prosedur perlindungan MITM.
Mendapatkan kunci sandi dari komponen yang diikat oleh notifikasi
Mendapatkan kunci sandi dari komponen yang diikat oleh baca
Masalah Umum
FP untuk LEA telah dioptimalkan agar berfungsi dengan Android V(Android 15).
Sebaliknya, kami mengalami banyak masalah dengan headset yang mendukung LEA tetapi tidak memiliki Sambungan Cepat yang tepat daripada implementasi LEA (yaitu hanya Sambungan Cepat melalui Klasik). Secara khusus dan misalnya, jika RPA penyedia tidak dibuat oleh Kunci Penyelesaian Identitas (IRK) yang benar, dan alamatnya tidak dapat diselesaikan. Meskipun belum dapat menguji daftar lengkap headset konfigurasi standar, pengujian terbatas kami mengungkapkan berbagai masalah, termasuk kegagalan untuk menampilkan notifikasi baterai earbud, tidak ada Audio Switching (SASS) fungsionalitas lain, kegagalan pemasangan awal dan selanjutnya yang meluas, dan banyak lagi.
Oleh karena itu, sebaiknya partner menerapkan LEA Sambungan Cepat spesifikasi untuk perangkat baru dan perangkat lama di lapangan (melalui update over-the-air) yang mendukung mode ganda.