Hızlı Eşleme Hizmeti
Hızlı Eşleme Sağlayıcı, aşağıdaki özellikleri içeren Hızlı Eşleme Hizmeti'ni (UUID 0xFE2C) uygulamalıdır.
| Ad | Şifrelenmiş | İzinler | UUID | Zorunlu mu? |
|---|---|---|---|---|
| Model kimliği | Hayır | Okuma | FE2C1233-8366-4814-8EB0-01DE32100BEA |
Zorunlu |
| Anahtar tabanlı eşleme | Hayır | Yaz ve bildir | FE2C1234-8366-4814-8EB0-01DE32100BEA |
Zorunlu |
| Geçiş anahtarı | Hayır | Yaz ve bildir | FE2C1235-8366-4814-8EB0-01DE32100BEA |
Zorunlu |
| Hesap anahtarı | Hayır | Yazma | FE2C1236-8366-4814-8EB0-01DE32100BEA |
Zorunlu |
| Ek Veriler | Hayır | Yaz ve bildir | FE2C1237-8366-4814-8EB0-01DE32100BEA |
*C1 |
| Mesaj Akışı PSM'si | Evet | Okuma | FE2C1239-8366-4814-8EB0-01DE32100BEA |
*C2 |
| Ek Geçiş Anahtarı | Hayır | Okuma, yazma ve bildirim gönderme | FE2C123A-8366-4814-8EB0-01DE32100BEA |
*C3 |
| FP Cihaz İşlemi | Hayır | Yaz ve bildir | FE2C123B-8366-4814-8EB0-01DE32100BEA |
*C4 |
Koşullu zorunlu
- C1: Sağlayıcı, adlandırma özelliğini destekliyorsa ve FP Cihaz İşlemi özelliğini uygulamıyorsa
- C2: Sağlayıcı, Mesaj Akışı: L2CAP'i destekliyorsa
- C3: Sağlayıcı'nın bileşenler arasında dahili iletişim kanalı varsa
- C4: Sağlayıcı'nın eşleme işlemi sırasında ek bilgi alışverişinde bulunması gerekiyorsa (ör. bileşenler arasında dahili iletişim kanalı olmayan bir Sağlayıcı)
Özellik: Model Kimliği
Bu özellik, cihaz bulunabilir modda bildirme yaparken Araştırıcı'nın model kimliğini gerektiği gibi okumasına olanak tanır. Her zaman aşağıdaki verileri döndürmelidir:
| Sekizli | Veri türü | Açıklama | Değer |
|---|---|---|---|
| 0 - 2 | uint24 |
Model Kimliği | değişir |
Özellik: Anahtar Tabanlı Eşleme
Bu özellik, anahtar tabanlı eşleme prosedürünü kontrol eder. Bu prosedürde, Arayan ve Sağlayıcı'nın önceden paylaşılan bir anahtara sahip olduğu doğrulanarak belirli bir güven düzeyi oluşturulur. Anahtar her durumda farklıdır:
1. Durum: Önceden paylaşılan anahtar, kimlik sahtekarlığına karşı koruma ortak/özel anahtar çiftini ve Arayıcı'nın her eşleme denemesinde değişecek olan kendi ortak/özel anahtar çiftini temel alır.
- Sağlayıcı, eşleme modundadır.
- Arayan, Sağlayıcı'nın adres sahteciliğini önleme özel anahtarına sahip olduğunu doğrular.
Sağlayıcı, eşleme modundayken her zamanki yöntemle de eşleme yapabilir. Örneğin, Hızlı Eşleme'nin anahtar tabanlı eşleme özelliğini desteklemeyen bir cihazla eşleme yapabilir.
2. durum: Önceden paylaşılan anahtar, hesap anahtarlarından biridir.
- Sağlayıcı genellikle eşleme modunda değildir. (Ancak bu bir zorunluluk değildir. Sağlayıcı, eşleme modundayken bile hesap anahtarı kullanımını desteklemelidir.)
- Arayan ve Sağlayıcı, diğer tarafın hesap anahtarına sahip olduğunu doğrular.
Kullanılan önceden paylaşılan anahtar dışında her iki durum da son derece benzer olduğundan prosedür bölümünde birleştirilmiştir.
Veri Biçimi
Her biçimin nasıl kullanıldığını öğrenmek için prosedürü inceleyin.
| Sekizli | Veri türü | Açıklama | Değer | Zorunlu mu? |
|---|---|---|---|---|
| 0 - 15 | uint128 |
Şifrelenmiş İstek | değişir | Zorunlu |
| 16 - 79 | Ortak Anahtar | değişir | İsteğe bağlı |
Tablo 1.1: Arayıcı tarafından özelliğe yazılan Şifrelenmiş İstek.
| Sekizli | 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 yöntemlerden birini kullanı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 gösterilir |
| n - 15 | Rastgele değer (salt) | değişir | Zorunlu |
Tablo 1.2.1: Ham İstek (tür 0x00). Tablo 1.1'deki Şifrelenmiş İstek'ten şifresi çözülmüştür.
| Sekizli | Veri türü | Açıklama | Değer | Zorunlu mu? |
|---|---|---|---|---|
| 0 | uint8 |
Mesaj türü | 0x10 = İşlem İsteği |
Zorunlu |
| 1 | uint8 |
İşaretler
|
değişir | Zorunlu |
| 2 - 7 | uint48 |
Şu yöntemlerden birini kullanın:
|
değişir | Zorunlu |
| 8 | uint8 |
Mesaj grubu | değişir | İşaretler Bit 0 ayarlanmışsa zorunludur. |
| 9 | uint8 |
Mesaj kodu | değişir | İşaretler Bit 0 ayarlanmışsa zorunludur. |
| 10 | uint8 |
İşaretlere bağlıdır:
|
değişir | İşaretler Bit 0 veya 1 ayarlanmışsa zorunludur. |
| 11 - n | Ek veriler | değişir | İsteğe bağlı | |
| n - 15 | Rastgele değer (salt) | değişir | Zorunlu |
Tablo 1.2.2: Ham İstek (tür 0x10). Tablo 1.1'deki Şifrelenmiş İstek'ten şifresi çözülmüştür.
| Sekizli | Veri türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 |
Mesaj türü | 0x01 = Anahtar Tabanlı Eşleme Yanıtı |
| 1 - 6 | uint48 |
Sağlayıcının herkese açık (BR/EDR) adresi | değişir |
| 7 - 15 | Rastgele değer (salt) | değişir |
Tablo 1.3: Ham Yanıt (0x01 türü). Tablo 1.4'te Şifrelenmiş Yanıt'ı oluşturmak için şifrelenir.
| Sekizli | Veri türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 |
Mesaj türü | 0x02 = Key-based Pairing Extended Response |
| 1 | uint8 |
İşaretler
|
değişir |
| 2 | uint8 |
Sağlayıcının adreslerinin sayısı Geçerli değerler 1 ve 2'dir. |
değişir |
| 3-8 veya 3-14 |
|
değişir | |
| 9-15 veya 15 | Rastgele değer (salt) | değişir |
Tablo 1.3.2: Ham Yanıt (0x02 türü). Tablo 1.4'te Şifrelenmiş Yanıt'ı oluşturmak için şifrelenir.
| Sekizli | Veri türü | Açıklama | Değer |
|---|---|---|---|
| 0 -15 | uint128 |
Şifrelenmiş Yanıt | değişir |
Tablo 1.4: Sağlayıcı tarafından Arayıcı'ya bildirim yoluyla gönderilen Şifrelenmiş Yanıt.
Özellik: Geçiş anahtarı
Bu özellik, Anahtar Tabanlı Eşleme prosedürü sırasında kullanılır.
| Sekizli | Veri türü | Açıklama | Değer |
|---|---|---|---|
| 0 - 15 | uint128 |
Şifrelenmiş geçiş anahtarı bloğu | değişir |
Tablo 2.1: Şifrelenmiş Geçiş Anahtarı Bloğu. Kullanım için Anahtar Tabanlı Eşleme prosedürüne bakın.
| Sekizli | Veri türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 |
Mesaj türü | Şu seçeneklerden biri:
|
| 1 - 3 | unit32 |
6 basamaklı geçiş anahtarı | değişir |
| 4 - 15 | Rastgele değer (salt) | değişir |
Tablo 2.2: Ham Geçiş Anahtarı Bloğu. Tablo 2.1'in şifresi çözülmüş sürümü.
Özellik: Hesap Anahtarı
Eşleme işleminden sonra Hızlı Eşleme Arayıcısı, Hızlı Eşleme Sağlayıcısı'na bir hesap anahtarı yazar.
| Sekizli | Veri türü | Açıklama | Değer |
|---|---|---|---|
| 0 - 15 | uint128 |
Hesap anahtarı (şifrelenmiş) | değişir |
Yazma isteği alan Hızlı Eşleme Sağlayıcı aşağıdakileri yapmalıdır:
- Prosedürdeki 4. adımda oluşturulan paylaşılan gizli anahtarı kullanarak hesap anahtarının şifresini çözün.
- Teminat gerektiren sağlayıcılar için (yaygın):
- Şifre çözme işleminden önce, 12. adımdaki geçiş anahtarı isteğinin şifresini çözmek için paylaşılan gizli anahtarın kullanıldığını doğrulayın. Bu adım bu gizli anahtar kullanılarak geçilmediyse bu yazma işlemini yoksayın ve çıkın.
- Bu noktada, paylaşılan gizli anahtar (prosedürde K) bu eşleme için tekrar kullanılmaz. Prosedür yeniden başlatılmadan bu anahtarla şifrelenmiş olarak gelen tüm istekler reddedilmelidir.
- Teminat gerektiren sağlayıcılar için (yaygın):
- Şifresi çözülen değerin
0x04veya0xFFile başladığını doğrulayın. Eşleşmiyorsa bu yazma işlemini yoksay ve çık.- Değer
0x04ise:- Kalıcı Hesap Anahtarı listesinde yeni değer için yer olup olmadığını kontrol edin.
- Değilse en eski değeri listeden silin.
- Yeni değeri listeye ekleyin.
- Değer
0xFFise:- Bu oturumu geçici bir eşleme oturumu olarak değerlendirin ve herhangi bir işlem yapmayın.
- Bu durum, Hesap anahtarını geriye dönük olarak yazma akışında yaşanabilir.
- Anahtarı saklamayın ve Hesap Anahtarı listesinde, şifrelemede veya MAC hesaplamalarında kullanmayın.
- Bağ kaldırma işlemi, özelliğe özel bir etkinlik veya zaman aşımı ile tetiklenir. LE Ses Paylaşımı için, geçici oturumun bağlantısı kesildikten 10 dakika sonra BLE bağının ve bağlantı anahtarının kaldırılması önemle tavsiye edilir.
- Değer
Listedeki hesap anahtarları, anahtar tabanlı eşleme sırasında kullanılır.
Özellik: Ek Veriler
Bu hizmet aşağıdaki özelliklere sahip olmalıdır.
| Hızlı Eşleme Hizmeti özelliği | Şifrelenmiş | İzinler | UUID |
|---|---|---|---|
| Veriler | Hayır | Yaz ve bildir | FE2C1237-8366-4814-8EB0-01DE32100BEA |
| Eski Hızlı Eşleme Hizmeti özelliği (2021/1/1 tarihinde desteği sonlandırılacak) | Şifrelenmiş | İzinler | UUID |
|---|---|---|---|
| Veriler | Hayır | Yaz ve bildir | 0x1237 |
Bu özelliğe yazmadan veya bildirim göndermeden önce, paylaşılan bir gizli anahtara sahip olmak için FE2C1234-8366-4814-8EB0-01DE32100BEA özelliği aracılığıyla el sıkışma yapılmalıdır. Bu özellik üzerinden akan verileri şifrelemek için AES-CTR kullanılır. Bu algoritma aşağıda tanımlanmıştır. Bu mod, tek bir 16 baytlık bloktan daha büyük verilerde daha güvenlidir. Veri bütünlüğünü sağlamak için HMAC-SHA256 kullanılır. Bu da aşağıda tanımlanmıştır.
| Sekizli | Açıklama | Değer |
|---|---|---|
| 0 - 7 | HMAC-SHA256'nın ilk 8 baytı. | değişir |
| 8 - 15 | AES-CTR şifrelemesi tarafından kullanılan tek seferlik rastgele sayı. | değişir |
| 16 - var | Şifrelenmiş veriler. | değişir |
Tablo 3.1: Sağlayıcı tarafından bildirim yoluyla Arayıcı'ya gönderilen veya Arayıcı tarafından yazma yoluyla Sağlayıcı'ya gönderilen veri paketi.
| Sekizli | Veri türü | Açıklama | Değer |
|---|---|---|---|
| 0 - var | byte array |
Veriler | değişir, Tablo 1.2.2'deki Veri Kimliği'ne göre kodu çözün:
|
Tablo 3.2: Ham veri. Tablo 3.1'deki şifrelenmiş verilerden şifresi çözülmüştür.
Bildirim istendiğinde (ör. Tablo 1.2.1'deki Bit 2 aracılığıyla kişiselleştirilmiş ad isteği) Hızlı Eşleme Sağlayıcı aşağıdakileri yapmalıdır:
- Tek seferlik rastgele sayı için kriptografik olarak rastgele 8 bayt oluşturun.
Her 16 baytlık bloğun aşağıdaki yöntemle oluşturulduğu AES-CTR'yi kullanarak verileri şifreleyin:
encryptedBlock[i] = clearBlock[i] ^ AES(key, concat((uint8) i, 0x00000000000000, nonce))burada
- AES anahtarı, prosedürdeki 4. adımda paylaşılan gizli anahtardır.
- clearBlock[i], data[i * 16] ile başlayan 16 baytlık bir bloktur. Son blok 16 bayttan az olabilir.
Şifrelenmiş verileri oluşturmak için concat(encryptedBlock[0], encryptedBlock[1],...) işlemini gerçekleştirin.
HMAC-SHA256'yı oluşturmak için
sha256(concat((K ^ opad), sha256(concat((K ^ ipad), concat(nonce, encrypted_data)))))burada
- K, concat(shared_secret, 48-byte ZEROs) tarafından oluşturulur. shared_secret, prosedürdeki 4. adımdan alınır.
- opad,
0x5Cdeğerine sahip yinelenen baytlardan oluşan 64 baytlık dış dolgudur. - ipad,
0x36değerine sahip yinelenen baytlardan oluşan 64 baytlık iç dolgudur.
HMAC-SHA256'dan ilk 8 baytı veri paketinin ön eki olarak alın.
Yazma isteği alan Hızlı Eşleme Sağlayıcı aşağıdakileri yapmalıdır:
- HMAC-SHA256'nın ilk 8 baytını kontrol ederek verilerin bütünlüğünü doğrulayın.
AES-CTR kullanarak şifrelenmiş verilerin şifresini çözün. Her blok,
clearBlock[i] = encryptedBlock[i] ^ AES(key, concat((uint8) i, 0x00000000000000, nonce))burada
- encryptedBlock[i], encrypted_data[i * 16] ile başlayan 16 baytlık bir bloktur. Son blok 16 bayttan küçük olabilir.
- AES anahtarı, el sıkışma işleminden oluşturulur veya tanımlanır. Örneğin:
- Adlandırma akışı 1'de ECDH'den gelir ve bu eşleme için tekrar kullanılmaz. Prosedür yeniden başlatılmadan bu anahtarla şifrelenmiş olarak gelen tüm istekler reddedilmelidir.
- Adlandırma akışı 2'de ise hesap anahtarıdır.
Ham verileri oluşturmak için concat(clearBlock[0], clearBlock[1],...) işlemini gerçekleştirin.
Özellik: Mesaj Akışı PSM
BLE Cihazı: Mesaj Akışı PSM'si bölümüne bakın.
Özellik: Ek Geçiş Anahtarı
BLE Cihazı: Ek Geçiş Anahtarı bölümüne bakın.
Özellik: FP Cihaz İşlemi
| Hızlı Eşleme Hizmeti özelliği | Şifrelenmiş | İzinler | UUID |
|---|---|---|---|
| FP Cihaz İşlemi | Hayır | Yaz ve bildir | FE2C123B-8366-4814-8EB0-01DE32100BEA |
| Sekizli | Açıklama | Değer |
|---|---|---|
| 0 - 7 | HMAC-SHA256'nın ilk 8 baytı. | değişir |
| 8 - 15 | AES-CTR şifrelemesi tarafından kullanılan tek seferlik rastgele sayı. | değişir |
| 16 - var | Şifrelenmiş veriler. | değişir |
Tablo 4.1: Sağlayıcı tarafından Arayıcı'ya bildirim olarak veya Arayıcı tarafından Sağlayıcı'ya yazma olarak gönderilen veri paketi.
| Sekizli | Veri türü | Açıklama | Değer |
|---|---|---|---|
| 0 - var | byte array |
İşlem İsteği | Şunlardan biri:
|
Tablo 4.2: Ham veri. Arayan tarafından Sağlayıcı'ya yazma olarak gönderilen Tablo 4.1'deki şifrelenmiş verilerden şifresi çözülür.
| Sekizli | Veri türü | Açıklama | Değer |
|---|---|---|---|
| 0 - var | byte array |
İşlem Yanıtı | Şunlardan biri:
|
Tablo 4.3: Ham veri. Sağlayıcı tarafından Arayan'a bildirim olarak gönderilen Tablo 4.1'deki şifrelenmiş verilerden şifresi çözülmüş.
| Sekizli | Veri türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 |
İşlem kimliği | 0x01 |
| 1 - var | utf8s |
Kişiselleştirilmiş Ad | değişir |
Tablo 4.3.1: Kişiselleştirilmiş Ad Biçimi
| Sekizli | Veri türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 |
İşlem kimliği | 0x02 |
| 1 | uint8 |
Hızlı Eşleme Koordineli Set Üye Türü |
|
| 2 | uint8 |
Takımdaki Ürün Adedi | bileşen sayısı |
| 3 | uint8 |
Kimlik Çözümleme Anahtarı Türünü Ayarlama | 0x01 (Düz Metin SIRK) |
| 4 - 19 | uint128 |
Kimlik Çözümleme Anahtar Değerini Ayarlama | 16 baytlık veri, Koordineli Set Tanımlama Hizmeti'ne bakın. |
Tablo 4.3.2: Koordineli Küme Bilgileri Biçimi
| Sekizli | Veri türü | Açıklama | Değer |
|---|---|---|---|
| 0 | uint8 |
İşlem kimliği | 0x03 |
| 1 - 2 | uint16 |
Cihaz Özellikleri |
|
Tablo 4.3.3: Cihaz Özellikleri Biçimi
Hızlı Eşleme İşlemleri
Bu özellik için iki ana işlem tanımlanmıştır
- Hızlı Eşleme Okuma: Sağlayıcı'dan veri okuma
- Arayıcı: GATT Bildirimini Etkinleştirme
- Sağlayıcı: GATT bildirimi kaydedildi
- Arayan: GATT Yazma İsteği, ham veriler yalnızca
Action IDiçeriyor - Sağlayıcı: GATT Yazma Yanıtı
- Sağlayıcı: GATT Bildirimi, ham veriler şunları içerir:
- İşlem kimliği
- İşlem kimliği verileri
- Arayıcı: GATT bildirimi alındı
- Hızlı Eşleme Yazma: Sağlayıcı'ya veri yazma
- Arayıcı: GATT Yazma İsteği, ham veriler şunları içerir:
- İşlem kimliği
- İşlem kimliği verileri
- Sağlayıcı: GATT Yazma yanıtı
- Arayıcı: GATT Yazma İsteği, ham veriler şunları içerir:
Hızlı Eşleme Okuma Desteklenen İşlem Kimliği
- 0x01 (Kişiselleştirilmiş ad)
- 0x02 (Koordineli set bilgileri)
- 0x03 (Cihaz özellikleri)
Hızlı Eşleme Yazma Desteklenen İşlem Kimliği
- 0x01 (Kişiselleştirilmiş ad)
- Yazma isteğinin bir işlem kimliği ve ardından veri içerdiği diğer tüm komutlar için sağlayıcı, Tablo 4.3'te açıklandığı gibi geçersiz istek (0x81) içeren bir GATT bildirimiyle yanıt vermelidir.
Sağlayıcı bir işlem kimliğini anlamazsa Tablo 4.3'te açıklandığı gibi Desteklenmeyen İstek (0x80) içeren bir GATT bildirimiyle yanıt verir.
Kripto Algoritması
Bildirim istendiğinde Hızlı Eşleme Sağlayıcı aşağıdakileri yapmalıdır:
- Tek seferlik rastgele sayı için kriptografik olarak rastgele 8 bayt oluşturun.
Her 16 baytlık bloğun aşağıdaki yöntemle oluşturulduğu AES-CTR'yi kullanarak verileri şifreleyin:
encryptedBlock[i] = clearBlock[i] ^ AES(key, concat((uint8) i, 0x00000000000000, nonce))burada
- AES anahtarı, prosedürdeki 4. adımda paylaşılan gizli anahtardır.
clearBlock[i],data[i * 16]ile başlayan 16 baytlık bir bloktur. Son blok 16 bayttan az olabilir.
Şifrelenmiş verileri oluşturmak için
concat(encryptedBlock[0], encryptedBlock[1],...)işlemini gerçekleştirin.HMAC-SHA256'yı oluşturmak için
sha256(concat((K ^ opad), sha256(concat((K ^ ipad), concat(nonce, encrypted_data)))))burada
- K, concat(shared_secret, 48-byte ZEROs) tarafından oluşturulur. shared_secret, prosedürdeki 4. adımdan alınır.
- opad,
0x5Cdeğerine sahip yinelenen baytlardan oluşan 64 baytlık dış dolgudur. - ipad,
0x36değerine sahip yinelenen baytlardan oluşan 64 baytlık iç dolgudur.
HMAC-SHA256'dan ilk 8 baytı veri paketinin ön eki olarak alın.
Yazma isteği alan Hızlı Eşleme Sağlayıcı aşağıdakileri yapmalıdır:
- HMAC-SHA256'nın ilk 8 baytını kontrol ederek verilerin bütünlüğünü doğrulayın.
AES-CTR kullanarak şifrelenmiş verilerin şifresini çözün. Her blok,
clearBlock[i] = encryptedBlock[i] ^ AES(key, concat((uint8) i, 0x00000000000000, nonce))burada
encryptedBlock[i],encrypted_data[i * 16]ile başlayan 16 baytlık bir bloktur. Son blok 16 bayttan küçük olabilir.- AES anahtarı, el sıkışma işleminden oluşturulur veya tanımlanır. Örneğin:
- Adlandırma akışı 1'de ECDH'den gelir ve bu eşleme için tekrar kullanılmaz. Prosedür yeniden başlatılmadan bu anahtarla şifrelenmiş olarak gelen tüm istekler reddedilmelidir.
- Adlandırma akışı 2'de ise hesap anahtarıdır.
Ham verileri oluşturmak için
concat(clearBlock[0], clearBlock[1],...)işlemini gerçekleştirin.
Cihaz Bilgileri Hizmeti
Hızlı Eşleme Sağlayıcı, Cihaz Bilgileri Hizmeti'ni de (UUID 0x180A) desteklemelidir. Hızlı Eşleme Arayıcı aşağıdaki özellikleri kullanır.
| Ad | Şifrelenmiş | İzinler | UUID |
|---|---|---|---|
| Donanım Yazılımı Sürümü | Hayır | Okuma | 0x2A26 |
Özellik: Donanım Yazılımı Sürümü
Bu özellik, Seeker'ın gerektiğinde Provider'ın donanım yazılımı düzeltmesini okumasına olanak tanır. Her zaman aşağıdaki verileri döndürmelidir:
| Sekizli | Veri türü | Açıklama | Değer |
|---|---|---|---|
| 0 - var | utf8s |
Donanım yazılımı düzeltme kodu | değişir |
Sağlayıcıda birden fazla donanım yazılımı (ör. sol kulaklık, sağ kulaklık ve kılıf için 3 donanım yazılımı) olsa bile tek bir UTF-8 dizesinde kapsüllenmelidir. Sağlayıcı, özel durumlar için belirli dizeleri de döndürebilir:
status-updating: Sağlayıcı yeni bir donanım yazılımına güncelliyorsa. Alternatif olarak sağlayıcı, hazırlanan donanım yazılımının sürümünü döndürebilir.
status-abnormal: Sağlayıcı anormal bir durumdaysa kullanılır. Örneğin, donanım yazılımı güncellemesi başarısız olduğu için arızalanmış olabilir. Bu değer, Seeker'ın kullanıcıya uygulamanın hemen güncellenmesi gerektiğini bildiren bir mesaj göstermesine neden olur.
Sağlayıcı, cihaz takibini önlemek için Donanım Yazılımı Sürümü özelliğine erişimi sınırlandırmalıdır. Önerilen kısıtlamalar:
- Bağlı cihazlar her zaman erişime sahip olmalıdır.
- Sağlayıcı bulunabilir olduğunda tüm cihazlar erişebilmelidir.
Sağlayıcı, Cihaz Takip Merkezi'ni destekliyorsa ek uygulama gerekir. Ayrıntılar için Cihaz Takip Merkezi donanım yazılımı güncellemeleri başlıklı makaleyi inceleyin.