Android Pixel model paired with the wrong device-fixed devicePixelRatio
br.android_model_dpr_incoherent · convicts
What it catches
MODEL <-> DPR coherence — a device-manifold rung INDEPENDENT of br.android_model_screen_incoherent. A Pixel model has a device-fixed backing scale window.devicePixelRatio (Pixel 5 = 2.75, Pixel 7 = 2.625, Pixel 4 = 3, ...); since physical px = CSS px * DPR, the DPR is a SEPARATE axis from the CSS screen — a randomizer or source-fork can get the CSS screen right yet the DPR wrong (or vice-versa). The model is already pinned across the 3-surface CH-UA-Model ratchet, so a coherent model with a DPR the real device never used is a contradiction. Per-model DPR values are Playwright's deviceScaleFactor (calibrated to the real window.devicePixelRatio — the SAME device corpus android_model_screen_incoherent trusts for the screen). FP-SAFE: fires only for a Pixel model IN the map whose devicePixelRatio is off by > 0.02; an unknown model skips. EXPERIMENTAL (w0.5, corroborating; the DPR map needs periodic calibration against the real-device corpus as new Pixels ship). GROUNDED LIVE: KS_DEVICE='Pixel 7' (DPR 2.625) + KS_FORGE_JS_MODEL='Pixel 5' (expects 2.75) FIRES android_model_dpr_incoherent; KS_DEVICE='Pixel 5' + KS_FORGE_JS_MODEL='Pixel 5' (DPR 2.75, correct) does NOT fire it. Complements model↔screen: a coherent Android device must match its model on BOTH the CSS screen AND the backing scale.
Signals it reads
browser.android_model_dpr_incoherent
How it fires
present
Bypassed by 10
Frontier evaders that reach the detector uncaught (scored only suspicious, defeating every convicting tell) — this check is not one that stops them. The red-team frontier this detection still has to convict.