本着严谨科学态度的我决定仔细看看刚才刷新的log,又经过几次DOE(design of experiment),发现OptiFlash工作的流程是:
1。先发送一个指令到COM7,确定手机存在(不存在就报错)
2。载入S3文件,所谓的载入其实是在分析文件,确认哪些地址是需要刷新
3。载入完成发送刷新的初始化指令到COM7,之后应该是以串模式开始写这个端口
另一个经验是手机接在USB上按住*开机后一段时间会白屏(退出刷新模式),而经过OptiFlash的步骤1后白屏会来的相当快
同时做了一个大胆的假设:在手机白屏之前所有的于刷新有关的功能是正常的
那相应的突破口如下:
1。让伪指令骗过OptiFlash使他不检测手机是否存在(推迟白屏的到来)
这在我之前的S208(也是agere系统)上很简单,因为是串口的数据线,COM1或者COM2是事实存在的,而E870是USB的数据线,不插上手机是不会出现COM7
结论:无突破口
2。跳过S3文件分析的过程或者缩短所需的时间
跳过:我尝试找了OptiFlash所有的菜单没有找到相关的选项,换用3.7(希望低版本不作这样的检测)和4.51(高版本都不行)
我又google了一下,找不到其他能写agere系统的工具
缩短:结束掉所有不用的进程,关闭防火墙,结束所有非必要的CPU占用。。。结果在94%白屏。。。崩溃阿。。。妹妹当时我就让你买频率高一点的Pentium-M嘛
3。在分析结束时能让手机standby在等待刷新的状态
尝试在白屏后迅速重新开机,希望COM7能出现。。。但似乎COM7总在OptiFlash报错后才出现。怀疑是系统轮寻USB太慢所致,故意降低OptiFlash优先级,使之在手机白屏后处于停止状态(不给CPU时间)。。。不过好像OptiFlash此时锁住了系统不让他识别新的设备
几乎要崩溃了,告诉妹妹我要睡觉了,明天继续刷新。。。
第二天一早打个电话给三星,说明是国外带来的手机,刷新中文软件失败。。。。对方给的报价是300RMB。。。想想即使能修也是要开机取码片的。。。郁闷阿郁闷
开始制定新的方案,然后打电话告诉我妹妹上网,我要继续昨天的刷新-_-b
A。继续google其他的agere工具(可以不去检测S3文件完整性)
B。先用OptiFlash尝试读取ROM,此时OptiFlash会给一次重启机器的机会,把这次机会放在刷新的步骤3(原谅我表达不清,实际操作太复杂了,相当于利用OptiFlash设计上的bug)
C。尝试把原来E870的S3文件弄小点,加速分析过程,因为只有开头部分被覆盖成E878的,所以理论上只要能在白屏前写入到上次中止刷新的地方,就胜利了
D。找台快点的电脑来刷
最后实施到方案C就成功了
先从blueshow下载了E870的D6版软件,用UltraEdit打开看了下
发现每一行都有对应的地址,好办多了。听别人说完全刷一遍需要30分钟,通过吃橙子需要的5分钟估算了一下大概多少被覆盖了。把文件留了大概1/6其余全部删掉,重新保存为一个S3。
之后在OptiFlash里设置difference only,这点很重要,跳过一样的block能加快刷新速度,因为我是在和会定时出现的白屏赛跑
之后由于S3文件很小,OptiFlash分析的过程一闪而过直接进入了刷新状态,观察log,大概70%之后所有的flash都一样了,大概刷到90%白屏,但因为程序实质已经修复,手机重新开机正常。
略过又刷成E878不表。。。反正我妹妹没发现永不掉话-_-b