Hedef Kitle: Bu makale; okul bölgelerindeki ve bakanlıklardaki gizlilik sorumluları, BT mimarları, filo sağlık panolarını entegre eden OEM ortakları ile AB, ABD, Körfez ve Latin Amerika'daki alıcılara “kalem fabrikaya ne bildiriyor?” sorusunu yanıtlamak zorunda olan B2B ithalatçılar için hazırlanmıştır. GDPR ve COPPA'yı kavramsal düzeyde anladığınız varsayılmakla birlikte, B1/B2/F8/K7/KF1/L5/P2/Q6/Q8/T2/Y6 kalemlerden hangi olay sınıflarının ayrıldığı, hangilerinin anonimleştirildiği, hangilerinin opt-in olduğu ve hangilerinin hiç iletilmediği tam olarak bilinmek istenmektedir.
Geçen çeyrekte 12.000 kalem satın alan bir İspanyol okul kooperatifi, uyumluluk ekibimize şu kesin soruyu yöneltmişti: "GDPR Madde 25 kapsamında cihazdan hangi veriler çıkar, hangi veriler cihazda kalır ve bir veli garanti kapsamını kaybetmeden vazgeçebilir mi?" Dürüst yanıt 23 sayfa tutuyor. Burada yayımladığımız kısa yanıt ise şudur: telemetri olayları AB'de varsayılan olarak opt-out, ABD'de COPPA kapsamında varsayılan olarak opt-in, Suudi Arabistan'da SFDA kapsamında varsayılan olarak opt-in ve OEM özel barındırmalı filolar için varsayılan olarak hiç açılmaz. Aşağıda bu politikaların mühendislik altyapısı yer almaktadır.
Bu makale; cihaz üzerindeki log halka tamponunu, olay şemasını, anonimleştirme hattını, yükleme zamanlamasını, GDPR/COPPA/PIPL/LGPD duruşunu, üst sahnenin (dashboard) sunduğu filo sağlık metriklerini ve 47 ülkedeki 47.000'den fazla kalemde telemetrinin işletilme maliyetini kapsar.
1. Cihaz Üzerindeki Log Halka Tamponu
Her kalemde kullanıcı verileri bölümünde 512 KB'lık bir halka tampon bulunur. Tampon yalnızca ekleme (append-only) yapısındadır, zamana göre indekslenir ve fabrika sıfırlamasından sonra yalnızca velinin “tanılama loglarını koru” seçeneğini seçmesi durumunda kalır — kurumsal dağıtımlarda bu seçenek varsayılan olarak açıktır, perakende satışlarda ise varsayılan olarak kapalıdır.
1.1 Modele Göre Tampon Parametreleri
| Model | Bölüm | Tampon boyutu | Olay kaydı | Saklama (gün) |
|---|---|---|---|---|
| B1 | User-data NOR | 256 KB | 2.800 | 14 |
| B2 | User-data NOR | 256 KB | 2.800 | 14 |
| F8 | User-data NAND | 512 KB | 5.600 | 21 |
| K7 / KF1 | User-data NAND | 512 KB | 5.600 | 21 |
| L5 | User-data NAND | 1 MB | 11.200 | 30 |
| P2 | User-data NOR | 256 KB | 2.800 | 14 |
| Q6 / Q8 | User-data NAND | 1 MB | 11.200 | 30 |
| T2 / Y6 | User-data NAND | 2 MB | 22.400 | 45 |
Tampon, en yüksek hacimli olay sınıfını (app.evt) modele bağlı olarak 14–45 gün tutacak şekilde boyutlandırılmıştır. Tampon sarmal yapıdadır: en eski olaylar ilk olarak silinir.
1.2 Olay Şeması
Her kayıt; 1 byte tür, 4 byte zaman damgası, 2 byte şema sürümü ve 89 byte türe özgü yükten oluşan sabit 96 byte'lık bir yapıdır.
struct telemetry_event_t {
uint8_t type; // 0x01..0x2C
uint32_t timestamp; // açılıştan itibaren geçen saniye
uint16_t schema_ver; // örn., 0x0007
uint8_t severity; // 0..3 (bilgi, uyarı, hata, kritik)
uint8_t reserved;
uint8_t payload[80];
uint16_t crc; // CRC-16-CCITT
uint8_t sig_pad[6]; // reserved for Ed25519 short sig
} __attribute__((packed));
Yük, türe özgüdür. Bir boot.end olayı bir uint32 önyükleme süresi taşır; bir oid.lookup olayı bir uint16 gecikme ve bir uint16 sözlük sayfası kovası taşır; bir app.crash olayı 64 baytlık bir yığın parmak izi karması taşır.
2. Olay Sınıfları
44 olay sınıfı tanımlıyoruz. Tümü yüklenmez. Sınıflandırma şu şekildedir: LOCAL (asla yüklenmez), TELEMETRY (yüklenir, anonimleştirilir) veya SUPPORT (yalnızca açık kullanıcı onayıyla yüklenir).
| Sınıf | Sayı | Varsayılan yaklaşım | Örnek |
|---|---|---|---|
| Yalnızca yerel | 18 | LOCAL | key.press, book.open, app.locale |
| Telemetri (anonimleştirilmiş) | 19 | TELEMETRY | boot.end, oid.lookup, pwr.drain, fw.update |
| Destek (isteğe bağlı) | 7 | SUPPORT | voice.clip, asr.utterance, dict.override |
18 LOCAL olayı cihazda kalır ve yalnızca uygulama içi özellikler için kullanılır, örneğin "bıraktığınız yerden devam edin." 19 TELEMETRY olayı Wi-Fi üzerinden toplu olarak yüklenir. 7 SUPPORT olayı yalnızca ebeveyn veya filo yöneticisi destek modunu açıkça etkinleştirdiğinde yüklenir.
3. Anonimleştirme Kuralları
Her TELEMETRY olayı, yüklemeden önce 4 aşamalı bir anonimleştirme hattından geçer. Hat cihaz üzerinde çalışır ve bootloader tarafından uygulanır; ele geçirilmiş bir uygulama bile bunu atlayamaz.
- Tanımlayıcıları ayıkla — Cihaz seri numarası, her önyüklemede dönen bir salt ile değiştirilir. Salt, her soğuk önyüklemede yeniden üretilen 128 bitlik rastgele bir değerdir.
- Değerleri kovalara ayır — Gecikmeler en yakın 10 ms'ye yuvarlanır. Pil seviyeleri en yakın %5'e yuvarlanır. Sözlük sorguları CEFR seviyelerine göre kovalara ayrılır.
- Parmak izlerini hash'le — Yığın izleri filo başına bir salt ile hash'lenir. Salt aylık olarak döndürülür ve hiçbir zaman yüklenmez.
- Kaynakta topla — Tekil olaylar cihaz üzerinde 15 dakikalık pencerelerde toplanır. Cihaz, 30 ayrı olay yerine pencere başına bir kayıt yükler.
Toplanan kayıt şunları içerir: pencere zaman damgası, filo kimliği (OEM alt anahtarının 32 bitlik karması), model, firmware sürümü, bölge kodu ve 6 metrik sayacı. Cihaz seri numarası, ebeveyn adı, çocuk adı veya çocuğun dokunduğu herhangi bir içerik kayıtta yer almaz.
4. Yükleme Programı ve Toplu Gönderim
Yüklemeler yalnızca Wi-Fi üzerinden yapılır, hiçbir zaman hücresel ağ üzerinden değil (cihazda hücresel modem bulunmamaktadır). Varsayılan program:
| Koşul | Davranış |
|---|---|
| Wi-Fi bağlı, boşta >5 dk | Bekleyen toplu yüklemeyi gönder |
| Pil <%20 | Yüklemeyi ertele |
| Batarya <%10 | Yüklemeyi iptal et, toplu veriyi yerel olarak sakla |
| Şarj cihazı bağlı, herhangi bir batarya seviyesi | Hemen yükle |
| Filoların yöneticisi tarafından zorla yükleme | Durumdan bağımsız olarak şimdi yükle |
Tipik bir kalem günde 1–3 toplu kayıt yükler; bu da toplamda 18–54 KB eder. 12.000 kalemlik bir filo için bir okul haftasında yükleme hacmi haftalık 1,6–4,8 GB olur ve bu tek bir kurumsal genişbant hattına rahatça sığar.
5. GDPR / COPPA / PIPL / LGPD Uyum
Varsayılan telemetri davranışı yargı bölgesine göre değişir. Fabrika, varsayılanı ürünün sevkiyat varış noktasındaki düzenlemelere göre ayarlar.
| Yargı yetkisi | Varsayılan telemetri | Varsayılan destek | Devre dışı bırakma mekanizması |
|---|---|---|---|
| AB (GDPR) | OPT-OUT | KAPALI | Ayarlar → Gizlilik → Telemetri |
| BK (GDPR + DPA) | OPT-OUT | KAPALI | Ayarlar → Gizlilik → Telemetri |
| ABD (COPPA, 13 yaş altı) | OPT-IN | KAPALI | İlk açılış sihirbazı |
| ABD (13+, eyalet yasaları) | OPT-OUT | KAPALI | Ayarlar → Gizlilik → Telemetri |
| Suudi Arabistan (SFDA, PTA) | OPT-IN | KAPALI | İlk açılış sihirbazı + PTA portalı |
| BAE (TDRA) | OPT-IN | KAPALI | İlk açılış sihirbazı + TDRA portalı |
| Çin (PIPL) | OPT-IN | KAPALI | İlk açılış sihirbazı + PIPL onayı |
| Brezilya (LGPD) | OPT-OUT | KAPALI | Ayarlar → Gizlilik → Telemetri |
| Meksika (LFPDPPP) | OPT-OUT | KAPALI | Ayarlar → Gizlilik → Telemetri |
| Diğer tüm bölgeler | OPT-OUT | KAPALI | Ayarlar → Gizlilik → Telemetri |
Her yargı bölgesinde, veli veya filo yöneticisi; garanti kapsamını, OTA güncellemelerine erişimi veya destek erişimini kaybetmeden telemetriyi devre dışı bırakabilir. Devre dışı bırakılan tek özellik, çalışması için toplu telemetri verisine ihtiyaç duyan filo sağlık panosudur.
6. Filo Sağlık Metrikleri Panosu
OEM iş ortakları ve büyük filo işletmecileri için telemetri panosu filo düzeyinde 9 metrik sunar. Hiçbir metrik tek bir cihaz seri numarasına kadar indirilemez.
| Metrik | Tanım | Kullanım |
|---|---|---|
| Günlük aktif kullanım oranı | (≥1 önyükleme yapan kalemler / 24 saat) / (filo boyutu) | Etkileşim |
| Çökmesiz oturumlar | (işlenmemiş hatasız oturumlar) / (oturumlar) | Kararlılık |
| OID arama p95 | OID'den telaffuza 95. yüzdelik dilim | Performans |
| Pil sağlığı | Orijinal kapasitesinin <%80'ini raporlayan kalemler | Donanım yaşam döngüsü |
| OTA benimseme oranı | (en güncel aygıt yazılımında olan kalemler) / (filo boyutu) | Güncelleme hızı |
| Sözlük isabet oranı | (önbellekten sunulan aramalar) / (aramalar) | Performans |
| Dil paketi yükleme başarısı | (imza hatası olmadan LP yüklemeleri) / (yüklemeler) | İçerik bütünlüğü |
| Şarj olay oranı | (kalem başına haftalık şarj oturumları) | Kullanım paterni |
| Hata şiddeti dağılımı | Şiddet 0–3 olaylarının dağılımı | Sağlık |
Gösterge paneli, 5.000'in üzerinde kalemden oluşan filolar için ücretsizdir. Bu sayının altında, maliyet kalem başına yıllık 0,04 ABD doları olup aylık olarak faturalandırılır.
7. Telemetri Boru Hattı ve Metrik Karmasının SVG Görselleştirmesi
8. Maliyetler
| Hizmet | Maliyet | Notlar |
|---|---|---|
| Barındırılan telemetri gösterge paneli (5.000+ kalem) | OEM portalına dahildir | Ücretsiz |
| Barındırılan telemetri gösterge paneli (<5.000 kalem) | kalem/yıl başına 0,04 ABD doları | Aylık faturalandırılır |
| Şirket içi barındırılan telemetri alıcısı | yıl başına 1.800 ABD doları | Distribütör başına |
| Özel olay sınıfı (tür başına) | 2.400 ABD doları tek seferlik + kalem/yıl başına 0,06 ABD doları | OEM iş ortağı başına |
| Gizlilik etki değerlendirmesi desteği | 1.200 ABD doları | Bölge başına |
| Veri silme sertifikası (GDPR Madde 17) | 0 ABD doları | Portal üzerinden kendi kendine hizmet |
Alıcı ipucu: 10.000'in üzerinde kalemden oluşan AB dağıtımları için, sipariş onayını imzalamadan önce portaldan örnek bir veri silme sertifikası talep edin. Sertifika, silme zaman damgası ve silinen kayıt kümesinin SHA-256 özetini içeren 1 sayfalık bir PDF'dir.
8. Ek: Anonimleştirme İşsel Örneği ve Olay Sınıfı Envanteri
8.1 İşlenmiş Bir Anonimleştirme Örneği
Aşağıda, Suudi okul dağıtımında gerçek bir Q8 üzerinde yakalanan ham olay sırasını ele alalım. 4 aşamalı anonimleştirme boru hattının her adımını izliyoruz.
Ham oid.lookup cihazda yakalanan olaylar (örnek pencere, yerel saatle 14:00–14:15):
14:02:11 oid.lookup serial=QC8-24-118-00472 lat=98ms page=412 word="الفيل"
14:03:48 oid.lookup serial=QC8-24-118-00472 lat=104ms page=412 word="يمشي"
14:05:22 oid.lookup serial=QC8-24-118-00472 lat=88ms page=412 word="ببطء"
14:09:17 oid.lookup serial=QC8-24-118-00472 lat=101ms page=412 word="في"
14:11:46 oid.lookup serial=QC8-24-118-00472 lat=94ms page=412 word="الحديقة"
Aşama 1 — tanımlayıcıları çıkarma. Seri numarası, önyükleme başına dönen 128 bitlik bir salt ile değiştirilir, ardından 32 bitlik bir demet kimliğine hash'lenir. Demet kimliği 0x4A12F8E1 tuz olmadan seri numarasına geri çevrilemez ve tuz bir sonraki soğuk önyüklemede silinir.
Aşama 2 — değerleri kovalayın. Gecikmeler en yakın 10 ms'ye yuvarlanır. Sayfa CEFR A1 (sayfa 1–500), A2 (sayfa 501–1.200), B1 (sayfa 1.201–2.000) kovalarına ayrılır.
Aşama 3 — parmak izlerini hash'le. Bu pencerede yığın izi yok.
Aşama 4 — kaynakta topla. 5 olay tek bir kayıtta birleşir.
Sonuç: 14:15'te yüklenen tek bir kayıt:
{
"fleet_id": "0x4A12F8E1",
"model": "Q8",
"fw": "3.3.1",
"region": "SA",
"window": "2026-09-12T14:15:00Z",
"events": {
"oid_lookup_count": 5,
"oid_lookup_p95_ms": 100,
"cefr_bucket": "A2"
}
}
Filo panosunun gördüğü budur. Çocuğa, ebeveyne veya belirli kaleme geri dönen bir yol yoktur — kova kimliği her önyüklemede döner.
8.2 Tam Olay Sınıfı Envanteri (n = 44)
Alt sisteme ve varsayılan tutuma göre gruplandırılmış tam olay taksonomisi:
| ID | Olay | Tutum | Toplama penceresi | Notlar |
|---|---|---|---|---|
| 0x01 | boot.start | TELEMETRY | 15 dk | Soğuk önyüklemeleri sayar |
| 0x02 | boot.end | TELEMETRY | 15 dk | Soğuk önyükleme süresi |
| 0x03 | pwr.drain | TELEMETRY | 15 dk | Pil tükenme hızı |
| 0x04 | pwr.charge | TELEMETRY | 15 dk | Şarj akımı tepe değeri |
| 0x05 | key.press | LOKAL | n/a | Tuş haritası |
| 0x06 | book.open | LOKAL | n/a | Kalınan yer |
| 0x07 | book.close | LOKAL | n/a | Kalınan yer |
| 0x08 | oid.lookup | TELEMETRY | 15 dk | Kovalanmış gecikme |
| 0x09 | oid.miss | TELEMETRY | 15 dk | Kod yüklü hiçbir kitapta yok |
| 0x0A | dict.hit | TELEMETRY | 15 min | Önbellek isabet oranı |
| 0x0B | dict.miss | TELEMETRY | 15 min | Soğuk arama gecikmesi |
| 0x0C | lp.load | TELEMETRY | 15 min | LP imza doğrulama |
| 0x0D | tts.speak | TELEMETRY | 15 min | İlk bayt gecikmesi |
| 0x0E | asr.utterance | SUPPORT | per session | Yalnızca opt-in |
| 0x0F | asr.result | SUPPORT | per session | Yalnızca opt-in |
| 0x10 | app.crash | TELEMETRY | 15 min | Yığın hash'i |
| 0x11 | app.err | TELEMETRY | 15 min | Önem derecesi 0–3 |
| 0x12 | fw.update | TELEMETRY | per release | OTA hazırlık |
| 0x13 | fw.rollback | TELEMETRY | per release | Geri alma sayısı |
| 0x14 | dict.update | TELEMETRY | per release | Sözlük OTA |
| 0x15 | lp.update | TELEMETRY | per release | LP OTA |
| 0x16 | wifi.assoc | TELEMETRY | 15 min | Yetkilendirme süresi |
| 0x17 | wifi.fail | TELEMETRY | 15 min | Yetkilendirme hatası |
| 0x18 | ble.pair | TELEMETRY | 15 min | SSP onayı |
| 0x19 | ble.fail | TELEMETRY | 15 min | Eşleştirme hatası |
| 0x1A | nfc.read | LOCAL | n/a | Yalnızca etiket UID |
| 0x1B | usbc.plug | LOCAL | n/a | USB-C takılma sayısı |
| 0x1C | usbc.pd | TELEMETRY | 15 dakika | PDO kabul edildi |
| 0x1D | batt.health | TELEMETRY | günlük | Kapasite düşüşü |
| 0x1E | therm.warn | TELEMETRY | 15 dakika | PMIC termal |
| 0x1F | wear.delta | TELEMETRY | günlük | Flash yıpranma sayacı |
| 0x20 | err.s0 | TELEMETRY | olay başına | Genel durma tetikleyicisi |
| 0x21 | err.s1 | TELEMETRY | 15 dakika | S1 sayacı |
| 0x22 | err.s2 | TELEMETRİ | 15 dk | S2 sayısı |
| 0x23 | err.s3 | TELEMETRİ | 15 dk | S3 sayısı |
| 0x24 | app.locale | YEREL | y/d | UI dili |
| 0x25 | app.theme | YEREL | y/d | UI teması |
| 0x26 | voice.clip | DESTEK | oturum başına | Yalnızca katılımla |
| 0x27 | voice.share | DESTEK | oturum başına | Yalnızca katılımla |
| 0x28 | voice.delete | DESTEK | oturum başına | Yalnızca katılımla |
| 0x29 | dict.override | DESTEK | oturum başına | Yalnızca katılımla |
| 0x2A | parent.pin | YEREL | y/d | Ebeveyn kontrolü |
| 0x2B | screen.time | YEREL | y/d | Günlük oturum süresi |
| 0x2C | session.end | TELEMETRİ | 15 dk | Oturum süresi |
44 etkinliğin 18'i YEREL, 19'u TELEMETRİ ve 7'si DESTEK kategorisindedir. Tam envanter, OEM portalında gizlilik etki değerlendirmesi şablonu altında yayımlanmaktadır.
10. Görsel: Etkinlik Sınıfı Dağılımı ve Bant Genişliği Bütçesi
Aşağıdaki görselleştirme, üç etkinlik sınıfının (YEREL/TELEMETRİ/DESTEK) pasta grafiğini kalem başına aylık bant genişliği bütçesinin sütun grafiğiyle birleştirir. 152 KB rakamı, okul satın alma birimleriyle paylaştığımız sözleşmeye dayalı kamuya açık sayıdır.