-
Notifications
You must be signed in to change notification settings - Fork 1
Description
扬声器禁用与耳机路由模块
模块ID: AudioRouterModule | 版本: v1.0 | 作者: wanganyi
📌 核心功能
本模块专为已获取Root权限(使用APatch或KernelSU管理)的设备设计,旨在解决一个特定需求:完全禁用设备的内置扬声器,并确保当有线耳机插入时,所有媒体音频能自动、强制地从耳机输出。
它通过直接操控设备音频芯片(sprdphone-sc2730)的底层混音器控件来实现,是一种系统级的、持久化的解决方案。
⚙️ 工作原理
1.拦截时机:在系统启动早期(post-fs-data阶段),等待音频服务就绪后,自动执行预设命令。
2.底层控制:调用设备自带的 tinymix 工具,向音频驱动发送精确指令:
· tinymix 144 0 与 tinymix 145 0: 关闭主扬声器和副扬声器的功能开关。
· tinymix 155 1: 启用扬声器的软件静音开关,双重保险。
· tinymix 147 1 与 tinymix 157 0: 开启耳机功能开关,并确保其未被静音。
3.结果:上述设置使音频信号通路在物理上切换至耳机端口,扬声器电路不再接收播放信号,从而实现“插入耳机即有声音,扬声器保持静默”的效果。
🛠️ 技术特性
· 精准控制:针对特定音频芯片型号(sprdphone-sc2730)编写,命令高效且直接。
· 轻量无驻留:仅在开机时执行一次命令,不占用任何后台资源或内存。
· 兼容性强:适用于使用 APatch 或 KernelSU 作为Root方案的设备,尤其适合台电M40 (N9H1) 及刷写相同内核和类原生系统的设备。
· 安全可逆:模块不修改任何系统分区文件,仅运行脚本。禁用或卸载模块后重启,设备音频路由将完全恢复至系统默认状态。
📥 安装与使用
1.前提条件:
· 设备已通过 APatch 或 KernelSU 获取Root权限。
· 已安装对应的模块管理器。
2.安装:
· 下载 AudioRouterModule.zip 包,在APatch/KernelSU管理器中通过“安装模块”或“本地安装”功能刷入。
· 重启设备使模块生效。
3.开关控制:
· 开启:在APatch/KernelSU管理器中启用本模块,然后重启。
· 关闭:在管理器中禁用本模块,然后重启。音频路由将恢复为系统自动管理。
· 设备特定性:本模块的命令参数基于台电M40 N9H1 (LineageOS 19.1) 提取。在其他设备上可能无效,甚至导致无声,请勿直接跨设备使用。
· 功能范围:仅控制媒体播放的音频路由,系统提示音、通话音频可能遵循不同的路径,可能不受影响。
· 重启生效:任何模块的启用/禁用操作都必须重启设备后才能生效。
· 问题排查:安装后,可在 /data/local/tmp/audiorouter.log 查看模块运行日志。
🔮 未来可扩展性
此模块框架为未来可能的增强功能奠定了基础:
· 可配置化:可升级为通过配置文件动态调整 tinymix 参数,适配更多设备。
· 状态查询:可集成一个简单的Shell命令或小部件,用于检查当前音频路由状态。
· 蓝牙耳机支持:可扩展脚本逻辑,增加对蓝牙音频设备连接状态检测和路由切换。