掌桥专利:专业的专利平台
掌桥专利
首页

加密固件更新方法

文献发布时间:2023-06-19 19:30:30


加密固件更新方法

技术领域

本申请涉及固件更新方法,尤其涉及加密固件更新方法。

背景技术

终端装置(例如:嵌入式终端装置)可能只具备相当有限的计算能力与存储器资源。当所述终端装置的原本固件需要被升级时,所述升级可能是通过空中下载技术(Over-The-Air Technology(OTA))以实现。通过所述OTA的升级方式包括全量升级和差分升级。全量升级是指所述终端装置下载完整的新的固件(亦即:全量升级包)以取代所述原本固件;然而,此方式需要下载大量数据、耗费很长的下载时间、并耗用所述终端装置的空闲的大量存储器,因此,所述方式的用户体验不理想,且所述终端装置不一定具有空闲的大量存储器。相较之下,差分升级须下载依据所述原本固件与所述新的固件之间的差异所制作的差分升级包,再利用所述差分升级包升级所述原本固件;由于所述差分升级包的大小相当小(例如:所述差分升级包的大小小于所述新的固件的大小的10%),此方式仅耗费短短的下载时间,也仅耗用所述终端装置的空闲的少量存储器。

为了确保所述终端装置的安全性,所述终端装置的原本固件可能是加密的。然而,现有的差分升级技术无法升级加密的固件。

发明内容

本申请的目的之一在于提供一种加密固件更新方法,能够以差分升级方式升级加密的固件。

本申请的加密固件更新方法的实施例是由复数个装置合作执行。所述实施例包含下列步骤:远端装置存储加密的待升级固件与加密的目标固件,其中所述远端装置包含于服务器或独立于所述服务器之外;所述远端装置解密所述加密的待升级固件以获得解密的待升级固件,并解密所述加密的目标固件以获得解密的目标固件;所述远端装置以所述解密的目标固件为基准,对所述解密的待升级固件执行差分操作,以产生差分升级包;所述远端装置加密所述差分升级包以产生加密的差分升级包存储于所述服务器,或者所述远端装置将所述差分升级包存储于所述服务器;终端装置经由通信网路从所述服务器接收所述加密的差分升级包或所述差分升级包,其中当所述终端装置接收所述加密的差分升级包时,所述终端装置解密所述加密的差分升级包以得到所述差分升级包;所述终端装置解密存储于所述终端装置的所述加密的待升级固件,以获得所述解密的待升级固件;所述终端装置依据所述解密的待升级固件与所述差分升级包产生所述解密的目标固件;以及所述终端装置加密所述解密的目标固件以产生所述加密的目标固件,并存储所述加密的目标固件。

本申请的加密固件更新方法的实施例是由终端装置来执行。所述实施例包含下列步骤:经由通信通道接收加密的差分升级包或差分升级包,其中当所述终端装置接收所述加密的差分升级包时,所述终端装置解密所述加密的差分升级包以得到所述差分升级包;解密加密的待升级固件,以获得解密的待升级固件;依据所述解密的待升级固件与所述差分升级包产生解密的目标固件;以及加密所述解密的目标固件以产生加密的目标固件,并存储所述加密的目标固件。

有关本申请的特征、实作与功效,兹配合图式作较佳实施例详细说明如下。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1显示本申请的加密固件更新方法的实施例;以及

图2显示图1的步骤S130的实作范例。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本说明书公开一种加密固件更新方法,能够以差分升级方式升级加密的固件。

图1显示本申请的加密固件更新方法的实施例。图1的实施例是由复数个装置合作执行。所述复数个装置包含远端装置、服务器与终端装置,其中所述远端装置可包含于所述服务器或独立于所述服务器之外。所述实施例包含下列步骤:

S110:所述远端装置存储加密的待升级固件与加密的目标固件。

举例而言,所述远端装置是具有解密与加密功能的电路,存储所述加密的待升级固件或所述加密的目标固件。所述远端装置取得所述些固件的方式不影响本申请的实施,也不在本申请的讨论范围内。

S120:所述远端装置解密所述加密的待升级固件以获得解密的待升级固件,并解密所述加密的目标固件以获得解密的目标固件。

上述解密操作可由已知的/自行开发的技术来实现,其细节不在本申请的讨论范围内。

S130:所述远端装置以所述解密的目标固件为基准,对所述解密的待升级固件执行差分操作,以产生差分升级包。

所述差分操作所采用的演算法例如是bsdiff演算法、hdiff演算法或其它已知的/自行开发的演算法。所述差分升级包的大小远小于所述目标固件的大小;举例而言,所述差分升级包的大小小于所述目标固件的大小的10%,然此并非本申请的实施限制。

S140:所述远端装置加密所述差分升级包以产生加密的差分升级包,然后将所述加密的差分升级包存储于所述服务器;或者所述远端装置将未加密的所述差分升级包存储于所述服务器。

