A camera pointed at the driver, becoming a regulatory requirement in several markets — how it is architected, why the images never reach Android, and the privacy rules that are not optional.
Advanced6 minDMS · Camera · Privacy · Safety
Increasingly, vehicles watch the driver. An infrared camera estimates where their
eyes are pointed and whether they are closing. In several markets some form of
this is becoming mandatory.
It is also the most privacy-sensitive component in the entire vehicle, and the
architecture reflects that far more than most people expect.
Is the driver looking at the road? Gaze direction, estimated from head pose
and eye position.
Is the driver awake? Eye closure duration, blink rate, head nodding.
From those it derives a state — attentive, distracted, drowsy — and the vehicle
responds: a chime, a seatbelt pulse, or on some systems a reduction in
driver-assistance capability.
Do not confuse driver monitoring with occupant detection. They answer different
questions and often use different hardware.
Occupant detection — is someone in the seat, are they a child, is a seatbelt
fastened — usually comes from seat pressure sensors and belt buckle switches, and
surfaces as vehicle properties rather than anything camera-based.
The general telemetry rules apply, plus several specific to this:
Process on the edge. Vision runs on the module. Only the derived state moves.
Never store frames. No buffer, no cache, no "last frame for debugging". A
debug build that writes frames to disk will eventually ship.
Never associate with identity. The system reports that the driver is
drowsy, not that this person is. Correlating with a user profile turns a safety
feature into surveillance.
Bound retention on the state too. Even the derived state is behavioural data.
An unbounded log of when someone was drowsy is a subject-access problem and,
potentially, evidence in a dispute.
Make the indicator honest. If the camera is active, the driver must be able to
tell without inspecting a settings screen.
adb shell dumpsys car_service --list-properties | grep -i -E 'DRIVER|ATTENTION'# If exposed as a property, inject state to test the UI responseadb shell dumpsys car_service --set-property <id> 2 # e.g. DROWSY