查看文章 |
悲剧24小时
2009-01-27 13:55
老爸的iPhone最近一直会出现神奇的问题,包括随机退出程序,随机进入安全模式,重启白苹果再重启菊花转再重启白苹果+菊花转再重启正常,花屏,图标上出现彩色像素随机分布,短信里快乐的乐显示不出来(-.-b),接不到电话等异常神奇的问题,我在昨天下午决定帮他重刷固件。 悲剧是从这里开始的,由于我的笔记本自从升级到10.5.6以后系统已经不能识别iPhone的DFU模式,解决的方法有两个 (1)从硬件的hub连接,而不用本机的USB接口 (2) 某人写的DFU Enabler 这两种方法我都尝试过了,最后证明各有各的悲剧。 首先是用硬件hub,用hub自己的USB控制芯片可以很好地绕过10.5.6在驱动上所作的限制,但事实证明要驱动iPhone所需要的500mA电流是一点都不能打折扣的,所以自己刚花10块钱买回来的不带电源的hub根本提供不了足够的电力,失败。 或者用那个传说中的DFU Enabler, 这个所谓的enabler其实就是一个简单的替换文件+设置权限的小程序,就是将10.5.6里的USB驱动部分AppleUSBHub.kext 和 IOUSBCompositeDriver.kext 替换成10.5.5的版本(我真的很佩服这位兄弟的勇气-。-|||,也很佩服我相信了他的勇气... ), 虽然上面写着万能的Do it at your own risk,因为第一条路失败,所以还是觉得应该试一下(试之前还告诉她“我在做一件很危险的事情” -.-b) 。出现的结果是脚本请求了一次root权限,然后就自动推出悄无声息了,于是等了一会重启,还好还好USB驱动还健在,内置的键盘和触控板还认得出,后来的事实证明DFU也的确打开了,接下来就再也没有重启过,其实地雷早就踩上了,于是乐呵呵地开始刷固件,因为时间顺序关系我们最后再说引爆的结果是什么样子的) 开始刷固件,由于老爸的iPhone已经病入膏肓了,况且第一次准备进DFU的时候失误了一下下,进的是恢复模式(就是屏幕上会显示连接到iTunes的状态,iTunes会识别出手机的串号的状态。 真正的DFU是没有屏显,iTunes认不出串号的状态), 恢复模式就恢复模式吧 刷自定义固件错误2(对了一开始制作固件还出国过两次错)。接下我要有点条理地介绍了,因为解决这种错误的方法就是: 排列组合... 固件 模式 结果 2.2自定义固件1 恢复模式 错误21 2.2自定义固件2 DFU 错误1601 2.2自定义固件2 恢复模式 错误21 2.2自定义固件1 DFU 错误1601 后来觉得应该不是制作的自定义固件问题,而且因为已经进了恢复模式没有办法重新进入正常模式的,所以只能在恢复和DFU之间徘徊 固件 模式 结果 2.2官方固件 恢复模式 错误2 2.2官方固件 DFU 错误1600(出现新的错误了~) 之后又重复了几次上面的操作,获得的错误信息基本一致。于是突发奇想开始恢复以前版本的固件。 固件 模式 结果 2.1自定义固件 恢复模式 错误2 2.1自定义固件 DFU 错误1600 2.02自定义固件 恢复模式 错误21 2.01自定义固件 DFU 错误1600(当中还出现过一次2001错误忘记为什么了) 后来一拍脑袋,我可以用QuickPwn嘛,可是它只能在手机刷上正常的官方固件以后才能使用,于是开始官方固件之旅(2.2的已经试过了) 固件 模式 结果 2.02官方固件 恢复模式 错误2 2.02官方固件 DFU 这个成功了!(于是告诉她说看到曙光了,不过后来证明是曙光医院...), 刷完以后的结果当然是SIM卡被锁,iPhone用十几种语言告诉我只能拨打紧急电话,但是实际上手机已经搜索到移动的网络,还收到两条拜年短信) 于是开始QuickPwn, 对了忘记说了, 上面的尝试是分别在两台笔记本上做的,所以所有的尝试可能都做过两遍... 在一台Windows XP的机器上QuickPwn, 还好进了DFU以后也是一次成功,不错不错, 成功地unlock了,但是装完以后cydia不能用。后来又想既然升级到了2.02,能不能直接再升级到2.2呢?于是又脑残地再次进了DFU... 固件 模式 结果 2.2自制固件 DFU 错误1600 (事实证明是一样的) 由于现在可以进正常模式,即能被iTunes识别所以现在在模式里又多了一种正常模式 固件 模式 结果 2.2自制固件 正常模式 错误2? oops 又进恢复了... sigh, 又继续在已经试过的组合中挣扎了一下,然后继续重复2.02官方的过程 2.02官方DFU恢复 -》 QuickPwn破解 -》 2.02真像一个避风港,每次都能成功,赞一个... -。-||| 于是开始考虑先把2.02用起来,于是开始考虑恢复以前的通讯录和短信之类的东西。用DiskAid把2.2备份的通讯录和短信数据库覆盖过去,试了一下数据库格式未变可以识别,赞一下。后来准备替换MobileInstallation, 接着不知道发生了什么事情,开始菊花-.-b, 难道是做了什么误操作? 反正重启以后图标都不见了,但是itunes倒是识别为正常,-。-|||,于是索性破罐子破摔,直接升级官方2.2固件,错误2。 又进DFU挣扎了一下,错误2。于是开始第三次2.02官方。 2.02官方DFU恢复 -》 QuickPwn破解 -》 这次开始从官方的更新恢复设置,发现不行,会在快结束的时候错误死机,但是重启以后老爸的手机已经恢复到最近的2.02备份 哈哈 就是去年9月8号的状态。于是就手动恢复了一下通讯录、记事本和短信。 后来发现一个好东西,用来提取iPhone的备份数据库 , 还可以用来窃取隐私-.-b, 只要运行的机器上存在iphone的备份,所有东西包括短信,书签,设置,照片,应用程序的存档等等都可以提取出来... 有点可怕... 嗯。 不过做iPhone开发的也可以用这个东西让用户方便发送自己的Preference和crash_log等等便于debug。 做了上面这些事情以后已经凌晨两点,于是睡去,2.02虽然没有2.2好用,但是至少能用了... 悲剧在起来以后继续,起来以后发现重启后内置的键盘和触控板全部失灵,也就是说那个替换USB kext的东西已经破坏了机器的驱动... 因为手头有移动硬盘上的安装分区,于是做了一次archieve and reinstall, 半个小时以后装完以后重新进入发现自己的密码怎么输都不对了.... 难道是10.5.0到10.5.6的 password shadow file算法变了? 还好 安装盘还有reset admin passwd的功能,于是重新用安装盘启动重设了密码,再重启... 终于见到了熟悉的乱七八糟的桌面.... -.-b 于是一边下加起来差不多1G的update,一边写这篇blog。 噢,下完了,我重启去了,希望不要再出什么乱子了.... bless |