Bluetooth Düşük Enerji (BDE) Cihazı
BDE cihazlar için Google Hızlı Eşleme Hizmeti (GFPS) uygulaması, Bluetooth Core Spesifikasyonu v4.2 veya sonraki sürümlerle uyumludur.
Hızlı Eşleme spesifikasyonuna eklenen aşağıdaki ek, GFPS'de yalnızca Düşük Enerji (LE) ve Düşük Enerji Ses (LEA) cihazlarının desteklenmesine olanak tanır.
Uygunluk Düzeyleri
Spesifikasyonda belirtilen "shall", "must", "will", "should", "may" ve "can" anahtar kelimeleri aşağıda açıklanmıştır:
Terim | Açıklama |
---|---|
shall | Şunu yapmak için gereklidir: Şartları tanımlamak için kullanılır. |
must | şunu ifade etmek için kullanılır: daha önce belirtilen zorunlu şartın doğal bir sonucu VEYA tartışılmaz bir gerçek ifadesi (koşullardan bağımsız olarak her zaman doğru olan bir ifade). |
will | Doğru olan: Yalnızca gerçek ifadelerde kullanılır. |
should | önerilir - birkaç olasılık arasından bir tanesinin özellikle uygun olarak önerildiğini belirtmek için kullanılır, ancak zorunlu değildir. |
mayıs | izin verilir: Seçenekler için izin vermek amacıyla kullanılır. |
can | isable to - İfadeyi nedensel bir şekilde ilişkilendirmek için kullanılır. |
Anahtar Tabanlı Eşleme Özelliği
Arayanın Sağlayıcıya Gönderdiği Mesaj
Anahtar Tabanlı Eşleme özelliğinin Ham İstek type 0x00
değeri, Arayanın BDE Cihaz Spesifikasyonu'nu destekleyip desteklemediğini belirtmek için Bit 4'ü, Arayışın LE Audio'yu destekleyip desteklemediğini belirtmek için Bit 5'i kullanır.
Sekiz | Veri türü | Açıklama | Değer | Zorunlu mu? |
---|---|---|---|---|
0 | uint8 |
Mesaj türü | 0x00 = Anahtar Tabanlı Eşleme İsteği |
Zorunlu |
1 | uint8 |
İşaretler
|
değişir | Zorunlu |
2 - 7 | uint48 |
Şu ikisinden birini yapın:
|
değişir | Zorunlu |
8 - 13 | uint48 |
Arayıcı'nın BR/EDR Adresi | değişir | Yalnızca İşaretler Bit 1 veya 3 ayarlanmışsa mevcuttur |
n - 15 | Rastgele değer (tuz) | değişir | Zorunlu |
Sağlayıcıdan Arayana Mesaj
İsteğin 4. biti ayarlandığında, Anahtar Tabanlı Eşleme özelliği için yeni yanıt mesajı type 0x02
, Arayan'a ek bağlama seçenekleri sunmak üzere kullanılabilir.
Sekiz | Veri türü | Açıklama | Değer |
---|---|---|---|
0 | uint8 |
Mesaj türü | 0x02 = Anahtar Tabanlı Eşleme Uzatılmış Yanıtı |
1 | uint8 |
İşaretler
|
değişir |
2 | uint8 |
Sağlayıcının adreslerinin sayısı (sayı >= 3 ise blok şifreleme modunu AES-TO olarak değiştirmemiz gerektiğinden, mevcut sürümde sayı 1 veya 2'dir.) |
değişir |
3 - 8 veya 3 - 14 |
|
değişir | |
9 - 15 veya 15 | Rastgele değer (salt) | değişir |
BDE Cihaz Spesifikasyonu'nu destekleyen bir Sağlayıcı, Arayan'ın özelliklerini anlamak için Bit 4 ve Bit 5'i okumalıdır
- Bit 4 0 olduğunda, Sağlayıcı Bit 5'i yoksayar ve
type 0x01
biçimiyle yanıt verir. - 4. bit 1 olduğunda,
- Yalnızca LE sağlayıcısı, LE bağlama tercihini belirtmek için
type 0x02
ile yanıt verir. - İki modlu Sağlayıcı için BR/EDR veya LE bağ tercihini belirtmek üzere
type 0x02
ile yanıt verebilir.
- Yalnızca LE sağlayıcısı, LE bağlama tercihini belirtmek için
- LE Audio (LEA) çift modlu sağlayıcı örnekleri için referans olarak Örnek: LEA çift modlu sağlayıcıyla eşleme bölümüne bakın.
İleti Akışı PSM (Protokol Hizmeti Multiplexor) Özelliği
Hızlı Eşleme, BLE cihazlar için mesaj akışı özelliğini desteklemek amacıyla mesaj göndermek ve almak için bir BLE L2CAP kanalı oluşturur ve bu kanalı korur. Hızlı Eşleme L2CAP sunucusu, LE kredi tabanlı akış denetimini uygulamalıdır.
Bu özellik, Arayanın PSM değerini okumasına ve ardından PSM değerine göre güvenli L2CAP bağlantısı kurmasına olanak tanır.
Hızlı Eşleme Hizmeti özelliği | Şifrelenmiş | İzinler | UUID |
---|---|---|---|
Mesaj Akış PSM | Evet | Okuma | FE2C1239-8366-4814-8EB0-01DE32100BEA |
Sekiz | Veri türü | Açıklama | Değer |
---|---|---|---|
0 | uint8 |
Eyalet
|
değişir |
1 - 2 | uint16 |
PSM değeri, 0x80 ile 0xFF arasında olmalıdır | değişir |
Not: TWS için iki bileşen vardır: birincil ve ikincil. Bu bileşenlerin rolü belirli koşullarda değiştirilebilir. A'nın birincil bileşen, B'nin ise ikincil bileşen olduğunu varsayarsak A bileşenindeki pilin bitmesi nedeniyle B bileşeninin birincil bileşen rolünü alması gerekir ve bu senaryoya role switch
adı verilir.
role switch
'ten sonra sağlayıcı, Hızlı Eşleme mesaj akışıyla baş edemezse mevcut L2CAP bağlantısını proaktif olarak kesmelidir. Hızlı Eşleme arayan, yeni birincil bileşenle L2CAP mesaj akışı bağlantısını yeniden kurabilir.
Ek Geçiş Anahtarı Özelliği
Bu özellik, ek bileşenlerde MITM koruması sağlamaktır.
CSIS Sahte Üye MITM Koruması
Hızlı Eşleme, eşleme işleminin bir parçası olarak MITM koruması gerektirir. CSIS, MITM koruması sağlamadığından, birden fazla bileşen için FP'nin mevcut tasarımının ek bileşenlerde MITM koruması sağlamak üzere genişletilmesi gerekir.
Özellik Tanımı
Hızlı Eşleme Hizmeti Özelliği | Şifrelenmiş | İzin | UUID |
---|---|---|---|
Ek Geçiş Anahtarı | Evet | Oku,yaz,bildirim gönder | FE2C123A-8366-4814-8EB0-01DE32100BEA |
Mesajlar
İleti biçimi, okuma, yazma ve bildirim işlemleri için uygulanır.
Şifrelenmiş Veri Biçimi
Şifrelenmiş veriler, Hızlı Eşleme GATT bağlantısı kullanılarak gönderilir.
Octet | Veri türü | Açıklama | Değer |
---|---|---|---|
0-15 | uint128 | Şifrelenmiş ek geçiş anahtarı engellemesi | değişiklik gösterir |
Ham Veri Biçimi
Paylaşılan gizli anahtar kullanılarak şifrelenmiş verilerin şifresi çözüldükten sonra biçim aşağıdaki gibidir:
Octet | Veri türü | Açıklama | Değer |
---|---|---|---|
0 | uint8 | Mesaj türü |
|
1-3 | uint24 | 6 haneli geçiş anahtarı | değişiklik gösterir |
4-9 | uint48 | Hedef bağlama bileşeni adresi | değişiklik gösterir |
10 | uint8 | Durum kodu, yalnızca okuma işlemi tarafından kullanılır | Aşağıdakilerden biri
|
11-15 | Rastgele değer (tuz) | değişiklik gösterir |
Birincil (ilk bağlanan bileşen), Hızlı Eşleme Aracısı ile ek bağlanma bileşenleri arasındaki köprü görevi görür. Özellik, yönergelere uygun olmalıdır:
- Sağlayıcı, Hızlı Eşleme Arayan'dan yazma isteği aldığında
- Bağlanan bileşenin adresini ayarlama
- Geçiş anahtarını bağlı bileşene gönderin
- Durum kodunu Beklemede, 0x01 olarak ayarlayın.
- Sağlayıcı, bağlanılan bileşenden geçiş anahtarını almadan önce herhangi bir okuma isteği aldığında
- Geçiş anahtarı, herhangi bir değer
- Bağlanılan bileşenin adresi
- Beklemede durum kodu, 0x01
- Sağlayıcı, Hızlı Eşleme Arayan'a bildirim göndermeden önce okuma isteğinin sonucunu
- Bağlanan bileşenin şifre anahtarı
- Bağlanan bileşenin adresi
- Başarılı durum kodu, 0x00
- Sağlayıcı tarafında düzeltilemeyen bir hata varsa sonucu ayarlayın
- Geçiş anahtarı, herhangi bir değer
- Bağlanılan bileşenin adresi
- Başarısızlık durumu kodu, 0x02
Daha fazla bilgi için MITM 1. diyagramı ve MITM 2. diyagramı'na bakın.
LE Cihaz Gereksinimleri
LE Advertising
Sağlayıcı, bulunabilir mod veya bulunamaz mod için FastPair verilerinin reklamını yapmak üzere RPA'yı kullanmalıdır.
Bağlantı Oluşturma Özelliği
LE özellikli cihazlarda, arayan cihazın mevcut LE bağlantısıyla bağ oluşturması gerekir. Sağlayıcı, Hızlı Eşleme Anahtar Tabanlı Eşleme doğrulamasını geçtikten sonra RPA ile bağlanmaya izin verir ve Hızlı Eşleme Geçiş Anahtarı doğrulaması için IO özelliğini DisplayYesNo olarak ayarlar.
LEA Cihaz Şartları
LEA Advertising
Çift modlu cihazlar için: Sağlayıcı, bulunabilir modda kimlik adresiyle Hızlı Eşleme verilerinin reklamını yapmalıdır. Sağlayıcı, bulunabilir olmayan mod için Hızlı Eşleme verilerinin reklamını RPA ile yapmalıdır. Geriye dönük uyumluluk için eski cihazları desteklemek üzere eski reklamı (BT 4.2) kullanmanız önemle tavsiye edilir. Cihaz fabrika ayarlarına sıfırlandığında IRK'nın değiştirilmesi gerekir.
Çift mod olmayan cihazlar için: Sağlayıcı, bulunabilir mod veya bulunabilir olmayan mod için Hızlı Eşleme verilerinin reklamını yapmak üzere RPA ile genişletilmiş reklamcılık (BT 5.0) kullanacaktır.
FP hizmet verilerini içeren LE bağlanabilir reklam, Bluetooth Adaptör Profili (BAP 1.0.1) ve Ortak Ses Profili şartına uygun olarak CAS UUID içermelidir. Pil ve SASS verilerinin eklenmesi nedeniyle eski reklamda yeterli alan yoksa keşfedilemeyen reklamlarda tarama yanıtına CAS UUID'nin eklenmesi zorunludur.
LEA Bonding Özelliği
Arayan, mevcut LE bağlantısıyla bağ oluşturmalıdır. Hızlı Eşleme anahtar tabanlı eşleme doğrulamasını geçtikten sonra çift modlu sağlayıcı, kimlik adresi ve RPA ile bağlanmaya izin verirken çift modlu olmayan sağlayıcı, RPA ile bağlanmaya izin verir ve IO özelliğini Hızlı Eşleme geçiş anahtarı doğrulaması için DisplayYesNo olarak ayarlar.
Bileşenler arasındaki dahili iletişim kanalı
Ek bileşenlerde MITM koruması gerçekleştirmek için mevcut GATT bağlantısı tutulur. Birincil bağlı bileşen, Hızlı Eşleme Aracısı ile diğer bileşenleri arasındaki mesaj yayınlarını yönetir.
Initial Pair
ve Subsequent Pair
için dahili iletişim kullanılır
- Anahtar Tabanlı Eşleme prosedürü birincil bileşenden geçtiğinde birincil bileşen, kalan bileşenlerinin KS özelliğini değiştirmek için bir mesaj göndermelidir
- Hızlı Eşleme tamamlandığında birincil bileşen, kalan bileşenlerinin G/Ç özelliğini sıfırlamak için
- Ek Geçiş Anahtarı prosedürü çalıştırılırken birincil bileşen, Hızlı Eşleme Arayıcı ile diğer bileşenleri arasındaki geçiş anahtarı yayınlarını yönetmelidir.
IO kapasitesini değiştirme zamanı
- Anahtar Tabanlı Eşleme prosedürü başarılı olduğunda KS özelliğini DisplayYesNo olarak değiştir
- Cihazın birden fazla bileşeni varsa tüm bileşenler DisplayYesNo olarak ayarlanmalıdır.
- Sağlayıcının IO kapasitesini DisplayYesNo olarak değiştirmemesi gereken bir istisna,
Retroactive Pair
'tür. Anahtar tabanlı eşleme isteğinin 3. biti 1 olarak ayarlanmıştır. Arama yapandan sağlayıcıya mesaj bölümüne bakın.
- G/Ç kapasitesini varsayılan ayar olarak değiştirme
- İlk eşleme
- LE bağlantısı kesilirse Hızlı Eşleme oturumunu sonlandırın
- Birincil bağlandıktan sonra 15 saniye içinde başka geçiş anahtarı yazma isteği olmazsa Hızlı Eşleme oturumunu sonlandırın
- Ek geçiş anahtarı yazma isteği alındıktan sonra, bağlanmakta olan bileşen 15 saniye içinde bağlanmazsa Hızlı Eşleme oturumunu sonlandırın
- Tüm bileşenler bağlandıktan sonra 15 saniye içinde hesap anahtarı yazma isteği olmazsa Hızlı Eşleme oturumunu sonlandırın
- Hesap anahtarı yazma isteği alındıktan sonra Hızlı Eşleme oturumunu sonlandırmak için zaman aşımını 15 saniye olarak ayarlayın
- Sonraki eşleme
- LE bağlantısı kesildiyse Hızlı Eşleme oturumunu sonlandırın
- Birincil cihaz bağlandıktan sonra 15 saniye içinde ek geçiş anahtarı yazma isteği yoksa Hızlı Eşleme oturumunu sonlandırın
- Ek geçiş anahtarı yazma isteği alındıktan sonra, bağlanmakta olan bileşen 15 saniye içinde bağlanmazsa Hızlı Eşleme oturumunu sonlandırın
- Tüm bileşenler bağlandığında Hızlı Eşleme oturumunu sonlandırın
- İlk eşleme
Kullanıcı Arayüzü Göstergesini Gizle
Kulaklık eşlemeye hazır olmadığında Sağlayıcı, Arayan'a sonraki eşleme kullanıcı arayüzünü göstermemesini söylemek için Hesap Anahtarı Verileri için kullanıcı arayüzünü gizleme göstergesini ayarlamak üzere type 0b0010
değerini kullanır (Reklam yükü: Hızlı Eşleme Hesap Verileri bölümüne bakın).
LE Audio Cihaz Şartları
Bluetooth Gereksinimleri
Android, LE Audio kulaklık önerileri başlıklı makaleyi inceleyin.
CTKD Desteği
Çift modlu cihazlarda LE'den BR/EDR'ye CTKD zorunludur ve BAP şartlarına uygundur.
Hedef Duyurusu
Bir çevre birimi cihazı, eşlenmiş bir merkezi cihazdan bağlantı istemek için Hedeflenen Duyuru'yu kullanır. Hedeflenen Duyurular, CAP 1.0 Tablo 8.4'e (s. 48/58) göre bağlantı yönetimi için BAP ve CAP'de tanımlanır.
GATT EATT Sunucu Desteği
EATT, cihaz bağlandığında merkezi cihazın paralel olarak birden fazla GATT işlemi göndermesine olanak tanır. CSIP'yi destekleyen cihazlarda profil bağlantısının performansı artar ve ardından diğer kulaklıklar için CSIP bağlama işlemi kısa süre içinde başlar.
GATT Güçlü Önbelleğe Alma (Önerilen)
Sağlayıcı tek bir cihaz değil de CSIP uygulamasıyla koordine edilmiş bir grupsa hizmet keşfinin yapılma sayısını azaltmak ve bağlantıyı hızlandırmak için Sağlayıcı, Bluetooth 5.1'de tanımlanan GATT önbelleğe alma özelliğini uygulamalıdır.
Hızlı Eşleme Şartları
LE Advertising
Bulunabilir mod veya bulunabilir olmayan mod için cihazın birden fazla bileşeni varsa Hızlı Eşleme verilerinin birincil bileşen tarafından tanıtılması gerekir. Cihaz sonraki eşlemeye hazır değilse ikincil bileşen, genişletilmiş özellikler için Hızlı Eşleme verilerini tanıtabilir. Kullanıcı arayüzü göstergesini gizleme bölümüne bakın.
GATT Hizmeti Görünürlüğü
GATT veritabanı, tüm LE taşıma GATT bağlantıları için aynı olmalıdır. LE Audio hizmeti (0x184E), Hızlı Eşleme bağlantısının GATT veritabanına dahil edilmelidir.
Örnek: LEA çift modlu sağlayıcıyla eşleme
1. Senaryo: Arayıcı LEA'yı desteklemediğinde
Sağlayıcı, LEA'yı desteklemeyen Arayan ile geriye dönük uyumlu olmalıdır.
Bileşenler
- Sağlayıcı: A2DP/HFP/LEA
- Arayan: A2DP/HFP
İlk Eşleme / Sonraki Eşleme için Beklenen Davranış
- Sağlayıcı, kimlik adresi (ilk) veya RPA (sonraki) ile Hızlı Eşleme hizmet verilerinin (0xFE2C) reklamını yapar.
- Eski reklamcılık modellerini kullanma
- Arayan, ilk eşleme için kimlik adresiyle veya sonraki eşleme için RPA ile sağlayıcının reklamını alır
- Arayan, anahtar tabanlı eşleme isteği gönderir
- Anahtar tabanlı eşleme isteğinin 5. işaret biti 0 olarak ayarlandı
- Sağlayıcı, aşağıdakilerden birinde herkese açık adresle Anahtar Tabanlı Eşleme yanıtı gönderir:
- 0x01 mesaj türü kullanılırsa adres herkese açık adres olmalıdır
- 0x02 mesaj türü kullanılıyorsa
- Bit-0 0 olmalıdır
- Bit-1, 0 olacaktır
- Adres herkese açık olmalıdır.
- Arayan, BR/EDR aktarıcısıyla bağ oluşturur
- IO capability, BR/EDR için DisplayYesNo olarak ayarlanmıştır
- Arayan ve sağlayıcı, Hızlı Eşleme geçiş anahtarı doğrulama prosedürünü uygular
2. Senaryo: Arayıcı LEA'yı desteklediğinde
Bileşenler
- Sağlayıcı
- A2DP/HFP/LEA desteği
- Tek bileşen
- Arayan
- A2DP/HFP/LEA desteği
İlk Çift / Sonraki Çift İçin Beklenen Davranış
- Sağlayıcı, kimlik adresi (ilk) veya RPA (sonraki) ile Hızlı Eşleme hizmet verilerinin (0xFE2C) reklamını yapar.
- Eski reklamcılık modellerini kullanma
- Arayan, anahtar tabanlı eşleme isteği gönderir
- Anahtar Tabanlı Eşleme isteğinin 5. işareti biti 1 olarak ayarlanmıştır
- Sağlayıcı, 0x02 mesaj türüyle Anahtar Tabanlı Eşleme yanıtı gönderir
- Bit-0 0 olmalıdır
- 1. bit 1 olmalıdır.
- Adres, Identity adresidir
- Arayan, LE aktarımındaki mevcut LE bağlantısıyla bağ oluşturur
- CTKD yönü LE'den BR/EDR'ye
- IO capability is set to DisplayYesNo for LE
- Arayıcı ve sağlayıcı, Hızlı Eşleme geçiş anahtarı doğrulama prosedürünü gerçekleştirir.
Senaryo 3: Arayıcı, LEA'yı desteklediğinde ve CSIP'nin dahil olduğu durumlarda
Bileşenler
- Sağlayıcı
- A2DP/HFP/LEA desteği
- Birden çok bileşen
- Birincil bileşen BR/EDR/LE'dir
- İkincil bileşen yalnızca LE'dir
- Arayan
- A2DP/HFP/LEA desteği
İlk Eşleme / Sonraki Eşleme için Beklenen Davranış
- Birincil bileşen, kimlik adresi (ilk) veya RPA (sonraki) ile Hızlı Eşleme hizmet verilerinin (0xFE2C) reklamını yapar.
- Eski reklamcılık modellerini kullanma
- Arayan, Anahtar Tabanlı Eşleme isteğini birincil bileşene gönderir
- Anahtar tabanlı eşleme isteğinin 5. işaret biti 1 olarak ayarlanmıştır
- Birincil bileşen, 0x02 mesaj türüyle Anahtar Tabanlı Eşleme yanıtı gönderir
- Bit-0 0 olmalıdır
- 1. bit 1 olmalıdır.
- Adres şu şekildedir:
- İlk adres, birincil bileşenin kimlik adresidir.
- İkinci adres, ikincil bileşen için bağlanabilir adrestir. İkincil bileşen, CSIP reklamı yapmak için de bu adresi kullanır.
- Arayan, mevcut LE bağlantısındaki birincil bileşenle bağ oluşturur
- CTKD yönü LE'den BR/EDR'ye
- IO capability is set to DisplayYesNo for LE
- Arayan, adresi Anahtar Tabanlı Eşleme Genişletilmiş Yanıtı'ndan gelen ikincil bileşenle bağ oluşturur
- IO özelliği DisplayYesNo olmalıdır, aksi takdirde eşleştirme isteğini reddedin
- Arayan ve Sağlayıcı, ikincil bileşeni eşlemek için MITM koruma prosedürü uygular. Bu durumda Sağlayıcı her iki senaryoda da uygulayacaktır.
- Arayan, ikincil bileşene bağlanana kadar bekler
MITM için Sıralı Diyagram
Bu oturumda, MITM koruma prosedürünün sırası açıklanmaktadır.
Bildirimle bağlanan bileşenden geçiş anahtarı alma
Okuma üzerinden bağlanan bileşenden geçiş anahtarı al
Bilinen Sorun
LEA için FP, Android V(Android 15) ile çalışacak şekilde optimize edilmiştir.
Buna karşılık, LEA'yı destekleyen ancak LEA üzerinden doğru Hızlı Eşleme uygulamasına (ör. yalnızca Klasik üzerinden Hızlı Eşleme) sahip olmayan kulaklıklarla ilgili çok sayıda sorunla karşılaştık. Özellikle, örneğin sağlayıcının RPA'sı doğru Kimlik Çözme Anahtarı (IRK) tarafından oluşturulmadığında ve adres çözümlenemezse. Kulak içi kulaklık yapılandırmalarının kapsamlı bir listesini test edemesek de sınırlı testlerimiz sonucunda, kulak içi kulaklık pil bildirimlerinin gösterilmemesi, ses anahtarlama (SASS) işlevinin olmaması, yaygın olarak görülen ilk ve sonraki eşleme hataları ve daha birçok sorun tespit ettik.
Bu nedenle, iş ortaklarının hem yeni cihazlar hem de sahada bulunan ve çift modu destekleyen mevcut cihazlar için (kablosuz güncellemeler aracılığıyla) Hızlı Eşleme-LEA spesifikasyonunu uygulamasını önemle tavsiye ederiz.