Utformning av telemetripipelinen på enheten, logg-ringsbuffert, anonymisering samt GDPR/COPPA/PIPL-efterlevnad på B1 B2 F8 K7 KF1 L5 P2 Q6 Q8 T2 Y6 inläsningspennor.

Publicerat: mar 18, 2024 - 39 Visningar

Inläsningspenna – logginsamling och telemetri: Vilken data lämnar enheten, vad stannar lokalt, och varför det spelar roll för en flotta på 40 000 pennor

Målgrupp: Den här artikeln vänder sig till integritetsansvariga, IT-arkitekter på skoldistrikt och departement, OEM-partners som integrerar hälsoinstrumentpaneler för flottor samt B2B-importörer som måste kunna besvara frågan "vad rapporterar pennan tillbaka till fabriken?" för köpare i EU, USA, Gulfen och Latinamerika. Den utgår från att du förstår GDPR och COPPA på konceptuell nivå, men vill veta exakt vilka händelseklasser som lämnar B1/B2/F8/K7/KF1/L5/P2/Q6/Q8/T2/Y6-pennorna, vilka som anonymiseras, vilka som är valfria, och vilka som aldrig skickas.

Ett spanskt skolkonsortium som köpte 12 000 pennor frågade vårt compliance-team en mycket precis fråga förra kvartalet: "Enligt GDPR artikel 25 – vilken data lämnar enheten, vilken data stannar kvar på enheten, och kan en förälder välja bort det utan att förlora garantin?" Det ärliga svaret är 23 sidor långt. Det korta svaret, som vi publicerar här, är att telemetrikhändelser är opt-out som standard i EU, opt-in som standard i USA enligt COPPA, opt-in som standard i Saudiarabien enligt SFDA, och alltid av som standard för OEM-självhostade flottor. Nedan följer tekniken bakom dessa policyer.

Den här artikeln behandlar den lokala loggringbufferten, händelseschemat, anonymiseringsflödet, uppladdningsschemat, GDPR/COPPA/PIPL/LGPD-hållningen, de hälsoindikatorer för flottan som instrumentpanelen visar, samt kostnaden för att köra telemetri på 47 000+ pennor i 47 länder.

1. Lokal loggringbuffert på enheten

Varje penna har en 512 KB ringbuffert på användardatapartitionen. Bufferten är endast tilläggsskrivbar, tidsindexerad och överlever en fabriksåterställning endast om föräldern väljer "behåll diagnostikloggar" – vilket är standard vid Enterprise-distributioner och avstängt som standard för butiksförsäljning.

1.1 Buffertparametrar per modell

Modell Partition Buffertstorlek Händelseposter Lagringstid (dagar)
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

Bufferten är dimensionerad för att rymma den mest högvolymshändelseklassen (app.evt) i 14–45 dagar, beroende på modell. Bufferten är ringformad: äldsta händelser skrivs över först.

1.2 Händelseschema

Varje post är en fast 96-byte-struktur med 1 byte typ, 4 byte tidsstämpel, 2 byte schemaversion och 89 byte typspecifik nyttolast.

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];    // reserverat för Ed25519 kort signatur
} __attribute__((packed));

Nyttolasten är typspecifik. En boot.end-händelse bär på en uint32-startduration; en oid.lookup-händelse bär på en uint16-latens och en uint16-ordboksidesbucket; en app.crash-händelse bär på ett 64 byte stort stackfingeravtryck.

2. Händelseklasser

Vi definierar 44 händelseklasser. Inte alla laddas upp. Klassificeringen är LOCAL (laddas aldrig upp), TELEMETRY (laddas upp, anonymiserad) eller SUPPORT (laddas upp endast med uttryckligt samtycke från användaren).

Klass Antal Standardläge Exempel
Endast lokalt 18 LOCAL key.press, book.open, app.locale
Telemetri (anonymiserad) 19 TELEMETRY boot.end, oid.lookup, pwr.drain, fw.update
Support (opt-in) 7 SUPPORT voice.clip, asr.utterance, dict.override

De 18 LOCAL-händelserna finns kvar på enheten och används endast för funktioner i appen, till exempel "återuppta där du slutade." De 19 TELEMETRY-händelserna laddas upp i batcher över Wi-Fi. De 7 SUPPORT-händelserna laddas endast upp när föräldern eller fleet-administratören uttryckligen aktiverar supportläget.

3. Anonymiseringsregler

Varje TELEMETRY-händelse passerar genom en 4-stegs anonymiseringspipeline före uppladdning. Pipelines körs på enheten och verkställs av bootloadern; även en komprometterad applikation kan inte kringgå den.

  1. Strippa identifierare — Enhetens serienummer ersätts med ett roterande salt per uppstart. Saltet är ett 128-bitars slumpmässigt värde som genereras om vid varje kallstart.
  2. Bucketsera värden — Latenser avrundas till närmaste 10 ms. Batterinivåer avrundas till närmaste 5%. Ordboksökningar bucketseras in i CEFR-nivåer.
  3. Hasha fingeravtryck — Stackspår hashas med ett salt per fleet. Saltet roteras varje månad och laddas aldrig upp.
  4. Aggregera vid källan — Enskilda händelser aggregeras till 15-minutersfönster på enheten. Enheten laddar upp en post per fönster, inte 30 enskilda händelser.

Den aggregerade posten innehåller: fönstrets tidsstämpel, fleet-ID (en 32-bitars hash av OEM-undernyckeln), modell, firmware-version, regionskod samt 6 mätvärdesräknare. Den innehåller inte enhetens serienummer, förälderns namn, barnets namn eller något innehåll som barnet tryckte på.

4. Uppladdningsschema och batchning

Uppladdningar sker endast över Wi-Fi, aldrig över mobilnät (vi inkluderar inget cellulärt modem). Standardschemat är:

Villkor Beteende
Wi-Fi anslutet, viloläge >5 min Ladda upp väntande batch
Batteri <20% Skjut upp uppladdning
Batteri <10 % Avbryt uppladdning, behåll batch lokalt
Laddare ansluten, valfritt batteri Ladda upp omedelbart
Flottadministratör tvingar uppladdning Ladda upp nu, oavsett status

En typisk penna laddar upp 1–3 batchade poster per dag, totalt 18–54 KB. För en flotta på 12 000 pennor under en skolvecka blir uppladdningsvolymen 1,6–4,8 GB per vecka, vilket ryms bekvämt inom en enda företagsbredbandslinje.

5. GDPR / COPPA / PIPL / LGPD-policy

Standardbeteendet för telemetri varierar beroende på jurisdiktion. Fabriken ställer in standarden baserat på bestämmelserna i leveransdestinationen.

Jurisdiktion Standardtelemetri Standardsupport Opt-out-mekanism
EU (GDPR) OPT-OUT AV Inställningar → Integritet → Telemetri
Storbritannien (GDPR + DPA) OPT-OUT AV Inställningar → Integritet → Telemetri
USA (COPPA, under 13 år) OPT-IN AV Startguide vid första uppstart
USA (13+, delstatliga lagar) OPT-OUT AV Inställningar → Integritet → Telemetri
Saudiarabien (SFDA, PTA) OPT-IN AV Startguide vid första uppstart + PTA-portal
Förenade Arabemiraten (TDRA) OPT-IN AV Startguide vid första uppstart + TDRA-portal
Kina (PIPL) OPT-IN AV Startguide vid första uppstart + PIPL-samtycke
Brasilien (LGPD) OPT-OUT AV Inställningar → Integritet → Telemetri
Mexiko (LFPDPPP) OPT-OUT AV Inställningar → Integritet → Telemetri
Alla andra regioner OPT-OUT AV Inställningar → Integritet → Telemetri

I varje jurisdiktion kan föräldern eller flottadministratören inaktivera telemetri utan att förlora garantitäckning, utan att förlora tillgång till OTA-uppdateringar och utan att förlora tillgång till support. Den enda funktion som inaktiveras vid opt-out är flottans hälsodashboard, som kräver aggregerad telemetri för att fungera.

6. Dashboard för flottans hälsovetemang

För OEM-partners och stora flottoperatörer exponerar telemetri-dashboarden 9 mätvärden på flottnivå. Inget mätvärde kan brytas ned till en enskild enhets serienummer.

Mätvärde Definition Användning
Daglig aktivitetstakt (pennor med ≥1 omstart under 24 h) / ( flottans storlek) Engagemang
Kraschfria sessioner (sessioner utan ohanterat undantag) / (sessioner) Stabilitet
OID-uppslagning p95 95:e percentilen för OID-till-uttal Prestanda
Batterihälsa Pennor som rapporterar <80 % av ursprunglig kapacitet Hårdvarans livscykel
OTA-antagningsgrad (pennor med senaste firmware) / (flottans storlek) Uppdateringstakt
Träffkvot för ordbok (uppslagningar från cache) / (uppslagningar) Prestanda
Lyckad inläsning av språkpaket (LP-inläsningar utan signaturfel) / (inläsningar) Innehållsintegritet
Laddningshändelsefrekvens (laddningssessioner per penna per vecka) Användningsmönster
Fördelning av felallvarlighetsgrad Fördelning av händelser med allvarlighetsgrad 0–3 Hälsa

