Khalayak sasaran: Artikel ini ditujukan untuk pegawai privasi, arkitek IT di daerah dan kementerian pendidikan, rakan kongsi OEM yang menyepadukan papan pemuka kesihatan armada, serta pengimport B2B yang mesti menjawab soalan "apa yang pen laporkan kembali ke kilang?" kepada pembeli di EU, AS, Teluk, dan Amerika Latin. Ia menganggap anda memahami GDPR dan COPPA pada peringkat konsep, tetapi ingin mengetahui dengan tepat kelas acara yang keluar dari pen B1/B2/F8/K7/KF1/L5/P2/Q6/Q8/T2/Y6, yang mana dianonimkan, yang mana opt-in, dan yang mana tidak pernah dihantar.
Sebuah koperasi sekolah Sepanyol yang membeli 12,000 pen bertanya kepada pasukan pematuhan kami satu soalan tepat pada suku lepas: "Di bawah Artikel 25 GDPR, data apakah yang keluar dari peranti, data apakah yang kekal dalam peranti, dan bolehkah ibu bapa memilih untuk tidak serta-merta tanpa kehilangan perlindungan waranti?" Jawapan jujurnya panjang 23 halaman. Jawapan ringkas, yang kami siarkan di sini, ialah acara telemetri adalah opt-out secara lalai di EU, opt-in secara lalai di AS di bawah COPPA, opt-in secara lalai di Arab Saudi di bawah SFDA, dan tidak pernah dihantar secara lalai untuk armada yang dihos sendiri oleh OEM. Berikut adalah kejuruteraan di sebalik dasar-dasar tersebut.
Artikel ini merangkumi penimbal cincin log pada peranti, skema acara, saluran paip anonimisasi, jadual muat naik, pendirian GDPR/COPPA/PIPL/LGPD, metrik kesihatan armada yang didedahkan oleh papan pemuka, dan kos menjalankan telemetri pada lebih 47,000 pen merentasi 47 buah negara.
1. Penimbal Cincin Log Pada Peranti
Setiap pen mempunyai penimbal cincin 512 KB pada partition data pengguna. Penimbal ini bersifat tambah sahaja, diindeks mengikut masa, dan kekal selepas tetapan semula kilang hanya jika ibu bapa memilih "kekalkan log diagnostik" — yang merupakan lalai untuk penggunaan perusahaan dan dimatikan secara lalai untuk runcit.
1.1 Parameter Penimbal Mengikut Model
| Model | Partition | Saiz penimbal | Rekod acara | Pengekalan (hari) |
|---|---|---|---|---|
| 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 |
Saiz penimbal ditetapkan untuk memuatkan kelas acara dengan isipadu tertinggi (app.evt) selama 14–45 hari, bergantung pada model. Penimbal bersifat pusing balik: acara tertua dipadam terlebih dahulu.
1.2 Skema Acara
Setiap rekod ialah struktur tetap 96 bait dengan 1 bait jenis, 4 bait cap masa, 2 bait versi skema, dan 89 bait muatan khusus jenis.
struct telemetry_event_t {
uint8_t type; // 0x01..0x2C
uint32_t timestamp; // seconds since boot
uint16_t schema_ver; // e.g., 0x0007
uint8_t severity; // 0..3 (info, warn, error, critical)
uint8_t reserved;
uint8_t payload[80];
uint16_t crc; // CRC-16-CCITT
uint8_t sig_pad[6]; // dikhaskan untuk tandatangan pendek Ed25519
} __attribute__((packed));
Payload adalah khusus jenis. Peristiwa boot.end membawa tempoh boot uint32; peristiwa oid.lookup membawa kependaman uint16 dan baldi halaman kamus uint16; peristiwa app.crash membawa cincang cap jari tindanan 64 bait.
2. Kelas Peristiwa
Kami mentakrifkan 44 kelas peristiwa. Tidak semua dimuat naik. Pengelasannya ialah LOCAL (tidak pernah dimuat naik), TELEMETRY (dimuat naik, tanpa nama), atau SUPPORT (dimuat naik hanya dengan persetujuan jelas pengguna).
| Kelas | Kiraan | Postur lalai | Contoh |
|---|---|---|---|
| Setempat sahaja | 18 | LOCAL | key.press, book.open, app.locale |
| Telemetri (tanpa nama) | 19 | TELEMETRY | boot.end, oid.lookup, pwr.drain, fw.update |
| Sokongan (opt-in) | 7 | SUPPORT | voice.clip, asr.utterance, dict.override |
18 peristiwa LOCAL kekal pada peranti dan digunakan hanya untuk ciri dalam aplikasi seperti "sambung di tempat anda berhenti." 19 peristiwa TELEMETRY dimuat naik secara berkumpulan melalui Wi-Fi. 7 peristiwa SUPPORT dimuat naik hanya apabila ibu bapa atau pentadbir armada secara jelas membolehkan mod sokongan.
3. Peraturan Tanpa Nama
Setiap peristiwa TELEMETRY melalui saluran paip tanpa nama 4 peringkat sebelum dimuat naik. Saluran paip ini berjalan pada peranti dan dikuatkuasakan oleh bootloader; walaupun aplikasi yang terjejas tidak boleh memintasinya.
- Buang pengecam — Nombor siri peranti digantikan dengan garam berputar setiap-boot. Garam ialah nilai rawak 128-bit yang dijana semula setiap boot sejuk.
- Baldikan nilai — Kependaman dibundarkan kepada 10 ms yang terdekat. Paras bateri dibundarkan kepada 5% yang terdekat. Carian kamus dibaldikan ke tahap CEFR.
- Cincang cap jari — Jejak tindanan dicincang dengan garam setiap-armada. Garam diputar setiap bulan dan tidak pernah dimuat naik.
- Agregat di sumber — Peristiwa tunggal diagregatkan kepada tetingkap 15 minit pada peranti. Peranti memuat naik satu rekod setiap tetingkap, bukan 30 peristiwa individu.
Rekod agregat mengandungi: cap masa tetingkap, ID armada (cincang 32-bit subkunci OEM), model, versi firmware, kod wilayah, dan 6 pembilang metrik. Ia tidak mengandungi nombor siri peranti, nama ibu bapa, nama anak, atau sebarang kandungan yang disentuh anak.
4. Jadual dan Pengelompokan Muat Naik
Muat naik berlaku hanya melalui Wi-Fi, tidak pernah melalui selular (kami tidak menyertakan modem selular). Jadual lalai ialah:
| Keadaan | Tingkah laku |
|---|---|
| Wi-Fi bersekutu, melahu >5 min | Muat naik kelompok tertunda |
| Bateri <20% | Tunda muat naik |
| Bateri <10% | Batal muat naik, kekalkan kelompok secara tempatan |
| Pengecas disambungkan, sebarang bateri | Muat naik serta-merta |
| Pentadbir armada paksa muat naik | Muat naik sekarang, tanpa mengira keadaan |
Sebatang pen biasa memuat naik 1–3 rekod berkelompok setiap hari, berjumlah 18–54 KB. Untuk armada 12,000 pen sepanjang minggu persekolahan, jumlah muat naik ialah 1.6–4.8 GB seminggu, yang muzawam di dalam satu talian jalur lebar korporat.
5. Postur GDPR / COPPA / PIPL / LGPD
Tingkah laku telemetri lalai berbeza mengikut bidang kuasa. Kilang menetapkan lalai berdasarkan peraturan destinasi penghantaran.
| Bidang kuasa | Telemetri lalai | Sokongan lalai | Mekanisme penolakan |
|---|---|---|---|
| EU (GDPR) | PENOLAKAN | MATI | Tetapan → Privasi → Telemetri |
| UK (GDPR + DPA) | PENOLAKAN | MATI | Tetapan → Privasi → Telemetri |
| AS (COPPA, bawah 13 tahun) | PILIH MASUK | MATI | Wizard but pertama |
| AS (13+, undang-undang negeri) | PENOLAKAN | MATI | Tetapan → Privasi → Telemetri |
| Arab Saudi (SFDA, PTA) | PILIH MASUK | MATI | Wizard but pertama + portal PTA |
| UAE (TDRA) | PILIH MASUK | MATI | Wizard but pertama + portal TDRA |
| China (PIPL) | PILIH MASUK | MATI | Wizard but pertama + persetujuan PIPL |
| Brazil (LGPD) | PENOLAKAN | MATI | Tetapan → Privasi → Telemetri |
| Mexico (LFPDPPP) | PENOLAKAN | MATI | Tetapan → Privasi → Telemetri |
| Semua wilayah lain | PENOLAKAN | MATI | Tetapan → Privasi → Telemetri |
Di setiap bidang kuasa, ibu bapa atau pentadbir armada boleh melumpuhkan telemetri tanpa kehilangan perlindungan waranti, tanpa kehilangan akses kepada kemas kini OTA, dan tanpa kehilangan akses kepada sokongan. Satu-satunya ciri yang dilumpuhkan dengan menolak ialah papan pemuka kesihatan armada, yang memerlukan telemetri agregat untuk berfungsi.
6. Papan Pemuka Metrik Kesihatan Armada
Untuk rakan kongsi OEM dan pengendali armada besar, papan pemuka telemetri mendedahkan 9 metrik di peringkat armada. Tiada metrik boleh dipecahkan kepada satu nombor siri peranti.
| Metrik | Definisi | Penggunaan |
|---|---|---|
| Kadar aktif harian | (pen dengan ≥1 but dalam 24 jam) / (saiz armada) | Penglibatan |
| Sesi bebas ranap | (sesi tanpa pengecualian yang tidak dikendalikan) / (sesi) | Kestabilan |
| carian OID p95 | persentil ke-95 bagi OID-ke-sebutan | Prestasi |
| Kesihatan bateri | Pen melaporkan <80% daripada kapasiti asal | Kitar hayat perkakasan |
| Kadar penggunaan OTA | (pen pada firmware terkini) / (saiz armada) | Kelajuan kemas kini |
| Kadar hit kamus | (carian yang dilayani daripada cache) / (carian) | Prestasi |
| Kejayaan muatan pek bahasa | (muatan LP tanpa kegagalan tandatangan) / (muatan) | Integriti kandungan |
| Kadar acara pengecasan | (sesi cas setiap pen setiap minggu) | Corak penggunaan |
| Campuran keterukan ralat | Taburan acara keterukan 0–3 | Kesihatan |
Papan pemuka adalah percuma untuk armada melebihi 5,000 pen. Di bawah itu, kosnya ialah $0.04 setiap pen setahun, dibilkan setiap bulan.
7. Visualisasi SVG bagi Saluran Paip Telemetri dan Campuran Metrik
8. Kos
| Perkhidmatan | Kos | Nota |
|---|---|---|
| Papan pemuka telemetri dihoskan (5,000+ pen) | disertakan dengan portal OEM | Percuma |
| Papan pemuka telemetri dihoskan (<5,000 pen) | $0.04/pen/setahun | Dibilkan setiap bulan |
| Sink telemetri hos sendiri | $1,800/setahun | Setiap pengedar |
| Kelas acara tersuai (setiap jenis) | $2,400 sekali bayar + $0.06/pen/setahun | Setiap rakan kongsi OEM |
| Sokongan penilaian impak privasi | $1,200 | Setiap wilayah |
| Sijil pemadaman data (GDPR Art. 17) | $0 | Servis sendiri melalui portal |
Petua pembeli: Untuk penggunaan EU melebihi 10,000 pen, minta sampel sijil pemadaman data daripada portal sebelum menandatangani PO. Sijil itu ialah PDF 1 halaman dengan cap masa pemadaman dan SHA-256 set rekod yang dipadamkan.
8. Lampiran: Contoh Kerja Anonimasi dan Inventori Kelas Acara
8.1 Contoh Kerja Anonimasi
Ambil urutan acara mentah di bawah, yang ditangkap pada Q8 sebenar dalam penggunaan sekolah Arab Saudi. Kami menjejaki setiap langkah saluran paip anonimasi 4 peringkat.
Mentah oid.lookup acara yang ditangkap pada peranti (tetingkap sampel, 14:00–14:15 tempatan):
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="الحديقة"
Peringkat 1 — buang pengecam. Nombor siri digantikan dengan garam berputar 128-bit setiap but, kemudian dicincang kepada ID baldi 32-bit. ID baldi 0x4A12F8E1 tidak boleh diterbalikkan kepada nombor siri tanpa garam tersebut, dan garam tersebut akan dipadamkan pada permulaan sejuk yang berikutnya.
Peringkat 2 — nilaikan dalam kelompok. Latensi dibundarkan kepada 10 ms yang terhampir. Halaman dikelompokkan kepada CEFR A1 (halaman 1–500), A2 (halaman 501–1,200), B1 (halaman 1,201–2,000).
Peringkat 3 — cap jari cincang. Tiada jejak tindanan dalam tetingkap ini.
Peringkat 4 — agregat di sumber. 5 peristiwa diringkaskan menjadi satu rekod.
Keputusan: satu rekod dimuat naik pada 14:15:
{
"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",
}
}
Inilah yang dilihat oleh papan pemuka armada. Tiada jalan kembali kepada kanak-kanak, ibu bapa, atau pen tertentu — ID kelompok berputar pada setiap permulaan.
8.2 Inventori Penuh Kelas Peristiwa (n = 44)
Taksonomi peristiwa penuh, dikumpulkan mengikut subsistem dan postur lalai:
| ID | Peristiwa | Postur | Tetingkap pengagregatan | Nota |
|---|---|---|---|---|
| 0x01 | boot.start | TELEMETRI | 15 min | Mengira permulaan sejuk |
| 0x02 | boot.end | TELEMETRI | 15 min | Tempoh permulaan sejuk |
| 0x03 | pwr.drain | TELEMETRI | 15 min | Kadar nyahcas bateri |
| 0x04 | pwr.charge | TELEMETRI | 15 min | Puncak arus cas |
| 0x05 | key.press | LOKAL | t/t | Peta butang |
| 0x06 | book.open | LOKAL | t/t | Posisi sambung semula |
| 0x07 | book.close | LOKAL | t/t | Posisi sambung semula |
| 0x08 | oid.lookup | TELEMETRI | 15 min | Latensi dikelompokkan |
| 0x09 | oid.miss | TELEMETRI | 15 min | Kod tiada dalam mana-mana buku yang dimuatkan |
| 0x0A | dict.hit | TELEMETRY | 15 min | Nisbah hit cache |
| 0x0B | dict.miss | TELEMETRY | 15 min | Latensi carian baharu |
| 0x0C | lp.load | TELEMETRY | 15 min | Pengesahan tandatangan LP |
| 0x0D | tts.speak | TELEMETRY | 15 min | Latensi bait pertama |
| 0x0E | asr.utterance | SUPPORT | per sesi | Ikut pilihan sahaja |
| 0x0F | asr.result | SUPPORT | per sesi | Ikut pilihan sahaja |
| 0x10 | app.crash | TELEMETRY | 15 min | Hash tindan |
| 0x11 | app.err | TELEMETRY | 15 min | Keterukan 0–3 |
| 0x12 | fw.update | TELEMETRY | per keluaran | Peringkat OTA |
| 0x13 | fw.rollback | TELEMETRY | per keluaran | Kiraan undur |
| 0x14 | dict.update | TELEMETRY | per keluaran | OTA kamus |
| 0x15 | lp.update | TELEMETRY | per keluaran | OTA LP |
| 0x16 | wifi.assoc | TELEMETRY | 15 min | Masa pengesahan |
| 0x17 | wifi.fail | TELEMETRY | 15 min | Kegagalan pengesahan |
| 0x18 | ble.pair | TELEMETRY | 15 min | Pengesahan SSP |
| 0x19 | ble.fail | TELEMETRY | 15 min | Kegagalan pasangan |
| 0x1A | nfc.read | LOCAL | n/a | UID tag sahaja |
| 0x1B | usbc.plug | LOCAL | n/a | Kiraan kemasukan USB-C |
| 0x1C | usbc.pd | TELEMETRY | 15 min | PDO diterima |
| 0x1D | batt.health | TELEMETRY | harian | Pudaran kapasiti |
| 0x1E | therm.warn | TELEMETRY | 15 min | Terma PMIC |
| 0x1F | wear.delta | TELEMETRY | harian | Penggunaan kilat |
| 0x20 | err.s0 | TELEMETRY | setiap acara | Pencetus henti global |
| 0x21 | err.s1 | TELEMETRY | 15 min | Kiraan S1 |
| 0x22 | err.s2 | TELEMETRY | 15 min | Bilangan S2 |
| 0x23 | err.s3 | TELEMETRY | 15 min | Bilangan S3 |
| 0x24 | app.locale | LOCAL | n/a | Bahasa UI |
| 0x25 | app.theme | LOCAL | n/a | Tema UI |
| 0x26 | voice.clip | SUPPORT | per session | Pilihan sahaja |
| 0x27 | voice.share | SUPPORT | per session | Pilihan sahaja |
| 0x28 | voice.delete | SUPPORT | per session | Pilihan sahaja |
| 0x29 | dict.override | SUPPORT | per session | Pilihan sahaja |
| 0x2A | parent.pin | LOCAL | n/a | Kawalan ibu bapa |
| 0x2B | screen.time | LOCAL | n/a | Tempoh sesi harian |
| 0x2C | session.end | TELEMETRY | 15 min | Tempoh sesi |
Daripada 44 peristiwa, 18 adalah LOCAL, 19 adalah TELEMETRY, dan 7 adalah SUPPORT. Inventori penuh diterbitkan dalam portal OEM di bawah templat penilaian impak privasi.
10. Visual: Taburan Kelas Peristiwa dan Belanjawan Lebar Jalur
Visualisasi di bawah menggabungkan carta pai bagi tiga kelas peristiwa (LOCAL/TELEMETRY/SUPPORT) dengan lajur bagi belanjawan lebar jalur bulanan setiap pen. Angka 152 KB ialah nombor kontrak awam yang kami kongsikan dengan perolehan sekolah.