TWI493457B - 具有用以修改運作韌體之套裝韌體的計算裝置、用以管理該計算裝置的方法以及用以執行該方法之電腦可讀取的媒體 - Google Patents
具有用以修改運作韌體之套裝韌體的計算裝置、用以管理該計算裝置的方法以及用以執行該方法之電腦可讀取的媒體 Download PDFInfo
- Publication number
- TWI493457B TWI493457B TW102106151A TW102106151A TWI493457B TW I493457 B TWI493457 B TW I493457B TW 102106151 A TW102106151 A TW 102106151A TW 102106151 A TW102106151 A TW 102106151A TW I493457 B TWI493457 B TW I493457B
- Authority
- TW
- Taiwan
- Prior art keywords
- firmware
- computing device
- operational
- controller
- component
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/031—Protect user input by software means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/62—Uninstallation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Description
本發明係有關於套裝韌體,特別是用以修改運作韌體之套裝韌體。
當更新計算裝置上的韌體時,使用者起初可以存取第一韌體檔案,然後再接著更新計算裝置的第一韌體。一旦已更新了第一韌體,則使用者可以對計算裝置之每個要更新的額外韌體重複此過程。於某些情形,韌體可能安裝得不正確,並且使用者可能不會注意到安裝失敗。結果,計算裝置可以變得不穩定或無法使用。附帶而言,使用者可能必須先辨識先前所用的韌體再接著安裝先前所用的韌體,導致使用者有費時和不愉快的經驗。
在一實施例中揭示一種計算裝置,其包括:非揮發性儲存構件,其具有第一部分和第二部分;其中第一部分包括用於計算裝置之構件的運作韌體,並且第二部分包括套裝韌體以修改運作韌體;以及控制器,其從套裝韌體來安裝韌體,並且在從套裝韌體接著安裝後續的韌體之前先判定該韌體是否成功的安裝;其中如果來自套裝韌體的韌體安裝失敗,則控制器解除安裝套裝韌體以恢復運作韌體。
在另一實施例中揭示一種管理計算裝置的方法,其包括:從非揮發性儲存構件的第二部分檢索找出套裝韌體;其中非揮發性儲存構件的第一部分包括用於計算裝置之構件的運作韌體;遵循第一次序而安裝套裝韌體以修改運作韌體,並且判定運作韌體是否成功的修改;以及如果運作韌體不是成功的修改,則遵循相反於第一次序的第二次序來解除安裝套裝韌體以恢復運作韌體。
在又另一實施例中揭示一種電腦可讀取的媒體,其包括的指令如果執行的話則使控制器:從非揮發性儲存構件的第二部分檢索找出套裝韌體,其中非揮發性儲存構件的第一部分包括用於計算裝置之構件的運作韌體;遵循第一次序而從套裝韌體安裝每個韌體以修改運作韌體;在安裝每個韌體之後,判定每個對應的運作韌體是否是成功的修改;以及如果任何運作韌體不是成功的修改,則遵循相反於第一次序的第二次序而解除安裝套裝韌體以恢復運作韌體。
100‧‧‧計算裝置
120‧‧‧控制器
130‧‧‧構件
140‧‧‧非揮發性儲存構件
150‧‧‧第一部分
155‧‧‧第二部分
160‧‧‧運作韌體
165‧‧‧套裝韌體
180‧‧‧通訊通道
200‧‧‧計算裝置
205‧‧‧第二計算裝置
210‧‧‧構件應用軟體
220‧‧‧控制器
230‧‧‧構件
240‧‧‧非揮發性儲存構件
250‧‧‧第一部分
255‧‧‧第二部分
260‧‧‧運作韌體
265‧‧‧套裝韌體
270‧‧‧通訊構件
280‧‧‧安全構件
290‧‧‧主韌體
295‧‧‧狀態紀錄
310‧‧‧構件應用軟體
320‧‧‧控制器
330‧‧‧構件
340‧‧‧非揮發性儲存構件
350‧‧‧第一部分
355‧‧‧第二部分
360‧‧‧運作韌體
365‧‧‧套裝韌體
380‧‧‧安全構件
390‧‧‧主韌體
395‧‧‧狀態紀錄
410‧‧‧構件應用軟體
420‧‧‧控制器
430‧‧‧構件
440‧‧‧非揮發性儲存構件
450‧‧‧第一部分
455‧‧‧第二部分
460‧‧‧運作韌體
465‧‧‧套裝韌體
495‧‧‧狀態紀錄
500~520‧‧‧管理計算裝置的方法步驟
600~695‧‧‧管理計算裝置的方法步驟
從下面配合附圖所做的詳細描述,揭示之具體態樣的多樣特色和優點將變得明顯,該等圖式藉由舉例而一起示範揭示之具體態樣的特色。
圖1示範根據範例之具有非揮發性儲存構件的計算裝置。
圖2示範根據範例之接收套裝韌體的計算裝置。
圖3示範根據範例之計算裝置的方塊圖,其以套裝韌體來修改運作韌體。
圖4示範根據範例之計算裝置的方塊圖,其解除安裝套裝韌體以恢復
運作韌體。
圖5是流程圖,其示範根據範例之管理計算裝置的方法。
圖6是流程圖,其示範根據另一範例之管理計算裝置的方法。
計算裝置可以包括非揮發性儲存構件,其具有第一部分和第二部分,而將對應於計算裝置之構件的運作韌體與用於修改運作韌體的套裝韌體加以分開。計算裝置遵循第一次序而從套裝韌體來安裝每個韌體,並且在從套裝韌體接著安裝後續韌體之前先判定每個韌體是否成功的安裝。計算裝置可以保存每個韌體安裝的狀態紀錄以辨識成功和/或不成功的安裝。
如果來自套裝韌體的每個韌體是成功的安裝,則可以成功的修改計算裝置的運作韌體。如果計算裝置偵測到不成功的韌體安裝,則計算裝置可以停止從套裝韌體安裝任何額外的韌體,並且接著遵循第二方向(相反於第一方向)而解除安裝來自套裝韌體的每個韌體以恢復運作韌體。來自套裝韌體之每個先前安裝的韌體可以一個接一個的解除安裝以反轉和恢復計算裝置的運作韌體。解除安裝來自套裝韌體的韌體可以包括:計算裝置重新安裝用於對應構件的主韌體或最後已知的穩定韌體,以恢復計算裝置成為最後已知的穩定狀態。
圖1示範根據範例之具有非揮發性儲存構件140的計算裝置100。計算裝置100可以是膝上型電腦、筆記型電腦、平板電腦、小筆電、單體主板系統、桌上型電腦、工作站和/或伺服器。於另一具體態樣,計算裝置100可以是行動通訊裝置、個人數位助理(personal digital assistant,PDA)
和/或電子(electronic,E)閱讀器和/或具有非揮發性儲存構件140的任何額外計算裝置。
如圖1所示範,計算裝置100包括控制器120、非揮發性儲存構件140、至少一構件130、供計算裝置100和/或計算裝置100之一或更多個構件彼此通訊的通訊通道180。於一具體態樣,計算裝置100額外包括構件應用軟體,其儲存在耦合於計算裝置100之非暫態的電腦可讀取的記憶體上。構件應用軟體是可以配合控制器120來利用的應用軟體以管理計算裝置100。
非揮發性儲存構件140可以包括快閃記憶體、儲存驅動器(例如硬碟機或光碟機)和/或任何額外的非揮發性儲存裝置,其可以包括第一部分150和第二部分155。第一部分150是非揮發性儲存構件140的空間或區域,其包括用於計算裝置100之構件130的運作韌體160。為了本案之目的,運作韌體160包括驅動程式和/或軟體,其係由計算裝置100所利用以管理和操作構件130。於一具體態樣,運作韌體160也包括驅動程式和/或軟體,其係由計算裝置200的嵌入式作業系統所利用。構件130可以包括視訊、音訊、通訊等構件和/或計算裝置100所利用的任何額外構件。
第二部分155包括非揮發性儲存構件140的空間或區域,其與第一部分150分開並且包括套裝韌體165。套裝韌體165包括可安裝的韌體以用於計算裝置100的構件130。於一具體態樣,套裝韌體165包括可安裝的韌體以用於計算裝置100的每個構件130。藉由從套裝韌體165安裝韌體,則可以修改計算裝置100之對應的運作韌體160。套裝韌體165可以由計算裝置100從耦合於計算裝置100的第二計算裝置來接收。
控制器120和/或構件應用軟體可以發起請求而要以套裝韌體165來修改運作韌體160。控制器120和/或構件應用軟體可以從第二部分155檢索找出套裝韌體165,並且接著遵循第一方向而從套裝韌體165依序安裝每個韌體。舉例而言,可以安裝第一韌體,接著是安裝任何後續的韌體,直到安裝了最後的韌體為止。
在從套裝韌體165安裝了每個韌體之後,控制器120和/或構件應用軟體可以在接著安裝後續韌體之前先判定韌體是否成功的安裝。當判定韌體是否成功的安裝時,控制器120和/或構件應用軟體可以判定是否成功的修改了對應的運作韌體160。於一具體態樣,控制器120和/或構件應用軟體可以詢問正在使用修改過之運作韌體165的構件130。如果接收到回應,則對應的運作韌體160是成功的修改並且韌體是成功的安裝。於另一具體態樣,控制器120和/或構件應用軟體可以在構件130上跑診斷測試以判定構件130是否以修改過的運作韌體165而正確的操作。
如果構件130沒有回應於詢問或者診斷測試失敗,則控制器120和/或構件應用軟體可以判定對應的運作韌體160並未成功的修改並且韌體並未成功的安裝。如果來自套裝韌體165的韌體安裝失敗,則控制器120和/或構件應用軟體可以接著遵循第二方向(相反於第一方向)而解除安裝套裝韌體165以恢復計算裝置100的運作韌體160。
控制器120和/或構件應用軟體可以停止從套裝韌體165安裝任何額外的韌體,並且接著依序反轉先前來自套裝韌體165的韌體安裝。當反轉先前的韌體安裝時,控制器120和/或構件應用軟體辨識出最後安裝的韌體以及從套裝韌體165所安裝的每個先前韌體。控制器120和/或構
件應用軟體然後可以接著解除安裝最後安裝的韌體,接著是解除安裝從套裝韌體165所安裝的每個先前韌體,直到來自套裝韌體165的每個韌體都解除安裝為止。
當解除安裝來自套裝韌體165的韌體時,控制器120和/或構件應用軟體可以重新安裝對應構件130的主韌體。主韌體可以儲存在非揮發性儲存構件140上。主韌體對應於計算裝置100之構件130的備份韌體。對於從套裝韌體165所解除安裝的每個韌體而言,控制器120和/或構件應用軟體可以從主韌體重新安裝驅動程式和/或軟體以用於對應的構件130。於一具體態樣,控制器120和/或構件應用軟體可以重新安裝計算裝置100之每一構件130的主韌體。
圖2示範根據範例之接收套裝韌體265的計算裝置200。計算裝置200可以從第二計算裝置205接收套裝韌體265。類似於計算裝置200,第二計算裝置205可以是膝上型電腦、筆記型電腦、平板電腦、小筆電、單體主板系統、桌上型電腦、工作站、伺服器、可攜式計算裝置和/或任何額外的計算裝置,其可以傳送套裝韌體265到計算裝置200。
如圖2所示,套裝韌體265可以包括可安裝的韌體以修改計算裝置200的運作韌體260。套裝韌體265可以包括用於計算裝置200之一或更多個構件的韌體。於一具體態樣,套裝韌體265也包括用於計算裝置200之嵌入式作業系統的韌體。韌體可以包括用於計算裝置200之對應構件和/或嵌入式作業系統的驅動程式和/或軟體。
如上所注意的,計算裝置200的構件可以包括通訊構件270、視訊構件、音訊構件和/或安全構件280。於其他具體態樣,構件可
以是計算裝置200之任何額外的硬體或軟體構件,其可以具有對應的運作韌體260。計算裝置200可以用通訊構件270而從第二計算裝置205接收套裝韌體265成為檔案或資料封包。通訊構件270是計算裝置200的硬體構件以在計算裝置200和第二計算裝置205之間接收和/或傳送資料。於一具體態樣,通訊構件270可以包括網路介面構件、無線電裝置、藍牙裝置和/或紅外線裝置。
回應於計算裝置200接收到套裝韌體265,則安全構件280可以驗證套裝韌體265。安全構件280是計算裝置200的硬體和/或軟體構件,例如信任的平臺模組和/或熄燈(lights out)管理模組,其可以驗證套裝韌體265。安全構件280可以藉由確認套裝韌體265的簽章和/或藉由確認第二計算裝置205的身分而驗證套裝韌體265。於一具體態樣,安全構件280可以包括套裝韌體265之授權簽章和/或第二計算裝置205之授權身分的白清單。安全構件280當在判定套裝韌體265是否經過驗證時可以存取白清單。
如果套裝韌體265被成功的驗證,則套裝韌體265可以儲存在非揮發性儲存構件240的第二部分255上。如上所注意的,非揮發性儲存構件240是硬體儲存裝置,其包括第一部分250以包括用於計算裝置200之構件的運作韌體260,以及包括第二部分255以儲存套裝韌體265。非揮發性儲存構件240可以包括快閃記憶體、硬碟機、光碟機和/或包括非揮發性記憶體之任何額外的硬體儲存裝置。
於一具體態樣,如圖2所示,第二部分255額外包括用於計算裝置200之構件的狀態紀錄295和主韌體290。為了本案之目的,狀態紀錄295可以是檔案、清單和/或表格,其保存了計算裝置200之每個對應運
作韌體260的狀態。於一具體態樣,狀態紀錄295可以是可擴充標示語言(extensible markup language,XML)檔或結構化查詢語言(structured query language data,SQL)檔。主韌體290對應於用於計算裝置200之構件的備份韌體。於一具體態樣,主韌體290包括用於計算裝置200之構件的最後已知之穩定韌體。於另一具體態樣,主韌體290包括計算裝置200之所有運作韌體260的複本。
於一具體態樣,安全構件280可以隱藏第二部分255和在第二部分255上的內容以避開控制器220和/或構件應用軟體210。當隱藏第二部分255時,安全構件280可以把用於控制和管理第二部分255的處理器、控制器和/或韌體禁用,使得控制器220和/或構件應用軟體210看不到第二部分255。結果,套裝韌體265、主韌體290、狀態紀錄295和/或任何額外的內容可以免於惡意程式或未授權使用者而受到保護。安全構件280可以持續隱藏第二部分255以避開控制器220和/或構件應用軟體210,直到控制器220和/或構件應用軟體210發起韌體更新過程為止。
為了本案之目的,構件應用軟體210可以是嵌入到計算裝置200之一或更多個構件的韌體。於另一具體態樣,構件應用軟體210可以是可存取自計算裝置之非揮發性電腦可讀取的記憶體之應用軟體。電腦可讀取的記憶體是有形設備,其包含、儲存、通訊或輸送應用軟體以供裝置使用或關於裝置而為之。於一具體態樣,電腦可讀取的記憶體是硬碟、光碟、快閃碟、網路驅動器或耦合於計算裝置之任何其他形式的有形設備。
圖3示範根據範例之計算裝置的方塊圖,其以套裝韌體365來修改運作韌體360。於一具體態樣,控制器320和/或構件應用軟體310
可以發起請求以啟動韌體更新過程。該請求可以辨識出關聯於套裝韌體365的版本或序號。安全構件380可以藉由判定控制器320和/或構件應用軟體310所列的版本或序號是否符合包括在非揮發性儲存構件340的第二部分355裡之套裝韌體365的資訊而驗證該請求。於一具體態樣,安全構件380當在判定是否同意存取套裝韌體365時額外驗證套裝韌體365。
如果該請求和套裝韌體365驗證過了,則安全構件380可以允許存取套裝韌體365和包括在第二部分355中的其他內容。控制器320和/或構件應用軟體310可以接著存取套裝韌體365以及接著從套裝韌體365安裝每個韌體。於一具體態樣,控制器320和/或構件應用軟體310從第二部分355額外存取狀態紀錄395以辨識出在計算裝置上之每個運作韌體的狀態。
在從套裝韌體365安裝任何韌體之前,控制器320和/或構件應用軟體310可以重設每個運作韌體360在狀態紀錄395上的狀態。於一具體態樣,重設每個運作韌體360在狀態紀錄395上的狀態包括:控制器320和/或構件應用軟體310從第二部分355存取對應的主韌體390,並且安裝對應的主韌體390以重設每個運作韌體360的狀態。於另一具體態樣,控制器320和/或構件應用軟體310可以用包括於主韌體390中之嵌入式作業系統的主版本來額外反轉計算裝置的嵌入式作業系統。
一旦已重設了每個運作韌體365和/或嵌入式作業系統的狀態,則控制器320和/或構件應用軟體310遵循第一次序而接著安裝套裝韌體365。第一次序可以包括控制器320和/或構件應用軟體310從套裝韌體365一個接一個存取和安裝每個韌體並且遵循著第一到最後的次序。於
另一具體態樣,第一次序可以包括遵循最後到第一的次序而一個接一個存取和安裝每個韌體。在安裝了每個韌體之後,控制器320和/或構件應用軟體310可以判定對應的運作韌體是否成功的修改。
如本具體態樣所示,控制器320和/或構件應用軟體310可以安裝韌體1:視訊,並且在接著安裝韌體2:音訊之前先判定運作韌體1:視訊是否成功的修改;以及判定運作韌體2:音訊是否成功的修改,然後後續是韌體3:通訊和韌體4:系統。當安裝韌體時,控制器320和/或構件應用軟體310以來自韌體的驅動程式和/或軟體來覆寫運作韌體360的任何驅動程式和/或軟體。
當判定對應的運作韌體360是否成功的修改時,控制器320和/或構件應用軟體310可以詢問修改過的運作韌體365以求回應,或者在使用修改過之運作韌體360的對應構件上跑診斷,以判定對應的構件330是否正確的操作。如果修改過的運作韌體360回應於詢問或者對應的構件330通過診斷測試,則運作韌體360被判定為成功的修改。
控制器320和/或構件應用軟體310也可以更新狀態紀錄395以指出對應的運作韌體360是成功的修改。於一具體態樣,如果計算裝置上的每個運作韌體360是成功的修改,則控制器320和/或構件應用軟體310可以更新狀態紀錄395以指出所有的運作韌體是成功的修改。附帶而言,控制器320和/或構件應用軟體310可以用修改過的運作韌體360來覆寫在第二部分355上的主韌體390。
如果修改過的運作韌體360沒有回應於該詢問或者對應的構件330沒有通過診斷測試,則控制器320和/或構件應用軟體310判定運
作韌體360並未成功的修改,並且可以更新狀態紀錄395以指出對應的運作韌體360並未成功的修改。如果狀態紀錄395指出任何的運作韌體並未成功的修改,則控制器320和/或構件應用軟體310停止從套裝韌體365安裝任何額外的韌體,並且接著遵循第二次序(相反於第一次序)而解除安裝套裝韌體365以恢復運作韌體360。
圖4示範根據範例之計算裝置的方塊圖,其解除安裝套裝韌體465以恢復運作韌體。如本具體態樣所示,控制器420和/或構件應用軟體410可以從狀態紀錄495判定韌體3並未成功的安裝並且運作韌體3並未成功的修改。就回應而言,控制器420和/或構件應用軟體410接著遵循第二次序而解除安裝套裝韌體465。
控制器420和/或構件應用軟體410接著解除安裝最近安裝的韌體,即韌體3:通訊。於一具體態樣,解除安裝韌體包括:控制器420和/或構件應用軟體410從第二部分存取主韌體並且安裝主韌體以恢復運作韌體。舉例而言,控制器420和/或構件應用軟體410可以為了運作韌體3而存取主韌體,並且接著安裝主韌體的驅動程式和/或軟體以恢復運作韌體3。一旦已恢復了運作韌體3,則控制器420和/或構件應用軟體410可以接著解除安裝韌體2:音訊,並且以主韌體來恢復運作韌體2。一旦已恢復了運作韌體2,則控制器420和/或構件應用軟體410然後可以解除安裝韌體1:視訊,並且接著以主韌體來恢復運作韌體1。
圖5是流程圖,其示範根據範例之管理計算裝置的方法。如上所注意的,構件應用軟體可以獨立的和/或配合控制器來利用以管理計算裝置。在500,控制器和/或構件應用軟體起初可以從非揮發性儲存構件
的第二部分檢索找出套裝韌體。套裝韌體可以接收自第二計算裝置,例如伺服器。在510,控制器和/或構件應用軟體可以遵循第一次序而從套裝韌體安裝韌體以修改每個對應的運作韌體,並且在每個韌體安裝之後判定對應的運作韌體是否成功的修改。在從套裝韌體安裝了每個韌體之後,控制器和/或構件應用軟體可以存取狀態紀錄,並且更新狀態紀錄中對應於修改過之運作韌體的項目。
如果對應的運作韌體是成功的修改,則控制器和/或構件應用軟體可以更新對應的項目,以指出韌體是成功的安裝並且對應的運作韌體是成功的修改。於另一具體態樣,如果對應的運作韌體並未成功的修改,則控制器和/或構件應用軟體可以更新對應的項目,以指出韌體並未成功的安裝並且對應的運作韌體並未成功的修改。在520,如果計算裝置的任何運作韌體不是成功的修改,則控制器和/或構件應用軟體可以接著遵循相反於第一次序的第二次序而解除安裝來自套裝韌體的每個韌體,致使恢復了計算裝置的每個運作韌體。然後便完成了本方法。於其他具體態樣,圖5的方法包括額外的步驟以附加於和/或取代圖5所示者。
圖6是流程圖,其示範根據另一範例之管理計算裝置的方法。在600,控制器和/或構件應用軟體起初可以判定是否已接收套裝韌體。如果沒有接收到套裝韌體,則控制器和/或構件應用軟體在600持續偵測套裝韌體。如果接收到套裝韌體,則在610,控制器和/或構件應用軟體藉由存取套裝韌體之授權簽章和/或第二計算裝置之授權身分的白清單而判定套裝韌體是否為驗證過的。如果套裝韌體沒有驗證過,則控制器和/或構件應用軟體放棄該套裝韌體,並且持續在600偵測套裝韌體。
如果套裝韌體是驗證過的,則控制器和/或套裝韌體可以把套裝韌體儲存在非揮發性儲存構件的第二部分上。於一具體態樣,安全構件隱藏第二部分以避開控制器和/或構件應用軟體,直到韌體更新請求已由控制器和/或構件應用軟體所發起為止。如果偵測到韌體更新請求,則安全構件可以啟用控制第二部分的控制器和/或處理器以使控制器和/或構件應用軟體看得到第二部分。
然後在620,控制器和/或構件應用軟體可以用來自第二部分的主韌體而恢復計算裝置的每個運作韌體。控制器和/或構件應用軟體也存取在第二部分上的狀態紀錄,並且在630重設每個運作韌體的狀態。然後在640,控制器和/或構件應用軟體可以遵循第一次序而從套裝韌體安裝每個韌體。在安裝了每個韌體之後,在650,控制器和/或構件應用軟體藉由詢問構件或在構件上跑診斷測試而判定對應的韌體是否成功的修改。
如果運作韌體是成功的修改,則在660更新狀態紀錄以指出運作韌體是成功的修改。在670,控制器和/或構件應用軟體判定是否要從套裝韌體安裝任何額外的韌體。如果有額外的韌體要安裝,則控制器和/或構件應用軟體安裝該韌體、判定對應的運作韌體是否成功的修改、並且據此更新狀態紀錄。如果沒有額外的韌體要安裝,則在680,狀態紀錄可以更新為完成。附帶而言,在690,主韌體可以用目前的運作韌體來覆寫。
於另一具體態樣,如果控制器和/或構件應用軟體先前判定對應的運作韌體並未成功的修改,則在695,控制器和/或構件應用軟體可以遵循相反於第一次序的第二次序而解除安裝套裝韌體以恢復計算裝置的運作韌體。然後便完成了本方法。於其他具體態樣,圖6的方法包括額外
的步驟以附加於和/或取代圖6所示者。
100‧‧‧計算裝置
120‧‧‧控制器
130‧‧‧構件
140‧‧‧非揮發性儲存構件
150‧‧‧第一部分
155‧‧‧第二部分
160‧‧‧運作韌體
165‧‧‧套裝韌體
180‧‧‧通訊通道
Claims (10)
- 一種計算裝置,其包括:非揮發性儲存構件,其具有第一部分和第二部分;其中第一部分包括用於計算裝置之構件的運作韌體,並且第二部分包括套裝韌體以修改運作韌體;以及控制器,其從套裝韌體來安裝韌體,並且在從套裝韌體接著安裝後續的韌體之前先判定該韌體是否成功的安裝;其中如果來自套裝韌體的韌體安裝失敗,則控制器解除安裝套裝韌體以恢復運作韌體。
- 如申請專利範圍第1項的計算裝置,其中非揮發性儲存構件的第二部分包括對應於運作韌體的主韌體以及計算裝置之嵌入式作業系統的主版本當中至少一者。
- 如申請專利範圍第1項的計算裝置,其中非揮發性儲存構件的第二部分包括狀態紀錄,以追蹤要由套裝韌體所修改之運作韌體的狀態。
- 如申請專利範圍第1項的計算裝置,其進一步包括通訊構件,以從第二計算裝置接收套裝韌體。
- 如申請專利範圍第1項的計算裝置,其進一步包括安全構件,以驗證套裝韌體。
- 一種管理計算裝置的方法,其包括:從非揮發性儲存構件的第二部分檢索找出套裝韌體;其中非揮發性儲存構件的第一部分包括用於計算裝置之構件的運作韌體; 遵循第一次序而安裝套裝韌體以修改運作韌體,並且判定運作韌體是否成功的修改;以及如果運作韌體不是成功的修改,則遵循相反於第一次序的第二次序來解除安裝套裝韌體以恢復運作韌體。
- 如申請專利範圍第6項之管理計算裝置的方法,其進一步包括:從非揮發性儲存構件的第二部分存取狀態紀錄,以辨識出計算裝置上之每個運作韌體的狀態。
- 如申請專利範圍第7項之管理計算裝置的方法,其進一步包括:在安裝套裝韌體之前,重設每個運作韌體在狀態紀錄上的狀態。
- 如申請專利範圍第8項之管理計算裝置的方法,其進一步包括:當運作韌體是以套裝韌體所修改時,更新每個對應的運作韌體在狀態紀錄上的狀態。
- 一種電腦可讀取的媒體,其包括的指令如果執行的話則使控制器:從非揮發性儲存構件的第二部分檢索找出套裝韌體,其中非揮發性儲存構件的第一部分包括用於計算裝置之構件的運作韌體;遵循第一次序而從套裝韌體安裝每個韌體以修改運作韌體;在安裝每個韌體之後,判定每個對應的運作韌體是否是成功的修改;以及如果任何運作韌體不是成功的修改,則遵循相反於第一次序的第二次序而解除安裝套裝韌體以恢復運作韌體。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2012/026270 WO2013126058A1 (en) | 2012-02-23 | 2012-02-23 | Firmware package to modify active firmware |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201351282A TW201351282A (zh) | 2013-12-16 |
TWI493457B true TWI493457B (zh) | 2015-07-21 |
Family
ID=49006084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102106151A TWI493457B (zh) | 2012-02-23 | 2013-02-22 | 具有用以修改運作韌體之套裝韌體的計算裝置、用以管理該計算裝置的方法以及用以執行該方法之電腦可讀取的媒體 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20150019800A1 (zh) |
EP (1) | EP2817715A4 (zh) |
CN (1) | CN104220981A (zh) |
TW (1) | TWI493457B (zh) |
WO (1) | WO2013126058A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2335180B1 (en) * | 2008-10-08 | 2019-04-10 | Nokia Technologies Oy | Memory access control |
US10140109B2 (en) * | 2014-02-25 | 2018-11-27 | Ford Global Technologies, Llc | Silent in-vehicle software updates |
US9524158B2 (en) * | 2015-02-23 | 2016-12-20 | Apple Inc. | Managing firmware updates for integrated components within mobile devices |
GB2551490A (en) * | 2016-06-15 | 2017-12-27 | Saab Seaeye Ltd | Method and apparatus for updating software on remotely operated vehicle |
US20180150256A1 (en) * | 2016-11-29 | 2018-05-31 | Intel Corporation | Technologies for data deduplication in disaggregated architectures |
US11100228B2 (en) * | 2018-10-25 | 2021-08-24 | Dell Products, L.P. | System and method to recover FPGA firmware over a sideband interface |
US11893259B2 (en) * | 2021-01-07 | 2024-02-06 | EMC IP Holding Company LLC | Storage system configured with stealth drive group |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040194081A1 (en) * | 2002-03-23 | 2004-09-30 | Iyad Qumei | Update system for facilitating firmware/software update in a mobile handset |
US20090222650A1 (en) * | 2008-02-29 | 2009-09-03 | Hon Hai Precision Industry Co., Ltd. | Communication device and firmware update method thereof |
US20090320012A1 (en) * | 2008-06-04 | 2009-12-24 | Mediatek Inc. | Secure booting for updating firmware over the air |
US20110131447A1 (en) * | 2009-11-30 | 2011-06-02 | Gyan Prakash | Automated modular and secure boot firmware update |
TW201208275A (en) * | 2010-06-21 | 2012-02-16 | Litepoint Corp | System and method of providing driver software to test controller to facilitate testing by wireless transceiver tester of a device under test |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6442683B1 (en) * | 1999-10-07 | 2002-08-27 | Micron Technology, Inc. | Apparatus for automatically retrieving and installing device drivers across a network |
US20050132351A1 (en) * | 2003-12-12 | 2005-06-16 | Randall Roderick K. | Updating electronic device software employing rollback |
JP5057519B2 (ja) * | 2004-06-01 | 2012-10-24 | レッド・ベンド・リミテツド | 記憶装置に記憶されたコンテンツをインプレース更新するための方法およびシステム |
US7934213B2 (en) * | 2004-11-09 | 2011-04-26 | Microsoft Corporation | Device driver rollback |
US20060143600A1 (en) * | 2004-12-29 | 2006-06-29 | Andrew Cottrell | Secure firmware update |
US7873959B2 (en) * | 2005-02-01 | 2011-01-18 | Microsoft Corporation | Publishing the status of and updating firmware components |
US20090254898A1 (en) * | 2008-04-08 | 2009-10-08 | Microsoft Corporation | Converting a device from one system to another |
JP5346253B2 (ja) * | 2009-08-24 | 2013-11-20 | 株式会社日立ソリューションズ | ファームウェア更新システム、及び情報機器、並びにプログラム |
US8631398B2 (en) * | 2010-09-20 | 2014-01-14 | Sony Corporation | Method and apparatus for facilitating creation of a network interface |
US8606892B2 (en) * | 2011-11-28 | 2013-12-10 | Wyse Technology Inc. | Deployment and updating of applications and drivers on a client device using an extensible markup language (XML) configuration file |
-
2012
- 2012-02-23 EP EP12869269.6A patent/EP2817715A4/en not_active Withdrawn
- 2012-02-23 CN CN201280072039.3A patent/CN104220981A/zh active Pending
- 2012-02-23 US US14/379,747 patent/US20150019800A1/en not_active Abandoned
- 2012-02-23 WO PCT/US2012/026270 patent/WO2013126058A1/en active Application Filing
-
2013
- 2013-02-22 TW TW102106151A patent/TWI493457B/zh not_active IP Right Cessation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040194081A1 (en) * | 2002-03-23 | 2004-09-30 | Iyad Qumei | Update system for facilitating firmware/software update in a mobile handset |
US20090222650A1 (en) * | 2008-02-29 | 2009-09-03 | Hon Hai Precision Industry Co., Ltd. | Communication device and firmware update method thereof |
US20090320012A1 (en) * | 2008-06-04 | 2009-12-24 | Mediatek Inc. | Secure booting for updating firmware over the air |
US20110131447A1 (en) * | 2009-11-30 | 2011-06-02 | Gyan Prakash | Automated modular and secure boot firmware update |
TW201208275A (en) * | 2010-06-21 | 2012-02-16 | Litepoint Corp | System and method of providing driver software to test controller to facilitate testing by wireless transceiver tester of a device under test |
Also Published As
Publication number | Publication date |
---|---|
EP2817715A4 (en) | 2015-10-28 |
CN104220981A (zh) | 2014-12-17 |
US20150019800A1 (en) | 2015-01-15 |
EP2817715A1 (en) | 2014-12-31 |
WO2013126058A1 (en) | 2013-08-29 |
TW201351282A (zh) | 2013-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI493457B (zh) | 具有用以修改運作韌體之套裝韌體的計算裝置、用以管理該計算裝置的方法以及用以執行該方法之電腦可讀取的媒體 | |
US10922413B2 (en) | Methods and apparatus to apply a firmware update to a host processor | |
US9189340B2 (en) | Secure recovery apparatus and method | |
US20170046152A1 (en) | Firmware update | |
US8661306B2 (en) | Baseboard management controller and memory error detection method of computing device utilized thereby | |
JP5768277B2 (ja) | 記憶ボリュームのディスマウント | |
US20120011354A1 (en) | Boot loading of secure operating system from external device | |
TWI839587B (zh) | 用於管理軟體更新之方法及裝置,以及非暫時性電腦可讀儲存媒體 | |
US20090178033A1 (en) | System and Method to Update Device Driver or Firmware Using a Hypervisor Environment Without System Shutdown | |
TWI672634B (zh) | 基本輸入輸出系統(bios)保全技術 | |
JP6201049B2 (ja) | 読み出し専用のシステムイメージ内のシステムレベルサービスを更新するためのシステム及び方法 | |
KR20230043235A (ko) | 펌웨어의 보안 검증 | |
US20150169310A1 (en) | Maintaining firmware | |
US20130339780A1 (en) | Computing device and method for processing system events of computing device | |
US8838952B2 (en) | Information processing apparatus with secure boot capability capable of verification of configuration change | |
US20140372745A1 (en) | Booting a server using a remote read-only memory image | |
US11544412B2 (en) | Protection against unintended content change in DRAM during standby mode | |
TW201305842A (zh) | 在儲存裝置上即時監控檔案系統以維護安全的方法與裝置 | |
US20230418590A1 (en) | Instruction updates | |
US10255138B2 (en) | Disaster recovery tool | |
US10706169B1 (en) | Quarantining storage objects using a quarantine list | |
US9128873B2 (en) | Memory bus attached input/output (‘I/O’) subsystem management in a computing system | |
US20150059000A1 (en) | Method and electronic device for protecting data | |
JP2017084014A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |