本發(fā)明涉及嵌入式設(shè)備,特別涉及升級固件的方法、電子設(shè)備。
背景技術(shù):
1、現(xiàn)有的支持通過空中接口(over-the-air,ota)升級固件分區(qū)表的方案,通常無法保留用戶數(shù)據(jù)分區(qū)中的數(shù)據(jù),并且無法保證升級過程中的完全可靠,即在升級過程中的某一時刻發(fā)生意外會造成設(shè)備變磚。有的方案雖然能夠確保升級過程中的任意時刻出現(xiàn)意外都不會導致設(shè)備變磚且也能夠保留用戶數(shù)據(jù)分區(qū)中的數(shù)據(jù),但是要求用戶數(shù)據(jù)分區(qū)中的數(shù)據(jù)必須是非加密的,而在很多安全性要求高的場景中,設(shè)備的用戶數(shù)據(jù)分區(qū)(如data)通常都是加密的。
技術(shù)實現(xiàn)思路
1、本發(fā)明提供升級固件的方法、電子設(shè)備,其能夠提高固件升級的可靠性,且升級后仍保留加密的用戶數(shù)據(jù)分區(qū)中的數(shù)據(jù)。
2、在本發(fā)明的一個方面,提供一種升級固件的方法。該方法包括:在設(shè)備的啟動引導程序固件中,讀取引導通信分區(qū)中用于保存升級指令的第一預設(shè)位置中的升級指令信息;在所述升級指令信息與第一預設(shè)升級指令相對應的第一階段,基于待升級固件存儲區(qū)的分區(qū)起始地址、預設(shè)的暫存分區(qū)的大小、待備份數(shù)據(jù)的初始大小、待備份數(shù)據(jù)的頭部大小和預設(shè)的加密用戶數(shù)據(jù)分區(qū)的起始地址確定命令行參數(shù),并將所述命令行參數(shù)傳遞到恢復模式固件,所述待備份數(shù)據(jù)包括引導通信分區(qū)、元數(shù)據(jù)分區(qū)、啟動引導程序固件分區(qū)和恢復模式固件分區(qū);在所述升級指令信息與第二預設(shè)升級指令相對應的第二階段,對所述待備份數(shù)據(jù)和所述暫存分區(qū)進行備份后,更新當前分區(qū)表,以使所述當前分區(qū)表中的所述啟動引導程序固件分區(qū)、所述恢復模式固件分區(qū)、所述元數(shù)據(jù)分區(qū)、所述暫存分區(qū)和所述引導通信分區(qū)分別指向?qū)膫浞莘謪^(qū),并將更新后的當前分區(qū)表升級到存儲介質(zhì)中主分區(qū)表所在的地址空間和備份分區(qū)表所在的地址空間;在所述升級指令信息與第三預設(shè)升級指令相對應的第三階段,對所述啟動引導程序固件分區(qū)和所述恢復模式固件分區(qū)進行升級,且當所述元數(shù)據(jù)分區(qū)在所述當前分區(qū)表和新分區(qū)表中的地址空間不同時,將所述元數(shù)據(jù)分區(qū)備份區(qū)中的元數(shù)據(jù)分區(qū)固件寫入到所述新分區(qū)表中元數(shù)據(jù)分區(qū)所在的地址空間;以及在所述升級指令信息與第四預設(shè)升級指令相對應的第四階段,對除所述啟動引導程序固件和所述恢復模式固件之外的其他固件進行升級。
3、在本發(fā)明的又一方面,提供一種電子設(shè)備。該電子設(shè)備包括存儲器,被配置為存儲可執(zhí)行程序;以及處理器,被配置為執(zhí)行所述程序以執(zhí)行上述的升級固件的方法。
4、根據(jù)本發(fā)明,根據(jù)第一預設(shè)升級指令和第二預設(shè)升級指令對包括元數(shù)據(jù)分區(qū)在內(nèi)的數(shù)據(jù)進行備份,當元數(shù)據(jù)分區(qū)在當前分區(qū)表和新分區(qū)表中的地址空間不同時,根據(jù)第三預設(shè)升級指令將元數(shù)據(jù)分區(qū)備份區(qū)中的元數(shù)據(jù)分區(qū)固件寫入到新分區(qū)表中元數(shù)據(jù)分區(qū)所在的地址空間,這樣即便保存用戶數(shù)據(jù)分區(qū)加密密鑰所在的元數(shù)據(jù)分區(qū)在升級前后地址空間發(fā)生變化,也能夠在升級后保留用戶數(shù)據(jù)分區(qū)中的數(shù)據(jù),且由于已經(jīng)對引導通信分區(qū)、元數(shù)據(jù)分區(qū)、啟動引導程序固件分區(qū)、恢復模式固件分區(qū)和暫存分區(qū)進行了備份,升級過程中,即使出現(xiàn)意外掉電也不會破壞備份分區(qū)中的數(shù)據(jù),確保升級過程中的任何時刻發(fā)生意外(如掉電)都不會導致設(shè)備變磚,從而提高固件升級的可靠性,且升級后仍保留加密的用戶數(shù)據(jù)分區(qū)中的數(shù)據(jù)。
1.一種升級固件的方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,還包括:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,還包括:
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,還包括:
7.根據(jù)權(quán)利要求4所述的方法,其特征在于,還包括:
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括:
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括:
10.根據(jù)權(quán)利要求1所述的方法,其特征在于,基于待升級固件存儲區(qū)的分區(qū)起始地址、預設(shè)的暫存分區(qū)的大小、待備份數(shù)據(jù)的初始大小、待備份數(shù)據(jù)的頭部大小和預設(shè)的加密用戶數(shù)據(jù)分區(qū)的起始地址確定命令行參數(shù)包括:
11.根據(jù)權(quán)利要求1所述的方法,其特征在于,對所述待備份數(shù)據(jù)和所述暫存分區(qū)進行備份后,更新當前分區(qū)表,以使所述當前分區(qū)表中的所述啟動引導程序固件分區(qū)、所述恢復模式固件分區(qū)、所述元數(shù)據(jù)分區(qū)、所述暫存分區(qū)和所述引導通信分區(qū)分別指向?qū)膫浞莘謪^(qū),并將更新后的當前分區(qū)表升級到存儲介質(zhì)中主分區(qū)表所在的地址空間和備份分區(qū)表所在的地址空間包括:
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,對所述啟動引導程序固件分區(qū)、所述恢復模式固件分區(qū)、所述元數(shù)據(jù)分區(qū)、所述暫存分區(qū)和所述引導通信分區(qū)進行備份后,更新當前分區(qū)表,以使所述當前分區(qū)表中的所述啟動引導程序固件分區(qū)、所述恢復模式固件分區(qū)、所述元數(shù)據(jù)分區(qū)、所述暫存分區(qū)和所述引導通信分區(qū)分別指向?qū)膫浞莘謪^(qū),并將更新后的當前分區(qū)表升級到存儲介質(zhì)中主分區(qū)表所在的地址空間和備份分區(qū)表所在的地址空間包括:
13.根據(jù)權(quán)利要求1所述的方法,其特征在于,對所述啟動引導程序固件分區(qū)和所述恢復模式固件分區(qū)進行升級,且當所述元數(shù)據(jù)分區(qū)在所述當前分區(qū)表和新分區(qū)表中的地址空間不同時,將所述元數(shù)據(jù)分區(qū)備份區(qū)中的元數(shù)據(jù)分區(qū)固件寫入到所述新分區(qū)表中元數(shù)據(jù)分區(qū)所在的地址空間包括:
14.根據(jù)權(quán)利要求1所述的方法,其特征在于,對除所述啟動引導程序固件和所述恢復模式固件之外的其他固件進行升級包括:
15.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括:
16.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括:
17.根據(jù)權(quán)利要求15或16所述的方法,其特征在于,運行所述恢復模式固件包括:
18.一種電子設(shè)備,其特征在于,包括: