本發明涉及計算機領域,尤其涉及一種版本校驗方法、裝置及終端設備。
背景技術:
系統安全是為了支持安全啟動以及保證系統在可信環境中運行的一整套軟硬件方案。基于ARM架構的系統安全方案通常由Secure Boot和Trust Zone技術結合而成,Secure Boot是系統安全的基礎,負責整個安全系統的初始化過程。根據可信的完整性理論,系統的安全啟動是整個系統安全的可信根,只有保證了系統啟動的安全,才能保證系統其他各部件的安全。
系統安全啟動時,系統采取逐級認證簽名,認證通過之后引導后續的過程。通常安全版本的摘要簽名和代碼存儲在片外(通常是Flash),系統首先由片內Boot啟動,對片外啟動代碼簽名認證校驗通過后,切換到片外啟動代碼執行,引導后續啟動程序。
如果片外安全版本有安全漏洞,需要升級,假設有安全漏洞的版本為VerX,升級版本為VerY,VerX存在安全漏洞,升級之后,攻擊者也可以將版本回退到VerX,利用其中的漏洞,進行安全攻擊,因此存在系統安全風險。
技術實現要素:
本發明實施例提供了一種版本校驗方法、裝置及終端設備,能夠防止攻擊者使用有安全漏洞的版本進行安全攻擊,提高了系統安全。
本發明實施例適用于對軟件版本進行安全校驗的場景,該軟件可以是操作系統、也可以是在系統上的應用程序。
第一方面,本發明實施例提供了一種版本校驗方法,該方法包括:
在操作系統或應用程序需要安全啟動或升級的場景下,處理器獲取第一版本的版本信息,版本信息包括第一版本的版本號,其中,版本號用于標識所述第一版本;根據第一版本的版本號確定第一版本的版本號對應的校驗比特位;若第一版本的版本號對應的校驗比特位為第一數值,則確定第一版本被禁用,第一版本校驗未通過;若第一版本的版本號對應的校驗比特位為第二數值,則確定第一版本可用,第一版本校驗通過。
可選的,第一版本為處理器待啟動的系統或應用程序的目標版本,或第二版本為處理器待升級的系統或應用程序的目標版本。
本發明實施例中的每個版本的版本號有對應的校驗比特位,通過比特位指示版本的禁用和可用信息,在獲取到某個版本后,可以對該版本進行安全校驗,沒有校驗通過的版本無法使用,因此可以防止攻擊者使用有安全漏洞的版本進行安全攻擊。
結合第一方面,在第一方面的第一種可能的實現方式中,該方法還包括:
當確認某個版本存在安全漏洞時,處理器接收禁用第二版本的指示,禁用第二版本的指示中包括第二版本的版本號;根據第二版本的版本號確定第二版本的版本號對應的校驗比特位;將第二版本的版本號對應的校驗比特位置為所述第一數值。
因此,校驗比特位信息可根據版本的安全信息(bugList)進行更新,及時將有安全漏洞的版本對應的比特位設置為禁用,從而可以確保有安全漏洞的版本無法使用,防止攻擊者使用有安全漏洞的版本進行安全攻擊。
結合第一方面,或第一方面的第一種可能的實現方式,在第一方面的第二種可能的實現方式中,版本號(包括第一版本號和第二版本號)對應的校驗比特位存儲于電子熔斷金屬熔絲eFuse的第一字段中,第一字段中的每個比特位用于指示一個版本是否被禁用。
可選的,所述校驗比特位的第一數值為1,所述第二校驗比特位的第二數值為0。
可選的,所述第一字段可以為eFuse中的NV_BITMAP_E字段,當該字段中某個比特為1時,則表示該比特位對應的版本號已被禁用,當該字段中某個比特為0時,則表示該比特位對應的版本號為可用狀態。
如此,可以利用eFuse的一次性熔斷特點,若某個版本存在安全漏洞,將該版本對應的比特位熔斷置1后,將再也無法回退到該版本,從而保證了版本啟動或升級時的安全性。
結合第一方面或第一方面的第一種可能的實現方式,在第一方面的第三種可能的實現方式中,版本號(包括第一版本號和第二版本號)對應的校驗比特位存儲于閃存Flash的第二字段中,第二字段中的每個比特位用于指示一個版本是否被禁用。
可選的,一種可能的實施中,所述校驗比特位的第一數值為1,所述第二校驗比特位的第二數值為0。
可選的,在另一種可能的實施中,所述校驗比特位的第一數值為0,所述第二校驗比特位的第二數值為1。
若采用這種方式存儲,則需要通過秘鑰保護存儲內容,簽名認證之后才允許更新校驗比特位。
結合第一方面的任一種可能的實現方式,在第一方面的第四種可能的實現方式中,該方法還包括:對第一版本的版本信息進行簽名認證;當簽名認證通過時,才執行根據第一版本的版本號確定第一版本的版本號對應的校驗比特位的步驟。以防止版本被篡改,從而可以對啟動或升級時的版本進行安全校驗,提高安全性。
結合第一方面的任一種可能的實現方式,在第一方面的第五種可能的實現方式中,本發明實施例可以應用于版本升級時對版本進行校驗,校驗時,獲取第一版本的版本信息包括:接收第一版本升級指示,根據升級指示獲取第一版本的版本信息;該方法還包括:若校驗不通過,則不升級至第一版本;若校驗通過,則升級至第一版本。
可選的,接收第一版本升級指示可以為:接收升級操作系統版本的指示,或接收升級應用程序版本的指示。
結合第一方面的任一種可能的實現方式,在第一方面的第六種可能的實現方式中,本發明實施例可以應用于版本升級時對版本進行校驗,校驗時,獲取第一版本的版本信息包括:接收啟動第一版本的啟動指示,根據啟動指示獲取第一版本的版本信息;該方法還包括:當第一版本校驗不通過時,不啟動第一版本;當第一版本校驗通過時,啟動第一版本。
可選的,接收啟動第一版本的啟動指示可以為:接收啟動某操作系統版本的指示,或接收啟動某應用程序版本的指示。
第二方面,本發明實施例提供了一種版本校驗裝置,具體實現對應于上述第一方面提供的版本校驗方法的功能。所述功能可以通過硬件實現,也可以通過硬件執行相應的軟件程序實現。硬件和軟件包括一個或多個與上述功能相對應的單元模塊,所述單元模塊可以是軟件和/或硬件。
一種可能的設計中,該裝置包括:
版本信息獲取模塊,用于獲取第一版本的版本信息,該版本信息包括第一版本的版本號;版本校驗模塊,用于根據第一版本的版本號確定第一版本的版本號對應的校驗比特位,若第一版本的版本號對應的校驗比特位為第一數值,則確定第一版本被禁用,第一版本校驗未通過,若第一版本的版本號對應的校驗比特位為第二數值,則確定第一版本可用,第一版本校驗通過。
結合第二方面,在第二方面的第一種可能的實現方式中,該裝置還包括:
接收模塊,用于接收禁用第二版本的指示,禁用第二版本的指示中包括第二版本的版本號;校驗位更新模塊,用于根據第二版本的版本號確定第二版本的版本號對應的校驗比特位,將第二版本的版本號對應的校驗比特位置為所述第一數值。
結合第二方面的任一種可能的實現方式,在第二方面的第二種可能的實現方式中,第一版本的版本號對應的校驗比特位存儲于電子熔斷金屬熔絲eFuse的第一字段中,第一字段中的每個比特位用于指示一個版本是否被禁用。
可選的,所述校驗比特位的第一數值為1,所述第二校驗比特位的第二數值為0。
結合第二方面的任一種可能的實現方式,在第二方面的第三種可能的實現方式中,第一版本的版本號對應的校驗比特位存儲于閃存Flash的第二字段中,第二字段中的每個比特位用于指示一個版本是否被禁用。
可選的,一種可能的實施中,所述校驗比特位的第一數值為1,所述第二校驗比特位的第二數值為0。
可選的,在另一種可能的實施中,所述校驗比特位的第一數值為0,所述第二校驗比特位的第二數值為1。
結合第二方面的任一種可能的實現方式,在第二方面的第四種可能的實現方式中,該裝置還包括:簽名認證模塊,用于對第一版本的版本信息進行簽名認證,當簽名認證通過時,則版本校驗模塊執行根據第一版本的版本號確定第一版本的版本號對應的校驗比特位的步驟。
結合第二方面的任一種可能的實現方式,在第二方面的第五種可能的實現方式中,版本信息獲取模塊,具體用于接收升級指示,根據升級指示獲取第一版本的版本信息;該裝置還包括:升級模塊,用于當校驗不通過時,不升級至第一版本;若校驗通過時,升級至第一版本。
結合第二方面的任一種可能的實現方式,在第二方面的第二種可能的實現方式中,版本信息獲取模塊,具體用于接收啟動第一版本的啟動指示,根據啟動指示獲取第一版本的版本信息;該裝置還包括:安全啟動模塊,用于當第一版本校驗不通過時,不啟動第一版本,當第一版本校驗通過時,啟動第一版本。
第三方面,本發明實施例還提供了一種芯片,該芯片用于執行程序代碼,以執行第一方面的版本校驗方法的全部或部分步驟。
可選的,該芯片包括電子熔斷金屬熔絲eFuse,所述eFuse中存儲有版本校驗比特位,每個比特位用于指示一個版本是否被禁用。
可選的,該芯片為系統級芯片SOC。
第四方面,本發明實施例還提供了一種終端設備,該終端設備包括:相互連接的收發器、處理器及存儲器;存儲器用于存儲程序代碼,處理器調用存儲器中的程序代碼,以執行第一方面的全部或部分步驟:
獲取第一版本的版本信息,版本信息包括第一版本的版本號;根據第一版本的版本號確定第一版本的版本號對應的校驗比特位;若第一版本的版本號對應的校驗比特位為第一數值,則確定第一版本被禁用,第一版本校驗未通過;若第一版本的版本號對應的校驗比特位為第二數值,則確定第一版本可用,第一版本校驗通過。
第五方面,本發明實施例還提供了一種計算機存儲介質,該介質存儲有應用程序,該程序執行時包括上述第一方面的版本校驗方法中的部分或者全部步驟。
從以上技術方案可以看出,本發明實施例具有以下優點:
本發明實施例中,每個版本的版本號有對應的校驗比特位,通過比特位指示版本的禁用和可用信息,在獲得某個版本(第一版本)時,先根據該版本的版本號確定該版本號對應的校驗比特位,若該版本的版本號對應的校驗比特位為第一數值,則確定該版本被禁用,校驗未通過,若該版本的版本號對應的校驗比特位為第二數值,則確定該版本可用,校驗通過。通過本發明實施例,在獲取到某個版本后,可以對該版本進行安全校驗,沒有校驗通過的版本無法使用,因此可以防止攻擊者使用有安全漏洞的版本進行安全攻擊。
附圖說明
圖1為本發明實施例中系統安全啟動相關的簽名校驗過程示意圖;
圖2為本發明實施例中版本校驗方法流程圖;
圖3為本發明實施例中通過eFuse存儲版本校驗信息進行校驗的示意圖;
圖4為本發明實施例中版本校驗方法的另一種流程圖;
圖5為本發明實施例中的版本校驗裝置功能模塊結構圖;
圖6為本發明實施例中終端設備的硬件結構示意圖。
具體實施方式
為了使本發明的技術方案及有益效果更加清楚,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
此外本發明實施例中的版本校驗方法適用于各種帶有處理器(Central Processing Unit,簡稱:CPU)及應用程序的終端設備,包括計算設備、車載設備、可穿戴設備、以及各種形式的用戶設備(User Equipment,簡稱UE),移動臺(Mobile station,簡稱MS),終端(terminal),終端設備(Terminal Equipment)等等。
本發明實施例適用于可以對軟件進行升級,存在多個軟件版本的上述終端設備中對軟件的版本進行安全校驗的場景,該軟件可以是操作系統、也可以是在系統上的應用程序,例如:ARM架構的系統安全啟動,某個應用程序的安全啟動等場景的版本校驗。本發明實施例以系統安全啟動為例進行說明。
結合圖1,對本發明實施例中的版本校驗方法進行說明,該方法的執行主體為處理器(CPU)。
101、獲取第一版本的版本信息,該版本信息包括第一版本的版本號;
獲取版本的場景和方式有多種,包括在系統版本需要升級時,需要獲取待升級的版本;在開機啟動系統時,需要獲取需要啟動的版本;在安裝新的版本時,也會獲得待安裝的版本。
本發明實施例中的第一版本僅是特指某個版本,其中的“第一”是用于區別類似的對象,而不是用于描述特定的順序或先后次序。
在進行版本升級時,處理器接收升級指示,根據該升級指示獲取待升級的版本(第一版本)的版本信息。
或者,在開機安全啟動,或者升級后安全啟動某個版本(即第一版本)時,處理器會接收到啟動該版本的啟動指示,之后根據該啟動指示獲取待啟動的該版本的版本信息,
其中版本信息包括版本號以及該版本的程序啟動代碼等信息。
102、根據第一版本的版本號確定第一版本的版本號對應的校驗比特位;
在獲取到第一版本的版本信息后,對該版本進行安全校驗,確定該版本是否是可用的版本。
每個版本的版本號有對應的校驗比特位,通過校驗比特位指示版本的禁用和可用信息。
當某個版本號對應的校驗比特位為第一數值時,指示該版本號對應的版本被禁用,當某個版本號對應的校驗比特位為第二數值時,指示該版本號對應的版本可用。
該校驗比特位可以存儲于電子熔斷金屬熔絲(eFuse)中,也可以存儲于片外存儲器(如:Flash)里,存儲在片外存儲器時,需要通過秘鑰保護,簽名認證之后才允許更新。
1、存儲于eFuse中
在系統級芯片(System-on-a-Chip,簡稱:SOC)中,eFuse是一種重要的非易失性存儲單元,由熔絲結構構成,通過熔絲可以在芯片上編程并存儲信息,eFuse模塊有一次性熔斷的特性:eFuse中默認存儲的比特位都是0,可以通過編程將需要的比特位由0改為1,一旦置1,就不能再改為0。利用eFuse的一次性熔斷的特性,在SoC的eFuse中增加第一字段,該字段中對應的每個比特位用于指示一個版本是否可用(也即是否被禁用)。
可選的,該第一字段可以為NV_BITMAP_E字段。
在eFuse中,所述校驗比特位中的第一數值的取值為1,所述校驗比特位中的第二數值的取值為0,即當eFuse中的第一字段中某個比特位為1時,表示該比特位對應的版本已被禁用,當某個比特位為0時,表示該比特位對應的版本可用。
如圖2所示,Flash中存儲有系統片外啟動代碼版本的版本信息:版本0(Ver0)。CPU中存儲有片內啟動引導程序(Boot),還包括有eFuse模塊,eFuse模塊中NV_BITMAP_E字段中的版本0對應的比特位Bit0為0,表示版本0可用。
假設有片外啟動代碼有16個版本,NV_BITMAP_E字段中有32bit,則第0至第15bit分別用于指示版本0至版本15的是否可用,比特位和版本號之間的對應關系可以如圖3所示。Bit 0為1,用于指示版本0(Ver0)被禁用;Bit 1為0,用于指示版本1(Ver1)可用;……Bit 16為0,用于指示版本16(Ver16)可用。
在進行版本安全校驗時,根據第一版本的版本號確定第一版本的版本號對應的校驗比特位,根據該版本號對應的比特位是0還是1來確定該版本號是否可用。
2、存儲于片外存儲器中
以片外存儲器為Flash進行舉例,校驗比特位存放在片外Flash里,在Flash中增加第二字段,該字段中的每個比特位用于指示一個版本是否可用(也即是否被禁用)。
可選的,在Flash中,所述校驗比特位中的第一數值的取值為1,所述校驗比特位中的第二數值的取值為0,即當eFuse中的第一字段中某個比特位為1時,表示該比特位對應的版本已被禁用,當某個比特位為0時,表示該比特位對應的版本可用。
可選的,在Flash中,也可以是第一數值的取值為0,表示該比特位對應的版本已被禁用,第二數值的取值為1,表示該比特位對應的版本可用。
進一步,為了保證安全性,對該第二字段使用私鑰簽名,在安全啟動進行校驗需要讀取Flash中的第二字段,或需要對Flash中的第二字段進行更新時,先使用公鑰認證簽名,若簽名認證通過,才允許讀取或更新校驗比特位。
Flash中的校驗比特位與片外啟動代碼的版本的版本號之間的映射關系與圖2相同,此處不做贅述。
103、若第一版本的版本號對應的校驗比特位為第一數值,則確定第一版本被禁用,第一版本校驗未通過;
根據第一版本的版本號從eFuse的第一字段或片外存儲器的第二字段中的校驗比特位中確定第一版本的版本號對應的校驗比特位為第一數值時,則獲知該版本不可用,即被禁用,則該第一版本校驗不通過。
若是在啟動第一版本時,對第一版本校驗不通過,則說明該版本存在安全問題,則不允許啟動該版本。
若是在升級至第一版本時,對第一版本校驗不通過,則說明該版本存在安全問題,則不允許升級至該版本。
104、若第一版本的版本號對應的校驗比特位為第二數值,則確定第一版本可用,第一版本校驗通過。
根據第一版本的版本號從eFuse的第一字段或片外存儲器的第二字段中的校驗比特位中確定第一版本的版本號對應的校驗比特位為第二數值,則獲知該版本可用,則該第一版本校驗通過。
若是在啟動第一版本時,對第一版本校驗通過,則說明該版本不存在安全問題,則允許啟動該版本。
若是在升級至第一版本時,對第一版本校驗通過,則說明該版本不存在安全問題,則允許升級至該版本。
下面對有安全問題的版本進行校驗比特位置位的過程進行說明。
當某個版本(第二版本)有安全漏洞時,處理器接收到禁用第二版本的指示,該禁用指示中包括第二版本的版本號,則處理器根據該版本號確定第二版本的版本號對應的校驗比特位是第幾個bit位,該比特位原本為第二數值,此時,將該比特位置為第一數值,例如:當第二數值為0,第一數值為1時,將該比特位由0置位為1。以表示第二版本不可用,即已被禁用,后續不允許再升級到該版本,或不允許啟動該版本。
一種應用場景為,發現某個版本有漏洞時,升級到一個新的版本。此時,在升級時,既需要對有漏洞的版本的版本號對應的校驗比特位置為第一數值,又要對待升級的版本進行圖1所示的實施例中的版本校驗。可選的,也可以在升級時不進行圖1所示的實施例中的版本校驗,待該版本升級完成后,在啟動該版本時,對該版本進行圖1所示的實施例中的版本校驗。
例如:Ver1版本有安全漏洞,Ver1升級到Ver2。若采用eFuse存儲校驗比特位的方式,Ver2升級啟動之后,更新NV_BITMAP_E,將不可使用的版本Ver1對應的比特置位。然后有安全漏洞的版本Ver1再也無法通過版本校驗,其他無安全漏洞的版本Ver0,Ver2仍然可以通過版本校驗。
本發明實施例中,每個版本的版本號有對應的校驗比特位,通過比特位指示版本的禁用和可用信息。在獲得某個版本時,先根據該版本的版本號確定該版本號對應的校驗比特位,若該版本的版本號對應的校驗比特位為第一數值,則確定該版本被禁用,校驗不通過,則不允許該版本升級或啟動;若該版本的版本號對應的校驗比特位為第二數值,則確定該版本可用,校驗通過,則允許該版本升級或啟動。通過本發明實施例,在獲取到某個版本后,可以對該版本進行安全校驗,沒有校驗通過的版本無法使用,因此可以防止攻擊者使用有安全漏洞的版本進行安全攻擊。
另外,校驗比特位信息可根據版本的安全信息(bugList)進行更新,及時將有安全漏洞的版本對應的比特位設置為禁用,從而可以確保有安全漏洞的版本無法使用,防止攻擊者使用有安全漏洞的版本進行安全攻擊。
另一方面,本發明實施例每個版本對應一個校驗比特位,在被禁用的版本之前的其他版本,如果沒有安全漏洞,還可以使用,若當前版本因為一些原因無法啟動的時候,還可以將之前的其他版本作為備份版本啟動。因此能夠提高方案的完整性。
進一步,在實際應用中,在獲取到某個版本時,需要先對該版本的版本信息進行簽名認證,當簽名認證通過時,才執行圖1所示的實施例中步驟102至步驟104。
結合圖4,下面對簽名認證過程進行介紹。
系統啟動代碼(系統的某個版本對應的啟動代碼,System Code)在進行啟動時,需要先進行簽名安全校驗,以確保系統啟動代碼沒有被篡改。圖1為系統安全啟動相關的簽名校驗過程示意圖,圖1所示的示意圖中采用eFuse模塊存儲密鑰等與安全相關的內容。
簽名認證的原理可以為:采用基于RSA非對稱加密算法,使用私鑰簽名,公鑰認證的簽名認證機制來構建安全啟動的信任鏈。
芯片商隨機生成非對稱性密鑰對,并將公鑰Hash值和私鑰指數燒入Efuse,公鑰寫到Flash指定位置,設備商使用一單向散列函數:哈希(Hash)函數對系統啟動代碼生成信息摘要,然后使用Efuse私鑰對信息摘要進行加密,即數字簽名,簽名后的信息摘要與系統啟動代碼放在一起,寫到片外存儲器,片外存儲器通常是FLASH,例如,圖4中所示為非易失性隨機訪問存儲器(Non-Volatile Random Access Memory,NVRAM),公私鑰對由芯片內部產生,燒寫與校驗過程不可見,且不備份。
安全啟動時,系統由片內Boot啟動,片內Boot ROM包含最小系統初始化和簽名認證安全校驗程序,先對Flash中的公鑰生成Hash值,與Efuse的可信公鑰根(Root Of Trust Public Key,ROTPK)比對,所述可信公鑰根是安全啟動使用的EK公鑰(N,e)的SHA256Hash值,以保證校驗簽名使用的公鑰是唯一指定的。如果通過則對片外系統啟動代碼生成Hash摘要值,再使用公鑰認證簽名得到原始Hash摘要值,對這兩個信息摘要值進行校驗,就知道系統啟動代碼是否被篡改過,是否是預期授權的代碼。片外系統啟動代碼簽名認證校驗通過后,切換到片外系統啟動代碼執行,引導后續啟動程序。
因此,在系統進行安全啟動時,需要先對系統啟動代碼進行簽名認證,簽名認證通過后,確認系統啟動代碼沒有被篡改,再進行圖1所示的實施例中的版本校驗,確定該版本的系統啟動代碼是否是可用的版本,是可用的版本時,才允許啟動該版本。從而能夠從確保程序啟動時的安全性。
以上是對本發明實施例中的版本校驗方法進行的介紹,下面對本發明實施例中的版本校驗裝置進行介紹。
結合圖5,本發明實施例中的版本校驗裝置包括:
版本信息獲取模塊501,用于獲取第一版本的版本信息,該版本信息包括第一版本的版本號;
版本校驗模塊502,用于根據第一版本的版本號確定第一版本的版本號對應的校驗比特位,若第一版本的版本號對應的校驗比特位為第一數值,則確定第一版本被禁用,第一版本校驗未通過,若第一版本的版本號對應的校驗比特位為第二數值,則確定第一版本可用,第一版本校驗通過。
在一些具體的實施中,該裝置還包括:
接收模塊503,用于接收禁用第二版本的指示,禁用第二版本的指示中包括第二版本的版本號;校驗位更新模塊504,用于根據第二版本的版本號確定第二版本的版本號對應的校驗比特位,將第二版本的版本號對應的校驗比特位置為第一數值。
在一些具體的實施中,所述版本號對應的校驗比特位存儲于電子熔斷金屬熔絲eFuse的第一字段中,第一字段中的每個比特位用于指示一個版本是否被禁用。
在一些具體的實施中,所述版本號對應的校驗比特位存儲于閃存Flash的第二字段中,第二字段中的每個比特位用于指示一個版本是否被禁用。
在一些具體的實施中,該裝置還包括:簽名認證模塊505,用于對第一版本的版本信息進行簽名認證,當簽名認證通過時,則版本校驗模塊502執行根據第一版本的版本號確定第一版本的版本號對應的校驗比特位的步驟。
在一些具體的實施中,版本信息獲取模塊501,具體用于接收升級指示,根據升級指示獲取第一版本的版本信息;該裝置還包括:升級模塊506,用于當校驗不通過時,不升級至第一版本;若校驗通過時,升級至第一版本。
在一些具體的實施中,版本信息獲取模塊501,具體用于接收啟動第一版本的啟動指示,根據啟動指示獲取第一版本的版本信息;該裝置還包括:安全啟動模塊507,用于當第一版本校驗不通過時,不啟動第一版本,當第一版本校驗通過時,啟動第一版本。
以上版本校驗裝置中的各模塊之間的信息交互請參閱上述版本校驗方法實施例(圖1至圖4所對應的實施例)中的描述,此處不再贅述。
可選的,上述版本校驗方法中實現的功能可以通過專用集成電路(英文:application-specific integrated circuit,簡稱:ASIC)實現,或可編程邏輯器件(英文:programmable logic device,簡稱:PLD)實現。上述PLD可以是復雜可編程邏輯器件(英文:complex programmable logic device,簡稱:CPLD),FPGA,通用陣列邏輯(英文:generic array logic,簡稱:GAL)或其任意組合。
另外,本發明實施例還提供了一種芯片,該芯片用于執行程序代碼,以執行上述版本校驗方法實施例的全部或部分步驟。
該芯片包括電子熔斷金屬熔絲eFuse,所述eFuse中存儲有版本校驗比特位,每個比特位用于指示一個版本是否被禁用。
此外,本發明實施例還提供了一種終端設備,該終端設備可以以一個用戶設備(例如:手機)的形式存在。該終端設備還可以包括手持設備、車載設備、可穿戴設備、計算設備,以及各種形式的用戶設備。手持設備可以為包括手機、平板電腦、PDA(Personal Digital Assistant,個人數字助理)、等任意終端設備。
下面以手機為例對本發明實施例中的終端設備進行說明。
圖6示出的是與本發明實施例提供的用戶設備相關的手機的部分結構的框圖。參考圖6,手機包括:射頻(Radio Frequency,RF)電路610、存儲器620、輸入單元630、顯示單元640、傳感器650、音頻電路660、無線保真(wireless fidelity,WiFi)模塊670、處理器680、以及電源690等部件。其中,射頻電路610、WiFi模塊670為收發器。本領域技術人員可以理解,圖6中示出的手機結構并不構成對手機的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。
下面結合圖6對手機的各個構成部件進行具體的介紹:
存儲器620可用于存儲軟件程序以及模塊,處理器680通過運行存儲在存儲器620的軟件程序以及模塊,從而執行手機的各種功能應用以及數據處理。存儲器620可主要包括存儲程序區和存儲數據區,其中,存儲程序區可存儲操作系統、至少一個功能所需的應用程序(比如聲音播放功能、圖像播放功能等)等;存儲數據區可存儲根據手機的使用所創建的數據(比如音頻數據、電話本等)等。此外,存儲器620可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失性固態存儲器件。
具體的,存儲器620存儲的應用程序為執行時包括上述圖1到圖4所對應的方法中的部分或者全部步驟。存儲器620中存儲所述版本號信息、版本對應的程序啟動代碼等信息。
輸入單元630可用于接收輸入的數字或字符信息,以及產生與手機的用戶設置以及功能控制有關的鍵信號輸入。具體地,輸入單元630可包括觸控面板631以及其他輸入設備632。觸控面板631,也稱為觸摸屏,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸控面板631上或在觸控面板631附近的操作),并根據預先設定的程式驅動相應的連接裝置。可選的,觸控面板631可包括觸摸檢測裝置和觸摸控制器兩個部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,并檢測觸摸操作帶來的信號,將信號傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸信息,并將它轉換成觸點坐標,再送給處理器680,并能接收處理器680發來的命令并加以執行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實現觸控面板631。除了觸控面板631,輸入單元630還可以包括其他輸入設備632。具體地,其他輸入設備632可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關按鍵等)、軌跡球、鼠標、操作桿等中的一種或多種。
顯示單元640可用于顯示由用戶輸入的信息或提供給用戶的信息。顯示單元640可包括顯示面板641,可選的,可以采用液晶顯示器(Liquid Crystal Display,LCD)、有機發光二極管(Organic Light-Emitting Diode,OLED)等形式來配置顯示面板641。進一步的,觸控面板631可覆蓋顯示面板641,當觸控面板631檢測到在其上或附近的觸摸操作后,傳送給處理器680以確定觸摸事件的類型,隨后處理器680根據觸摸事件的類型在顯示面板641上提供相應的視覺輸出。雖然在圖6中,觸控面板631與顯示面板641是作為兩個獨立的部件來實現手機的輸入和輸入功能,但是在某些實施例中,可以將觸控面板631與顯示面板641集成而實現手機的輸入和輸出功能。
處理器680是手機的控制中心,利用各種接口和線路連接整個手機的各個部分,通過運行或執行存儲在存儲器620內的軟件程序和/或模塊,以及調用存儲在存儲器620內的數據,執行手機的各種功能和處理數據,從而對手機進行整體監控。可選的,處理器680可包括一個或多個處理單元;優選的,處理器680可集成應用處理器和調制解調處理器,其中,應用處理器主要處理操作系統、用戶界面和應用程序等,調制解調處理器主要處理無線通信。可以理解的是,上述調制解調處理器也可以不集成到處理器680中。
具體的,本發明實施例中的處理器680用于執行存儲器620中的應用程序,以執行圖1到圖4中的實施例中的處理器所執行的部分或者全部步驟。
手機還可包括至少一種傳感器650、電源690,盡管未示出,手機還可以包括攝像頭、藍牙模塊等,在此不再贅述。
另外,本發明實施例還提供了一種計算機存儲介質,該介質存儲有應用程序,該程序執行時包括上述版本校驗方法中的部分或者全部步驟。
所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統,裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的系統,裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。
所述集成的單元如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
以上所述,以上實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精神和范圍。