Skip to content

Safety & security

Functional safety in a software-defined vehicle

ISO 26262 in plain terms, why consolidation makes safety harder rather than easier, and what changes when the software is supposed to be updated after the safety case was written.

Advanced8 minFunctional safety · ISO 26262 · ASIL

Functional safety is the part of automotive that most obviously has no equivalent in general software, and it is usually taught through the standard's structure rather than its purpose. Start with the purpose.

What it is actually about#

ASIL, without the ceremony#

ratings come from a hazard analysis of three factors, at the level of a situation, not a component.

FactorQuestion
SeverityHow badly hurt, if this goes wrong?
ExposureHow often are people in the situation where it matters?
ControllabilityCan a normal driver cope when it happens?

Why consolidation makes this harder#

The SDV promise is fewer, more powerful computers. The safety consequence runs the other way.

What must be shown#

ResourceThe question to answer
CPU timeCan a runaway process starve the safety partition?
MemoryCan one partition read or corrupt another's?
PeripheralsCan a guest reprogram a shared controller?
InterruptsCan one partition delay another's interrupt handling?
PowerDoes a shared rail create a common-cause failure?
ThermalCan heavy load in one partition throttle the other?
TimeDo both partitions have a trustworthy clock?

Gotcha

"The hypervisor is certified, therefore we have freedom from interference" is incomplete. The certificate covers the hypervisor configured as described in its safety manual.

If you allocated cores dynamically, enabled a feature the manual excludes, or shared a device it said not to share, the certificate does not extend to your system. This gap has been discovered late on real programmes.

The pattern that actually gets built#

One chip, four operating systems, four different safety obligationsSafety RTOScluster, telltalesASIL B/DADAS stackperception, controlASIL DAndroidinfotainment, appsQMVehicle Linuxservices, gatewayQM/ASIL AHypervisorpartitions CPU, memory and devices · enforces freedom from interferenceSystem-on-chipcores · GPU · memory · peripherals
Mixed criticality on one SoCThe safety function is small, isolated and separately rendered. Android handles everything the safety case does not depend on.

What updates do to a safety case#

Here is where the SDV genuinely creates a new problem rather than inheriting an old one.

What an Android engineer should actually know#

You will not write the safety case. These five things will still affect you:

Know whether your feature is in the safety path. Usually it is not, and knowing that with confidence is what lets you move quickly.

Never route safety-relevant data through Android to save an interface. It pulls Android into the argument and the cost is enormous.

Respect the display layering. The safety plane is above yours by design. Do not design layouts that assume otherwise.

Understand your resource budget is fixed. Fixed cores and memory are what buys freedom from interference. You cannot borrow.

Take degraded modes seriously. What your UI shows when a property goes stale or a service dies is often a safety-adjacent requirement, even when your component is QM. Showing a plausible stale value is worse than showing nothing.

Next#

Security inside the vehicle, where the network can no longer be trusted.

References & further reading

Code links target the main branch on cs.android.com. AOSP moves — if a path 404s, search the symbol instead.