29、量产与合规:Google 认证(GAS)、CCC 认证、区域化定制与合规

做车载系统做到量产这一步,说实话,技术问题反而不是最头疼的。真正让人睡不着觉的,是合规。你代码写得再漂亮,功能再炫酷,拿不到认证,车就上不了路。今天我们就来聊聊量产前的最后一道坎——认证与合规。

我个人习惯把车载系统的合规分成三层:Google 的 GAS 认证国内的 CCC 强制认证、以及区域化的定制合规。这三层环环相扣,少一个都不行。

核心观点: 认证不是测试阶段才考虑的事,而是从架构设计第一天就要埋下的基因。

29.1 Google 认证(GAS)—— 想用 GMS?先过这关

GAS 全称是 Google Automotive Services,说白了就是 Google 给车载 Android 系统的一套认证体系。你想想看,没有 GAS 认证,你的车机就不能预装 Google Maps、Google Assistant、Google Play Store 这些核心应用。对于出海车型,这几乎是致命的。

GAS 认证的核心检查点,我列一下:

  • CTS / GTS 测试:兼容性测试套件,确保你的系统能跑 Google 的 App。
  • 安全补丁等级:必须满足 Google 每月发布的安全补丁要求。
  • 隐私保护:比如定位权限、麦克风权限的合规使用。
  • 汽车特定要求:比如驾驶模式下的 UI 限制、分屏行为等。

我在项目中遇到过最坑的一件事:CTS 测试跑了一周,最后发现是一个 HAL 层的接口返回值格式不对,导致 Google Maps 无法获取 GPS 信号。嗯,这种问题排查起来特别费劲,因为 CTS 的日志往往不够直观。

我的建议: 在项目早期就搭建 CTS/GTS 的自动化流水线,每天跑一次。别等到集成阶段再跑,那时候改起来成本太高。

29.2 CCC 认证 —— 国内市场的入场券

CCC 认证,也就是中国强制性产品认证。这个跟 Google 认证完全是两码事。CCC 关注的是产品的安全性、电磁兼容性、环境适应性等。说白了,你的车机不能起火、不能干扰其他电子设备、不能在高温下死机。

CCC 认证对车载系统的影响,主要体现在这几个方面:

  • 电源管理:待机功耗、过流保护、反接保护等。
  • 电磁兼容(EMC):辐射发射和抗扰度测试。
  • 环境试验:高温、低温、湿热、振动等。
  • 材料阻燃:PCB 和外壳材料的阻燃等级。

我曾经吃过一次亏:CCC 认证时发现车机在 -20℃ 低温下启动时间超过标准要求。查了半天,是某个电源芯片的低温特性不达标。后来换了料,重新打样,耽误了整整两周。所以,关键器件的选型一定要看工业级或车规级,别为了省几毛钱用消费级芯片。

注意: CCC 认证的测试样品必须与量产状态一致。不要想着送测一套、量产另一套,一旦被抽查到,后果很严重。

29.3 区域化定制与合规 —— 一地一策

不同国家和地区,对车载系统的要求千差万别。我简单列几个常见的:

区域 关键合规要求 对系统的影响
欧盟 GDPR(隐私保护)、eCall(紧急呼叫) 数据本地化存储、eCall 模块必须常驻
美国 FCC(电磁兼容)、ADA(无障碍) 射频参数调整、语音控制必须支持
日本 电波法、道路运输车辆法 导航地图数据必须本地化
中国 CCC、数据安全法、个人信息保护法 用户数据不出境、实名认证接口

区域化定制,说白了就是一套代码,多套配置。我习惯的做法是:

  • 把区域相关的配置抽离到 product 层,用 PRODUCT_PROPERTY_OVERRIDES 控制。
  • ro.build.region 属性区分区域,代码里根据这个属性做分支。
  • 所有区域相关的资源文件(字符串、图片、音频)放到 overlay 目录下。

举个例子,eCall 功能的实现:

// 在 SystemUI 中判断是否启用 eCall
if (SystemProperties.get("ro.build.region").equals("EU")) {
    // 注册 eCall 快捷按钮
    mEcallController.register();
    // 设置紧急号码为 112
    mEmergencyNumber = "112";
} else {
    // 其他区域不显示 eCall 按钮
    mEcallController.unregister();
}

这样做的好处是,核心代码不变,只通过配置和 overlay 来适配不同区域。你想想看,如果每个区域都维护一个独立分支,那维护成本会高到什么程度?

29.4 合规架构图

下面这张图是我自己总结的合规架构,你可以参考一下:

车载系统合规认证架构 Google GAS 认证 CTS/GTS/安全补丁 CCC 强制认证 安全/EMC/环境 区域化合规 GDPR/eCall/数据安全 测试与验证阶段 自动化流水线 每日 CTS/GTS 器件选型管控 车规级/工业级 配置抽离 product/overlay 合规审查 法务/安全 认证不是终点,而是量产的门槛

29.5 避坑指南

最后,分享几个我踩过的坑,希望能帮你少走弯路:

  • 不要等到最后才跑 CTS:我曾经有个项目,集成阶段才发现 CTS 挂了 200 多个 case,最后加班加点改了一个月。早点跑,早点改。
  • CCC 认证的样品要留备份:送测的样品如果出了问题,需要复测,没有备份样品会很被动。
  • 区域化配置要版本化管理:每个区域的配置变更都要有记录,否则出了问题根本查不到是谁改的。
  • 安全补丁要持续跟进:Google 每月发布安全补丁,你需要及时合并到你的分支。拖得越久,合并冲突越大。
一个小技巧: 在代码里加一个合规检查的单元测试,每次提交代码时自动检查关键合规项。比如检查是否所有区域相关的字符串都有翻译,检查 eCall 功能是否在欧盟区域启用等。这样能提前发现很多问题。

好了,关于量产与合规,今天就聊到这里。认证这件事,说白了就是「早准备、早测试、早整改」。别等到最后一刻才去烧香,那时候神仙也救不了你。


公众号:蓝海资料掘金营,微信deep3321