汽车系统中 OTA 软件更新的风险

汽车系统中 OTA 软件更新的风险

OTA 更新将质量保证转移到了终端用户

现代车辆中的空中下载(OTA)更新正日益导致关键的信息娱乐和连接功能的退化,实际上是将客户变成了无偿的质量保证(QA)测试人员。当制造商在没有经过严格测试关卡的情况下部署更新时,关键功能——例如 Android Auto 和 Apple CarPlay——可能会失效,导致用户在已购买的车辆中面临功能受损的问题。

汽车行业中“快速行动,打破常规”的影响

在汽车行业应用敏捷软件开发方法论导致了一种趋势,即软件被快速发布,随后再进行修补。这种方法虽然在 Web 应用中取得了成功,但通常与汽车这类高成本、长期的物理资产不兼容。

  • 物理护栏的缺失: 从历史上看,发布有缺陷的软件需要进行物理重新分发(光盘或召回),这给组织带来了巨大的财务成本。通过 OTA 更新消除了这些成本,降低了制造商在部署前确保软件完美的动力。
  • 测试关卡失效: 虽然有人认为短周期的开发冲刺不是问题所在,但缺乏强大的“测试关卡”和“承重冒烟测试”使得退化问题能够进入生产环境。
  • 品牌侵蚀: 车辆中不稳定的软件体验会导致长期的品牌损害,因为一次糟糕的软件更新可能会在多年内对客户对整个车辆的感知产生负面影响。

软件退化案例研究

现实世界的案例突显了集成化汽车软件的不稳定性:

  • Android Auto 失效: 据报道,OTA 更新会导致 Android Auto 连接完全中断,需要人工干预或制造商支持。
  • Kia EV9 问题: 用户报告称,更新导致 Apple CarPlay 在驾驶几分钟后显示空白屏幕,随后通过后续的 OTA 补丁部分解决了该问题,但制造商并未就修复方案进行明确沟通。

关于软件定义硬件的争论

技术界正形成一种日益增长的技术共识,即将会离散、孤立的硬件功能移至由软件驱动的屏幕后方,会增加故障发生面。

"Don't put discrete, isolated HW functions behind a SW powered screen. It's that simple."

这种向“智能”家电化的转变导致了产品寿命的感知下降。一些用户现在认为,任何包含代码的设备都会在约三年后变得过时或不稳定。

缓解 OTA 风险的策略

为了避免与车辆滚动发布相关的稳定性问题,用户和开发者提出了几种替代方案:

  • 手动更新控制: 转向基于 USB 的更新或提供物理“在线”开关,允许用户决定何时以及是否应该更新系统。
  • 避免连接: 对于固定功能的设备,避免互联网连接可以防止强制更新并保护系统的当前状态。
  • 通过开源工具解锁功能: 在某些情况下,CarPlay 或 Android Auto 等功能存在于硬件中,但通过软件标志位禁用。开源社区工具偶尔被用于手动启用这些功能,从而绕过制造商的限制。

关于更新效率的技术视角

一些开发者建议,全量 OS 更新的低效是一个问题。一种改进 OTA 更新的理论方法是采用一种混合系统,将核心框架的 Ahead-of-Time (AOT) 编译与针对选择性修补代码的 Just-in-Time (JIT) 或解释模式相结合。这将允许进行快速、高性能的更新,而无需推送完整的系统镜像,从而可能降低在补丁过程中破坏整个系统的风险。

Sources