CN101281468B - 生成固件更新文件和更新固件的方法和设备 - Google Patents

生成固件更新文件和更新固件的方法和设备 Download PDF

Info

Publication number
CN101281468B
CN101281468B CN2008100015904A CN200810001590A CN101281468B CN 101281468 B CN101281468 B CN 101281468B CN 2008100015904 A CN2008100015904 A CN 2008100015904A CN 200810001590 A CN200810001590 A CN 200810001590A CN 101281468 B CN101281468 B CN 101281468B
Authority
CN
China
Prior art keywords
hardware
firmware
model code
code
model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2008100015904A
Other languages
English (en)
Other versions
CN101281468A (zh
Inventor
文智煐
李日俊
慎峻范
李善男
李相泓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN101281468A publication Critical patent/CN101281468A/zh
Application granted granted Critical
Publication of CN101281468B publication Critical patent/CN101281468B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/64Retargetable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Human Computer Interaction (AREA)

Abstract

提供一种通过在代表具有彼此兼容的固件程序代码的硬件组的模型代码和识别属于所述组的每个硬件的模型代码之间进行区分,限制固件更新的方法。所述方法包括:生成具有将被更新的固件程序代码的数据主体;生成具有应用数据主体的硬件模型代码的数据头,其中,硬件模型代码包括代表具有彼此兼容的固件程序代码的硬件组的第一模型代码和识别属于所述组的每个硬件的第二模型代码;和通过结合所述数据主体和所述数据头,生成固件更新文件。

Description

生成固件更新文件和更新固件的方法和设备
本申请要求于2007年4月6日提交到韩国知识产权局的第10-2007-0034421号韩国专利申请的优先权,该公开完全包含于此,以资参考。
技术领域
根据本发明的方法和设备涉及生成固件更新文件和通过使用该固件更新文件更新固件,更具体地,涉及通过将应用固件的硬件模型代码划分成用于代表具有彼此兼容的固件程序代码的硬件组的硬件模型代码和用于识别属于所述组的硬件的硬件模型代码来更新固件。
背景技术
控制和管理硬件的固件是特别的程序,不仅由于所述固件是程序所以与硬件不同,而且由于固件与硬件密切相关所以也与一般应用程序不同。也就是,固件保留软件和硬件的特点。通常,固件被存储在只读存储器(ROM),即闪存中。
例如,如果只以硬件的方式制造控制具有某种功能的硬件的所有电路,则电路的结构会很复杂,并且存在难以仅使用电路表示的逻辑表达。这个问题可以以非常简单且低成本的方式解决,即,用软件取代大部份的电路并且将存储该软件的存储装置作为硬件的核心。这种具有硬件特性的软件被称为固件。
通常,具有各种功能的***(特别是嵌入式***)包括固件以执行功能。固件通常用于存储小型的单一程序,而不是诸如操作***的大型程序。因此,由于固件是小型程序,因此必须经常更新固件以改正固件中的错误、改善***的性能或添加新功能。
然而,在固件更新期间,为特定的硬件模型设计的固件可用于其他硬件模型。举例来说,具有公司“B”的标志的固件可用于印有公司“A”的标志的机顶盒。
此外,在更新后的固件的区域码与硬件的区域码不同的情况下,在外国可能发生法律纠纷。如果用不适当的固件进行更新,则可能相应地产生额外费用。
发明内容
本发明提供一种生成固件更新文件的方法,其中,该方法通过在代表具有彼此兼容的固件程序代码的硬件组的模型代码和识别属于所述组的每个硬件的模型代码之间进行区分以限制固件更新,并且本发明提供一种使用该更新文件进行更新的方法和设备。
根据本发明的一方面,提供一种生成固件更新文件的方法,该方法包括:生成具有将被更新的固件程序代码的数据主体;生成具有应用数据主体的硬件模型代码的数据头,其中,硬件模型代码包括代表具有彼此兼容的固件程序代码的硬件组的第一模型代码和识别属于所述组的每个硬件的第二模型代码;通过结合所述数据主体和所述数据头,生成固件更新文件。
所述生成数据头的步骤可包括:生成数据头,所述数据头还包括指示第一和第二模型代码是否有效的模型标志字段。此外,所述生成数据头的步骤可包括:生成数据头,所述数据头还包括指示是否不考虑模型标志字段的值而强制执行固件更新的更新模式信息。
如果强制执行固件更新,则所述生成数据头的步骤可包括:将包括在数据头中的第一模型代码设置为空值。
所述生成数据主体的步骤可包括:生成数据主体,所述数据主体还包括所述第一模型代码和第二模型代码。
所述生成数据头的步骤可包括:生成数据头,所述数据头还包括应用数据主体的硬件的区域码。所述硬件的区域码可包括自由代码、洲代码和国家代码中的至少一种。
所述生成数据头的步骤可包括生成数据头,所述数据头还包括包括在数据主体中的固件程序代码的版本信息。
所述生成固件更新文件的步骤可包括:对所述数据主体和所述数据头进行数字签名,以防止所述数据主体和所述数据头被伪造和改变。所述生成固件更新文件的步骤可包括对具有固件程序代码的数据主体进行加密。
根据本发明的另一方面,提供一种使用固件更新文件更新固件的方法,该方法包括:对包括在更新文件中的数据头进行解释;从所述数据头读取代表应用更新文件的硬件组的模型代码和识别属于所述组的每个硬件的模型代码中的一个作为第一模型代码;将所述第一模型代码与包括在硬件中的第二模型代码进行比较,其中,所述第二模型代码代表所述硬件的模型;和基于比较的结果,更新硬件中的固件。
所述读取第一模型代码的步骤可包括:对用于指示代表硬件组的模型代码和识别属于所述组的每个硬件的模型代码是否有效的模型标志字段进行解释;和基于所述模型标志字段的值,将代表所述组的模型代码和识别属于所述组的每个硬件的模型代码中的一个确定为第一模型代码。
如果根据所述模型标志字段的值读取代表所述硬件组的模型代码作为第一模型代码,则所述更新硬件中的固件的步骤可包括:只有在第二模型代码包括在第一模型代码中的情况下,才更新硬件中的固件。
如果根据所述模型标志字段的值读取识别属于所述组的每个硬件的模型代码是有效的模型代码作为第一模型代码,则所述更新硬件中的固件的步骤可包括:只有在第二模型代码与第一模型代码相同的情况下,才更新硬件中的固件。
所述方法还可包括:从解释的数据头读取应用数据主体的硬件的区域码;和将读取的区域码与包括在硬件中的硬件的区域码进行比较,以确定是否更新固件。所述方法还可包括:将硬件中预设的固件版本信息与包括在解释的数据头中的版本信息进行比较,以确定是否更新固件。
所述方法还可包括:对用于指示是否强制更新固件的更新模式信息进行解释,其中,所述更新模式信息包括在数据头中;如果对更新模式信息进行解释的结果指示强制更新模式,则不考虑第一模型代码和第二模型代码的比较结果而更新硬件中的固件。
如果包括在数据头中且代表待应用所述更新文件的硬件组的模型代码具有空值,则对更新模式信息进行解释的步骤包括:对所述更新模式信息进行解释以指示强制更新模式。
所述方法还可包括:通过将所述更新文件分成数据头、数据主体和数字签名来对所述更新文件进行解析,其中,所述数据头包括代表应用所述更新文件的硬件组的模型代码和识别属于所述组的每个硬件的模型代码,所述数据主体具有将被更新的固件程序代码,所述数字签名防止所述更新文件被伪造和改变。
所述方法还可包括:对所述解析的数字签名进行认证,其中,如果认证成功,则更新硬件中的固件。
如果所述解析的数据主体被加密,则所述方法还可包括:解密所述数据主体;对代表应用所述更新文件的硬件组的模型代码和识别属于所述组的每个硬件的模型代码进行解释,其中,所述模型代码包括在所述解密的数据主体中;将所述解释的模型代码与包括在解析的数据头中的模型代码进行比较,以验证包括在所述解析的数据头中的模型代码的完整性。
根据本发明的另一方面,提供一种其上记录有更新文件的计算机可读介质,所述更新文件包括:具有将被更新的固件程序代码的数据主体;和具有应用所述数据主体的硬件的模型代码的数据头,其中,所述模型代码包括代表具有彼此兼容的固件程序代码的硬件组的第一模型代码和识别属于所述组的每个硬件的第二模型代码。
根据本发明的另一方面,提供一种其上记录有用于执行生成更新文件的方法的程序的计算机可读介质,所述方法包括:生成具有将被更新的固件程序代码的数据主体;生成具有应用数据主体的硬件模型代码的数据头,其中,所述硬件模型代码包括代表具有彼此兼容的固件程序代码的硬件组的第一模型代码和识别属于所述组的每个硬件的第二模型代码;和通过结合所述数据主体和所述数据头生成固件更新文件。
根据本发明的另一方面,提供一种其上记录有用于执行使用固件更新文件更新固件的方法的程序的计算机可读介质,所述方法包括:对包括在更新文件中的数据头进行解释;从所述数据头读取代表应用更新文件的硬件组的模型代码和识别属于所述组的每个硬件的模型代码中的一个作为第一模型代码;将所述第一模型代码与包括在硬件中的第二模型代码相比较,其中,所述第二模型代码代表所述硬件的模型;基于比较的结果更新硬件中的固件。
根据本发明的另一方面,提供一种生成固件更新文件的设备,所述设备包括:固件生成器,生成包括将被更新的固件程序代码的数据主体;头生成器,生成包括应用所述数据主体的硬件的模型代码的数据头,其中,所述模型代码包括代表具有彼此兼容的固件程序代码的硬件组的第一模型代码和识别属于所述组的每个硬件的第二模型代码;和结合单元,通过结合所述数据主体和所述数据头生成固件更新文件。
所述结合单元可包括:数字签名单元,对所述数据主体和所述数据头进行数字签名,以防止所述数据主体和所述数据头被伪造和改变;加密单元,对具有所述固件程序代码的数据主体进行加密。
根据本发明的另一方面,提供一种使用固件更新文件进行更新的设备,所述设备包括:头解释器,解释包括在更新文件中的数据头;模型确定单元,读取代表应用更新文件的硬件组的模型代码和识别属于所述组的每个硬件的模型代码作为第一模型代码;模型比较单元,将第一模型代码和包括在硬件中并指示硬件的模型的第二模型代码进行比较;更新单元,基于从模型比较单元接收的比较结果更新硬件中的固件。
所述设备还可包括:语法解析器,通过将所述更新文件分成数据头、数据主体和数字签名来对所述更新文件进行解析,其中,所述数据头具有代表应用所述更新文件的硬件组的模型代码和识别属于所述组的每个硬件的模型代码,所述数据主体具有将被更新的固件程序代码,所述数字签名防止所述更新文件被伪造和改变;数字签名认证单元,对由语法解析器解析的数字签名进行认证;解密单元,如果所述数字签名认证单元成功地完成认证并且如果所述解析的数据主体被加密,则对所述解析的数据主体进行解密;和更新模式确定单元,对包括在由头解释器解释的数据头中的更新模式信息进行解释,其中,所述更新模式信息指示是否强制执行固件更新。
附图说明
通过下面结合附图对示例性实施例进行的详细描述,本发明的上述和其他方面将会变得更加清楚,其中:
图1是示出根据本发明示例性实施例的生成固件更新文件的方法的流程图;
图2是示出根据本发明另一示例性实施例的生成固件更新文件的方法的流程图;
图3是示出根据本发明示例性实施例的固件更新文件的数据结构的框图;
图4是示出根据本发明示例性实施例的使用固件更新文件更新的方法的流程图;
图5是示出根据本发明另一示例性实施例的使用固件更新文件更新的方法的流程图;
图6是根据本发明示例性实施例的用于生成固件更新文件的设备的框图;和
图7是根据本发明另一示例性实施例的使用固件更新文件更新的设备的框图。
具体实施方式
现在通过参照附图对本发明进行详细的描述,本发明的示例性实施例在附图中被示出。
图1是示出根据本发明示例性实施例的生成固件更新文件的方法的流程图。参照图1,所述方法包括:生成具有将被更新的固件的程序代码的数据主体(操作110);生成包括应用数据主体(body)的硬件模型代码的数据头(操作120),其中,硬件模型代码包括代表其固件程序代码彼此兼容的硬件组的第一模型代码和识别属于所述组的硬件的第二模型代码;和通过结合数据主体和数据头生成固件更新文件(操作130)。
具体来说,在操作110中,生成具有用于控制和管理硬件的固件程序的数据主体。数据主体是记录有固件的必要的程序代码的固件更新文件或ROM更新文件(RUF)的主体。
在操作120中,生成数据头以将其添加到数据主体。数据头包括将应用所述固件的硬件的模型名称(模型代码)。所述硬件模型代码包括两种类型的模型代码:第一模型代码,代表保持固件程序代码的兼容性的基础硬件组;第二模型代码,识别属于所述硬件组的每个硬件。这里,第一模型代码是主模型名称,第二模型代码可以是这样的模型名称,即,每个模型名称指示每个通用的硬件。举例来说,如果代表硬件组的模型代码(第一模型代码)是“BD-P1000”,则下层模型代码(第二模型代码)可以是“BD-P1000A/XE”和“BD-P1000B/XT”。
因此,基于包括在数据头中的硬件模型代码,每个固件更新文件具有只为特定硬件组或每个硬件模型设计的数据结构。
在操作130中,通过结合数据主体和数据头生成固件更新文件。
可选择地,数据头还可包括:指示第一模型代码和第二模型代码是否有效的模型标志字段;指示是否强制执行固件更新的更新模式信息;指示允许使用硬件的区域的区域码;和版本信息。数据头还可包括:数字签名,用于防止更新文件被伪造和改变。此外,包括在数据主体中的固件程序代码可被加密并被存储在数据头中,现在将对此做更详细的描述。
图2是示出根据本发明示例性实施例的生成固件更新文件的方法的流程图。参照图2,在操作210中,如上述参照图1的描述,生成具有可更新的固件程序代码的数据主体。
在操作220中,数据主体可被加密并被存储以增加安全性。在这种情况下,实际上是包括在数据主体中的固件程序代码而不是数据主体被加密。也就是,固件程序代码被加密以防止固件程序被改变,从而保证在硬件中安装固件之后,固件程序会像原来预期的一样正常运行。此外,包括在原始数据头中的未加密的信息(第一模型代码、第二模型代码和模型标志字段)可被***到加密的数据主体中,从而可以验证信息是否已被伪造或改变。然后,在更新处理期间,可对加密的数据主体进行解密,并将***到解码的数据主体的信息与包括在数据头中的信息进行比较,以验证包括在数据头中的模型代码的完整性。
在操作230中,生成数据头。数据头包括两种类型的模型代码:代表其固件程序代码彼此兼容的硬件组的第一模型代码和识别属于所述组的每个硬件的第二模型代码。数据头还可包括指示第一模型代码和第二模型代码是否有效的模型标志字段。可选择地,可省略模型标志字段,而可以以预定的方式使用现有的特定字段值。如稍后将会描述,如果区域码具有自由代码值,则模型标志字段可被设置为“1”,在这种情况下,当第一模型代码有效时执行相同的操作。
数据头还可包括更新模式信息,所述更新模式信息指示不考虑模型标志字段的值或第一模型代码和第二模型代码的值而必须执行固件更新。可选择地,可省略更新模式信息,而可以使用现有的特定字段值来代替。举例来说,可预先确定如果第一模型代码具有空值则必须更新固件。
此外,数据头可包括区域码和版本信息。区域码指示可使用硬件的区域(国家)。例如,如果产品出口到美国,指示美国的区域码被确定并被记录。否则,为了宽泛地对区域进行分类,可以以洲为单位记录区域码或无条件地将区域码记录为自由代码。这些区域码可被单独地记录或被共同记录(即,作为区域码的结合)。
版本信息代表包括在固件更新文件的数据主体中的固件程序代码的版本。版本信息可根据生成固件程序时的日期和改变该程序的日期而改变。
在操作240中,对数据主体和数据头进行数字签名,以防止数据主体和数据头被伪造和改变。操作240是对固件更新文件执行的加密处理,操作240允许用户认证、消息完整性测试以及认可测试。
基于公共密钥的加密算法和哈希(Hash)函数可用于数字签名。基于公共密钥的加密算法是使用彼此不同的加密密钥和描述密钥的非对称加密***。根据所述算法,发送者使用他/她的秘密密钥和接收者的公共密钥对数据进行加密,并发送加密的数据。然后,接收者使用他/她的秘密密钥和发送者的公共密钥对数据进行解密。所述非对称加密***主要用于分发加密密钥或会话密钥,或执行数字签名,而不是用于对消息的内容进行加密。哈希函数允许将特定的信息转换为预定长度的消息摘要。哈希函数是不允许从消息摘要导出初始消息的单向函数(不可逆性),不同初始消息具有相同消息摘要的概率是零。因此,哈希函数用于确定消息是否已被改变。哈希函数的典型的例子是消息摘要5(MD5)和安全哈希算法(SHA)。
在操作250中,通过结合数据主体和数据头并将数字签名添加到所述数据主体和数据头的结合来生成固件更新文件。
图3是示出根据本发明示例性实施例的固件更新文件的数据结构的框图。
如上所述,固件更新文件包括数据头310、数据主体320和数字签名330。此外,数据头310包括:代表其固件程序代码彼此兼容的硬件组的模型代码311,识别属于所述组的每个硬件的模型代码312,以及指示模型代码311和模型代码312是否有效的模型标志字段313。
图4是示出根据本发明示例性实施例的使用固件更新文件更新的方法的流程图。参照图4,所述方法包括:解释更新文件的数据头(操作410),从解释的数据头读取代表应用更新文件的硬件组的模型代码或识别属于所述组的每个硬件的模型代码作为第一模型代码(操作420),将读取的第一模型代码与包括在硬件中的第二模型代码进行比较(操作430),以及基于比较的结果更新硬件中的固件(操作440)。
在操作410中,由于如以上参照图1或图2所述,固件更新文件的头包含关于应用固件的硬件的各种信息,因此首先对固件更新文件的头进行解释。
在操作420中,从解释的固件更新文件的头读取代表应用更新文件的硬件组的模型代码或识别属于所述组的每个硬件的模型代码来作为第一模型代码。也就是,选择并且读取上述主模型代码和通用模型代码(包括在数据头中)中的一个,并将所述其中一个与应用固件更新文件的硬件中的模型代码进行比较。
在操作430中,将第一模型代码与包括在硬件中的模型代码(第二模型代码)进行比较。
在操作440中,基于比较的结果确定是否更新硬件中的固件。也就是说,如果满足模型代码的兼容性条件,例如,如果上述两个模型代码属于相同的硬件组或上述两个模型代码是相同的硬件模型代码,则执行进一步的操作以更新固件(将参考图5对此进行更详细的描述)。
图5是示出根据本发明另一示例性实施例的使用固件更新文件更新的方法的流程图。参照图5,首先,固件更新文件被分为三部分:数据头、数据主体和数字签名,并且分别对它们进行解析(操作510)。
然后,对解析的数字签名进行认证。举例来说,由于基于公共密钥的加密算法是使用彼此不同的加密密钥和描述密钥的非对称加密***,所以如果使用该算法生成数字签名,则使用固件更新文件制造商的公共密钥执行解密处理。虽然那些知道制造商的公共密钥的人可以看到固件更新文件,但没有人能否认制造商制造了更新文件(认可)。因此,可使用固件更新文件验证消息的完整性(操作520)。
当数字签名的认证成功时,如果解析的数据主体被加密,则对解析的数据主体进行解密(操作530)。然后,从解密的数据主体读取代表将应用更新文件的硬件组的模型代码以及识别属于所述组的每个硬件的模型代码,并确定读取的模型代码与包括在解析的数据头中的模型代码是否相同(操作540)。也就是说,对包括在解析的数据头中的模型代码的完整性进行验证。
然后,从数据头读取更新模式信息以确定是否强制执行固件的更新(操作550)。如果更新模式信息被设定为强制更新模式,则必须无条件地更新硬件中的固件(操作590)。
如果包括在数据头中并代表将应用更新文件的硬件组的模型代码已被预先确定为具有空值,则可确定更新模式信息被设定为强制更新模式。
如果在操作550确定更新模式信息并未指示强制更新模式,即,如果更新模式信息指示选择更新模式,则读取模型标志字段(操作560)。
模型标志字段可具有一比特值“1”或“0”,其中,可交替使用1和0。举例来说,如果模型标志字段被设定为“1”,则将主模型名称进行相互比较,即,将包括在数据头中并代表硬件组的模型代码与包括在实际应用固件更新文件的硬件中的硬件模型代码进行比较(操作560a)。因此,如上所述,如果数据头中的主模型名称为“BD-P1000”,将被更新的硬件的模型名称为“BD-P1000A/XE”,则硬件模型“BD-P1000A/XE”被包括在硬件组“BD-P1000”中,因此可更新硬件中的固件。
当主模型名称被使用时,即,当根据模型标志字段的值激活代表硬件组的模型代码时,执行操作560a。然而,可直接使用通用硬件模型名称。
如果直接使用硬件模型名称,则意味着模型标志字段被设定为“0”(操作560b)。举例来说,如果固件更新文件的数据头包括标题为“BD-P1000”的硬件组模型代码和标题为“BD-P1000A/XT”的硬件模型代码,并且模型标志字段被设定为“0”,则必须对上述硬件模型代码进行比较以确定是否有必要进行固件更新。因此,在这种情况下,不能使用固件更新文件更新标题为“BD-P1000A/XE”的硬件固件。也就是说,如果硬件模型代码不同,则不再进一步执行更新并直接结束所述方法。这是因为固件更新文件被制造以使得根据硬件模型的类型限制固件的更新。
可选择地,在操作560中,可以以不具有模型标志字段的预定的方式使用现有的特定字段值。例如,如果区域码被使用并且是自由代码,则与当模型标志字段被设定为“1”时的情况类似地执行操作560a。相反地,如果区域码被设定为特定值,则与当模型标志字段被设定为“0”时的情况类似地执行操作560b。
可选择地,图5的方法还可包括将包括在硬件中的区域码与包括在固件更新文件中的区域码进行比较(操作570)。如果区域码是自由代码,则无条件跳过操作570。如果硬件中的区域码是洲代码并且固件更新文件中的区域码是国家代码,则确定所述国家代码是否包括在所述洲代码中。如果区域码是国家代码,则确定它们是否彼此相同。
图5的方法还可包括检测硬件中预设的固件版本信息以确定是否更新固件更新文件(操作580)。也就是,只有当固件更新文件的版本比先前固件的版本新时,才执行固件更新。因此,检测硬件中的固件的版本,然后根据检测结果更新固件(操作590)。
然而,如果能在固件更新之前执行执行认证数字签名的操作520,则不限制执行操作520的时间点。如果能在解释模型标志字段的操作560之前执行解释更新模式信息的操作550,则不限制执行操作550的时间点。
图6是根据本发明示例性实施例的用于生成固件更新文件的设备600的框图。
设备600包括固件生成器610、头生成器620和结合单元630。
固件生成器610生成包括可更新的固件程序代码的数据主体,并将数据主体发送到结合单元630。
头生成器620生成包括应用数据主体的硬件的模型代码的数据头。硬件模型代码包括代表其固件程序代码彼此兼容的硬件组的第一模型代码和识别属于所述组的每个硬件的第二模型代码。
结合单元630接收数据主体和数据头,并通过对它们进行结合来生成固件更新文件(RUF)。尽管未显示,结合单元630还可包括数字签名单元和加密单元,其中,所述数字签名单元有选择地对数据主体和数据头进行数字签名,以防止它们被伪造或改变,所述加密单元对具有固件程序代码的数据主体进行加密。
图7是根据本发明另一示例性实施例的使用固件更新文件更新的设备700的框图。设备700包括:头解释器710、模型确定单元720、模型比较单元730和更新单元740。
头解释器710对包括在更新文件中的数据头进行解释。模型确定单元720从解释的数据头读取代表应用更新文件的硬件组的模型代码或识别属于所述组的每个硬件的模型代码作为第一模型代码。
模型比较单元730将第一模型代码与包括在硬件中并代表硬件模型的第二模型代码进行比较。
更新单元740基于从模型比较单元730接收的比较结果更新硬件中的固件。
可选择地,设备700还可包括语法解析器(未显示),所述语法解析器将更新文件分成数据头、数据主体和数字签名,并分别地对它们进行解析,数据头具有代表硬件组的模型代码和代表属于所述组的每个硬件的模型代码,数据主体具有可更新的固件程序代码,数字签名防止固件更新文件被伪造或改变。尽管未显示,语法解析器可包括:数字签名认证单元,对解析的数字签名进行认证;解密单元,如果数字签名认证单元成功完成认证并且如果解析的数据主体被加密,则对数据主体进行解密;以及更新模式确定单元,对来自由头解释器710解释的数据头的更新模式信息进行解释,以确定是否强制执行固件的更新。
根据本发明的生成固件更新文件的方法和使用所述固件更新文件更新固件的方法可实现为计算机程序。可将所述计算机程序存储在计算机可读介质中,并使用通用数字计算机执行所述计算机程序。
此外,根据本发明的固件更新文件的数据结构可经各种装置被记录在计算机可读介质中。
所述计算机可读介质可以是任何可存储其后能由计算机***读取的数据的数据存储装置,所述计算机可读介质的例子包括:只读存储器(ROM)、随机存取存储器(RAM)、压缩盘(CD)-ROM、磁带、软盘、光学数据存储装置等。
如上所述,根据示例性实施例的生成固件更新文件的方法和设备以及使用所述固件更新文件更新固件的方法和设备通过使用固件更新文件根据硬件模型的类型对固件的更新进行限制,可防止不恰当的模型中的固件被不加选择地更新。此外,由于可根据主模型的类型更新固件,因此可更灵活地对可更新的硬件范围进行分组。
因此,由于通过限制更新可防止固件的不加选择的更新,因此可防止硬件制造公司和固件程序的版权所有者之间的法律纠纷。
此外,可通过对固件程序进行加密增加固件程序的安全性,并可在固件的更新期间使用数字签名对固件的完整性进行验证。
尽管参照示例性实施例具体显示和描述了本发明,但本领域的普通技术人员应该理解,在不脱离由权利要求限定的本发明的精神和范围的情况下,可以在形式和细节上进行各种改变。

Claims (24)

1.一种生成固件更新文件的方法,所述方法包括:
生成包括将被更新的固件程序代码的数据主体,其中,数据主体是记录有固件的必要的程序代码的固件更新文件或只读存储器更新文件的主体;
生成包括应用数据主体的硬件模型代码的数据头,其中,所述硬件模型代码包括代表具有彼此兼容的固件程序代码的硬件组的第一模型代码和识别属于所述组的每个硬件的第二模型代码;和
通过结合所述数据主体和所述数据头,生成固件更新文件。
2.如权利要求1所述的方法,其中,所述数据头还包括指示第一模型代码和第二模型代码是否有效的模型标志字段。
3.如权利要求2所述的方法,其中,所述数据头还包括:更新模式信息,指示是否不考虑模型标志字段的值而强制执行固件更新。
4.如权利要求2所述的方法,其中,如果强制执行固件更新,则生成数据头的步骤包括:将包括在所述数据头中的第一模型代码设置为空值。
5.如权利要求1所述的方法,其中,所述数据主体还包括第一模型代码和第二模型代码。
6.如权利要求5所述的方法,其中,所述数据头还包括应用所述数据主体的硬件的区域码。
7.如权利要求6所述的方法,其中,所述硬件的区域码包括自由代码、洲代码和国家代码中的至少一种。
8.如权利要求7所述的方法,其中,所述数据头还包括固件程序代码的版本信息。
9.如权利要求1所述的方法,其中,所述生成固件更新文件的步骤包括:对所述数据主体和所述数据头进行数字签名,以防止所述数据主体和所述数据头被伪造和改变。
10.如权利要求1所述的方法,其中,所述生成固件更新文件的步骤包括:对所述数据主体进行加密。
11.一种使用固件更新文件更新固件的方法,所述方法包括:
对包括在更新文件中的数据头进行解释;
从所述数据头读取代表应用更新文件的硬件组的模型代码和识别属于所述组的每个硬件的模型代码中的一个作为第一模型代码;
将第一模型代码与包括在硬件中的第二模型代码进行比较,其中,所述第二模型代码代表所述硬件的模型;和
基于比较的结果,更新硬件中的固件,
其中,读取第一模型代码的步骤包括:
对用于指示代表硬件组的模型代码和识别属于所述组的每个硬件的模型代码是否有效的模型标志字段进行解释;
基于所述模型标志字段的值,将代表所述组的模型代码和识别属于所述组的每个硬件的模型代码中的一个确定为第一模型代码。
12.如权利要求11所述的方法,其中,如果根据所述模型标志字段的值读取代表硬件组的模型代码作为第一模型代码,则所述更新硬件中的固件的步骤包括:只有在第二模型代码包括在第一模型代码中的情况下,才更新硬件中的固件。
13.如权利要求11所述的方法,其中,如果根据所述模型标志字段的值读取识别属于所述组的每个硬件的模型代码是有效的模型代码作为第一模型代码,则所述更新硬件中的固件的步骤包括:只有在第二模型代码与第一模型代码相同的情况下,才更新硬件中的固件。
14.如权利要求13所述的方法,还包括:
从解释的数据头读取应用更新文件的硬件的区域码;和
将读取的区域码与包括在硬件中的硬件的区域码进行比较,以确定是否更新固件。
15.如权利要求14所述的方法,还包括:将硬件中预设的固件版本信息与包括在解释的数据头中的版本信息进行比较,以确定是否更新固件。
16.如权利要求11所述的方法,还包括:
对用于指示是否强制更新固件的更新模式信息进行解释,其中,所述更新模式信息包括在所述数据头中;和
如果对更新模式信息进行解释的结果指示强制更新模式,则不考虑第一模型代码和第二模型代码的比较结果而更新硬件中的固件。
17.如权利要求16所述的方法,其中,如果包括在数据头中且代表应用更新文件的硬件组的模型代码具有空值,则所述对更新模式信息进行解释的步骤包括:对所述更新模式信息进行解释以指示强制更新模式。
18.如权利要求11所述的方法,还包括:通过将所述更新文件分成数据头、数据主体和数字签名来对所述更新文件进行解析,其中,所述数据头包括代表应用所述更新文件的硬件组的模型代码和识别属于所述组的每个硬件的模型代码,所述数据主体具有将被更新的固件程序代码,所述数字签名防止所述更新文件被伪造和改变。
19.如权利要求18所述的方法,还包括:对解析的数字签名进行认证,
其中,如果认证成功,则更新硬件中的固件。
20.如权利要求19所述的方法,如果解析的数据主体被加密,则所述方法还包括:
解密所述数据主体;
对代表应用所述更新文件的硬件组的模型代码和识别属于所述组的每个硬件的模型代码进行解释,其中,被解释的模型代码包括在所述解密的数据主体中;和
将被解释的模型代码与包括在解析的数据头中的模型代码进行比较,以验证包括在解析的数据头中的模型代码的完整性。
21.一种生成固件更新文件的设备,所述设备包括:
固件生成器,生成包括将被更新的固件程序代码的数据主体,其中,数据主体是记录有固件的必要的程序代码的固件更新文件或只读存储器更新文件的主体;
头生成器,生成包括应用所述数据主体的硬件的模型代码的数据头,其中,所述模型代码包括:代表具有彼此兼容的固件程序代码的硬件组的第一模型代码和识别属于所述组的每个硬件的第二模型代码;和
结合单元,通过结合所述数据主体和所述数据头生成固件更新文件。
22.如权利要求21所述的设备,其中,所述结合单元包括:
数字签名单元,对所述数据主体和所述数据头进行数字签名,以防止所述数据主体和所述数据头被伪造和改变;和
加密单元,对具有所述固件程序代码的数据主体进行加密。
23.一种使用固件更新文件更新固件的设备,所述设备包括:
头解释器,对包括在更新文件中的数据头进行解释;
模型确定单元,从所述数据头读取代表应用更新文件的硬件组的模型代码和识别属于所述组的每个硬件的模型代码中的一个作为第一模型代码;
模型比较单元,将第一模型代码与包括在硬件中的第二模型代码进行比较,其中,所述第二模型代码代表所述硬件的模型;和
更新单元,基于比较的结果,更新硬件中的固件,
其中,模型确定单元对用于指示代表硬件组的模型代码和识别属于所述组的每个硬件的模型代码是否有效的模型标志字段进行解释,基于所述模型标志字段的值,将代表所述组的模型代码和识别属于所述组的每个硬件的模型代码中的一个确定为第一模型代码。
24.如权利要求23所述的设备,还包括:
语法解析器,通过将所述更新文件分成数据头、数据主体和数字签名来对所述更新文件进行解析,其中,所述数据头具有代表应用所述更新文件的硬件组的模型代码和识别属于所述组的每个硬件的模型代码,所述数据主体具有将被更新的固件程序代码,所述数字签名防止所述更新文件被伪造和改变;
数字签名认证单元,对由语法解析器解析的数字签名进行认证;
解密单元,如果所述数字签名认证单元成功地完成认证,并且如果解析的数据主体被加密,则对所述解析的数据主体进行解密;和
更新模式确定单元,对包括在由头解释器解释的数据头中的更新模式信息进行解释,其中,所述更新模式信息指示是否强制执行固件更新。
CN2008100015904A 2007-04-06 2008-01-14 生成固件更新文件和更新固件的方法和设备 Expired - Fee Related CN101281468B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020070034421A KR20080090939A (ko) 2007-04-06 2007-04-06 펌웨어의 업데이트 파일 생성 방법, 펌웨어 업데이트파일을 이용한 업데이트 방법 및 그 장치
KR10-2007-0034421 2007-04-06

Publications (2)

Publication Number Publication Date
CN101281468A CN101281468A (zh) 2008-10-08
CN101281468B true CN101281468B (zh) 2013-03-27

Family

ID=39828099

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100015904A Expired - Fee Related CN101281468B (zh) 2007-04-06 2008-01-14 生成固件更新文件和更新固件的方法和设备

Country Status (3)

Country Link
US (1) US20080250403A1 (zh)
KR (1) KR20080090939A (zh)
CN (1) CN101281468B (zh)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090228697A1 (en) * 2008-03-07 2009-09-10 Kabushiki Kaisha Toshiba Information processing apparatus, storage drive and firmware update method
US8332839B2 (en) * 2008-08-15 2012-12-11 Lsi Corporation Method and system for modifying firmware image settings within data storage device controllers
CN101770372B (zh) * 2008-12-31 2012-12-05 亚旭电脑股份有限公司 固件更新***、方法以及固件更新***的固件建构方法
CN101790252B (zh) * 2009-01-22 2013-03-27 英华达(上海)电子有限公司 一种固件更新的方法和***
CN102811436B (zh) * 2011-06-03 2017-06-27 联想(北京)有限公司 一种固件更新方法及装置
US8683457B1 (en) * 2011-06-17 2014-03-25 Western Digital Technologies, Inc. Updating firmware of an electronic device by storing a version identifier in a separate header
WO2013137633A1 (ko) * 2012-03-16 2013-09-19 주식회사 안랩 디지털 서명된 pe 파일용 정보 추가/열람 장치 및 방법
US8972973B2 (en) 2012-06-27 2015-03-03 Microsoft Technology Licensing, Llc Firmware update discovery and distribution
US9110761B2 (en) * 2012-06-27 2015-08-18 Microsoft Technology Licensing, Llc Resource data structures for firmware updates
US9235404B2 (en) * 2012-06-27 2016-01-12 Microsoft Technology Licensing, Llc Firmware update system
EP2704053B1 (en) * 2012-08-27 2016-09-21 Giesecke & Devrient GmbH Method and system for updating a firmware of a security module
US9218178B2 (en) 2012-08-29 2015-12-22 Microsoft Technology Licensing, Llc Secure firmware updates
US8898654B2 (en) 2012-08-29 2014-11-25 Microsoft Corporation Secure firmware updates
CN103777971A (zh) * 2012-10-23 2014-05-07 新加坡商华科国际股份有限公司 电子装置、更新固件的方法与电脑可读取记录媒体
US9684529B2 (en) * 2013-02-21 2017-06-20 Red Hat Israel, Ltd. Firmware and metadata migration across hypervisors based on supported capabilities
CN104427120B (zh) * 2013-09-06 2017-03-15 展讯通信(上海)有限公司 通信终端及其非易失性数据的处理方法
JP2015052996A (ja) * 2013-09-09 2015-03-19 キヤノン株式会社 画像形成装置、及び画像形成装置の制御方法
CN104572153A (zh) * 2013-10-23 2015-04-29 上海汽车集团股份有限公司 一种用于车辆刷新的刷新数据转换方法
US9304766B2 (en) * 2014-02-21 2016-04-05 Red Hat Israel, Ltd. Determining character sequence digest
CN105024843A (zh) * 2014-04-29 2015-11-04 国基电子(上海)有限公司 电缆调制解调器、服务器及升级固件的方法
CN104573527A (zh) * 2014-12-30 2015-04-29 北京工业大学 一种基于更新安全机制的uefi***更新方法
DE102015112040A1 (de) 2015-07-23 2017-01-26 Phoenix Contact Gmbh & Co. Kg Verfahren und System zur Firmware-Aktualisierung einer Steuereinrichtung zur Prozesssteuerung
CN105159733A (zh) * 2015-10-15 2015-12-16 珠海格力电器股份有限公司 空调及其远程升级的数据传输方法和装置及***
WO2019036795A1 (en) * 2017-08-22 2019-02-28 Absolute Software Corporation MONITORING INTEGRITY OF A FIRMWARE USING "SILVER" MEASURES
US10534936B2 (en) * 2017-08-30 2020-01-14 Dell Products, Lp System and method for enabling and disabling of baseboard management controller configuration lockdown
US11210084B2 (en) * 2018-03-09 2021-12-28 Samsung Electronics Co., Ltd. Integrated single FPGA and solid state disk controller
CN108595199A (zh) * 2018-04-19 2018-09-28 济南浪潮高新科技投资发展有限公司 一种一键升级嵌入式***固件的方法
US10616944B2 (en) * 2018-07-06 2020-04-07 American Megatrends International, Llc Computer system and method thereof for sharing of wireless connection information between UEFI firmware and OS
CN110806887A (zh) * 2019-10-29 2020-02-18 华工正源智能终端(孝感)有限公司 软件安全升级方法及装置
CN111142906B (zh) * 2019-12-25 2023-11-10 浙江大华技术股份有限公司 一种设备固件升级方案迭代的方法、装置与设备
EP4109237A1 (en) * 2021-06-22 2022-12-28 ABB Schweiz AG Computer-implemented method for updating a process control system
KR20230001358A (ko) * 2021-06-28 2023-01-04 주식회사 엘지에너지솔루션 하드웨어 버전 정보 확인을 통한 소프트웨어 업데이트 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1215409C (zh) * 2002-09-14 2005-08-17 三星电子株式会社 固件更新方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7095858B2 (en) * 2001-05-10 2006-08-22 Ranco Incorporated Of Delaware System and method for securely upgrading firmware
JP2007535718A (ja) * 2003-07-07 2007-12-06 クリプターグラフィー リサーチ インコーポレイテッド 海賊行為を規制し、インタラクティブコンテンツを使用可能にするための再プログラマブルなセキュリティ
US7603380B2 (en) * 2003-07-11 2009-10-13 Computer Associates Think, Inc. System and method for multiple model object sharing
US7337311B2 (en) * 2003-11-18 2008-02-26 Giga-Byte Technology Co., Ltd. Method for controlling upgrade of firmware
US7765538B2 (en) * 2004-10-29 2010-07-27 Hewlett-Packard Development Company, L.P. Method and apparatus for determining which program patches to recommend for installation
US20070093243A1 (en) * 2005-10-25 2007-04-26 Vivek Kapadekar Device management system
US7904901B1 (en) * 2005-11-02 2011-03-08 Parallels Holdings, Ltd. System and method for controlling installed third party software components

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1215409C (zh) * 2002-09-14 2005-08-17 三星电子株式会社 固件更新方法

Also Published As

Publication number Publication date
US20080250403A1 (en) 2008-10-09
KR20080090939A (ko) 2008-10-09
CN101281468A (zh) 2008-10-08

Similar Documents

Publication Publication Date Title
CN101281468B (zh) 生成固件更新文件和更新固件的方法和设备
US20020184259A1 (en) Data reproducing/recording apparatus/ method and list updating method
US10181166B2 (en) Secure content distribution system
CN101025977B (zh) 信息处理设备及方法和信息记录介质制造设备及方法
US8600064B2 (en) Apparatus, method, and computer program product for processing information
US20060168580A1 (en) Software-management system, recording medium, and information-processing device
US8370647B2 (en) Information processing apparatus, information processing method, and program
EP1855281B1 (en) Apparatus for writing data to a medium
US7647646B2 (en) Information input/output system, key management device, and user device
WO2002059894A1 (fr) Support d'enregistrement, dispositif de traitement d'informations, serveur de distribution de contenu, procede, programme et son support d'enregistrement
US20020154779A1 (en) Data recording/reproducing device and saved data processing method, and program proving medium
CN102365839B (zh) 密钥安装***
JP5097130B2 (ja) 情報端末、セキュリティデバイス、データ保護方法及びデータ保護プログラム
US8307408B2 (en) System and method for file processing and file processing program
JP2012110026A (ja) 長期にリニューアル可能なセキュリティを提供するコンテンツセキュリティ方法、その装置およびコンピュータ読取可能記憶媒体
US20040003239A1 (en) Authentication communication system, authentication communication apparatus, and authentication communication method
CN110825639B (zh) 一种防篡改时间的软件License验证方法
US20100313034A1 (en) Information processing apparatus, data recording system, information processing method, and program
JP2009272002A (ja) 情報処理装置、ディスク、および情報処理方法、並びにプログラム
JP2009093229A (ja) プログラム制御装置及び方法とプログラム
CN102937907A (zh) 利用sd卡片进行授权软体安装更新使用的方法
CN100472391C (zh) 许可信息管理设备和许可信息管理方法
JP4245917B2 (ja) ソフトウェアの不正使用防止システム
JP2002182770A (ja) 正規ユーザ認証機能付き記録媒体
JP4636494B2 (ja) Rfidにおける実用的セキュリティ確保の方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130327

Termination date: 20200114