v1.3
Cihazımı Bul Ağı (FMDN) aksesuar spesifikasyonu, işaretçi Bluetooth Düşük Enerji (BLE) cihazlarını izlemek için uçtan uca şifrelenmiş bir yaklaşım tanımlar. Bu sayfada, FMDN, Hızlı Eşleme spesifikasyonunun bir uzantısı olarak açıklanmaktadır. Sağlayıcılar, FMDN ile uyumlu cihazları varsa ve bu cihazlarda konum takibi özelliğini etkinleştirmek istiyorsa bu uzantıyı etkinleştirmelidir.
GATT Spesifikasyonu
Hızlı Eşleme Hizmeti'ne aşağıdaki semantiklerle ek bir genel özellikler (GATT) özelliği eklenmelidir:
Hızlı Eşleme Hizmeti özelliği | Şifrelenmiş | İzinler | UUID |
---|---|---|---|
İşaretçi işlemleri | Hayır | Oku, yaz ve bildirim gönder | FE2C1238-8366-4814-8EB0-01DE32100BEA |
Tablo 1: FMDN için Hızlı Eşleme Hizmeti özellikleri.
Kimlik doğrulama
Bu uzantının gerektirdiği işlemler, sorgulama-yanıt mekanizmasıyla güvenliği sağlanan bir yazma işlemi olarak gerçekleştirilir. Arayanın, herhangi bir işlemi gerçekleştirmeden önce tablo 1'deki özelliğe göre bir okuma işlemi gerçekleştirmesi beklenir. Bu işlem, aşağıdaki biçimde bir arabellek oluşturur:
Sekiz | Veri Türü | Açıklama | Değer |
---|---|---|---|
0 | uint8 | Protokol ana sürüm numarası | 0x01 |
1 - 8 | bayt dizisi | Tek seferlik rastgele tek seferlik rastgele sayı | değişiklik gösterir |
Her okuma işlemi farklı bir tek seferlik rastgele sayı ile sonuçlanmalı ve tek bir tek seferlik rastgele sayı yalnızca tek bir işlem için geçerli olmalıdır. İşlem başarısız olsa bile tek seferlik şifre geçersiz kılınmalıdır.
Ardından, Arayıcı sonraki bir yazma isteğinde kullanılacak tek kullanımlık bir kimlik doğrulama anahtarı hesaplar. Kimlik doğrulama anahtarı, 2 ile 5 arasındaki tablolarda açıklandığı şekilde hesaplanır. İstekte bulunulan işleme bağlı olarak, arayan aşağıdaki anahtarlardan en az birini bildiğini kanıtlar:
Hesap anahtarı: Hızlı Eşleme spesifikasyonunda tanımlandığı şekliyle 16 baytlık Hızlı Eşleme hesap anahtarı.
Sahip hesap anahtarı: Bir arayan, İşaretçi İşlemleri özelliğine ilk kez eriştiğinde Sağlayıcı, mevcut hesap anahtarlarından birini sahip hesap anahtarı olarak seçer. Sağlayıcı fabrika ayarlarına sıfırlanana kadar seçilen sahip hesabı anahtarı değiştirilemez. Sağlayıcı, ücretsiz hesap anahtarı yuvası kalmadığında sahip hesabı anahtarını kaldırmamalıdır.
İlk kez eşlenirken FMDN'yi zaten destekleyen (veya fabrika ayarlarına sıfırlandıktan sonra eşlenirken destekleyen) sağlayıcılar, arayan eşleme sırasında temel hazırlama durumunu okurken mevcut olan tek hesap anahtarı olduğundan ilk hesap anahtarını seçer.
Önceden eşlendikten sonra (örneğin, bir donanım yazılımı güncellemesi aracılığıyla) FMDN desteği alan sağlayıcılar mevcut hesap anahtarlarını seçebilir. Güncellemeyi gerçekleştiren kullanıcının Sağlayıcı'nın mevcut sahibi olduğu varsayılarak, donanım yazılımı güncellemesinden sonra işaretçi işlemleri özelliğinden temel hazırlama durumunu okumak için kullanılan ilk hesap anahtarını seçmek mantıklıdır.
Geçici kimlik anahtarı (EIK): FMDN temel hazırlığı işlemini gerçekleştirirken Arayıcı tarafından rastgele seçilen 32 baytlık bir anahtardır. Bu anahtar, uçtan uca şifreleme konum raporları için kullanılacak şifreleme anahtarlarını türetmek amacıyla kullanılır. Arayan, hiçbir zaman arka uçla paylaşmaz.
Kurtarma anahtarı:
SHA256(ephemeral identity key || 0x01)
olarak tanımlanır ve ilk 8 bayta kısaltılır. Anahtar arka uçta depolanır ve kullanıcı cihazdaki bir düğmeye basarak izin vermesi koşuluyla EIK'yi kurtarmak için Arayıcı tarafından kullanılabilir.Zili anahtarı:
SHA256(ephemeral identity key || 0x02)
olarak tanımlanır ve ilk 8 bayta kısaltılır. Anahtar arka uçta saklanır ve arayan, anahtarı yalnızca cihazı çaldırmak için kullanabilir.İstenmeyen izleme koruma anahtarı:
SHA256(ephemeral identity key || 0x03)
olarak tanımlanır, ilk 8 bayta kısaltılır. Anahtar arka uçta depolanır ve Arayan kişi bunu yalnızca istenmeyen izleme koruması modunu etkinleştirmek için kullanabilir.
İşlemler
Özelliğe yazılan verilerin biçimi 2'den 5'e kadar olan tablolarda verilmiştir. Bu işlemlerin her biri, bu bölümün ilerleyen kısımlarında daha ayrıntılı olarak ele alınmaktadır.
Sekiz | Veri Türü | Açıklama | Değer |
---|---|---|---|
0 | uint8 | Veri kimliği |
|
1 | uint8 | Veri uzunluğu | değişir |
2 - 9 | bayt dizisi | Tek seferlik kimlik doğrulama anahtarı | HMAC-SHA256(account key, protocol major version number || the last nonce
read from the characteristic || data ID || data length || additional data) değerinin ilk 8 baytı |
10 - değişken | bayt dizisi | Ek veriler |
|
Tablo 2: İşaretçi sağlama isteği.
Octet | Veri Türü | Açıklama | Değer |
---|---|---|---|
0 | uint8 | Veri kimliği | 0x04: Geçici kimlik anahtarını kullanıcı izniyle okuma |
1 | uint8 | Veri uzunluğu | 0x08 |
2 - 9 | bayt dizisi | Tek seferlik kimlik doğrulama anahtarı | HMAC-SHA256(recovery key, protocol major version number || the last nonce
read from the characteristic || data ID || data length) değerinin ilk 8 baytı |
Tablo 3: İşaretçi tedarik anahtarı kurtarma isteği.
Sekiz | Veri Türü | Açıklama | Değer |
---|---|---|---|
0 | uint8 | Veri kimliği |
|
1 | uint8 | Veri uzunluğu | değişir |
2 - 9 | bayt dizisi | Tek seferlik kimlik doğrulama anahtarı | HMAC-SHA256(ring key, protocol major version number || the last nonce read
from the characteristic || data ID || data length || additional data) öğesinin ilk 8 baytı |
10 - var | bayt dizisi | Ek veriler |
|
Tablo 4: Çalma isteği.
Octet | Veri Türü | Açıklama | Değer |
---|---|---|---|
0 | uint8 | Veri kimliği |
|
1 | uint8 | Veri uzunluğu | değişir |
2 - 9 | bayt dizisi | Tek seferlik kimlik doğrulama anahtarı | HMAC-SHA256(unwanted tracking protection key, protocol major version number
|| the last nonce read from the characteristic || data ID || data length ||
additional data) değerinin ilk 8 baytı |
10 - değişken | bayt dizisi | Ek veriler |
|
Tablo 5: İstenmeyen izleme koruması isteği.
Başarılı yazma işlemleri, tablo 6'da listelenen bildirimleri tetikler.
Veri kimliği 0x05: Zil durumu değişikliği dışında olan bildirimler, bildirimi tetikleyen yazma işlemi tamamlanmadan, yani yazma isteği için yanıt PDU'su gönderilmeden önce gönderilmelidir.
Octet | Veri Türü | Açıklama | Değer |
---|---|---|---|
0 | uint8 | Veri kimliği |
|
1 | uint8 | Veri uzunluğu | değişir |
2 - 9 | bayt dizisi | Kimlik doğrulama | İşlem başına ayrıntılı |
10 - var | bayt dizisi | Ek veriler |
|
Tablo 6: İşaretçi hizmeti yanıtı.
Tablo 7'de, işlemler tarafından döndürülen olası GATT hata kodları listelenmektedir.
Kod | Açıklama | Notlar |
---|---|---|
0x80 | Kimliği doğrulanmamış | Kimlik doğrulama başarısız olduğunda yazma isteğine yanıt olarak döndürülür (eski tek seferlik rastgele sayı kullanılması dahil). |
0x81 | Geçersiz değer | Geçersiz bir değer sağlandığında veya alınan veriler beklenmedik sayıda bayt içerdiğinde döndürülür. |
0x82 | Kullanıcı izni yok | Cihaz eşleme modunda değilken 0x04: Geçici kimlik anahtarını kullanıcı izniyle oku veri kimliğine sahip bir yazma isteğine yanıt olarak döndürülür. |
Tablo 7: GATT hata kodları.
İşaretçinin parametresini oku
Arayıcı, 2. tablodan 0x00 veri kimliğiyle gelen bir istek içeren özelliğe yazma işlemi gerçekleştirerek sağlayıcıdan işaretçi parametrelerini sorgulayabilir. Sağlayıcı, sağlanan tek seferlik kimlik doğrulama anahtarının cihazda depolanan tüm hesap anahtarlarıyla eşleştiğini doğrular.
Doğrulama başarısız olursa sağlayıcı, kimlik doğrulamasının yapılmadığına dair bir hata döndürür.
İşlem başarılı olursa Sağlayıcı, 6. tabloda 0x00 veri kimliğine sahip bir yanıt göndererek bildirim gönderir. Sağlayıcı, veri segmentini aşağıdaki şekilde oluşturur:
Sekiz | Veri Türü | Açıklama | Değer |
---|---|---|---|
0 | uint8 | Kalibre edilmiş güç | 0 m'de alınan kalibre edilmiş güç ([-100, 20] aralığındaki bir değer). 1 dBm çözünürlükte, imzalı bir tam sayı olarak gösterilir. |
1 - 4 | uint32 | Saat değeri | Saniye cinsinden mevcut saat değeri (büyük endian). |
5 | uint8 | Eğri seçimi | Şifreleme için kullanılan elips biçimli eğri:
|
6 | uint8 | Bileşenler | Çalabilir bileşenlerin sayısı:
|
7 | uint8 | Çaldırma özellikleri | Desteklenen seçenekler şunlardır:
|
8-15 | bayt dizisi | Dolgu | AES şifrelemesi için sıfır dolgu. |
Veriler, isteğin kimliğini doğrulamak için kullanılan hesap anahtarıyla AES-ECB-128 şifrelenmelidir.
Kimlik doğrulama segmenti, HMAC-SHA256(account key, protocol major version number || the last nonce read
from the characteristic || data ID || data length || additional data after
encryption || 0x01)
öğesinin ilk 8 baytı olarak tanımlanır.
İşaretçinin temel hazırlık durumunu oku
Arayan, veri kimliği 0x01 olan tablo 2'den gelen bir istekten oluşan özelliğe bir yazma işlemi gerçekleştirerek işaretçinin temel hazırlık durumu için Sağlayıcı'yı sorgulayabilir. Sağlayıcı, sağlanan tek seferlik kimlik doğrulama anahtarının cihazda depolanan tüm hesap anahtarlarıyla eşleştiğini doğrular.
Doğrulama başarısız olursa Sağlayıcı, kimliği doğrulanmamış bir hata döndürür.
İşlem başarılı olursa Sağlayıcı, 6. tabloda 0x01 veri kimliğine sahip bir yanıt göndererek bildirim gönderir. Sağlayıcı, veri segmentini aşağıdaki şekilde oluşturur:
Sekiz | Veri Türü | Açıklama | Değer |
---|---|---|---|
0 | uint8 | Temel hazırlık durumu | Aşağıdaki değerleri içeren bir bit maskesi:
|
1 - 20 veya 32 | bayt dizisi | Geçerli geçici tanımlayıcı | Cihaz için ayarlanmışsa işaretçi tarafından tanıtılan mevcut kısa ömürlü kimliği belirten 20 veya 32 bayt (kullanılan şifreleme yöntemine bağlı olarak). |
Kimlik doğrulama segmenti, HMAC-SHA256(account key, protocol major version number || the last nonce read
from the characteristic || data ID || data length || additional data || 0x01)
öğesinin ilk 8 baytı olarak tanımlanır.
Geçici kimlik anahtarı ayarlama
Temel hazırlığı yapılmamış bir sağlayıcıyı FMDN işaretçisi olarak temel hazırlamak veya temel hazırlığı yapılmış bir sağlayıcının geçici kimlik anahtarını değiştirmek için arayan, 2. tablodan 0x02 veri kimliğiyle gelen bir istek içeren özelliğe yazma işlemi gerçekleştirir. Sağlayıcı şunları doğrular:
- Sağlanan tek seferlik kimlik doğrulama anahtarı, sahip hesabı anahtarıyla eşleşiyor.
- Geçici bir kimlik anahtarının karması sağlandıysa karma oluşturma işlemi uygulanmış geçici kimlik anahtarı, geçerli geçici kimlik anahtarıyla eşleşir.
- Geçici bir kimlik anahtarının karması sağlanmadıysa Sağlayıcı'nın önceden bir FMDN işaretçisi olarak sağlanmadığını doğrulayın.
Doğrulama başarısız olursa Sağlayıcı, kimliği doğrulanmamış bir hata döndürür.
İşlem başarılı olursa geçici kimlik anahtarı, eşleşen hesap anahtarı kullanılarak AES-ECB-128 ile şifresi çözülerek kurtarılır. Anahtar, cihazda kalmalı ve bu noktadan itibaren Sağlayıcı, FMDN çerçevelerinin reklamını yapmaya başlamalıdır. Yeni geçici kimlik anahtarı, BDE bağlantısı sonlandırıldıktan hemen sonra geçerli olur. Sağlayıcı, 0x02 veri kimliğiyle 6. tablodan bir yanıtla bildirimde bulunur.
Kimlik doğrulama segmenti, HMAC-SHA256(account key, protocol major version number || the last nonce read
from the characteristic || data ID || data length || 0x01)
öğesinin ilk 8 baytı olarak tanımlanır.
Geçici kimlik anahtarını temizleme
Arayıcı, sağlayıcının işaretçi bölümünün temel hazırlığını kaldırmak için özellik üzerinde 0x03 veri kimliği içeren tablo 2'den bir istek içeren bir yazma işlemi gerçekleştirir. Sağlayıcı şunları doğrular:
- Sağlanan tek seferlik kimlik doğrulama anahtarı, sahip hesap anahtarıyla eşleşiyor.
- Karma oluşturma işlemi uygulanmış geçici kimlik anahtarı, mevcut geçici kimlik anahtarıyla eşleşiyor.
Sağlayıcı, FMDN işaretçisi olarak temel hazırlığı yapılmamışsa veya doğrulama başarısız olursa kimliği doğrulanmamış bir hata döndürülür.
İşlem başarılı olursa sağlayıcı anahtarı unutur ve FMDN çerçevelerinin reklamını yapmayı durdurur.
Sağlayıcı, 0x03 veri kimliğine sahip 6. tablodan bir yanıtla bildirimde bulunur.
Kimlik doğrulama segmenti, HMAC-SHA256(account key, protocol major version number || the last nonce read
from the characteristic || data ID || data length || 0x01)
öğesinin ilk 8 baytı olarak tanımlanır.
Geçici kimlik anahtarını kullanıcı izniyle okuma
Anahtar yalnızca Arayan kişi tarafından yerel olarak depolandığından bu seçenek sadece kayıp bir anahtarı kurtarmak için kullanılabilir. Bu nedenle, bu özellik yalnızca cihaz eşleme modundayken veya cihazda fiziksel bir düğmeye basıldıktan (kullanıcı izni anlamına gelir) sınırlı bir süre sonra kullanılabilir.
Arayanın, cleartext anahtarını kurtarabilmesi için kurtarma anahtarını arka uçta depolaması gerekir ancak EIK'nın kendisini depolamaz.
Arayan, EIK'yi okumak için özellik üzerinde, tablo 3'ten gelen ve 0x04 veri kimliğine sahip bir istekten oluşan bir yazma işlemi gerçekleştirir. Sağlayıcı şunları doğrular:
- Karma oluşturma işlemi uygulanmış kurtarma anahtarı, beklenen kurtarma anahtarıyla eşleşiyor.
- Cihaz, EIK kurtarma modunda.
Doğrulama başarısız olursa sağlayıcı, kimlik doğrulanmamış bir hata döndürür.
Cihaz, eşleme modunda değilse Sağlayıcı, Kullanıcı İzni Yok hatası döndürür.
İşlem başarılı olursa Sağlayıcı, 0x04 veri kimliğiyle 6. tablodan bir yanıt göndererek bildirimde bulunur.
Kimlik doğrulama segmenti, HMAC-SHA256(recovery key, protocol major version number || the last nonce read
from the characteristic || data ID || data length || additional data || 0x01)
öğesinin ilk 8 baytı olarak tanımlanır.
Çaldırma işlemi
Arayıcı, 4. tablodan 0x05 veri kimliği içeren bir istek içeren özellik üzerinde yazma işlemi gerçekleştirerek Sağlayıcı'dan ses çalmasını isteyebilir. Sağlayıcı, veri segmentini aşağıdaki şekilde oluşturur:
Sekiz | Veri Türü | Açıklama | Değer |
---|---|---|---|
0 | uint8 | Çalma işlemi | Aşağıdaki değerlere sahip bir bit maskesi:
|
1 - 2 | uint16 | Zaman aşımı | Zaman aşımı (desisaniye cinsinden). Sıfır olmamalı ve 10 dakikaya eşdeğerden fazla olmamalıdır. Sağlayıcı, kendisini susturmadan önce ne kadar süre boyunca çalmasını belirlemek için bu değeri kullanır. Cihazın herhangi bir bileşeni zaten çalıyorsa zaman aşımı, geçerli olan zaman aşımını geçersiz kılar. Çağrı işlemi 0x00 olarak ayarlanırsa zaman aşımı yoksayılır. |
3 | uint8 | Ses |
|
Sağlayıcı, isteği aldıktan sonra şunları doğrular:
- Sağlanan tek seferlik kimlik doğrulama anahtarı, halka anahtarıyla eşleşiyor.
- İstenen durum, zil çalabilen bileşenlerle eşleşiyor.
Sağlayıcı, FMDN işaretçisi olarak temel hazırlığı yapılmamışsa veya doğrulama başarısız olursa kimliği doğrulanmamış bir hata döndürülür. Ancak sağlayıcının istenmeyen izleme koruması etkinse ve istenmeyen izleme koruması isteğini tetikleyen arama çalarken kimlik doğrulamayı atla işareti açıksa sağlayıcı bu kontrolü atlamalıdır. Kimlik doğrulama verilerinin yine de Arayan tarafından sağlanması beklenir ancak bu veriler rastgele bir değere ayarlanabilir.
Çalma sesi başladığında veya sona erdiğinde, tablo 6'da belirtildiği gibi 0x05 veri kimliğiyle bir bildirim gönderilir. Bildirim içeriği aşağıdaki şekilde tanımlanır:
Sekiz | Veri Türü | Açıklama | Değer |
---|---|---|---|
0 | uint8 | Çalma durumu |
|
1 | uint8 | Zili çaldırma bileşenleri | İstekte tanımlandığı şekilde, etkin olarak çalmakta olan bileşenlerin bit maskesi. |
2 - 3 | uint16 | Zaman aşımı | Çalma için kalan süre (desisaniye cinsinden). Cihazın zilinin çalması durduysa 0x0000 döndürülmelidir. |
Kimlik doğrulama segmenti, HMAC-SHA256(ring key, protocol major version number || the nonce used to
initiate the ringing command || data ID || data length || additional data ||
0x01)
öğesinin ilk 8 baytı olarak tanımlanır.
Bir çalma veya durdurma isteği alındığında cihaz zaten istenen zil durumundaysa Sağlayıcı, zil durumu ya da sırasıyla 0x00: Başlatıldı veya 0x04: Durduruldu (GATT isteği) içeren bir bildirim göndermelidir. Bu istek, mevcut durumun parametrelerini geçersiz kılar. Böylece çalma süresi uzatılabilir.
Sağlayıcının fiziksel bir düğmesi varsa (veya dokunma sensörü etkinse) zil sesi etkinken bu düğmeye basıldığında zil sesi işlevi durdurulur.
İşaretçinin zil durumunu alma
Arayıcı, işaretçinin zil çalma durumunu almak için özellik üzerinde bir yazma işlemi gerçekleştirir. Bu işlem, 4. tablodan 0x06 veri kimliği içeren bir istekten oluşur. Sağlayıcı, sağlanan tek seferlik kimlik doğrulama anahtarının halka anahtarıyla eşleşip eşleşmediğini doğrular.
Sağlayıcı, FMDN işaretçisi olarak temel hazırlığı yapılmamışsa veya doğrulama başarısız olursa kimliği doğrulanmamış bir hata döndürür.
İşlem başarılı olursa Sağlayıcı, 6. tabloda 0x06 veri kimliğine sahip bir yanıt göndererek bildirim gönderir. Sağlayıcı, veri segmentini aşağıdaki şekilde oluşturur:
Sekiz | Veri Türü | Açıklama | Değer |
---|---|---|---|
0 | uint8 | Çalma bileşenleri | Çalma isteğinde tanımlandığı şekilde etkin olarak çalan bileşenler. |
1 - 2 | uint16 | Zaman aşımı | Zil sesinde kalan süre (desisaniye cinsinden). Cihaz çalmıyorsa 0x0000 değerinin döndürüleceğini unutmayın. |
Kimlik doğrulama segmenti, HMAC-SHA256 (ring key, protocol major version number || the last nonce read
from the characteristic || data ID || data length || additional data || 0x01)
öğesinin ilk 8 baytı olarak tanımlanır.
İstenmeyen takip koruma modu
İstenmeyen izleme koruma modu, herhangi bir istemcinin sunucu iletişimi olmadan kötüye kullanım amaçlı cihazları tanımlamasına olanak tanır. Sağlayıcı, varsayılan olarak tüm tanımlayıcıları no döndürme bölümünde açıklandığı şekilde döndürmelidir. Cihazımı Bul hizmeti, istenmeyen bir takip koruma modu etkinleştirme isteğini Cihazımı Bul ağı üzerinden iletebilir. Böylece hizmet, Sağlayıcı'nın geçici olarak sabit bir MAC adresi kullanmasına neden olur. Böylece, istemciler cihazı algılayabilir ve kullanıcıyı istenmeyen takip konusunda uyarabilir.
Arayıcı, işaretçinin istenmeyen izleme koruma modunu etkinleştirmek veya devre dışı bırakmak için özellikte sırasıyla 0x07 veya 0x08 veri kimliğine sahip 5. tablodan gelen bir istek içeren bir yazma işlemi gerçekleştirir.
İstenmeyen Takip Koruması modu etkinleştirildiğinde
Sağlayıcı, veri segmentini aşağıdaki şekilde oluşturur:
Sekiz | Veri Türü | Açıklama | Değer |
---|---|---|---|
0 | uint8 | Kontrol işaretleri |
İşaretler yalnızca istenmeyen izleme koruma modu devre dışı bırakılana kadar geçerlidir. |
Sağlayıcı, sağlanan tek kullanımlık kimlik doğrulama anahtarının istenmeyen izleme koruma anahtarıyla eşleşip eşleşmediğini doğrular. Sağlayıcı, FMDN işaretçisi olarak temel hazırlığı yapılmamışsa veya doğrulama başarısız olursa kimliği doğrulanmamış bir hata döndürülür.
İstenmeyen izleme koruması modu etkinleştirildiğinde, işaretçi MAC özel adresi rotasyon sıklığını 24 saatte bire düşürmelidir. Reklamı yapılan geçici tanımlayıcı her zamanki gibi dönmeye devam eder. Çerçeve türü 0x41 olarak ayarlanmalıdır. Durum, karma oluşturma işlemi uygulanmış işaretler bölümünde de gösterilir.
İstenmeyen Takip Koruması modu devre dışı bırakıldığında
Sağlayıcı şunları doğrular:
- Sağlanan tek seferlik kimlik doğrulama anahtarı, istenmeyen izleme koruma anahtarıyla eşleşiyor.
- Karma oluşturma işlemi uygulanmış geçici kimlik anahtarı, mevcut geçici kimlik anahtarıyla eşleşiyor.
Sağlayıcı, FMDN işaretçisi olarak sağlanmazsa veya doğrulama başarısız olursa Sağlayıcı, kimliği doğrulanmamış bir hata döndürür.
İstenmeyen izleme koruması modu devre dışı bırakıldığında, işaretçi MAC adresini geçici tanımlayıcı rotasyonuyla senkronize olarak tekrar normal hızda döndürmeye başlar. Çerçeve türü tekrar 0x40 olarak ayarlanmalıdır. Eyalet, karma hale getirilmiş işaretler bölümünde de gösterilir.
Başarılı olduğunda Sağlayıcı, 6. tablodan 0x07 veya 0x08 veri kimliğine sahip bir yanıtla bildirimde bulunur.
Kimlik doğrulama segmenti, HMAC-SHA256(unwanted tracking protection key, protocol major version number ||
the last nonce read from the characteristic || data ID || data length ||
0x01)
öğesinin ilk 8 baytı olarak tanımlanır.
Reklam çerçeveleri
Sağlayıcının, temel hazırlığı yaptıktan sonra FMDN çerçevelerinin reklamını en az 2 saniyede bir yapması beklenir. Hızlı Eşleme çerçevelerinin reklamı yapılıyorsa Sağlayıcı, FMDN çerçevelerini normal Hızlı Eşleme reklamları arasına yerleştirmelidir. Örneğin, sağlayıcı her iki saniyede bir yedi Fast Pair reklamı ve bir FMDN reklamı yayınlamalıdır.
FMDN çerçevesi, kitle kaynaklı ağda katkıda bulunan herhangi bir destekleyici istemci tarafından konum raporlarını şifrelemek için kullanılan bir herkese açık anahtar içerir. İki tür eliptik eğri anahtarı vardır: eski BLE 4 çerçevelerine uyan 160 bitlik bir anahtar veya genişletilmiş reklamcılık özellikleriyle BLE 5 gerektiren 256 bitlik bir anahtar. Hangi eğrin kullanılacağını sağlayıcının uygulaması belirler.
Bir FMDN çerçevesi aşağıdaki gibi yapılandırılır.
Sekiz | Değer | Açıklama |
---|---|---|
0 | 0x02 | Uzunluk |
1 | 0x01 | İşaret veri türü değeri |
2 | 0x06 | İşaretleme verileri |
3 | 0x18 veya 0x19 | Uzunluk |
4 | 0x16 | Hizmet verisi veri türü değeri |
5 | 0xAA | 16 bit hizmet UUID'si |
6 | 0xFE | ... |
7 | 0x40 veya 0x41 | İstenmeyen izleme koruması modu göstergesine sahip FMDN çerçeve türü |
8..27 | 20 baytlık geçici tanımlayıcı | |
28 | Karma oluşturma işaretleri |
Tablo 8: 160 bit eğriyi destekleyen FMDN çerçevesi.
Tablo 9'da, 256 bitlik bir eğrinin bayt ofsetleri ve değerleri gösterilmektedir.
Octet | Değer | Açıklama |
---|---|---|
0 | 0x02 | Uzunluk |
1 | 0x01 | İşaret veri türü değeri |
2 | 0x06 | İşaretleme verileri |
3 | 0x24 veya 0x25 | Uzunluk |
4 | 0x16 | Hizmet verisi veri türü değeri |
5 | 0xAA | 16 bit hizmet UUID'si |
6 | 0xFE | ... |
7 | 0x40 veya 0x41 | İstenmeyen izleme koruması modu göstergesine sahip FMDN çerçeve türü |
8..39 | 32 baytlık geçici tanımlayıcı | |
40 | Karma oluşturma işlemi uygulanmış işaretler |
Tablo 9: 256 bit eğriyi destekleyen FMDN çerçevesi.
Geçici tanımlayıcı (EID) hesaplaması
Aşağıdaki veri yapısını geçici kimlik anahtarıyla AES-ECB-256 ile şifreleyerek rastgele bir değer oluşturulur:
Sekiz | Alan | Açıklama |
---|---|---|
0 - 10 | Dolgu | Değer = 0xFF |
11 | K | Rotasyon süresi üssü |
12 - 15 | TS[0]...TS[3] | 32 bit büyük endian biçiminde işaretçi zaman sayacı. K en düşük bitleri temizlenir. |
16 - 26 | Dolgu | Değer = 0x00 |
27 | K | Rotasyon süresi üssü |
28 - 31 | TS[0]...TS[3] | 32 bit büyük endian biçiminde işaretçi zaman sayacı. K en düşük bitleri temizlenir. |
Tablo 10: Sanal rasgele sayı oluşturma.
Bu hesaplamanın sonucu, r'
ile gösterilen 256 bitlik bir sayıdır.
Hesaplamanın geri kalanında elips biçimli eğri şifreleme işlemleri için SECP160R1
veya SECP256R1
kullanılır. Eğri tanımlarını görmek için
SEC 2: Önerilen Eliptik Eğri Alan Parametreleri bölümüne bakın. Bu bölüm, daha sonra referans verilen Fp
, n
ve G
değerlerini tanımlar.
r'
, r = r' mod n
hesaplanarak sonlu alan Fp
'a yansıtılır.
Son olarak, kullanılan genel anahtarı temsil eden eğri üzerindeki bir nokta olan R = r * G
değerini hesaplayın. İşaretçi, geçici tanımlayıcısı olarak R
'nin x
koordinatı olan Rx
'nin reklamını yapar.
Karma oluşturma işlemi uygulanmış işaretler
Karma oluşturma işlemi uygulanmış işaretler alanı aşağıdaki gibi hesaplanır (bitlere en anlamlıdan en az anlamlıya doğru referans verilir):
- 0-4 bitleri: Ayrılmış (sıfır olarak ayarlanır).
- 5-6 arasındaki bitler cihazın pil seviyesini aşağıdaki gibi gösterir:
- 00: Pil seviyesi göstergesi desteklenmiyor
- 01: Normal pil seviyesi
- 10: Düşük pil seviyesi
- 11: Pil seviyesi çok düşük (pilin yakında değiştirilmesi gerekiyor)
- İşaretçi istenmeyen izleme koruması modundaysa Bit 7 1'e, aksi takdirde 0'a ayarlanır.
Bu baytın nihai değerini üretmek için en az anlamlı SHA256(r)
baytı ile karşılaştırılır.
r değerinin eğrinin boyutuyla uyumlu olması gerektiğini unutmayın. Temsil değeri 160 veya 256 bitten kısaysa en önemli bitleri sıfır olarak ekleyin. 160 veya 256 bitten büyükse en önemli bitlerin kısaltılması gerekir.
İşaretçi, pil seviyesi göstergesini desteklemiyorsa ve istenmeyen izleme koruması modunda değilse bu baytın reklamdan tamamen çıkarılmasına izin verilir.
EID ile şifreleme
Bir ziyaretçi (işaretçiden Rx
okumuş) bir m
mesajını şifrelemek için şunları yapar:
- EID hesaplaması bölümünde tanımlandığı gibi,
Fp
içinde rastgele bir sayıs
seçin. S = s * G
işlem.- Eğri denkleminde değiştirme işlemi yaparak ve olası sonuçlar arasından rastgele bir
Ry
değeri seçerekR = (Rx, Ry)
değerini hesaplayın. - Eğri çarpım sonucunun
x
koordinatı(s * R)x
olan 256 bit AES anahtarık = HKDF-SHA256((s * R)x)
'ü hesaplayın. Tuz belirtilmemiş. URx
veLRx
, büyük endian biçiminde sırasıylaRx
'nin üst ve alt 80 biti olsun. Benzer şekilde,S
içinUSx
veLSx
değerlerini tanımlayın.nonce = LRx || LSx
değerini hesaplayın.(m’, tag) = AES-EAX-256-ENC(k, nonce, m)
değerini hesaplayın.- Muhtemelen güvenilmeyen bir uzak hizmet üzerinden
(URx, Sx, m’, tag)
öğesini sahibine gönderin.
EID ile şifrelenmiş değerlerin şifresini çözme
EIK'ye ve rotasyon süresi üssüne sahip olan sahibin istemcisi, mesajın şifresini şu şekilde çözer:
URx
verildiğinde,URx
'ün temel aldığı işaretçi zaman sayacı değerini alın. Bu işlem, sahibin istemcisi tarafından yakın geçmiş ve yakın gelecek için işaretçi zaman sayıcı değerlerine göreRx
değerleri hesaplanarak yapılabilir.URx
değerinin temel aldığı işaretçi zaman sayacı değeri verildiğinde, EID hesaplaması bölümünde tanımlandığı şekilder
değerinin beklenen değerini hesaplayın.R = r * G
değerini hesaplayın ve gören kişi tarafından sağlananURx
değerinin eşleştiğini doğrulayın.- Eğri denkleminde değiştirme işlemi yaparak ve olası sonuçlar arasından rastgele bir
Sy
değeri seçerekS = (Sx, Sy)
değerini hesaplayın. (r * S)x
, eğri çarpım sonucununx
koordinatı olduğuk = HKDF-SHA256((r * S)x)
değerini hesaplayın.nonce = LRx || LSx
işlem.m = AES-EAX-256-DEC(k, nonce, m’, tag)
değerini hesaplayın.
Kimlik rotasyonu
Reklam amaçlı FMDN çerçeveleri için çözülebilir (RPA) veya çözülemez (NRPA) bir BLE adresi kullanılmalıdır. RPA, LE Audio (LEA) cihazlar için gereklidir ve bağlama kullanmayan bulucu etiketleri hariç diğer cihazlar için önerilir.
Hızlı Eşleme reklamı, FMDN reklamı ve ilgili BDE adresleri aynı anda döndürülmelidir. Dönüşüm ortalama 1024 saniyede bir gerçekleşmelidir. İşaretçinin yeni tanımlayıcıyı tanıtmaya başladığı tam nokta, pencere içinde rastgele hale getirilmelidir.
Rotasyon süresini rastgele ayarlamak için önerilen yaklaşım, bir sonraki tahmini rotasyon süresine (rastgele ayar uygulanmadıysa) artı 1 ila 204 saniye aralığında pozitif bir rastgele zaman faktörüne ayarlamaktır.
Cihaz istenmeyen takip koruma modundayken FMDN reklamının BLE adresi sabitlenmelidir ancak FP'nin bulunamayan reklamı (ör. Hızlı Eşleme) için RPA dönmeye devam etmelidir. Farklı protokoller için farklı adresler kullanılması kabul edilebilir.
Güç kaybından kurtarma
Geçici tanımlayıcının çözülmesi, reklamın yayınlandığı sıradaki saat değerine bağlıdır. Bu nedenle, güç kaybı yaşanırsa sağlayıcının saat değerini kurtarabilmesi önemlidir. Sağlayıcının mevcut saat değerini en az günde bir kez kalıcı olmayan belleğe yazması ve önyükleme sırasında, başlatılacak bir değer olup olmadığını görmek için NVM'yi kontrol etmesi önerilir. Geçici tanımlayıcının çözümleyicileri, hem makul saat kaymasına hem de bu tür güç kaybı kurtarma işlemlerine izin verecek yeterli bir zaman aralığında çözüm uygular.
Çözüm zaman aralığı sınırlı olduğundan sağlayıcılar, saat kaymalarını en aza indirmek için tüm çabaları göstermeye devam etmelidir. En az bir ek saat senkronizasyon yöntemi uygulanmalıdır (bulunamayan Hızlı Eşleme çerçeveleri reklamı veya mesaj akışı'nın uygulanması).
Hızlı Eşleme uygulama yönergeleri
Bu bölümde, FMDN'yi destekleyen sağlayıcılarda Hızlı Eşleme uygulamasının özel yönleri açıklanmaktadır.
Konum etiketine özel yönergeler
- Sağlayıcı eşlendiyse ancak FMDN'nin temel hazırlığı 5 dakika içinde yapılmadıysa (veya cihaz eşlendiğinde ancak FMDN'nin temel hazırlığı yapılmamışken OTA güncellemesi uygulandıysa) Sağlayıcı, fabrika yapılandırmasına geri dönmeli ve depolanan hesap anahtarlarını temizlemelidir.
- Sağlayıcı eşlendikten sonra FMDN sağlanana kadar veya 5 dakika geçene kadar MAC adresini değiştirmemelidir.
- Geçici kimlik anahtarı cihazdan temizlenirse cihazın fabrika ayarlarına sıfırlanması ve saklanan hesap anahtarlarını da temizlemesi gerekir.
- Sağlayıcı, normal Bluetooth eşleme denemelerini reddetmeli ve yalnızca Hızlı Eşleme eşlemeyi kabul etmelidir.
- Sağlayıcı, kullanıcıların cihazı fabrika ayarlarına sıfırlamadan reklamları geçici olarak durdurmasına olanak tanıyan bir mekanizma (ör. bir düğme kombinasyonuna basma) içermelidir.
- Güç kaybından sonra cihaz, işaretçi parametrelerini oku işlevi bir sonraki kez çağrılana kadar bulunamayan Hızlı Eşleme çerçevelerinin reklamını yapmalıdır. Bu sayede, önemli bir saat kayması olsa bile bulucu cihazı algılayabilir ve saati senkronize edebilir.
- Keşfedilebilir olmayan Hızlı Eşleme çerçevelerinin reklamı yapılırken kullanıcı arayüzü göstergeleri etkinleştirilmemelidir.
- Sağlayıcının FMDN için temel hazırlığı yapılırken keşfedilebilir Hızlı Eşleme çerçevelerinin reklamı yapılmamalıdır.
- Sağlayıcı, tanımlayıcı bilgi bilgilerini kimliği doğrulanmamış bir şekilde (ör. adlar veya tanımlayıcılar) ifşa etmemelidir.
Klasik Bluetooth cihazlara özel yönergeler
Bu bölümde, FMDN'yi destekleyen klasik Bluetooth cihazların özel özellikleri açıklanmaktadır.
Halihazırda eşlenmiş cihazların FMDN temel hazırlığı
Sağlayıcı, arayanla eşlenirken her zaman FMDN için provizyon almaz, ancak bundan bir süre sonra alır. Bu durumda, sağlayıcının GATT bağlantısı kurmak için gereken güncel bir BLE MAC adresi olmayabilir. Sağlayıcı, arayan cihazın eşlenmiş durumdayken BLE adresini alabilmesi için aşağıdaki yöntemlerden en az birini desteklemelidir:
- Sağlayıcı, Arayan'ın BLE taraması aracılığıyla BLE adresini bulmasına olanak tanıyan Hızlı Eşleme hesap verilerinin reklamını düzenli olarak yapabilir.
Bu yaklaşım, mesaj akışını uygulamayan sağlayıcılar için uygundur. - Sağlayıcı, bu veriyi klasik Bluetooth üzerinden Hızlı Eşleme mesaj akışı üzerinden sağlayabilir.
Bu yaklaşım, Bluetooth üzerinden Arayan'a bağlıyken Hızlı Eşleme çerçevelerinin reklamını yapmayan Sağlayıcılar için uygundur.
Her iki yaklaşımı da desteklemek, kullanıcının cihazı FMDN için temel hazırlığı yapma olasılığını artırır.
Hızlı Eşleme mesaj akışı
Sağlayıcı, Hızlı Eşleme mesaj akışını uygulayabilir ve bu mesaj akışını kullanarak cihaz bilgileri hakkında Arayan'ı bilgilendirebilir. Mesaj akışı uygulandığında bu bölümde açıklanan belirli özellikler etkinleştirilir.
Sağlayıcı, mesaj akışı RFCOMM kanalı her oluşturulduğunda cihaz bilgisi mesajı göndermelidir.
Donanım yazılımı sürümü (cihaz bilgileri kodu 0x09) ve izleme özelliği
Bir donanım yazılımı güncellemesi, Sağlayıcı'ya FMDN desteğini eklediğinde, bağlı bir arayan, kullanıcıyı bu konuda bilgilendirebilir ve bunu sağlamayı teklif edebilir. Aksi takdirde, FMDN temel hazırlığını başlatmak için kullanıcının Bluetooth cihaz listesine manuel olarak gitmesi gerekir.
Buna izin vermek için sağlayıcı, donanım yazılımı sürümünü temsil eden bir dize değeri bildirmek üzere Donanım yazılımı sürümü özelliğini (kod 0x09) kullanmalıdır. Ayrıca, Sağlayıcı, Arayan'ın donanım yazılımı güncellemeleri nedeniyle özellik değişiklikleri hakkında bilgi sahibi olmasını sağlayan protokolü desteklemelidir.
Octet | Veri Türü | Açıklama | Değer |
---|---|---|---|
0 | uint8 | Cihaz bilgileri etkinliği | 0x03 |
1 | uint8 | Donanım yazılımı sürümü | 0x09 |
2 - 3 | uint16 | Ek veri uzunluğu | değişir |
var | bayt dizisi | Sürüm dizesi | değişir |
Tablo 11: Cihaz bilgileri etkinliği: güncellenmiş donanım yazılımı sürümü.
Sağlayıcı, özellik güncelleme isteği (0x0601) aldıktan sonra FMDN izleme desteğini etkinleştirdiyse tablo 12'de gösterildiği gibi yanıt vermelidir.
Octet | Veri Türü | Açıklama | Değer |
---|---|---|---|
0 | uint8 | Cihaz işlevi senkronizasyon etkinliği | 0x06 |
1 | uint8 | FMDN izleme | 0x03 |
2 - 3 | uint16 | Ek veri uzunluğu | 0x0007 |
4 | uint8 | FMDN temel hazırlık durumu | Hazırlanmadıysa 0x00, herhangi bir hesap tarafından hazırlandıysa 0x01 |
5 - 10 | bayt dizisi | Cihazın mevcut BLE MAC adresi | değişir |
Tablo 12: Cihaz özellikleri senkronizasyon etkinliği: Ek izleme özelliği.
Mevcut geçici tanımlayıcı (cihaz bilgileri kodu 0x0B)
Sağlayıcı, FMDN için temel hazırlığı yapıldığında geçerli EID'yi ve saat değerini bildirmek için geçerli geçici tanımlayıcıyı (kod 0x0B) kullanabilir. Bu, saat kayması (ör. pilin bitmesi nedeniyle) durumunda Aramayı yapan cihazı senkronize etmek için kullanılır. Aksi takdirde, Arayan kişi bu amaç için daha pahalı ve daha az güvenilir bir bağlantı başlatır.
Octet | Veri Türü | Açıklama | Değer |
---|---|---|---|
0 | uint8 | Cihaz bilgileri etkinliği | 0x03 |
1 | uint8 | Mevcut geçici tanımlayıcı | 0x0B |
2 - 3 | uint16 | Ek veri uzunluğu | 0x0018 veya 0x0024 |
4 - 7 | bayt dizisi | Saat değeri | Örnek: 0x13F9EA80 |
8 - 19 veya 31 | bayt dizisi | Mevcut EID | Örnek: 0x1122334455667788990011223344556677889900 |
Tablo 13: Cihaz bilgileri etkinliği: saat senkronizasyonu.
Fabrika ayarlarına sıfırla
Fabrika ayarlarına sıfırlamayı destekleyen cihazlar için: Fabrika ayarlarına sıfırlama işlemi yapılırsa sağlayıcı, işaretçi göndermeyi durdurmalı ve geçici kimlik anahtarını ve sahibin hesap anahtarı da dahil olmak üzere depolanan tüm hesap anahtarlarını silmelidir.
Fabrika ayarlarına sıfırlandıktan (manuel veya programatik olarak) sonra Sağlayıcı, eşleme akışının kullanıcı cihazı sildikten hemen sonra başlamasını önlemek için Hızlı Eşleme'nin reklamını hemen başlatmamalıdır.
İstenmeyen takip önleme
Sertifikalandırılmış FMDN cihazlar, İstenmeyen Konum İzleyicileri Tespit Etme (DULT) için platformlar arası spesifikasyonun uygulama sürümündeki gereksinimleri de karşılamalıdır.
DULT spesifikasyonuna uygun olması için FMDN'ye özel ilgili yönergeler:
- FMDN uyumlu tüm cihazlar Yakındaki Cihaz Konsolu'na kayıtlı olmalı ve "Cihazımı Bul" özelliği etkinleştirilmiş olmalıdır.
- Cihaz, Aksesuar Bilgileri işlemleri ve Sahip olmayan kontrolleri de dahil olmak üzere DULT spesifikasyonunun uygulama sürümünde tanımlanan Aksesuar Sahibi Olmayan hizmeti ve özelliğini uygulamalıdır.
- DULT spesifikasyonunda tanımlandığı gibi, geriye dönük uyumluluk döneminde bu belgede tanımlanan reklam çerçevesinde herhangi bir değişiklik yapılmaz.
- Bu belgede tanımlanan "istenmeyen izleme koruması modu", DULT spesifikasyonu tarafından tanımlanan "ayrı durumda" ile eşlenir.
- Aksesuar Bilgileri işlev kodlarını uygulamayla ilgili kurallar:
- Get_Product_Data, konsol tarafından sağlanan model kimliğini 8 baytlık koşula uyacak şekilde sıfırla doldurarak döndürmelidir. Örneğin, model kimliği 0xFFFFFF, 0x0000000000FFFFFF olarak döndürülür.
- Get_Manufacturer_Name ve Get_Model_Name, konsolda sağlanan değerlerle eşleşmelidir.
- Get_Accessory_Category, cihazın türüne daha uygun başka bir kategori yoksa genel "Konum İzleyici" değerini döndürebilir.
- Get_Accessory_Capabilities, zil sesi ve BLE tanımlayıcı araması desteğini belirtmelidir.
- Get_Network_ID, Google'ın tanımlayıcısını (0x02) döndürmelidir.
- Get_Identifier işlev kodunu uygulamayla ilgili kurallar:
- İşlem, kullanıcı "tanımlama" modunu etkinleştirdikten sonra yalnızca 5 dakika boyunca geçerli bir yanıt döndürmelidir. Bu mod için düğmelere basmak gerekir. Sağlayıcının bu moda girdiği, kullanıcıya görsel veya işitsel bir sinyal ile belirtilmelidir. Bu modu etkinleştirmeye yönelik modele özel talimatlar, sertifika şartı olarak Google'a sağlanmalı ve talimatlarda yapılacak güncelleme veya değişiklikten en az 10 gün önce gönderilmelidir.
- Yanıt şu şekilde oluşturulur: mevcut geçici tanımlayıcının ilk 10 baytı, ardından
HMAC-SHA256(recovery key, the truncated current ephemeral identifier)
öğesinin ilk 8 baytı.
- NFC üzerinden tanımlayıcı uygulamayla ilgili kurallar:
- URL olarak
find-my.googleapis.com/lookup
kullanın. e
parametresi olarak, Get_Identifier için oluşturulan ve onaltılık kodlanmış aynı yanıtı kullanın.pid
parametresi olarak, Get_Product_Data için oluşturulan, onaltılık kodlanmış yanıtı kullanın.
- URL olarak
- Sound_Start kod komutunu uygulamayla ilgili yönergeler:
- Komutun, kullanılabilir tüm bileşenlerde çalma işlemini tetiklemesi gerekir.
- Desteklenen en yüksek hacim kullanılmalıdır.
- Zil çalma için önerilen süre 12 saniyedir.
- Konum belirleyici etiketler, kullanıcıların cihazı fabrika ayarlarına sıfırlamadan reklamları geçici olarak durdurmasına olanak tanıyan bir mekanizma içermelidir (ör. bir düğme kombinasyonuna basma).
- Devre dışı bırakma talimatları, herkese açık bir URL'de belgelenmelidir ve sertifika şartı olarak Google'a sağlanmalıdır. Ayrıca, talimatlarda herhangi bir güncelleme veya değişiklik yapılmadan en az 10 gün önce sağlanmalıdır.
- URL, yerelleştirmeyi desteklemelidir. İstemciye bağlı olarak dil, bir sorgu parametresi ("hl=tr") olarak veya "accept-language" HTTP başlığı kullanılarak sağlanır.
Değiştirilebilir protokol kuralları
- Aynı anda yalnızca bir protokol kullanılmalıdır. Cihazda aynı anda birden fazla ağın çalışamayacağından emin olun. Bu şart, farklı protokoller arasında hassas kullanıcı verilerinin karıştırılmamasını sağlamak için gereklidir.
- Cihazın, kullanıcının cihazı farklı bir ağla yeniden kurmasına olanak tanıyan bir sert sıfırlama iş akışı içermesi önerilir.
- Bir cihazı ağa güncelleme işlemi, kullanıcı dostu ve ağlar arasında eşit olmalıdır. Kullanıcı, ağlardan birini tercih etmeden kullanmak istediği ağı seçebilmelidir. Bu akış, Google ekibi tarafından onaylanmalıdır.
Donanım yazılımı güncellemeleri
OTA güncellemelerinin süreci ve dağıtımı, iş ortağı tarafından kendi mobil veya web uygulaması iş akışını kullanarak yönetilmelidir.
Uyumluluk
Cihazımı Bul ağını kullanmak için Konum Hizmetleri'nin ve Bluetooth'un açık olması gerekir. Hücresel servis veya internet bağlantısı gerekir. Android 9 ve sonraki sürümlerde, yaşı uygun kullanıcılar için belirli ülkelerde çalışır.
Değişiklik günlüğü
FMDN Sürümü | Tarih | Yorum |
---|---|---|
v1 | Erken erişim için FMDN spesifikasyonunun ilk sürümü. | |
v1.1 | Feb 2023 |
|
v1.2 | Nisan 2023 |
|
v1.3 | Aralık 2023 |
|