■鄭重聲明:『羅波波』這個賬號僅在znds開戶,未來也是如此 ■概述: 精簡強刷包的通常做法-原廠強刷包(tb上5元不貴)解包后修改img鏡像再打包。使用時,先刷原廠強刷包,再刷自制精簡強刷包??墒?,要是沒有原廠強刷包,或者對于版本有要求(同一機型廠家會升級多次 固件,具體哪一個固件版本好用需要自己親身體驗才知道,你搞到的強刷包到底是哪一個版本,賣家即便知道也不一定是自己心儀的版本)那該怎么辦呢? 本文介紹的自制強刷包方法,鏡像文件來源有兩個:a-串口備份出來的,b-官方OTA 刷機包提取出來的。 看了一下5S58_K5C的官方OTA固件包,里面只升級MBOOT、boot、recovery、dtb、factory、RTPM、system、tvconfig、tvservice幾個分區(qū),若設備當前的某分區(qū)版本和你心儀的固件版本一致,那么理論上該分區(qū)就無需再刷一次。而總計22個分區(qū)呢,剩下的分區(qū)OTA不升級也就說明其分區(qū)數(shù)據(jù)沒有變化或是由其它分區(qū)自動生成的(如MPOOL、misc),所以制作強刷包時可不必加入或不能加入。 那么是否有必要刷MBOOT呢,經(jīng)驗證,刷不同版本的MBOOT,Uboot和安卓系統(tǒng)均可正常啟動。所以也可以不刷。不刷的考慮是:萬一在刷入MBOOT的過程中突然斷電,那么就會導致Uboot無法進入! 在一臺安卓9.0Mstar機頂盒實測,強刷包必須包含boot、recovery、system、vendor分區(qū),否則只有system分區(qū)的話-會出現(xiàn)啟動黑屏無法進入系統(tǒng)的現(xiàn)象。在本人5S58_K5C安卓6.0設備上,強刷包可以單獨刷入system分區(qū)。論壇里下了幾個創(chuàng)酷精簡強刷包安卓6.0&5.0,都是只刷system分區(qū)。若是uboot下刷機,上面兩個設備都可以單獨刷入某個分區(qū)。若要單獨刷入非system分區(qū),不建議用強刷包的方式,大概率會出問題,建議uboot或系統(tǒng)shell刷。 5S58_K5C191223版固件,單獨刷入180524版system鏡像(已精簡),系統(tǒng)可正常運行。 ■工具MStarBinTool-GUI(這個應該是俄羅斯大神制作的,它和MStarBinToolMaster命令行工具肯定不是Mstar官方工具) ■所有路徑為英文路徑 ■強刷的本質(zhì):自動進入uboot模式執(zhí)行包內(nèi)自動化腳本來完成刷機,不會驗證是否匹配本機型。 ■實測32位WIN7會打包出錯 ■配置文件Config.xml 不限品牌機型,任意下載一個MstarUpgrade.bin強刷包,僅解包「腳本+配置」:
解包-1.png (20.15 KB, 下載次數(shù): 244)
下載附件
保存到相冊
2024-10-28 15:48 上傳
工具Notepad++打開MStarBinTool-GUI所在目錄...\work\xxxx\下的Config.xml文件。 <Configuration>:
Config.xml-1.png (9.92 KB, 下載次數(shù): 245)
下載附件
保存到相冊
2024-10-28 15:48 上傳
各字段的默認值通常如圖所示,基本無需更改。里面的TypeCRC設置為0是不起作用的,MStarBinTool-GUI會自動設置為1(可以是2、3)。也就是說,MStarBinTool-GUI打包生成的MstarUpgrade.bin刷機包是有CRC校驗的,用WinHex替換里面的分區(qū)文件是不行的,刷機時CRC校驗失敗會報錯導致無法刷入。 16進制RamAddress:刷機包內(nèi)img文件的Ram存放起始地址,單位字節(jié)。 下載了非5S58_K5C的6個創(chuàng)酷強刷包(安卓5.0、6.0、8.0),還有 TCL(安卓6.0)、烽火(安卓9.0)、移動(安卓4.x)各1個,總計9個包,只有1個創(chuàng)酷安卓8.0的RamAddress是28A00000,其它8個都是20200000。 對于5S58_K5C,自測了一下,20200000、20220000、20200200都可以成功刷入,22200000刷到50%失敗。其它數(shù)值沒有試驗,具體有什么講究不清楚。 <UserPartTable>:
Config.xml-2.png (26.15 KB, 下載次數(shù): 245)
下載附件
保存到相冊
2024-10-28 15:52 上傳
這一部分配置了-重新分區(qū),通常情況下自己的設備分區(qū)是完好的,所以沒有必要,把配置區(qū)域刪掉即可:
Config.xml-3.png (1.02 KB, 下載次數(shù): 242)
下載附件
保存到相冊
2024-10-28 15:53 上傳
若要重新分區(qū),務必要按照原廠修改,Size單位字節(jié)。 <ImageList>:
Config.xml-4.png (49.59 KB, 下載次數(shù): 248)
下載附件
保存到相冊
2024-10-28 15:54 上傳
該部分配置了如何刷入img文件。Image Name是準確的分區(qū)名,Compress-壓縮,Sparse-稀疏(可以減少體積),Split-分割。Compress和Sparse若同時設置為Yes,試了一下,只能滿足Compress。通常體積較大的分區(qū)需要設置Compress或Sparse,個人習慣設置Compress-Yes,體積減少會更多。體積大的分區(qū)務必要Split-Yes,否則:例如system分區(qū)超過了1G,這樣Ram無法完整存放,會導致system分區(qū)無法刷入。EmptySkip沒搞明白啥意思,Yes、No都試了一下,似乎沒啥影響。Path="img文件名"一定要和實際的文件名一致。 <Environments>:
Config.xml-5.png (27.47 KB, 下載次數(shù): 243)
下載附件
保存到相冊
2024-10-28 15:56 上傳
看到這一部分,很多人都一頭霧水而被勸退,不怕,有簡單方法配置該部分。 該部分是用來配置uboot環(huán)境變量的,那么對于自己機型該如何設置呢? 找到了這個文件/system/etc/set_env:
set_env.png (22.2 KB, 下載次數(shù): 233)
下載附件
保存到相冊
2024-10-28 15:59 上傳
將其內(nèi)容復制出來,將最后兩行替換為下面兩行即可: setenv MstarUpgrade_complete 1 saveenv 而后添加到Config.xml文件里的<Environments>-<PostEnv>部分。里面沒用的環(huán)境變量可以去掉,例如BootVideo... 查看設備uboot的環(huán)境變量命令:printenv 刪除某一變量:setevn [變量名] ■<Environments>補充說明 事實上,只要你的設備一切正常,uboot里的環(huán)境變量必是保存設置好的,制作強刷包時無需特別配置環(huán)境變量,只需配置幾行就可以啦: setenv MstarUpgrade_complete 1 setenv sync_mmap 1 setenv db_table 0 saveenv 前面提到的<Environments>配置方法,(除非是環(huán)境變量丟失),起到的作用完全是-「心里踏實」,哈哈....^_^ ■一直沒搞明白uboot環(huán)境變量到底存放在什么地方,求高手指點。 ■制作強刷包 Config.xml文件已配置好,再將img鏡像文件放入Config.xml所在目錄,MStarBinTool-GUI打開配置文件:
打包-1.png (28.13 KB, 下載次數(shù): 243)
下載附件
保存到相冊
2024-10-28 16:06 上傳
「打包模式」選擇-下載。若是Config.xml里有重新分區(qū),會自動選擇「格式+下載」,點擊「分區(qū)」,可查看重新分區(qū)的詳情。 查看需要刷機的鏡像:
打包-2.png (19.06 KB, 下載次數(shù): 234)
下載附件
保存到相冊
2024-10-28 16:08 上傳
紅色代表危險,藍色代表該分區(qū)文件丟失,需確認文件是否存在(檢查文件名)。給需要刷機的分區(qū)打上勾。MStarBinTool-GUI「配置」、「環(huán)境」是由Config.xml決定的,可以在此檢查修改?!改_本」此時為空,打包過程中會自動生成并添加到刷機包里。確認無誤后,就可以點擊「打包固件」按鈕了。 新的刷機包在.../work目錄下,將其改名為MstarUpgrade.bin即可。 ■注意: U盤強刷過程中,任何一個環(huán)節(jié)(例如刷某個鏡像、設置某個環(huán)境變量)出錯,都會導致刷機過程報錯而中斷!即便后面的各環(huán)節(jié)是完全沒有問題的!所以建議強刷時連好串口PuTTY跑個碼,這樣才知道哪一環(huán)節(jié)報錯! ■設置串口為開啟狀態(tài) 在uboot里執(zhí)行或者在自制強刷包配置文件<Environments>里添加: setenv bootdelay 0 saveenv 數(shù)值0代表設備啟動時鍵盤敲鍵進入uboot的窗口時間,單位秒,如果>0,則會增加系統(tǒng)啟動時間。若要禁止進入uboot,可設為-1。有些設備MBOOT里是寫死的,只能是0。 或者: setenv UARTOnOff on saveenv 有些設備的MBOOT里寫死了是on,無法設置為off。
◆下期預告:(五)固件發(fā)布◆
|