电子装置、更新固件的方法与电脑可读取记录媒体的制作方法

文档序号:6490081阅读:243来源:国知局
电子装置、更新固件的方法与电脑可读取记录媒体的制作方法
【专利摘要】一种电子装置、更新固件的方法与电脑可读取记录媒体。电子装置包括处理单元以及非易失性存储器。非易失性存储器耦接至处理单元。非易失性存储器储固件。在非易失性存储器内的固件的非文件头位置具有识别信息,而识别信息包含固件的映像文件头、数字签名、只读存储器信息。
【专利说明】电子装置、更新固件的方法与电脑可读取记录媒体
【技术领域】
[0001]本发明是有关于一种电子装置,且特别是有关于一种电子装置的固件、更新固件的方法与载有固件映像文件的电脑可读取记录媒体。
【背景技术】
[0002]目前大部分的电子装置具有固件(firmware)以作为软件与硬件之间的接口,或是用以储存硬件所需的设定值,其中,通常用来储存固件的元件可为非易失性存储器(non-volatile memory, NVM),如闪存。当电子装置的硬件部分需要升级或是功能更新的时候,往往需要更新(update)固件的版本,也就是将新版本的固件文件刻录至储存原本固件的非易失性存储器。
[0003]图1说明传统固件映像文件(firmware image)的数据结构示意图。请参照图1,传统固件映像文件110 (或称固件胶囊,Firmware Capsule)是由识别信息(或称固件胶囊式标头,firmware capsule header) 111 与实际固件映像(actual firmware image) 112 所组成,而识别信息111内包含胶囊式标头(Capsules Header)、数字签名(digital signature)、只读存储器信息(ROM map information)。固件映像文件110中的胶囊式标头、数字签名、只读存储器信息可以被用来验证更新固件。识别信息111被放在实际固件映像112的前面,而把胶囊式标头、数字签名、只读存储器信息和实际的固件映像112组合成一个固件映像文件110 (如图1所示),以方便验证更新固件。
[0004]一般而言,实际固件映像112的大小是符合固件存储器120 (例如Flash存储器)的实际容量。由于传统固件映像文件110在实际固件映像112的前面额外加上识别信息111,因此使得传统固件映像文件110的大小往往会比固件存储器120的实际容量还大。在利用刻录器将传统固件映像文件110刻录到非易失性存储器的过程中,必须先利用软件移除掉传统固件映像文件110的识别信息111后,再将剩余的固件映像(即实际固件映像112)刷新/写入到固件存储器120中,作为固件112’。
[0005]然而,由于识别信息111 (胶囊式标头、数字签名、只读存储器信息等识别信息)已被移除/丢弃,所以刻录到固件存储器120中的固件112’没有可供用来验证及/或更新固件的识别信息。日后,通过软件从固件存储器120中读出来的固件112’不能再用于固件回滚(Firmware Rollback)或者固件恢复(Firmware Recovery)。
[0006]由于传统固件文件在实际固件映像的前面额外加上识别信息,因此传统固件文件的大小往往大于固件内存的实际容量,导致传统固件文件无法通过普通的集成电路刻录器(IC Writer)将整个传统固件文件直接刻录至固件内存。上本发明将映像文件头、数字签名、只读存储器信息至少其中之一或其组合封装于实际固件映像文件(或固件)中的非文件头位置,因此本发明的固件映像文件(或固件)的大小可以符合固件内存容量。再者,由于固件映像文件(或固件)具有识别信息,电子装置中的处理单元可藉由判断固件映像文件的识别信息是否为有效,来对固件进行更新。此外,电子装置中的处理单元可藉由判断固件的识别信息是否为有效,来保护所述固件。如此一来,电子装置能够执行有效的固件,以让使用者可使用正确的新固件版本或是维护原有固件版本。

【发明内容】

[0007]本发明提供一种电子装置,具有固件(firmware),其中该固件的识别信息被封装于该固件中的非文件头位置。
[0008]本发明提供一种电脑可读取记录媒体,储存固件映像文件(firmware image),其中该固件映像文件的识别信息被封装于该固件映像文件中的非文件头位置。
[0009]本发明提供一种更新固件的方法,其可利用固件映像文件内部的识别信息判断固件映像文件是否为有效,以使电子装置存取兼容的固件映像文件来对固件进行更新。
[0010]本发明实施例提出一种电子装置,包括处理单元以及非易失性存储器(non-volatile memory, NVM)。非易失性存储器稱接至处理单元。非易失性存储器储存固件映像文件,
[0011]其中,固件映像文件内具有识别信息,该识别信息被封装于该固件映像文件中的非文件头位置,而该识别信息包含该固件的映像文件头(header)、数字签名(digitalsignature)、只读存储器信息(ROM map information)至少其中之一或其组合。
[0012]本发明实施例提出一种更新固件的方法,在电子装置的非易失性存储器中,储存有固件映像文件,固件映像文件以更新电子装置。此方法包括以下步骤。提供固件映像文件,其中该固件映像文件的识别信息被封装于固件映像文件中的非文件头位置,且固件映像文件的大小符合电子装置中用以储存固件的非易失性存储器的空间,而该识别信息包含该固件映像文件的映像文件头、数字签名、只读存储器信息至少其中之一或其组合。在进行更新时,从固件映像文件的非文件头位置中提取识别信息,并依据识别信息验证固件映像文件,以判断固件映像文件是否为有效。倘若固件映像文件为有效,则使用固件映像文件更新该电子装置。
[0013]在本发明的实施例中,上述的识别信息包括位置标志,处理单元依据位置标志从固件映像文件中取得识别信息,以及将识别信息作为固件胶囊式标头(firmware capsuleheader)数据。
[0014]在本发明的一实施例中,上述的固件映像文件中具有多个空白区,处理单元将识别信息封装至空白区至少其中之一。
[0015]基于上述,本发明将映像文件头、数字签名、只读存储器信息至少其中之一或其组合封装于实际固件映像文件(或固件)中的非文件头位置。将数字签名封装于实际固件映像文件的中间,而不是放在实际固件映像文件的表头位置。因此,本发明的固件映像文件(或固件)的大小可以符合非易失性存储器容量。刻录机制(例如刻录器)可以将带有识别信息(例如数字签名信息)的固件映像文件直接刻录到非易失性存储器中。在更新固件时,根据特定的标志或者固定位置,把固件映像文件中的识别信息(例如映像文件头、数字签名、只读存储器信息)提取出来,再与固件映像文件组合成固件胶囊(Firmware Capsule)用于验证并更新。
【专利附图】

