Sp flash tool(全稱smart phone flashtool)是聯(lián)發(fā)科(MTK)開發(fā)的,針對其研發(fā)的智能手機(androidOS)的刷機工具.同時,該工具可作為生產時的軟件下載工具.該工具除了具備軟件下載功能,還可以對手機的存儲芯片進行讀取(readback)操作.類似高通手機的Qpst工具.
題外話不多說,直入主題.
準備工作:電腦一臺,并安裝window操作系統(tǒng)(推薦windowxp).MTK智能手機一臺.官方手機驅動一份,可從官網下載.MTK平臺sp flashtool刷機驅動一份.普通USB數(shù)據(jù)線一根.sp flash tool刷機工具.
MTK平臺sp flashtool刷機驅動可從百度網盤分享下載,其中附帶解決驅動inf無效的方法: http://pan.baidu.com/share/link?shareid=501465831&uk=2536832031&third=15
sp flashtool工具v3.1222.00(英文版,網上還有中文件版): http://pan.baidu.com/share/link?shareid=3008619228&uk=2536832031
幾點需要掌握:scatter文件及獲得.刷機工具使用方法.回讀地址及長度計算.從回讀的preloader.bin與DSP_BL文件中得到正解的preloader與DSP_BL
手機狀態(tài):不管是刷機還是回讀,都要將手機關機,將電池取出.
一:
scatter文件及獲得:
scatter(一種刷機文件分散加載的方法)文件是刷機工具對手機磁盤讀取與刷寫的依據(jù).不同手機,該文件是不同的,不可在不同手機間通用.
scatter文件可以從官方刷機包(沒包?)或者是官方ota補丁升級小包中解壓得到,也可以使用工具生成.
下載補丁包,不升級,文件管理器進入內置(或外置)sd卡一個個文件夾找,可以找到.該補丁包在升級結束就自動刪掉的.下面先說怎么使用工具獲得對應手機的scatter文件.
首先下載安裝官方手機驅動,并安裝.
使用MTKandroidtool工具可以生成對應手機的scatter文件.
下載地址: http://pan.baidu.com/share/link?shareid=526659&uk=2536832031&third=15
下載解壓壓縮包,進入解壓目錄.
打開手機usb調試.連接電腦,這時候你應該早就準備好驅動!如果電腦識別不到手機,請檢查驅動.
雙擊運行主程序MTKandroidtool:打開如下界面:
找到"模塊詳細地址 程度",并點擊它.
然后彈出如下界面:
然后在左下角點擊"創(chuàng)建一個秒速文件"
在彈出的窗口選擇你的保存路徑即可:
該工具的使用本人并沒有太多測試,對于生成scatter文件以外的功能,不推薦嘗試.同時,為避免不必要麻煩.請小心使用本工具.
二:
刷機工具的使用:
下載安裝官方手機驅動,再下載解壓并安裝sp flashtool刷機驅動(以下簡稱刷機驅動).如提示inf段落無效.則進入刷機驅動解壓目錄,找到"解決inf無效"文件夾.把對應文件拷貝到需要的地方。
WIN7的,和上述方法一樣,但是如果還是找不到驅動,那么你需要手動將驅動指向到“MT6575刷機驅動_自動安裝Win7”里面去!
在安裝刷機驅動之后,下載并解壓sp flashtool工具.該工具大多是綠色版,解壓即可使用.如果不小心下載了別的廠商定制的版本,可能需要安裝.
進入刷機工具目錄,雙擊主程序Flash_tool.exe即可打開工具.如下圖所示:
讀取ROM與刷機操作在前部分是相似的.只是要切換工具到回讀模式(read back).
1) 在切換readback模式之前,先選擇scatter文件。也就是之前MTKdroidtool生成的scatter文件.也可以從官方升級包中找到。
單擊scatter-loading,見下圖。該scatter文件僅作為示例文件。
2)如圖,將工具從Download切換到read back:
注意到工具窗口上的add(添加)按扭,該按鈕可以設置讀取的"分區(qū)",要獲得一份完整原廠ROM線刷包,那么,add(添加)的分區(qū)個數(shù)是要與scatter中一樣的.
要特別說明的是,FAT分區(qū)是內置sd卡,可以不回讀.另外,有些手機最后一個分區(qū)的長度是難以計算的(該分區(qū)大多是fat分區(qū)).即使根據(jù)分區(qū)表來算,有時我們也只能知道剩下的磁盤空間全部給最后一個分區(qū).這部分一般不重要,也不回讀(在特殊情況需要知道其分區(qū)大小,可以借助adb工具輔以busybox用命令fdisk-l /dev/block/mmcblk0察看,或者cat/proc/dumchar_info試試).對于一臺手機來說,重要的是幾個img文件,及preloader.bin,DSP_BL.bin,MBR.bin,EBR.bin,secro.bin等bin文件.
當然,我們可以只讀取某個分區(qū)的文件.
如圖所示:
重要的部分是回讀(read back)的開始地址與長度設置.
三:
回讀開始地址與長度計算:
雙擊ROM_0條目.彈出對話框,選擇保存路徑.可以在工具目錄創(chuàng)建一個"回讀文件"文件夾。如圖,
在保存的時候可以命名為其它名字,也可以使用ROM_表示.但文件名字終究只是名字,不代表文件類型與內容.
如果是回讀完整線刷包,ROM_0一般是preloader.bin文件,它的開始地址(一般是0x0)與長度需要打開scatter文件察看并計算:
使用支持文本高亮顯示的編輯器。比如SciTe,notepat++等打開,不推薦window自帶計事本打開.
(notepa++安裝程序: http://pan.baidu.com/share/link?shareid=2071424291&uk=2536832031)
你將看到,每一個刷機文件后面的大括號后是一個形如0x4000的字符。這個就是刷機文件的開始地址。兩個開始地址之間的差,就是前一個線刷文件的長度或者說大小。是十六進制數(shù):
如下:
preloader開始地址0x0
DSP_BL開始地址0x40000,該地址也是preloader的結束地址(其它回讀文件的開始地址也是這個道理的).
等等.
1)某個分區(qū)的開始地址,就是上一個分區(qū)的結束地址(十六進制數(shù)表示,單位為字節(jié)).忽略1M的分區(qū)間隔.有三處間隔.
2)回讀的長度,設置為分區(qū)的長度(或者說是大小.為十六進制數(shù)表示).兩個起始地址之差,就是前一個線刷文件的長度或者說大小。是十六進制數(shù).
計算方法:
打開window自帶計算器,切換到科學型(win7系統(tǒng)則是切換到程度員模式).這樣,我們就可以計算十六進制數(shù).
用相應分區(qū)的結束地址減去它的開始地址就是該分區(qū)的長度/大小.相應分區(qū)的結束地址并沒有在scatter文件中明確標出,但該結束地址就是下一個分區(qū)的開始地址---(注意).
所有分區(qū)的開始地址與長度設置都要經過察看scatter文件并計算得出,我們不能套用某個分區(qū)的開始地址與長度到另一個分區(qū)上,這是不正確的(即使回讀進度條走動,但這不意味著所得到的文件是正確的)
開始回讀:
在設置好所有分區(qū)的開始地址與長度后,點擊工具上的"Readback"按鈕(是指第三行的按鈕,而不是第二行的.第二二行是切換工具的工作模式).這時將準備好的手機連接電腦.如果設置正確,并且驅動安裝無誤,回讀進度條應該走動.彈出OK綠色框表示回讀全部結束.
四:![[轉載]MTK平臺智能手機強刷工具spflashtool讀 spflashtool線刷工具](http://img.413yy.cn/images/31101031/31051631t018e94308c1ca33807.png)
從回讀的preloader.bin與DSP_BL文件中得到正解的preloader與DSP_BL
最后,需要對回讀出的preloader.bin與DSP_BL.bin修改,方能得到正確的preloader.bin與DSP_BL.bin文件(這兩個文件就是MTK開機引導程序).
這一步一定要做,因為,原始preloader與DSP_BL文件刷入手機后,其在磁盤中的位置發(fā)生變化,但它們的全部仍包含在以上所述回讀所得的兩個文件中.只是需要選擇出來而已.如果這兩個文件不正解,在刷進手機后將導致無法開機.除非在刷機的時候選擇Download模式,并將兩者前的勾去掉.即不更新這兩個文件.
需要使用winhex工具選擇出preloader與DSP_BL
回讀錯誤分析:
回讀文件測試:
文件修改:后續(xù).
本人首先是在vivo智能手機給出相同方法.但本文是現(xiàn)在才編輯的.更多可以訪問http://bbs.vivo.com.cn/thread-877612-1-1.html
更多關于ROM備份及修改的方法可以在以下鏈接找http://bbs.vivo.com.cn/home.php?mod=space&uid=5671652&do=thread&view=me&from=space
愛華網