上述加密操作可由已知的/自行开发的技术来实现,其细节不在本申请的讨论范围内。

S150:所述终端装置经由通信网路从所述服务器接收所述加密的差分升级包或所述差分升级包,其中当所述终端装置接收所述加密的差分升级包时,所述终端装置解密所述加密的差分升级包以得到所述差分升级包。

所述通信网路例如是无线通信网路,其包含无线连线、蓝牙连线以及行动网路连线的至少其中之一,然此并非本申请的实施限制。另外,上述解密操作可由已知的/自行开发的技术来实现,其细节不在本申请的讨论范围内。

S160:所述终端装置解密存储于所述终端装置的所述加密的待升级固件,以获得所述解密的待升级固件。

上述解密操作可由已知的/自行开发的技术来实现,其细节不在本申请的讨论范围内。

S170:所述终端装置依据所述解密的待升级固件与所述差分升级包产生所述解密的目标固件。

S180:所述终端装置加密所述解密的目标固件以产生所述加密的目标固件,并存储所述加密的目标固件于所述终端装置。

所述加密的目标固件是用来取代原本存储于所述终端装置的所述加密的待升级固件。

关于图1的步骤S110~S120的实作范例,所述加密的待升级固件包含N个加密区块,并包含标头部分(header part)与数据部分(data part),所述标头部分包含所述N个加密区块的分区块信息(block partition message)与区块大小信息(block sizemessage),所述远端装置依据所述分区块信息与所述区块大小信息解密所述N个加密区块以得到所述解密的待升级固件的N个解密区块,所述N为大于一的整数。上述实作范例可选地包含下述技术特征:所述N个解密区块包含所述数据部分的启动分区数据(bootpartition data)以及固件分区数据(firmware partition data);以及所述标头部分未加密。值得注意的是,所述待升级固件的N个解密区块的任二个区块可具有相同或不同大小,每个解密区块的大小可按所述终端装置的空闲的存储空间的存储量而限定,或按其它已知的/自行定义的条件(例如:所述终端装置的存储媒体的擦写范围(erase/write area))而限定;然而,在实施为可行的前提下,上述特征非本申请的实施的限制。

关于图1的步骤S110~S120的实作范例,所述远端装置从所述服务器取得的加密的目标固件包含N个加密区块,并包含标头部分与数据部分,所述标头部分包含所述N个加密区块的分区块信息与区块大小信息,所述远端装置依据所述分区块信息与所述区块大小信息解密所述N个加密区块以得到所述解密的目标固件的N个解密区块。上述实作范例可选地包含下述技术特征:所述N个解密区块包含所述数据部分的启动分区数据及/或固件分区数据,所述标头部分未加密。值得注意的是,所述目标固件的N个解密区块的任二个区块可具有相同或不同大小,每个解密区块的大小可按所述终端装置的空闲的存储空间的存储量而限定,或按其它已知的/自行定义的条件(例如:所述终端装置的存储媒体的擦写范围(erase/write area))而限定;然而,在实施为可行的前提下,上述特征非本申请的实施的限制。另值得注意的是,所述待升级固件的N个解密区块的第K区块的大小可同于所述目标固件的N个解密区块的第K区块的大小,其中所述K在此为不大于所述N的正整数;然而,在实施为可行的前提下,上述特征非本申请的实施的限制。

图2显示图1的步骤S130的实作范例。请参阅图2。所述解密的待升级固件210可区分为复数个区块(后称N个待升级区块),所述N个待升级区块依序包含第一待升级区块、第二待升级区块、第三待升级区块、第四待升级区块、…、第(N-1)待升级区块以及第N待升级区块(亦即:图2的BlockO_1、BlockO_2、BlockO_3、BlockO_4、…、BlockO_(N-1)以及BlockO_N),所述N为大于一的整数。所述解密的目标固件220可区分为复数个区块(后称N个目标区块),所述N个目标区块依序包含第一目标区块、第二目标区块、第三目标区块、第四目标区块、…、第(N-1)目标区块以及第N目标区块(亦即:图2的BlockD_1、BlockD_2、BlockD_3、BlockD_4、…、BlockD_(N-1)以及BlockD_N)。所述差分操作包含每个目标区块与所述N个待升级区块BlockO_1~BlockO_N的至少一部分之间的区块差分操作;举例而言,所述差分操作包含N次区块差分操作,每次区块差分操作是基于第K目标区块(例如:第四目标区块BlockD_4)与(N-K+1)个待升级区块(例如:第四待升级区块至第N待升级区块)之间的差异,其中所述K在此为不大于所述N的正整数。

值得注意的是,所述待升级固件210被区分为复数个区块以及所述目标固件220被区分为复数个区块是因为所述终端装置的空闲的存储空间可能不充裕。通过将固件分为多个区块,图1的步骤S170~S180可使用所述差分升级包分别升级所述待升级固件的复数个区块,以避免所述升级操作一次耗用太多存储空间;然而,若所述终端装置的空闲的存储空间足够,所述些固件不必被区分为多个区块。

