已验证 创建 2026/06/06 更新 2026/07/06
补丁涉及多个音频策略 XML 文件(如 audiopolicyconfiguration.xml),这些文件定义了 Android 音频流如何映射到物理硬件。
#gms
[GMS] 音频策略配置优化:移除耳机设备映射 (Audio Policy)
概述
本文档记录了针对 audio_policy_configuration.xml 及其相关配置的优化方案。通过移除有线耳机(Wired Headset/Headphone)及相关麦克风的设备端口定义与路由映射,强制系统规避对模拟音频接口的识别与路由分配,以满足特定项目的 GMS 认证或硬件适配需求。
一、配置变更详情
A. 移除输出设备定义 (Device Ports)
在 audio_policy_configuration.xml 中删除以下物理输出端口定义,以阻断系统对耳机硬件的识别:
<devicePort tagName="Wired Headset" type="AUDIO_DEVICE_OUT_WIRED_HEADSET" role="sink"/>
<devicePort tagName="Wired Headphones" type="AUDIO_DEVICE_OUT_WIRED_HEADPHONE" role="sink"/>
<devicePort tagName="Analog Dock Headset" type="AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET" role="sink"/>
影响分析:
- 硬件识别: 系统将不再枚举 3.5mm 接口及模拟音频坞站设备。
- 能力协商: 屏蔽相关的采样率扫描(如 44.1kHz/48kHz)及位深格式(16bit/24bit/32bit)协商。
B. 移除录音输入设备 (Input Ports)
移除有线耳机麦克风的输入接口定义,禁止系统调用该输入源:
<devicePort tagName="Wired Headset Mic" type="AUDIO_DEVICE_IN_WIRED_HEADSET" role="source"/>
影响分析:
- 音频源列表: 录音输入源列表中将移除此条目。
- 输入切换: 应用层无法再选择有线耳麦作为音频录制输入源。
C. 修改音频路由表 (Routes)
从 Mix Port 路由定义中移除上述设备的所有关联,切断音频流向路径:
<route type="mix" sink="Wired Headset" sources="primary_output,deep_buffer,..."/>
影响分析:
- 路由决策:
AudioPolicyManager在处理音频流路由时,因匹配不到目标设备,将自动回退(Fallback)至扬声器(Speaker)或主音频输出设备。
二、验证方法
在设备端执行以下命令,确认已生效:
# 检查可用输出设备列表
dumpsys media.audio_policy | grep -A 20 "Available output devices"
预期结果:
- 输出设备列表中不再出现
Wired Headset、Wired Headphones等相关项。 - 确认系统音轨不会因耳机插入而异常触发路由切换。