專利名稱:嵌入式系統(tǒng)及其安全升級方法和運行方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式系統(tǒng)技術(shù)領(lǐng)域,尤其涉及一種嵌入式系統(tǒng)及其安全升級方法和運行方法。
背景技術(shù):
一般的嵌入式系統(tǒng)的組成有三個部分=Bootloader (引導(dǎo)裝載)、Kernel (內(nèi)核) 和UI (用戶界面)。系統(tǒng)啟動的時候最先執(zhí)行Bootloader,然后執(zhí)行Kernel和UI,且系統(tǒng)的升級功能一般在Bootloader中實現(xiàn)。如果系統(tǒng)在升級Kernel和UI的過程中出錯或者掉電,則可以進行修復(fù)。因為此時的Bootloader還是完整的,當(dāng)Bootloader再次啟動時,發(fā)現(xiàn)Kernel和UI不完整,則可以再次進入升級模式進行升級以修復(fù)系統(tǒng)。現(xiàn)有技術(shù)存在的缺點是,如果系統(tǒng)在升級Bootloader的過程中出錯或者掉電,由于Bootloader已不完整,則會導(dǎo)致系統(tǒng)無法啟動,且用戶無法自行修復(fù)系統(tǒng)。
發(fā)明內(nèi)容
本發(fā)明旨在至少解決現(xiàn)有技術(shù)中存在的技術(shù)問題之一。為此,本發(fā)明的一個目的在于提出一種能夠保證系統(tǒng)完整升級的嵌入式系統(tǒng)的安全升級方法,避免升級過程中由于掉電等導(dǎo)致的系統(tǒng)不可恢復(fù)。本發(fā)明的另一個目的在于提出一種嵌入式系統(tǒng)的運行方法。本發(fā)明的又一個目的在于提出一種嵌入式系統(tǒng)。為實現(xiàn)上述目的,根據(jù)本發(fā)明第一方面的實施例提出一種嵌入式系統(tǒng)的安全升級方法,其中嵌入式系統(tǒng)具有主引導(dǎo)裝載和備引導(dǎo)裝載,所述安全升級方法包括以下步驟所述主引導(dǎo)裝載檢測所述備引導(dǎo)裝載是否有效;當(dāng)所述備引導(dǎo)裝載有效時,所述主引導(dǎo)裝載對所述備引導(dǎo)裝載進行升級;以及更新所述備引導(dǎo)裝載的版本號,以便所述主引導(dǎo)裝載在啟動時根據(jù)所述版本號判斷所述備引導(dǎo)裝載是否已升級。根據(jù)本發(fā)明實施例的嵌入式系統(tǒng)的安全升級方法,通過對備引導(dǎo)裝載進行升級, 保證主引導(dǎo)裝載不會在升級的時候被破壞,從而避免系統(tǒng)升級出錯后無法恢復(fù)的錯誤,保證系統(tǒng)升級的安全性。而且,通過更新備引導(dǎo)裝載的版本號保證加載升級后的備引導(dǎo)裝載, 使得升級后的引導(dǎo)裝載程序起效。為實現(xiàn)上述目的,根據(jù)本發(fā)明第二方面的實施例提出一種嵌入式系統(tǒng)的運行方法,其中嵌入式系統(tǒng)具有主引導(dǎo)裝載和備引導(dǎo)裝載,所述運行方法包括以下步驟啟動所述主引導(dǎo)裝載;所述主引導(dǎo)裝載判斷所述備引導(dǎo)裝載是否已升級;如果所述備引導(dǎo)裝載未升級,則所述主引導(dǎo)裝載進一步檢查內(nèi)核文件及界面文件的完整性;以及如果所述備引導(dǎo)裝載已升級,則所述主引導(dǎo)裝載加載所述備引導(dǎo)裝載,并進一步檢查內(nèi)核文件及界面文件的完整性。根據(jù)本發(fā)明實施例的嵌入式系統(tǒng)的運行方法,通過判斷備引導(dǎo)裝載是否升級,保證運行升級后的引導(dǎo)裝載程序,從而保證系統(tǒng)升級的有效性。為實現(xiàn)上述目的,根據(jù)本發(fā)明第三方面的實施例提出一種嵌入式系統(tǒng),包括備引導(dǎo)裝載,用于保存升級后的引導(dǎo)裝載程序,并在升級之后更新引導(dǎo)裝載程序的版本號;以及主引導(dǎo)裝載,用于在啟動之后判斷所述備引導(dǎo)裝載是否已升級,且如果所述備引導(dǎo)裝載未升級,則所述主引導(dǎo)裝載進一步檢查內(nèi)核文件及界面文件的完整性,以及如果所述備引導(dǎo)裝載已升級,則所述主引導(dǎo)裝載加載所述備引導(dǎo)裝載。根據(jù)本發(fā)明實施例的嵌入式系統(tǒng),通過增加備引導(dǎo)裝載并對備引導(dǎo)裝載進行升級,保證主引導(dǎo)裝載不會在升級的時候被破壞,從而避免系統(tǒng)升級出錯后無法恢復(fù)的錯誤, 保證系統(tǒng)升級的安全性。而且,通過更新備引導(dǎo)裝載的版本號保證升級后的引導(dǎo)裝載程序起效。本發(fā)明的附加方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
本發(fā)明的上述和/或附加的方面和優(yōu)點從結(jié)合下面附圖對實施例的描述中將變得明顯和容易理解,其中圖1是本發(fā)明一個實施例的嵌入式系統(tǒng)的安全升級方法的流程圖;圖2是本發(fā)明一個實施例的嵌入式系統(tǒng)的運行方法的流程圖;圖3是本發(fā)明另一個實施例的嵌入式系統(tǒng)的運行方法的流程圖;以及圖4是本發(fā)明一個實施例的嵌入式系統(tǒng)的結(jié)構(gòu)框圖。
具體實施例方式下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。在本發(fā)明的描述中,除非另有規(guī)定和限定,需要說明的是,術(shù)語“安裝”、“相連”、 “連接”應(yīng)做廣義理解,例如,可以是機械連接或電連接,也可以是兩個元件內(nèi)部的連通,可以是直接相連,也可以通過中間媒介間接相連,對于本領(lǐng)域的普通技術(shù)人員而言,可以根據(jù)具體情況理解上述術(shù)語的具體含義。圖1為本發(fā)明一個實施例的嵌入式系統(tǒng)的安全升級方法的流程圖。在本發(fā)明的實施例中,嵌入式系統(tǒng)具有主引導(dǎo)裝載和備引導(dǎo)裝載,開機運行主引導(dǎo)裝載,備引導(dǎo)裝載作為主引導(dǎo)裝載的備份,升級的時候只升級備引導(dǎo)裝載。如圖1所示,該安全升級方法包括以下步驟步驟S101,主引導(dǎo)裝載檢測備引導(dǎo)裝載是否有效。具體地,在本發(fā)明的一些示例中,判斷備引導(dǎo)裝載是否有效可以通過檢查 CRC(Cyclic redundancy check,循環(huán)冗余校驗碼)來確定。系統(tǒng)出廠時備引導(dǎo)裝載程序文件的末尾4位為文件的CRC,在系統(tǒng)啟動時,計算備引導(dǎo)裝載程序文件的CRC,判斷與出廠時的CRC是否匹配,如果匹配,則說明備引導(dǎo)裝載有效。步驟S102,當(dāng)備引導(dǎo)裝載有效時,主引導(dǎo)裝載對備引導(dǎo)裝載進行升級。
在升級的過程中,主引導(dǎo)裝載保持原始狀態(tài)不變,永遠不升級,從而保證主引導(dǎo)裝載不會在升級的時候被破壞,保證系統(tǒng)升級出錯后仍然可以通過主引導(dǎo)裝載啟動以進行再次升級實現(xiàn)系統(tǒng)修復(fù)。步驟S103,在備引導(dǎo)裝載失效時,不對備引導(dǎo)裝在進行升級,而對備引導(dǎo)裝載進行修復(fù)后重新檢測備引導(dǎo)裝載是否有效。步驟S104,在備引導(dǎo)裝載升級后,更新備引導(dǎo)裝載的版本號,以便主引導(dǎo)裝載在啟動時根據(jù)版本號判斷備引導(dǎo)裝載是否已升級。為了保證升級的備引導(dǎo)裝載有效,主引導(dǎo)裝載啟動的時候應(yīng)檢查備引導(dǎo)裝載是否為新的,如果發(fā)現(xiàn)備引導(dǎo)裝載比自身新,即備引導(dǎo)裝載的版本號比自身的版本號新,就加載備引導(dǎo)裝載運行。具體地,在本發(fā)明的一個實施例中,備引導(dǎo)裝載的版本號通過備引導(dǎo)裝載的CRC 計算得到,在備引導(dǎo)裝載升級后,備引導(dǎo)裝載程序文件的CRC改變,系統(tǒng)啟動時,通過計算備引導(dǎo)裝載的CRC與主引導(dǎo)裝載的CRC是否匹配來判斷備引導(dǎo)裝載是否升級。如果備引導(dǎo)裝載的CRC與主引導(dǎo)裝載的CRC不匹配,則主引導(dǎo)裝載判斷備引導(dǎo)裝載已經(jīng)升級。由此,主弓I導(dǎo)裝載可以加載升級后的備引導(dǎo)裝載,使得升級后的弓I導(dǎo)裝載程序起效。根據(jù)本發(fā)明實施例的嵌入式系統(tǒng)的安全升級方法,通過對備引導(dǎo)裝載進行升級, 保證主引導(dǎo)裝載不會在升級的時候被破壞,從而避免系統(tǒng)升級出錯后無法恢復(fù)的錯誤,保證系統(tǒng)升級的安全性。而且,通過更新備引導(dǎo)裝載的版本號保證可以加載升級后的備引導(dǎo)裝載,使得升級后的引導(dǎo)裝載程序起效。下面結(jié)合圖2和圖3詳細描述本發(fā)明實施例的嵌入式系統(tǒng)的運行方法。圖2為本發(fā)明一個實施例的嵌入式系統(tǒng)的運行方法的流程圖,在本發(fā)明的實施例中,嵌入式系統(tǒng)具有主引導(dǎo)裝載和備引導(dǎo)裝載,開機時啟動主引導(dǎo)裝載,備引導(dǎo)裝載作為主引導(dǎo)裝載的備份,升級的時候只升級備引導(dǎo)裝載。該運行方法包括以下步驟步驟S201,啟動主引導(dǎo)裝載。步驟S202,主引導(dǎo)裝載判斷備引導(dǎo)裝載是否已升級。在本發(fā)明的一個實施例中,主引導(dǎo)裝載通過備引導(dǎo)裝載的版本號判斷備引導(dǎo)裝載是否已升級。具體地,備引導(dǎo)裝載的版本號通過備引導(dǎo)裝載的CRC計算得到,在備引導(dǎo)裝載升級之后CRC改變。如果備引導(dǎo)裝載的CRC與主引導(dǎo)裝載的CRC不匹配,則主引導(dǎo)裝載判斷備引導(dǎo)裝載已升級。否則,主引導(dǎo)裝載判斷備引導(dǎo)裝載未升級。如果備引導(dǎo)裝載已升級, 則執(zhí)行步驟S203 ;否則,執(zhí)行步驟S204。步驟S203,主引導(dǎo)裝載加載備引導(dǎo)裝載。然后,執(zhí)行步驟S204。步驟S204,主引導(dǎo)裝載進一步檢查內(nèi)核文件及界面文件的完整性。根據(jù)本發(fā)明實施例的嵌入式系統(tǒng)的運行方法,通過判斷備引導(dǎo)裝載是否已升級, 保證運行升級后的引導(dǎo)裝載程序,從而保證系統(tǒng)升級的有效性。圖3為本發(fā)明另一個實施例的嵌入式系統(tǒng)的運行方法的流程圖,在本發(fā)明的實施例中,嵌入式系統(tǒng)具有主引導(dǎo)裝載和備引導(dǎo)裝載,開機時啟動主引導(dǎo)裝載,備引導(dǎo)裝載作為主引導(dǎo)裝載的備份,升級的時候只升級備引導(dǎo)裝載。如圖3所示,該運行方法包括以下步驟步驟S301,啟動主引導(dǎo)裝載。
步驟S302,主引導(dǎo)裝載判斷備引導(dǎo)裝載是否已升級。如果備引導(dǎo)裝載已升級,則執(zhí)行步驟S303 ;否則,執(zhí)行步驟S304。步驟S303,主引導(dǎo)裝載加載升級后的備引導(dǎo)裝載。然后,繼續(xù)執(zhí)行步驟S304。步驟S304,主引導(dǎo)裝載進一步檢查內(nèi)核文件及界面文件是否完整。如果主引導(dǎo)裝載確定內(nèi)核文件及界面文件不完整,則執(zhí)行步驟S305 ;如果主引導(dǎo)裝載確定內(nèi)核文件及界面文件完整,則執(zhí)行步驟S306。步驟S305,重新對內(nèi)核文件及界面文件進行升級以修復(fù)內(nèi)核文件及界面文件。然后,繼續(xù)執(zhí)行步驟S306。步驟S306,依次啟動相應(yīng)的內(nèi)核和界面。由此,保證嵌入式系統(tǒng)的完整升級和正常運行。為實現(xiàn)上述實施例,本發(fā)明還提出一種嵌入式系統(tǒng)。圖4為本發(fā)明一個實施例的嵌入式系統(tǒng)的結(jié)構(gòu)框圖。如圖4所示,該嵌入式系統(tǒng)包括備引導(dǎo)裝載100和主引導(dǎo)裝載200。開機時啟動主引導(dǎo)裝載200,備引導(dǎo)裝載100作為主引導(dǎo)裝載200的備份,升級的時候只升級備引導(dǎo)裝載100,不升級主引導(dǎo)裝載200。具體地,備引導(dǎo)裝載100用于保存升級后的引導(dǎo)裝載程序,并在升級之后更新引導(dǎo)裝載程序的版本號。主引導(dǎo)裝載200用于在啟動之后判斷備引導(dǎo)裝載100是否已升級, 且如果備引導(dǎo)裝載100未升級,則主引導(dǎo)裝載200進一步檢查內(nèi)核文件及界面文件的完整性,以及如果備引導(dǎo)裝載100已升級,則主引導(dǎo)裝載200加載備引導(dǎo)裝載100。在本發(fā)明的一個實施例中,備引導(dǎo)裝載100的版本號通過備引導(dǎo)裝載的CRC計算得到,在備引導(dǎo)裝載100升級之后CRC改變,如果備引導(dǎo)裝載100的CRC與主引導(dǎo)裝載200 的CRC不匹配,則主引導(dǎo)裝載200判斷備引導(dǎo)裝載100已升級。根據(jù)本發(fā)明實施例的嵌入式系統(tǒng),通過增加備引導(dǎo)裝載100并對備引導(dǎo)裝載100 進行升級,保證主引導(dǎo)裝載200不會在升級的時候被破壞,從而避免系統(tǒng)升級出錯后無法恢復(fù)的錯誤,保證系統(tǒng)升級的安全性。而且,通過更新備引導(dǎo)裝載100的版本號保證升級后的引導(dǎo)裝載程序起效。應(yīng)理解,本發(fā)明可在arm Iinux的系統(tǒng)上實現(xiàn),也可在使用其他操作系統(tǒng)的嵌入式系統(tǒng)上實現(xiàn)。在本說明書的描述中,參考術(shù)語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結(jié)合。盡管已經(jīng)示出和描述了本發(fā)明的實施例,本領(lǐng)域的普通技術(shù)人員可以理解在不脫離本發(fā)明的原理和宗旨的情況下可以對這些實施例進行多種變化、修改、替換和變型,本發(fā)明的范圍由權(quán)利要求及其等同物限定。
權(quán)利要求
1.一種嵌入式系統(tǒng)的安全升級方法,其特征在于,嵌入式系統(tǒng)具有主引導(dǎo)裝載和備引導(dǎo)裝載,所述方法包括以下步驟所述主引導(dǎo)裝載檢測所述備引導(dǎo)裝載是否有效;當(dāng)所述備引導(dǎo)裝載有效時,所述主引導(dǎo)裝載對所述備引導(dǎo)裝載進行升級;以及更新所述備引導(dǎo)裝載的版本號,以便所述主引導(dǎo)裝載在啟動時根據(jù)所述版本號判斷所述備引導(dǎo)裝載是否已升級。
2.如權(quán)利要求1所述的嵌入式系統(tǒng)的安全升級方法,其特征在于,在升級過程中,所述主引導(dǎo)裝載保持原始狀態(tài)。
3.如權(quán)利要求2所述的嵌入式系統(tǒng)的安全升級方法,其特征在于,所述備引導(dǎo)裝載的版本號通過所述備弓I導(dǎo)裝載的循環(huán)冗余校驗碼計算得到,在所述備引導(dǎo)裝載升級之后所述循環(huán)冗余校驗碼改變,如果所述備引導(dǎo)裝載的循環(huán)冗余校驗碼與所述主引導(dǎo)裝載的循環(huán)冗余校驗碼不匹配,則所述主引導(dǎo)裝載判斷所述備引導(dǎo)裝載已升級。
4.一種嵌入式系統(tǒng)的運行方法,其特征在于,嵌入式系統(tǒng)具有主引導(dǎo)裝載和備引導(dǎo)裝載,所述方法包括以下步驟啟動所述主引導(dǎo)裝載;所述主引導(dǎo)裝載判斷所述備引導(dǎo)裝載是否已升級;如果所述備引導(dǎo)裝載未升級,則所述主引導(dǎo)裝載進一步檢查內(nèi)核文件及界面文件的完整性;以及如果所述備引導(dǎo)裝載已升級,則所述主引導(dǎo)裝載加載所述備引導(dǎo)裝載,并進一步檢查內(nèi)核文件及界面文件的完整性。
5.如權(quán)利要求4所述的嵌入式系統(tǒng)的運行方法,其特征在于,還包括如果所述內(nèi)核文件及界面文件完整,則依次啟動相應(yīng)的內(nèi)核和界面;如果所述內(nèi)核文件及界面文件不完整,則對所述內(nèi)核文件及界面文件進行升級以修復(fù)所述內(nèi)核文件及界面文件。
6.如權(quán)利要求4或5所述的嵌入式系統(tǒng)的運行方法,其特征在于,所述主引導(dǎo)裝載根據(jù)所述備引導(dǎo)裝載的版本號判斷所述備引導(dǎo)裝載是否已升級。
7.如權(quán)利要求6所述的嵌入式系統(tǒng)的運行方法,其特征在于,所述備引導(dǎo)裝載的版本號通過所述備引導(dǎo)裝載的循環(huán)冗余校驗碼計算得到,在所述備弓I導(dǎo)裝載升級之后所述循環(huán)冗余校驗碼改變,如果所述備引導(dǎo)裝載的循環(huán)冗余校驗碼與所述主引導(dǎo)裝載的循環(huán)冗余校驗碼不匹配,則所述主引導(dǎo)裝載判斷所述備引導(dǎo)裝載已升級。
8.一種嵌入式系統(tǒng),其特征在于,包括備引導(dǎo)裝載,用于保存升級后的引導(dǎo)裝載程序,并在升級之后更新引導(dǎo)裝載程序的版本號;以及主引導(dǎo)裝載,用于在啟動之后判斷所述備引導(dǎo)裝載是否已升級,且如果所述備引導(dǎo)裝載未升級,則所述主引導(dǎo)裝載進一步檢查內(nèi)核文件及界面文件的完整性,以及如果所述備弓丨導(dǎo)裝載已升級,則所述主引導(dǎo)裝載加載所述備引導(dǎo)裝載。
9.如權(quán)利要求8所述的嵌入式系統(tǒng),其特征在于,所述備引導(dǎo)裝載的版本號通過所述備引導(dǎo)裝載的循環(huán)冗余校驗碼計算得到,在所述備引導(dǎo)裝載升級之后所述循環(huán)冗余校驗碼改變,如果所述備引導(dǎo)裝載的循環(huán)冗余校驗碼與所述主引導(dǎo)裝載的循環(huán)冗余校驗碼不匹配,則所述主引導(dǎo)裝載判斷所述備引導(dǎo)裝載已升級。
全文摘要
本發(fā)明提出一種嵌入式系統(tǒng)及其安全升級方法和運行方法。嵌入式系統(tǒng)具有主引導(dǎo)裝載和備引導(dǎo)裝載,嵌入式系統(tǒng)的安全升級方法包括以下步驟主引導(dǎo)裝載檢測備引導(dǎo)裝載是否有效;當(dāng)備引導(dǎo)裝載有效時,主引導(dǎo)裝載對備引導(dǎo)裝載進行升級;以及更新備引導(dǎo)裝載的版本號,以便主引導(dǎo)裝載在啟動時根據(jù)版本號判斷備引導(dǎo)裝載是否已升級。本發(fā)明通過對備引導(dǎo)裝載進行升級,保證主引導(dǎo)裝載不會在升級的時候被破壞,從而避免系統(tǒng)升級出錯后無法恢復(fù)的錯誤,保證系統(tǒng)升級的安全性。而且,通過更新備引導(dǎo)裝載的版本號保證升級后的引導(dǎo)裝載程序起效。
文檔編號G06F9/445GK102364446SQ20111036900
公開日2012年2月29日 申請日期2011年11月17日 優(yōu)先權(quán)日2011年11月17日
發(fā)明者孫德黎 申請人:北京天地云箱科技有限公司