修改配置文件实现手机双扬声器
需求修改系统,至于是root还是magisk模块等骚操作把文件换掉都可以
把系统中 /etc/mixer_paths_mtp.xml 文件拷出来编辑
先来说一些基础的,这是一个xml文件,那么数据都是又头有尾的,比如
<path>
</path>
这就是他的头和尾
找到 <path name="handset">
的节点,然后把里面的内容复制到 <path name="speaker">
的节点中
另外,在听筒(handset)的参数中, 拥有一个 Digital Volume 的参数,可以改大来增大听筒的音量(百分比),但是写到扬声器(speaker)中会限制音量
举个例子
<path name="speaker">
<ctl name="RX3 MIX1 INP1" value="RX1" />
<ctl name="LINE_OUT" value="Switch" />
</path>
<path name="handset">
<ctl name="RX1 MIX1 INP1" value="RX1" />
<ctl name="RDAC2 MUX" value="RX1" />
<ctl name="RX1 Digital Volume" value="84" />
<ctl name="EAR PA Gain" value="POS_6_DB" />
<ctl name="EAR_S" value="Switch" />
</path>
那么就应该把speaker的那一个修改为
<path name="speaker">
<ctl name="RX3 MIX1 INP1" value="RX1" />
<ctl name="LINE_OUT" value="Switch" />
<ctl name="RX1 MIX1 INP1" value="RX1" />
<ctl name="RDAC2 MUX" value="RX1" />
<ctl name="EAR PA Gain" value="POS_6_DB" />
<ctl name="EAR_S" value="Switch" />
</path>
保存,放回系统中去或者放到magisk模块中,重启系统即可生效
要是没声音,换个编辑器来编辑,VsCode我也不知道为什么是不行的
修改一台ZTE 701zt的日本儿童手机,听筒音质实在是太好了声音还大,他的配置是在 /system/etc/mixer_paths_msm8909_pm8916.xml
具体怎么知道是哪一个呢,就几个 mixer_paths
开头的,都备份了挨个删掉试一下有没有声音就知道了,
也有可能在 /system/vendor/etc/
中
除了可以重启手机,在一次bootloop的时候找到了办法
killall audioserver
killall android.hardware.audio.service
killall -9 com.sec.android.app.soundalive
这样就应用了最新的配置了,那么我恰好adb有root,只要写一个脚本,点一下就能应用
adb push mixer_paths_msm8909_pm8916.xml /system/etc/
adb shell killall audioserver
adb shell killall android.hardware.audio.service
adb shell killall -9 com.sec.android.app.soundalive
使用上面的方式将 handset
的内容放到 speaker
中已经没有效果了,因为音频是使用i2s输出的,完全就没有用 speaker
中的内容,经过测试,注释掉deep-buffer-playback-zte-smart-pa
里面的内容就没有声音了,说明外放就是这部分,通过多次尝试,上方的 deep-buffer-playback
中使用的 PRI_MI2S_RX
即为听筒,那我们就加一行,将 PRI_MI2S_RX
也加入 MultiMedia1
<path name="deep-buffer-playback-zte-smart-pa">
<ctl name="QUAT_MI2S_RX Audio Mixer MultiMedia1" value="1" />
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia1" value="1" />
</path>
但是发现没声音,是因为听筒的 RX1
需要打开,因此从 handset
复制过来
<path name="deep-buffer-playback-zte-smart-pa">
<ctl name="QUAT_MI2S_RX Audio Mixer MultiMedia1" value="1" />
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia1" value="1" />
<ctl name="RX1 MIX1 INP1" value="RX1" />
<ctl name="RDAC2 MUX" value="RX1" />
<ctl name="RX1 Digital Volume" value="82" />
<ctl name="EAR PA Gain" value="POS_6_DB" />
<ctl name="EAR_S" value="Switch" />
</path>
其中 <ctl name="RDAC2 MUX" value="RX1" />
这会进行数模转换降低音质,但是方便放大到更大的音量,关闭后把 RX1 Digital Volume
从82改到87也能发出相同的响度,你可以自行修改,反正应用非常容易
如果咩咩的文章对你有帮助,您可以 请我喝牛奶