Android 13 通过修改 AOSP 禁用扬声器

时间:2025-02-18 13:41:07

需要深入修改音频系统的路由策略和硬件抽象层。以下是具体实现方案:

核心实现路径
修改音频路由策略(AudioPolicyManager)

控制音频硬件输出(Audio HAL)

强制静音系统音量(AudioService)

方案一:禁用扬声器路由策略
修改文件:

frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp

代码修改:

// 在 getDevicesForStrategy() 中移除扬声器设备
DeviceVector getDevicesForStrategy(...) {
    DeviceVector devices;
    
    switch (strategy) {
        case STRATEGY_MEDIA:
        case STRATEGY_SONIFICATION:
        case STRATEGY_ACCESSIBILITY:
            // 原代码:devices.add(mAvailableOutputDevices.getDevicesFro