心儀的插件等得天荒地老還是不更新,偏偏部分功能可以使用,部分軟件又不兼容。心癢難撓。今天介紹一個方法,給我們的插件建個“白名單”
一、實例
iOS6時代非常出名的未上架插件【Emphasize】能給系統配置“顏色主題”如圖:
非常性感吧。作者源:rpetri.ch/repo
可惜打開微信的時候卻是這樣的:
這不是徹底被廢了嗎
那該怎麼辦?
二、白名單的建立
基於MobileSubstrate的插件,都會在目錄\Library\MobileSubstrate\DynamicLibraries\ 下面生成兩個文件,一個是xxxx.dylib 另一個是xxxx.plist dylib 通常是插件主程序(或者是喚醒程序) 而plist 則包含了插件的重要信息:作用位置! MobileSubstrate 會根據.plist文件的記載在特定軟件運行的時候才加載插件。
比如插件【PreferenceLoader】的.plist中內容是
com.apple.Preferences 就是系統設置,PreferenceLoader 只有在系統設置中起作用。
OK,回到Emphasize,他定義的是:com.apple.UIKit ,這個大了。對應的是系統UI,所以他的作用是“廣域”的。
我們把這句去掉,添加能夠正常使用的軟件ID即可控制插件按需啟動了。
比如我是這樣改的:
系統自帶的幾個主要軟件,還有常用的weico(其實是做個例子,這個軟件基本上用不到),都在列表裡了。效果非常好!
軟件ID可以在軟件 .app 目錄中的info.plist 中的 CFBundleIdentifier 字段查找。
改完以後respring即可。如果臨時添加軟件,只需將軟件在後台殺死,再次加載,已經ok。
具體修改使用iFile或者其他桌面端的軟件就見仁見智了。不再贅述。