首頁 收藏 QQ群
 網(wǎng)站導(dǎo)航

ZNDS智能電視網(wǎng) 推薦當(dāng)貝市場(chǎng)

TV應(yīng)用下載 / 資源分享區(qū)

軟件下載 | 游戲 | 討論 | 電視計(jì)算器

綜合交流 / 評(píng)測(cè) / 活動(dòng)區(qū)

交流區(qū) | 測(cè)硬件 | 網(wǎng)站活動(dòng) | Z幣中心

新手入門 / 進(jìn)階 / 社區(qū)互助

新手 | 你問我答 | 免費(fèi)刷機(jī)救磚 | ROM固件

查看: 277475|回復(fù): 53
上一主題 下一主題
[攻略教程]

fastboot uboot的使用

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2021-7-24 15:15 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式 | 來自湖北
本帖最后由 z913457894 于 2021-7-24 15:14 編輯

其實(shí)早就準(zhǔn)備發(fā)一篇fastboot/uboot模式的科普貼,之前的有一篇逆向進(jìn)fastboot的帖子,http://kinema24.com/tv-1198276-1-1.html,一直有人再說進(jìn)什么fastboot直接用Hitool不就ok了,fastboot下面也沒什么可以用的指令之類的,看到這些,我覺得我真有必要針對(duì)這些問題講一講。
我們這里說的fastboot/uboot模式,準(zhǔn)確的說只能叫uboot模式(在嵌入式領(lǐng)域都稱為bootloader模式,你可以理解為平常電腦的bios),而fastboot是運(yùn)行在uboot模式之上的一種協(xié)議,這種協(xié)議是可以通過USB或以太網(wǎng)與引導(dǎo)加載程序通信的機(jī)制,我們這里只針對(duì)這種模式來講,不談協(xié)議。
下面是我手上的兩個(gè)盒子進(jìn)入fastboot/uboot模式的終端輸出,也就是你們俗稱跑碼。
第一個(gè) 天邑TY1208-Z,可以看到上面顯示是Uboot
fastboot uboot的使用

第二個(gè)是廣電九聯(lián)科技HDC2100k,上面顯示為fastboot
fastboot uboot的使用

以上不管是fastboot還是uboot,源代碼都是由芯片廠商提供,和芯片廠商提供的刷機(jī)工具(比如海思的hitool)是配套的,后期盒子廠家會(huì)在fastboot/uboo代碼基礎(chǔ)上適配自己的其他基礎(chǔ)硬件,網(wǎng)卡,wifi等,但和上層的刷機(jī)工具通信的協(xié)議是不會(huì)改變的。
看完這個(gè)你就會(huì)明白為什么我一直在花力氣進(jìn)這個(gè)模式的原因,離開了這個(gè)模式刷機(jī)工具啥都干不了。
本來這里是準(zhǔn)備通過我的盒子HDC2100k修改fastboot環(huán)境變量,加入ctrl+c的bootdelaykey,hitool就可以正常備份刷寫固件的案列,來證明fastboot模式對(duì)刷機(jī)工具h(yuǎn)itool的重要性,加入證明讓帖子變得變得難以讓人看懂,之后會(huì)再寫一篇帖子帖子------hdc2100k如何支持hitool工具。
這種模式各個(gè)廠家的指令大同小異,都是類似的,因?yàn)樗麄兊拇a都是仿照開源uboot代碼寫的,我這里以手上的HDC2100K介紹下fastboot/uboot下指令的用法,看懂了,其它的基本也就都會(huì)了。
我們現(xiàn)在就演示下fastboot下各個(gè)指令是如何使用。串口終端我推薦SecureCRT

我們首先輸入指令help回車來看看你有哪些指令可以用,我只是簡(jiǎn)單的列舉了幾個(gè)常用指令。
fastboot uboot的使用


環(huán)境變量相關(guān)
我們輸入指令printenv回車查看一下環(huán)境變量,可以看到tftpip設(shè)置,設(shè)備的mac地址,啟動(dòng)信息等
fastboot uboot的使用

