包括从升级中发生的故障和错误自动恢复的电子文件升级的制作方法

文档序号:7580171阅读:157来源:国知局
专利名称:包括从升级中发生的故障和错误自动恢复的电子文件升级的制作方法
技术领域
所公开的实施例涉及更新和维护电子文件。
背景在处理器或中央处理单元(CPU)上运行以提供主机设备中的功能性的软件经常随着时间而改变。这种改变可能从改正软件文件中的缺陷或错误,适于发展的技术,或者添加新特征或功能的需要所导致。特别地,被掌管(host)在移动无线设备上的嵌入式软件组件经常包括大量需要改正的软件缺陷。
软件包括一个或多个以人类可读的美国信息交换标准码(ASCII)明文文件形式或二进制码形式的文件。软件文件可以被分成经常被称为模块或者组件的较小单元。UNIX平台或者个人计算机(PC)包括多个软件组件,并且每个软件组件通过由对应的操作系统(OS)支持的文件系统来独立地管理和更新。用来更新被掌管在UNIX平台或PC上的软件文件或软件组件的信息可通过互联网传递或从第二存储媒介,如软盘,光盘只读存储器(CD-ROM),或小型闪卡(compact flash card)装入。
相反,在移动无线设备中,典型地使用实时操作系统(RTOS),其中所有软件组件被链接为单个的大文件。此外,没有文件系统支持被典型地提供在这些移动无线设备中。另外,单个的大文件需要使用无线通信链路或空中传播(over-the-air,OTA)链路如无线电链路来装入或嵌入到该设备中并被更新。从而,产生了关于将软件文件更新递送到移动设备如蜂窝电话和其它移动通信设备、个人数字助理(PDA)和个人计算机的问题。
对于将大文件递送到移动设备用于更新移动设备文件的问题的一个解决方案是使用不同程序来产生差别文件。该差别文件包括描述经修订的或新文件如何不同于原始文件的数据。当使用各种差别程序来帮助减少所传递文件的大小时,有关与提供更新到移动设备关联的可靠性的问题继续存在。
例如,经由OTA链路的文件递送和更新随之带来增加的故障概率。这些故障通常涉及与服务供应者网络的组件和/或必须接收该更新的大量移动设备组件关联的故障。可发生的故障类型的例子包括移动设备硬件故障,软件故障,涉及功率(电池)耗尽的故障,和作为在更新过程中移动设备从网络断开的结果的故障。不管更新故障的原因,设备制造者和服务供应者必须确保当经由空中传播(OTA)连接向移动设备提供软件更新时,在更新过程中的故障的情况下所述移动设备是完全可恢复的。


