bluetooth keeps stopping 已解决!!!
前言
前言部分很多废话,如果不想看就直接看下面的解决办法
注:本文只提供参考,进行操作前请一定要备份好个人数据,否则请自行承担风险。请把本文看完后再自行斟酌你需要做什么操作,不要看了半截文章就开跑。
我的k40,一年多前刷了残芯twrp和乌堆官改包。然后昨天由于某些原因,我刷了新的安卓13的twrp,然后发现解密分区失败,然后再换安卓11的twrp刷入,因为我的k40是安卓11,解密分区正常了,刷入了delta 面具,开机后发现蓝牙崩了,报错信息类似于:蓝牙屡次停止运行
、Bluetooth keeps stopping
。随后我翻遍了GitHub、XDA社区、Reddit、小米欧洲论坛等发现很多人都有遇到这个问题,情况都差不多,刷了delta面具,刷回低版本twrp仍然蓝牙崩溃,也有和我一样去把/data/user_de/0/com.android.bluetooth
和 /data/user_de/0/com.xiaomi.bluetooth
相关文件补上,并把相关文件修改owner和group为Bluetooth依然无法解决的。总结来说,罪魁祸首基本可以判定为twrp导致,当前来看这是一个bug,在XDA和GitHub中,有的用户提供了一些可行的解决办法,但最终都指向了一个必要的操作:在twrp中reset factory,随后开机进系统就好了,但是代价太大了,让人觉得有点烦。以下提供一个完美的解决办法。
解决办法
MT管理器进入终端界面,用su执行restorecon -R -F /data
即可(回显SELinux: Loaded file_contexts即成功)
直接执行即可,执行完后,蓝牙就可以正常开关了,且不影响手机的正常使用,手机数据文件一切正常,反正笔者执行后是这样,当然不排除有亿分之一的概率出现未知问题,执行此命令前强烈建议你将重要数据先进行备份!
关于restorecon命令:
restorecon 命令用于重置文件或目录的 SELinux 安全上下文,使其与策略中指定的默认上下文相匹配。在安卓终端执行 restorecon -R -F /data 命令的效果如下:
-R 选项表示递归地应用于指定目录及其所有子目录和文件。
-F 选项表示强制执行 restorecon 命令,即使文件的当前上下文已经与默认上下文匹配也会进行处理。
/data 参数指定了要处理的目录路径,即数据分区的根目录。
因此,执行 restorecon -R -F /data 命令将会重置数据分区中所有文件和目录的 SELinux 安全上下文,确保它们与策略中指定的默认上下文相匹配。这可以帮助确保系统的安全性和稳定性,并解决某些权限或访问问题。
此解决办法是我从GitHub看到的,参考链接如下,非常感谢大佬的解决办法:
https://github.com/TeamWin/android_bootable_recovery/issues/332
https://github.com/topjohnwu/Magisk/issues/6389
疑惑的事情
不用看这里了,这里是没有价值的信息。赶紧执行
restorecon -R -F /data
今早起床打开手机蓝牙试了一下,居然莫名其妙好了。
回想之前做过的操作:
1、联系k40的朋友把/data/user_de/0/com.android.bluetooth
和 /data/user_de/0/com.xiaomi.bluetooth
下的文件补齐了,还把文件的user和group都改为了Bluetooth
2、重启了几次系统,重启几次到了twrp
3、蓝牙提示屡次停止运行的时候点击了报告
其他就没做什么操作了,有点扑朔迷离。
4、无聊开关了一下NFC功能
参考资料
GitHub:https://github.com/topjohnwu/Magisk/issues/6389
XDA:https://forum.xda-developers.com/t/bluetooth-problem-after-flashing-twrp.4546467/
reddit:https://www.reddit.com/search/?q=Bluetooth keeps stopping
xiaomi.eu:https://xiaomi.eu/community/threads/bluetooth-keep-crashing.67498/
解决办法参考了:
https://github.com/TeamWin/android_bootable_recovery/issues/332
https://github.com/topjohnwu/Magisk/issues/6389