亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

系統(tǒng)固件升級包的生成方法及裝置的制造方法_2

文檔序號:9750594閱讀:來源:國知局
D10、BOOT等,其中文件夾SYSTEM為目標(biāo)文件中的系統(tǒng)文件,文件夾RECOVERY為目標(biāo)文件中的恢復(fù)模式下的虛擬硬盤及內(nèi)核文件,文件夾BOOT為目標(biāo)文件中的開機(jī)模式下的虛擬硬盤及內(nèi)核文件,文件夾RAD1為目標(biāo)文件中的協(xié)議文件,配置文件如包括文件夾OTA、META等。其中,目標(biāo)文件中協(xié)議文件與源文件中的協(xié)議文件相同。在實(shí)際應(yīng)用中,由于工廠刷機(jī)包或終端的相關(guān)物理分區(qū)中的協(xié)議文件與OTA中間包中的協(xié)議文件(RAD1文件)存在形式是完全相同的,無需任何處理,只需根據(jù)文件列表從工廠刷機(jī)包或終端的相關(guān)物理分區(qū)中遍歷獲取相應(yīng)的協(xié)議文件即可獲取目標(biāo)文件。
[0036]其中,配置文件可以包括OTA相關(guān)的升級工具、腳本、簽名及屬性配置列表等;其中,升級工具為用于制作升級包中的升級腳本解析器、腳本文件為用于制作OTA升級包中的協(xié)議相關(guān)文件及升級引導(dǎo)預(yù)研、屬性配置文件主要用于用戶升級后對系統(tǒng)文件屬性設(shè)置。配置文件的獲取方式有多種,1、直接從一個現(xiàn)有的中間包中獲取,但是不同的版本配置文件中有些文件可能會不同;2、將源代碼進(jìn)行回退,重新編譯整個工程,但是編譯時間較長,編譯生成的文件除了配置文件,還有很多其他文件是我們不需要的;3、可以實(shí)現(xiàn)一套編譯流程用于編譯僅生成配置文件,如OTA及META等文件,第3種方法避免了第1、2種的缺陷,同時將工具、腳本、屬性配置相關(guān)文件與系統(tǒng)文件的生成進(jìn)行了分類。
[0037]其中,實(shí)際應(yīng)用中,本實(shí)施例的方法,還包括:獲取待升級文件系統(tǒng)對應(yīng)的OTA中間包;
[0038]根據(jù)OTA中間包生成目標(biāo)升級文件系統(tǒng)對應(yīng)的OTA升級包,包括:
[0039]根據(jù)OTA中間包生成目標(biāo)升級文件系統(tǒng)對應(yīng)的OTA完整升級包;或,
[0040]根據(jù)待升級文件系統(tǒng)對應(yīng)的OTA中間包和目標(biāo)升級文件系統(tǒng)對應(yīng)的OTA中間包,生成目標(biāo)升級文件系統(tǒng)對應(yīng)的OTA差分升級包。
[0041 ] 具體來說,OTA升級包包括OTA完整升級包和OTA差分升級包,因此可以通過OTA完整升級包升級,也可以通過OTA差分升級包根升級,OTA完整升級包僅通過目標(biāo)升級文件系統(tǒng)對應(yīng)的OTA中間包即可生成,而OTA差分升級包具體的生成過程為:加載待升級文件系統(tǒng)中的OTA中間包、目標(biāo)升級文件系統(tǒng)中的OTA中間包,校驗(yàn)上述兩種OTA中間包的格式是否正確,從配置文件中獲取產(chǎn)品信息、相關(guān)屬性值用于產(chǎn)生升級腳本中的校驗(yàn)語句,用imgdiff、bsdiff命令計(jì)算兩個版本的系統(tǒng)文件、boot下的虛擬硬盤及內(nèi)核文件差異獲得patch信息及相應(yīng)的升級script語句,計(jì)算新版本(目標(biāo)升級文件系統(tǒng))的boot下的虛擬硬盤及內(nèi)核文件和恢復(fù)模式(recovery)下的虛擬硬盤及內(nèi)核文件之間的差異,獲取recovery的patch及升級shell腳本。加載文件列表(fi Iesmap)并解析協(xié)議相關(guān)的文件,獲取協(xié)議文件的升級patch及升級script語句,最后對升級包進(jìn)行簽名獲得最終的OTA差分升級包。
[0042]其中,待升級文件系統(tǒng)中的OTA中間包生成過程與步驟101、102、103的實(shí)現(xiàn)過程類似。
[0043]需要說明的是,本實(shí)施例中步驟103和步驟101不分先后順序。
[0044]本實(shí)施例提供的系統(tǒng)固件升級包的生成方法,通過獲取目標(biāo)升級文件系統(tǒng)中的源文件;所述源文件包括:系統(tǒng)鏡像文件、恢復(fù)模式下的鏡像文件、開機(jī)引導(dǎo)模式boot下的鏡像文件和協(xié)議文件;分別獲取與所述目標(biāo)升級文件系統(tǒng)中的源文件對應(yīng)的目標(biāo)文件;將所述目標(biāo)文件和配置文件打包生成所述目標(biāo)升級文件系統(tǒng)對應(yīng)的OTA中間包,并根據(jù)所述OTA中間包生成所述目標(biāo)升級文件系統(tǒng)對應(yīng)的OTA升級包,相比現(xiàn)有技術(shù)而言,無需保存中間包,可以直接從工廠刷機(jī)包或終端的相關(guān)物理分區(qū)中獲取源文件,不會占用服務(wù)器大量資源,而且OTA中間包丟失或者破壞時,也可以根據(jù)獲取到的源文件獲取目標(biāo)文件,并根據(jù)目標(biāo)文件生成OTA中間包,最終根據(jù)OTA中間包生成OTA升級包,避免了 OTA中間包丟失或者破壞時,終端就無法通過OTA升級包升級,用戶將無法通過OTA升級包升級到新的固件版本的問題。
[0045]在上述實(shí)施方式的基礎(chǔ)上,實(shí)際應(yīng)用中,獲取目標(biāo)升級文件系統(tǒng)中的源文件的具體方式有多種,可選地,具體可以通過下述兩種方式實(shí)現(xiàn):
[0046]第一種方式:
[0047]從工廠刷機(jī)包獲取拆分后的系統(tǒng)鏡像文件,并將拆分后的系統(tǒng)鏡像文件轉(zhuǎn)換為完整的系統(tǒng)鏡像文件;
[0048]將完整的系統(tǒng)鏡像文件轉(zhuǎn)換為四級擴(kuò)展文件系統(tǒng)ext4格式的系統(tǒng)鏡像文件;或,
[0049]第二種方式:
[0050]從終端的第一物理分區(qū)中獲取四級擴(kuò)展文件系統(tǒng)ext4格式的系統(tǒng)鏡像文件。
[0051]具體來說,第一種方式中,可以從工廠刷機(jī)包獲取拆分后的系統(tǒng)鏡像文件(如工廠刷機(jī)包中包括system_l.1mg_system_30.1mg的系統(tǒng)鏡像文件),由于工廠刷機(jī)包的系統(tǒng)鏡像文件是根據(jù)設(shè)備快(chunk)類型進(jìn)行拆分的,具體規(guī)則為系統(tǒng)鏡像文件中需要解析的是兩種chunk類型,一種chunk類型是raw類型,一種是don ’ t care類型,其中raw類型的是需要寫入到存儲器(Embedded MultiMedia Card,簡稱EMMC)中的,而don’t care類型則跳過不進(jìn)行處理。為了提取得到系統(tǒng)文件,需要首先根據(jù)系統(tǒng)鏡像文件拆分的規(guī)則做逆向處理,對于don’t care類型chunk需要根據(jù)塊長度作補(bǔ)零處理,獲取未拆分的完整的系統(tǒng)鏡像文件。
[0052]根據(jù)類型格式轉(zhuǎn)換工具simg2img(LinUX中的可執(zhí)行應(yīng)用程序),將獲取到的完整的系統(tǒng)鏡像文件轉(zhuǎn)換為四級擴(kuò)展文件系統(tǒng)(ext4)格式的系統(tǒng)鏡像文件,得到ext4格式的鏡像文件后,就可以利用Linux中的掛載(mount)指令執(zhí)行獲取系統(tǒng)文件。
[0053]第二種方式中,可以通過調(diào)試線將終端設(shè)備跟計(jì)算機(jī)相連,并打開調(diào)試功能。
[0054]調(diào)用Linux中的dd命令將系統(tǒng)分區(qū)對應(yīng)的物理分區(qū)中的鏡像文件從終端中導(dǎo)入外置存儲設(shè)備中,并執(zhí)行pull命令拷貝到計(jì)算機(jī)上。
[0055]由于此時獲取的系統(tǒng)鏡像文件本身即為ext4格式,所以無需進(jìn)行格式轉(zhuǎn)換,直接執(zhí)行mount命令獲取系統(tǒng)文件。
[0056]其中,此時的終端為已升級到目標(biāo)升級文件系統(tǒng)的終端。
[0057]進(jìn)一步的,在實(shí)際應(yīng)用中,獲取目標(biāo)升級文件系統(tǒng)中恢復(fù)模式下的鏡像文件,具體可以通過下述兩種方式實(shí)現(xiàn):
[0058]第一種方式:
[0059]從工廠刷機(jī)包獲取恢復(fù)模式下的鏡像文件;或,
[0060]第二種方式:
[0061]從終端的第二物理分區(qū)中獲取恢復(fù)模式下的鏡像文件。
[0062]具體來說,第一種方式中,恢復(fù)模式下的鏡像文件如recovery,img,是一個鏡像文件可以直接從工廠刷機(jī)包中獲取到。
[0063]第二種方式中,可以通過調(diào)試線將終端設(shè)備跟計(jì)算機(jī)相連,并打開調(diào)試功能。
[0064]調(diào)用Linux中的dd命令將恢復(fù)模式下的分區(qū)對應(yīng)的物理分區(qū)中的鏡像文件從終端中導(dǎo)入外置存儲設(shè)備中,并執(zhí)行pull命令拷貝到計(jì)算機(jī)上。
[0065]其中,此時的終端為已升級到目標(biāo)升級文件系統(tǒng)的終端。
[0066]進(jìn)一步的,在實(shí)際應(yīng)用中,獲取目標(biāo)升級文件系統(tǒng)中boot下的鏡像文件,具體可以通過下述兩種方式實(shí)現(xiàn):
[0067]第一種方式:
[0068]從工廠刷機(jī)包獲取boot下的鏡像文件;或,
[0069]第二種方式:
[0070]從終端的第三物理分區(qū)中獲取boot下的鏡像文件。
[0071]具體來說,第一種方式中,boot下的鏡像文件如boot,img,是一個鏡像文件可以直接從工廠刷機(jī)包中獲取到。
[0072]第二種方式中,可以通過調(diào)試線將終端設(shè)備跟計(jì)算機(jī)相連,并打開調(diào)試功能。
[0073]調(diào)用Linux中的dd命令將boot下的分區(qū)對應(yīng)的物理分區(qū)中的鏡像文件從終端中導(dǎo)入外置存儲設(shè)備中,并執(zhí)行pull命令拷貝到計(jì)算機(jī)上。
[0074]其中,此時的終端為已升級到目標(biāo)升級文件系統(tǒng)的終端。
[0075]上述【具體實(shí)施方式】中,通過從工廠刷機(jī)包或終端的相關(guān)物理分區(qū)中獲取源文件中的鏡像文件,從而獲取到源文件。
[0076]在上述實(shí)施方式的基礎(chǔ)上,實(shí)際應(yīng)用中,分別獲取與所述目標(biāo)升級文件系統(tǒng)中的源文件對應(yīng)的目標(biāo)文件的具體方式有多種,可選地,作為一種可實(shí)施的方式,具體可以采用以下方式實(shí)現(xiàn):
[0077]將獲取到的系統(tǒng)鏡像文件經(jīng)過轉(zhuǎn)換處理得到系統(tǒng)
當(dāng)前第2頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1