本發(fā)明實(shí)施例涉及數(shù)字電視機(jī)頂盒領(lǐng)域,尤其涉及一種可升級(jí)文件的升級(jí)方法、機(jī)頂盒和存儲(chǔ)介質(zhì)。
背景技術(shù):
隨著全球化數(shù)字電視行業(yè)的迅猛發(fā)展,數(shù)字機(jī)頂盒已經(jīng)遍及廣大的家庭,成為人們?cè)谌粘I钪辛私馐澜?、認(rèn)知事物和娛樂消費(fèi)的重要平臺(tái)?;趯?duì)數(shù)字電視內(nèi)容的保護(hù),條件接收(conditionalaccess,ca)系統(tǒng)應(yīng)運(yùn)而生,各種條件接收方案廣泛地被世界各國(guó)的機(jī)頂盒運(yùn)營(yíng)商們所采用。不同的ca廠家,為了保證各自條件接收系統(tǒng)的安全,對(duì)其系統(tǒng)功能升級(jí)做了相應(yīng)的規(guī)范,并產(chǎn)生了各具特色的loader(完成數(shù)字電視機(jī)頂盒軟件更新的模塊)。同時(shí)ca廠家也會(huì)強(qiáng)制要求loader認(rèn)證。
ca常規(guī)的loader主要實(shí)現(xiàn)對(duì)app(application,應(yīng)用程序)各分區(qū)(即flash各分區(qū))的升級(jí),其中,決定一個(gè)loader的因素主要有:主芯片型號(hào)、ca類型、flash(flashmemory,閃存)配置、ddr(dualdatarate,雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器)配置以及flash規(guī)劃,前四個(gè)因素由硬件決定,項(xiàng)目不同主要是flash規(guī)劃不同。
現(xiàn)有技術(shù)中,由于應(yīng)用軟件是按照f(shuō)lash分區(qū)來(lái)升級(jí)的,在loader認(rèn)證時(shí),各分區(qū)的起始地址、大小以及是否需要校驗(yàn)等信息已不能修改。在認(rèn)證過后,ca公司也將按上述信息來(lái)對(duì)認(rèn)證文件簽名,這將導(dǎo)致不同的flash規(guī)劃需要做不同的loader認(rèn)證,loader的可復(fù)用性較差,同時(shí)也增加了認(rèn)證的人力物力的投入。
技術(shù)實(shí)現(xiàn)要素:
為解決相關(guān)技術(shù)問題,本發(fā)明提供一種可升級(jí)文件的升級(jí)方法、機(jī)頂盒和存儲(chǔ)介質(zhì),改變了一個(gè)loader只能用于一種flash規(guī)劃的限制,實(shí)現(xiàn)了統(tǒng)一認(rèn)證的loader共享給多個(gè)flash規(guī)劃來(lái)進(jìn)行文件的升級(jí)。
為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例采用如下技術(shù)方案:
第一方面,本發(fā)明實(shí)施例提供了一種可升級(jí)文件的升級(jí)方法,所述方法包括:
獲取并解析可升級(jí)文件包,得到所述可升級(jí)文件包中包含的文件描述頭及對(duì)應(yīng)的至少一個(gè)可升級(jí)文件,其中,所述存儲(chǔ)器的分區(qū)按照所述可升級(jí)文件的數(shù)據(jù)類型劃分為兩種標(biāo)準(zhǔn)分區(qū),每種標(biāo)準(zhǔn)分區(qū)包括至少一個(gè)子分區(qū),每個(gè)子分區(qū)用于存儲(chǔ)對(duì)應(yīng)的可升級(jí)文件,所述文件描述頭用于描述所述至少一個(gè)可升級(jí)文件在所述存儲(chǔ)器中對(duì)應(yīng)的分區(qū)信息;
解析所述文件描述頭,獲取所述分區(qū)信息;
根據(jù)所述分區(qū)信息,將所述至少一個(gè)可升級(jí)文件寫入到所述存儲(chǔ)器對(duì)應(yīng)的分區(qū)中。
進(jìn)一步的,所述分區(qū)信息包括:待升級(jí)的子分區(qū)的總個(gè)數(shù)、總大小、每個(gè)待升級(jí)子分區(qū)在對(duì)應(yīng)的標(biāo)準(zhǔn)分區(qū)中的地址和大小。
進(jìn)一步的,所述存儲(chǔ)器中還包括硬件配置文件,所述硬件配置文件包括:存儲(chǔ)器中每種標(biāo)準(zhǔn)分區(qū)的總大小、所有子分區(qū)的總個(gè)數(shù)、所有待升級(jí)的子分區(qū)總個(gè)數(shù)、每個(gè)子分區(qū)在所述標(biāo)準(zhǔn)分區(qū)中的地址和大小,其中,所述硬件配置文件已得到對(duì)應(yīng)條件接收系統(tǒng)廠商的認(rèn)證;
相應(yīng)的,根據(jù)所述分區(qū)信息,將所述至少一個(gè)可升級(jí)文件寫入到所述存儲(chǔ)器對(duì)應(yīng)的分區(qū)中,包括:
根據(jù)所述配置文件中的所有待升級(jí)的子分區(qū)總個(gè)數(shù)以及所述硬件配置文件中所有子分區(qū)的總個(gè)數(shù),判斷是否需要升級(jí)所有子分區(qū)的文件;
如果需要升級(jí)所述所有子分區(qū)的文件,則根據(jù)所述分區(qū)信息獲取每個(gè)待升級(jí)子分區(qū)在對(duì)應(yīng)的標(biāo)準(zhǔn)分區(qū)中的地址,根據(jù)該地址將全部可升級(jí)文件寫入到對(duì)應(yīng)的標(biāo)準(zhǔn)分區(qū)中的子分區(qū)中;
如果不需要升級(jí)所述所有子分區(qū)的文件,則讀出所述存儲(chǔ)器中不需要升級(jí)的子分區(qū)的文件,計(jì)算所有需要升級(jí)的子分區(qū)的文件的總校驗(yàn)值,并根據(jù)所述分區(qū)信息獲取每個(gè)待升級(jí)子分區(qū)在對(duì)應(yīng)的標(biāo)準(zhǔn)分區(qū)中的地址,根據(jù)該地址將全部可升級(jí)文件寫入到對(duì)應(yīng)的標(biāo)準(zhǔn)分區(qū)中的子分區(qū)中。
進(jìn)一步的,在所述判斷是否需要升級(jí)所有子分區(qū)的文件之前,所述方法還包括:
判斷所述硬件配置文件中的所有待升級(jí)的子分區(qū)的總個(gè)數(shù)是否與當(dāng)前兩種標(biāo)準(zhǔn)分區(qū)中待升級(jí)的子分區(qū)的總個(gè)數(shù)之和相匹配;
如果不匹配,則將所述文件描述頭的信息替換所述硬件配置文件的信息,以升級(jí)所述硬件配置文件;
如果相匹配,則執(zhí)行所述判斷是否需要升級(jí)所有子分區(qū)的文件的操作。
進(jìn)一步的,所述標(biāo)準(zhǔn)分區(qū)包括需校驗(yàn)分區(qū)和不需校驗(yàn)分區(qū)。
進(jìn)一步的,所述存儲(chǔ)器為閃存。
進(jìn)一步的,所述可升級(jí)文件為二進(jìn)制文件。
第二方面,本發(fā)明實(shí)施例提供了一種機(jī)頂盒,所述機(jī)頂盒包括:存儲(chǔ)器、處理器及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,其中,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)任一上述所述的一種可升級(jí)文件的升級(jí)方法。
第三方面,本發(fā)明實(shí)施例提供了一種包含計(jì)算機(jī)可執(zhí)行指令的存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令在由計(jì)算機(jī)處理器執(zhí)行以實(shí)現(xiàn)任一上述所述的一種可升級(jí)文件的升級(jí)方法。
本發(fā)明實(shí)施例的技術(shù)方案中,在對(duì)機(jī)頂盒存儲(chǔ)器分區(qū)中的可升級(jí)文件進(jìn)行升級(jí)時(shí),獲取并解析可升級(jí)文件包,得到所述可升級(jí)文件包中包含的文件描述頭及對(duì)應(yīng)的至少一個(gè)可升級(jí)文件,其中,所述存儲(chǔ)器的分區(qū)按照所述可升級(jí)文件的數(shù)據(jù)類型劃分為兩種標(biāo)準(zhǔn)分區(qū),每種標(biāo)準(zhǔn)分區(qū)包括至少一個(gè)子分區(qū),每個(gè)子分區(qū)用于存儲(chǔ)對(duì)應(yīng)的可升級(jí)文件,所述文件描述頭用于描述所述至少一個(gè)可升級(jí)文件在所述存儲(chǔ)器中對(duì)應(yīng)的分區(qū)信息。由于現(xiàn)有技術(shù)所提供的文件存儲(chǔ)方式并沒有一個(gè)統(tǒng)一的標(biāo)準(zhǔn),因此,通過將所述存儲(chǔ)器的分區(qū)劃分為兩種標(biāo)準(zhǔn)分區(qū)后,可將可升級(jí)文件按照其數(shù)據(jù)類型存儲(chǔ)到對(duì)應(yīng)的標(biāo)準(zhǔn)分區(qū)中,每個(gè)標(biāo)準(zhǔn)分區(qū)可統(tǒng)一計(jì)算其校驗(yàn)值。在ca公司對(duì)可升級(jí)文件包進(jìn)行l(wèi)oader認(rèn)證時(shí),相對(duì)于現(xiàn)有技術(shù)提供的對(duì)每個(gè)待升級(jí)的分區(qū)依次進(jìn)行認(rèn)證的方式,本發(fā)明實(shí)施例的技術(shù)方案可將標(biāo)準(zhǔn)分區(qū)作為一個(gè)整體進(jìn)行認(rèn)證。同時(shí),研發(fā)人員也無(wú)需對(duì)可升級(jí)的文件依次計(jì)算校驗(yàn)值,而將標(biāo)準(zhǔn)分區(qū)作為一個(gè)整體來(lái)計(jì)算其校驗(yàn)值即可,此外,在每種標(biāo)準(zhǔn)分區(qū)中也可根據(jù)不同flash規(guī)劃靈活地配置可升級(jí)文件。在ca公司進(jìn)行認(rèn)證的過程中,通過文件描述頭可判斷出當(dāng)前flash規(guī)劃中的可升級(jí)文件包是否符合flash存儲(chǔ)器的硬件配置標(biāo)準(zhǔn)。在經(jīng)過一次loader認(rèn)證后,若其他flash規(guī)劃不超出flash存儲(chǔ)器的硬件配置標(biāo)準(zhǔn),則對(duì)于其他flash規(guī)劃的升級(jí)文件無(wú)需重復(fù)進(jìn)行l(wèi)oader認(rèn)證。ca公司通過結(jié)合文件描述頭的信息,且檢測(cè)出可升級(jí)文件包不會(huì)對(duì)機(jī)頂盒造成影響時(shí),可對(duì)可升級(jí)文件包進(jìn)行簽名。因此,通過將存儲(chǔ)器的分區(qū)劃分為兩種標(biāo)準(zhǔn)分區(qū),可提高loader的復(fù)用性,同時(shí)也可減小人力物力成本。機(jī)頂盒在對(duì)可升級(jí)文件包進(jìn)行升級(jí)時(shí),通過獲取并解析可升級(jí)文件包,得到所述可升級(jí)文件包中包含的文件描述頭及對(duì)應(yīng)的至少一個(gè)可升級(jí)文件。通過解析所述文件描述頭,獲取所述分區(qū)信息;根據(jù)所述分區(qū)信息,將所述至少一個(gè)可升級(jí)文件寫入到所述存儲(chǔ)器對(duì)應(yīng)的分區(qū)中,此時(shí),可升級(jí)文件替代了原來(lái)存儲(chǔ)器分區(qū)中存儲(chǔ)的文件,完成了文件的升級(jí)。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)本發(fā)明實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)本發(fā)明實(shí)施例的內(nèi)容和這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例一提供的一種可升級(jí)文件的升級(jí)方法的流程示意圖;
圖2a為本發(fā)明實(shí)施例一提供的一種flash分區(qū)的結(jié)構(gòu)示意圖;
圖2b為本發(fā)明實(shí)施例一提供的一種將flash可升級(jí)的區(qū)域分類后的結(jié)構(gòu)示意圖;
圖3為本發(fā)明實(shí)施例二提供的一種可升級(jí)文件的升級(jí)方法的流程示意圖;
圖4為本發(fā)明實(shí)施例三提供的一種機(jī)頂盒的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明解決的技術(shù)問題、采用的技術(shù)方案和達(dá)到的技術(shù)效果更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施例的技術(shù)方案作進(jìn)一步的詳細(xì)描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
實(shí)施例一
圖1為本發(fā)明實(shí)施例一提供的一種可升級(jí)文件的升級(jí)方法的流程示意圖。本實(shí)施例的方法可以由可升級(jí)文件的升級(jí)裝置來(lái)執(zhí)行,其中該裝置可由軟件和/或硬件實(shí)現(xiàn),一般可集成在數(shù)字電視一體機(jī)或機(jī)頂盒中,該方法可應(yīng)用于在機(jī)頂盒的存儲(chǔ)器的分區(qū)中存儲(chǔ)的文件的升級(jí)。如圖1所示,該方法可以包括如下步驟:
s110:獲取并解析可升級(jí)文件包,得到可升級(jí)文件包中包含的文件描述頭及對(duì)應(yīng)的至少一個(gè)可升級(jí)文件。
其中,存儲(chǔ)器的分區(qū)按照可升級(jí)文件的數(shù)據(jù)類型可以劃分為兩種標(biāo)準(zhǔn)分區(qū),每種標(biāo)準(zhǔn)分區(qū)包括至少一個(gè)子分區(qū),每個(gè)子分區(qū)用于存儲(chǔ)對(duì)應(yīng)的可升級(jí)文件,文件描述頭用于描述至少一個(gè)可升級(jí)文件在存儲(chǔ)器中對(duì)應(yīng)的分區(qū)信息。
示例性的,標(biāo)準(zhǔn)分區(qū)包括需校驗(yàn)分區(qū)和不需校驗(yàn)分區(qū)。在校驗(yàn)分區(qū)中存儲(chǔ)的文件都是需要校驗(yàn)的文件,不需校驗(yàn)分區(qū)中存儲(chǔ)的是非校驗(yàn)文件。本發(fā)明實(shí)施例中所涉及到的文件優(yōu)選為二進(jìn)制文件,存儲(chǔ)器優(yōu)選為flash。
當(dāng)機(jī)頂盒在使用的過程中出現(xiàn)bug(漏洞)或者需要功能升級(jí)時(shí),可通過loader對(duì)可升級(jí)的文件進(jìn)行升級(jí)。
在進(jìn)行文件升級(jí)之前,需要將機(jī)頂盒及其可升級(jí)文件包發(fā)送到ca公司去認(rèn)證,如果認(rèn)證通過,即可得到ca公司的簽名,繼而完成可升級(jí)文件的升級(jí),而在ca公司認(rèn)證之前,需完成如下準(zhǔn)備工作:
將待升級(jí)的文件按照其自身的數(shù)據(jù)類型和當(dāng)前flash規(guī)劃的大小填充到對(duì)應(yīng)的標(biāo)準(zhǔn)分區(qū)中,然后利用拼接工具將填充好的可升級(jí)文件與文件描述頭拼接,同時(shí)原有flash中的其他功能性分區(qū)(例如loader或verifydata等分區(qū))保持不變,形成可升級(jí)文件包。示例性的,文件描述頭中的分區(qū)信息包括:待升級(jí)的子分區(qū)的總個(gè)數(shù)、大小、每個(gè)待升級(jí)子分區(qū)在對(duì)應(yīng)的標(biāo)準(zhǔn)分區(qū)中的地址和大小。示例性的,原有flash中的其他分區(qū)中包括硬件配置文件,其中,硬件配置文件包括:每種標(biāo)準(zhǔn)分區(qū)的總大小、存儲(chǔ)器中所有子分區(qū)的總個(gè)數(shù)、所有待升級(jí)的子分區(qū)總個(gè)數(shù)、每個(gè)子分區(qū)在所述標(biāo)準(zhǔn)分區(qū)中的地址和大小。
當(dāng)可升級(jí)文件包制作完成后,機(jī)頂盒及其可升級(jí)文件包則可發(fā)送到ca公司去認(rèn)證。示例性的,ca公司對(duì)當(dāng)前flash規(guī)劃進(jìn)行l(wèi)oader認(rèn)證時(shí),如果根據(jù)文件描述頭判斷出可升級(jí)文件符合硬件配置文件的標(biāo)準(zhǔn),且可升級(jí)文件不會(huì)對(duì)機(jī)頂盒系統(tǒng)造成影響時(shí),表示當(dāng)前flash規(guī)劃的loader通過此次認(rèn)證,且可得到ca公司授予的簽名,機(jī)頂盒可對(duì)填充的可升級(jí)文件進(jìn)行升級(jí)。
具體的,圖2a為本發(fā)明實(shí)施例一提供的一種flash分區(qū)的結(jié)構(gòu)示意圖;圖2b為本發(fā)明實(shí)施例一提供的一種將flash可升級(jí)的區(qū)域分類后的結(jié)構(gòu)示意圖。如圖2a所示,區(qū)域module3-modulen表示可以進(jìn)行文件升級(jí)的區(qū)域,其中存儲(chǔ)的文件可以是需要校驗(yàn)的二進(jìn)制文件,也可以是不需要校驗(yàn)的二進(jìn)制文件,這兩類文件混合排布。對(duì)于當(dāng)前flash規(guī)劃a,在進(jìn)行l(wèi)oader認(rèn)證時(shí),module3-modulen中各個(gè)分區(qū)的地址、大小以及是否需要校驗(yàn)等信息已不能進(jìn)行修改,因此,需要對(duì)module3-modulen中的各個(gè)分區(qū)依次進(jìn)行認(rèn)證。如圖2b所示,在將module3-modulen中的文件按照需要校驗(yàn)和不需要校驗(yàn)的數(shù)據(jù)類型劃分為校驗(yàn)分區(qū)(module_check1)和不需校驗(yàn)分區(qū)(module_nocheck2)后,如module_sub1和module_sub2等子分區(qū)中存儲(chǔ)的是按照數(shù)據(jù)類型分類后的原有module3-modulen中的文件。在將標(biāo)準(zhǔn)分區(qū)劃分之后,需為每種標(biāo)準(zhǔn)分區(qū)拼接一個(gè)文件描述頭,用來(lái)描述各個(gè)子分區(qū)的信息。在進(jìn)行l(wèi)oader認(rèn)證時(shí),ca公司不需要了解每種標(biāo)準(zhǔn)分區(qū)中的子分區(qū)信息,將module_check1或module_nocheck2這兩種標(biāo)準(zhǔn)分區(qū)作為一個(gè)整體來(lái)進(jìn)行認(rèn)證即可,例如當(dāng)前flash規(guī)劃a需要升級(jí)的是module_check1區(qū)域中的文件,且根據(jù)文件描述頭判斷出待升級(jí)的文件的大小(例如10兆)不超過硬件配置文件(hwconfig)中規(guī)劃的需校驗(yàn)分區(qū)的總大小(例如20兆),且檢測(cè)出待升級(jí)的文件不會(huì)對(duì)機(jī)頂盒造成影響時(shí),loader認(rèn)證即可通過。
在第一次loader認(rèn)證通過后,對(duì)于在每種標(biāo)準(zhǔn)分區(qū)的各個(gè)子分區(qū)中存儲(chǔ)的可升級(jí)文件,可按照不同的flash規(guī)劃靈活地對(duì)其進(jìn)行配置。示例性的,對(duì)于flash規(guī)劃b,需要升級(jí)的文件個(gè)數(shù)相對(duì)于flash規(guī)劃a可能會(huì)發(fā)生變化。例如,在flash規(guī)劃a的基礎(chǔ)上新增加一個(gè)需校驗(yàn)分區(qū)的升級(jí)文件n(大小為2兆),因此需要將可升級(jí)文件n存儲(chǔ)在module_check1對(duì)應(yīng)的區(qū)域中。由于在上一個(gè)flash規(guī)劃a中硬件配置文件已得到ca公司的認(rèn)證,對(duì)于當(dāng)前flash規(guī)劃b中的升級(jí)文件,則不需要重復(fù)去認(rèn)證,因?yàn)閒lash規(guī)劃a中升級(jí)文件的大小(10兆)加上flash規(guī)劃b中升級(jí)文件n的大小(2兆)之和不超過已得到認(rèn)證的硬件配置文件中的規(guī)劃的需校驗(yàn)分區(qū)的總大小(20兆),所以,對(duì)于當(dāng)前flash規(guī)劃b中待升級(jí)的文件n,得到ca公司的簽名后即可進(jìn)行升級(jí)。因此,在利用本發(fā)明實(shí)施例所提供的可升級(jí)文件的升級(jí)方法對(duì)可升級(jí)文件進(jìn)行升級(jí)前,不需要多次得到ca公司的認(rèn)證,降低了認(rèn)證的費(fèi)用。
在前期準(zhǔn)備工作完成后,當(dāng)機(jī)頂盒接收到文件升級(jí)的觸發(fā)指令時(shí),可升級(jí)文件包可以u(píng)sb或者ota(over-the-airtechnology,空中下載技術(shù))等形式發(fā)送到機(jī)頂盒中。機(jī)頂盒在接收到可升級(jí)文件包后,隨即啟動(dòng)數(shù)據(jù)解析流程,得到可升級(jí)文件包中包含的文件描述頭及對(duì)應(yīng)的至少一個(gè)可升級(jí)文件。
示例性的,若機(jī)頂盒在解析可升級(jí)文件包后,若發(fā)現(xiàn)并不存在文件描述頭時(shí),則按照現(xiàn)有技術(shù)提供的文件升級(jí)流程完成文件升級(jí)即可。
s120:解析文件描述頭,獲取分區(qū)信息。
通過解析文件描述頭,可獲取待升級(jí)的子分區(qū)的總個(gè)數(shù)大小、每個(gè)待升級(jí)子分區(qū)在對(duì)應(yīng)的標(biāo)準(zhǔn)分區(qū)中的地址和大小。因此,根據(jù)文件頭中描述的信息可確定可升級(jí)文件包中填充的可升級(jí)文件最后的存儲(chǔ)位置。
s130:根據(jù)分區(qū)信息,將至少一個(gè)可升級(jí)文件寫入到存儲(chǔ)器對(duì)應(yīng)的分區(qū)中。
其中,文件升級(jí)是將待升級(jí)的文件寫入到對(duì)應(yīng)的存儲(chǔ)區(qū)域。由于在可升級(jí)文件包中已經(jīng)填充有待升級(jí)的文件,因此,當(dāng)機(jī)頂盒接收到文件升級(jí)指令后,啟動(dòng)loader,根據(jù)每個(gè)待升級(jí)子分區(qū)在對(duì)應(yīng)的標(biāo)準(zhǔn)分區(qū)中的地址,將存儲(chǔ)分區(qū)的原有文件擦除,并將填充的可升級(jí)文件寫入對(duì)應(yīng)的標(biāo)準(zhǔn)分區(qū)中,即可完成可升級(jí)文件的升級(jí)。
本發(fā)明實(shí)施例提供了一種可升級(jí)文件的升級(jí)方法,在對(duì)機(jī)頂盒存儲(chǔ)器分區(qū)中的可升級(jí)文件進(jìn)行升級(jí)時(shí),獲取并解析可升級(jí)文件包,得到所述可升級(jí)文件包中包含的文件描述頭及對(duì)應(yīng)的至少一個(gè)可升級(jí)文件,其中,所述存儲(chǔ)器的分區(qū)按照所述可升級(jí)文件的數(shù)據(jù)類型劃分為兩種標(biāo)準(zhǔn)分區(qū),每種標(biāo)準(zhǔn)分區(qū)包括至少一個(gè)子分區(qū),每個(gè)子分區(qū)用于存儲(chǔ)對(duì)應(yīng)的可升級(jí)文件,所述文件描述頭用于描述所述至少一個(gè)可升級(jí)文件在所述存儲(chǔ)器中對(duì)應(yīng)的分區(qū)信息。由于現(xiàn)有技術(shù)所提供的文件存儲(chǔ)方式并沒有一個(gè)統(tǒng)一的標(biāo)準(zhǔn),因此,通過將所述存儲(chǔ)器的分區(qū)劃分為兩種標(biāo)準(zhǔn)分區(qū)后,可將可升級(jí)文件按照其數(shù)據(jù)類型對(duì)應(yīng)的存儲(chǔ)到標(biāo)準(zhǔn)分區(qū)中,每個(gè)標(biāo)準(zhǔn)分區(qū)可統(tǒng)一計(jì)算其校驗(yàn)值。在ca公司對(duì)可升級(jí)文件包進(jìn)行l(wèi)oader認(rèn)證時(shí),相對(duì)于現(xiàn)有技術(shù)提供的對(duì)每個(gè)待升級(jí)的分區(qū)依次進(jìn)行認(rèn)證的方式,本發(fā)明實(shí)施例的技術(shù)方案可將標(biāo)準(zhǔn)分區(qū)作為一個(gè)整體進(jìn)行認(rèn)證。同時(shí),研發(fā)人員也無(wú)需對(duì)可升級(jí)的文件依次計(jì)算校驗(yàn)值,將標(biāo)準(zhǔn)分區(qū)作為一個(gè)整體來(lái)計(jì)算其校驗(yàn)值即可,此外,在每種標(biāo)準(zhǔn)分區(qū)中也可根據(jù)不同flash規(guī)劃靈活地配置可升級(jí)文件。在ca公司進(jìn)行認(rèn)證的過程中,通過文件描述頭可判斷出當(dāng)前flash規(guī)劃中的可升級(jí)文件包是否符合flash存儲(chǔ)器的硬件配置標(biāo)準(zhǔn)。在經(jīng)過一次loader認(rèn)證后,若其他flash規(guī)劃不超出flash存儲(chǔ)器的硬件配置標(biāo)準(zhǔn),則其他flash規(guī)劃無(wú)需重復(fù)認(rèn)證。ca公司通過結(jié)合文件描述頭的信息,檢測(cè)出可升級(jí)文件包不會(huì)對(duì)機(jī)頂盒造成影響時(shí),可對(duì)可升級(jí)文件包進(jìn)行簽名。因此,通過將存儲(chǔ)器的分區(qū)劃分為兩種標(biāo)準(zhǔn)分區(qū),可提高loader的復(fù)用性,同時(shí)也可減小人力物力成本。機(jī)頂盒在對(duì)可升級(jí)文件包進(jìn)行升級(jí)時(shí),通過獲取并解析可升級(jí)文件包,得到所述可升級(jí)文件包中包含的文件描述頭及對(duì)應(yīng)的至少一個(gè)可升級(jí)文件。通過解析所述文件描述頭,獲取所述分區(qū)信息;根據(jù)所述分區(qū)信息,將所述至少一個(gè)可升級(jí)文件寫入到所述存儲(chǔ)器對(duì)應(yīng)的分區(qū)中,此時(shí),可升級(jí)文件替代了原來(lái)存儲(chǔ)器分區(qū)中存儲(chǔ)的文件,完成了文件的升級(jí)。
實(shí)施例二
圖3為本發(fā)明實(shí)施例二提供的一種可升級(jí)文件的升級(jí)方法的流程示意圖。本實(shí)施例二在實(shí)施例一的基礎(chǔ)上,對(duì)步驟“根據(jù)分區(qū)信息,將至少一個(gè)可升級(jí)文件寫入到存儲(chǔ)器對(duì)應(yīng)的分區(qū)中”及其之前的過程進(jìn)行了優(yōu)化,參照?qǐng)D3,本發(fā)明實(shí)施例二具體包括如下步驟:
s210:獲取并解析可升級(jí)文件包,得到可升級(jí)文件包中包含的文件描述頭及對(duì)應(yīng)的至少一個(gè)可升級(jí)文件。
s220:解析文件描述頭,獲取分區(qū)信息。
s230:判斷硬件配置文件中的所有待升級(jí)的子分區(qū)的總個(gè)數(shù)是否與當(dāng)前兩種標(biāo)準(zhǔn)分區(qū)中待升級(jí)的子分區(qū)的總個(gè)數(shù)之和相匹配,若是,則執(zhí)行步驟s240;否則,執(zhí)行步驟s250。
需要說(shuō)明的是,flash各個(gè)分區(qū)中存儲(chǔ)的文件并非都是需要升級(jí)的文件。若某些分區(qū)需要進(jìn)行文件升級(jí),則在數(shù)據(jù)打包的過程中,將可升級(jí)文件填充到對(duì)應(yīng)的標(biāo)準(zhǔn)分區(qū)中。由于文件描述頭中包含待升級(jí)的子分區(qū)的總個(gè)數(shù),因此,在解析文件描述頭后,如果當(dāng)前兩種標(biāo)準(zhǔn)分區(qū)中待升級(jí)的子分區(qū)的總個(gè)數(shù)之和與硬件配置文件中所有待升級(jí)的子分區(qū)的總個(gè)數(shù)相同(例如需校驗(yàn)分區(qū)的描述頭中描述的待升級(jí)的子分區(qū)的總個(gè)數(shù)為3,不需校驗(yàn)分區(qū)的描述頭中描述的待升級(jí)的子分區(qū)的總個(gè)數(shù)為2,硬件配置文件中已存儲(chǔ)的兩種標(biāo)準(zhǔn)分區(qū)中待升級(jí)的子分區(qū)的總個(gè)數(shù)之和為5),則表示不需要升級(jí)硬件配置文件;如果當(dāng)前兩種標(biāo)準(zhǔn)分區(qū)中待升級(jí)的子分區(qū)的總個(gè)數(shù)之和與硬件配置文件中所有待升級(jí)的子分區(qū)的總個(gè)數(shù)不相同時(shí),這里可表示在前一個(gè)flash規(guī)劃中已經(jīng)完成升級(jí)的文件個(gè)數(shù)的基礎(chǔ)上,又增加了新的待升級(jí)的文件b,雖然文件描述頭中包含了新的待升級(jí)的文件b的地址和大小等信息,但此時(shí)硬件配置文件中并不存在新增加的待升級(jí)的文件b的信息,因此,需要更新硬件配置文件來(lái)加入待升級(jí)文件b的信息。
s240:根據(jù)配置文件中的所有待升級(jí)的子分區(qū)總個(gè)數(shù)以及硬件配置文件中所有子分區(qū)的總個(gè)數(shù)判斷是否需要升級(jí)所有子分區(qū)的文件的操作,若是,則執(zhí)行步驟s260;否則,執(zhí)行步驟s270。
在升級(jí)硬件配置文件后,硬件配置文件中則包含有所有待升級(jí)的子分區(qū)的總個(gè)數(shù)信息。通過將該信息與所有子分區(qū)的總個(gè)數(shù)相匹配,可判斷出是否需要升級(jí)當(dāng)前flash中的所有子分區(qū)。
s250:將文件描述頭的信息替換硬件配置文件的信息,以升級(jí)硬件配置文件,繼續(xù)執(zhí)行步驟s240。
s260:根據(jù)分區(qū)信息獲取每個(gè)待升級(jí)子分區(qū)在對(duì)應(yīng)的標(biāo)準(zhǔn)分區(qū)中的地址,根據(jù)該地址將全部可升級(jí)文件寫入到對(duì)應(yīng)的標(biāo)準(zhǔn)分區(qū)中的子分區(qū)中。
s270:讀出所述存儲(chǔ)器中不需要升級(jí)的子分區(qū)的文件,計(jì)算所有待升級(jí)的子分區(qū)的文件的總校驗(yàn)值,繼續(xù)執(zhí)行步驟s260。
示例性的,如果新增加了需要升級(jí)的文件,則在升級(jí)硬件配置文件后,flash分區(qū)中原來(lái)存儲(chǔ)的校驗(yàn)值也需相應(yīng)的進(jìn)行更新。在校驗(yàn)值更新完成后,即可執(zhí)行在對(duì)應(yīng)的標(biāo)準(zhǔn)分區(qū)中的地址中寫入可升級(jí)文件的操作。
本實(shí)施例二在上述實(shí)施例的基礎(chǔ)上,通過對(duì)硬件配置文件進(jìn)行更新,可使得機(jī)頂盒在進(jìn)行文件升級(jí)的過程中能夠完成當(dāng)前所有可升級(jí)文件的升級(jí),使得其條件接收系統(tǒng)的漏洞得到修補(bǔ),或者其功能得到進(jìn)一步完善。
實(shí)施例三
圖4為本發(fā)明實(shí)施例三提供的一種機(jī)頂盒的結(jié)構(gòu)示意圖。如圖4所示,該機(jī)頂盒包括:處理器70、存儲(chǔ)器71、輸入裝置72和輸出裝置73;設(shè)備/終端/服務(wù)器中處理器70的數(shù)量可以是一個(gè)或多個(gè),圖4中以一個(gè)處理器70為例;設(shè)備/終端/服務(wù)器中的處理器70、存儲(chǔ)器71、輸入裝置72和輸出裝置73可以通過總線或其他方式連接,圖4中以通過總線連接為例。
存儲(chǔ)器71作為一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),可用于存儲(chǔ)軟件程序、計(jì)算機(jī)可執(zhí)行程序以及模塊,如本發(fā)明實(shí)施例中的可升級(jí)文件的升級(jí)方法對(duì)應(yīng)的程序指令/模塊(例如,可升級(jí)文件的升級(jí)裝置中的可升級(jí)文件包解析模塊、分區(qū)信息獲取模塊和升級(jí)模塊)。處理器70通過運(yùn)行存儲(chǔ)在存儲(chǔ)器71中的軟件程序、指令以及模塊,從而執(zhí)行設(shè)備/終端/服務(wù)器的各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述的可升級(jí)文件的升級(jí)方法。
存儲(chǔ)器71可主要包括存儲(chǔ)程序區(qū)和存儲(chǔ)數(shù)據(jù)區(qū),其中,存儲(chǔ)程序區(qū)可存儲(chǔ)操作系統(tǒng)、至少一個(gè)功能所需的應(yīng)用程序;存儲(chǔ)數(shù)據(jù)區(qū)可存儲(chǔ)根據(jù)終端的使用所創(chuàng)建的數(shù)據(jù)等。此外,存儲(chǔ)器71可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤存儲(chǔ)器件、閃存器件、或其他非易失性固態(tài)存儲(chǔ)器件。在一些實(shí)例中,存儲(chǔ)器71可進(jìn)一步包括相對(duì)于處理器70遠(yuǎn)程設(shè)置的存儲(chǔ)器,這些遠(yuǎn)程存儲(chǔ)器可以通過網(wǎng)絡(luò)連接至設(shè)備/終端/服務(wù)器。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動(dòng)通信網(wǎng)及其組合。
輸入裝置72可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與機(jī)頂盒的用戶設(shè)置以及功能控制有關(guān)的鍵信號(hào)輸入。輸出裝置73可包括顯示屏等顯示設(shè)備。
實(shí)施例四
本發(fā)明實(shí)施例四還提供一種包含計(jì)算機(jī)可執(zhí)行指令的存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令在由計(jì)算機(jī)處理器執(zhí)行時(shí)用于執(zhí)行一種可升級(jí)文件的升級(jí)方法,該方法包括:
獲取并解析可升級(jí)文件包,得到所述可升級(jí)文件包中包含的文件描述頭及對(duì)應(yīng)的至少一個(gè)可升級(jí)文件,其中,所述存儲(chǔ)器的分區(qū)按照所述可升級(jí)文件的數(shù)據(jù)類型劃分為兩種標(biāo)準(zhǔn)分區(qū),每種標(biāo)準(zhǔn)分區(qū)包括至少一個(gè)子分區(qū),每個(gè)子分區(qū)用于存儲(chǔ)對(duì)應(yīng)的可升級(jí)文件,所述文件描述頭用于描述所述至少一個(gè)可升級(jí)文件在所述存儲(chǔ)器中對(duì)應(yīng)的分區(qū)信息;
解析所述文件描述頭,獲取所述分區(qū)信息;
根據(jù)所述分區(qū)信息,將所述至少一個(gè)可升級(jí)文件寫入到所述存儲(chǔ)器對(duì)應(yīng)的分區(qū)中。
當(dāng)然,本發(fā)明實(shí)施例所提供的一種包含計(jì)算機(jī)可執(zhí)行指令的存儲(chǔ)介質(zhì),其計(jì)算機(jī)可執(zhí)行指令不限于如上所述的方法操作,還可以執(zhí)行本發(fā)明任意實(shí)施例所提供的可升級(jí)文件的升級(jí)方法中的相關(guān)操作。
通過以上關(guān)于實(shí)施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,本發(fā)明可借助軟件及必需的通用硬件來(lái)實(shí)現(xiàn),當(dāng)然也可以通過硬件實(shí)現(xiàn),但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如計(jì)算機(jī)的軟盤、只讀存儲(chǔ)器(read-onlymemory,rom)、隨機(jī)存取存儲(chǔ)器(randomaccessmemory,ram)、閃存(flash)、硬盤或光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
注意,上述僅為本發(fā)明的較佳實(shí)施例及所運(yùn)用技術(shù)原理。本領(lǐng)域技術(shù)人員會(huì)理解,本發(fā)明不限于這里所述的特定實(shí)施例,對(duì)本領(lǐng)域技術(shù)人員來(lái)說(shuō)能夠進(jìn)行各種明顯的變化、重新調(diào)整和替代而不會(huì)脫離本發(fā)明的保護(hù)范圍。因此,雖然通過以上實(shí)施例對(duì)本發(fā)明進(jìn)行了較為詳細(xì)的說(shuō)明,但是本發(fā)明不僅僅限于以上實(shí)施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實(shí)施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。