日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

因調(diào)整電壓導(dǎo)致Block67讀寫(xiě)失敗怎么辦

最近有一些朋友因?yàn)檎{(diào)整電壓導(dǎo)致Block67讀取失敗,sensorstool不能再操作手機(jī),出現(xiàn)錯(cuò)誤“Error:Unable to read Eelite BlockID=67 info"而同時(shí)手機(jī)不能開(kāi)機(jī) 。這種情況,有的朋友沒(méi)有備份EEP,只能寫(xiě)別人的EEP 。很麻煩!其原因主要是當(dāng)剛剛連接到手機(jī),所有的數(shù)字還是0的時(shí)候,有的人按了write phone,導(dǎo)致Block67被全部置0 。
這是我在第一次發(fā)表這篇文章時(shí)的觀點(diǎn),因?yàn)榻裉炜磥?lái),這是錯(cuò)誤的 。對(duì)此我非常慚愧,這是我在沒(méi)有充分證據(jù)的情況下發(fā)的,想當(dāng)然而的觀點(diǎn),所以特地寫(xiě)了一篇修正版,以正視聽(tīng) 。
其實(shí)這個(gè)問(wèn)題是因?yàn)閟ensorstool的Bug 。我在《6688經(jīng)驗(yàn)半月談》里曾經(jīng)說(shuō)過(guò)EEPROM的數(shù)據(jù)結(jié)構(gòu)和存儲(chǔ) 。這里再說(shuō)以下,在EEP里數(shù)據(jù)是索引存儲(chǔ)的,其索引的數(shù)據(jù)結(jié)構(gòu)如下:
EEPROM Block Directory Record format:
Offset SizeDes cription
------ ----- ----------------------------------------------
00BYTERecord starting marker [00,F0,FC] 記錄標(biāo)志為00,
F0或FC00= Unused block?不用的Block
F0= Deleted block? 刪除的Block
FC= Used block? 當(dāng)前有效的Block
01BYTEVersion. [00..05]
Always zero in LBA_FS & EE_FS blocks.
Only EELITE blocks that has 04 & 05.
02WORDSize
04DWORD Linear address of data 此處為Flash地址
08WORDID 為平常說(shuō)的BlockXX,如Block67
0ABYTE??? [00,01,02]
Always zero in EEFULL & EELITE blocks.
Always 02 in LBA_FS & EE_FS blocks.
0BBYTERecord ending marker [00,F0,FC,FF]
FF= No more record
在6688中,Block67(43H)是和電壓相關(guān)的,也就是大家平時(shí)所說(shuō)的電壓參數(shù) 。同時(shí)也是Sensortool所修改的Block 。它的大小是20個(gè)字節(jié) 。具體含義如下:
Battery status (0043):
- 0000H : BattMin Data1
- 0002H : BattMin Data2
- 0004H : BattMax Data1
- 0006H : BattMax Data2
- 0008H : BattTemp Data1
- 000AH : BattTemp Data2
- 000CH : EnvTemp Data1
- 000EH : EnvTemp Data2
- 0010H : VCXOTemp Data1
- 0012H : VCXOTemp Data2
注:以上資料來(lái)自于RizaPN,這個(gè)我沒(méi)有研究過(guò) 。
而sensortool所使用的Blk文件就是Block的縮寫(xiě),因?yàn)檫@些數(shù)據(jù)是和手機(jī)硬件相關(guān)的,所以Block67存儲(chǔ)在EELITE(C000H-FFFFH)中,大家可以打開(kāi)看看 。但是Sensortool有個(gè)問(wèn)題,因?yàn)樗看螌?xiě)入新的電壓參數(shù)時(shí)都是把原有Block索引的記錄標(biāo)志字節(jié)(Record starting marker )由FC改為F0,既又正在使用改為刪除,而新建一條索引來(lái)把這個(gè)Block放在一個(gè)新位置 。這樣索引(索引表都是放在后面,可參考半月談)是向上增加,而B(niǎo)lock數(shù)據(jù)是向下增加的 。那么總會(huì)有這種情況發(fā)生,就是最新的位置已到了索引表的位置,那么就會(huì)發(fā)生沖突 。我猜測(cè)sensortool是先刪除記錄,再新建索引表,但這時(shí)已發(fā)現(xiàn)沒(méi)有空間來(lái)建立Block了,但他并不恢復(fù)刪除的記錄,所以所有的Block67的索引表都被標(biāo)為F0(刪除),所以系統(tǒng)中沒(méi)有Block67的索引表,所有的工具在讀寫(xiě)這個(gè)Block時(shí)都會(huì)發(fā)生錯(cuò)誤,手機(jī)也會(huì) 。我之前的錯(cuò)誤是以為Block的所有字節(jié)都被置為0 。
解決的辦法是非常的簡(jiǎn)單的:
如果你備份了自己的EEP,那么只須重新寫(xiě)入就可以了 。所以我一直強(qiáng)調(diào)要備份EEP,最好是低版本的原始EEP,所謂不戰(zhàn)而屈人之兵 。
如果你沒(méi)備份自己的EEP,你只需讀出EEP,然后找到某一條(因?yàn)橛泻芏鄺l)Block67的索引記錄,然后把它的頭和尾的錄標(biāo)志字節(jié)(Record starting marker )由F0為FC即可 。尋找的辦法是用HEX編輯器打開(kāi),如UltraEdit,然后查找430000F0,會(huì)找到很多條記錄,你因該修改找到的第一條的紀(jì)錄,也就是最新的紀(jì)錄(因?yàn)樗饕硎窍蛏显鲩L(zhǎng)的),如F00114003EFBFF00430000F0,其中的3EFBFF是Block的實(shí)際地址(Flash地址,對(duì)應(yīng)于文件地址是5FFB3E,F(xiàn)FFB3E-A00000) 。你需要修改頭尾的F0為FC,即FC0114003EFBFF00430000FC就可以了 。然后把它寫(xiě)回到手機(jī) 。

推薦閱讀