本發(fā)明涉及網(wǎng)絡(luò)通訊技術(shù),具體涉及一種用于空中固件升級的方法、用于空中固件升級的裝置以及設(shè)置有用于空中固件升級的裝置的車輛。
背景技術(shù):
FOTA(Firmware Over-The-Air,空中固件升級)是一種通過云端對具有連網(wǎng)功能的終端設(shè)備(尤其是移動終端設(shè)備)提供固件升級服務(wù)的技術(shù)。
目前,F(xiàn)OTA的具體實現(xiàn)過程通常包括:首先,服務(wù)器獲取終端設(shè)備的制造商以及固件版本信息等輪廓信息;其次,服務(wù)器根據(jù)終端設(shè)備的輪廓信息向終端設(shè)備提供固件升級包,如服務(wù)器向終端設(shè)備提供固件升級包的URL(Uniform Resoure Locator,統(tǒng)一資源定位器),終端設(shè)備根據(jù)該URL下載固件升級包,并將下載的固件升級包存儲在Cache(高速緩存)分區(qū)或者Data(數(shù)據(jù))分區(qū)中;在固件升級包下載完成后,終端設(shè)備中的更新代理執(zhí)行該固件升級包的安裝操作,并在安裝完畢后,向服務(wù)器返回固件升級結(jié)果狀態(tài)信息。
上述固件升級包的安裝操作的一個具體實現(xiàn)過程通常為:終端設(shè)備重啟并進入Recovery(恢復(fù))模式,對固件升級包的數(shù)字簽名證書進行驗證,在驗證通過后,對固件升級包進行腳本解析,并根據(jù)腳本解析結(jié)果對Boot分區(qū)(即啟動分區(qū))或者System分區(qū)(即系統(tǒng)分區(qū),如Root分區(qū))中的內(nèi)容進行更新,然后,使終端設(shè)備重新啟動;在終端設(shè)備的重新啟動過程中,如果檢測到System分區(qū)中包含有用于更新Recovery分區(qū)的內(nèi)容,則根據(jù)System分區(qū)中的內(nèi)容更新Recovery分區(qū)中的內(nèi)容。
發(fā)明人在實現(xiàn)本發(fā)明過程中發(fā)現(xiàn):在現(xiàn)有的FOTA實現(xiàn)過程中,通常需要終端設(shè)備重新啟動兩次,終端設(shè)備的重新啟動會影響用戶對終端設(shè)備的正常使用,從而會影響用戶使用終端設(shè)備的體驗。
技術(shù)實現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的用于空中固件升級的方法、裝置及車輛。
依據(jù)本發(fā)明的其中一個方面,提供了一種用于空中固件升級的方法,該方法包括:下載用于升級終端設(shè)備當前使用的固件版本的固件升級包;根據(jù)所述固件升級包在終端設(shè)備的備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作;在終端設(shè)備的系統(tǒng)分區(qū)配置信息中將所述備份系統(tǒng)分區(qū)配置為主系統(tǒng)分區(qū),以使終端設(shè)備在下一次啟動時,根據(jù)所述系統(tǒng)分區(qū)配置信息確定出基于所述固件升級后的系統(tǒng)分區(qū)執(zhí)行啟動操作。
可選的,上述用于空中固件升級的方法,其中,在所述終端設(shè)備的當前系統(tǒng)分區(qū)包括一個分區(qū)的情況下,所述備份系統(tǒng)分區(qū)包括一個分區(qū);或者
在所述終端設(shè)備的當前系統(tǒng)分區(qū)包括多個分區(qū)的情況下,所述備份系統(tǒng)分區(qū)包括多個分區(qū),且備份系統(tǒng)分區(qū)中的每一個分區(qū)分別對應(yīng)當前系統(tǒng)分區(qū)中的唯一一個分區(qū)。
可選的,上述用于空中固件升級的方法,其中,所述根據(jù)所述固件升級包在終端設(shè)備的備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作的步驟包括:在確定出備份系統(tǒng)分區(qū)中存在固件文件,且備份系統(tǒng)分區(qū)中固件的版本與當前系統(tǒng)分區(qū)中固件的版本相同的情況下,根據(jù)所述固件升級包在終端設(shè)備的備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作。
可選的,上述用于空中固件升級的方法,其中,所述根據(jù)所述固件升級包在終端設(shè)備的備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作的步驟還包括:在確定出備份系統(tǒng)分區(qū)中不存在固件文件的情況下,根據(jù)所述當前系統(tǒng)分區(qū)中的固件文件同步所述備份系統(tǒng)分區(qū)。
可選的,上述用于空中固件升級的方法,其中,所述根據(jù)所述固件升級包在終端設(shè)備的備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作的步驟還包括:在確定出備份系統(tǒng)分區(qū)中存在固件文件、備份系統(tǒng)分區(qū)中固件的版本與當前系統(tǒng)分區(qū)中固件的版本不相同,且終端設(shè)備中未存儲有用于將備份系統(tǒng)分區(qū)中固件的版本升級到當前系統(tǒng)分區(qū)中固件的版本的固件升級包的情況下,根據(jù)所述當前系統(tǒng)分區(qū)中的固件文件同步所述備份系統(tǒng)分區(qū)。
可選的,上述用于空中固件升級的方法,其中,所述方法還包括:清理所述終端設(shè)備中存儲的所述同步操作之前所述備份系統(tǒng)分區(qū)中固件的版本對應(yīng)的固件升級包。
可選的,上述用于空中固件升級的方法,其中,所述根據(jù)所述固件升級包在終端設(shè)備的備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作的步驟還包括:在確定出備份系統(tǒng)分區(qū)中存在固件文件、備份系統(tǒng)分區(qū)中固件的版本與當前系統(tǒng)分區(qū)中固件的版本不相同,且終端設(shè)備中存儲有用于將備份系統(tǒng)分區(qū)中固件的版本升級到當前系統(tǒng)分區(qū)中固件的版本的固件升級包的情況下,根據(jù)所述用于將備份系統(tǒng)分區(qū)中固件的版本升級到當前系統(tǒng)分區(qū)中固件的版本的固件升級包在終端設(shè)備的備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作。
可選的,上述用于空中固件升級的方法,其中,所述方法還包括:
在終端設(shè)備首次啟動過程中,在根據(jù)駐留在分區(qū)表中的分區(qū)信息確定出終端設(shè)備當前存在備份系統(tǒng)分區(qū)的情況下,格式化所述備份系統(tǒng)分區(qū),并針對所述備份系統(tǒng)分區(qū)執(zhí)行掛載操作;或者
在終端設(shè)備啟動過程中或者在終端設(shè)備成功下載用于升級其當前使用的固件版本的固件升級包后,在確定出終端設(shè)備當前不存在備份系統(tǒng)分區(qū)的情況下,創(chuàng)建并格式化備份系統(tǒng)分區(qū),并針對所述備份系統(tǒng)分區(qū)執(zhí)行掛載操作。
依據(jù)本發(fā)明的另一個方面,提供了一種用于空中固件升級的裝置,所述裝置包括:下載模塊,用于下載用于升級終端設(shè)備當前使用的固件版本的固件升級包;固件升級模塊,用于根據(jù)所述固件升級包在終端設(shè)備的備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作;分區(qū)切換模塊,用于在終端設(shè)備的系統(tǒng)分區(qū)配置信息中將所述備份系統(tǒng)分區(qū)配置為主系統(tǒng)分區(qū),以使終端設(shè)備在下一次啟動過程中,根據(jù)所述系統(tǒng)分區(qū)配置信息確定出基于所述固件升級后的系統(tǒng)分區(qū)執(zhí)行固件啟動操作。
可選的,上述用于空中固件升級的裝置,其中,在所述終端設(shè)備的當前系統(tǒng)分區(qū)包括一個分區(qū)的情況下,所述備份系統(tǒng)分區(qū)包括一個分區(qū);或者
在所述終端設(shè)備的當前系統(tǒng)分區(qū)包括多個分區(qū)的情況下,所述備份系統(tǒng)分區(qū)包括多個分區(qū),且備份系統(tǒng)分區(qū)中的每一個分區(qū)分別對應(yīng)當前系統(tǒng)分區(qū)中的唯一一個分區(qū)。
可選的,上述用于空中固件升級的裝置,其中,所述固件升級模塊包括:
第一判斷子模塊,用于判斷備份系統(tǒng)分區(qū)中是否存在固件文件;
第二判斷子模塊,用于在第一判斷子模塊判斷出備份系統(tǒng)分區(qū)中存在固件文件的情況下,判斷備份系統(tǒng)分區(qū)中固件的版本與當前系統(tǒng)分區(qū)中固件的版本是否相同;
固件升級子模塊,用于在第二判斷子模塊判斷出備份系統(tǒng)分區(qū)中固件的版本與當前系統(tǒng)分區(qū)中固件的版本相同的情況下,根據(jù)所述固件升級包在終端設(shè)備的備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作。
可選的,上述用于空中固件升級的裝置,其中,所述固件升級模塊還包括:同步子模塊,用于在第一判斷子模塊判斷出備份系統(tǒng)分區(qū)中不存在固件文件的情況下,根據(jù)所述當前系統(tǒng)分區(qū)中的固件文件同步所述備份系統(tǒng)分區(qū)。
可選的,上述用于空中固件升級的裝置,其中,所述固件升級模塊還包括:
第三判斷子模塊,用于在第二判斷子模塊判斷出備份系統(tǒng)分區(qū)中固件的版本與當前系統(tǒng)分區(qū)中固件的版本不相同的情況下,判斷終端設(shè)備中是否存儲有用于將備份系統(tǒng)分區(qū)中固件的版本升級到當前系統(tǒng)分區(qū)中固件的版本的固件升級包;
所述同步子模塊還用于,在第三判斷子模塊判斷出終端設(shè)備中未存儲有用于將備份系統(tǒng)分區(qū)中固件的版本升級到當前系統(tǒng)分區(qū)中固件的版本的固件升級包的情況下,根據(jù)所述當前系統(tǒng)分區(qū)中的固件文件同步所述備份系統(tǒng)分區(qū)。
可選的,上述用于空中固件升級的裝置,其中,所述裝置還包括:清理模塊,用于清理所述終端設(shè)備中存儲的所述同步操作之前所述備份系統(tǒng)分區(qū)中固件的版本對應(yīng)的固件升級包。
可選的,上述用于空中固件升級的裝置,其中,所述固件升級子模塊還用于:在第三判斷子模塊判斷出終端設(shè)備中存儲有用于將備份系統(tǒng)分區(qū)中固件的版本升級到當前系統(tǒng)分區(qū)中固件的版本的固件升級包的情況下,根據(jù)所述用于將備份系統(tǒng)分區(qū)中固件的版本升級到當前系統(tǒng)分區(qū)中固件的版本的固件升級包在終端設(shè)備的備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作。
可選的,上述用于空中固件升級的裝置,其中,所述裝置還包括:備份分區(qū)管理模塊,用于:
在終端設(shè)備首次啟動過程中,在根據(jù)駐留在分區(qū)表中的分區(qū)信息確定出終端設(shè)備當前存在備份系統(tǒng)分區(qū)的情況下,格式化所述備份系統(tǒng)分區(qū),并針對所述備份系統(tǒng)分區(qū)執(zhí)行掛載操作;或者
在終端設(shè)備啟動過程中或者在終端設(shè)備成功下載用于升級其當前使用的固件版本的固件升級包后,在確定出終端設(shè)備當前不存在備份系統(tǒng)分區(qū)的情況下,創(chuàng)建并格式化備份系統(tǒng)分區(qū),并針對所述備份系統(tǒng)分區(qū)執(zhí)行掛載操作。
依據(jù)本發(fā)明的再一個方面,提供了一種車輛,其中,所述車輛包括:上述的用于空中固件升級的裝置。
本發(fā)明提供的用于空中固件升級的方法、裝置及車輛至少具有下列優(yōu)點和有益效果:本發(fā)明通過為系統(tǒng)分區(qū)設(shè)置備份系統(tǒng)分區(qū),并在下載了用于升級終端設(shè)備當前使用的固件版本的固件升級包后,利用該固件升級包在備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作,使備份系統(tǒng)分區(qū)中固件的版本得到升級;本發(fā)明通過將備份系統(tǒng)分區(qū)配置為主系統(tǒng)分區(qū),這樣,終端設(shè)備在下一次啟動(如用戶在晚上關(guān)閉終端設(shè)備并在第二天早上開啟終端設(shè)備)時,可以實現(xiàn)備份系統(tǒng)分區(qū)與主系統(tǒng)分區(qū)的乒乓切換,從而可以利用切換后的主系統(tǒng)分區(qū)完成終端設(shè)備的正常啟動,由于切換后的主系統(tǒng)分區(qū)中已經(jīng)安裝了版本升級后的固件,因此,終端設(shè)備在啟動后所使用的固件為版本升級后的固件,從而本發(fā)明可以在用戶無感知的情況下,使終端設(shè)備靜默的實現(xiàn)空中固件升級,有效避免了利用Recovery模式實現(xiàn)空中固件升級過程中由于需要多次重啟終端設(shè)備而影響用戶對終端設(shè)備的正常使用的現(xiàn)象。由此可知,本發(fā)明提供的技術(shù)方案有利于提高用戶使用終端設(shè)備的體驗。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。本實施例的附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1為本發(fā)明一個實施例的用于空中固件升級的方法的流程圖。
圖2為本發(fā)明一個實施例的用于空中固件升級的方法中的備份系統(tǒng)分區(qū)的同步過程的流程圖。
圖3為本發(fā)明一個實施例的用于空中固件升級的方法的一個具體例子的流程圖。
圖4為本發(fā)明一個實施例的用于空中固件升級的裝置的結(jié)構(gòu)示意圖。
圖5為本發(fā)明一個實施例的固件升級模塊的結(jié)構(gòu)示意圖。
圖6示出本發(fā)明一個實施例的智能車輛的結(jié)構(gòu)框圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本發(fā)明公開的示例性實施例,然而應(yīng)當理解,可以以各種形式實現(xiàn)本發(fā)明公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本發(fā)明的技術(shù)方案,并且能夠?qū)⒈景l(fā)明公開的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
下面為本發(fā)明的一個用于空中固件升級的方法的實施例。
本實施例的用于空中固件升級的方法通常應(yīng)用于終端設(shè)備中,尤其適用于智能移動電話、智能車輛的車載電子系統(tǒng)以及平板電腦等移動終端設(shè)備中。
本實施例的固件(Firmware)通常是指負責終端設(shè)備中的基礎(chǔ)且底層工作的軟件/程序,換而言之,固件是使硬件設(shè)備得以正常運行的程序代碼。本實施例的固件可以具體為終端設(shè)備的操作系統(tǒng),如智能移動電話的固件可以為智能移動電話的操作系統(tǒng),車載電子系統(tǒng)的固件可以車載電子系統(tǒng)的操作系統(tǒng)等。本實施例的固件也可以為終端設(shè)備中的某個硬件的驅(qū)動程序,如本實施例的固件可以為終端設(shè)備中的硬盤、鼠標、光驅(qū)或者USB(Universal Serial Bus,通用串行總線)閃存盤等)的驅(qū)動程序。
另外,本實施例的固件通常會被寫入終端設(shè)備的EROM(Eraseable Read Only Memory,可擦寫只讀存儲器)或者EEPROM(Electrically Erasable Programmable Read-Only Memory,電可擦可編程只讀存儲器)中。
本實施例的用于空中固件升級的方法的流程如圖1所示,且本實施例的該方法主要包括:步驟S100、步驟S110以及步驟S120。下面對本實施例的該方法所包括各步驟分別進行詳細說明。
圖1中,S100、下載用于升級終端設(shè)備當前使用的固件版本的固件升級包。
作為示例,本實施例中的固件升級包可以為用于固件增量升級的固件升級包,即固件升級差分包;且本實施例中的固件升級包也可以為用于固件全量升級的固件升級包,即固件升級整包。
作為示例,本實施例可以在檢測到FOTA服務(wù)器中存在新版本的固件升級包的情況下,執(zhí)行下載操作,以獲得該新版本的固件升級包;一個具體的例子,終端設(shè)備向FOTA服務(wù)器發(fā)起固件版本查詢請求,且該查詢請求中可以承載有終端設(shè)備制造商和終端設(shè)備當前使用的固件版本信息等輪廓信息,F(xiàn)OTA服務(wù)器根據(jù)其接收到的查詢請求中的終端設(shè)備輪廓信息確定該終端設(shè)備所對應(yīng)的新版本的固件升級包,并向終端設(shè)備發(fā)送包含有該新版本的固件升級包的URL的查詢響應(yīng),終端設(shè)備根據(jù)查詢響應(yīng)中的URL從FOTA服務(wù)器處下載新版本的固件升級包,并將成功下載的新版本的固件升級包存儲在其Cache分區(qū)的相應(yīng)目錄下,當然,也可以存儲在其Data分區(qū)中。
作為示例,本實施例在成功獲取到新版本的固件升級包之后,可以利用本地存儲的數(shù)字簽名證書對該新版本的固件升級包進行數(shù)字簽名驗證,如果本次驗證通過,則允許針對該新版本的固件升級包執(zhí)行安裝操作,即允許基于該新版本的固件升級包執(zhí)行后續(xù)的步驟S110,而如果本次驗證失敗,則不允許針對該新版本的固件升級包執(zhí)行安裝操作,即本次用于空中固件升級的方法結(jié)束,不再執(zhí)行后續(xù)的步驟S110。
作為示例,本實施例中的數(shù)字簽名證書的存儲路徑以及名稱的一個具體例子為:/system/etc/security/otacerts.zip。
另外,本實施例還可以在本次驗證失敗的情況下,對該新版本的固件升級包執(zhí)行清理操作,如刪除該新版本的固件升級包等。
S110、根據(jù)上述下載的固件升級包在終端設(shè)備的備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作。
作為示例,本實施例中的系統(tǒng)分區(qū)是指存儲有固件的分區(qū),該系統(tǒng)分區(qū)有時也被稱為Root分區(qū)或者系統(tǒng)文件分區(qū)等。本實施例中的系統(tǒng)分區(qū)是以主備的形式設(shè)置的,即終端設(shè)備中設(shè)置有主系統(tǒng)分區(qū)和備份系統(tǒng)分區(qū);其中的主系統(tǒng)分區(qū)是指終端設(shè)備在執(zhí)行啟動操作過程中以及在正常運行過程中所使用的固件所在的系統(tǒng)分區(qū),且主系統(tǒng)分區(qū)也可以稱為當前系統(tǒng)分區(qū)或者當前使用的系統(tǒng)分區(qū)等;其中的備份系統(tǒng)分區(qū)是指用于承載固件文件,且其承載的固件文件處于當前未被終端設(shè)備使用的狀態(tài)。本實施例中的主系統(tǒng)分區(qū)可以在終端設(shè)備的正常啟動過程中被切換為備份系統(tǒng)分區(qū),而備份系統(tǒng)分區(qū)被切換為主系統(tǒng)分區(qū),實現(xiàn)主系統(tǒng)分區(qū)與備份系統(tǒng)分區(qū)的乒乓切換。需要特別說明的是,現(xiàn)有技術(shù)中的系統(tǒng)分區(qū)并沒有以主備的形式設(shè)置,即現(xiàn)有技術(shù)中不存在備份系統(tǒng)分區(qū),從而現(xiàn)有技術(shù)中也不會存在主系統(tǒng)分區(qū)與備份系統(tǒng)分區(qū)之間的乒乓切換過程。
作為示例,本實施例中的當前系統(tǒng)分區(qū)可以具體為一個分區(qū),也可以具體為多個分區(qū),如在終端設(shè)備當前使用的固件中的不同部分分別存儲在不同分區(qū)中的情況下,這多個分區(qū)均為當前系統(tǒng)分區(qū)。無論當前系統(tǒng)分區(qū)具體為一個分區(qū),還是具體為多個分區(qū),本實施例均針對當前系統(tǒng)分區(qū)中的每一個分區(qū)分別設(shè)置了備份系統(tǒng)分區(qū),即在當前系統(tǒng)分區(qū)為一個分區(qū)的情況下,本實施例中的備份系統(tǒng)分區(qū)具體為一個分區(qū);而在當前系統(tǒng)分區(qū)為多個分區(qū)(如2個分區(qū)或者更多數(shù)量的分區(qū))的情況下,備份系統(tǒng)分區(qū)也為多個分區(qū)(如2個分區(qū)或者更多數(shù)量的分區(qū)),備份系統(tǒng)分區(qū)的分區(qū)數(shù)量與當前系統(tǒng)分區(qū)的分區(qū)數(shù)量相同,且備份系統(tǒng)分區(qū)中的每一個分區(qū)分別對應(yīng)當前系統(tǒng)分區(qū)中的唯一一個分區(qū),例如,在當前系統(tǒng)分區(qū)包括第一當前系統(tǒng)分區(qū)和第二當前系統(tǒng)分區(qū)這兩個分區(qū)的情況下,備份系統(tǒng)分區(qū)包括第一備份系統(tǒng)分區(qū)和第二備份系統(tǒng)分區(qū),且第一當前系統(tǒng)分區(qū)對應(yīng)第一備份系統(tǒng)分區(qū),而第二當前系統(tǒng)分區(qū)對應(yīng)第二備份系統(tǒng)分區(qū)。
作為示例,本實施例在終端設(shè)備中設(shè)置備份系統(tǒng)分區(qū)的一個具體過程為:首先,在終端設(shè)備的分區(qū)表中初始駐留備份系統(tǒng)分區(qū)的分區(qū)信息,如在終端設(shè)備的出廠過程中,第一次燒錄終端設(shè)備的分區(qū)表時,可以將主系統(tǒng)分區(qū)的分區(qū)信息以及備份系統(tǒng)分區(qū)的分區(qū)信息均燒錄在分區(qū)表中,此時,分區(qū)表中的分區(qū)信息通常包括:啟動分區(qū)(如Boot分區(qū))的分區(qū)信息、當前系統(tǒng)分區(qū)(如主Root分區(qū))的分區(qū)信息以及備份系統(tǒng)分區(qū)(如備份Root分區(qū))的分區(qū)信息;之后,在終端設(shè)備第一次啟動(如用戶購買終端設(shè)備并首次開機)的過程中,可以根據(jù)該分區(qū)表中的備份系統(tǒng)分區(qū)的分區(qū)信息對備份系統(tǒng)分區(qū)進行格式化(如將備份系統(tǒng)分區(qū)格式化為Root分區(qū)格式的分區(qū)),并針對該備份系統(tǒng)分區(qū)執(zhí)行掛載操作,如將備份系統(tǒng)分區(qū)掛載在相應(yīng)的目錄下等,以使備份系統(tǒng)分區(qū)能夠正常使用,即備份系統(tǒng)分區(qū)能夠被讀寫,從而成功設(shè)置備份系統(tǒng)分區(qū)。另外,在終端設(shè)備第一次啟動過程中,還可以創(chuàng)建數(shù)據(jù)分區(qū)(如Home分區(qū)),并在分區(qū)表中設(shè)置數(shù)據(jù)分區(qū)的分區(qū)信息,對數(shù)據(jù)分區(qū)進行格式化以及掛載處理,以使數(shù)據(jù)分區(qū)能夠正常使用。
作為示例,本實施例在終端設(shè)備中設(shè)置備份系統(tǒng)分區(qū)的另一個具體過程為:首先,終端設(shè)備的分區(qū)表中并未初始駐留備份系統(tǒng)分區(qū)的分區(qū)信息,如在終端設(shè)備的出廠過程中,在第一次燒錄終端設(shè)備的分區(qū)表時,并沒有將備份系統(tǒng)分區(qū)的分區(qū)信息燒錄在分區(qū)表中,此時,分區(qū)表中的分區(qū)信息通常包括:啟動分區(qū)(如Boot分區(qū))的分區(qū)信息以及當前系統(tǒng)分區(qū)(如主Root分區(qū))的分區(qū)信息;之后,在終端設(shè)備第一次啟動(如用戶購買終端設(shè)備并首次開機)或者非首次啟動過程中,或者在終端設(shè)備成功下載用于升級其當前使用的固件版本的固件升級包之后,在確定出終端設(shè)備當前不存在備份系統(tǒng)分區(qū)(如根據(jù)分區(qū)表中的分區(qū)信息確定出終端設(shè)備當前不存在備份系統(tǒng)分區(qū))的情況下,針對當前系統(tǒng)分區(qū)創(chuàng)建備份系統(tǒng)分區(qū)(如創(chuàng)建備份Root分區(qū)),并在分區(qū)表中設(shè)置備份系統(tǒng)分區(qū)的分區(qū)信息,對備份系統(tǒng)分區(qū)進行格式化(如將備份系統(tǒng)分區(qū)格式化為Root分區(qū)格式的分區(qū)),然后,針對該備份系統(tǒng)分區(qū)執(zhí)行掛載操作,如將備份系統(tǒng)分區(qū)掛載在相應(yīng)的目錄下等,以使備份系統(tǒng)分區(qū)能夠正常使用,即備份系統(tǒng)分區(qū)能夠被讀寫,從而成功設(shè)置備份系統(tǒng)分區(qū)。另外,在終端設(shè)備第一次啟動過程中,還可以創(chuàng)建數(shù)據(jù)分區(qū)(如Home分區(qū)),并在分區(qū)表中設(shè)置數(shù)據(jù)分區(qū)的分區(qū)信息,對數(shù)據(jù)分區(qū)進行格式化以及掛載處理,以使數(shù)據(jù)分區(qū)能夠正常使用。
上述兩個設(shè)置備份系統(tǒng)分區(qū)的具體過程僅為舉例說明,本實施例不限制在終端設(shè)備中設(shè)置備份系統(tǒng)分區(qū)的具體實現(xiàn)方式。
作為示例,本實施例在成功下載了用于升級終端設(shè)備當前使用的固件版本的固件升級包的情況下,終端設(shè)備中的備份系統(tǒng)分區(qū)會存在多種不同的情況,例如備份系統(tǒng)分區(qū)中并不存在系統(tǒng)鏡像文件(即備份系統(tǒng)分區(qū)中不存在固件,或者說備份系統(tǒng)分區(qū)中并不存在系統(tǒng)文件);再例如備份系統(tǒng)分區(qū)中存在系統(tǒng)鏡像文件(即備份系統(tǒng)分區(qū)中存在固件,或者說備份系統(tǒng)分區(qū)中存在系統(tǒng)文件),且備份系統(tǒng)分區(qū)中固件的版本與當前系統(tǒng)分區(qū)中固件的版本相同;再例如備份系統(tǒng)分區(qū)中存在系統(tǒng)鏡像文件,且備份系統(tǒng)分區(qū)中固件的版本與當前系統(tǒng)分區(qū)中固件的版本不相同。本實施例應(yīng)針對不同情況的備份系統(tǒng)分區(qū)執(zhí)行相應(yīng)的固件升級操作,以使備份系統(tǒng)分區(qū)中的固件的版本升級到上述下載的固件升級包的版本,下面例舉四個具體的例子對本實施例的根據(jù)上述下載的固件升級包在終端設(shè)備的備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作進行舉例說明。
第一個例子,判斷備份系統(tǒng)分區(qū)中是否存在系統(tǒng)文件(也可以稱為固件文件或者系統(tǒng)鏡像文件等),如果判斷結(jié)果為備份系統(tǒng)分區(qū)中存在系統(tǒng)文件,則繼續(xù)判斷備份系統(tǒng)分區(qū)中固件的版本是否與當前系統(tǒng)分區(qū)中固件的版本相同,如果本次判斷結(jié)果為備份系統(tǒng)分區(qū)中固件的版本與當前系統(tǒng)分區(qū)中固件的版本相同,則直接根據(jù)上述下載且驗證通過的固件升級包在終端設(shè)備的備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作,以使備份系統(tǒng)分區(qū)中固件的版本升級為上述下載的固件升級包的版本。
第二個例子,判斷備份系統(tǒng)分區(qū)中是否存在系統(tǒng)文件,如果判斷結(jié)果為備份系統(tǒng)分區(qū)中存在系統(tǒng)文件,則繼續(xù)判斷備份系統(tǒng)分區(qū)中固件的版本是否與當前系統(tǒng)分區(qū)中固件的版本相同,如果本次判斷結(jié)果為備份系統(tǒng)分區(qū)中固件的版本與當前系統(tǒng)分區(qū)中固件的版本不相同,則繼續(xù)判斷終端設(shè)備本地(如緩存分區(qū)或者數(shù)據(jù)區(qū)分中)是否存儲有用于將備份系統(tǒng)分區(qū)中固件的版本升級到當前系統(tǒng)分區(qū)中固件的版本的固件升級包(下述將其簡稱為次新固件升級包),如果判斷結(jié)果為終端設(shè)備本地(如緩存分區(qū)或者數(shù)據(jù)區(qū)分中)存儲有次新固件升級包,則根據(jù)該次新固件升級包在終端設(shè)備的備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作,以使備份系統(tǒng)分區(qū)中固件的版本升級為上述下載的固件升級包的版本,然后,再根據(jù)上述下載且驗證通過的固件升級包在終端設(shè)備的備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作,以使備份系統(tǒng)分區(qū)中固件的版本升級為上述下載的固件升級包的版本。
第三個例子,判斷備份系統(tǒng)分區(qū)中是否存在系統(tǒng)文件,如果判斷結(jié)果為備份系統(tǒng)分區(qū)中存在系統(tǒng)文件,則繼續(xù)判斷備份系統(tǒng)分區(qū)中固件的版本是否與當前系統(tǒng)分區(qū)中固件的版本相同,如果本次判斷結(jié)果為備份系統(tǒng)分區(qū)中固件的版本與當前系統(tǒng)分區(qū)中固件的版本不相同,則繼續(xù)判斷終端設(shè)備本地(如緩存分區(qū)或者數(shù)據(jù)區(qū)分中)是否存儲有次新固件升級包,如果判斷結(jié)果為終端設(shè)備本地(如緩存分區(qū)或者數(shù)據(jù)區(qū)分中)未存儲有次新固件升級包,則根據(jù)當前系統(tǒng)分區(qū)中的系統(tǒng)文件對備份系統(tǒng)分區(qū)執(zhí)行同步操作,以使備份系統(tǒng)分區(qū)中存在系統(tǒng)文件,且使備份系統(tǒng)分區(qū)中固件的版本與當前系統(tǒng)分區(qū)中固件的版本相同,然后,再根據(jù)上述下載且驗證通過的固件升級包在終端設(shè)備的備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作,以使備份系統(tǒng)分區(qū)中固件的版本升級為上述下載的固件升級包的版本。
第四個例子,判斷備份系統(tǒng)分區(qū)中是否存在系統(tǒng)文件,如果判斷結(jié)果為備份系統(tǒng)分區(qū)中不存在系統(tǒng)文件,則根據(jù)當前系統(tǒng)分區(qū)中的系統(tǒng)文件對備份系統(tǒng)分區(qū)執(zhí)行同步操作,以使備份系統(tǒng)分區(qū)中存在系統(tǒng)文件,且使備份系統(tǒng)分區(qū)中固件的版本與當前系統(tǒng)分區(qū)中固件的版本相同,然后,再根據(jù)上述下載且驗證通過的固件升級包在終端設(shè)備的備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作,以使備份系統(tǒng)分區(qū)中固件的版本升級為上述下載的固件升級包的版本。
需要特別說明的是,本實施例還可以在備份系統(tǒng)分區(qū)中固件的版本升級為上述下載的固件升級包的版本的情況下,對終端設(shè)備中存儲的除了上述下載的固件升級包以及次新固件升級包之外的其他舊版本的各固件升級包進行清理操作,如刪除除了上述下載的固件升級包以及次新固件升級包之外的其他舊版本的各固件升級包。本實施例所保留的次新固件升級包可以用于將終端設(shè)備當前使用的最新版本的固件回退到該次新固件升級包的版本,如在用戶不希望升級當前版本而希望回退到上一個固件升級包的版本時,完全可以通過Revert模式等回退到上一個固件升級包的版本。另外,本實施例通過及時清理冗余的舊版本的固件升級包,可以有效避免冗余的舊版本的固件升級包占用磁盤空間的現(xiàn)象。
另外需要特別說明的是,在終端設(shè)備正常啟動的情況下,雖然終端設(shè)備中的備份系統(tǒng)分區(qū)也會存在多種不同的情況,然而,本實施例并不會針對不同的情況執(zhí)行不同的固件升級操作,只有在下載了新版本的固件升級包的情況下,才會執(zhí)行相應(yīng)的固件升級操作,如在終端設(shè)備正常開機過程中,如果備份系統(tǒng)分區(qū)中固件的版本低于主系統(tǒng)分區(qū)中固件的版本,應(yīng)保持備份系統(tǒng)分區(qū)中固件的版本,以便于能夠?qū)⒔K端設(shè)備當前使用的固件版本回退到低版本的固件。
S120、在終端設(shè)備的系統(tǒng)分區(qū)配置信息中將備份系統(tǒng)分區(qū)配置為系統(tǒng)分區(qū),以使終端設(shè)備在下一次啟動時,根據(jù)系統(tǒng)分區(qū)配置信息確定出基于固件升級后的系統(tǒng)分區(qū)執(zhí)行啟動操作。
作為示例,本實施例可以將啟動分區(qū)中的系統(tǒng)分區(qū)信息設(shè)置為備份系統(tǒng)分區(qū)信息,這樣,在終端設(shè)備的后續(xù)使用過程中,如果終端設(shè)備由于再次開機而啟動(如用戶在當天晚上關(guān)閉終端設(shè)備并在第二天早上開機啟動終端設(shè)備),則終端設(shè)備會根據(jù)啟動分區(qū)中的系統(tǒng)分區(qū)信息將上述備份系統(tǒng)分區(qū)作為當前主系統(tǒng)分區(qū),并按照主系統(tǒng)分區(qū)中的固件執(zhí)行后續(xù)的啟動操作,從而實現(xiàn)了備份系統(tǒng)分區(qū)與主系統(tǒng)分區(qū)的兵乓切換。
下面為本發(fā)明的用于空中固件升級的方法中的備份系統(tǒng)分區(qū)的同步過程的實施例。
本實施例的方法中設(shè)置有主系統(tǒng)分區(qū)和備份系統(tǒng)分區(qū),在終端設(shè)備的每一次開機啟動過程中都需要對備份系統(tǒng)分區(qū)進行同步處理,以保證主系統(tǒng)分區(qū)以及備份系統(tǒng)分區(qū)中均設(shè)置有符合要求的系統(tǒng)文件,從而使終端設(shè)備在需要進行回退時,能夠利用備份系統(tǒng)分區(qū)回退到在先版本的固件,在需要進行固件升級時,能夠利用備份系統(tǒng)分區(qū)以及最新下載的固件升級包對終端設(shè)備使用的固件可以升級。圖2即為本實施例的用于空中固件升級的方法中的備份系統(tǒng)分區(qū)的同步過程的一個具體例子的流程圖。
圖2中,設(shè)定本實施例中的P1分區(qū)為啟動分區(qū),P2分區(qū)和P3分區(qū)均為系統(tǒng)分區(qū),且P2分區(qū)和P3分區(qū)互為主備,P4分區(qū)為數(shù)據(jù)分區(qū)。下面對圖2中的各步驟分別進行說明。
S101、終端設(shè)備在開機啟動時,先加載啟動分區(qū)(P1分區(qū))中的啟動系統(tǒng)文件(也可以稱為啟動系統(tǒng)鏡像文件或者啟動鏡像文件),如加載Boot分區(qū)的Boot文件,并可以根據(jù)Boot文件中的系統(tǒng)分區(qū)配置信息確定主系統(tǒng)分區(qū),如確定出P2分區(qū)為主系統(tǒng)分區(qū)(如主Root分區(qū)),并啟動P2分區(qū)中的固件。
S102、判斷當前是否存在備份系統(tǒng)分區(qū)(如P3分區(qū))以及數(shù)據(jù)分區(qū)(即P4分區(qū)),如果判斷結(jié)果為當前存在備份系統(tǒng)分區(qū)以及數(shù)據(jù)分區(qū),則到步驟S104,如果判斷結(jié)果為當前不存在備份系統(tǒng)分區(qū)或者數(shù)據(jù)分區(qū),則到步驟S103。
S103、在當前不存在P3分區(qū)的情況下,創(chuàng)建P3分區(qū),并以系統(tǒng)分區(qū)(如Root分區(qū))格式對P3分區(qū)進行格式化;在當前不存在P4分區(qū)(如終端設(shè)備第一次啟動)的情況下,創(chuàng)建P4分區(qū),并以數(shù)據(jù)分區(qū)(如Home分區(qū))格式對P4分區(qū)進行格式化。到步驟S104。
S104、針對備份系統(tǒng)分區(qū)以及數(shù)據(jù)分區(qū)執(zhí)行掛載操作,如在Cache分區(qū)中,針對P3分區(qū)和P4分區(qū)分別創(chuàng)建相應(yīng)的目錄,并將P3分區(qū)和P4分區(qū)分別掛載到相應(yīng)的目錄中。
S105、檢查備份系統(tǒng)分區(qū)(即P3分區(qū))是否存在系統(tǒng)文件,如果存在系統(tǒng)文件,則到步驟S107,如果不存在系統(tǒng)文件,則到步驟S106。
S106、將主系統(tǒng)分區(qū)(即P2分區(qū))中固件的內(nèi)容(即系統(tǒng)文件)同步到備份系統(tǒng)分區(qū)(即P3)中,如將主系統(tǒng)分區(qū)掛載到一個目錄下,并將主系統(tǒng)分區(qū)中的系統(tǒng)文件復(fù)制到備份系統(tǒng)分區(qū)中,本實施例可以在將主系統(tǒng)分區(qū)中的系統(tǒng)文件復(fù)制到備份分區(qū)中的過程中執(zhí)行MD5(Message Digest Algorithm,消息摘要算法第五版)校驗,以保證復(fù)制的系統(tǒng)文件的準確性。在成功將主系統(tǒng)分區(qū)中的系統(tǒng)文件復(fù)制到備份系統(tǒng)分區(qū)中之后,到步驟S107。
S107、判斷主系統(tǒng)分區(qū)中固件的版本是否與備份系統(tǒng)分區(qū)中固件的版本相同,如果兩者版本相同,則到步驟S109,本實施例的同步過程結(jié)束;而如果兩者版本不相同,則到步驟S108。
S108、檢查Cache分區(qū)或者數(shù)據(jù)分區(qū)(P4分區(qū))中是否存在能夠?qū)浞菹到y(tǒng)分區(qū)中固件的版本升級到主系統(tǒng)分區(qū)中固件版本的固件升級包,如果不存在該固件升級包,則到步驟S106,如果存在該固件升級包,則保留備份系統(tǒng)分區(qū)中固件的版本,以便于能夠利用備份系統(tǒng)分區(qū)實現(xiàn)固件回退,到步驟S109。
S109、本實施例的同步過程結(jié)束。
下面為本發(fā)明的一個用于空中固件升級的方法的實施例。
在用于控制固件升級的方法中,在使用下載的固件升級包對備份系統(tǒng)分區(qū)中固件的版本進行升級時,通常需要先使備份系統(tǒng)分區(qū)中固件的版本與當前使用的系統(tǒng)分區(qū)中固件的版本一致,然后,再利用下載的固件升級包對與當前使用的系統(tǒng)分區(qū)中固件的版本一致的備份系統(tǒng)分區(qū)中固件的版本進行升級。圖3即為包含有該同步過程的用于空中固件升級的方法的一個具體例子的流程圖。
圖3中,設(shè)定本實施例中的P1分區(qū)為啟動分區(qū),P2分區(qū)和P3分區(qū)均為系統(tǒng)分區(qū),且P2分區(qū)和P3分區(qū)互為主備,P4分區(qū)為數(shù)據(jù)分區(qū)。下面對圖3中的各步驟分別進行說明。
S201、端設(shè)備向FOTA服務(wù)器發(fā)起固件版本查詢請求,且該查詢請求中通常承載有終端設(shè)備制造商以及終端設(shè)備當前使用的固件版本信息等中的設(shè)備輪廓信息,F(xiàn)OTA服務(wù)器根據(jù)查詢請求中的終端設(shè)備輪廓信息向終端設(shè)備下發(fā)相應(yīng)的新版本的固件升級包的URL,終端設(shè)備根據(jù)該URL從FOTA服務(wù)器處下載新版本的固件升級包,并將下載的新版本的固件升級包存儲在Cache分區(qū)的相應(yīng)目錄下,然后,利用終端設(shè)備本地存儲的數(shù)字簽名證書對該新版本的固件升級包進行驗證,如果驗證失敗,則可以清理該固件升級包,如刪除Cache分區(qū)的相應(yīng)目錄下的該固件升級包等;如果驗證成功,則繼續(xù)執(zhí)行終端設(shè)備固件升級的后續(xù)操作,到步驟S202。設(shè)定本次下載的固件升級包為固件升級差分包。本實施例通過對驗證失敗的固件升級包進行清理回收,及時的避免了無用的固件升級包占用磁盤空間的現(xiàn)象。
S202、判斷當前是否存在備份系統(tǒng)分區(qū)(如P3分區(qū))以及數(shù)據(jù)分區(qū)(即P4分區(qū)),如果判斷結(jié)果為當前存在備份系統(tǒng)分區(qū)以及數(shù)據(jù)分區(qū),則到步驟S204,如果判斷結(jié)果為當前不存在備份系統(tǒng)分區(qū)或者數(shù)據(jù)分區(qū),則到步驟S203。
S203、在當前不存在P3分區(qū)的情況下,創(chuàng)建P3分區(qū),并以系統(tǒng)分區(qū)(如Root分區(qū))格式對P3分區(qū)進行格式化;在當前不存在P4分區(qū)(如終端設(shè)備第一次啟動)的情況下,創(chuàng)建P4分區(qū),并以數(shù)據(jù)分區(qū)(如Home分區(qū))格式對P4分區(qū)進行格式化。到步驟S204。
S204、針對備份系統(tǒng)分區(qū)以及數(shù)據(jù)分區(qū)執(zhí)行掛載操作,如在Cache分區(qū)中,針對P3分區(qū)和P4分區(qū)分別創(chuàng)建相應(yīng)的目錄,并將P3分區(qū)和P4分區(qū)分別掛載到相應(yīng)的目錄中。
S205、檢查備份系統(tǒng)分區(qū)(即P3分區(qū))是否存在系統(tǒng)文件,如果存在系統(tǒng)文件,則到步驟S207,如果不存在系統(tǒng)文件,則到步驟S206。
S206、將主系統(tǒng)分區(qū)(即P2分區(qū))中固件的內(nèi)容(即系統(tǒng)文件)同步到備份系統(tǒng)分區(qū)(即P3)中,如將主系統(tǒng)分區(qū)掛載到一個目錄下,并將主系統(tǒng)分區(qū)中的系統(tǒng)文件復(fù)制到備份系統(tǒng)分區(qū)中,本實施例可以在將主系統(tǒng)分區(qū)中的系統(tǒng)文件復(fù)制到備份分區(qū)中的過程中執(zhí)行MD5(Message Digest Algorithm,消息摘要算法第五版)校驗,以保證復(fù)制的系統(tǒng)文件的準確性。在成功將主系統(tǒng)分區(qū)中的系統(tǒng)文件復(fù)制到備份系統(tǒng)分區(qū)中之后,到步驟S207。
S207、判斷主系統(tǒng)分區(qū)中固件的版本是否與備份系統(tǒng)分區(qū)中固件的版本相同,如果兩者版本相同,則到步驟S210;而如果兩者版本不相同,則到步驟S208。
S208、檢查Cache分區(qū)或者數(shù)據(jù)分區(qū)(P4分區(qū))中是否存在能夠?qū)浞菹到y(tǒng)分區(qū)中固件的版本升級到主系統(tǒng)分區(qū)中固件版本的固件升級包,如果不存在該固件升級包,則到步驟S206,如果存在該固件升級包,則到步驟S209。設(shè)定Cache分區(qū)或者P4分區(qū)中的該次新固件升級包為固件升級差分包。
S209、利用在Cache分區(qū)或者P4分區(qū)中檢查到的固件升級差分包對備份系統(tǒng)分區(qū)中固件的版本執(zhí)行差分升級操作,在差分升級操作成功完成后,備份系統(tǒng)分區(qū)中固件的版本與主系統(tǒng)分區(qū)中固件的版本相同,到步驟S210。
S210、利用上述步驟S201下載的固件升級差分包對備份系統(tǒng)分區(qū)中固件的版本執(zhí)行差分升級操作,在差分升級操作成功完成后,備份系統(tǒng)分區(qū)中固件的版本高于主系統(tǒng)分區(qū)中固件的版本,到步驟S211。
另外,需要說明的是,本實施例針對備份系統(tǒng)分區(qū)中固件的版本進行升級后,還可以執(zhí)行保留升級印記以及清理相應(yīng)的固件升級包(如刪除在將備份系統(tǒng)分區(qū)中固件的版本升級到主系統(tǒng)分區(qū)中固件的版本之前,備份系統(tǒng)分區(qū)中固件的版本對應(yīng)的固件升級包)等操作,以避免相應(yīng)的固件升級包占用磁盤空間的現(xiàn)象。
S211、將P3分區(qū)配置為主系統(tǒng)分區(qū),如將啟動分區(qū)(即P1分區(qū),如Boot分區(qū))中的系統(tǒng)分區(qū)(如Root分區(qū))信息配置為P3分區(qū)信息。在終端設(shè)備開機啟動(如用戶在第二天早晨開啟終端設(shè)備)后,到步驟S212。
S212、終端設(shè)備根據(jù)P1分區(qū)中的系統(tǒng)分區(qū)信息(P3分區(qū)信息)啟動相應(yīng)的系統(tǒng)分區(qū)(如P3分區(qū))中的系統(tǒng)文件,從而使終端設(shè)備基于最新版本的固件運行。此時,P2分區(qū)成為備份系統(tǒng)分區(qū)。
本實施例中的步驟S201至步驟S211是在無需用戶干預(yù)的情況下自行執(zhí)行,且步驟S212所執(zhí)行的使最新版本的固件生效的操作完全是在用戶按照正常加電開啟終端設(shè)備時執(zhí)行的,從而本實施例可以使FOTA完全在靜默的情況下實現(xiàn),有效避免了固件升級過程中由于需要重新啟動而中斷用戶操作的現(xiàn)象,從而避免了FOTA由于需要重新啟動而打擾用戶操作進而影響用戶體驗的現(xiàn)象。
下面為本發(fā)明的用于空中固件升級的裝置的一個實施例。
本實施例的用于空中固件升級的裝置通常設(shè)置于終端設(shè)備中,尤其適合設(shè)置于智能移動電話、車載電子系統(tǒng)以及平板電腦等移動終端設(shè)備中。
本實施例的用于空中固件升級的裝置的結(jié)構(gòu)如圖4所示,且本實施例的用于空中固件升級的裝置主要包括:下載模塊400、固件升級模塊410以及分區(qū)切換模塊420;其中的固件升級模塊410包括:第一判斷子模塊411、第二判斷子模塊412、固件升級子模塊413、同步子模塊414以及第三判斷子模塊415(如圖5所示)。另外,本實施例的用于空中固件升級的裝置還可以可選的包括:清理模塊430以及備份分區(qū)管理模塊440。下面對本實施例的裝置所包括各模塊分別進行詳細說明。
下載模塊400主要用于下載用于升級終端設(shè)備當前使用的固件版本的固件升級包。
作為示例,下載模塊400所下載的固件升級包可以為用于固件增量升級的固件升級包,即固件升級差分包;且下載模塊400所下載的固件升級包也可以為用于固件全量升級的固件升級包,即固件升級整包。
作為示例,下載模塊400可以在檢測到FOTA服務(wù)器中存在新版本的固件升級包的情況下,執(zhí)行下載操作,以獲得該新版本的固件升級包;一個具體的例子,下載模塊400向FOTA服務(wù)器發(fā)起固件版本查詢請求,且該查詢請求中可以承載有終端設(shè)備制造商和終端設(shè)備當前使用的固件版本信息等輪廓信息,F(xiàn)OTA服務(wù)器根據(jù)其接收到的查詢請求中的終端設(shè)備輪廓信息確定該終端設(shè)備所對應(yīng)的新版本的固件升級包,并向終端設(shè)備發(fā)送包含有該新版本的固件升級包的URL的查詢響應(yīng),下載模塊400根據(jù)查詢響應(yīng)中的URL從FOTA服務(wù)器處下載新版本的固件升級包,并將成功下載的新版本的固件升級包存儲在其Cache分區(qū)的相應(yīng)目錄下,當然,下載模塊400也可以將成功下載的新版本的固件升級包存儲在終端設(shè)備的Data分區(qū)中。
作為示例,下載模塊400在成功獲取到新版本的固件升級包之后,可以利用終端設(shè)備本地存儲的數(shù)字簽名證書對該新版本的固件升級包進行數(shù)字簽名驗證,如果本次驗證通過,則下載模塊400允許固件升級模塊410針對該新版本的固件升級包執(zhí)行安裝操作,而如果本次驗證失敗,則下載模塊400不允許固件升級模塊410針對該新版本的固件升級包執(zhí)行安裝操作。
另外,下載模塊400還可以在本次驗證失敗的情況下,通知清理模塊430對該新版本的固件升級包執(zhí)行清理操作,如清理模塊430刪除該新版本的固件升級包等。
固件升級模塊410主要用于根據(jù)上述下載的固件升級包在終端設(shè)備的備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作。
作為示例,在下載模塊400成功下載了用于升級終端設(shè)備當前使用的固件版本的固件升級包的情況下,終端設(shè)備中的備份系統(tǒng)分區(qū)會存在多種不同的情況,例如備份系統(tǒng)分區(qū)中并不存在系統(tǒng)鏡像文件(即備份系統(tǒng)分區(qū)中不存在固件,或者說備份系統(tǒng)分區(qū)中并不存在系統(tǒng)文件);再例如備份系統(tǒng)分區(qū)中存在系統(tǒng)鏡像文件(即備份系統(tǒng)分區(qū)中存在固件,或者說備份系統(tǒng)分區(qū)中存在系統(tǒng)文件),且備份系統(tǒng)分區(qū)中固件的版本與當前系統(tǒng)分區(qū)中固件的版本相同;再例如備份系統(tǒng)分區(qū)中存在系統(tǒng)鏡像文件,且備份系統(tǒng)分區(qū)中固件的版本與當前系統(tǒng)分區(qū)中固件的版本不相同。固件升級模塊410應(yīng)針對不同情況的備份系統(tǒng)分區(qū)執(zhí)行相應(yīng)的固件升級操作,以使備份系統(tǒng)分區(qū)中的固件的版本升級到上述下載的固件升級包的版本,下面例舉四個具體的例子對固件升級模塊410根據(jù)上述下載的固件升級包在終端設(shè)備的備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作進行舉例說明。
第一個例子,第一判斷子模塊411判斷備份系統(tǒng)分區(qū)中是否存在系統(tǒng)文件(也可以稱為固件文件或者系統(tǒng)鏡像文件等),如果第一判斷子模塊411的本次判斷結(jié)果為備份系統(tǒng)分區(qū)中存在系統(tǒng)文件,則第二判斷子模塊412判斷備份系統(tǒng)分區(qū)中固件的版本是否與當前系統(tǒng)分區(qū)中固件的版本相同,如果第二判斷子模塊412本次判斷結(jié)果為備份系統(tǒng)分區(qū)中固件的版本與當前系統(tǒng)分區(qū)中固件的版本相同,則固件升級子模塊413直接根據(jù)上述下載且驗證通過的固件升級包在終端設(shè)備的備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作,以使備份系統(tǒng)分區(qū)中固件的版本升級為上述下載的固件升級包的版本。
第二個例子,第一判斷子模塊411判斷備份系統(tǒng)分區(qū)中是否存在系統(tǒng)文件,如果第一判斷子模塊411的本次判斷結(jié)果為備份系統(tǒng)分區(qū)中存在系統(tǒng)文件,則第二判斷子模塊412判斷備份系統(tǒng)分區(qū)中固件的版本是否與當前系統(tǒng)分區(qū)中固件的版本相同,如果第二判斷子模塊412的本次判斷結(jié)果為備份系統(tǒng)分區(qū)中固件的版本與當前系統(tǒng)分區(qū)中固件的版本不相同,則第三判斷子模塊415判斷終端設(shè)備本地(如緩存分區(qū)或者數(shù)據(jù)區(qū)分中)是否存儲有用于將備份系統(tǒng)分區(qū)中固件的版本升級到當前系統(tǒng)分區(qū)中固件的版本的固件升級包(下述將其簡稱為次新固件升級包),如果第三判斷子模塊415的判斷結(jié)果為終端設(shè)備本地(如緩存分區(qū)或者數(shù)據(jù)區(qū)分中)存儲有次新固件升級包,則固件升級子模塊413根據(jù)該次新固件升級包在終端設(shè)備的備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作,以使備份系統(tǒng)分區(qū)中固件的版本升級為上述下載的固件升級包的版本,然后,固件升級子模塊413再根據(jù)上述下載且驗證通過的固件升級包在終端設(shè)備的備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作,以使備份系統(tǒng)分區(qū)中固件的版本升級為上述下載的固件升級包的版本。
第三個例子,第一判斷子模塊411判斷備份系統(tǒng)分區(qū)中是否存在系統(tǒng)文件,如果第一判斷子模塊411的本次判斷結(jié)果為備份系統(tǒng)分區(qū)中存在系統(tǒng)文件,則第二判斷子模塊412判斷備份系統(tǒng)分區(qū)中固件的版本是否與當前系統(tǒng)分區(qū)中固件的版本相同,如果第二判斷子模塊412的本次判斷結(jié)果為備份系統(tǒng)分區(qū)中固件的版本與當前系統(tǒng)分區(qū)中固件的版本不相同,則第三判斷子模塊415判斷終端設(shè)備本地(如緩存分區(qū)或者數(shù)據(jù)區(qū)分中)是否存儲有次新固件升級包,如果第三判斷子模塊415的判斷結(jié)果為終端設(shè)備本地(如緩存分區(qū)或者數(shù)據(jù)區(qū)分中)未存儲有次新固件升級包,則同步子模塊414根據(jù)當前系統(tǒng)分區(qū)中的系統(tǒng)文件對備份系統(tǒng)分區(qū)執(zhí)行同步操作,以使備份系統(tǒng)分區(qū)中存在系統(tǒng)文件,且使備份系統(tǒng)分區(qū)中固件的版本與當前系統(tǒng)分區(qū)中固件的版本相同,然后,固件升級子模塊413再根據(jù)上述下載且驗證通過的固件升級包在終端設(shè)備的備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作,以使備份系統(tǒng)分區(qū)中固件的版本升級為上述下載的固件升級包的版本。
第四個例子,第一判斷子模塊411判斷備份系統(tǒng)分區(qū)中是否存在系統(tǒng)文件,如果第一判斷子模塊411的本次判斷結(jié)果為備份系統(tǒng)分區(qū)中不存在系統(tǒng)文件,則同步子模塊414根據(jù)當前系統(tǒng)分區(qū)中的系統(tǒng)文件對備份系統(tǒng)分區(qū)執(zhí)行同步操作,以使備份系統(tǒng)分區(qū)中存在系統(tǒng)文件,且使備份系統(tǒng)分區(qū)中固件的版本與當前系統(tǒng)分區(qū)中固件的版本相同,然后,固件升級子模塊413再根據(jù)上述下載且驗證通過的固件升級包在終端設(shè)備的備份系統(tǒng)分區(qū)中執(zhí)行固件升級操作,以使備份系統(tǒng)分區(qū)中固件的版本升級為上述下載的固件升級包的版本。
需要特別說明的是,清理模塊430可以在備份系統(tǒng)分區(qū)中固件的版本升級為上述下載的固件升級包的版本的情況下,對終端設(shè)備中存儲的除了上述下載的固件升級包以及次新固件升級包之外的其他舊版本的各固件升級包進行清理操作,如清理模塊430刪除除了上述下載的固件升級包以及次新固件升級包之外的其他舊版本的各固件升級包。本實施例所保留的次新固件升級包可以用于將終端設(shè)備當前使用的最新版本的固件回退到該次新固件升級包的版本。
另外需要特別說明的是,在終端設(shè)備正常啟動的情況下,雖然終端設(shè)備中的備份系統(tǒng)分區(qū)也會存在多種不同的情況,然而,固件升級模塊410并不會針對不同的情況執(zhí)行不同的固件升級操作,只有在下載了新版本的固件升級包的情況下,固件升級模塊410才會執(zhí)行相應(yīng)的固件升級操作,如在終端設(shè)備正常開機過程中,如果備份系統(tǒng)分區(qū)中固件的版本低于主系統(tǒng)分區(qū)中固件的版本,固件升級模塊410應(yīng)保持備份系統(tǒng)分區(qū)中固件的版本,以便于能夠?qū)⒔K端設(shè)備當前使用的固件版本回退到低版本的固件。
分區(qū)切換模塊420主要用于在終端設(shè)備的系統(tǒng)分區(qū)配置信息中將備份系統(tǒng)分區(qū)配置為主系統(tǒng)分區(qū),以使終端設(shè)備在下一次啟動過程中,根據(jù)系統(tǒng)分區(qū)配置信息確定出基于固件升級后的系統(tǒng)分區(qū)執(zhí)行固件啟動操作。
作為示例,分區(qū)切換模塊420可以將啟動分區(qū)中的系統(tǒng)分區(qū)信息設(shè)置為備份系統(tǒng)分區(qū)信息,這樣,在終端設(shè)備的后續(xù)使用過程中,如果終端設(shè)備由于再次開機而啟動(如用戶在當天晚上關(guān)閉終端設(shè)備并在第二天早上開機啟動終端設(shè)備),則終端設(shè)備會根據(jù)啟動分區(qū)中的系統(tǒng)分區(qū)信息將上述備份系統(tǒng)分區(qū)作為當前主系統(tǒng)分區(qū),并按照主系統(tǒng)分區(qū)中的固件執(zhí)行后續(xù)的啟動操作,從而實現(xiàn)了備份系統(tǒng)分區(qū)與主系統(tǒng)分區(qū)的兵乓切換。
備份分區(qū)管理模塊440用于在終端設(shè)備首次啟動過程中,在根據(jù)駐留在分區(qū)表中的分區(qū)信息確定出終端設(shè)備當前存在備份系統(tǒng)分區(qū)的情況下,格式化備份系統(tǒng)分區(qū),并針對備份系統(tǒng)分區(qū)執(zhí)行掛載操作;備份分區(qū)管理模塊440還用于在終端設(shè)備啟動過程中或者在終端設(shè)備成功下載用于升級其當前使用的固件版本的固件升級包后,在確定出終端設(shè)備當前不存在備份系統(tǒng)分區(qū)的情況下,創(chuàng)建并格式化備份系統(tǒng)分區(qū),并針對備份系統(tǒng)分區(qū)執(zhí)行掛載操作。
作為示例,備份分區(qū)管理模塊440在終端設(shè)備中設(shè)置備份系統(tǒng)分區(qū)的一個具體過程為:首先,在終端設(shè)備的分區(qū)表中初始駐留備份系統(tǒng)分區(qū)的分區(qū)信息,如在終端設(shè)備的出廠過程中,第一次燒錄終端設(shè)備的分區(qū)表時,備份分區(qū)管理模塊440可以將主系統(tǒng)分區(qū)的分區(qū)信息以及備份系統(tǒng)分區(qū)的分區(qū)信息均燒錄在分區(qū)表中,此時,分區(qū)表中的分區(qū)信息通常包括:啟動分區(qū)(如Boot分區(qū))的分區(qū)信息、當前系統(tǒng)分區(qū)(如主Root分區(qū))的分區(qū)信息以及備份系統(tǒng)分區(qū)(如備份Root分區(qū))的分區(qū)信息;之后,在終端設(shè)備第一次啟動(如用戶購買終端設(shè)備并首次開機)的過程中,備份分區(qū)管理模塊440可以根據(jù)該分區(qū)表中的備份系統(tǒng)分區(qū)的分區(qū)信息對備份系統(tǒng)分區(qū)進行格式化(如將備份系統(tǒng)分區(qū)格式化為Root分區(qū)格式的分區(qū)),并針對該備份系統(tǒng)分區(qū)執(zhí)行掛載操作,如備份分區(qū)管理模塊440將備份系統(tǒng)分區(qū)掛載在相應(yīng)的目錄下等,以使備份系統(tǒng)分區(qū)能夠正常使用,即備份系統(tǒng)分區(qū)能夠被讀寫,從而備份分區(qū)管理模塊440成功設(shè)置備份系統(tǒng)分區(qū)。另外,在終端設(shè)備第一次啟動過程中,備份分區(qū)管理模塊440還可以創(chuàng)建數(shù)據(jù)分區(qū)(如Home分區(qū)),并在分區(qū)表中設(shè)置數(shù)據(jù)分區(qū)的分區(qū)信息,備份分區(qū)管理模塊440對數(shù)據(jù)分區(qū)進行格式化以及掛載處理,以使數(shù)據(jù)分區(qū)能夠正常使用。
作為示例,備份分區(qū)管理模塊440在終端設(shè)備中設(shè)置備份系統(tǒng)分區(qū)的另一個具體過程為:首先,終端設(shè)備的分區(qū)表中并未初始駐留備份系統(tǒng)分區(qū)的分區(qū)信息,如在終端設(shè)備的出廠過程中,在第一次燒錄終端設(shè)備的分區(qū)表時,備份分區(qū)管理模塊440并沒有將備份系統(tǒng)分區(qū)的分區(qū)信息燒錄在分區(qū)表中,此時,分區(qū)表中的分區(qū)信息通常包括:啟動分區(qū)(如Boot分區(qū))的分區(qū)信息以及當前系統(tǒng)分區(qū)(如主Root分區(qū))的分區(qū)信息;之后,在終端設(shè)備第一次啟動(如用戶購買終端設(shè)備并首次開機)或者非首次啟動過程中,或者在終端設(shè)備成功下載用于升級其當前使用的固件版本的固件升級包之后,備份分區(qū)管理模塊440在確定出終端設(shè)備當前不存在備份系統(tǒng)分區(qū)(如根據(jù)分區(qū)表中的分區(qū)信息確定出終端設(shè)備當前不存在備份系統(tǒng)分區(qū))的情況下,針對當前系統(tǒng)分區(qū)創(chuàng)建備份系統(tǒng)分區(qū)(如創(chuàng)建備份Root分區(qū)),并在分區(qū)表中設(shè)置備份系統(tǒng)分區(qū)的分區(qū)信息,對備份系統(tǒng)分區(qū)進行格式化(如將備份系統(tǒng)分區(qū)格式化為Root分區(qū)格式的分區(qū)),然后,備份分區(qū)管理模塊440針對該備份系統(tǒng)分區(qū)執(zhí)行掛載操作,如備份分區(qū)管理模塊440將備份系統(tǒng)分區(qū)掛載在相應(yīng)的目錄下等,以使備份系統(tǒng)分區(qū)能夠正常使用,即備份系統(tǒng)分區(qū)能夠被讀寫,從而成功設(shè)置備份系統(tǒng)分區(qū)。另外,在終端設(shè)備第一次啟動過程中,備份分區(qū)管理模塊440還可以創(chuàng)建數(shù)據(jù)分區(qū)(如Home分區(qū)),并在分區(qū)表中設(shè)置數(shù)據(jù)分區(qū)的分區(qū)信息,對數(shù)據(jù)分區(qū)進行格式化以及掛載處理,以使數(shù)據(jù)分區(qū)能夠正常使用。
上述備份分區(qū)管理模塊440設(shè)置備份系統(tǒng)分區(qū)的兩個具體過程僅為舉例說明,本實施例不限制備份分區(qū)管理模塊440在終端設(shè)備中設(shè)置備份系統(tǒng)分區(qū)的具體實現(xiàn)方式。
在一個實施例中,本發(fā)明提供一種用于空中固件升級的智能設(shè)備,該智能設(shè)備(intelligent device)是指任何一種具有計算處理能力的設(shè)備、器械或者機器;具體地,所述智能設(shè)備包括智能車輛,智能車鑰匙,智能移動終端如手機、pad等,智能家居如家用智能電視、智能冰箱,智能可穿戴設(shè)備如智能手表。上述智能設(shè)備包括上述用于空中固件升級的裝置;并可以使用上述用于空中固件升級的方法進行升級。
在一個實施例中,本發(fā)明提供一種智能車輛,圖6示出本發(fā)明一個實施例的智能車輛的結(jié)構(gòu)框圖,如圖6所示,該車輛可以包括:中控模塊、儀表盤610、行車記錄儀611、HUD(Head Up Display,平視顯示器)抬頭顯示器612、智能車載信息娛樂系統(tǒng)613、智能駕駛模塊613。
儀表盤610具有12.3寸LCD顯示設(shè)備,該儀表盤可以采用TI的J6CPU;儀表盤的操作系統(tǒng)可以基于QNX嵌入式系統(tǒng),儀表盤可以用于顯示車輛狀態(tài)、地圖、車輛導(dǎo)航信息、車輛播放音樂等,所述車輛狀態(tài)信息包括速度、轉(zhuǎn)速、電量、胎壓、車輛駐車、檔位等。HUD抬頭顯示器612可以顯示GPS導(dǎo)航信息、導(dǎo)航路徑信息、時間信息等。
在一個實施例中,智能駕駛模塊613可以用于處理與智能駕駛相關(guān)的操作,智能駕駛模塊613可以包括高級輔助駕駛系統(tǒng)(Advanced Driver Assistance Systems,ADAS)、主動安全系統(tǒng)、注意力輔助系統(tǒng)(Attention Assist System,AAS)、疲勞警告系統(tǒng)(Fatigue Warning System,F(xiàn)WS)、車輛智能聲學報警系統(tǒng)(Acoustic Vehicle Alerting System,AVAS)等。車輛可以結(jié)合ADAS系統(tǒng)等進行智能駕駛,該智能駕駛可以是完全無人的駕駛,也可以是駕駛員進行駕駛控制的輔助并線、車道偏移等高級輔助駕駛功能。
中控裝置可以由多個模塊組成,主要可以包括:主板601;SATA(Serial Advanced Technology Attachment,串行高級技術(shù)附件)模塊602,連接到如SSD603的存儲設(shè)備,可以用來存儲數(shù)據(jù)信息;AM(Amplitude Modulation,調(diào)幅)/FM(Frequency Modulation,調(diào)頻)模塊604,為車輛提供收音機的功能;功放模塊605,用于聲音處理;WIFI(Wireless-Fidelity,無線保真)/Bluetooth模塊606,為車輛提供WIFI/Bluetooth的服務(wù);LTE(Long Term Evolution,長期演進)通信模塊607,為車輛提供與電信運營商的通信功能;電源模塊608,電源模塊608為該中控裝置提供電源;Switch轉(zhuǎn)接模塊609,該Switch轉(zhuǎn)接模塊609可以作為一種可擴展的接口連接多種傳感器,例如如果需要添加夜視功能傳感器、PM2.5功能傳感器,可以通過該Switch轉(zhuǎn)接模塊609連接到中控裝置的主板,以便中控裝置的處理器進行數(shù)據(jù)處理,并將數(shù)據(jù)傳輸給中控顯示器。
在一個實施例中,該車輛可以通過上述空中固件升級的方法升級車輛的智能車載信息娛樂系統(tǒng)613、智能行車記錄儀611、智能儀表盤610、智能HUD抬頭顯示器。
在一個實施例中,該車輛還包括環(huán)視攝像頭、ADAS攝像頭、夜視攝像頭、毫米波雷達、超聲波雷達、ESR雷達等傳感器。車輛硬件在生產(chǎn)后即掛載上述智能駕駛相關(guān)硬件,后期可以通過OTA空中升級方法使得上述硬件完善自動駕駛相關(guān)功能。
在此提供的算法以及顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如本發(fā)明的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在本發(fā)明的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的用于空中固件升級的方法及裝置中的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者系統(tǒng)程序(如計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)的網(wǎng)站上下載得到,也可以在載體信號上提供,或者以任何其他形式提供。
應(yīng)該注意的是,上述實施例是對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或者步驟等。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干系統(tǒng)的單元權(quán)利要求中,這些系統(tǒng)中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。