November 6, 2018

修复 iOS 来电阻止与身份识别 中没有开关 / 无法更改设置的问题

如今的各类骚扰和诈骗电话层出不穷,安装一个能识别陌生来电的应用,利用 CallKit 阻止此类来电非常有必要。不过有的时候,这个功能会出现一些奇奇怪怪的 bug:

  • 某些开关再也不显示了;
  • 某些开关的设置无法更改了;
  • 某些开关的顺序无法调整了。

比较多见的情况是在安装了“腾讯手机管家”后,手机管家的数据某天突然无法写入,同时其他同类 App 的开关也不再显示。没错,我们今天也碰到了这个 bug。

Golden sigh

“我能怎么办?我也很无奈” 图片来源

网上有许多同类问题,但是解决方案,Apple 和 App 开发商都没有给出:

经过简单研究,我们发现,其实只需要将残留损坏的“身份识别”数据删除,即可解决此类问题。

需要有 root 用户权限,以 root 用户登陆后:

rm /private/var/mobile/Library/CallDirectory/CallDirectory.db

重新安装防骚扰类的 App,开关就回来了,并且数据也能正常写入,同时用户自定义的黑名单也不受影响。

Before fix

修复前,安装的钱盾 App 不显示开关

After fix

修复后,开关正常显示,用户黑名单保留

也许在下一个 iOS 更新版本中,Apple 应该添加一个“清除身份识别数据”的按钮,否则如果没有 root 用户权限,只有全新刷机才能恢复此功能的正常使用。

作为用户,此类 App 安装一个即可,在一定程度上可以降低“身份识别”数据出错的几率。


(End)


本文采用 知识共享 署名-非商业性使用-禁止演绎 4.0 国际 许可协议
This article is licensed under Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)

沪ICP备15044284号-1