图1是一实施例下的文件升级系统的块图。
图2是包括一实施例的文件升级系统组件的服务提供者基础设施实例的块图。
图3是一实施例下的用于访问客户设备配置文件的信息的流程图。
图4是一实施例下的用于升级客户设备配置文件的流程图。
图5A和5B是一实施例下的使用差别文件升级关键软件组件的流程图。
图6是图5的实施例下的使用差别文件的关键软件组件升级的块图描述。
图7A和7B是一可替换实施例下的使用差别文件升级关键软件组件的流程图。
图8是图7A和7B实施例下的使用差别文件的关键软件组件升级的块图描述。
图9是一实施例下的使用新文件升级关键软件组件的流程图。
图10是图9的实施例下的使用新文件的关键软件组件升级的块图描述。
图11是一实施例下的从使用差别文件的关键组件升级期间的错误恢复客户设备的流程图。
图12是一实施例下的从使用差别文件的非关键组件升级期间的错误恢复客户设备的流程图。
图13是一实施例下的从使用新文件的关键组件升级期间的错误恢复客户设备的流程图。
图14是一实施例下的从使用新文件的非关键组件升级期间的错误恢复客户设备的流程图。
在附图中,相同的参考数字用于标识同样的或基本相似的元素或动作。为了容易地标识对任何特定元素或动作的讨论,参考数字中的最高有效数位或多个最高有效数位指的是该元素在其中第一次被引入的图号(例如,元素116关于图1被第一次引入和讨论)。
除非下面另有说明,图中所示的各种块和结构的构造和操作具有传统设计。因此,这种块在此不需要进一步详细描述,因为它们将被相关领域的技术人员理解。为了简短,这种更多细节被省略并使得不混淆本发明的详细描述。基于此处提供的详细描述,相关领域的技术人员可容易地进行对该图的必要修改。
参阅图3,4,5A,5B,7A,7B,9,和11-14,流程图的操作是在至少一个处理器的控制下,但不是被限制于此。这些流程图中所描述的每个块是本领域中所熟知的类型,并且其本身可包括在此不需被描述的一系列操作。那些相关领域的技术人员可基于这些流程图和在此提供的详细描述来产生源代码,微码,程序逻辑阵列或者不然实施本发明。根据这些流程图运行的算法和例行程序被存储在形成关联处理器的部分的非易失性存储器(未示出)中,关联的存储区域中,可移动媒介(未示出),如盘中,或被硬线路化(hardwired)或预编程于芯片(未示出),如EEPROM半导体芯片中,或者以这些组件的任何组合,但是不被限制于此。
详述下面给出用于在包括移动设备的客户设备中提供故障-安全(fail-safe)软件升级的系统和相关方法。在软件升级期间阻止升级成功完成的故障的情况下,一实施例的升级系统将客户设备恢复到预更新状态。随后该升级系统或者继续进行或者重新开始在故障时处于进行中的更新。
在下列描述中,为了使能描述本发明实施例并提供对本发明实施例的全面理解而引入了大量的特定细节。然而,相关领域的技术人员将认识到本发明可被实施而不需要一个或多个这些特定细节,或者用其它组件,系统等来实施。在其它例子中,熟知的结构或操作未被示出,或者未被详细描述,以避免混淆本发明的方面。
图1是一实施例下的文件升级系统100的块图。通常,文件升级系统100包括第一计算机系统102,或主机系统,以及包括客户设备或计算机122的一个或多个第二计算机系统。主机系统102和客户设备122每个分别包括在程序控制下操作的至少一个处理器104和124,但是不被限制于此。主机系统102和客户设备122经由通信路径199来通信。这些计算机系统102和122包括本领域所公知的共同操作的计算设备的任何集合。计算机系统102和122还可包括较大计算机系统内的组件。
主机系统102的处理器104在程序控制下耦合在数据库106和文件求差算法(file differencing algorithm)114中。作为选择,主机系统102的各种其它组件在程序控制下可耦合在处理器104,数据库106和文件求差算法114中,并提供文件更新功能。尽管一个处理器104,一个数据库106,和一个文件求差算法114被示出,但是各种可选择的实施例包括以本领域的技术人员所设想的各种配置被耦合的这些组件的任何数目和/或每一个的类型。此外,尽管处理器104,数据库106,和文件求差算法114被示出为分开的块,但是这些块的一些或者全部可被整体集成到单个的芯片上,被分布在主机系统的许多芯片或者组件中,和/或通过算法的某种组合来提供。文件求差算法114可以以软件算法,固件,硬件,和软件,固件,和硬件的任何组合来实施。这里通常使用的术语“处理器”指的是任何逻辑处理单元,如一个或多个中央处理单元(CPU),数字信号处理器(DSP),专用集成电路(ASIC)等等。
同样,一个实施例的客户设备122包括在程序控制下被耦合在设备存储器130和文件更新算法128中的处理器124。可选择地,客户设备122的各种其它组件在程序控制下可耦合在处理器124,设备存储器130,和文件更新算法128中并提供文件更新功能。尽管一个处理器124,一个设备存储器130,和一个文件更新算法128被示出,但是各种可选择的实施例包括以本领域的技术人员所设想的各种配置被耦合的这些组件的任何数目和/或每一个的类型。此外,尽管处理器124,设备存储器130,和文件更新算法128被示出为分开的块,但是这些块的一些或者全部可被整体集成到单个的芯片上,被分布在主机系统的许多芯片或者组件中,和/或通过算法的某种组合来提供。文件更新算法128可以以软件算法,固件,硬件,和软件,固件,和硬件的任何组合来实施。
通信路径199包括用于在计算机系统102和122中通信或传递文件的任何媒介。因此此路径199包括无线连接,有线连接,和无线/有线混合连接。通信路径199还包括到网络的耦合或者连接,该网络包括局域网(LAN),城域网(MAN),广域网(WAN),专属网(proprietarynetworks),局间或者后端网(interoffice or backend network),和互联网。此外,通信路径199包括可移动的固定(fixed)媒介,如软盘,硬盘驱动器,和CD-ROM盘,以及快闪RAM,通用串行总线(USB)连接,RS-232连接,电话线,总线,和电子邮件消息。
主机系统102和客户设备122每个包括电子文件的原始版本110,在此被称为原始文件110或者旧文件。主机系统102将原始文件110存储在数据库106或者其它存储区域中或者存储区域或设备的组合中,但不限制于此。客户设备122将原始文件110存储在设备存储器中以便于在操作中使用。
诸如当软件提供者升级原始文件110以例如提供附加的功能性或修复软件缺陷时,电子文件的新版本112被产生。电子文件的新版本112在此被称为新文件112。新文件112通常是原始文件110的更新或者修订版本,但不限于此。软件提供者将新文件112传递到主机系统102。
电子文件110和112包括软件文件,其包括动态链接库文件,共享的目标文件,嵌入式软件组件(EBSC),固件文件,可执行文件,包含十六进制数据文件的数据文件,系统配置文件,和包含个人使用数据的文件,但不限于此。由于任何类型的文件都可被看作是字节流,在下文中文件可作为字节流来描述。
包括至少一个处理器104的主机系统102的组件接收和处理新文件112以产生用于在升级客户设备122的所掌管原始文件110中使用的升级信息。在一实施例中,处理器104产生用于在将升级信息传递到客户设备122中使用的升级文件118。升级文件118可包括对新文件112和原始文件110之间的差别进行编码的差别文件,或者可选择地,可包括新文件112组件或模块的任何数目和/或组合。主机系统102通过在通信路径199上的升级文件118的传递将升级信息提供给客户设备122。
在升级文件118包括差别文件的实施例中,包括处理器104和文件求差算法114的主机系统102的组件进行新文件112和对应的原始文件110之间的比较,从而计算新文件112和原始文件110之间的差别。文件求差算法114在比较期间产生差别文件并将该差别文件写到升级文件118。
升级文件118通过通信路径199被传递或发送到客户设备122。在传递之前,升级文件118可使用本领域中所知的许多压缩技术中的任何一种来压缩,但不限于此。
包括处理器124和升级客户126的客户设备122的组件接收升级文件118并使用该升级文件118控制原始文件的升级。在一实施例中,升级客户126,包括文件更新算法128,处理升级文件118连同所掌管的原始文件110的信息以产生新文件152的拷贝。新文件152的该拷贝随后被升级客户126使用以升级154被掌管在客户设备122上的作为目标的原始文件110。依据要被更新的文件类型以及由客户设备制造者分配的用于支持这些更新的资源,一实施例的升级客户126使用许多方法来更新EBSC,如在下面和“相关申请”中所描述的。该更新过程一旦完成,现在存储在客户设备122上的原始文件110与在主机系统102中所接收的新文件112相同。
相关领域的技术人员将理解与升级系统100关联的那些功能以及此处关于升级系统100所描述的其它功能和方法可由主机系统102的组件,客户设备122的组件来执行,或者被分布在主机系统102和客户设备122的组件的任何组合中。主机系统102和客户设备122的组件可作为专用集成电路(ASIC),由数字信号处理(DSP)集成电路,和/或通过常规编程逻辑阵列或电路元件来实施。此处所描述的实施例可使用硬件,固件和在一个或多个处理器上运行的软件的任何组合来实施,其中所述软件可被存储在任何适当的计算机可读媒介上,如存储在半导体芯片中的微码,在计算机可读盘上,或者从服务器下载并在客户处本地存储。
图2是包括一实施例的文件升级系统100组件的服务提供者基础设施200实例的块图。在该实施例中服务提供者基础设施是在蜂窝电话网络或基础设施的情况下描述的,但可选择的实施例不限于此。该服务提供者基础设施200包括,但不限于,软件组件分配器(Software ComponentDistributor,SCD)202,服务提供者升级组件203-205,和以客户设备122为主机的升级客户126。服务提供者升级组件203-205包括被耦合在软件组件认证服务器203和升级管理器205中的升级服务器204。
进一步参考图1,服务提供者基础设施200的一实施例的SCD 202包括主机系统102的组件或功能。在可选择的实施例中,服务提供者升级组件203-205掌管主机系统102的组件或功能。在其它可选择实施例中主机系统102的组件或者功能被分配在SCD 202的组件和服务提供者升级组件203-205中。
一实施例的服务提供者基础设施200通过升级系统组件和服务提供者的无线基础设施的各种机构来支持客户设备122上的诸多类型的软件文件或组件升级,所述客户设备122包括移动电子设备,移动通信设备,蜂窝电话,个人数字助理,计算机,和其它基于处理器的设备。这些系统通过从软件分配器接收新的和经修订的软件,从新软件产生升级文件,并将升级文件经由服务提供者基础设施传递到客户设备122来起作用。客户设备122的升级客户126使用升级文件来更新被掌管在客户设备122上的作为目标的软件。
一实施例的SCD 202提供用户界面,通过该用户界面软件提供者打包并释放新的嵌入式设备软件组件。SCD 202的功能包括登记设备信息并将设备信息提交到给软件组件认证服务器。SCD 202也接收新的和原始的EBSC,利用该新的和原始的EBSC来计算或产生文件差别,登记并打包嵌入式软件,以及将嵌入式软件包提交给软件组件认证服务器203。在释放之后,新的或修订的软件经由有线、无线或有线/无线混合网络耦合或连接220被提供给服务提供者升级组件203-205,但不限于此。
一实施例的SCD 202被掌管于客户设备制造者的处理系统上。在可选择的实施例中,SCD 202被掌管于应用或系统软件提供者的处理系统上。在另一个可选择的实施例中,SCD 202被掌管于服务载体或提供者的处理系统上,例如被掌管于升级组件203-205上或被分布在其中。
服务提供者升级组件203-205被耦合在软件组件分配器202、客户设备122和服务提供者的基础设施的现有组件210-218之中,所述现有组件包括现有网关210和通信基础设施212,计费服务器(billing server)214,日志服务器(logging server)216以及鉴权服务器218。
软件组件认证服务器203提供到客户设备制造者的接口并且由此从设备制造者接收嵌入式软件包上的新设备信息。软件组件认证服务器203还重新打包并分配被验证的软件包给升级服务器。
在用作软件组件认证服务器203和升级服务器204中的界面的同时,升级管理器205为最佳设备管理而配置软件和数据打包,排定远程变化通知的时间以及控制更新策略监视系统。此外,升级管理器205提供与现有基础设施系统的集成。
升级服务器204提供包括鉴权、连接和与移动客户设备122通信的能力以执行嵌入式软件组件升级。与客户设备122通信可通过适于对应服务提供者的与客户设备122的耦合212而进行,所述耦合212包括无线耦合、有线耦合、混合的有限/无线耦合以及其它网络耦合类型。此外,升级服务器204支持服务提供者的现有计费,数据收集和日志服务。
作为升级服务器204和客户设备122之中通信的实例,当升级文件可用于从升级服务器204传递到客户设备122时,服务器204发送用户通知以向客户设备用户通知有可用于更新的软件组件。该用户通知可经由短消息服务(SMS)推送协议(push protocol)、超文本传递协议(HTTP)或者无线应用协议(WAP)采用文本消息的形式,但不限于此。一旦从手机用户接收到确认,升级服务器204使用原始的手机数据通信协议将升级文件发送到请求的手机。
响应于收到来自手机的确认,升级服务器204鉴权并授权用户和/或请求设备,并检验请求设备预先具备的能力和限制。在鉴权之后,作为客户设备配置数据管理器的升级服务器204识别请求设备104的嵌入式软件组件的当前版本,识别适当的德耳塔文件并将其传递到请求设备104,记录升级事务的状况,并向升级管理器205报告结果。此外,升级服务器204通过空中传播来激活/去激活该软件升级服务,并将软件变化通知给远程用户。
参考图1,升级客户126被嵌入在客户设备122中,但不限于此。升级客户126存储并维护客户设备122的配置数据,并且使用文件更新算法128来提供嵌入式设备软件组件的维护和升级。升级客户126支持简单的用户界面并被结合到移动设备软件中。在执行时,升级客户126就自动检测任何嵌入式软件组件的远程变化,将嵌入式软件组件升级通知给用户,并基于载体和/或用户控制来升级软件组件,以适于特定的服务提供者。
一实施例的升级系统100和服务提供者基础设施200支持诸多类型的软件文件或组件更新,包括对可执行文件、字节流文件和数据文件的更新,但是不限于此。可执行文件,或图像文件,包括在客户设备中使用以执行任务的软件文件,例如操作系统(OS),硬件设备驱动,和K虚拟机(K Virtual Machine,KVM)文件。字节流文件包括由其它可执行文件使用的文件,例如,图标文件,标志(logo)文件和MP3文件。数据文件包括包含个人使用数据和手机参考数据的文件,例如校准配置文件,协议独立组播(PIM)文件,和系统配置文件。
如在“相关申请”中所描述的,依据要被更新的文件类型和由客户设备制造者分配以支持这些更新的资源,一实施例的升级客户使用诸多方法来更新EBSC。一实施例的这些更新方法包括非关键组件更新和关键组件更新,其中这些类别是基于由作为目标以便于更新的软件组件提供的功能。
非关键组件包括在在更新过程期间的故障之后容易通过空中传播来恢复的嵌入式软件组件(EBSC)。非关键组件的实例包括浏览器和KVM文件,但是不限于此。关键组件包括在更新进程中使用的软件组件或对设备操作关键的EBSC。此外,关键组件包括在更新过程期间的故障之后不容易通过空中传播来恢复的EBSC。关键组件的实例包括操作系统文件,协议栈,升级客户文件,通信库和显示器或LCD驱动文件,但不限于此。
在参与更新进程之前,客户设备122确定诸多设备参数的状态。这样做是为了预先使该设备具有用于更新进程的条件,或者检验客户设备的条件是使更新进程一旦开始就可被完成。使客户设备预先具备条件包括,但不限于,确定客户设备是否处于基座(cradle)或者充电模式,客户设备是否被连接到串行缆,电池充电状态是否足以进行更新过程,所接收信号强度指示(RSSI)或者信号强度是否足够用于数据传递,以及作为目标的EBSC当前是否处于使用中。
尽管预先使客户设备122具有用于更新进程的条件,但是仅举几个例子,作为硬件故障、功率(电池)故障和网络连接故障等等的结果,更新中的故障仍可能发生。一实施例的升级系统100通过将客户设备122恢复到预更新状态以及继续进行或重新开始在故障时处于进行中的更新而提供故障-安全软件文件更新。升级服务器204和升级客户126的组件包括提供故障-安全更新的自动故障恢复机构,如下所述。
一实施例的客户设备将客户设备软件的EBSC中关系的数据,这里称为文件配置数据,存储在基于模块的存储管理(MBMM)EBSC中。该MBMM EBSC在此称为配置文件。配置数据也包括升级状态信息。该升级状态信息包括关于对客户设备软件升级的状态的详细信息,包括例如有关在所尝试的升级期间发生故障或错误的位置的信息。由于配置数据对于客户设备操作的重要性,升级客户提供对准确配置数据的访问以及通过文件升级来维护配置数据,如下所述。
图3是一实施例下用于访问客户配置文件的配置数据的流程图300。在块302,升级客户使用检验计算或算法来检验原始配置数据的准确度。尽管此处所描述的实施例包括检验过程或算法的使用,其使用例如检查和(checksum)值或循环冗余码(CRC),但所述实施例可使用本领域技术人员所设想的任何检验过程或算法。检验计算或算法在适当时重新计算检查和或者CRC,并且将它与存储在具有原始配置数据的客户设备中的对应值进行比较。在块304,如果检验显示原始配置数据是准确的,或者无错误的,那么在块306,升级客户以使用原始配置数据的操作来继续。
在块304,如果检验指示原始配置数据包含错误,那么在块308,升级客户确定在客户设备中备份配置数据是否可用。如果在客户设备中备份配置数据可用,那么在块310,升级客户以错误恢复过程来继续。如下面进一步所描述的,错误恢复过程将准确的配置数据恢复到配置文件。如果在客户设备中备份配置数据不可用,那么在块312,升级客户使用客户设备的资源以将错误报告给客户设备用户和服务提供者的升级服务器。
除了提供对配置数据的读取访问之外,升级客户还维护和更新配置数据,如它对客户设备的其它EBSC所做的。图4是一实施例下的用于升级客户设备配置文件的流程图400。如上所述,升级客户接收用于在升级原始配置数据中使用的升级文件。响应于收到该升级文件,在块402,升级客户使用检验计算/算法,如例如检查和或循环冗余检查(CRC)来检验当前存储在客户设备中的原始配置数据的准确度。在块404,如果检验显示原始配置数据是准确的,或者无错误的,那么在块406,通过将原始配置数据的备份版本写入到客户设备存储器(ROM)中的备份配置文件,升级客户以升级原始配置数据来继续。在块406,升级客户还对如写入到备份配置文件的备份配置数据进行检验计算,并在块408,检验备份配置数据的准确度。在块408,如果检验显示备份配置数据是无错误的,那么在块410,升级客户使用升级文件的信息来升级配置文件的原始配置数据。在块412,升级客户检验经升级的或新的配置数据的准确度,并且如果该被升级的配置数据是无错误的,则结束升级过程。
在块406,将备份配置数据写入到备份配置文件之后,在块408,当检验结果指示备份配置数据中的错误时,升级客户重复将原始配置数据写入到备份配置文件以及进行检验计算的过程。重新写入和重新计算的这个过程被进行直到备份配置数据被成功写入到备份配置文件,或者直到该过程已经重复了预定次数N。在块422,如果进行了预定次数N的重新写入仍没有成功,则在块426,升级客户使用客户设备的资源将错误报告给客户设备用户和服务提供者的升级服务器,并终止升级过程。
在块410,配置数据的升级之后,在块412,如果检验结果指示新配置数据中的错误,则升级客户重复升级原始配置数据和进行检验计算的过程。该重新写入和重新计算的过程被进行直到原始配置数据被成功升级到新配置数据,或者直到该过程已经重复了预定次数N。在块424,如果进行了预定次数N的重新写入仍没有成功,则在块426,升级客户使用客户设备的资源将错误报告给客户设备用户和服务提供者的升级服务器,并终止升级过程。
在块404,如果检验指示配置表数据包含错误,那么在块432,升级客户确定备份配置数据在客户设备中是否可用。如果备份配置数据在客户设备中可用,那么在块434,升级客户以错误恢复过程继续。在块436,通过将备份配置数据从备份配置文件写入到配置文件,从而以备份配置数据来覆盖错误的配置数据,错误恢复过程将准确的配置数据恢复到配置文件。在块402,升级客户还对备份配置数据进行检验计算。
在块432,如果备份配置数据在客户设备中不可用,则在块426,升级客户使用客户设备的资源将错误报告给客户设备用户和服务提供者的升级服务器。然后升级客户终止升级过程。
除了如上所述升级配置文件以外,升级客户的实施例还进行对被掌管在客户设备上的软件的EBSC的升级。该升级包括使用差别文件和整个新文件二者的升级,如下所述。
图5A和5B是一实施例下的使用差别文件来升级包括关键组件的软件组件的流程图500。如上所述,升级客户接收升级文件以便于在升级对应于该升级文件的原始EBSC中使用。在此实例中,升级文件包括差别文件,但是该实施例不限于此。响应于该升级文件的接收,在块502,升级客户使用检验算法来检验升级文件内容的准确度。如果该检验示出升级文件内容是无错误的,那么在块504,通过将原始EBSC从客户设备只读存储器(ROM)拷贝到随机存取存储器(RAM),升级客户以升级原始EBSC来继续。可选择地,原始EBSC可从客户设备存储器的任何区域被拷贝到客户设备存储器的任何其它区域,或者拷贝到相同存储器区域的不同段。在块506,升级客户使用旧的EBSC和升级文件来产生新的EBSC,并对新EBSC进行检验计算。当新的EBSC是关键组件时,在块508,新EBSC的备份版本被产生和检验。
在块510,一旦进行客户设备的任选复位或重新启动,则在块512,通过将配置文件的配置文件数据拷贝到备份配置文件,升级客户在客户设备ROM中产生备份配置文件。备份配置文件的准确度可被检验,但该实施例不限于此。在块514,升级客户随后将原始EBSC从客户设备存储器中删除,将新的EBSC写入到先前被原始EBSC占据的客户设备存储器的区域,并检验如被写入到客户设备存储器的新EBSC的准确度。
在块516,响应于新EBSC的产生,升级客户根据新EBSC来升级原始配置数据,并检验经升级的或新的配置数据的准确度。如果EBSC升级是成功的并且经升级的配置数据是无错误的,则在块520,升级客户擦除新EBSC的备份拷贝,并在块522,擦除备份配置文件。在块524,当附加的升级文件可用于升级附加的EBSC时,操作返回到块502以处理附加的升级;否则升级过程完成。
在块518,当经升级的配置数据包含错误时,那么在块526,升级客户开始错误恢复。该错误恢复过程在下面被进一步描述。
图6是图5的实施例下使用差别文件的关键软件组件升级的块图描述。该实例的升级过程使用ROM 602和RAM 604存储器二者中的存储位置,但是可选择的实施例可使用客户设备存储器130中区域的任何组合或者相同存储区域的任何数目的不同段。
当升级客户收到用于在升级对应于升级文件610的原始EBSC中使用的升级文件610时,升级过程开始。对此实例来说,升级文件610包括差别文件,但是,可选择地,升级文件610可包括差别文件和整个新文件或者新EBSC。升级客户将升级文件610存储630在RAM 640中并使用检验算法来检验升级文件内容的准确度。如果升级文件610是无错误的,那么通过产生或写入632原始EBSC 614的拷贝到RAM 604,升级客户以升级原始EBSC 612来继续。升级客户通过使用原始EBSC 614的拷贝和升级文件610来产生新的EBSC 616,并将新的EBSC 616写入634到RAM 604。新的EBSC 616的准确度被检验,并且当新的EBSC 616是关键组件时,新EBSC的备份版本618被产生并写入636到ROM 602。
在进行关键软件组件的升级期间,一实施例的升级客户产生特定文件的备份拷贝并将这些备份拷贝存储在客户设备存储器中。客户设备可使用这些备份拷贝连同配置文件的升级状态信息来快速并自动地从升级过程期间的错误或者故障恢复,而不必从服务提供者下载附加的文件或者信息。
例如,一旦复位客户设备,升级客户将备份配置文件620写入638到客户设备存储器例如ROM 602中的位置。备份配置文件620通过将原始配置文件622的配置数据拷贝到ROM 602中的备份配置文件620来产生。升级客户随后将原始EBSC 612从ROM 602删除,将新的EBSC从ROM 602中的新EBSC备份版本618写入640到先前由原始EBSC612占据的存储器区域,并检验如写入的新EBSC的准确度。然后升级客户根据新EBSC来升级原始配置数据622。如果该EBSC升级成功并且经升级的配置数据是无错误的,则升级客户将新EBSC备份版本618和备份配置文件620从ROM 602删除。
图7A和7B是在可选择实施例下的使用差别文件来升级关键软件组件的流程图700。如上所述,升级客户接收包括差别文件的升级文件,用于在升级对应于该升级文件的原始EBSC中使用。响应于该升级文件的接收,在块702,升级客户使用检验算法来检验该升级文件内容的准确度。如果该检验示出升级文件内容是无错误的,那么在块704,通过在客户设备ROM中产生升级文件的备份版本,升级客户以升级原始EBSC来继续。
在块706,一旦进行客户设备的任选复位或重新启动,则在块708,升级客户将升级文件的备份版本从ROM拷贝到RAM。在块710,升级客户产生原始EBSC的备份版本,并在块512,产生备份配置文件,二者都被写入到客户设备ROM中的备份文件。在块714,升级客户还将原始EBSC从客户设备ROM拷贝到RAM中。
在块716,升级客户使用在客户设备RAM中存储的原始EBSC和升级文件来产生新的EBSC。升级客户还对新EBSC进行检验计算,但不限于此。在块718,升级客户接下来将原始EBSC从客户设备ROM删除,将新的EBSC从RAM写入到先前由原始EBSC占据的ROM的区域,并检验如被写入到ROM的新EBSC的准确度。
在块720,响应于新EBSC的产生,升级客户根据新EBSC来升级原始配置数据,并检验经升级的或新的配置数据的准确度。如果EBSC升级是成功的并且经升级的配置数据是无错误的,则在块724,升级客户擦除原始EBSC的备份拷贝,并在块726,擦除备份配置文件。在块728,当附加的升级文件可用于升级附加的EBSC时,操作返回到块702以处理附加的升级;否则升级过程完成。
在块722,当经升级的配置数据包含错误时,在块730,升级客户开始错误恢复。该错误恢复过程在下面被进一步描述。
图8是图7A和7B的实施例下使用差别文件的关键软件组件升级的块图描述。该实例的升级过程使用客户设备存储器的ROM 802和RAM804区域二者中的存储位置,但是可选择的实施例可使用客户设备存储器130中区域的任何组合或者相同存储区域的任何数目的不同段。
当升级客户收到用于在升级对应于升级文件810的原始EBSC 812中使用的升级文件810时,升级过程开始。为此实例的目的,升级文件810可包括差别文件和整个新文件或新EBSC。升级客户存储或写入830升级文件810到RAM 804并使用检验算法来检验升级文件内容的准确度。如果升级文件810是无错误的,那么通过产生并存储832升级文件824的备份版本到客户设备ROM 802,升级客户以升级原始EBSC 812来继续。
一旦将客户设备复位,升级客户将升级文件824的备份版本从ROM802写入834到RAM 804。然后升级客户在ROM中写入836原始EBSC的备份版本826,并在ROM 802中写入838备份配置文件820。升级客户还将原始EBSC 814的拷贝从ROM 802中的原始EBSC 812写入840到RAM 804。
升级客户使用在RAM 804中存储的原始EBSC 814的拷贝和升级文件810来产生842新的EBSC 816。升级客户还对新EBSC 816进行检验计算,但不限于此。升级客户随后将原始EBSC 812从ROM 802删除,将新的EBSC 816从RAM 804写入842到先前由原始EBSC 812占据的ROM区域,并检验如写入到ROM 802的新EBSC的准确度。
响应于新EBSC 816的产生,升级客户还根据新EBSC 816来升级原始配置数据822,并检验经升级的或新的配置数据的准确度。如果EBSC升级是成功的并且经升级的配置数据是无错误的,则升级客户擦除原始EBSC的备份拷贝826和备份配置文件820并终止升级过程。
图9是一实施例下的使用新文件来升级关键软件组件的流程图900。在块902,升级客户接收升级文件,其用于升级对应于该升级文件的原始文件,并使用检验算法来检验该升级文件内容的准确度。在该实例中,升级文件包括完全的新EBSC或文件,但是该实施例不限于此。如果该检验示出该新文件内容是无错误的,那么在块904,当该新文件是关键软件组件时,通过产生新文件的备份版本并检验该新文件的备份版本的准确度,升级客户以升级该原始文件来继续。
在块906,一旦进行时序任选的客户设备的复位或重新启动,则在块908,通过将配置文件的配置文件数据拷贝到备份配置文件,升级客户在客户设备ROM中产生备份配置文件。备份配置文件的准确度可被检验,但该实施例不限于此。在块910,升级客户随后将新文件的备份版本写入到客户设备存储器的适当区域以便由客户设备来使用,并检验如被写入的新文件的准确度。
如果该检验示出新文件内容是无错误的,那么在块912,升级客户以根据该新文件升级原始配置数据来继续,并检验经升级的或新的配置数据的准确度。如果新文件升级是成功的并且经升级的配置数据是无错误的,则在块916,升级客户擦除新文件的备份拷贝,并在块918,擦除备份配置文件。在块920,当附加的升级文件可用于升级附加的文件时,操作返回到块902以处理附加的升级;否则升级过程完成。
在块914,当经升级的配置数据包含错误时,则在块922,升级客户开始错误恢复。该错误恢复过程在下面被进一步描述。
图10是图9的实施例下使用新文件的关键软件组件升级的描述块图。该实例的升级过程使用ROM 1002和RAM 1004二者中的存储位置,但是可选择的实施例可使用客户设备存储器130中区域的任何组合或者相同存储区域的任何数目的不同段。
当升级客户收到用于在升级客户设备软件中使用的升级文件1010时,升级过程开始。为此实例的目的,升级文件1010包括整个新文件,但不限于此,并可包括差别文件和/或任何数目的新EBSC。升级客户将新文件1010写入1030到RAM 1004并使用检验算法来检验新文件内容的准确度。
如果新文件1010是无错误的,那么通过产生和写入1032新文件的备份版本1012到ROM 1002,升级客户以升级客户设备软件文件来继续。当新文件是关键软件组件时,新文件的备份版本1012的准确度被检验。
一旦进行时序任选的客户设备的复位,升级客户在ROM 1002中产生1034备份配置文件1016。备份配置文件1016是通过将原始配置文件1014的配置数据拷贝到备份配置文件1016而产生的。升级客户随后将新文件的备份版本1012写入1036到客户设备存储器的适当区域1018以便由客户设备来使用,并检验如被写入的新文件的准确度。然后升级客户根据该新文件升级原始配置数据1014。如果该文件升级是成功的并且经升级的配置数据是无错误的,则升级客户擦除新文件的备份版本1012和备份配置文件1016。
不管升级客户所使用的升级方法,升级系统通过响应于软件升级期间的故障将客户设备恢复到预定的状态在客户设备中提供故障-安全软件升级。一实施例的升级系统将客户设备恢复到预更新状态并继续进行或重新开始在故障时处于进行中的更新。恢复过程包括用于使用差别文件从关键组件升级期间的错误恢复的算法,用于使用差别文件从非关键组件升级期间的错误恢复的算法,用于使用新文件从关键组件升级期间的错误恢复的算法,和用于使用新文件从非关键组件升级期间的错误恢复的算法,如下所述。
图11是一实施例的用于从使用差别文件的关键组件升级期间在升级过程中所发生的错误中恢复客户设备的流程图1100。在块1102,在进行文件升级时,升级客户通过确定文件升级是否响应于新文件的可用性正被第一次进行,或者客户设备是否正从先前升级尝试期间所发生的错误中被恢复而开始。
在块1104,当第一次进行文件升级时,升级客户接收差别文件形式的升级文件,其用于升级对应于该升级文件的原始EBSC。在块1106,响应于差别文件的接收,升级客户使用差别文件的检查和值来确定差别文件内容是否无错误。该接收差别文件和评估文件内容准确度的过程被重复直到无错误的差别文件被接收,或者直到该过程被重复了预定次数N。在块1130,一旦该过程重复了预定次数N而没有成功,则在块1140,升级客户使用客户设备的资源将错误报告给客户设备用户和服务提供者的升级服务器,并在块1126终止该升级过程。
在块1104,响应于准确的差别文件的接收,在块1108,升级客户检验原始EBSC内容的准确度。在块1110,如果原始EBSC的检查和值被确定是不正确的,计算该原始EBSC的检查和的过程被重复直到正确的检查和值被计算,或者直到该过程被重复了预定次数N。在块1132,一旦该过程重复了预定次数N而没有成功,则在块1140,升级客户使用客户设备的资源将错误报告给客户设备用户和服务提供者的升级服务器,并在块1126终止该升级过程。
在块1110,当原始EBSC的内容被确定为准确时,在块1112,升级客户使用该原始EBSC和差别文件来产生新的EBSC。升级客户也对新EBSC内容进行检验计算。在块1114,如果新的EBSC的检查和值被确定是不正确的,产生新的EBSC并计算该检查和的过程被重复直到正确的检查和值被计算,或者直到该过程被重复了预定次数N。在块1134,一旦该过程重复了预定次数N而没有成功,则在块1140,升级客户使用客户设备的资源将错误报告给客户设备用户和服务提供者的升级服务器,并在块1126终止该升级过程。
在块1114,当升级客户确定新EBSC的内容准确时,在块1116,新EBSC的备份版本被产生并写入到设备存储器。还使用检查和值来检验新EBSC的备份版本的准确度。在块1118,当新EBSC的备份版本的检查和值被确定为不正确时,产生新的EBSC的备份版本和计算该检查和的过程被重复直到正确的检查和值被计算,或者直到该过程被重复了预定次数N。在块1136,一旦该过程重复了预定次数N而没有成功,则在块1140,升级客户使用客户设备的资源将错误报告给客户设备用户和服务提供者的升级服务器,并在块1126终止该升级过程。
在块1118,一旦检验新EBSC的备份版本的准确度,则在块1120,升级客户用新的EBSC替换设备ROM中的原始EBSC。对如写入到设备ROM的新EBSC进行检查和计算以检验该文件的准确度。在块1122,如果新EBSC的检查和值被确定是不正确的,将新EBSC写入到设备ROM和计算该检查和的过程被重复直到正确的检查和值被计算,指示新EBSC被正确地写入到设备ROM,或者直到该过程被重复了预定次数N。在块1138,一旦该过程重复了预定次数N而没有成功,则在块1140,升级客户使用客户设备的资源将错误报告给客户设备用户和服务提供者的升级服务器,并在块1126终止该升级过程。
在块1122,一旦检验如写入到设备ROM的新EBSC的准确度,则在块1124,升级客户确定附加的差别文件是否可用于升级对应的原始EBSC。操作返回到块1106以处理任何附加的差别文件;否则在块1126,升级过程结束。
在块1102,如果升级客户确定设备正从先前升级尝试期间所发生的错误中恢复,则在块1140,升级客户通过确定备份配置文件是否在客户设备中可用来开始恢复。如上所指示的,备份配置文件包括备份配置数据。当备份配置数据可用时,在块1142,升级客户通过评估关联的检查和值来确定备份配置数据是否准确。在块1140,如果备份配置数据在客户设备中不可用,或者在块1142,如果备份配置数据可用并且检查和值指示该数据是错误的,在块1160,升级客户使用客户设备的资源将错误报告给客户设备用户和服务提供者的升级服务器。然后在块1162,升级客户终止升级过程。
当无错误的备份配置数据在客户设备中可用时,在块1144,升级客户写入该备份配置数据而覆盖原始配置文件中的原始配置数据。然后在块1146,升级客户确定客户设备中新EBSC的备份版本的可用性。
如果新EBSC的备份版本在客户设备中可用,在块1148,通过写入新EBSC的备份版本而覆盖设备存储器中的对应原始EBSC,升级客户升级该原始EBSC;随后在块1150,根据新的EBSC,配置数据被升级。然后在块1152,升级客户确定附加的差别文件是否可用于升级其它原始EBSC。操作返回到块1106以处理任何附加的差别文件;否则在块1126升级过程结束。
在块1146,如果发现新EBSC的备份版本在客户设备中不可用,那么在块1164,升级客户从升级服务器检索对应的原始EBSC。在块1110,一旦收到原始EBSC,升级客户以重新产生新的EBSC继续,如上所述。
图12是一实施例下使客户设备从使用差别文件的非关键组件升级期间在升级过程中发生的错误中恢复的流程图1200。在块1202,在进行文件升级时,升级客户通过确定文件升级是否响应于新文件的可用性正被第一次进行,或者客户设备是否正从先前升级尝试期间所发生的错误中恢复而开始。
在块1204,当第一次进行文件升级时,升级客户接收差别文件形式的升级文件,其用于升级对应于该升级文件的原始EBSC。在块1206,响应于差别文件的接收,升级客户使用差别文件的检查和值来确定差别文件内容是否无错误。该接收差别文件和评估文件内容准确度的过程被重复直到无错误的差别文件被接收,或者直到该过程被重复了预定次数N。在块1230,一旦该过程重复了预定次数N而没有成功,升级客户使用客户设备的资源将错误报告给客户设备用户和服务提供者的升级服务器,并在块1236终止该升级过程。
在块1204,响应于准确的差别文件的接收,在块1208,升级客户使用原始EBSC和差别文件来产生新的EBSC。升级客户还对新EBSC内容进行检验计算。在块1210,如果新的EBSC的检查和值被确定是不正确的,产生新的EBSC和计算该检查和的过程被重复直到正确的检查和值被计算,或者直到该过程被重复了预定次数N。在块1232,一旦该过程重复了预定次数N而没有成功,升级客户使用客户设备的资源将错误报告给客户设备用户和服务提供者的升级服务器,并在块1236终止该升级过程。
在块1210,当升级客户确定新的EBSC的内容准确时,在块1212,升级客户用新的EBSC替换设备ROM中的原始EBSC。在块1214,对写入到设备ROM的新EBSC进行检查和计算以检验该文件的准确度。在块1216,如果新EBSC的检查和值被确定是不正确的,则计算写入到客户设备ROM的新EBSC的检查和的过程被重复直到正确的检查和值被接收,指示新EBSC被正确地写入到设备ROM,或者直到该过程被重复了预定次数N。在块1234,一旦该过程重复了预定次数N而没有成功,则在块1236,升级客户使用客户设备的资源将错误报告给客户设备用户和服务提供者的升级服务器,并在块1236终止该升级过程。
在块1216,一旦检验写入到设备ROM的新EBSC的准确度,则在块1218,升级客户确定附加的差别文件是否可用于升级对应的原始EBSC。操作返回到块1206以处理任何附加的差别文件;否则在块1220,升级过程结束。
在块1202,当升级客户确定设备正从先前升级尝试期间所发生的错误中恢复时,在块1240,升级客户通过确定备份配置文件是否在客户设备中可用来开始恢复。如上所指示的,备份配置文件包括备份配置数据。当备份配置数据是可用的时,在块1242,升级客户通过评估相关的检查和值来确定备份配置数据是否准确。在块1240,如果备份配置数据在客户设备中不可用,或者在块1242,如果备份配置数据是可用的并且检查和值指示该数据是错误的,在块1260,升级客户使用客户设备的资源将错误报告给客户设备用户和服务提供者的升级服务器。然后在块1262,升级客户终止升级过程。
如果无错误的备份配置数据在客户设备可用,那么在块1244,升级客户写入该备份配置数据而覆盖原始配置文件中的原始配置数据。然后在块1246,升级客户从升级服务器检索对应的原始EBSC。在块1210,一旦收到原始EBSC,升级客户以重新产生新的EBSC来继续,如上所述。
图13是一实施例下使客户设备从使用新文件或EBSC的关键组件升级期间在升级过程中发生的错误中恢复的流程图1300。在块1302,在进行文件升级时,升级客户通过确定文件升级是否响应于新EBSC的可用性正被第一次进行,或者客户设备是否正从先前升级尝试期间所发生的错误中恢复而开始。
在块1304,当第一次进行文件升级时,升级客户接收新EBSC形式的升级文件,其用于升级对应于该升级文件的原始EBSC。在块1206,响应于新EBSC的接收,升级客户使用新EBSC的检查和值来确定新EBSC的内容是否无错误。接收新EBSC和评估文件内容准确度的过程被重复直到无错误的新文件被接收,或者直到该过程被重复了预定次数N。在块1330,一旦该过程重复了预定次数N而没有成功,则在块1336,升级客户使用客户设备的资源将错误报告给客户设备用户和服务提供者的升级服务器,并在块1318终止该升级过程。
在块1304,响应于准确的新EBSC的接收,在块1308,升级客户产生新EBSC的备份版本并计算对应于该备份版本的检查和值。在块1310,如果新的EBSC的备份版本的检查和值被确定是不正确的,则产生新的EBSC的备份版本和计算对应的该检查和的过程被重复直到正确的检查和值被计算,或者直到该过程被重复了预定次数N。在块1332,一旦该过程重复了预定次数N而没有成功,则在块1336,升级客户使用客户设备的资源将错误报告给客户设备用户和服务提供者的升级服务器,并在块1318终止该升级过程。
在块1310,当确定新的EBSC的内容准确时,在块1312,升级客户用新的EBSC替换设备ROM中的原始EBSC。对写入到设备ROM的新EBSC进行检查和计算以检验该文件的准确度。在块1314,如果新EBSC的检查和值被确定是不正确的,则将新EBSC写入到设备ROM和计算该检查和的过程被重复直到正确的检查和值被计算,指示新EBSC被正确地写入到设备ROM,或者直到该过程被重复了预定次数N。在块1334,一旦该过程重复了预定次数N而没有成功,则在块1336,升级客户使用客户设备的资源将错误报告给客户设备用户和服务提供者的升级服务器,并在块1318终止该升级过程。
在块1314,一旦检验写入到设备ROM的新EBSC的准确度,则在块1316,升级客户确定附加的新EBSC是否可用于升级对应的原始EBSC。操作返回到块1304以处理任何附加的新EBSC;否则在块1318,升级过程结束。
在块1302,如果升级客户确定设备正从先前升级尝试期间所发生的错误中恢复,则在块1340,升级客户通过确定备份配置文件是否在客户设备可用来开始恢复。当备份配置数据在备份配置文件中是可用的时,在块1342,升级客户通过评估相关的检查和值来确定备份配置数据是否准确。在块1340,如果备份配置数据在客户设备中不可用,或者在块1342,如果备份配置数据是可用的并且检查和值指示该数据是错误的,则在块1360,升级客户使用客户设备的资源将错误报告给客户设备用户和服务提供者的升级服务器。然后在块1362,升级客户终止升级过程。
如果无错误的备份配置数据在客户设备中可用,那么在块1344,升级客户写入该备份配置数据而覆盖原始配置文件中的原始配置数据。然后在块1346,升级客户确定客户设备中新EBSC的备份版本的可用性。
如果新EBSC的备份版本在客户设备中可用,则在块1348,通过写入新EBSC的备份版本而覆盖设备存储器中的对应原始EBSC,升级客户升级该原始EBSC;在块1350,根据新的EBSC,配置数据随后被升级。然后在块1316,升级客户确定附加的新EBSC是否可用于升级其它原始EBSC。
在块1346,如果发现新EBSC的备份版本在客户设备中不可用,那么在块1304,升级客户从升级服务器检索新的EBSC。如上所述,一旦收到新的EBSC,升级客户继续进行升级。
图14是一实施例下使客户设备从使用新文件的非关键组件升级期间在升级过程中发生的错误中恢复的流程图1400。在块1402,在进行文件升级时,升级客户通过确定文件升级是否响应于新文件的可用性正被第一次进行,或者客户设备是否正从先前升级尝试期间所发生的错误中恢复而开始。
在块1404,当第一次进行文件升级时,升级客户接收新EBSC形式的升级文件,其用于升级对应于该升级文件的原始EBSC。在块1406,响应于新EBSC的接收,升级客户使用新EBSC的检查和值来确定新EBSC的内容是否无错误。接收新EBSC和评估文件内容准确度的过程被重复直到无错误的差别文件被接收,或者直到该过程被重复了预定次数N。在块1430,一旦该过程重复了预定次数N而没有成功,则在块1434,升级客户使用客户设备的资源将错误报告给客户设备用户和服务提供者的升级服务器。在块1416,升级客户随后终止该升级过程。
在块1406,如果升级客户确定新的EBSC的内容准确,则在块1408,升级客户用新的EBSC替换设备ROM中的原始EBSC。在块1410,对写入到设备ROM的新EBSC进行检查和计算以检验该文件的准确度。在块1412,如果新EBSC的检查和值被确定是不正确的,则计算写入到客户设备ROM的新EBSC的检查和的过程被重复直到正确的检查和值被接收,指示新EBSC被正确地写入到设备ROM,或者直到该过程被重复了预定次数N。在块1432,一旦该过程重复了预定次数N而没有成功,则在块1434,升级客户使用客户设备的资源将错误报告给客户设备用户和服务提供者的升级服务器,并在块1416终止该升级过程。
在块1412,一旦检验写入到设备ROM的新EBSC的准确度,则在块1414,升级客户确定附加的差别文件是否可用于升级对应的原始EBSC。操作返回到块1404以处理任何附加的新EBSC;否则在块1416,升级过程结束。
在块1402,当升级客户确定设备正从先前升级尝试期间所发生的错误中恢复时,在块1440,升级客户通过确定备份配置文件是否在客户设备中可用来开始恢复。当备份配置数据在备份配置文件中是可用的时,在块1442,升级客户通过评估相关的检查和值来确定备份配置数据是否准确。在块1440,如果备份配置数据在客户设备中不可用,或者在块1442,如果备份配置数据是可用的并且检查和值指示该数据是错误的,则在块1460,升级客户使用客户设备的资源将错误报告给客户设备用户和服务提供者的升级服务器。然后在块1416,升级客户终止升级过程。
当无错误的备份配置数据在客户设备中可用时,在块1444,升级客户写入该备份配置数据而覆盖原始配置文件中的原始配置数据。然后如上所述,在块1404,升级客户以接收新EBSC来继续,并升级对应的原始EBSC。
以上所述的用于在客户设备中提供故障-安全软件升级的系统和相关的方法包括便携式通信设备,其包括至少一个处理器和至少一个电子文件。该处理器通过至少一个无线耦合来接收升级文件,并且该处理器使用升级文件的内容来自动升级所述电子文件。该升级包括修复电子文件中的错误和提供附加电子文件中的至少一个。响应于在该电子文件的自动升级期间的故障,该处理器自动将便携式通信设备恢复到至少一个操作状态。该便携式通信设备包括蜂窝电话、便携式计算设备和个人数字助理中的至少一个。所述便携式通信设备的至少一个操作状态包括蜂窝通话(telephony)状态。
以上所述的用于在客户设备中提供故障-安全软件升级的系统和相关的方法包括一种方法,其包括经由至少一个无线耦合在便携式通信设备中接收升级文件,其中升级文件内容包括用来修复便携式通信设备的软件组件中的错误的信息和用来升级便携式通信设备的功能的信息中的至少一个;使用该升级文件内容来自动升级软件组件;以及响应于自动升级期间的故障,将便携式通信设备自动恢复到至少一个操作状态。实施例中的自动恢复进一步包括继续进行自动升级。一实施例中的自动恢复进一步包括重新开始自动升级。一实施例的升级文件内容包括差别文件和嵌入式软件组件中的至少一个。便携式通信设备的至少一个操作状态包括蜂窝通话状态。
在一实施例的方法中,自动恢复进一步包括确定便携式通信设备中的备份配置数据的可用性,其中备份配置数据包括便携式通信设备的配置数据的预升级版本;检验备份配置数据的准确度;以及用备份配置数据替换便携式通信设备的配置数据。
在一实施例的方法中,自动升级包括通过以下来自动升级至少一个关键软件组件产生对应于关键软件组件原始版本的经升级的软件组件并将经升级的软件组件写入到便携式通信设备的程序存储器,其中响应于关键软件组件自动升级期间的故障的自动恢复还包括确定便携式通信设备中的备份经升级软件组件的可用性,其中备份经升级软件组件包括经升级的软件组件的预升级版本;检验备份经升级软件组件的准确度;和将备份经升级软件组件写入到便携式通信设备的程序存储器。
在一实施例的方法中,自动升级包括通过以下来自动升级至少一个关键软件组件将对应于关键软件组件原始版本的经升级的软件组件写入到便携式通信设备的程序存储器,其中响应于关键软件组件自动升级期间的故障的自动恢复进一步包括确定便携式通信设备中的备份经升级软件组件的可用性,其中备份经升级软件组件包括经升级的软件组件的预升级版本;检验备份经升级软件组件的准确度;和将备份经升级软件组件写入到便携式通信设备的程序存储器。
在一实施例的方法中,自动升级包括通过以下来自动升级至少一个非关键软件组件产生对应于非关键软件组件原始版本的经升级的软件组件并将经升级的软件组件写入到便携式通信设备的程序存储器,其中响应于非关键软件组件自动升级期间的故障的自动恢复进一步包括经由无线耦合来接收经升级的软件组件;和将经升级的软件组件写入到便携式通信设备的程序存储器。
实施例的用于提供客户设备中的故障-安全软件升级的方法进一步包括确定便携式通信设备是否正从自动升级期间的故障中恢复。
实施例的用于提供客户设备中的故障-安全软件升级的方法进一步包括将至少一个错误检查和改正过程施加到便携式通信设备的升级文件内容,要被升级的软件组件的内容,经升级的软件组件内容和配置数据中的至少一个。该至少一个错误检查和改正过程包括循环冗余码(CRC)和检查和值中至少一个的使用。
以上所述的用于在客户设备中提供故障-安全软件升级的系统和相关的方法包括用于升级电子文件的系统,包括第一设备,其包括产生升级文件的第一升级组件,其中升级文件包括用来修复电子文件中的错误的信息和向电子文件中添加功能性的信息中的至少一个;以及移动通信设备,其包括经由与第一设备的无线耦合来接收升级文件的第二升级组件,其中第二升级组件使用升级文件内容来自动升级移动通信设备中的电子文件,其中响应于自动升级期间的故障,第二升级组件将移动通信设备自动恢复到至少一个操作状态。一实施例的第一设备是基于处理器的设备,其可由被掌管在所述第二设备上的软件组件的至少一个提供者访问。一实施例的移动通信设备是蜂窝电话。一实施例的电子文件包括软件文件,其包括动态链接库文件,共享目标文件,嵌入式软件组件(EBSC),固件文件,可执行文件,包括十六进制数据文件的数据文件,系统配置文件,和包括个人使用数据的文件。
以上所述的用于在客户设备中提供故障-安全软件升级的系统和相关的方法包括用于执行便携式设备中故障-安全软件升级的方法,包括经由至少一个无线耦合在便携式通信设备中接收升级文件,其中升级文件内容包括用来修复便携式通信设备的软件组件中的错误的信息和用来升级便携式通信设备的功能的信息中的至少一个;使用该升级文件内容来自动升级软件组件;检测自动升级期间的故障;以及响应于检测到的故障,将便携式通信设备自动恢复到至少一个操作状态,其中恢复包括确定便携式通信设备中备份配置数据的可用性,其中备份配置数据包括便携式通信设备的配置数据的预升级版本,其中恢复进一步包括检验备份配置数据的准确度和用经检验的备份配置数据替换配置数据。
以上所述的用于在客户设备中提供故障-安全软件升级的系统和相关的方法包括移动通信设备,其包括用于经由至少一个无线耦合在便携式通信设备中接收升级文件的装置,其中升级文件内容包括用来修复便携式通信设备软件组件中的错误的信息和用来升级便携式通信设备功能的信息中的至少一个;使用升级文件内容来自动升级软件组件的装置;以及响应于自动升级期间的故障自动将便携式通信设备恢复到至少一个操作状态的装置。
以上所述的用于在客户设备中提供故障-安全软件升级的系统和相关的方法包括计算机可读媒介,其包括可执行指令,当在处理系统中被执行时,该可执行指令通过以下来升级便携式通信设备中的软件经由至少一个无线耦合在便携式通信设备中接收升级文件,其中升级文件内容包括用来修复便携式通信设备的软件组件中的错误的信息和用来升级便携式通信设备的功能的信息中的至少一个;使用该升级文件内容来自动升级软件组件;检测自动升级期间的故障;以及响应于检测到的故障,将便携式通信设备自动恢复到至少一个操作状态,其中恢复包括确定便携式通信设备中备份配置数据的可用性,检验备份配置数据的准确度,和用经检验的备份配置数据替换配置数据。
本发明的方面可作为编程到多种电路中任何一种中的功能性而被实施,该多种电路包括可编程逻辑设备(PLD),如现场可编程门阵列(FPGA),可编程阵列逻辑(PAL)设备,电可编程逻辑和存储设备以及标准的基于单元(cell-based)的设备,以及专用集成电路(ASIC)。用来实施本发明方面的一些其它可能性包括具有存储器的微控制器(如电可擦除可编程只读存储器(EEPROM)),嵌入式微处理器,固件,软件等。此外,本发明的方面可实施在这样的微处理器中,其具有基于软件的电路仿真,离散逻辑(顺序的和组合的),定制设备,模糊(神经)逻辑,量子设备,和上述设备类型的任何混合。当然,基础设备技术可以多种组件类型来提供,如金属-氧化物半导体场-效应晶体管(MOSFET)技术,像互补金属-氧化物半导体(CMOS),双极技术,像发射极耦合逻辑(ECL),聚合物技术(例如,硅-共轭聚合物和金属-共轭聚合物-金属结构),混合的模拟和数字技术等。
除非上下文中明确地另有需要,在所有说明和权利要求中,单词“包括”、“包含”等应被理解为包括的意思,与排他的或详尽的意思相对;也就是说,是“包括,但不限于”的意思。使用单数或复数的词也分别包括复数或单数。此外,单词“在此”、“在以下”以及相似意思的词,当在本申请中被使用时,指的是作为一个整体的本申请而不是指本申请的任何特定的部分。
本发明的所说明的实施例的以上描述不是旨在穷尽或将本发明限制到所公开的确切形式。尽管出于说明的目的,本发明的特定实施例和实例在此被描述,在本发明的范围内各种等效的修改是可能的,如相关领域的技术人员将认识到的。此处所提供的本发明的教导可被用于其它处理系统和通信系统,不仅用于上述的文件更新。
以上描述的各种实施例的元素和动作可被组合以提供进一步的实施例。根据上面详细的描述,对于本发明的这些和其它变化可被进行。
以上所有参考以及美国专利和专利申请在此被引入作为参考。如果必要的话,本发明的方面可被修改以使用上面描述的各种专利和申请的系统、功能和概念来提供本发明更进一步的实施例。
一般来说,在下面权利要求中所用的术语将不被解释为将本发明限制在说明书和权利要求中所公开的特定实施例,但是应被理解为包括在权利要求下操作以提供用于文件求差和更新的方法的所有处理系统。因此,本发明不被此公开内容所限制,而是本发明的范围完全由权利要求确定。
尽管本发明的某些方面在下面以某些权利要求的形式来呈现,但是发明人设想了处于任何数目的权利要求形式的本发明的各个方面。例如,尽管本发明的只一个方面被陈述为在计算机可读媒介中被实施,但是其它方面可同样在计算机可读媒介中被实施。因此,发明者保留在提交本申请之后添加附加权利要求以将这样的附加权利要求形式用于本发明的其它方面的权利。
权利要求
1.一种便携式通信设备,其包括至少一个处理器和至少一个电子文件,其中处理器通过至少一个无线耦合来接收升级文件,其中处理器使用升级文件的内容来自动升级电子文件,其中升级包括修复电子文件中错误和提供附加电子文件中的至少一个,其中响应于在电子文件自动升级期间的故障,处理器自动将便携式通信设备恢复到至少一个操作状态。
2.权利要求1的设备,其中便携式通信设备是蜂窝电话、便携式计算设备和个人数字助理中的至少一个。
3.权利要求1的设备,其中所述至少一个操作状态包括蜂窝通话状态。
4.一种方法,其包括经由至少一个无线耦合在便携式通信设备中接收升级文件,其中升级文件内容包括用来修复便携式通信设备软件组件中的错误的信息和用来升级便携式通信设备的功能的信息中的至少一个;使用该升级文件内容自动升级软件组件;以及响应于自动升级期间的故障,将便携式通信设备自动恢复到至少一个操作状态。
5.权利要求4的方法,其中自动恢复进一步包括继续进行自动升级。
6.权利要求4的方法,其中自动恢复进一步包括重新开始自动升级。
7.权利要求4的方法,其中所述升级文件内容包括差别文件和嵌入式软件组件中的至少一个。
8.权利要求4的方法,其中所述至少一个操作状态包括蜂窝通话状态。
9.权利要求4的方法,其中自动恢复进一步包括确定便携式通信设备中的备份配置数据的可用性,其中备份配置数据包括便携式通信设备配置数据的预升级版本;检验备份配置数据的准确度;以及用备份配置数据替换便携式通信设备的配置数据。
10.权利要求9的方法,其中自动升级包括通过以下来自动升级至少一个关键软件组件产生对应于该关键软件组件原始版本的经升级的软件组件并将经升级的软件组件写入到便携式通信设备的程序存储器,其中响应于关键软件组件自动升级期间的故障的自动恢复包括确定便携式通信设备中备份经升级软件组件的可用性,其中备份经升级软件组件包括经升级的软件组件的预升级版本;检验备份经升级软件组件的准确度;以及将备份经升级软件组件写入到便携式通信设备的程序存储器。
11.权利要求9的方法,其中自动升级包括通过以下来来自动升级至少一个关键软件组件将对应于该关键软件组件原始版本的经升级的软件组件写入到便携式通信设备的程序存储器,其中响应于关键软件组件自动升级期间的故障的自动恢复进一步包括确定便携式通信设备中备份经升级软件组件的可用性,其中备份经升级软件组件包括经升级的软件组件的预升级版本;检验备份经升级软件组件的准确度;以及将备份经升级软件组件写入到便携式通信设备的程序存储器。
12.权利要求9的方法,其中自动升级包括通过以下来自动升级至少一个非关键软件组件产生对应于该非关键软件组件原始版本的经升级的软件组件并将该经升级的软件组件写入到便携式通信设备的程序存储器,其中响应于非关键软件组件自动升级期间的故障的自动恢复进一步包括经由无线耦合来接收经升级的软件组件;以及将经升级的软件组件写入到便携式通信设备的程序存储器。
13.权利要求4的方法,进一步包括确定便携式通信设备是否正从自动升级期间的故障中恢复。
14.权利要求4的方法,进一步包括将至少一个错误检查和改正过程应用于便携式通信设备的升级文件内容、要被升级的软件组件内容、经升级的软件组件内容和配置数据中的至少一个。
15.权利要求14的方法,其中所述至少一个错误检查和改正过程包括循环冗余码(CRC)和检查和值中至少一个的使用。
16.一种用于升级电子文件的系统,包括第一设备,其包括产生升级文件的第一升级组件,其中升级文件包括用来修复电子文件中的错误的信息和用来向电子文件添加功能性的信息中的至少一个;以及移动通信设备,其包括经由与第一设备的无线耦合来接收升级文件的第二升级组件,其中第二升级组件使用升级文件内容来自动升级移动通信设备的电子文件,其中响应于自动升级期间的故障,第二升级组件将移动通信设备自动恢复到至少一个操作状态。
17.权利要求16的系统,其中第一设备是基于处理器的设备,其可由被掌管在第二设备上的软件组件的至少一个提供者来访问。
18.权利要求16的系统,其中移动通信设备是蜂窝电话。
19.权利要求16的系统,其中电子文件包括软件文件,其包括动态链接库文件,共享目标文件,嵌入式软件组件(EBSC),固件文件,可执行文件,包括十六进制数据文件的数据文件,系统配置文件,和包括个人使用数据的文件。
20.一种用于在便携式设备中执行故障-安全软件升级的方法,包括经由至少一个无线耦合在便携式通信设备中接收升级文件,其中升级文件内容包括用来修复便携式通信设备软件组件中的错误的信息和用来升级便携式通信设备功能的信息中的至少一个;使用该升级文件内容自动升级软件组件;检测自动升级期间的故障;以及响应于检测到的故障,将便携式通信设备自动恢复到至少一个操作状态,其中恢复包括确定便携式通信设备中备份配置数据的可用性,其中备份配置数据包括便携式通信设备配置数据的预升级版本,其中恢复进一步包括检验备份配置数据的准确度和用经检验的备份配置数据替换配置数据。
21.一种移动通信设备,包括装置,其用于经由至少一个无线耦合在便携式通信设备中接收升级文件,其中升级文件内容包括用来修复便携式通信设备软件组件中错误的信息和用来升级便携式通信设备功能的信息中的至少一个;装置,其使用该升级文件内容自动升级软件组件;以及装置,其响应于自动升级期间的故障将便携式通信设备自动恢复到至少一个操作状态。
22.一种计算机可读媒介,包括可执行指令,当在处理系统中被执行时,该可执行指令通过以下来升级便携式通信设备中的软件经由至少一个无线耦合在便携式通信设备中接收升级文件,其中升级文件内容包括用来修复便携式通信设备软件组件中的错误的信息和用来升级便携式通信设备功能的信息中的至少一个;使用该升级文件内容自动升级软件组件;检测自动升级期间的故障;以及响应检测到的故障,将便携式通信设备自动恢复到至少一个操作状态,其中恢复包括确定便携式通信设备中备份配置数据的可用性,检验备份配置数据的准确度,和用经检验的备份配置数据替换配置数据。
全文摘要
提供一种便携式通信设备,其经由至少一个无线耦合来接收升级文件。该升级文件的内容包括用来修复便携式通信设备软件组件中的错误的信息和/或用来升级该便携式通信设备功能的信息。便携式通信设备使用升级文件内容来自动升级软件组件。当在自动升级期间检测到错误或故障时,该便携式通信设备自动恢复到操作状态。此外,该便携式通信设备在该错误或故障之后继续进行或重新开始自动升级。
文档编号H04M1/725GK1711747SQ200380103167
公开日2005年12月21日 申请日期2003年11月12日 优先权日2002年11月12日
发明者冀德, 彭罗生 申请人:创道软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1