我們還可以修改環(huán)境變量,以修改加載kenel等待時(shí)間為例,輸入setenv bootdely 1 回車,然后在輸入 saveenv回車
很好理解設(shè)置完,保存,如果不保存,就是重啟無效。


傳輸相關(guān)
傳輸就是上載和下載,電腦到機(jī)頂盒內(nèi)存,機(jī)頂盒內(nèi)存到電腦,這里都是以機(jī)頂盒內(nèi)存為中間橋梁,這里很重要,必須要理解,就拿我們現(xiàn)在要刷系統(tǒng)的某個(gè)分區(qū),我們必須分兩步走,一是系統(tǒng)分區(qū)文件從電腦傳輸?shù)綑C(jī)頂盒內(nèi)存,二是再從機(jī)頂盒內(nèi)存到emmc或者其它存儲(chǔ)芯片。
傳輸方式有很多,串口,網(wǎng)口,usb都可以。
串口傳輸   輸入指令loady 0x1FFBFC0
后面1FFBFC0是內(nèi)存地址,同樣你可以通過指令getinfo ddrfree獲取空閑地址。 如果用的是SecureCRT的話,直接選擇 傳輸->發(fā)送Ymodem,選擇你要發(fā)送的文件點(diǎn)擊確定就行了。
如果是上載到電腦的,輸入指令uploadx 0x1FFBFC0 , SecureCRT上直接選擇 傳輸->接收Xmodem,保存文件就可以了。這里XmodemYmodem是兩個(gè)不同協(xié)議,根據(jù)具體指令選擇,loadx就是Xmodem,loady就是ymodem。
fastboot uboot的使用

網(wǎng)絡(luò)傳輸  速度比較快,適合大文件傳輸,但我們需要在電腦上有一個(gè)tftp的服務(wù)器工具。
首先我們?cè)O(shè)置環(huán)境變量IP地址信息,指令
setenv serverip 192.168.0.119
setenv ipaddr 192.168.0.139
setenv gatewayip 192.168.0.250
ping 192.168.0.119
都很好理解,設(shè)置服務(wù)器ip,自己的ip,網(wǎng)關(guān)地址,ping下服務(wù)器,根據(jù)自己情況設(shè)置。

電腦打開tftp的服務(wù)器工具,下載的文件改名file.bin,放到程序同級(jí)目錄,準(zhǔn)備好之后輸入指令
tftp 0x1FFBFC0 file.bin  ,等待傳輸完成就行

上傳之需要在上面指令多加一個(gè)參數(shù),上傳字節(jié)數(shù),比如我們需要上傳0x400字節(jié)
tftp 0x1FFBFC0 file.bin 0x400  ,等待傳輸完成后,程序目錄就會(huì)生成文件file.bin


usb傳輸   我不太想講,要看具體盒子支持些什么指令,天邑Ty1208-z支持USB_burning指令,可以直接文件放到U盤(格式化成fast32)里面,然后直接文件寫入emmc分區(qū),這個(gè)盒子沒這個(gè)指令,顯得有點(diǎn)復(fù)雜,我簡(jiǎn)單把指令列出來,有興趣自己嘗試。
usb start  打開初始化usb
usb storage   列舉出已經(jīng)插入的usb設(shè)備
fatls     展開usb設(shè)備中文件列表
fatload  將文件加載到內(nèi)存



內(nèi)存操作相關(guān)
下載完數(shù)據(jù),如何查看數(shù)據(jù)是不是正確的,顯示內(nèi)存數(shù)據(jù),輸入指令md.b 0x1FFBFC0 0x400
md.b 按單字節(jié)顯示; md.w按雙字節(jié)顯示;md.l 按四字節(jié)顯示
第二個(gè)參數(shù)和第三個(gè)參數(shù)分別是內(nèi)存地址和顯示字節(jié)數(shù),顯示字節(jié)數(shù)是以前面指令模式為單位的,md.l就會(huì)顯示4倍的顯示字節(jié)數(shù)。

修改內(nèi)存nm.b   nm.w   nm.l

查看空閑內(nèi)存地址getinfo ddrfree
這里面的地址范圍可以用在上面所有和內(nèi)存相關(guān)的地方



