一种解决MIUI无法全局DAC的方案(需Root)

您所在的位置:网站首页 音乐独占usb输出 一种解决MIUI无法全局DAC的方案(需Root)

一种解决MIUI无法全局DAC的方案(需Root)

2024-07-06 02:57| 来源: 网络整理| 查看: 265

写在前面:这个方案需要root权限,同时可能造成较大的安全性问题(后面会提到),如果对声音质量不是那么敏感或是担心会出现安全性问题的人,则不建议使用该方案。

方案来自XDA开发者论坛:https://forum.xda-developers.com/t/guide-how-i-got-viper4android-working-on-rooted-xiaomi-eu-rom.3913030/page-2

我在帖子里面看到了某些楼层提供了不错的解决方案,尝试后发现可行。

众所周知,MIUI没有原生安卓全局DAC的功能(或者说无法调节个别usb音频设备的音频输出码率),对于某些千元机(例如我的K30 5G),则会出现非常严重的音质失真,其在低音量下尤其明显。前段时间和同学讨论的时候都是用第三方带USB独占的播放器来解决的,如海贝,ViperHiFi等,弊端则非常明显,使用USB独占时其他软件无法通过USB声卡输出声音,导致其他软件包括系统应用无声或只能通过扬声器输出。

经过多方查询摸索,最终发现可能是SELinux安全模块导致了问题的发生,MIUI对系统做出的某些更改可能导致了全局DAC的相关功能违反了SELinux的安全策略,从而对操作进行了拦截。关于SELinux这里提供百度百科链接,可自行去了解:https://baike.baidu.com/item/SELinux/8865268?fr=aladdin

那么可能性的问题在这里,解决方案就比较容易去寻找了,按百度百科的说法:

“SELINUX有「disabled」「permissive」,「enforcing」3种选择。

Disabled就不用说了,Permissive就是Selinux有效,但是即使你违反了策略的话它让你继续操作,但是把你的违反的内容记录下来。在我们开发策略的时候非常的有用。相当于Debug模式。

Enforcing就是你违反了策略,你就无法继续操作下去。”

这时我们当然需要把SELinux的模式从Enforcing切换到Permissive,从而全面消除对相关功能的干预,当然由于它也负责很多安全策略,所以关闭之后系统的安全性会出现可能性的降低,在此请慎重考虑您的数据价值是否值得您去这么做。

那么详细步骤如下:

获取您手机的Root权限,关于Root的教程网上实在太多,挑选一个比较合适的就行,在此不多赘述,但是强调一句,Root之前当然要先解BL锁,如果您之前没有做过相关解锁操作,请注意小米手机解锁有168小时的绑定冷却期。

下载SELinuxModeChanger,并安装。

原工程Github地址:https://github.com/MrBIMC/SELinuxModeChanger/releases

由于中国大陆Github裸连速度慢,方便国内用户下载,在此提供百度网盘链接:

链接:https://pan.baidu.com/s/1GxkRFBE-UWlk6JJiQ1FSUA  提取码:seli

打开软件,点击 PERMISSIVE 按钮,此时你的Root权限管理软件会提示超级用户权限授权窗口,允许即可,之后再测试您的外置声卡,这时应该就可以正常输出全局音频了。

此处已经点击PERMISSIVE所以按钮为灰

下面两个选项分别为通知栏常驻和开机自启,如果你觉得软件启动后在通知栏碍眼,可以关闭第一个选项,如果你不需要开机自启,可以关闭第二个选项。

再次强调关闭SELinux可能造成安全性问题,本人对此概不负责,请仔细思考。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3