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
  • Bit 0 (MSB): tidak digunakan lagi dan diabaikan oleh Pencari Kerja.
  • Bit 1: 1 jika Pencari meminta agar Penyedia memulai ikatan, dan permintaan ini berisi alamat BR/EDR Pencari. 0 sebaliknya.
  • Bit 2: 1 jika Pencari meminta agar Penyedia memberi tahu nama yang ada. 0 sebaliknya.
  • Bit 3: 1 jika ini untuk Menulis kunci akun secara retroaktif. 0 sebaliknya.
  • Bit 4: 1 jika Pencari Kerja mendukung Spesifikasi Perangkat BLE. 0 sebaliknya.
  • Bit 5: 1 jika Pencari Kerja mendukung LE Audio. 0 sebaliknya.
  • Bit 6 - 7 dicadangkan untuk penggunaan di masa mendatang, dan harus diabaikan.
bervariasi Wajib
2 - 7 uint48 Memenuhi salah satu ketentuan berikut:
  • Alamat BLE penyedia saat ini
  • Alamat Identitas Penyedia
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
  • Bit 0 (MSB): 1 jika Penyedia adalah perangkat khusus LE, 0 jika tidak. Jika bit 0 diatur ke 1, Pencari akan menganggap bahwa Bit 1 diatur ke 1.
  • Bit 1: 1 jika Penyedia lebih memilih ikatan LE, 0 jika sebaliknya.
  • Bit 2: 1 jika jenis alamat dari alamat kedua adalah Random, 0 jika Publik.
  • Bit 3 - 7 dicadangkan untuk penggunaan di masa mendatang, dan harus diabaikan.
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
  • Alamat pertama harus alamat Identitas primer, dan dapat terikat jika ikatan BR/EDR lebih disukai
  • Alamat kedua harus berupa alamat sekunder jika alamat sekunder tersedia
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 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
  • 0x00 = Tidak diketahui. Pencari FP akan mencoba lagi beberapa kali
  • 0x01 = Siap untuk tersambung
  • 0x02 = Tidak tersedia. Pencari FP tidak akan menggunakan komponen ini untuk terhubung kali ini
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
  • 0x00 = Kunci sandi Pencari
  • 0x01 = Kunci sandi penyedia
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
  • 0x00 = Berhasil
  • 0x01 = Tertunda. Percobaan ulang Pencari FP hingga waktu habis
  • 0x02 = Kegagalan. Pencari Profil Bisnis Hentikan Percobaan Ulang
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

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.

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.