Emmc讀取寫入相關(guān)
emmc寫入,輸入指令mmcwrite 0 0x1FFBFC0 0x1000 2
Write 后第一個(gè)參數(shù)0是指的設(shè)備0,有的設(shè)備mmcwrite沒有這個(gè)參數(shù);
第二個(gè)0x1FFBFC0上面已經(jīng)提過了內(nèi)存地址;
第三個(gè)0x1000是扇區(qū)號(hào),就是寫入的扇區(qū)地址,一個(gè)扇區(qū)0x200512)字節(jié),比如我們要寫入偏移地址0x200000,我只需要偏移地址除以扇區(qū)大小0x200就可以得到扇區(qū)地址0x1000;
第四個(gè)2就是寫入兩個(gè)扇區(qū)1024字節(jié)

emmc讀取,輸入指令mmcread 0 0x1FFBFC0 0x1000 2
參數(shù)跟前面mmc write一致。



總結(jié)
上面介紹的東西基本已經(jīng)覆蓋了百分之九十的常用指令,用這些最基本的指令,我們就可以完成固件讀取,寫入的操作,Hitool刷機(jī)軟件的所有功能也都是建立在這些指令之上的,你要是會(huì)寫軟件,基本上也可以寫一個(gè)hitool出來。作為一名程序開發(fā)者,從程序猿角度科普下,希望刷機(jī)的朋友們不只單單知道有包就可以刷,而真正去理解程序是怎么運(yùn)作的。

評(píng)分

參與人數(shù) 4威望 +20 金幣 +47 Z幣 +19 收起 理由
wwb66668 + 5 精品文章^_^
1個(gè)左撇子 + 17 一位不愿意透露姓名的網(wǎng)友給你點(diǎn)了個(gè)贊.
小魚干. + 10 + 9 開門,社區(qū)送溫暖...
路人甲是野百合 + 10 + 25 + 10 開門,社區(qū)送溫暖...

查看全部評(píng)分


上一篇:GDT-YH9000求固件
下一篇:求大神代刷廣電U點(diǎn)盒子,可提供各種型號(hào)盒子及原廠updates...
沙發(fā)
發(fā)表于 2021-7-24 16:03 | 只看該作者 | 來自山東
雖然我看不懂,但是感覺很厲害的樣子
板凳
發(fā)表于 2021-7-24 18:29 | 只看該作者 | 來自廣東
這是高手
地板
發(fā)表于 2021-7-24 18:29 | 只看該作者 | 來自遼寧
小白前來學(xué)習(xí)
5#
發(fā)表于 2021-7-24 18:30 | 只看該作者 | 來自山東
大師之作,需要慢慢消化,好久沒有這樣教學(xué)類的貼子了,支持一下!?。。。?!
6#
發(fā)表于 2021-7-24 18:57 | 只看該作者 | 來自廣西

小白前來學(xué)習(xí),,,,
7#
發(fā)表于 2021-7-24 20:34 來自ZNDS手機(jī)版 | 只看該作者 | 來自江西
感謝大佬分享
8#
發(fā)表于 2021-7-25 20:24 | 只看該作者 | 來自廣東
雖然我看不懂,但是感覺很厲害的樣子
9#
發(fā)表于 2021-7-26 11:28 來自ZNDS手機(jī)版 | 只看該作者 | 來自北京
感謝分享

10#
發(fā)表于 2021-7-26 11:55 | 只看該作者 | 來自北京
這是高手

本版積分規(guī)則

Archiver|新帖|標(biāo)簽|軟件|Sitemap|ZNDS智能電視網(wǎng) ( 蘇ICP備2023012627號(hào) )

網(wǎng)絡(luò)信息服務(wù)信用承諾書 | 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證:蘇B2-20221768 丨 蘇公網(wǎng)安備 32011402011373號(hào)

GMT+8, 2024-10-22 17:17 , Processed in 0.080613 second(s), 14 queries , Redis On.

Powered by Discuz!

監(jiān)督舉報(bào):report#znds.com (請(qǐng)將#替換為@)

© 2007-2024 ZNDS.Com

快速回復(fù) 返回頂部 返回列表