【附图说明】
[0016]图1为现有技术中固件映像文件(firmware image)的数据结构示意图。[0017]图2为依照本发明的实施例说明将固件映像文件写入非易失性存储器的示意图。
[0018]图3为依照本发明实施例所示的更新固件的方法流程图。
[0019]图4与图5为依照本发明不同实施例所示固件映像文件的示意图。
【具体实施方式】
[0020]电子装置在存取固件时,若能判断固件是否符合电子装置中的设定,势必能避免电子装置因为存取不兼容的固件而导致功能异常的风险,并且能增进使用者在更新或刻录固件时的便利性。为了使本发明的内容更为明了,以下特举实施例作为本发明确实能够据以实施的范例。
[0021]图2是依照本发明实施例说明将固件映像文件写入非易失性存储器210的示意图。电子装置200可以是智能型手机、平板电脑、笔记本电脑或个人电脑之类的任何一种可存取固件的电子装置。电子装置200包括非易失性存储器210和处理单元250,其实施细节容后详述。
[0022]请参照图2,依照不同的应用情境,固件映像文件300可以被储存于电脑可读取记录媒体(例如DVD、随身盘、存储卡等),也可以被储存于远程服务器。因此,在一些实施例中,固件映像文件300可以藉由本地端的读取设备而从电脑可读取记录媒体获得。在另一些实施例中,固件映像文件300可以通过通信网络(例如因特网及/或局域网络)而从远程服务器获得。
[0023]与图1所示传统固件映像文件110不同之处,在于图1所示传统固件映像文件110中实际固件映像112内部没有胶囊式标头、数字签名、只读存储器信息等识别信息,而图2所示实施例则将识别信息320 (例如映像文件头/胶囊式标头、数字签名、只读存储器信息至少其中之一或其组合)封装于实际固件映像(即固件映像文件300)中的非文件头位置。例如,固件映像文件300中具有多个空白区(unsigned area),而该固件映像文件300内的识别信息320被封装于这些空白区至少其中之一。固件映像文件300中的映像文件头(或胶囊式标头,Capsules Header)、数字签名(digital signature)及/或只读存储器信息(ROM map information)可以被用来验证及/或更新固件。
[0024]由于固件映像文件300的大小符合非易失性存储器210的空间,所以整个固件映像文件300可以直接作为写入非易失性存储器210的实际固件。因此在利用刻录器将固件映像文件300刻录到非易失性存储器210的过程中,可以不需移除识别信息320,而将全部的固件映像文件300刷新/写入到非易失性存储器210中作为固件220。在完成刻录后,固件220内部具有识别信息222,而此识别信息222内容与识别信息320内容一致。再者,由于非易失性存储器210中固件220具有识别信息222 (例如映像文件头/胶囊式标头、数字签名及/或只读存储器信息),因此刻录到非易失性存储器210中的识别信息222可供用来验证及/或更新固件。日后,通过软件从非易失性存储器210中读出来的固件220亦可以再用于固件回滚(Rollback)或恢复(Recovery)。
[0025]请参照图2,非易失性存储器210例如为只读存储器(Read-only memory, ROM)或闪存(Flash memory)。非易失性存储器210用以储存固件220。其中,固件220例如是基本输入输出系统(Basic Input or Output System, BIOS)、可扩展固件接口(ExtensibleFirmware Interface,EFI)B10S或统一的可扩展固件接口(Unified Extensible FirmwareInterface,UEFI) BIOS等,不限于上述。此外,本实施例的固件220内具有识别信息222,其中识别信息222用以验证固件220是否为有效。例如,固件220内的识别信息222包含该固件220的映像文件头/胶囊式标头、数字签名、只读存储器信息至少其中之一或其组合。图2所述固件220、识别信息222可以参照图4、图5所示固件映像文件300、识别信息320的相关说明而类推,而图4、图5容后详述。
[0026]处理单元250耦接至非易失性存储器210,其中处理单元210例如为中央处理单元(Central Processing Unit, CPU)及/或芯片组(chipset),用以执行电子装置200中的固件以及处理软件中的数据。在本实施例中,当电子装置200获得用以更新固件220的固件映像文件300时,处理单元250可依据此固件映像文件300来对固件220进行更新。其中,在一些实施例中,电子装置200所获得的固件映像文件300可以被储存在电脑可读取记录媒体(例如存储器212),以供处理单元250来存取并对固件220进行更新。存储器212例如为随机存取存储器(Random Access Memory,RAM)、光盘、随身盘等,而处理单元250可通过此存储器212来存取固件映像文件300,以对固件220进行更新。
[0027]下文即搭配上述电子装置200来说明更新固件的方法。图3是依照本发明实施例所示的更新固件的方法流程图。本实施例中的更新固件的方法,用以更新电子装置200的固件220。
[0028]请同时参照图1与图2,当电子装置200获得具有识别信息的固件映像文件300时,如步骤S301所示,电子装置200的处理单元250会从固件映像文件300的非文件头位置中提取识别信息320。其中,固件映像文件300的大小符合非易失性存储器210的空间,因此处理单元250可将整个固件映像文件300储存在非易失性存储器210中。也就是说,本实施例的固件映像文件300具有识别信息320,且识别信息320是被封装在固件映像文件300内,如此一来,当电子装置200欲对固件映像文件300进行储存操作时,固件映像文件300可符合电子装置200中用来储存此固件映像文件300的非易失性存储器210的空间。因此,电子装置200的非易失性存储器210可正常且完整地存取到此固件映像文件300。值得注意的是,上述固件映像文件300中的识别信息320包括用来识别固件映像文件300的数据,而这些数据例如是电子装置200进行更新时所需的更新信息(例如,映像文件头(header)、数字签名、只读存储器信息或其他用以更新固件220所需的参数)。
[0029]详细而言,图4、5是依照本发明不同实施例所示的固件映像文件的示意图。图2所述固件映像文件300、识别信息320可以参照图4、图5所示固件映像文件300、识别信息320的相关说明而类推。请参照图4,固件映像文件300的识别信息320会被封装至固件映像文件300中多个空白区的至少其中之一。具体来说,固件映像文件300实质上可分割为m个区块30-1?30-m,其中m为正整数,且区块30_1?30_m中的部分区块可为空白区。由于区块30-1?30-m中的空白区可不包括有效的固件程序码,因此,固件映像文件300的识别信息320可被封装至区块30-1?30-m中为空白区的至少其中之一。
[0030]进一步地说,识别信息320包括多个更新信息311、312、313。其中,更新信息311?313可以是映像文件头/胶囊式标头、数字签名、只读存储器信息至少其中之一或其组合,或是其他用以更新固件220所需的识别信息。为了方便说明,在本实施例中,假设更新信息311具有映像文件头(或胶囊式标头,Capsules Header),更新信息312具有数字签名(digital signature),以及更新信息313具有只读存储器信息(ROM map information),然而本发明并不限制更新信息的数量。更新信息311?313分别具有位置标志Al?A3,而处理单元150可依据位置标志Al?A3来提取识别信息320。具体来说,当处理单元150逐步存取区块30-1?30-m的数据时,若存取到具有位置标志Al?A3的区块,则处理单元150可辨识所存取到的区块为更新信息311?313所在的位置。
[0031]在其他实施例中,如图5所示,更新信息311?313的位置信息,亦可以储存在区块30-1?30-m其中之一,以让处理单元250依据位置信息(索引信息)来取得更新信息311?313。详细而言,假设区块30-1的特定区域C中分别记录更新信息311?313于固件映像文件300中的地址BI?B3,如此一来,当处理单元250可存取到特定区域C时,则可藉由记载在特定区域C中的地址BI?B3而提取更新信息311?313。
[0032]请参照图2、图3与图4,在步骤S303中,处理单元250会从固件映像文件300中提取识别信息320,并依据识别信息320验证固件映像文件300,以判断固件映像文件300是否为有效。具体而言,由于固件映像文件300中的更新信息311?313具有特定的位置标志Al?A3,因此处理单元250可依据位置标志Al?A3来取得更新信息311?313中的数据,并且将更新信息311?313中的数据(即,映像文件头、数字签名、只读存储器信息)合并作为固件映像文件300的固件胶囊式标头(firmware capsule header)数据。
[0033]此外,处理单元250依据位置标志Al?A3以提取固件映像文件300中的识别信息320之后,处理单元250会比较固件映像文件300中的识别信息320与固件220中的识别信息222,以判断固件映像文件300是否为有效。在本实施例中,处理单元250可依据识别信息320中所具有的数字签名(即,更新信息312)来验证固件映像文件300是否符合识别信息222,其中数字签名例如是包括固件映像文件300的版本信息。因此,倘若固件映像文件300的数字签名符合识别信息222所记录的版本信息,处理单元250则会判断固件映像文件300与电子装置200相符合,进而判断固件映像文件300为有效。反之,若固件映像文件300的识别信息320与固件220的识别信息222不相符合,则处理单元250会判断固件映像文件300为无效。
[0034]进一步地说,倘若处理单元250判断固件映像文件300为无效,则如步骤S305所示,处理单元250不会依据固件映像文件300来对固件220更新。此外,处理单元250也可通过显示单元(未示出)来发出警报,例如是显示警示信息,以提示用户固件映像文件300与电子装置200不相符合。
[0035]然而,倘若处理单元250判断固件映像文件300为有效,则如步骤S307所示,处理单元250则会使用固件映像文件300来更新固件220。详细而言,处理单元250可先将原有(更新前)的固件220储存至另一非易失性存储器(未示出)中,再使用固件映像文件300对固件220进行更新。值得一提的是,由于更新前的固件220具有识别信息222,因此,当若使用者不满意更新后的固件220 (即固件映像文件300)的版本时,处理单元250可依据更新前的固件220的识别信息222,以在所述另一非易失性存储器中识别出更新前的固件220。另一方面,在其他实施例中,处理单元250亦可将更新前的固件220所具有的识别信息222存入至更新后的固件220中,因此,若使用者不满意更新后的固件220的版本时,处理单元250可藉由存取更新前的固件220的识别信息222,从因特网中加载对应识别信息222的固件的版本。如此一来,当使用者对固件进行更新之后,还能自行选择是否使用更新后的固件的版本或是更新前的固件的版本。[0036]基于上述,处理单元250可依据固件映像文件300中的识别信息222,来判断固件映像文件300是否为有效。藉此,电子装置200可存取兼容的固件映像文件来对原有的固件222进行更新,以让使用者可使用有效更新后的固件。
[0037]另外,处理单元250可以依据固件220中的识别信息222来验证固件220,以判断固件220是否为有效。举例来说,处理单元250可依据固件220中的识别信息222来识别固件220是否有被非法修改(例如固件220被电脑病毒非法更新,或者固件220中的内容受损)。
[0038]详细而言,倘若非易失性存储器210中的固件220已被非法修改,则固件220中的内容会不吻合于识别信息222。在本实施例中,处理单元250可以藉由识别所述识别信息222中的数字签名来判断固件220是否被非法修改。举例来说,由于数字签名可依据固件220中的内容而被产生,因此若固件220已被非法修改,固件220中的内容则会与原本(未修改前)的固件220不符合。藉此,倘若处理单元250所提取的识别信息222无法与固件120的内容吻合时,处理单元250则会判断固件220为无效。倘若处理单元250判断固件220为无效,则处理单元250可通过显示单元(未示出)来发出警报,例如是显示警示信息来提醒用户,且同时可停止存取固件220中的数据。假设处理单元250判断固件220为有效,则处理单元250不会通过显示单元(未示出)发出警报。
[0039]换言之,当处理单元250对固件220存取数据时(例如对固件220进行刻录),处理单元250依据固件220的识别信息222,来判断固件220是否被修改以及辨识固件220是否为有效。当固件220为无效时,处理单元250可立即提示用户。电子装置200可存取兼容的固件,以便于使用者使用与维护非易失性存储器210中的固件220。藉此,电子装置200可达到保护储存于非易失性存储器210中的固件220的目的。
[0040]综上所述,上述诸实施例提出的电子装置的固件、载有固件映像文件的电脑可读取记录媒体、以及更新固件的方法。由于传统固件文件在实际固件映像的前面额外加上识别信息,因此传统固件文件的大小往往大于固件存储器的实际容量,导致传统固件文件无法通过普通的集成电路刻录器(ic Writer)将整个传统固件文件直接刻录至固件存储器。上述诸实施例将映像文件头、数字签名、只读存储器信息至少其中之一或其组合封装于实际固件映像文件(或固件)中的非文件头位置,因此上述诸实施例的固件映像文件(或固件)的大小可以符合固件存储器容量。再者,由于固件映像文件(或固件)具有识别信息,电子装置中的处理单元可藉由判断固件映像文件的识别信息是否为有效,来对固件进行更新。此外,电子装置中的处理单元可藉由判断固件的识别信息是否为有效,来保护所述固件。如此一来,电子装置能够执行有效的固件,以让使用者可使用正确的新固件版本或是维护原有固件版本。
[0041]虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何所属【技术领域】中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视所附的权利要求范围所界定者为准。
【权利要求】
1.一种电子装置,其特征在于,包括: 处理单元;以及 非易失性存储器,耦接至上述处理单元;其中上述非易失性存储器储存固件映像文件,而在上述固件映像文件内具有识别信息,上述识别信息被封装于上述固件映像文件中的非文件头位置,而上述固件内的上述识别信息包含上述固件的映像文件头、数字签名、只读存储器信息至少其中之一或其组合。
2.如权利要求1所述的电子装置,其特征在于,其中当要更新固件时,上述电子装置从上述固件映像文件的非文件头位置提取上述识别信息;上述电子装置依据上述固件映像文件的上述识别信息验证上述固件映像文件,以判断上述固件映像文件是否为有效;以及倘若上述固件映像文件为有效,则上述电子装置使用上述固件映像文件更新固件。
3.如权利要求1所述的电子装置,其特征在于,其中上述固件映像文件中具有多个空白区,而上述固件映像文件内的上述识别信息被封装于上述这些空白区至少其中之一。
4.如权利要求1所述的电子装置,其特征在于,其中上述固件映像文件的大小符合上述非易失性存储器的空间。
5.如权利要求1所述的电子装置,其特征在于,其中上述识别信息还包括位置标志,上述处理单元依据上述位置标志从上述固件映像文件中取得上述识别信息,以及将上述识别信息作为上述固件映像文件的固件胶囊式标头数据。
6.一种电脑可读取记录媒体,其特征在于,储存固件映像文件,其中上述固件映像文件的识别信息被封装于上述固件映像文件中的非文件头位置,而上述识别信息包含上述固件映像文件的映像文件头、数字签名、只读存储器信息至少其中之一或其组合。
7.一种更新固件的方法,其特征在于,在电子装置的非易失性存储器中储存有固件映像文件以更新上述电子装置,上述方法包括:` 提供固件映像文件,其中上述固件映像文件的识别信息被封装于上述固件映像文件中的非文件头位置,其中上述固件映像文件的大小符合上述电子装置中用以储存上述固件的非易失性存储器的空间,而上述识别信息包含上述固件映像文件的映像文件头、数字签名、只读存储器信息至少其中之一或其组合; 在进行更新时,从上述固件映像文件的非文件头位置中提取上述识别信息,并依据上述识别信息验证上述固件映像文件,以判断上述固件映像文件是否为有效;以及 倘若上述固件映像文件为有效,则使用上述固件映像文件更新上述电子装置。
8.如权利要求7所述的更新固件的方法,其特征在于,其中上述识别信息还包括位置
O
9.如权利要求8所述的更新固件的方法,其特征在于,其中所述从上述固件映像文件中提取上述识别信息的步骤包括: 依据上述这些位置标志从上述固件映像文件中取得上述识别信息;以及 将上述识别信息作为上述固件映像文件的固件胶囊式标头数据。
10.如权利要求7所述的更新固件的方法,其特征在于,其中上述固件映像文件中具有多个空白区,上述识别信息被封装至上述这些空白区至少其中之一。
11.如权利要求7所述的更新固件的方法,其特征在于,其中储存于上述非易失性存储器的上述固件内具有识别信息,上述识别信息包含上述固件的映像文件头、数字签名、只读存储器信息至少其中之一或其组合。
12.如权利要求11所述的更新固件的方法,其特征在于,其中所述使用上述固件映像文件更新上述固件的步骤包括: 比较上述识别信息与上述识别信息,以判断上述固件映像文件是否为有效;以及倘若上述固件映像文件为有效,使用上述固件映像文件更新上述非易失性存储器内的上述固件。
13.如权利要求11所述的更新固件的方法,其特征在于,还包括: 依据上述识别信息验证上`述固件,以判断上述固件是否为有效。
【文档编号】G06F9/445GK103777971SQ201210406381
【公开日】2014年5月7日 申请日期:2012年10月23日 优先权日:2012年10月23日
【发明者】王祝宏, 王轩 申请人:新加坡商华科国际股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1