天天测试各种beta软件,白苹果遇到的次数比safari崩溃的次数还多。最近新软件不多,有时间写点东西,分享下修复由于安装软件造成的白苹果的经验。
造成白苹果原因多种多样,比如删错了文件,替换错了字体等等。我这里只说安装完一个软件后重启机器变白苹果的情况,基本可以保证不会因为软件让你不得不刷机。
下面的修复过程有可能并不简单,也很费时。
适合装了很多软件,不想重刷,重新装过所有软件的人看。或者大家可以用winpwn,做一个装好自己需要软件的固件(似乎还不够稳定)。这样恢复更快。
首先白苹果就是springboard启动不了。如下图(绝版男人制作)。
比如你装了(或者删了)HWPen,重启机器之后,白苹果了。一般这种情况,iphone还都是可以连接上PC Suite和WinSCP的,有这两个工具,白苹果就可以修复。(如果这两个软件不认iphone,那刷机去吧)
既然白苹果是软件安装造成,我们只要把软件安装做的事情都反向恢复就可以了。即:我们要做的就是手动卸载干净造成白果的软件。所以需要知道软件安装都做了什么。
一种方法是看软件在源里的脚本,不过有些源不允许非installer访问(可以伪装UserAgent查看,有些繁琐),所以这里说另一种通用方法,就是看iphone里的安装脚本。
本机安装过的软件,脚本都存放在/var/mobile/Library/Installer/LocalPackages.plist 这个文件里(1.1.2的把mobile改成root)。installer3.1的脚本都变为二进制了。所以需要论坛上 super3547 发的plist转换软件,附件有下载,原帖:(
http://www.weiphone.com/viewthread.php?tid=99145),这个软件后面修复白果也有用,好东西。
把上面地址的plist文件复制到电脑上(不管用pc suite还是winscp)用convertplist打开,另存为一个可以用记事本打开的文件。然后打开,搜索到HWPen的安装脚本区块。所有脚本如下:
引用:
<dict>
<key>bundleIdentifier</key>
<string>cn.com.hanwang.HWPen</string>
<key>name</key>
<string>HWPen</string>
<key>version</key>
<string>1.0.1 Beta</string>
<key>description</key>
<string>Hanwang Handwriting IME. 汉王手写输入法。</string>
<key>contact</key>
<string>mars1907@gmail.com</string>
<key>maintainer</key>
<string>mars1907</string>
<key>location</key>
<string>http://iphonecake.com/iphonecake_zips/HWPen-1.0.1.zip<;/string>
<key>sponsor</key>
<string>iPhoneCake.com</string>
<key>url</key>
<string>http://www.iphonecake.com/r.php?nid=265<;/string>
<key>size</key>
<string>1537788</string>
<key>scripts</key>
<dict>
<key>install</key>【此标签下都是安装脚本,辅助参考,需结合下面的卸载脚本一起看】
<array>
<array>
<string>CopyPath</string>
<string>HWPen</string>
<string>/Library/HWPen</string>
</array>
<array>
<string>Exec</string>
<string>/Library/HWPen/plistedit /System/Library/LaunchDaemons/com.apple.SpringBoard.plist add /Library/HWPen/libHWIME.dylib</string>
</array>
<array>
<string>Notice</string>
<string>You must restart your iPhone 请重启iPhone!</string>
</array>
</array>
<key>update</key>
<array>
<array>
<string>CopyPath</string>
<string>HWPen</string>
<string>/Library/HWPen</string>
</array>
<array>
<string>Notice</string>
<string>You must restart your iPhone 请重启iPhone!</string>
</array>
</array>
<key>uninstall</key>【此标签下都是卸载脚本,主要参考】
<array>
<array>
<string>Exec</string>
<string>/Library/HWPen/plistedit /System/Library/LaunchDaemons/com.apple.SpringBoard.plist delete /Library/HWPen/libHWIME.dylib</string>
</array>
<array>
<string>RemovePath</string>
<string>/Library/HWPen</string>
</array>
<array>
<string>Notice</string>
<string>You must restart your iPhone 请重启iPhone!</string>
</array>
</array>
</dict>
<key>category</key>
<string>[iPhone Cake]</string>
<key>date</key>
<string>1208996799</string>
</dict>
脚本是xml格式文件,需要你稍微对xml有点感觉。我不能在从头讲一遍xml,不过幸好下面的操作基本照葫芦画瓢就行。
我们需要关心的,只是软件安装时做了什么,以及软件卸载应该做什么,所以,请看<key>install</key>和<key>uninstall</key>下的内容。
安装命令很多,我们只需要注意类似如下的命令(上面高亮加粗的部分)
引用:
<string>CopyPath</string>
<string>HWPen</string>
<string>/Library/HWPen</string>
引用:
<string>RemovePath</string>
<string>/Library/HWPen</string>
以及
引用:
<string>Exec</string>
<string>/Library/HWPen/plistedit /System/Library/LaunchDaemons/com.apple.SpringBoard.plist delete /Library/HWPen/libHWIME.dylib</string>
这三组命令分别是
拷贝文件,删除文件,执行命令的作用。
软件安装时都会拷贝文件到iphone,容易造成白果的程序一般都执行一些命令(Exec这个脚本)。所以我们可以参照安装脚本以及卸载脚本,把软件手动删除干净。
凡是<string>CopyPath</string>下面的内容,就是安装时复制的内容,也就是我们卸载是需要删掉的内容(也应该是<string>RemovePath</string>下面的内容),凡是<string>Exec</string>下的内容,就是要在终端执行的命令。
手动卸载主要参照脚本内<key>uninstall</key>下的内容,例如卸载脚本里有
引用:
<string>RemovePath</string>
<string>/Library/HWPen</string>
那我们就删除/Library/HWPen目录,
注:同时也要参考<string>CopyPath</string>下面的内容,因为有些软件不是卸载的很干净。
卸载脚本里有
引用:
<string>Exec</string>
<string>/Library/HWPen/plistedit /System/Library/LaunchDaemons/com.apple.SpringBoard.plist delete /Library/HWPen/libHWIME.dylib</string>
那我们就打开终端,手动执行
引用:
/Library/HWPen/plistedit /System/Library/LaunchDaemons/com.apple.SpringBoard.plist delete /Library/HWPen/libHWIME.dylib
这个命令。(Exec下的内容就是要执行的命令字符串)
如此类推,把所有卸载脚本里需要installer做的,你手动做了即可。
上面可能说的不是很清楚,不过还是要大家实践时才会明白。不是太好解释。
以上就是手动卸载的过程。有些软件的安装很复杂,可能手动卸载很麻烦。
有些时候,如果你看到安装脚本里出现com.apple.SpringBoard.plist这个文件,那很有可能是安装脚本写入com.apple.SpringBoard.plist了。如果白苹果,你可以参照绝版男人的帖子(
http://www.weiphone.com/thread-101157-1-1.html),删掉造成白果的程序添加的字段(一般应该插入在最后)。
唯一要补充的是,如果com.apple.SpringBoard.plist打开是乱码,也用convertplist转换即可。
以上就是我如何修复软件造成白果的一些经验,希望能帮到所有爱装软件的朋友。
[
本帖最后由 hotsjf 于 2008-5-8 15:27 编辑 ]