Instrumentpanelen är kostnadsfri för flottor över 5 000 pennor. Under detta är kostnaden 0,04 USD per penna per år, med månadsvis fakturering.

7. SVG-visualisering av telemetripipeline och metrikmix

Telemetry pipeline (on-device to fleet dashboard)

8. Kostnader

Tjänst Kostnad Anteckningar
Hostad telemetriinstrumentpanel (5 000+ pennor) ingår i OEM-portalen Gratis
Hostad telemetriinstrumentpanel (<5 000 pennor) 0,04 USD/penna/år Faktureras månadsvis
Självhostad telemetrimottagare 1 800 USD/år Per distributör
Anpassad händelseklass (per typ) 2 400 USD engångskostnad + 0,06 USD/penna/år Per OEM-partner
Stöd vid konsekvensbedömning avseende integritet 1 200 USD Per region
Dataderverifieringsintyg (GDPR art. 17) 0 USD Självbetjäning via portalen

Köpartips: För EU-distributioner över 10 000 pennor, begär ett exempel på dataderverifieringsintyg från portalen innan du undertecknar inköpsordern. Intyget är en 1-sidig PDF med raderingstidsstämpeln och SHA-256 för den raderade postmängden.

8. Bilaga: Anonymiseringsexempel och inventering av händelseklasser

8.1 Ett genomgående anonymiseringsexempel

Ta händelsesekvensen nedan, insamlad på en verklig Q8 i en saudisk skoldistribution. Vi följer varje steg i den 4-stegs anonymiseringspipelinen.

Råa oid.lookup händelser insamlade på enheten (exempelfönster, 14:00–14:15 lokal tid):

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="الحديقة"

Steg 1 — ta bort identifierare. Serienumret ersätts med ett per uppstart roterande 128-bitars salt, som sedan hashas till ett 32-bitars bucket-ID. Bucket-ID:t 0x4A12F8E1 kan inte härledas tillbaka till serienummer utan salt, och saltet raderas vid nästa kalla uppstart.

Steg 2 — gruppera värden i buckets. Svarstider avrundas till närmaste 10 ms. Sida bucketsätts till CEFR A1 (sidorna 1–500), A2 (sidorna 501–1 200), B1 (sidorna 1 201–2 000).

Steg 3 — hash-fingeravtryck. Inga stackspår i detta fönster.

Steg 4 — aggregera vid källan. De 5 händelserna slås ihop till en post.

Resultat: en post skickas upp klockan 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"
  }
}

Detta är vad flottans instrumentpanel ser. Det finns ingen väg tillbaka till barnet, föräldern eller den specifika pennan — bucket-ID:t roterar vid varje uppstart.

8.2 Fullständigt händelseklassregister (n = 44)

Den fullständiga händelsetaxonomin, grupperad efter subsystem och standardläge:

ID Händelse Läge Aggregeringsfönster Anteckningar
0x01 boot.start TELEMETRY 15 min Räknar kalla uppstarter
0x02 boot.end TELEMETRY 15 min Varaktighet för kall uppstart
0x03 pwr.drain TELEMETRY 15 min Batteriets urladdningshastighet
0x04 pwr.charge TELEMETRY 15 min Topp för laddningsström
0x05 key.press LOCAL n/a Knappkarta
0x06 book.open LOCAL n/a Återöppningsposition
0x07 book.close LOCAL n/a Återöppningsposition
0x08 oid.lookup TELEMETRY 15 min Bucketssatt svarstid
0x09 oid.miss TELEMETRY 15 min Kod finns inte i någon inläst bok
0x0A dict.hit TELEMETRY 15 min Cache-träffkvot
0x0B dict.miss TELEMETRY 15 min Latens för kall uppslagning
0x0C lp.load TELEMETRY 15 min Verifiering av LP-signatur
0x0D tts.speak TELEMETRY 15 min Latens för första byte
0x0E asr.utterance SUPPORT per session Endast opt-in
0x0F asr.result SUPPORT per session Endast opt-in
0x10 app.crash TELEMETRI 15 min Stackhash
0x11 app.err TELEMETRI 15 min Allvarlighetsgrad 0–3
0x12 fw.update TELEMETRI per release OTA-mellanlagring
0x13 fw.rollback TELEMETRI per release Antal återställningar
0x14 dict.update TELEMETRI per release Dictionary OTA
0x15 lp.update TELEMETRI per release LP OTA
0x16 wifi.assoc TELEMETRY 15 min Autentiseringstid
0x17 wifi.fail TELEMETRY 15 min Autentiseringsfel
0x18 ble.pair TELEMETRY 15 min SSP-bekräftelse
0x19 ble.fail TELEMETRY 15 min Parningsfel
0x1A nfc.read LOKAL n/a Endast tagg-UID
0x1B usbc.plug LOKAL n/a Antal USB-C-anslutningar
0x1C usbc.pd TELEMETRY 15 min PDO accepterad
0x1D batt.health TELEMETRY dagligen Kapacitetsförsämring
0x1E therm.warn TELEMETRY 15 min PMIC-termisk
0x1F wear.delta TELEMETRY dagligen Flash-slitageräknare
0x20 err.s0 TELEMETRY per händelse Global stopp-utlösare
0x21 err.s1 TELEMETRY 15 min S1-räknare
0x22 err.s2 TELEMETRY 15 min S2 count
0x23 err.s3 TELEMETRY 15 min S3 count
0x24 app.locale LOCAL n/a UI language
0x25 app.theme LOCAL n/a UI theme
0x26 voice.clip SUPPORT per session Opt-in only
0x27 voice.share SUPPORT per session Opt-in only
0x28 voice.delete SUPPORT per session Opt-in only
0x29 dict.override SUPPORT per session Opt-in only
0x2A parent.pin LOCAL n/a Parental control
0x2B screen.time LOCAL n/a Daily session length
0x2C session.end TELEMETRY 15 min Session duration