关于图1的步骤S140的实作范例,所述差分升级包可区分为一或多个区块(后称M个区块),所述远端装置加密所述M个区块以产生加密的差分升级包,所述加密的差分升级包含M个加密区块,并包含标头部分与数据部分,所述标头部分包含所述M个加密区块的分区块信息与区块大小信息,所述M为正整数。由于差分升级包的大小与待升级或目标区块的大小相差较大,所以M与N之间没必然的关系。上述实作范例可选地包含下述技术特征:所述M个加密区块包含所述数据部分的启动分区数据及/或固件分区数据的至少一部分,所述标头部分未加密。

关于图1的步骤S150的实作范例,所述终端装置从所述服务器接收所述加密的差分升级包,所述加密的差分升级包含前述M个加密区块、标头部分与数据部分,所述终端装置依据所述标头部分的分区块信息与区块大小信息解密所述M个加密区块,以得到所述差分升级包。

关于图1的步骤S160的实作范例,所述加密的待升级固件存储于所述终端装置的N个存储区块;在所述终端装置解密所述N个存储区块的第K存储区块的加密数据以产生所述第K存储区块的解密数据后,所述终端装置以所述第K存储区块的解密数据覆写所述第K存储区块的加密数据,然后再解密所述N个存储区块的第(K+1)存储区块的加密数据以产生所述第(K+1)存储区块的解密数据,接着所述终端装置再以所述第(K+1)存储区块的解密数据覆写所述第(K+1)存储区块的加密数据,其余依此类推,其中所述K在此为小于所述N的正整数。值得注意的是,上述分区块操作是为了避免所述解密操作一次耗用太多存储空间;然而,若所述终端装置的空闲的存储空间足够,所述分区块操作即非必需。

关于图1的步骤S180的实作范例,所述终端装置将所述解密的待升级固件存储于所述终端装置的N个存储区块;所述终端装置所产生的所述解密的目标固件包含N笔数据;在所述终端装置加密所述N笔数据的第K笔数据以产生第K笔加密数据后,所述终端装置以所述第K笔加密数据覆写所述N个存储区块的第K存储区块的数据,然后再加密所述N笔数据的第(K+1)数据以产生第(K+1)笔加密数据,接着所述终端装置再以所述第(K+1)笔加密数据覆写所述N个存储区块的第(K+1)存储区块的数据,其余依此类推。值得注意的是,上述分区块操作是为了避免所述加密操作一次耗用太多存储空间;然而,若所述终端装置的空闲的存储空间足够,所述分区块操作即非必需。

本申请的加密固件更新方法的另一实施例是由前述终端装置来执行,并包含图1的步骤S150~S180。相较于图1,本实施例不限制所述差分升级包的产生方式;换言之,任何能提供所述差分升级包的方式均能应用于本实施例。于本实施例的实作范例中,所述终端装置主动地发出升级询问封包给所述服务器,以接收所述加密的差分升级包或所述差分升级包;举例而言,所述终端装置主动地提供所述终端装置的待升级固件的资讯(例如:版本资讯)给所述服务器,以使所述服务器依据所述待升级固件的资讯以及所述目标固件的资讯(例如:版本资讯),决定是否提供所述加密的差分升级包或所述差分升级包给所述终端装置。于本实施例的另一实作范例中,所述终端装置不发出升级询问封包,并被动地接收所述服务器主动地发布加密的差分升级包或差分升级包;举例而言,所述服务器知悉并维护所述终端装置的固件的版本资讯以及最新固件的版本资讯,并于所述最新固件的版本不同于所述终端装置的固件的版本时,主动地发布加密的差分升级包或差分升级包给所述终端装置。由于本领域的普通技术人员能够参酌图1~2的实施例的申请来了解本实施例的细节与变化,重复及冗余的说明在此省略。

请注意,在实施为可能的前提下,本领域的普通技术人员可选地实施前述任一实施例的部分或全部技术特征,或选择性地实施前述复数个实施例的部分或全部技术特征的组合;简言之,实施本申请的方式是弹性的。

综上所述,本申请的加密固件更新方法能够以差分升级方式升级加密的固件。

虽然本申请的实施例如上所述,然而所述些实施例并非用来限定本申请,本领域的普通技术人员可依据本申请的明示或隐含的内容对本申请的技术特征施以变化,凡此种种变化均可能属于本申请所寻求的专利保护范畴,换言之,本申请的专利保护范围须视本说明书之权利要求所保护的范围为准。

相关技术
  • 固件更新系统、方法以及固件更新系统的固件建构方法
  • 固件更新系统、方法以及固件更新系统之固件建构方法
技术分类

06120115931506