整理中 创建 2026/06/06 更新 2026/06/06
补丁涉及多个音频策略 XML 文件(如 audiopolicyconfiguration.xml),这些文件定义了 Android 音频流如何映射到物理硬件。
#gms
[GMS]去除耳机模拟
补丁涉及多个音频策略 XML 文件(如 audio_policy_configuration.xml),这些文件定义了 Android 音频流如何映射到物理硬件。
🔧 补丁改动说明
A. 移除设备定义(devicePort)
删除了以下物理端口的定义:
<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"/>
devicePort 代表硬件接口。移除后,系统不再认为芯片上存在 3.5mm 耳机孔或类似的模拟输出链路,也不再扫描这些端口的采样率(44.1k / 48k)和格式(16-bit / 32-bit)。
B. 移除录音输入(Wired Headset Mic)
删除了模拟耳机的麦克风输入接口:
<devicePort tagName="Wired Headset Mic" type="AUDIO_DEVICE_IN_WIRED_HEADSET" role="source"/>
系统录音时,可选的 Source 将不再包含有线耳麦。
C. 修改路由表(routes)
删除了 Mix Port 到 Sink Port 的连接关系:
<route type="mix" sink="Wired Headset" sources="primary_output,deep_buffer,..."/>
即便上层应用尝试往耳机发声,AudioPolicyManager 也会因找不到 Route 而失败,从而 fallback 到扬声器或其他设备。
✅ 验证方法
确认配置是否已生效:
dumpsys media.audio_policy | grep -A 20 "Available output devices"
📎 附件
附件:0001-.patch