Av 44 händelser är 18 LOCAL, 19 TELEMETRY och 7 SUPPORT. Hela förteckningen finns publicerad i OEM-portalen under mallen för konsekvensbedömning avseende integritet.

10. Visual: Event Class Distribution and Bandwidth Budget

Visualiseringen nedan kombinerar en cirkeldiagram över de tre händelseklasserna (LOCAL/TELEMETRY/SUPPORT) med ett stapeldiagram över den månatliga bandbreddsbudgeten per penna. Siffran 152 KB är det offentliga avtalsnummer vi delar med skolupphandling.

Event class mix (n=44)

Related Reading

Begär en offert — få snabb respons från fabriken

Frequently Asked Questions

Vilken data lämnar en lässpenna under standardinställningen för telemetri?
Under standardinställningar lämnar 19 anonymiserade telemetrihändelseklasser enheten i 15-minuters aggregerade batcher över Wi-Fi. Varje batch innehåller en fönstertidsstämpel, en 32-bitars hash för flott-ID, modell, firmware-version, regionkod och sex mätvärdesräknare. Ingen enhetsserie, föräldranamn, barnnamn eller tryckt innehåll lämnar enheten. Enhetsserien ersätts med en per-boot roterande 128-bitars salt.
Är telemetri för lässpennor GDPR-kompatibel?
Ja. Telemetri är opt-out som standard i EU enligt GDPR artikel 25, anonymiserad vid källan, och föräldern kan inaktivera den under Inställningar → Integritet → Telemetri utan att förlora garanti, OTA eller supportåtkomst. Flottans instrumentpanel visar endast aggregerade mätvärden; inget mätvärde kan borras ner till en enskild enhetsserie. Ett GDPR artikel 17-dataderingscertifikat kan genereras kostnadsfritt via OEM-portalen.
Laddar lässpennan upp röstinspelningar?
Nej. Röstinspelningar och ASR-yttranden klassificeras som SUPPORT-händelser (7 av 44 händelseklasser) och laddas endast upp med uttryckligt, separat samtycke. Standardsupportläget är AV i alla jurisdiktioner. En penna som inte har växlats till supportläge laddar upp noll ljud- eller talinnehåll, även när ASR-funktioner används lokalt.
Hur mycket data laddar en lässpenna upp per dag?
En typisk penna laddar upp 1 till 3 batchade poster per dag, totalt 18 till 54 KB. På en flotta med 12 000 pennor under en skolvecka är uppladdningsvolymen 1,6 till 4,8 GB per vecka, vilket får plats inom en enda företagsbredbandslinje. Uppladdningar sker endast över Wi-Fi (ingen mobilmodem), och uppladdningar skjuts upp när batteriet är under 20 %.
Kan en flottadministratör inaktivera telemetri över hela flottan?
Ja. OEM-portalen exponerar en flottomfattande integritetsväxling som signerar en en-byte flagga för telemetri inaktiverad i varje enhets pin-post vid nästa OTA-cykel. När den är aktiverad slutar enheten att ladda upp telemetri helt. Flottans hälsoinstrumentpanel förblir funktionell under den 30 dagars respitperioden med redan uppladdad data, och växlar sedan till skrivskyddat läge.
Din varukorg
Din upplevelse på denna webbplats förbättras genom att tillåta cookies. Cookies-policy
Chat on WhatsApp