本著嚴(yán)謹(jǐn)科學(xué)態(tài)度的我決定仔細(xì)看看剛才刷新的log,又經(jīng)過幾次DOE(design of experiment),發(fā)現(xiàn)OptiFlash工作的流程是:
1。先發(fā)送一個指令到COM7,確定手機(jī)存在(不存在就報錯)
2。載入S3文件,所謂的載入其實是在分析文件,確認(rèn)哪些地址是需要刷新
3。載入完成發(fā)送刷新的初始化指令到COM7,之后應(yīng)該是以串模式開始寫這個端口
另一個經(jīng)驗是手機(jī)接在USB上按住*開機(jī)后一段時間會白屏(退出刷新模式),而經(jīng)過OptiFlash的步驟1后白屏?xí)䜩淼南喈?dāng)快
同時做了一個大膽的假設(shè):在手機(jī)白屏之前所有的于刷新有關(guān)的功能是正常的
那相應(yīng)的突破口如下:
1。讓偽指令騙過OptiFlash使他不檢測手機(jī)是否存在(推遲白屏的到來)
這在我之前的S208(也是agere系統(tǒng))上很簡單,因為是串口的數(shù)據(jù)線,COM1或者COM2是事實存在的,而E870是USB的數(shù)據(jù)線,不插上手機(jī)是不會出現(xiàn)COM7
結(jié)論:無突破口
2。跳過S3文件分析的過程或者縮短所需的時間
跳過:我嘗試找了OptiFlash所有的菜單沒有找到相關(guān)的選項,換用3.7(希望低版本不作這樣的檢測)和4.51(高版本都不行)
我又google了一下,找不到其他能寫agere系統(tǒng)的工具
縮短:結(jié)束掉所有不用的進(jìn)程,關(guān)閉防火墻,結(jié)束所有非必要的CPU占用。。。結(jié)果在94%白屏。。。崩潰阿。。。妹妹當(dāng)時我就讓你買頻率高一點的Pentium-M嘛
3。在分析結(jié)束時能讓手機(jī)standby在等待刷新的狀態(tài)
嘗試在白屏后迅速重新開機(jī),希望COM7能出現(xiàn)。。。但似乎COM7總在OptiFlash報錯后才出現(xiàn)。懷疑是系統(tǒng)輪尋USB太慢所致,故意降低OptiFlash優(yōu)先級,使之在手機(jī)白屏后處于停止?fàn)顟B(tài)(不給CPU時間)。。。不過好像OptiFlash此時鎖住了系統(tǒng)不讓他識別新的設(shè)備
幾乎要崩潰了,告訴妹妹我要睡覺了,明天繼續(xù)刷新。。。
第二天一早打個電話給三星,說明是國外帶來的手機(jī),刷新中文軟件失敗。。。。對方給的報價是300RMB。。。想想即使能修也是要開機(jī)取碼片的。。。郁悶阿郁悶
開始制定新的方案,然后打電話告訴我妹妹上網(wǎng),我要繼續(xù)昨天的刷新-_-b
A。繼續(xù)google其他的agere工具(可以不去檢測S3文件完整性)
B。先用OptiFlash嘗試讀取ROM,此時OptiFlash會給一次重啟機(jī)器的機(jī)會,把這次機(jī)會放在刷新的步驟3(原諒我表達(dá)不清,實際操作太復(fù)雜了,相當(dāng)于利用OptiFlash設(shè)計上的bug)
C。嘗試把原來E870的S3文件弄小點,加速分析過程,因為只有開頭部分被覆蓋成E878的,所以理論上只要能在白屏前寫入到上次中止刷新的地方,就勝利了
D。找臺快點的電腦來刷
最后實施到方案C就成功了
先從blueshow下載了E870的D6版軟件,用UltraEdit打開看了下
發(fā)現(xiàn)每一行都有對應(yīng)的地址,好辦多了。聽別人說完全刷一遍需要30分鐘,通過吃橙子需要的5分鐘估算了一下大概多少被覆蓋了。把文件留了大概1/6其余全部刪掉,重新保存為一個S3。
之后在OptiFlash里設(shè)置difference only,這點很重要,跳過一樣的block能加快刷新速度,因為我是在和會定時出現(xiàn)的白屏賽跑
之后由于S3文件很小,OptiFlash分析的過程一閃而過直接進(jìn)入了刷新狀態(tài),觀察log,大概70%之后所有的flash都一樣了,大概刷到90%白屏,但因為程序?qū)嵸|(zhì)已經(jīng)修復(fù),手機(jī)重新開機(jī)正常。
略過又刷成E878不表。。。反正我妹妹沒發(fā)現(xiàn)永不掉話-_-b