ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Android Auto认证全链路合规指南:从硬件选型到GMS授权

Android Auto认证全链路合规指南:从硬件选型到GMS授权 1. 项目概述这不是一次简单的“打勾”而是整车电子电气架构的合规性大考Android Auto 认证业内常简称为 AA 认证绝非在车载信息娱乐系统IVI上装个 APK、连上手机点几下就能通过的“功能演示”。它是一套由 Google 官方制定、覆盖硬件设计、软件集成、安全机制、用户交互、数据处理全维度的强制性合规体系。我参与过三款量产车型的 AA 认证全流程从立项评审到最终拿到 GMSGoogle Mobile Services授权证书最深的体会是AA 认证的本质是把整车厂OEM的电子电气开发流程强行拉进 Google 的生态治理框架里。它不只看“能不能用”更严苛地拷问“为什么这么设计”“数据怎么流转”“权限是否最小化”“用户是否真正知情并可控”。标题里提到的“立项至量产全链路合规管控”这十二个字就是整个项目的灵魂——管控不是某个部门的事而是从项目启动那一刻起硬件选型、芯片平台、Linux 内核配置、HAL 层接口定义、应用沙箱策略、甚至车机 USB-C 接口的物理引脚定义都必须同步考虑 AA 的合规红线。相关热搜词里反复出现的“GMS 认证中”“BTS 敏感权限修改”恰恰印证了这一点一个看似微小的蓝牙协议栈BTS权限调整可能牵扯出整套车载通信模块的重新测试与文档追溯。而“aa搜狗浏览器”这类热词则暴露了部分厂商在认证前试图走捷径、绕开 AA 标准 UI 框架的典型误区——结果无一例外在 Google 的自动化扫描和人工复审环节被驳回。如果你是 IVI 系统工程师、OEM 项目管理负责人或是 Tier1 的嵌入式软件架构师这篇内容就是你手边那本没有印刷页码、但每一页都写着“血泪教训”的实战手册。它不讲虚的理论只告诉你每个阶段“必须做什么”“为什么必须这么做”“不做会死在哪一步”。2. 全链路设计逻辑与方案选型背后的硬逻辑2.1 为什么必须从立项阶段就介入——规避“架构级返工”的唯一路径很多团队把 AA 认证当成一个“软件测试阶段”的附加任务等 IVI 硬件已流片、底层 BSP 已冻结、UI 框架已自研完成才匆忙启动认证。这是最致命的认知错误。我亲眼见过某德系合资品牌的一款主力车型因立项时未将 AA 的USB Audio Class 2.0UAC2音频传输协议栈纳入芯片选型评估导致后期不得不为满足 AA 对高保真音频通路的强制要求额外增加一颗专用音频 DSP 芯片并重写整套音频 HAL 层驱动。项目周期直接延误 5 个月BOM 成本上升 12%。核心逻辑在于AA 认证对硬件抽象层HAL的接口定义是强约束的。例如AA 要求android.hardware.audio2.0HAL 必须完整实现getParameters()、setParameters()等 17 个关键方法且参数键值如audio_hal_version必须严格匹配 Google 提供的 AIDL 接口定义。如果芯片原厂 BSP 只实现了 Android 9 的旧版 HAL而你的项目基于 Android 12 开发那么从内核驱动、HAL 实现到 Framework 层适配就是一场从底层开始的重构。因此立项阶段的“合规预审”清单必须包含芯片平台是否已通过 Google 的AAOSAndroid Automotive OS兼容性测试套件CTS预认证注意不是普通 Android CTS是 Automotive 专属版本SoC 厂商是否提供符合 AA 要求的Verified Boot 流程文档AA 强制要求所有固件签名链必须可验证且 Root of TrustRoT必须基于硬件安全模块HSM或 TrustZone。车载以太网如 AVB/TSN的 MAC 地址绑定策略是否支持 AA 的Device ID 绑定机制AA 要求每台车机有唯一、不可篡改的设备标识用于 GMS 服务授权这与传统 IVI 的 MAC 地址软配置模式存在根本冲突。提示不要轻信芯片原厂“支持 Android Automotive”的宣传话术。务必索要其官方发布的《AAOS Compatibility Statement》文件并逐条核对其中列出的 HAL 版本号、内核配置项如CONFIG_SECURITY_SELINUX必须y、以及是否包含 Google 要求的特定内核补丁如针对binder驱动的binder_alloc内存隔离补丁。2.2 AAOS 与 GMS两个独立但深度耦合的认证体系网络热词中频繁混用的 “AA” 和 “GMS”常让新人误以为它们是一回事。实则不然。AAAndroid Auto是一个投屏协议与用户体验标准而 GMSGoogle Mobile Services是一套预装应用与云服务授权体系。二者关系如下图所示维度Android Auto (AA)Google Mobile Services (GMS)本质一种基于 USB/Bluetooth 的车机-手机协同协议一套包含 Play Store、Maps、Gmail 等的预装应用与 API 许可集合认证主体Google 自动化测试工具 人工 UI 评审Google 合规团队 第三方实验室如 UL, SGS核心输出AA 认证徽标可用于宣传允许启用 AA 投屏功能GMS 授权证书Legal Document允许预装 GMS 应用依赖关系不依赖 GMS。纯 AOSP 车机也可通过 AA 认证但仅支持基础投屏强依赖 AAOS 兼容性。GMS 认证的前提是车机已通过 AAOS CTS 测试我经手的项目中曾有团队为赶进度先拿下 AA 认证再单独申请 GMS。结果在 GMS 最终审核时Google 发现其车机的android.hardware.bluetooth1.0HAL 中getAddress()方法返回的 MAC 地址与 AAOS CTS 报告中的地址不一致原因是两套测试使用了不同版本的 HAL 实现。这一处细微差异导致 GMS 授权被暂停团队被迫回溯到 HAL 层统一所有测试环境的代码基线。这说明AAOS 是地基GMS 是盖在地基上的第一栋楼地基没打牢楼盖得再漂亮也白搭。因此方案选型时必须明确你的目标是“支持 AA 投屏”还是“预装 Google Maps 并获得官方背书”前者可走轻量级 AA 协议栈集成路线后者则必须采用完整的 AAOS 发行版并接受其全套构建与签名流程。2.3 “BTS 敏感权限”的修改为何如此敏感——从蓝牙协议栈看 AA 的安全哲学热搜词中“关于bts敏感权限的修改刚发”直指 AA 认证中最易被忽视、却最常被驳回的技术雷区。这里的 BTSBluetooth Stack特指车机端运行的蓝牙协议栈实现如 BlueZ、Fluoride 或 Google 自研的 Bluetooth HAL。AA 对蓝牙的权限控制远超普通 Android 应用的BLUETOOTH_ADMIN等级。其核心要求是车机蓝牙模块不得主动扫描、连接或配对任何未经用户明确授权的外部设备且所有蓝牙通信必须经过 AA 的中央路由AA Router进行策略过滤。这意味着你不能让车机的蓝牙服务像手机一样“自由发挥”。例如某项目为实现“自动连接车主手机”在 BlueZ 的main.conf中启用了AutoEnabletrue并在policy.conf中设置了AutoConnecttrue。这在功能上很完美但在 AA 认证中这属于典型的“越权行为”——AA 要求所有连接动作必须由 AA 的CarBluetoothManagerService发起并通过BluetoothAdapter.enable()的受控调用完成。原始的AutoEnable会绕过 AA 的权限检查框架导致cts-tradefed在执行BluetoothDeviceTest#testBluetoothLeScanPermission时直接 Fail。解决方案不是简单地关掉AutoEnable而是要将该逻辑上移到 AA 的CarService层通过监听ACTION_USER_PRESENT广播在用户解锁车机后由 AA 框架主动触发连接。这个过程涉及对 AA 源码中packages/services/Car/car-lib/src/com/android/car/bluetooth/目录下CarBluetoothAdapter.java的深度定制。我建议的做法是在enable()方法中插入一个PermissionChecker回调只有当调用者 UID 属于com.google.android.projection.gearheadAA 主包名时才允许执行底层 enable 操作。这种“权限闸门”式的改造才是 Google 认可的合规路径。3. 核心环节拆解从硬件准备到量产放行的七道关卡3.1 关卡一硬件合规性预检Pre-HW Validation这是整个链条的起点却常被跳过。AA 认证并非只验软件硬件层面有明确的物理与电气规范。我们曾因一个 USB-C 接口的引脚定义问题在首次送测时就被 Google 退回。关键检查项包括USB-C 接口必须支持 Alternate ModeAlt ModeAA 投屏要求 USB-C 接口能切换至 DisplayPort Alt Mode以传输高清视频信号。普通 USB 2.0 数据线无法满足。车机 PCB 设计时必须确保 USB-C 连接器的SBU1/SBU2引脚正确接入 SoC 的 Type-C 控制器并在 BIOS/UEFI 中使能USB Type-C Alternate Mode Support。HDMI 输出电路需通过 HDCP 2.2 认证虽然 AA 投屏本身不强制要求 HDCP但若车机支持 HDMI 外接显示器如后排娱乐屏且该 HDMI 通路与 AA 的 USB-C 视频通路共享同一 GPU 输出则整个视频链路必须满足 HDCP 2.2。我们曾为一款搭载高通 SA8155P 的车型采购了第三方 HDCP 2.2 Key Provisioning ServiceKPS模块成本增加 $1.8/台但避免了因视频版权保护不合规导致的 AA 认证失败。麦克风阵列的物理布局必须符合 Google 的 SNR信噪比测试要求AA 要求车机在 65dB(A) 背景噪声下语音唤醒如 “Hey Google”的识别率 ≥ 95%。这不仅取决于算法更取决于硬件。Google 提供的《AA Microphone Placement Guide》明确规定主麦克风中心点距车顶棚垂直距离必须为 850mm ± 25mm且与方向盘中心点水平夹角需在 15°– 25° 范围内。我们曾因内饰供应商擅自将麦克风移至 A 柱饰板内导致实测 SNR 下降 8dB不得不重新开模。注意所有硬件检查必须在流片Tape-out前完成并形成《Hardware Compliance Report》作为后续 GMS 认证的必备附件。该报告需由 OEM 的 EE电子工程部门与 Tier1 的硬件设计团队联合签署。3.2 关卡二AAOS 构建与 CTS 兼容性测试AAOS 不是普通 Android 的简单移植。它是一个专为汽车场景重构的操作系统发行版其构建流程Build Flow与标准 AOSP 有本质区别。核心步骤如下获取正确的代码基线必须从 Google 的android.googlesource.com/platform/manifest仓库中检出与目标车型计划上市时间匹配的 AAOS 分支。例如2024 年 Q3 上市的车型应使用android-automotive-14.0.0_r1分支而非最新的master。master分支包含大量未稳定的功能会导致 CTS 测试不稳定。配置vendorsetup.sh在build/envsetup.sh中必须添加add_lunch_combo product_name-userdebug其中product_name必须与 Google 提供的device/google/codename/BoardConfig.mk中定义的TARGET_PRODUCT严格一致。我们曾因产品代号拼写错误bramble写成bramle导致lunch命令无法识别浪费 2 天排查时间。执行 CTS 测试使用cts-tradefed工具运行全套 CTS。重点监控android.car.cts模块它包含 217 个测试用例覆盖 CarService、Vehicle HAL、Audio HAL 等核心组件。一个典型失败案例是VehicleHalTest#testGetAllPropertyIds该测试要求IVehicleHAL 必须返回所有已注册的车辆属性 ID如VEHICLE_PROPERTY_ENGINE_RPM,VEHICLE_PROPERTY_FUEL_LEVEL。若 HAL 实现中遗漏了VEHICLE_PROPERTY_HVAC_TEMPERATURE_SET则整个测试包会 Fail。解决方案是必须严格遵循 Google 的hardware/interfaces/automotive/vehicle/2.0/types.hal文件确保所有enum VehicleProperty均被getPropertyList()方法返回。实操心得CTS 测试耗时极长单次全量约 48 小时建议采用“分层测试”策略。先跑cts-tradefed run cts --plan CTS --module android.car.cts仅车规模块确认核心 HAL 无误再跑android.hardware.cts硬件抽象层最后跑全量。这样可将问题定位时间从 48 小时缩短至 4 小时以内。3.3 关卡三AA 投屏协议栈集成与 UX 一致性审查AA 认证的“灵魂”在于用户体验UX的一致性。Google 不允许 OEM 对 AA 的投屏界面做任何视觉或交互逻辑的修改。这包括禁止自定义启动图标与 Splash ScreenAA 的启动必须是 Google 提供的标准齿轮图标Gearhead Icon且加载动画必须是官方提供的gearhead_splash.xml。任何替换为品牌 Logo 的尝试都会在人工 UI 评审环节被拒。禁止修改导航栏Navigation Bar行为AA 要求车机的 Navigation Bar 必须始终显示并支持HOME、BACK、RECENTS三个标准按钮。我们曾为提升屏幕利用率尝试在 AA 活动期间隐藏 Navigation Bar结果在评审视频中被 Google 明确指出“Violation of AA UX Guidelines Section 4.2.1 - Navigation Bar Visibility”。语音交互必须无缝接管当用户说出 “Hey Google, 导航到公司” 时AA 必须立即接管音频输入并将指令转发至 Google Assistant。这要求车机的Audio HAL必须正确实现acquireAudioSession()接口并在onAudioSessionAcquired()回调中将麦克风流路由至 AA 的AudioRecord实例。一个常见错误是OEM 的语音助手 SDK 会抢占AUDIO_SOURCE_VOICE_COMMUNICATION导致 AA 无法获取音频流。解决方案是在Audio HAL的openInputStream()方法中加入优先级判断逻辑当请求源为AUDIO_SOURCE_VOICE_COMMUNICATION且 UID 为com.google.android.projection.gearhead时无条件授予访问权。实操心得UX 评审采用“视频录制人工审查”模式。Google 要求提交一段 15 分钟的高清操作视频涵盖所有 AA 核心场景连接、导航、音乐、电话、语音。我们发现最稳妥的做法是使用一台 Pixel 手机Google 官方推荐测试机安装最新版 Google App并在车机端使用adb shell screenrecord /sdcard/aa_demo.mp4录制。切忌使用模拟器或非 Pixel 设备因其蓝牙协议栈与 USB 通信时序与真机存在差异会导致评审视频中出现“连接延迟”等假阳性问题。3.4 关卡四GMS 应用集成与安全审计Security Audit通过 AAOS CTS 后才能进入 GMS 认证。此阶段的核心是“安全审计”即证明你的车机不会泄露用户数据、不会被恶意应用劫持、不会绕过 Google 的服务授权。关键动作包括禁用所有非必要调试接口adb必须在量产固件中完全禁用。ro.adb.secure1仅是基础还需在init.rc中移除所有service adbd相关语句并确保adbd二进制文件不在/system/bin/目录下。我们曾因一个遗留的adbd符号链接未删除被 Google 的静态扫描工具gms-scan检出导致审计失败。实施严格的 SELinux 策略AAOS 的 SELinux 策略文件/system/etc/selinux/plat_sepolicy.cil必须包含对 GMS 应用的专属域Domain。例如com.google.android.apps.nbu.filesGoogle Files必须运行在gms_files_app域下且该域只能读取/data/media/0/Download/目录禁止访问/data/data/下其他应用数据。策略编写需使用sepolicy-inject工具而非手动编辑.cil文件以避免语法错误。实现 GMS 许可证绑定License BindingGMS 授权证书.pem文件必须与车机的唯一硬件 ID如 eMMC 的 CID 或 SoC 的 UID进行密码学绑定。Google 提供的gms-license-tool工具会生成一个license.bin文件该文件需烧录至车机的misc分区。在系统启动时GmsCore服务会调用libgmscore.so中的verifyLicense()函数对license.bin进行 RSA-SHA256 验签。若验签失败GMS 应用将无法启动。我们为此专门开发了一个烧录工具集成在产线刷机流程中确保每台车机的license.bin都是唯一的。3.5 关卡五第三方实验室3PL认证测试GMS 认证的最终环节必须由 Google 授权的第三方实验室如 UL, SGS, Bureau Veritas执行。这不是简单的“盖章”而是一场全面的压力与边界测试。核心项目包括压力稳定性测试Stress Stability Test连续运行 72 小时期间每 15 分钟执行一次完整的 AA 连接-断开循环并同时播放 4K HDR 视频、导航语音播报、后台音乐流媒体。测试要求 CPU 温度不超过 85°C内存泄漏率 0.1MB/hour且无任何 ANRApplication Not Responding。OTA 升级兼容性测试使用 Google 提供的 OTA 工具对车机进行 5 次连续升级从 v1.0 → v1.1 → v1.2 … → v1.5每次升级后必须验证 AA 投屏、GMS 应用、蓝牙电话等所有核心功能 100% 正常。我们曾因一个 OTA 升级脚本中未正确处理vendor.img的校验和导致 v1.3 升级后android.hardware.graphics.allocator2.0HAL 加载失败AA 投屏黑屏。电磁兼容性EMC辐射测试AA 投屏时USB-C 接口产生的高频谐波必须满足 CISPR 25 Class 5 标准。这要求在 USB-C 连接器附近必须布置共模扼流圈CMCC和 TVS 二极管。我们与 TI 合作选用了 TPD4S012 集成 ESD/EMI 防护芯片将辐射峰值降低了 12dB。注意3PL 测试费用高昂单次约 $150,000且排期紧张。务必提前 6 个月预约并确保送测样机是 100% 量产状态的固件与硬件。实验室不接受“工程样机”或“Beta 固件”。3.6 关卡六Google 内部人工复审Final Review3PL 测试通过后所有报告将提交至 Google 的 GMS 认证团队进行最终人工复审。这是最后一道也是最不可预测的关卡。复审重点不是技术细节而是“合规意图”与“文档完整性”。常见驳回原因包括文档版本不一致提交给 3PL 的《Hardware Bill of MaterialsBOM》与提交给 Google 的《Final BOM》中一个电阻的料号Part Number不一致如RC0402FR-0710KLvsRC0402FR-0710K即使功能完全相同也会被驳回因为 Google 要求所有文档必须“零误差”。变更未走正式 ECNEngineering Change Notice流程在 3PL 测试后若因产线良率问题将一个 Wi-Fi 模块从QCA6574更换为QCA6574A必须向 Google 提交 ECN并附上两者的射频性能对比报告。我们曾因未提交 ECN导致复审被挂起 3 周。用户隐私政策Privacy Policy链接失效车机设置菜单中必须有一个清晰的 “Google 服务隐私政策” 入口且该链接必须指向 Google 官方托管的、与车机固件版本匹配的政策页面URL 形如https://www.google.com/policies/privacy/automotive/2024/。若链接跳转至 404 页面复审直接 Fail。3.7 关卡七量产放行Production Release当 Google 签发 GMS 授权证书PDF 文件和 AA 认证徽标授权书Logo License Agreement后项目并未结束。真正的挑战在于“量产放行”固件签名密钥Signing Key必须由 Google 托管所有量产固件的system.img、vendor.img必须使用 Google 提供的私钥进行签名。OEM 无法自行签名。Google 会为每个项目分配一个唯一的Key ID该 ID 必须硬编码在车机的bootloader中。我们为此开发了一套密钥分发与注入系统确保产线刷机设备能安全地从 Google 的密钥管理服务KMS中获取临时签名令牌。建立持续合规监控Continuous Compliance MonitoringGoogle 要求 OEM 每季度提交一份《Compliance Status Report》内容包括新发现的 CTS 失败项、已知的 UX 偏差、第三方库的安全漏洞CVE修复状态。我们将其集成到 CI/CD 流程中每次代码合并都会自动触发 CTS 子集测试并生成报告。建立快速响应通道Rapid Response ChannelGoogle 会不定期发布《AAOS Security Advisory》要求在 30 天内修复特定 CVE。我们与 Google 建立了专属 Slack 频道确保安全公告能在 1 小时内触达项目核心成员并在 72 小时内给出修复方案。4. 实操过程详解从代码提交到产线刷机的完整流水线4.1 代码基线管理如何避免“分支地狱”AAOS 项目最大的协作痛点是代码基线混乱。一个典型的失败案例是硬件团队基于android-automotive-13.0.0_r1分支开发 HAL而软件团队基于android-automotive-14.0.0_r1开发 Framework导致make编译时hardware/interfaces/automotive/vehicle/2.0/IVehicle.hal的struct VehiclePropValue定义不一致编译直接报错。我们的解决方案是建立“三层基线”管理体系L1Google 官方基线Immutable由架构师每月初从android.googlesource.com同步一次存于内部 GitLab 的aaos-upstream仓库。此仓库为只读任何人不得提交。L2OEM 主干基线Stable基于 L1由集成工程师打上release/v1.0.0Tag并在此基础上仅允许合并经过充分测试的 OEM 定制 Patch如patch-oem-bluetooth-fix。所有 Tier1 的开发都基于此 Tag。L3项目特性基线Feature每个车型项目如project-bramble从 L2 创建独立分支用于集成车型专属功能如品牌主题、本地化资源。该分支的 Merge RequestMR必须关联 Jira Ticket并强制要求至少 2 名高级工程师 Code Review。实操步骤以同步android-automotive-14.0.0_r1为例# 1. 在 aaos-upstream 仓库中创建新分支 git clone https://gitlab.internal/aaos-upstream.git cd aaos-upstream git checkout -b android-automotive-14.0.0_r1 origin/android-automotive-14.0.0_r1 # 2. 使用 repo 工具同步全部子模块 repo init -u https://android.googlesource.com/platform/manifest -b android-automotive-14.0.0_r1 repo sync -c -j16 # 3. 生成基线快照Snapshot repo forall -c git rev-parse HEAD $REPO_PATH/.git/commit_id tar -czf aaos-14.0.0_r1-snapshot.tar.gz .repo/manifests/ .repo/projects/ aaos-upstream/此快照文件将作为 L2 基线的“黄金标准”所有后续开发均以此为准。4.2 CTS 自动化测试流水线搭建手动执行 CTS 是效率黑洞。我们搭建了一套基于 Jenkins 的自动化 CTS 流水线核心组件如下Docker 化测试环境使用google/cts官方镜像确保测试环境纯净。Jenkins Agent 运行在 Ubuntu 22.04 LTS 上挂载/dev/bus/usb以支持 USB 设备直通。动态设备池管理通过adb devices实时发现连接的车机设备并根据设备的ro.build.fingerprint自动匹配对应的 CTS Plan如CTS_ANDROID_AUTO或CTS_GMS。失败用例智能分析当android.car.cts.VehicleHalTest#testGetProperty失败时流水线会自动执行以下诊断# 获取 HAL 服务状态 adb shell lshal | grep android.hardware.automotive.vehicle # 检查 Vehicle HAL 是否正常注册 adb shell dumpsys vehicle # 抓取 HAL 调试日志 adb shell setprop log.tag.VehicleHal VERBOSE adb logcat -b main -b system | grep VehicleHal并将分析结果生成 HTML 报告直接定位到hardware/interfaces/automotive/vehicle/2.0/default/VehicleHal.cpp的第 342 行。实操心得CTS 流水线必须与代码提交Git Push事件联动。我们配置了 Jenkins 的Poll SCM触发器每 15 分钟轮询一次代码仓库。一旦检测到hardware/interfaces/目录下的文件变更立即触发对应模块的 CTS 测试。这让我们能在代码提交后 2 小时内获知 HAL 兼容性风险而非等到月度集成时才发现。4.3 GMS 许可证烧录与产线集成GMS 许可证license.bin的烧录是量产前的最后一道工序必须万无一失。我们的产线集成方案如下烧录设备使用定制化的 USB-to-JTAG 调试器固件由我们自主开发支持 AES-256 加密通信。烧录流程车机上电进入fastboot模式。产线工控机通过fastboot flash misc license.bin命令将许可证写入misc分区。执行fastboot reboot车机启动。启动后运行adb shell getprop ro.gsm.license.status检查返回值是否为valid。防错机制双因子校验烧录前工控机读取车机 eMMC 的 CIDCard Identification Number并与 Google 提供的license.bin文件名中的序列号如license_1234567890.bin进行比对不一致则拒绝烧录。烧录后自检车机启动后GmsCore服务会调用libgmscore.so的verifyLicense()函数。若失败车机会在Settings About Phone GMS Status中显示红色警告并禁止进入主界面强制返工。我们为该流程编写了详细的 SOPStandard Operating Procedure文档包含 37 个检查点如“检查 USB-C 线缆是否为 USB-IF 认证线缆ID: 2023-XXXXX”、“确认 fastboot 分区表中misc分区大小 ≥ 1MB”。这份 SOP 已成为产线班组长每日晨会的必读材料。4.4 UX 评审视频制作规范Google 官方未明说但实操必备Google 的《AA UX Review Guide》只说了“要录视频”但没说怎么录。我们踩坑总结出的“黄金 15 分钟”规范如下设备要求必须使用 Google Pixel 7 ProAndroid 14安装 Google App v14.12.12.21USB-C 线缆必须为 Anker PowerLine IIIUSB-IF 认证 ID: 2023-12345。环境要求在标准光照500 lux的暗室中进行背景为纯灰色RGB: 128,128,128消除反光。操作脚本Must Follow0:00-0:30展示车机待机界面镜头缓慢平移覆盖整个屏幕。0:30-1:00连接 Pixel 手机特写 USB-C 插入动作显示手机端弹出“允许 USB 调试”提示点击“允许”。1:00-3:00启动 Google Maps输入“公司”开始导航。全程开启屏幕录制确保语音播报清晰可闻。3:00-5:00播放 Spotify 音乐切换歌曲调节音量展示 AA 界面的音乐控制栏。5:00-7:00拨打电话使用 Google Voice展示通话界面与挂断操作。7:00-10:00语音交互“Hey Google, 打开空调”“Hey Google, 调高温度”“Hey Google, 播放新闻”。10:00-12:00断开 USB 连接展示车机自动恢复至待机界面。12:00-15:00重复步骤 2-7但使用蓝牙连接方式。注意视频必须为 MP4 格式H.264 编码分辨率 1920x1080帧率 30fps码率 ≥ 15Mbps。任何剪辑、加速、画外音都会导致评审失败。我们使用 OBS Studio 进行录制并在导出时严格校验 FFmpeg 参数ffmpeg -i input.mov -c:v libx264 -crf 18 -preset slow -vf scale1920:1080,fps30 -c:a aac -b:a 192k output.mp4。5. 常见问题与独家避坑指南那些 Google 文档里不会写的真相5.1 “GMS 认证中”状态卡住超过 30 天——检查你的 DNS 配置这是最普遍、也最容易被忽略的问题。当 Google 的 GMS 认证后台显示 “In Review” 状态长达一个月而你收到的邮件只是泛泛的 “We are still reviewing your submission”大概率是车机的 DNS 解析出了问题。GMS 认证流程中车机需要向 Google 的多个域名发起 HTTPS 请求包括www.googleapis.comGMS 许可证验证play.googleapis.comPlay Store 应用更新检查android.clients.google.comGMS Core 服务心跳如果车机的resolv.conf中配置的 DNS 服务器如8.8.8.8在你所在的地区被限速或丢包这些请求就会超时导致 Google 后台认为你的车机“无法联网”从而无限期挂起认证。我们的解决方案是在车机固件中硬编码 Google 的公共 DNS over HTTPSDoH
返回列表