本著嚴謹科學態度的我決定仔細看看剛才刷新的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