CN111459524A - 软件的升级方法、装置、*** - Google Patents
软件的升级方法、装置、*** Download PDFInfo
- Publication number
- CN111459524A CN111459524A CN202010254331.3A CN202010254331A CN111459524A CN 111459524 A CN111459524 A CN 111459524A CN 202010254331 A CN202010254331 A CN 202010254331A CN 111459524 A CN111459524 A CN 111459524A
- Authority
- CN
- China
- Prior art keywords
- version
- file
- upgrading
- software
- upgrade
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 230000015654 memory Effects 0.000 claims description 31
- 230000004044 response Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 238000012360 testing method Methods 0.000 description 5
- 238000011084 recovery Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Images
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及计算机领域,公开了一种软件升级方法,装置以及***,软件升级方法,包括:服务器确定将终端上安装的软件的第一版本升级到软件的第二版本的引导版本所需的第一升级文件;服务器向终端发送第一升级文件;服务器确定将终端上安装的软件的第二版本的引导版本升级到软件的第二版本所需的第二升级文件;服务器向终端发送第二升级文件;其中,第一升级文件和第二升级文件的大小均小于终端中存储设备的用于升级的存储区域的大小。本申请可以在终端的存储空间较小的情况下,减小终端的软件升级到最新版本的升级次数。同时,确保终端的软件可以及时更新至最新版本。
Description
技术领域
本申请涉及计算机领域,特别涉及一种软件的升级方法、装置、***。
背景技术
在物联网领域中,通常使用云端升级技术,为具有连网功能的终端:例如智能电视、智能音箱等智能家居设备提供固件或软件升级服务,通过互联网从服务器下载***的升级文件,利用所下载的升级文件对该终端的***升级。
目前,通常采用两种方式对终端的进行升级:一种升级方式是全量升级。采用全量升级方式时,终端从云端下载全量升级文件,该全量升级文件中包括***升级后的最新版本的所有的数据,该全量升级文件的数据量大,下载该全量升级文件所需的时间长;并且,在终端的存储空间大小无法满足全量升级文件的大小时,无法完成固件/软件的升级。另外一种升级方式是差分升级方式。通过计算最新版本和历史版本之间的差异,把差异的内容作为升级文件,发布到服务器上,并由终端进行下载和升级。
对资源受限的物联网场景中,设备端不一定具有进行全量升级的资源要求。通常会采用差分升级方式。但是差分升级的方式难以兼顾设备资源的限制和升级效率的要求,在某些情况下,会导致升级效率的低下。比如当最新版本和某一历史版本的差异比较大,生成的差异内容超过了设备的资源限制,导致设备不能直接从该版本直接升级到最新版本,而只能从该历史版本依次按照版本序号升级。举例说,软件A要从版本4升级到版本7,由于版本7和版本4的差异很大,不能直接升级到版本7,而只能依次升级到版本5、版本6,然后再从版本6升级到版本7。其缺点是,终端必须重复执行多次升级流程。同时,在最新版本和终端的当前版本之间存在多个版本的情况下,终端并不会选择升级至最新版本,例如,软件A的当前版本是版本4,最新版本是版本7,终端在升级至版本6后,就可能不再继续升级至版本7。随着物联网中各终端的新功能越来越多,终端中安装的固件/软件的版本的升级频率越来越高,如果终端的固件/软件不能及时升级至最新版本,很可能会影响终端的使用。
发明内容
本申请实施例提供了一种软件升级方法,包括:
服务器确定将终端上安装的软件的第一版本升级到软件的第二版本的引导版本所需的第一升级文件;
服务器向终端发送第一升级文件;
服务器确定将终端上安装的软件的第二版本的引导版本升级到软件的第二版本所需的第二升级文件;
服务器向终端发送第二升级文件;
其中,第一升级文件和第二升级文件的大小均小于终端中存储设备的用于升级的存储区域的大小。
可选地,还包括:
服务器在检测到终端当前安装了软件的第二版本的引导版本的情况下,确定将终端上安装的软件的第二版本的引导版本升级到软件的第二版本所需的第二升级文件。
可选地,还包括:
服务器从终端接收升级请求,其中,升级请求是终端在软件从第一版本升级到第二版本的引导版本后发送的,用于请求将软件的第二版本的引导版本升级到软件的第二版本;并且,
服务器响应于接收到的升级请求,确定将终端上安装的软件的第二版本的引导版本升级到软件的第二版本所需的第二升级文件。
可选地,还包括:
服务器在检测到终端上安装的软件的第一版本低于服务器上的软件的第二版本的情况下,向终端发送升级提示信息,提示信息用于提示终端:当前安装的软件存在高于第一版本的第二版本。
可选地,还包括:
服务器从终端接收升级指令,其中,升级指令是终端响应于升级提示信息发送的;
服务器响应于升级指令确定将终端上安装的软件的第一版本升级到软件的第二版本的引导版本所需的第一升级文件。
可选地,还包括:
服务器获取软件的第二版本;
服务器在确定软件的第二版本与第一版本之间的差分文件的大小大于终端中存储设备的用于升级的存储区域的大小的情况下,生成软件的第二版本的引导版本,其中,引导版本包括必要文件,必要文件能够使得安装软件的第二版本的引导版本的终端能够正常启动;
服务器基于生成的引导版本,生成第一升级文件和第二升级文件。
可选地,服务器基于生成的引导版本,生成第一升级文件和第二升级文件包括:
服务器比较软件的引导版本和第二版本所包含的版本文件;
服务器将引导版本和第二版本中,文件名不同、或者文件名相同且内容不同的版本文件存储为第二升级文件。
可选地,服务器基于生成的引导版本,生成第一升级文件和第二升级文件包括:
服务器比较软件的引导版本和第一版本所包含的版本文件;
服务器将引导版本和第一版本中,文件名不同、或者文件名相同且内容不同的版本文件存储为第一升级文件。
可选地,服务器基于生成的引导版本,生成第一升级文件和第二升级文件包括:
在服务器生成第一升级文件和第二升级文件的同时,生成第一升级文件和第二升级文件的特征值,特征值用于在使用第一升级文件和第二升级文件对终端的软件升级之前,校验第一升级文件和第二升级文件的完整性。
可选地,服务器基于生成的引导版本,生成第一升级文件和第二升级文件还包括:
在服务器生成第一升级文件和第二升级文件后,对第一升级文件和第二升级文件进行加密和签名。
本申请实施例还提供了一种软件升级装置,其特征在于,包括:
下载模块,用于终端从服务器接收软件的第一升级文件,并将第一升级文件存储在终端中存储设备的用于升级的存储区域中;
升级模块,用于终端利用存储的第一升级文件,将终端上安装的软件从第一版本升级到软件的第二版本的引导版本;
下载模块,还用于终端从服务器接收软件的第二升级文件,并将第二升级文件存储在终端中存储设备的用于升级的存储区域中;
升级模块,还用于终端利用存储的第二升级文件,将终端上安装的软件从引导版本升级到第二版本。
可选地,第二升级文件是服务器检测到终端当前安装了软件的第二版本的引导版本后发送的。
可选地,终端将终端上安装的软件从第一版本升级到软件的第二版本的引导版本之后,还包括:
终端向服务器发送升级请求,升级请求用于请求将软件的第二版本的引导版本升级到软件的第二版本。
可选地,其特征在于,还包括:
从服务器接收升级提示信息,其中,提示升级信息是服务器在检测到终端上安装的软件的第一版本低于服务器上的软件的第二版本的情况下发送的,用于提示终端:当前安装的软件存在高于第一版本的第二版本。
可选地,还包括:
终端响应于升级提示信息向服务器发送升级指令,其中,升级指令用于指令服务器将终端上安装的软件从第一版本升级到第二版本。
可选地,引导版本包括必要文件,必要文件能够使得安装软件的第二版本的引导版本的终端能够正常启动。
可选地,升级模块,还用于在第一升级文件和第二升级文件下载至终端的存储区域后对第一升级文件和第二升级文件进行解密和签名校验。
本申请实施例还提供了一种软件的升级文件的制作方法,其特征在于,包括:
服务器获取软件的第一版本和第二版本;
服务器在确定第二版本与第一版本之间的差分文件的大小大于安装软件的终端中存储设备的用于升级的存储区域的大小的情况下,生成软件的第二版本的引导版本,其中,引导版本包括必要文件,必要文件能够使得安装软件的第二版本的引导版本的终端能够正常启动;
服务器基于生成的引导版本,生成第一升级文件和第二升级文件。
可选地,服务器基于生成的引导版本,生成第一升级文件和第二升级文件包括:
服务器比较软件的引导版本和第二版本所包含的版本文件;
服务器将引导版本和第二版本中,文件名不同、或者文件名相同且内容不同的版本文件存储为第二升级文件。
可选地,服务器在确定第二版本与第一版本之间的差分文件的大小小于安装软件的终端中存储设备的用于升级的存储区域的大小的情况下,生成软件的第二版本的升级文件;
升级文件包括,第一版本和第二版本中,文件名不同、或者文件名相同且内容不同的版本文件。
可选地,服务器基于生成的引导版本,生成第一升级文件和第二升级文件包括:
服务器比较软件的引导版本和第一版本所包含的版本文件;
服务器将引导版本和第一版本中,文件名不同、或者文件名相同且内容不同的版本文件存储为第一升级文件。
可选地,在服务器生成第一升级文件和第二升级文件的同时,生成第一升级文件和第二升级文件的特征值,特征值用于在使用第一升级文件和第二升级文件对终端的软件升级之前,校验第一升级文件和第二升级文件的完整性。
可选地,在服务器生成第一升级文件和第二升级文件后,对第一升级文件和第二升级文件进行加密和签名。
本申请实施例还提供了一种机器可读介质,其特征在于,机器可读介质上存储有指令,该指令在机器上执行时使机器执行上述的软件升级方法。
本申请实施例还提供了一种***,包括:
存储器,用于存储由***的一个或多个处理器执行的指令,以及
处理器,是***的处理器之一,用于执行上述的软件升级方法。
本发明通过将固件/软件的最新版本的版本文件与各个历史版本之间的版本文件进行比较,比较的结果,生成一个基于最新版本的引导版本,该引导版本包含的升级文件的大小可以满足安装该固件/软件的终端的存储空间,即,终端可以一次性升级至该引导版本。该引导版本与最新版本的功能不同,但可以使终端正常启动后进入升级模式进而升级至最新版本。同时,该从引导版本升级到最新版本的升级文件的大小也可以满足安装该固件/软件的终端的存储空间,即,终端可以一次性从引导版本升级至最新版本。而无需经过多次升级,也无需为多个历史版本配置不同的引导版本。同时,为了保证固件/软件可以及时使用最新版本,将该引导版本设置为最新版本的升级条件,在终端的固件/软件的版本是该引导版本的情况下,强制终端升级至最新版本。本发明可以在终端的存储空间较小的情况下,减小升级终端的固件/软件到最新版本的升级次数。同时,确保终端的固件/软件可以及时更新至最新版本。
附图说明
在附图各图中通过示例而不是限制说明了本申请,其中相同标记指示相同元件,且其中:
图1根据本申请的一些实施例,示出了一种软件的升级***的场景图;
图2根据本申请的一些实施例,示出了一种软件的升级***中云端100的结构示意图;
图3根据本申请的一些实施例,示出了一种软件的升级***的工作流程图;
图4根据本申请的一些实施例,示出了一种软件的升级***的工作流程图;
图5根据本申请的一些实施例,示出了图4中所示的流程中终端的效果图;
图6根据本申请的一些实施例,示出了一种软件的升级***的工作流程图;
图7根据本申请的一些实施例,示出了一种软件的升级***的工作流程图;
图8根据本申请的一些实施例,示出了一种软件的升级***中下载模块102的结构示意图;
图9根据本申请的一些实施例,示出了一种软件的升级***中下载模块102的结构示意图;
图10根据本申请的一些实施例,示出了一种软件的升级***的工作流程图;
图11根据本申请的一些实施例,示出了一种***的框图;
图12根据本申请的一些实施例,示出了一种片上***(SoC)的框图。
具体实施例
本申请的说明实施例包括但不限于软件的升级方法、装置、***。
可以理解,如本文所使用的,术语“模块””可以指代或者包括专用集成电路(ASIC)、电子电路、执行一个或多个软件或固件程序的处理器(共享、专用、或群组)和/或存储器、组合逻辑电路、和/或提供所描述的功能的其他适当硬件组件,或者可以作为这些硬件组件的一部分。
本申请对存在多个版本的固件中的一个最新版本生成一个基于该最新版本的引导版本,使得该引导版本包含的升级文件的大小可以满足安装该固件的终端的存储设备中用于升级的存储区域存储空间,即,终端可以一次性升级至该引导版本。引导版本可以使终端正常启动后进入升级模式进而升级至最新版本,并且该引导版本升级到最新版本的升级文件的大小,同样满足终端的存储空间,可以使得终端一次性从引导版本升级至最新版本。可以减少终端升级至最新版本的次数。本申请还将引导版本指定为最新版本的升级条件,用于使尝试升级至最新版本的终端必须先升级至引导版本,才能升级至最新版本。同时,强制固件版本为引导版本的终端升级至最新版本,确保同一种类的终端上安装的版本保持统一。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
具体地,根据本申请的实施例,图1示出了一种固件/软件的升级***的场景示例。如图1所示,该升级***10包括云端100和与云端100通信的智能家居终端200-1至200-3。其中,云端100可以包括但不限于计算机服务器,以及能够实现云端计算功能的各种计算设备。云端100上存储有智能家居终端200-1至200-3上的安装的固件/软件的版本文件,并且云端100可以按照预定升级条件对智能家居终端200-1至200-3上安装的固件/软件进行升级。
为了便于理解,如图1所示,假设终端200-1为智能电视、终端200-2为智能音箱、终端200-3为智能插座。可以理解,虽然图1中仅仅示出了三个终端,但是,本申请的升级方案适用于各种终端,包括但不限于如物联网中的智能体重(脂)称、智能电灯、智能风扇、智能冰箱、智能音箱、智能扫地机器人等各种智能的家居电器终端,或者智能打印机、智能空调、智能投影等各种智能办公终端、以及台式机、膝上型计算机、平板计算机、手机、智能电视、移动电子邮件终端、便携式游戏机、便携式音乐播放器、读取器终端、头戴式显示器等各种终端等。在一些实施方式中,终端也可以是能够由用户穿戴的可穿戴终端,例如终端可以是智能手表、手环、首饰或眼镜等,或者作为手表、手环、首饰或眼镜等的一部分。
下面以智能电视200-1的软件MALI升级为例,说明本申请中对终端上的软件/固件进行升级的技术方案。
为了使本申请的实施例的描述便于理解,下面先对本申请涉及的名称概念进行介绍。
软件/固件的当前版本,是指在智能电视200-1升级前,该智能电视200-1上安装的软件的版本,例如,MALI5。
软件/固件的最新版本,在云端100上最新发布的MALI的版本,例如,这里的最新版本可以是云端100上的软件MALI8。
软件/固件的历史版本,是版本早于要升级到的目标版本的软件的版本,例如,对于此次要升级到的最新版本MALI8来说,MALI4、MALI5、MALI6、MALI7等就是相对于MALI8的历史版本。
在本发明的实施例中,如果在云端100上保存有两个MALI的版本,例如MALI1和MALI2,且MALI1早于MALI2,则,MALI1可以成为MALI的第一版本,MALI2可以成为MALI的第二版本,这里的第二版本也可以是MALI的最新版本。
软件/固件的版本文件,是指软件/固件的一个版本包含的文件,包括直接影响该版本的正常运行必须要存在的必要文件以及非必要文件,这里的非必要文件包括但不限于数据文件、图标文件等,例如,MALI6的版本文件包含文件A、文件B和文件C,其中,文件A、文件B为必要文件,在智能电视200-1的软件MALI为MALI6且包含文件A、文件B的情况下,智能电视200-1才能正常运行MALI6。文件C可以是MALI6的图标文件,用于显示背景。
差分文件,是指根据软件/固件的两个不同版本之间的差异生成的文件,例如,MALI5包含文件A、文件B,MALI6包含文件A、文件B和文件C,则差分文件为文件C。
版本的升级文件,是指由云端100发送给终端的用于实现终端上的软件/固件升级的文件包。例如,对于智能电视200-1的软件MALI的升级文件,该升级文件可以包含MALI的待升级版本和升级后的最新版本之间的差分文件。例如,智能电视200-1上MALI的版本为MALI5,其包含文件A、文件B,要升级的最新版本为MALI7,其包含文件A、文件B、文件C和文件D,则差分文件为文件C和文件D。则用于将MALI从MALI5升级至MALI6的升级文件包含文件C和文件D。
差分升级,是根据升级前的软件/固件的当前版本,与升级后的软件/固件的最新版本之间的差异,实现软件/固件升级的技术。例如,采用差分升级时,云端100仅给智能电视200-1发送包含差分文件的升级文件。例如,MALI5包含文件A、文件B,MALI7包含文件A、文件B、文件C和文件D,则差分文件为文件C和文件D。则从MALI5升级至MALI7,包含文件C和文件D。在智能电视200-1从MALI5升级至MALI7的情况下,云端100仅给智能电视200-1发送包含文件C和文件D的升级文件。
下面详细介绍云端100中与软件/固件升级相关的技术。
图2示出了云端100的结构示意图。具体地,如图2所示,云端100包括:文件管理模块101、下载模块102、以及升级模块103。可以理解,云端100的三个模块可以位于同一个物理实体上,如位于同一个服务器上,也可以位于不同的物理实体上,而单个模块也可以位于同一个物理实体上,如位于同一个服务器上,也可以位于不同的物理实体上,在此不做限制。
其中,文件管理模块101可以用于保存和管理对应MALI的各个版本的版本文件,并基于各个版本的版本文件生成版本对应的升级文件。在生成升级文件的过程中,文件管理模块101可以依据智能电视200-1的存储区域的大小,使得生成的升级文件的大小小于智能电视200-1的存储区域的大小。在生成MALI各版本对应的升级文件时,文件管理模块101会为MALI的每个版本设置升级条件,例如,对于MALI8,在其他版本要升级至MALI8时,如果其他任意版本与MALI8之间的差分文件大小超过智能电视200-1的存储区域的大小,例如MALI8和MALI7之间的差分文件的大小大于智能电视200-1的存储区域的大小,则需要为MALI8设置一个引导版本MALI8-p,其中,MALI8和MALI8-p之间的差分文件的大小小于智能电视200-1的存储区域的大小,故对应MALI8的升级文件包括由MALI8和MALI8-p之间的差分文件生成的升级文件。此外,还需要对引导版本MALI8-p设置升级条件,例如,如果MALI8的其他历史版本与MALI8-p之间的差分文件的大小均小于智能电视200-1的存储区域的大小,则引导版本MALI8-p的升级条件为任意版本均可升级到引导版本MALI8-p。而如果MALI8的其他历史版本与MALI8-p之间差分文件的大小有些大于智能电视200-1的存储区域的大小,有些小于智能电视200-1的存储区域的大小,则为MALI8-p设置升级条件为:与MALI8-p之间的差分文件的大小小于智能电视200-1的存储区域的大小的历史版本可以直接升级到MALI8-p,而与MALI8-p之间的差分文件的大小大于智能电视200-1的存储区域的大小的历史版本,需要升级到另一历史版本或者引导版本,然后再升级到MALI8-p,其中另一历史版本或者引导版本与MALI8-p之间的差分文件的大小小于智能电视200-1的存储区域的大小。
此外,为了保证智能电视200-1能够顺利升级到MALI8,还可以设置其引导版本MALI8-p无法独立运行,并且智能电视200-1上MALI升级到MALI8-p后必须升级到MALI8。
下面以具体的例子介绍文件管理模块101设置引导版本以及升级文件的过程。
具体地,例如,在一些实施例中,文件管理模块101上已经保存有对应软件MALI的版本MALI1至MALI7七个版本,在MALI的开发商发布了新的软件版本MALI8后,需要为MALI8生成升级文件。具体过程如下:
图3根据本发明的实施例示出了文件管理模块101设置MALI的最新版本、最新版本的引导版本以及生成最新版本的升级文件的流程图。
(1)MALI的开发商通过文件管理模块101的用户界面将最新版本MALI8的版本文件上传至云端100。
这里的用户界面可以是基于浏览器或者是客户端的操作界面。在用户界面内,开发商可以上载MALI8的版本文件至云端100,这里的开发商可以是软件MALI的开发管理人员。
上述操作也可以由配置后的计算机程序完成,该程序可以运行在文件管理模块101程序检测并获取MALI的最新版本MALI8的版本文件,云端100获取MALI的最新版本的版本文件方式可以是文件管理模块101通过通信方式接收到版本文件,当程序获取该版本文件后,将版本文件保存至MALI软件的存储目录。
同时,文件管理模块101还将获取制造商ID,型号ID,终端ID以及MALI,的版本信息,制造商ID,型号ID,终端ID用于确定MALI适用的终端,这里是智能电视200-1,版本信息用于表述版本的相关信息,例如,版本文件的数量,大小等信息。
(2)基于智能电视200-1以及MALI的历史版本生成MALI8的升级文件
首先,文件管理模块101可以通过比较MALI8与MALI的历史版本之间的差异来生成MALI8与MALI的历史版本之间的差分文件,具体地,MALI的版本之间的差异可以体现在文件的个数上,MALI8的版本文件包括文件A、文件B、文件C和文件D,MALI7包括的版本文件包括文件A、文件B和文件C,MALI8相对于MALI7的差异生成的差分文件是文件D。这里的差分文件D就是存在MALI8中但是不存在于MALI7中的版本文件。
在一些实施例中,MALI1至MALI7的版本文件和MALI8的版本文件之间的差分文件大小均超过智能电视200-1的存储区域的大小,MALI1至MALI7中的任意1个版本都无法直接升级至MALI8,因此可以对MALI8设置一个引导版本MALI8-p,并且使MALI1至MALI7这七个版本中的任意一个版本与MALI8-p之间的差分文件的大小都小于智能电视200-1的存储区域的大小,使MALI1至MALI7中的任意1个版本都可以直接升级至MALI8-p。也就是对MALI设置1个升级条件,使任意早于MALI8的版本均可升级到MALI8-p,再从MALI8-p升级至MALI8。
文件管理模块101将MALI8-p与MALI8之间的差分文件制作成MALI8-p升级至MALI8的升级文件,将MALI1至MALI7与MALI8-p的差分文件制作成MALI8-p的升级文件,可以理解的是,在MALI1至MALI7与MALI8-p的差分文件之和的大小小于智能电视200-1的存储区域的大小的情况下,文件管理模块101可以将MALI1至MALI7与MALI8-p之间的差分文件生成的1个升级文件。对于MALI7来说,从MALI7升级至MALI8-p的升级文件可以是第一升级文件,从MALI8-p升级至MALI8的升级文件可以是第二升级文件。也可以是,MALI1至MALI7七个版本分别与MALI8-p之间的差分文件生成的7个升级文件。升级文件的格式可以是镜像文件。
可以理解,MALI的版本之间的差异还可以体现在文件的内容上,也就是文件中的数据块,其中,数据块一般为4K=4096字节,是文件中的最小逻辑存储单元。在MALI版本升级的前后,MALI的版本文件的文件标识不发生变化,这里的文件标识可以是文件名、文件的数量。但是版本文件中的内容发生改变。MALI8的版本文件包括文件A、文件B、文件C和文件D,MALI7包括的版本文件包括文件A、文件B、文件C和文件D,对于MALI7和MALI8中文件标识为文件D,文件中的内容已经发生了改变。MALI7的文件D包含内容a、b,MALI8的版本文件也存在文件D,包含内容a、b、c。则MALI8相对于MALI7的差异生成的差分文件是文件D,文件D中包含的内容是c,则MALI8基于MALI7的升级文件就包含文件D,其中文件D包含内容是c。
在一些实施例中,如表1所示可以将MALI8的版本文件中包含的必要文件文件A和文件B,配置为引导版本MALI8-p的版本文件,同时,将文件C配置为MALI8的版本文件,两者都小于智能电视200-1的存储空间,这样使得智能电视200-1升级至MALI8-p后,继续升级至MALI8不会造成智能电视200-1无法升级至MALI8。
软件名称 | 最新版本 | 文件名 | 文件种类 |
MALI | MALI8 | 文件A | 必要文件 |
MALI | MALI8 | 文件B | 必要文件 |
MALI | MALI8 | 文件C | 非必要文件 |
表1
在另一些实施例中,MALI1至MALI7的版本文件和MALI8的版本文件之间的差分文件大小均超过智能电视200-1的存储区域的大小,MALI1至MALI7中的任意1个版本都无法直接升级至MALI8,因此可以对MALI8设置一个引导版本MALI8-p。同时,MALI1至MALI4的版本文件和MALI8-p的版本文件之间的差分文件均超过智能电视200-1的存储区域的大小。因此,MALI5至MALI7中的任意1个版本都可以直接升级至MALI8-p,再从MALI8-p升级至MALI8。对于MALI1至MALI4,如果MALI1至MALI4的版本文件和MALI5的版本文件之间的差分文件大小均小于智能电视200-1的存储区域的大小,可以对MALI5设置一个升级条件,使任意早于MALI5的版本均可升级到MALI5,再根据MALI8的升级条件最终升级至MALI8。
文件管理模块101将MALI8-p与MALI8之间的差分文件制作成MALI8-p升级至MALI8的升级文件,将MALI5至MALI7与MALI8-p的差分文件制作成MALI8-p的升级文件,可以理解的是,在MALI1至MALI7与MALI8-p的差分文件之和的大小小于智能电视200-1的存储区域的大小的情况下,文件管理模块101可以将MALI1至MALI7与MALI8-p之间的差分文件生成的1个升级文件。也可以是,MALI1至MALI7七个版本分别与MALI8-p之间的差分文件生成的7个升级文件。
这里的升级文件除了包括上述差分文件,还可以包括差分文件的文件名信息、路径信息以及差分文件的特征值,这里的特征值用于确保信息传输完整一致,例如MD5值(Message-Digest Algorithm 5,报文摘要算法5)。
文件管理模块101将上述生成的升级文件保存于云端100的数据库里,在需要对升级文件进行查询以及修改等操作时,文件管理模块101可以将升级文件加载至存储器内,例如:云端100的内存。
通过制作差分文件的方式,可以进一步减少MALI升级文件的大小,可以节省智能电视200-1的存储空间以及加快下载升级文件的速度,以增加升级的效率。
下载模块102可以用于检验1云端100通信连接的智能电视200-1的MALI的当前版本,向智能电视200-1发送升级指令,接收到智能电视200-1的确认升级的返回指令后,将保存于文件管理模块101的MALI升级文件下载至智能电视200-1的存储区域。
升级模块103用于基于终端的存储区域中的MALI升级文件对智能电视200-1的MALI进行升级。在升级完成后,将智能电视200-1重新启动。
下面将介绍下载模块102将MALI的升级文件下载至智能电视200-1,以及升级模块103升级MALI的升级文件的过程。
下载模块102与智能电视200-1通信连接,用于从文件管理模块101获取MALI升级文件以及将MALI升级文件发送给智能电视200-1,如图4所示,具体过程包括:
401:下载模块102向与云端100通信连接的智能电视200-1发送升级提示信息,接收智能电视200-1的确认升级的返回指令。
具体地,在本实施例中,下载模块102基于物联网的通信方式与智能电视200-1建立通信连接后,检查智能电视200-1的MALI的版本,确认该版本为MALI6之后从文件管理模块101获取MALI的最新版本,该最新版本为MALI8,经过对比发现MALI的最新版本高于智能电视200-1的MALI的版本后,如图5所示,下载模块102可以向智能电视200-1发送升级提示信息,提示智能电视200-1MALI发布了最新版本MALI8,是否要升级后,接收智能电视200-1的确认升级的返回指令。
这里的通信方式不作限定,可以采用输控制协议(Transmission ControlProtocol,TCP)、用户数据报协议(User Datagram Protocol,UDP)等各种通信协议来进行访问和数据传输。
可以理解,下载模块102除了检查并读取智能电视200-1的MALI的版本之外,还可以获取智能电视200-1的制造商ID,型号ID等,上述信息可以用于下载模块102在每次下载升级文件的过程中,记录相关下载日志。
可以理解,在其他实施例中,也可以是智能电视200-1定时/定期检测到MALI有升级的版本后,向云端100发送升级请求。
可以理解,在其他实施例中,下载模块102也可以向智能电视200-1发送的升级提示信息后,自动进行升级,无需智能电视200-1确认同意。
402:下载模块102在接收到智能电视200-1的确认升级的返回指令后,从文件管理模块101下载对应的MALI的升级文件存储至智能电视200-1的存储区域。具体地,下载模块102在接收到智能电视200-1的确认升级的返回指令后,校验最新版本MALI8是否存在引导版本,MALI8的引导版本MALI8-p,而智能电视200-1上安装的是MALI6,不满足MALI8-p,因此下载模块102尝试将MALI8-p的升级文件下载至智能电视200-1的存储区域以进行升级。
这里的MALI8-p是最新版本MALI8的引导版本,也就是说,任何比MALI8低的版本都需要先升级至MALI8-p后,才能升级至最新版本MALI8。
在下载模块102下载可以理解,这里的存储区域包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,存储区域可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如HDD(Hard DiskDrive,硬盘驱动器),CD(Compact Disc,光盘)驱动器,DVD(Digital Versatile Disc,数字通用光盘)驱动器中的至少一个。
MALI的升级文件时,如果出现下载失败的情况下,下载模块102认定下载失败,可以通过向文件管理模块101发送下载失败的返回值提示下载失败。在成功下载升级文件后,下载模块102使用校验算法计算出该升级文件的特征值,例如:上述提到的MD5值,与文件管理模块101生成升级文件时生成的特征值比较。如果两个特征值相同,则认为下载的升级文件是完整的。如果两个特征值不同,则下载模块102认为下载到的升级文件有数据丢失,也会向文件管理模块101发送下载失败的返回值。文件管理模块101接收到下载失败的返回值后,可以向下载模块102重新发送升级文件,也可以不向下载模块102重新发送升级文件,通过下载模块102向智能电视200-1发送错误提示信息而等待智能电视200-1确认是否重新下载。
403:在下载模块102成功下载了升级文件后,将智能电视200-1的引导路径为恢复引导,这里的恢复引导用于在智能电视200-1的下一次关机再开机的操作后,使得智能电视200-1进入MALI8-p的升级模式。
这里的升级模式,可以是智能电视200-1的***的安全模式,在安全模式下可以修复***的一些错误,进行软件升级等,使智能电视200-1运行在***最小模式,这样就可以方便地检测、修复、升级软件。
404:在智能电视200-1进入升级模式后,升级模块103使用MALI8-p的升级文件升级智能电视200-1。具体地,升级模块103基于智能电视200-1的存储区域中的MALI8-p升级文件,可以采用基于差分文件的增量算法进行智能电视200-1的MALI的升级,这里的增量算法是指将升级文件的差分文件与智能电视200-1的MALI6的文件进行差异比较后合并,对智能电视200-1的MALI6的文件只升级有差异的部分,本实施例中的MALI6的版本文件包含文件A,MALI8-p升级文件包含文件B,因此,MALI6升级至MALI8-p则需要升级添加文件B。在升级完成后,升级模块103将智能电视200-1的引导路径更改为智能电视200-1的***引导,该***引导用于在下一次关机再开机的操作后,使得智能电视200-1使用MALI8-p启动。
在一些实施例中,MALI的版本之间的升级可以体现在增加文件的内容上,MALI8-p的升级文件包括文件B,MALI6包括的版本文件也包括文件B,对于该文件B,文件中的内容已经发生了改变。MALI6的文件B包含内容a、b,MALI8-p的升级文件中的文件B,包含内容c。则MALI8相对于MALI7的差异是文件B中包含的内容是c,因此,MALI6升级至MALI8-p则需要,对于MALI6的文件B中增加内容c。
可以理解,升级模块103在升级过程前,还会对升级文件包含的数据执行安全性验证,使用公钥验证的升级文件中包含的差分文件,该差分文件由文件管理模块101通过私钥加密算法进行签名,该公钥用于验证经过私钥加密的差分文件,这里的公钥和私钥是非对称加密算法中使用的加密方法,数据的发送方可以成自己的加解密和/或签名的公密钥对,通过私钥对数据加密后,将数据以及公钥发送给接收方,接收方通过公钥解密后获得数据,例如,基于ECDSA(Elliptic Curve Digital Signature Algorithm,椭圆曲线数字签名算法)的公密钥对。
在智能电视200-1上升级至MALI8-p后,下载模块102会再验证已经升级的智能电视200-1上的MALI的版本,在确认智能电视200-1的MALI为MALI8-p是MALI8的引导版本时,如图6所示,下载模块102和升级模块103会重复上述401至404的步骤,直到将智能电视200-1上的MALI成功升级至MALI8,智能电视200-1上的MALI的版本已经升级至MALI8后,云端100的升级程序终止,在这里不再赘述。
在一些实施例中,智能电视200-1的成功升级至MALI8后,升级模块103还将在智能电视200-1的OTP(One-Time Programmable,也可以称为Fuse保险丝,一次性可存储空间)内写入MALI的版本MALI8,该OTP中的MALI8用于校验智能电视200-1的MALI,确保智能电视200-1的MALI在升级后,不会被轻易回退至历史版本。
405:下载模块102与智能电视200-1建立通信连接后,检查智能电视200-1的MALI的版本,确认该版本为MALI8的引导版本MALI8-p之后,通过升级模块103强制将MALI8-p进行升级至MALI8。具体地,如图7所示,下载模块102检查智能电视200-1的MALI的版本,确认该版本为MALI8-p之后从文件管理模块101确认MALI8-p是最新版本MALI8的引导版本,下载模块102向智能电视200-1发送升级提示信息,提示智能电视200-1MALI发布了最新版本MALI8,是否要升级后,接收智能电视200-1的确认升级的返回指令。即使在智能电视200-1返回拒绝升级的返回指令的情况下,下载模块102和升级模块103仍然会重复上述401至404的步骤,将智能电视200-1上的MALI8-p升级至MALI8。
可以理解,在其他实施例中,也可以是智能电视200-1在升级完MALI8-p后,断开与云端100的连接,造成智能电视200-1不能及时升级至MALI8。在这种情况下,云端100会定时/定期扫描与云端100通信连接智能电视200-1,一旦检测到安装有MALI8-p的智能电视200-1后,会强制智能电视200-1升级至MALI8。
可以理解,在其他实施例中,也可以是智能电视200-1定时/定期检测到安装的MALI的版本是MALI最新版本的引导版本后,向云端100发送强制升级的请求。
可以理解,在其他实施例中,下载模块102和升级模块103还具有恢复阶段的断点恢复功能,该断点恢复功能能够记录下载和升级过程中失败的升级点,以确保终端能够从该升级点继续执行,即,可以跳过已经执行完成的部分从未执行的部分继续执行,而无须重新执行,可以避免由于在下载和升级过程中出现断电或者网络连接断开而导致失败而重新执行的情况。
具体地,MALI6的版本文件中文件B包含内容a,MALI8-p的升级文件中的文件B,包含内容b、c。升级模块103在将智能电视200-1的MALI从MALI6升级至MALI8-p的过程中,在对MALI6的文件B中增加完内容b后,记录了上述过程的状态,智能电视200-1发生了断电,导致升级中止,在智能电视200-1恢复启动后,升级模块103c可以继续对MALI6的文件B中增加内容c,而无需重新对MALI6的文件B中增加内容b。
在一些实施例中,图8示出了下载模块102的一种网络堆栈架构图。下载模块102可以基于Wakaama(lightweight Machine to Machine,轻量级的物联网的协议的别名),通过云端100和智能电视200-1实现通信连接,发送升级提示信息,接收返回信息以及下载MALI的升级文件等操作。其中,Wakaama是基于UDP(User Datagram Protocol,用户数据报协议)以及DTLS(Datagram Transport Layer Security,数据包传输层安全性协议)实现安全、高效地发送经过加密后的升级文件,例如,同时向多个终端传输相同的数据,对升级文件中包含的文件进行加密。UDP和DTLS的底层实现是基于云端100和智能电视200-1各自的IP地址之间的通信。
根据本申请的一些实施例,图9示出了下载模块102的集成拓扑结构图,下载模块102的源代码是基于Wakaama(lightweight Machine to Machine,轻量级的物联网的协议的别名)的移植应用程序接口、mbedtls(Arm的加密库)以及网络应用程序接口实现的,同时源代码还实现了标准库的应用程序接口的以及下载模块移植应用程序接口。
在一些实施例中,用户还可以对MALI的升级设置过滤条件,该过滤条件可以用于在MALI的版本的升级过程中,限定能够进行升级的终端的数量,可以运用在MALI的版本的测试过程中,使得用户可以从用于测试的智能电视中选择部分升级而不是全部,节省了测试的成本。例如,在测试环境中,云端100连接有100台智能电视200-1至200-100,用户在云端100发布了MALI的最新版本后,想在100台智能电视中的20台200-1至200-20上升级最新版本,用于测试最新版本,用户可以对MALI的最新版本的升级过程设置过滤条件,限定只有智能电视200-1至200-20才能升级至最新版本。这里的过滤条件可以模拟测试不同的终端的升级场景,包括但不限于使用正则表达式的方式来限定终端的数量。用户还可以通过用户界面对MALI的信息进行查询,用于获取MALI的详细情况。
根据本申请的一些实施例,云端100可以是基于FOTA(Firmware Over-The-Air,移动终端的空中下载软件升级)的服务器。FOTA服务器具有前文所描述的云端100的结构和各种功能。
下面结合图10对***10中的云端100和智能电视200-1的升级流程进行说明,上述描述中的具体细节在此处依然适用,在此不再赘述。智能电视200-1连接至云端100后,智能电视200-1向云端100发送或者是云端100主动获取智能电视200-1的制造商ID,型号ID,终端ID以及MALI的当前版本等信息,云端100在获取上述信息后,加载云端100保存的MALI的版本。加载完毕后,云端100判断MALI的版本是否高于智能电视200-1的当前版本,结果为否的话,则升级流程终止。结果为是的话,云端100判断云端100上保存的MALI的版本是否高于智能电视200-1的MALI的当前版本,如果不高于则升级流程终止。
本发明的实施例还包括一种机器可读介质,该机器可读介质上存储有指令,用于执行本发明的实施例公开的软件的升级方法。
现在参考图11,所示为根据本申请的一个实施例的***1100的框图。图11示意性地示出了根据多个实施例的示例***1100。在一个实施例中,***1100可以包括一个或多个处理器1104,与处理器1104中的至少一个连接的***控制逻辑1108,与***控制逻辑1108连接的***内存1112,与***控制逻辑1108连接的非易失性存储器(NVM)1116,以及与***控制逻辑1108连接的网络接口1120。
在一些实施例中,处理器1104可以包括一个或多个单核或多核处理器。在一些实施例中,处理器1104可以包括通用处理器和专用处理器(例如,图形处理器,应用处理器,基带处理器等)的任意组合。处理器1104可以被配置为执行各种符合的实施例,例如,如图1-10所示的多个实施例中的一个或多个。
在一些实施例中,***控制逻辑1108可以包括任意合适的接口控制器,以向处理器1104中的至少一个和/或与***控制逻辑1108通信的任意合适的设备或组件提供任意合适的接口。
在一些实施例中,***控制逻辑1108可以包括一个或多个存储器控制器,以提供连接到***内存1112的接口。***内存1112可以用于加载以及存储数据和/或指令。在一些实施例中***1100的内存1112可以包括任意合适的易失性存储器,例如合适的动态随机存取存储器(DRAM)。
NVM/存储器1116可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,NVM/存储器1116可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如HDD(Hard Disk Drive,硬盘驱动器),CD(Compact Disc,光盘)驱动器,DVD(Digital Versatile Disc,数字通用光盘)驱动器中的至少一个。
NVM/存储器1116可以包括安装***1100的装置上的一部分存储资源,或者它可以由设备访问,但不一定是设备的一部分。例如,可以经由网络接口1120通过网络访问NVM/存储1116。
特别地,***内存1111和NVM/存储器1116可以分别包括:指令1124的暂时副本和永久副本。指令1124可以包括:由处理器1104中的至少一个执行时导致***1100实施如图1-10所示的功能的指令。在一些实施例中,指令1124、硬件、固件和/或其软件组件可另外地/替代地置于***控制逻辑1108,网络接口1120和/或处理器1104中。
网络接口1120可以包括收发器,用于为***1100提供无线电接口,进而通过一个或多个网络与任意其他合适的设备(如前端模块,天线等)进行通信。在一些实施例中,网络接口1120可以集成于***1100的其他组件。例如,网络接口1120可以集成于处理器1104的,***内存1112,NVM/存储器1116,和具有指令的固件设备(未示出)中的至少一种,当处理器1104中的至少一个执行所述指令时,***1100实现如图1-10所示的功能。
网络接口1120可以进一步包括任意合适的硬件和/或固件,以提供多输入多输出无线电接口。例如,网络接口1120可以是网络适配器,无线网络适配器,电话调制解调器和/或无线调制解调器。
在一个实施例中,处理器1104中的至少一个可以与用于***控制逻辑1108的一个或多个控制器的逻辑封装在一起,以形成***封装(SiP)。在一个实施例中,处理器1104中的至少一个可以与用于***控制逻辑1108的一个或多个控制器的逻辑集成在同一管芯上,以形成片上***(SoC)。
***1100可以进一步包括:输入/输出(I/O)设备1132。I/O设备1132可以包括用户界面,使得用户能够与***1100进行交互;***组件接口的设计使得***组件也能够与***1100交互。在一些实施例中,***1100还包括传感器,用于确定与***1100相关的环境条件和位置信息的至少一种。
根据本申请的实施例,图12示出了一种SoC(System on Chip,片上***)1200的框图。在图12中,相似的部件具有同样的附图标记。另外,虚线框是更先进的SoC的可选特征。在图12中,SoC 1200包括:互连单元1250,其被耦合至应用处理器1210;***代理单元1270;总线控制器单元1280;集成存储器控制器单元1240;一组或一个或多个协处理器1220,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(SRAM)单元1230;直接存储器存取(DMA)单元1260。在一个实施例中,协处理器1220包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、或嵌入式处理器等等。
本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程***上执行的计算机程序或程序代码,该可编程***包括至少一个处理器、存储***(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理***包括具有诸如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何***。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理***通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而且,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、资源项或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、资源项或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、资源项或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。
Claims (24)
1.一种软件升级方法,其特征在于,包括:
服务器确定将终端上安装的所述软件的第一版本升级到所述软件的第二版本的引导版本所需的第一升级文件;
服务器向所述终端发送所述第一升级文件;
服务器确定将终端上安装的所述软件的所述第二版本的引导版本升级到所述软件的第二版本所需的第二升级文件;
服务器向所述终端发送所述第二升级文件;
其中,所述第一升级文件和第二升级文件的大小均小于所述终端中存储设备的用于升级的存储区域的大小。
2.根据权利要求1所述的方法,其特征在于,还包括:
服务器在检测到所述终端当前安装了所述软件的第二版本的引导版本的情况下,确定将终端上安装的所述软件的所述第二版本的引导版本升级到所述软件的第二版本所需的第二升级文件。
3.根据权利要求1所述的方法,其特征在于,还包括:
服务器从终端接收升级请求,其中,所述升级请求是所述终端在所述软件从所述第一版本升级到所述第二版本的引导版本后发送的,用于请求将所述软件的所述第二版本的引导版本升级到所述软件的所述第二版本;并且,
服务器响应于接收到的所述升级请求,确定将终端上安装的所述软件的所述第二版本的引导版本升级到所述软件的第二版本所需的第二升级文件。
4.根据权利要求1所述的方法,其特征在于,还包括:
服务器在检测到所述终端上安装的所述软件的第一版本低于所述服务器上的所述软件的第二版本的情况下,向所述终端发送升级提示信息,所述提示信息用于提示所述终端:当前安装的所述软件存在高于第一版本的第二版本。
5.根据权利要求4所述的方法,其特征在于,还包括:
服务器从所述终端接收升级指令,其中,所述升级指令是所述终端响应于所述升级提示信息发送的;
服务器响应于所述升级指令确定将终端上安装的所述软件的第一版本升级到所述软件的第二版本的引导版本所需的第一升级文件。
6.根据权利要求1所述的方法,其特征在于,还包括:
服务器获取所述软件的第二版本;
服务器在确定所述软件的第二版本与第一版本之间的差分文件的大小大于所述终端中存储设备的用于升级的存储区域的大小的情况下,生成所述软件的第二版本的引导版本,其中,所述引导版本包括必要文件,所述必要文件能够使得安装所述软件的第二版本的引导版本的终端能够正常启动;
服务器基于生成的所述引导版本,生成所述第一升级文件和第二升级文件。
7.根据权利要求6所述的方法,其特征在于,所述服务器基于生成的所述引导版本,生成所述第一升级文件和第二升级文件包括:
服务器比较所述软件的所述引导版本和所述第二版本所包含的版本文件;
服务器将所述引导版本和第二版本中,文件名不同、或者文件名相同且内容不同的版本文件存储为所述第二升级文件。
8.根据权利要求6或7所述的方法,其特征在于,所述服务器基于生成的所述引导版本,生成所述第一升级文件和第二升级文件包括:
服务器比较所述软件的所述引导版本和所述第一版本所包含的版本文件;
服务器将所述引导版本和第一版本中,文件名不同、或者文件名相同且内容不同的版本文件存储为所述第一升级文件。
9.根据权利要求6所述的方法,其特征在于,所述服务器基于生成的所述引导版本,生成所述第一升级文件和第二升级文件包括:
在服务器生成所述第一升级文件和第二升级文件的同时,生成所述第一升级文件和第二升级文件的特征值,所述特征值用于在使用所述第一升级文件和第二升级文件对所述终端的软件升级之前,校验所述第一升级文件和第二升级文件的完整性。
10.根据权利要求6所述的方法,其特征在于,所述服务器基于生成的所述引导版本,生成所述第一升级文件和第二升级文件还包括:
在服务器生成所述第一升级文件和第二升级文件后,对所述第一升级文件和第二升级文件进行加密和签名。
11.一种软件升级装置,其特征在于,包括:
下载模块,用于终端从服务器接收所述软件的第一升级文件,并将所述第一升级文件存储在所述终端中存储设备的用于升级的存储区域中;
升级模块,用于终端利用存储的所述第一升级文件,将所述终端上安装的所述软件从第一版本升级到所述软件的第二版本的引导版本;
所述下载模块,还用于终端从服务器接收所述软件的第二升级文件,并将所述第二升级文件存储在所述终端中存储设备的用于升级的存储区域中;
所述升级模块,还用于终端利用存储的所述第二升级文件,将所述终端上安装的所述软件从所述引导版本升级到所述第二版本。
12.根据权利要求11所述的装置,其特征在于,所述第二升级文件是所述服务器检测到所述终端当前安装了所述软件的第二版本的引导版本后发送的。
13.根据权利要求11所述的装置,其特征在于,所述终端将所述终端上安装的所述软件从第一版本升级到所述软件的第二版本的引导版本之后,还包括:
所述终端向所述服务器发送升级请求,所述升级请求用于请求将所述软件的所述第二版本的引导版本升级到所述软件的所述第二版本。
14.根据权利要求11所述的装置,其特征在于,还包括:
从服务器接收升级提示信息,其中,所述提示升级信息是所述服务器在检测到所述终端上安装的所述软件的第一版本低于所述服务器上的所述软件的第二版本的情况下发送的,用于提示所述终端:当前安装的所述软件存在高于第一版本的第二版本。
15.根据权利要求14所述的装置,其特征在于,还包括:
所述终端响应于所述升级提示信息向服务器发送升级指令,其中,所述升级指令用于指令服务器将终端上安装的所述软件从所述第一版本升级到所述第二版本。
16.根据权利要求11至15中任一项所述的装置,其特征在于,所述引导版本包括必要文件,所述必要文件能够使得安装所述软件的第二版本的引导版本的终端能够正常启动。
17.根据权利要求11所述的装置,其特征在于,所述升级模块在所述第一升级文件和第二升级文件下载至所述终端的存储区域后对所述第一升级文件和第二升级文件进行解密和签名校验。
18.一种软件的升级文件的制作方法,其特征在于,包括:
服务器获取所述软件的第一版本和第二版本;
服务器在确定所述第二版本与第一版本之间的差分文件的大小大于安装所述软件的终端中存储设备的用于升级的存储区域的大小的情况下,生成所述软件的第二版本的引导版本,其中,所述引导版本包括必要文件,所述必要文件能够使得安装所述软件的第二版本的引导版本的终端能够正常启动;
服务器基于生成的所述引导版本,生成所述第一升级文件和第二升级文件。
19.根据权利要求18所述的方法,其特征在于,所述服务器基于生成的所述引导版本,生成所述第一升级文件和第二升级文件包括:
服务器比较所述软件的所述引导版本和所述第二版本所包含的版本文件;
服务器将所述引导版本和第二版本中,文件名不同、或者文件名相同且内容不同的版本文件存储为所述第二升级文件。
20.根据权利要求18或19所述的方法,其特征在于,所述服务器基于生成的所述引导版本,生成所述第一升级文件和第二升级文件包括:
服务器比较所述软件的所述引导版本和所述第一版本所包含的版本文件;
服务器将所述引导版本和第一版本中,文件名不同、或者文件名相同且内容不同的版本文件存储为所述第一升级文件。
21.根据权利要求18所述的方法,其特征在于,在服务器生成所述第一升级文件和第二升级文件的同时,生成所述第一升级文件和第二升级文件的特征值,所述特征值用于在使用所述第一升级文件和第二升级文件对所述终端的软件升级之前,校验所述第一升级文件和第二升级文件的完整性。
22.根据权利要求18所述的方法,其特征在于,在服务器生成所述第一升级文件和第二升级文件后,对所述第一升级文件和第二升级文件进行加密和签名。
23.一种机器可读介质,其特征在于,所述机器可读介质上存储有指令,该指令在机器上执行时使机器执行权利要求1至10中任一项所述的软件升级方法。
24.一种***,包括:
存储器,用于存储由***的一个或多个处理器执行的指令,以及
处理器,是***的处理器之一,用于执行权利要求1至10中任一项所述的软件升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010254331.3A CN111459524A (zh) | 2020-04-02 | 2020-04-02 | 软件的升级方法、装置、*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010254331.3A CN111459524A (zh) | 2020-04-02 | 2020-04-02 | 软件的升级方法、装置、*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111459524A true CN111459524A (zh) | 2020-07-28 |
Family
ID=71684373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010254331.3A Pending CN111459524A (zh) | 2020-04-02 | 2020-04-02 | 软件的升级方法、装置、*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111459524A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966372A (zh) * | 2020-08-10 | 2020-11-20 | 上海中通吉网络技术有限公司 | 便携式打印机的固件升级方法、装置和设备 |
CN112994939A (zh) * | 2021-02-23 | 2021-06-18 | 合肥师范学院 | 一种物联网设备软件远程自动升级方法及*** |
CN113127041A (zh) * | 2021-05-07 | 2021-07-16 | 长江存储科技有限责任公司 | 存储器***及其固件更新方法、设备及可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140173588A1 (en) * | 2012-12-14 | 2014-06-19 | Samsung Electronics Co., Ltd. | Software update service method and apparatus for mobile terminal |
CN105068834A (zh) * | 2015-08-04 | 2015-11-18 | 广东欧珀移动通信有限公司 | ***升级方法及装置 |
US20160004530A1 (en) * | 2012-12-27 | 2016-01-07 | Guangzhou Ucweb Computer Technology Co., Ltd | Incremental upgrade method, apparatus for applying method and storage medium |
CN105843656A (zh) * | 2016-04-22 | 2016-08-10 | Tcl集团股份有限公司 | 磁盘空间不足的***升级方法、终端设备及服务器 |
CN108345466A (zh) * | 2018-05-09 | 2018-07-31 | 烽火通信科技股份有限公司 | 一种onu升级方法及*** |
CN109992291A (zh) * | 2018-01-02 | 2019-07-09 | 中兴通讯股份有限公司 | 一种终端软件升级方法、装置、***以及存储介质 |
-
2020
- 2020-04-02 CN CN202010254331.3A patent/CN111459524A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140173588A1 (en) * | 2012-12-14 | 2014-06-19 | Samsung Electronics Co., Ltd. | Software update service method and apparatus for mobile terminal |
US20160004530A1 (en) * | 2012-12-27 | 2016-01-07 | Guangzhou Ucweb Computer Technology Co., Ltd | Incremental upgrade method, apparatus for applying method and storage medium |
CN105068834A (zh) * | 2015-08-04 | 2015-11-18 | 广东欧珀移动通信有限公司 | ***升级方法及装置 |
CN105843656A (zh) * | 2016-04-22 | 2016-08-10 | Tcl集团股份有限公司 | 磁盘空间不足的***升级方法、终端设备及服务器 |
CN109992291A (zh) * | 2018-01-02 | 2019-07-09 | 中兴通讯股份有限公司 | 一种终端软件升级方法、装置、***以及存储介质 |
CN108345466A (zh) * | 2018-05-09 | 2018-07-31 | 烽火通信科技股份有限公司 | 一种onu升级方法及*** |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966372A (zh) * | 2020-08-10 | 2020-11-20 | 上海中通吉网络技术有限公司 | 便携式打印机的固件升级方法、装置和设备 |
CN112994939A (zh) * | 2021-02-23 | 2021-06-18 | 合肥师范学院 | 一种物联网设备软件远程自动升级方法及*** |
CN112994939B (zh) * | 2021-02-23 | 2022-02-18 | 合肥师范学院 | 一种物联网设备软件远程自动升级方法及*** |
CN113127041A (zh) * | 2021-05-07 | 2021-07-16 | 长江存储科技有限责任公司 | 存储器***及其固件更新方法、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11886866B2 (en) | Credential management for IoT devices | |
CN111512655B (zh) | 利用安全元件提供通信服务的方法及电子装置 | |
US7788475B2 (en) | Booting utilizing electronic mail | |
WO2017166446A1 (zh) | 漏洞修复方法和装置 | |
WO2019076037A1 (zh) | 升级固件的方法和装置 | |
CN111459524A (zh) | 软件的升级方法、装置、*** | |
CN108509215B (zh) | 一种***软件的更换方法、装置、终端设备及存储介质 | |
US20230259367A1 (en) | Scalable life-cycle maintenance of hardware | |
WO2018040746A1 (zh) | 一种驱动程序的安装方法及装置、电子设备 | |
CN109375937A (zh) | ***升级方法、装置、终端设备及存储介质 | |
US20130060890A1 (en) | Apparatus and method for providing application execution using a cloud system | |
US11886886B2 (en) | System and method for runtime synchronization and authentication of pre-boot device drivers for a rescue operating system | |
KR20150099269A (ko) | 펌웨어를 갱신하기 위한 전자 장치 및 방법 | |
CN110597542A (zh) | 软件自动ota升级方法及装置、电子设备 | |
US10365910B2 (en) | Systems and methods for uninstalling or upgrading software if package cache is removed or corrupted | |
CN110493644B (zh) | 电视应用升级方法、电视终端及服务器 | |
CN113094064A (zh) | 网关软件模块升级方法、装置、设备及存储介质 | |
WO2023198056A1 (zh) | 嵌入式设备固件更新方法以及嵌入式设备 | |
CN115098301B (zh) | 一种云原生场景下有状态应用的快照生成方法和*** | |
TW201523447A (zh) | 伺服器系統與韌體更新方法 | |
CN110688130A (zh) | 物理机部署方法、装置、可读存储介质及电子设备 | |
US20230289193A1 (en) | Systems and methods for deploying a distributed containers-as-a-service platform architecture for telecommunications applications | |
US20210336853A1 (en) | Control system, electronic device, and control method | |
CN113515299A (zh) | 软件开发工具包sdk热升级方法、装置、设备及存储介质 | |
CN114527994A (zh) | 固件的烧写方法、***、车辆控制*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200728 |