Cydia有问题插件的排除方法及其排查原理介绍
脚本之家
Cydia的插件会引起系统冲突导致白苹果,菊花,闪退等问题的一般都是基于MobileSubstrate(为偷懒,下面就全部简称MS了)这个环境的(其实91的白苹果修复工具也就是一刀切地删除它所有的启动调用),开机时首先载入MS 环境,然后调用依赖于它的插件,这些插件一般都是常驻内存的,所以如果相互之间配合不好就会导致出现一些稀奇古怪的问题,就是因为这个原因,saurik在将 MS 更新到0.9.3997 版本后,增加了一个新的功能,那就是如果因为基于MS 环境的插件导致启动时出现问题,不能进入桌面时,可以在系统启动时按住 “音量+”按键来临时取消所有的MS的环境,当MS环境停用后,就像地基一样,基于它的全部的插件就同时被停用,那么如果是进不了桌面的,我们可以先通过 按住“音量+”键进桌面,然后再使用SBS或iCP来一个个排查!
排查的原理就是:
基本所有的MS插件的开机引导都是由位于:/Library/MobileSubstrate/DynamicLibraries目录下的相同前缀的2个文件组成,一个是plist文件,一个是dylib; dylib文件就是主启动执行程序,那么只要把文件后缀名修改一下,让其无法调用即可达到临时禁用的目的!,说了这么多,下面开始实际操作了!
SBS使用篇:
状态栏横向滑动,唤出SBS后,选择点击左下角的More,进入SBS的设置界面,如下图:
将设置页面移到下部分,可以看到有一个Mobile Substrate Addons 的选项,如下图:
点击进入后就会看到全部的基于MS环境的插件列表,如下图:
这些开关的名字基本和你安装的插件的名字基本大部分是一样的,找到出问题前安装的插件,或者选择你觉得可能有问题,冲突的插件,将开关关闭,此时,这个开机调用插件的主程序就会被从dylib文件修改为:disabled格式文件,这样在开机时就不会调用了!
iCP 使用篇:
从桌面iCP程序图标打开程序,如果机友们安装后是英文版,可以在下面4个选项的最右边的Language Selection 里面选择简体中文,入下图:
设置好语言后,我们选择下面4个选项的第二个,然后往下拉,就会看到MobileSubstrate插件部分,和SBS一样,只需要将怀疑的插件开关关闭即可!!如下图:
注意事项和技巧:
1:不要贪多,最好是一次关闭一个,在关闭后重启,看还有问题没,如果还是一样,把关闭的打开,继续关闭下一个可能的插件后重启,直到找出问题的插件。
2:当找到问题插件后,将开关打开,打开后不要respring刷新或重启,直接进Cydia将其卸载即可!如果没有打开直接卸载了,也可以在插件卸载后进入 /Library/MobileSubstrate/DynamicLibraries 目录手动将修改为:xxx.disabled 的原启动程序删除
3:这个方法还适用于一些必须安装的依赖,比如LIBHIDE,很多程序,包括SBS都是要有基于它的安装,你卸载它就会附带卸载掉依赖于它的全部插件程序,但是它开启有经常会导致桌面上出现原先系统自身隐藏的白图标的程序,你可以用这个开关将其禁用即可,还有喜欢Quick Do的 ,你也可以通过此方法禁用其它程序安装所需要的Activator的手势依赖(在安装以后,不需要什么空包)!