(1) Bootloader分區:Bootloader是嵌入式系統在加電後執行的第一段代碼,在它完成CPU和相關硬件的初始化以後,再將操做系統映像或固化的嵌入式應用程序裝在到內存中而後跳轉到操做系統所在的空間,啓動操做系統運行。Bootloader百度百科連接前端
(2) Boot分區:存放boot,linux操做系統引導分區。linux
(3) recovery分區:其實是一個簡單的Linux系統,當內核啓動完畢後,開始執行第一個程序init(init程序是Linux系統全部程序 的老祖宗)。init會啓動一個叫作recovery的程序(recovery模式的名稱也由此而來)。經過recovery程序,用戶能夠執行清除數 據,安裝刷機包等操做。通常的手機廠商都提供一個簡單的recovery刷機。Recovery百度百科連接 緩存
(4) system:是通常發佈的ROM的主要功能程序分區了,咱們說的ROM功能和自帶程序的定製應該就是基於這個分區的修改和編譯了。服務器
(5) Kernel分區:Linux內核。網絡
(6) misc分區:有Bootloader Control Block(BCB),主要是用於存放Recovery引導信息。url
(7) userdata:用戶數據。spa
(8) Cache:緩存。操作系統
Android系統啓動後可能會進入的幾種工做模式:.net
若正常啓動,即開機沒有按組合鍵,bootloader會讀取位於MISC分區的啓動控制信息塊BCB(Bootloader Control Block)。它是一個結構體,存放着啓動命令command。根據不一樣的命令,系統又 能夠進入三種不一樣的啓動模式。結構體的定義以下:設計
struct bootloader_message{ char command[32]; //存放不一樣的啓動命令 char status[32]; //update-radio或update-hboot完成存放執行結果 char recovery[1024]; //存放/cache/recovery/command中的命令 };
(1)command=="boot-recovery"時,系統會進入Recovery模式。Recovery服務會具體根據/cache/recovery/command中的命令執行相應的操做(例如,升級update.zip或擦除cache,data等)。
(2)command=="update-radia"或"update-hboot"時,系統會進入更新firmware(更新bootloader),具體由bootloader完成。
(3)command爲空時,即沒有任何命令,系統會進入正常的啓動,最後進入主系統(main system)。這種是最一般的啓動流程。
(1)離線升級之USB升級:
優勢:實現難度小,依賴性小,適合單個升級。
缺點:大批量升級效率較低,須要額外U盤設備。
有通用bootloader如u-boot來實現USB升級,一般咱們能夠在u-boot的引導kernel的以前作相關升級處理;
(2)在線升級之IP升級:
優勢:簡單。
缺點:依賴於網絡,須要服務端支持。
咱們在開發中使用TFTP來作燒寫處理,被認爲是最簡單的方式,一樣只要用戶終端有網絡,並被獲知須要升級,和已知TFTP服務端及文件名,便能很容易的實現升級,在TFTP升級中,咱們不須要額外修改tftp的代碼,只須要爲自動參數傳遞升級的命令便可。
在uboot中須要先設置serverip參數,而後使用
tftp內存地址服務端的文件名如:tftp80000000 vmlinux.ub
在CFE中能夠直接使用
flash–noheader服務器IP:文件路徑分區
如:flsah–noheader 192.168.1.100:/vmlinuz flash0.kernel
考慮到網絡的連通的不肯定性以及丟包的問題,通常咱們在內網中使用或者能夠在工廠批量升級使用。
(3)在線升級之OTA升級:
優勢:用戶參與少,直接由前端控制,適合大批量升級
缺點:依賴前端碼流,依賴機頂盒tuner。
OTA升級(OnTheAir),又稱空中升級,是指用戶終端直接經過信號通道接收下載方式來升級軟件。是廠家最重要的一種升級方式,用於大批量用戶升級。在手機,以及其餘一些移動終端也有用到,它們主要是經過3G或者Gprs等無線升級方式,也能夠整體歸納到網絡升級中。只是具體區別於一般所說的電信網絡以及這裏的無線網絡和咱們將討論的數字電視網絡。機頂盒的OTA升級數據能夠根據不一樣廠商本身的方式封裝,打包成TS流,而後播放,機頂盒終端接收到流,經過解析NIT等相關表來獲取升級信息。
不一樣平臺的OTA實現也不盡相同,但思路都是須要針對具體平臺對鎖頻,接收和解析碼流,最後燒寫到flash中。
DVB升級不管是在線升級仍是離線升級,最終都是要進入recovery安裝update.zip升級包。
一、基於linux的數字電視機頂盒幾種升級方式的設計與實現;
二、 Android系統Recovery工做原理之使用update.zip升級過程分析(一)---update.zip包的製做這個要從一一直看到八估計收穫不小。