系統(tǒng)固件升級(jí)包的生成方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種系統(tǒng)固件升級(jí)包的生成方法及裝置。
【背景技術(shù)】
[0002]隨著終端制造商發(fā)布新終端的節(jié)奏越來(lái)越快,上市終端的軟件版本難免存在一些漏洞或者亟待提高用戶體驗(yàn)的部分,甚至?xí)幸恍┲旅收县酱迯?fù)。一般可以采用無(wú)線固件升級(jí)(Firmware Update Over the Air,簡(jiǎn)稱FOTA)方法對(duì)終端設(shè)備的軟件進(jìn)行升級(jí)。
[0003]目前,固件升級(jí)通常分為兩種:一種是工廠刷機(jī)包,主要用于生產(chǎn)及售后;另外一種是無(wú)線下載(Over the Air,簡(jiǎn)稱OTA)升級(jí)包,主要用于用戶自行升級(jí)。二者的升級(jí)機(jī)制完全不同,前者是基于設(shè)備的升級(jí),即在開(kāi)機(jī)引導(dǎo)程序中通過(guò)二進(jìn)制讀寫將鏡像文件寫到相應(yīng)的塊設(shè)備中;而后者是基于文件系統(tǒng)的升級(jí),是在恢復(fù)模式(recovery)下對(duì)文件進(jìn)行升級(jí),主要有兩種方式,OTA完整升級(jí)包升級(jí)和OTA差分升級(jí)包升級(jí),其中,OTA完整升級(jí)包升級(jí)是將完整的新版本數(shù)據(jù)通過(guò)文件拷貝覆蓋式的升級(jí),而OTA差分升級(jí)包升級(jí)則是將兩個(gè)新舊版本固件之間的差異數(shù)據(jù)通過(guò)打補(bǔ)丁的方式進(jìn)行升級(jí)。
[0004]現(xiàn)有的OTA升級(jí)包是根據(jù)OTA中間包制作相應(yīng)的OTA升級(jí)包。由于OTA升級(jí)包依賴于中間包,隨著系統(tǒng)版本的升級(jí),OTA升級(jí)包越來(lái)越大,保存相應(yīng)的OTA中間包,會(huì)占用服務(wù)器大量資源,而且,由于一些主客觀原因(如硬盤損壞、系統(tǒng)中毒、人為誤操作等)可能會(huì)導(dǎo)致OTA中間包丟失或者破壞,此時(shí)終端就無(wú)法通過(guò)OTA升級(jí)包升級(jí),用戶將無(wú)法通過(guò)OTA升級(jí)包升級(jí)到新的固件版本。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種系統(tǒng)固件升級(jí)包的生成方法及裝置,以克服現(xiàn)有技術(shù)中保存中間包會(huì)占用服務(wù)器大量資源,而且OTA中間包丟失或者破壞時(shí),此時(shí)終端就無(wú)法通過(guò)OTA升級(jí)包升級(jí)的問(wèn)題。
[0006]第一方面,本發(fā)明提供一種系統(tǒng)固件升級(jí)包的生成方法,包括:
[0007]獲取目標(biāo)升級(jí)文件系統(tǒng)中的源文件;所述源文件包括:系統(tǒng)鏡像文件、恢復(fù)模式下的鏡像文件、開(kāi)機(jī)引導(dǎo)模式boot下的鏡像文件和協(xié)議文件;
[0008]分別獲取與所述目標(biāo)升級(jí)文件系統(tǒng)中的源文件對(duì)應(yīng)的目標(biāo)文件;
[0009]獲取所述目標(biāo)升級(jí)文件系統(tǒng)的配置文件;
[0010]將所述目標(biāo)文件和所述配置文件打包生成所述目標(biāo)升級(jí)文件系統(tǒng)對(duì)應(yīng)的無(wú)線下載OTA中間包,并根據(jù)所述OTA中間包生成所述目標(biāo)升級(jí)文件系統(tǒng)對(duì)應(yīng)的OTA升級(jí)包。
[0011]第二方面,本發(fā)明提供一種系統(tǒng)固件升級(jí)包的生成裝置,包括:
[0012]第一獲取模塊,用于獲取目標(biāo)升級(jí)文件系統(tǒng)中的源文件;所述源文件包括:系統(tǒng)鏡像文件、恢復(fù)模式下的鏡像文件、開(kāi)機(jī)引導(dǎo)模式boot下的鏡像文件和協(xié)議文件;
[0013]第二獲取模塊,用于分別獲取與所述目標(biāo)升級(jí)文件系統(tǒng)中的源文件對(duì)應(yīng)的目標(biāo)文件;
[0014]第三獲取模塊,用于獲取所述目標(biāo)升級(jí)文件系統(tǒng)的配置文件;
[0015]處理模塊,用于將所述目標(biāo)文件和所述配置文件打包生成所述目標(biāo)升級(jí)文件系統(tǒng)對(duì)應(yīng)的無(wú)線下載OTA中間包,并根據(jù)所述OTA中間包生成所述目標(biāo)升級(jí)文件系統(tǒng)對(duì)應(yīng)的OTA升級(jí)包。
[0016]本發(fā)明系統(tǒng)固件升級(jí)包的生成方法及裝置,通過(guò)獲取目標(biāo)升級(jí)文件系統(tǒng)中的源文件;所述源文件包括:系統(tǒng)鏡像文件、恢復(fù)模式下的鏡像文件、開(kāi)機(jī)引導(dǎo)模式boot下的鏡像文件和協(xié)議文件;分別獲取與所述目標(biāo)升級(jí)文件系統(tǒng)中的源文件對(duì)應(yīng)的目標(biāo)文件;將所述目標(biāo)文件和配置文件打包生成所述目標(biāo)升級(jí)文件系統(tǒng)對(duì)應(yīng)的OTA中間包,并根據(jù)所述OTA中間包生成所述目標(biāo)升級(jí)文件系統(tǒng)對(duì)應(yīng)的OTA升級(jí)包,相比現(xiàn)有技術(shù)而言,無(wú)需保存中間包,可以直接從工廠刷機(jī)包或終端的相關(guān)物理分區(qū)中獲取目標(biāo)升級(jí)文件系統(tǒng)的源文件,不會(huì)占用服務(wù)器大量資源,而且OTA中間包丟失或者破壞時(shí),也可以根據(jù)源文件獲取目標(biāo)文件,并根據(jù)目標(biāo)文件生成OTA中間包,最終根據(jù)OTA中間包生成OTA升級(jí)包,避免了 OTA中間包丟失或者破壞時(shí),終端就無(wú)法通過(guò)OTA升級(jí)包升級(jí),用戶將無(wú)法通過(guò)OTA升級(jí)包升級(jí)到新的固件版本的問(wèn)題。
【附圖說(shuō)明】
[0017]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0018]圖1為本發(fā)明系統(tǒng)固件升級(jí)包的生成方法一實(shí)施例的流程示意圖;
[0019]圖2A為本發(fā)明系統(tǒng)固件升級(jí)包的生成裝置一實(shí)施例的結(jié)構(gòu)示意圖;
[0020]圖2B為本發(fā)明系統(tǒng)固件升級(jí)包的生成裝置另一實(shí)施例的結(jié)構(gòu)示意圖
[0021]圖3為本發(fā)明系統(tǒng)固件升級(jí)包的生成設(shè)備一實(shí)施例的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0022]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0023]本發(fā)明實(shí)施例的系統(tǒng)固件升級(jí)包的生成方法可以應(yīng)用于對(duì)終端的系統(tǒng)固件進(jìn)行升級(jí)處理,具體實(shí)施例中以對(duì)終端的安卓系統(tǒng)為例進(jìn)行說(shuō)明。
[0024]下面以具體地實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說(shuō)明。下面這幾個(gè)具體的實(shí)施例可以相互結(jié)合,對(duì)于相同或相似的概念或過(guò)程可能在某些實(shí)施例不再贅述。
[0025]圖1為本發(fā)明系統(tǒng)固件升級(jí)包的生成方法一實(shí)施例的流程示意圖。如圖1所示,本實(shí)施例的方法,包括:
[0026]步驟101、獲取目標(biāo)升級(jí)文件系統(tǒng)中的源文件;源文件包括:系統(tǒng)鏡像文件、恢復(fù)模式下的鏡像文件、開(kāi)機(jī)引導(dǎo)模式boot下的鏡像文件和協(xié)議文件;
[0027]步驟102、分別獲取與目標(biāo)升級(jí)文件系統(tǒng)中的源文件對(duì)應(yīng)的目標(biāo)文件;
[0028]步驟103、獲取目標(biāo)升級(jí)文件系統(tǒng)的配置文件;
[0029]步驟104、將目標(biāo)文件和配置文件打包生成目標(biāo)升級(jí)文件系統(tǒng)對(duì)應(yīng)的OTA中間包,并根據(jù)OTA中間包生成目標(biāo)升級(jí)文件系統(tǒng)對(duì)應(yīng)的OTA升級(jí)包。
[0030]在實(shí)際應(yīng)用中,OTA升級(jí)包依賴于中間包,但由于一些主客觀原因(如硬盤損壞、系統(tǒng)中毒、人為誤操作等)導(dǎo)致OTA中間包丟失或者破壞,此時(shí)終端就無(wú)法通過(guò)OTA升級(jí)包升級(jí),用戶將無(wú)法通過(guò)OTA升級(jí)到新的固件版本,另外,隨著終端的系統(tǒng)版本的升級(jí),OTA升級(jí)包越來(lái)越大,占用服務(wù)器大量資源,如果每發(fā)布一個(gè)版本都要保存相應(yīng)的OTA中間包,對(duì)服務(wù)器資源要求非常高,而且由于中間包的拷貝需要借助文件傳輸協(xié)議(File TransferProtocol,簡(jiǎn)稱FTP),由于拷貝本身及FTP的穩(wěn)定性問(wèn)題,可能在這過(guò)程中造成數(shù)據(jù)丟失損毀等情況,而中間包不同于工廠刷機(jī)包,沒(méi)有辦法測(cè)試其功能性、完整性,另外,開(kāi)發(fā)人員也可能因?yàn)樽陨碓虼嬖谡`刪除或者忘記備份OTA中間包的問(wèn)題,一旦出現(xiàn)問(wèn)題,后期基于此中間包制作OTA升級(jí)包時(shí)就會(huì)存在問(wèn)題。這樣就要求開(kāi)發(fā)人員在備份OTA中間包的時(shí),務(wù)必保證其完整性,這對(duì)服務(wù)器資源和人力資源是一種巨大的浪費(fèi)。
[0031]而在本發(fā)明實(shí)施例中,可以無(wú)需保存中間包,具體來(lái)說(shuō),在制作OTA升級(jí)包時(shí),獲取目標(biāo)升級(jí)文件系統(tǒng)中的源文件;源文件包括:系統(tǒng)鏡像文件、恢復(fù)模式下的鏡像文件、開(kāi)機(jī)引導(dǎo)模式boot下的鏡像文件和協(xié)議文件。
[0032]然后分別確定與目標(biāo)升級(jí)文件系統(tǒng)中的源文件對(duì)應(yīng)的目標(biāo)文件;如源文件中的系統(tǒng)鏡像文件對(duì)應(yīng)的系統(tǒng)文件、源文件中的恢復(fù)模式下的鏡像文件對(duì)應(yīng)的恢復(fù)模式下的虛擬硬盤及內(nèi)核文件、源文件中的boot下的鏡像文件對(duì)應(yīng)的boot下的虛擬硬盤及內(nèi)核文件,源文件中的協(xié)議文件對(duì)應(yīng)的目標(biāo)文件。
[0033]將目標(biāo)文件和配置文件打包生成目標(biāo)升級(jí)文件系統(tǒng)對(duì)應(yīng)的無(wú)線下載OTA中間包,并根據(jù)OTA中間包生成目標(biāo)升級(jí)文件系統(tǒng)對(duì)應(yīng)的OTA升級(jí)包。
[0034]需要說(shuō)明的是,本發(fā)明實(shí)施例中的OTA升級(jí)包包括OTA完整升級(jí)包和OTA差分升級(jí)包。OTA升級(jí)包一般通過(guò)服務(wù)器上供終端下載、運(yùn)行以完成對(duì)終端的文件系統(tǒng)的升級(jí)的。終端在出廠時(shí)已經(jīng)自帶了一定的文件系統(tǒng),此時(shí)的文件系統(tǒng)為待升級(jí)文件系統(tǒng),升級(jí)時(shí)是將該待升級(jí)文件系統(tǒng)升級(jí)為目標(biāo)升級(jí)文件系統(tǒng)。
[0035]其中,目標(biāo)升級(jí)文件系統(tǒng)中的目標(biāo)文件,如包括文件夾SYSTEM、RE⑶VERY、RA