A840S黑砖修复过程(2013-05-22修改)
現(xiàn)象:手機(jī)完全沒有反應(yīng),同時(shí)按音量上下+開機(jī)鍵都沒有反應(yīng)。USB連上電腦后電腦顯示一個(gè)“QHSUSB_DLOAD”的設(shè)備。這就是典型的黑磚了。
變磚原因:刷機(jī)腳本寫錯(cuò),把rawdata.img寫入了mmcblk0p8,也就是tz分區(qū)。
請(qǐng)繼續(xù)前詳細(xì)閱讀 su_ky大神的A820L救磚貼 :
經(jīng)過痛苦的google、閱讀,再google再閱讀的過程,找到此貼和其他一些大神的帖子,終于弄明白了救磚的原理和方法。
救磚原理:通過QPST軟件的emmcswdownload.exe重構(gòu)一個(gè)EMMC存儲(chǔ)鏡像,然后用該鏡像覆蓋手機(jī)EMMC,從而修復(fù)錯(cuò)誤的部分,達(dá)到至少讓手機(jī)能進(jìn)入fastboot的程度。
準(zhǔn)備工作:
1、下載官方的BINX文件,根據(jù)su_ky博客的 泛泰binx解包 所描述的方法進(jìn)行解包
得到一個(gè)BIN文件和如下img文件:
2、QPST軟件,我用的是374的版本
3、小米2的刷機(jī)程序
4、MPRG8960.hex,8960_msimage.mbn和rawprogram0.xml。這三個(gè)是QPST刷機(jī)時(shí)必需的文件。MPRG8960.hex我不確定是否8960的GPT分區(qū)方式的都一樣還是不一樣,它們的獲得方法下面我們?cè)敿?xì)地逐一說明,方法來自su_ky的博客。
MPRG8660.hex:這個(gè)su_ky大神說了的,我們沒有能力自己生成這個(gè),所以我在網(wǎng)上找了個(gè),需要注意的是su_ky帖子里面提到的820L是MBR分區(qū)格式的,840是GPT的,下面再詳細(xì)說。我在 這里 找到的,用的是190K那個(gè)hex,需要翻墻,各位同學(xué)自己搞定。
其次是8960_msimage.mbn:這個(gè)文件其實(shí)差不多就是整個(gè)EMMC的磁盤鏡像,為什么說差不多呢,根據(jù)我的判斷,它不是完整的磁盤鏡像,而是記錄了分區(qū)信息,然后只包含了在partition.xml中提供了文件名的分區(qū)的鏡像。這就是評(píng)論中那位兄弟有疑問的地方。比如system、preload這些分區(qū)就只有分區(qū)信息,沒有實(shí)際的分區(qū)鏡像包含在內(nèi),所以8960_msimage.mbn才不顯得巨大。
它至少需要partition.bin、partition.xml和sbl1\sbl2\sbl3\rpm\tz\aboot這幾個(gè)分區(qū)的鏡像才能構(gòu)建出來。為什么說至少呢,看我下面的分析。partition.bin是分區(qū)表,這個(gè)是一定要的。另外根據(jù)我的變磚原因,是我把rawdata.img寫入了mmcblk0p8,也就是tz分區(qū)。經(jīng)查看,rawdata.img大小是1kb ,而tz分區(qū)大小是512kb,按理說即使寫錯(cuò)了也沒有越界,我的分區(qū)表應(yīng)該是好的。但是為什么黑磚了呢?后來我估計(jì)是tz分區(qū)保存了啟動(dòng)早起需要的重要文件,它被寫壞了造成的黑磚。由此,我就在想我只要構(gòu)造一個(gè)mbn把tz分區(qū)重寫應(yīng)該就可以了。同時(shí)之前刷機(jī)時(shí)rawdata寫錯(cuò)了位置,改寫的地方反而沒有寫進(jìn)去,所以我就多準(zhǔn)備了rawdata.img。各位可以分析自己的變磚原因,準(zhǔn)備相關(guān)的img。最好是在手機(jī)正常的時(shí)候備份一個(gè)完整的所有img的鏡像,用別人的可能造成IMEI被篡改等等問題。
接下來就先得到partition0.bin:將正常的同型號(hào)手機(jī)用USB連接到電腦,確保電腦上有adb工具,手機(jī)已經(jīng)root,通過下面的命令得到partition0.bin:
[plain]?view plaincopy
[plain]?view plaincopy
拿回來10M的鏡像,在0x200除看到了EFI PART的字樣,這下明白了,原來A840S是采用了GPT的分區(qū)方式,啟動(dòng)分區(qū)表位于第二扇區(qū)。關(guān)于GPT分區(qū)格式的詳細(xì)介紹見
GPT的維基百科 ,以下是840S的GPT分區(qū)表頭:
這個(gè)表頭截圖不完整,應(yīng)該也是512字節(jié),這里說明一下。
根據(jù)wiki和這個(gè)表頭,我們可以得到840S的完整分區(qū)表:
[plain]?view plaincopy
這個(gè)應(yīng)該只要是GPT分區(qū)的EMMC都是一樣,用上面的命令就可以得到partition0.bin
根據(jù)這個(gè)我們可以得到partition.xml和rawprogram0.xml:
partition.xml
[html]?view plaincopy
參考圖2
order = 分區(qū)序號(hào)size? = (結(jié)束LBA-起始LBA+1)/2?? 轉(zhuǎn)換成十進(jìn)制,為什么除以2是因?yàn)槊可葏^(qū)512字節(jié),2個(gè)扇區(qū)是1K。
label = 分區(qū)名稱
offset=分區(qū)相對(duì)于第一個(gè)分區(qū)的偏移量
這里最好包含所有分區(qū)的信息,其中file name 字段只在需要覆蓋對(duì)應(yīng)的分區(qū)的時(shí)候才需要,上面提到的partition.bin\sbl1\sbl2\sbl3\rpm\tz\aboot都是需要的,其他的應(yīng)該都不需要,可以恢復(fù)以后再刷。如果不需要覆蓋對(duì)應(yīng)的分區(qū),請(qǐng)像下面一樣注釋掉,不懂怎么注釋的去百度"xml語法 注釋"。
[html]?view plaincopysbl1分區(qū)必須加上字段 bootable="true"? ,這個(gè)不加的話手機(jī)仍然不會(huì)有動(dòng)靜,因?yàn)檎也坏匠绦蛉肟凇N以谶@里困擾了很久……,感謝su_ky,是 這個(gè)地方 提醒了我,第54樓。
840和820不同,GPT都是primary,沒有extend分區(qū)。
rawprogram0.xml
[html]?view plaincopy
同樣參考圖2,label、size_in_KB同上
filename除了必須的那幾個(gè)之外,還需要覆蓋的分區(qū)只需要填文件名,前提是你從正常的手機(jī)或者以前的備份里面得到了相應(yīng)的img文件。建議也只填寫前面提到的那些分區(qū)
num_partition_sectors = 結(jié)束LBA-起始LBA+1? 轉(zhuǎn)換成十進(jìn)制
start_sector=起始LBA? 轉(zhuǎn)換成十進(jìn)制
其中partition0.bin的start_sector是0
partition.xml和rawprogram0.xml有了,下面就可以得到最后一個(gè)關(guān)鍵的東西8960_msimage.mbn
QHSUSB_DLOAD驅(qū)動(dòng)在小米刷機(jī)工具運(yùn)行時(shí)和QPST安裝時(shí)都會(huì)自動(dòng)安裝
QPST的安裝和添加端口不說了,網(wǎng)上找。現(xiàn)在假定你運(yùn)行QPST Configuration,并且添加好端口,在Phone里面已經(jīng)能看到一個(gè)設(shè)備處于Downloaded狀態(tài)了。
把下面這些文件都放到同一個(gè)文件夾,像下面這樣:
然后開一個(gè)cmd,運(yùn)行如下命令生成8960_msimage.mbn:
[plain]?view plaincopy
s是整個(gè)EMMC的大小,840S是16G
至此,MPRG8960.hex,8960_msimage.mbn和rawprogram0.xml都齊全了。把這三個(gè)文件拷貝到Miflash.exe所在目錄下,剩下的事情就簡(jiǎn)單了,按照Miflash.exe的提示進(jìn)行刷機(jī)。就是刷新,然后刷機(jī)。然后等漫長(zhǎng)的進(jìn)度完成。不出意外的話,你的840S就應(yīng)該顯示那個(gè)充電的大圓形圖標(biāo),還有那句韓文。
這時(shí)拔電池,然后同時(shí)按音量上下+開機(jī)鍵就可以進(jìn)入官方升級(jí)或者fastboot界面了,fastboot boot recovery.img就可以進(jìn)recovery重刷rom了。網(wǎng)上教程很多,不再敘述。
本文中的數(shù)據(jù)還請(qǐng)同學(xué)們根據(jù)自己手中的partition0.bin進(jìn)行計(jì)算、修改。個(gè)人觀點(diǎn),僅供參考,一切后果請(qǐng)自負(fù)。
總結(jié)
以上是生活随笔為你收集整理的A840S黑砖修复过程(2013-05-22修改)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wifi漫游测试过程
- 下一篇: MSM8974 fastboot烧写软件