CN113821245A - 差分升级方法、装置及车锁 - Google Patents
差分升级方法、装置及车锁 Download PDFInfo
- Publication number
- CN113821245A CN113821245A CN202111064412.8A CN202111064412A CN113821245A CN 113821245 A CN113821245 A CN 113821245A CN 202111064412 A CN202111064412 A CN 202111064412A CN 113821245 A CN113821245 A CN 113821245A
- Authority
- CN
- China
- Prior art keywords
- data block
- data
- file
- differential
- upgrading
- 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 75
- 238000012545 processing Methods 0.000 claims abstract description 34
- 238000010586 diagram Methods 0.000 description 27
- 238000004891 communication Methods 0.000 description 26
- 238000004590 computer program Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 8
- 230000001133 acceleration Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 108091026890 Coding region Proteins 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 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
- G06F8/658—Incremental updates; Differential 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)
- Stored Programmes (AREA)
Abstract
本申请实施例提供了一种差分升级方法,应用于车锁,包括:接收目标差分升级文件,其中,所述目标差分升级文件包括由多个第一数据块构成的第一数据块集合,所述第一数据块的数据内容通过对第二数据块和第三数据块中的数据内容进行差分处理后获得,所述第二数据块为拆分旧固件文件得到的第二数据块集合中的数据块,所述第三数据块为拆分新固件文件得到的第三数据块集合中的数据块,所述第一数据块、所述第二数据块和所述第三数据块在各自所属的数据块集合中的位置相同;根据所述目标差分升级文件,对所述车锁中的旧固件文件进行升级。
Description
技术领域
本公开实施例涉及车辆技术领域,更具体地,涉及一种差分升级方法、装置及车锁。还涉及一种差分升级文件生成方法、装置及电子设备。
背景技术
通过共享车辆出行在日常生活中占据了越来越重要的地位。为了使得共享车辆可以更好的为用户提供服务,共享车辆的车锁固件一般需要不断进行迭代升级。
请参看图1,其为现有的一种车锁固件升级方法,如图1所示,该方法是基于远程下载(OTA,Over The Air)技术,将新固件文件,完整的下载到车锁中,以对车锁固件进行升级。然而,该种方式在固件尺寸较大的情况下,存在流量耗费较大、占用空间大以及升级耗时较长的问题。
为解决上述问题,目前一般会采用如图2所示的差分升级方法,即,通过将对比旧固件文件和新固件文件得到的差分别文件下载到车锁,以通过先在新固件备份区进行数据还原得到新固件文件,再覆盖代码区旧固件文件的方式,完成对车锁固件的升级。现有的差分升级方法虽然可以解决流量耗费较大的问题,但是其仍然需要先在车锁中进行备份还原得到新固件文件,因此,依然存在占用空间大以及耗时长的问题。
发明内容
本公开的一个目的是提供一种用于差分升级的新的技术方案。
根据本公开的第一方面,提供了差分升级方法的一个实施例,应用于车锁,包括:
接收目标差分升级文件,其中,所述目标差分升级文件包括由多个第一数据块构成的第一数据块集合,所述第一数据块的数据内容通过对第二数据块和第三数据块中的数据内容进行差分处理后获得,所述第二数据块为拆分旧固件文件得到的第二数据块集合中的数据块,所述第三数据块为拆分新固件文件得到的第三数据块集合中的数据块,所述第一数据块、所述第二数据块和所述第三数据块在各自所属的数据块集合中的位置相同;
根据所述目标差分升级文件,对所述车锁中的旧固件文件进行升级。
可选地,所述根据所述目标差分升级文件,对所述车锁中的旧固件文件进行升级,包括:
从所述第一数据块中,获得第一升级数据、第二升级数据和第一还原指令,其中,所述第一升级数据为第三数据块中不同于所述第二数据块的数据,所述第二升级数据为所述第三数据块相比所述第二数据块新增的数据,所述第一还原指令用于指示根据所述第一数据块对所述第二数据块进行还原,以得到所述第三数据块;
根据所述第一还原指令,将所述第一升级数据、所述第二升级数据还原至所述旧固件文件的所述第一数据块中,以将所述旧固件文件升级至所述新固件文件。
可选地,所述根据所述第一还原指令,将所述第一升级数据、所述第二升级数据还原至所述旧固件文件的所述第二数据块中,包括:
根据所述第一还原指令,获得所述第一升级数据在所述第二数据块中的第一起止地址信息,以及,获得所述第二升级数据在所述第二数据块中的第二起止地址信息;
根据所述第一起止地址信息,将所述第一升级数据还原至所述第二数据块,以及,根据所述第二起止地址信息,将所述第二升级数据添加至所述第二数据块。
可选地,所述方法根据以下规则拆分所述旧固件文件和所述新固件文件:
按照预设块尺寸,对所述旧固件文件进行切片处理,获得所述第二数据块集合;以及,
按照所述预设块尺寸,对所述新固件文件进行切片处理,获得所述第三数据块集合。
可选地,所述目标差分升级文件还包括差分文件头,所述差分文件头包括目标版本信息,所述目标版本信息用于指示所述差分升级文件针对的旧固件文件的版本;
在接收差分升级文件之后,所述方法还包括:
根据所述目标版本信息,对所述车锁中的旧固件文件进行校验。
可选地,所述根据所述目标版本信息,对所述车锁中的旧固件文件进行校验,包括:
获取所述车锁中的旧固件文件的旧版本信息;
在所述目标版本信息和所述旧版本信息不一致的情况下,停止对所述车锁中的旧固件文件的升级,并生成升级失败提示消息;以及,将所述升级失败提示消息发送至服务器。
根据本公开的第二方面,提供了差分升级文件生成方法的一个实施例,包括:
拆分旧固件文件得到第二数据块集合;以及,拆分新固件文件得到第三数据块集合;
对第二数据块和第三数据块中的数据内容进行差分处理,获得差分数据,其中,所示第二数据块为所述第二数据块集合中的数据块,所述第三数据块为所述第三数据块集合中的数据块,所述第二数据块和所述第三数据块在各自所属的数据块集合中的位置相同;
根据所述差分数据,生成目标差分升级文件。
根据本公开的第三方面,提供了差分升级装置的一个实施例,应用于车锁,包括:
接收模块,用于接收目标差分升级文件,其中,所述目标差分升级文件包括由多个第一数据块构成的第一数据块集合,所述第一数据块的数据内容通过对第二数据块和第三数据块中的数据内容进行差分处理后获得,所述第二数据块为拆分旧固件文件得到的第二数据块集合中的数据块,所述第三数据块为拆分新固件文件得到的第三数据块集合中的数据块,所述第一数据块、所述第二数据块和所述第三数据块在各自所属的数据块集合中的位置相同;
升级模块,用于根据所述目标差分升级文件,对所述车锁中的旧固件文件进行升级。
根据本公开的第四方面,提供了差分升级文件生成装置的一个实施例,包括:
拆分模块,用于拆分旧固件文件得到第二数据块集合;以及,拆分新固件文件得到第三数据块集合;
差分数据获得模块,用于对第二数据块和第三数据块中的数据内容进行差分处理,获得差分数据,其中,所示第二数据块为所述第二数据块集合中的数据块,所述第三数据块为所述第三数据块集合中的数据块,所述第二数据块和所述第三数据块在各自所属的数据块集合中的位置相同;
升级文件生成模块,用于根据所述差分数据,生成目标差分升级文件。
根据本公开的第五方面,提供了车锁的一个实施例,如本说明书的第二方面所述的差分升级装置,或者,
所述车锁包括:
存储器,用于存储可执行的指令;
处理器,用于根据所述指令的控制运行所述车锁执行如本说明书的第一方面所述的方法。
根据本公开的第六方面,提供了电子设备的一个实施例,如本说明书的第四方面所述的差分升级文件生成装置,或者,
所述电子设备包括:
存储器,用于存储可执行的指令;
处理器,用于根据所述指令的控制运行所述电子设备执行如本说明书的第二方面所述的方法。
本公开实施例的一个有益效果在于,根据本公开的实施例,车锁在接收到目标差分升级文件之后,由于目标差分升级文件中的第一数据块是分别将拆分旧固件文件得到的第二数据块与拆分新固件文件得到的第三数据块的数据内容进行差分处理后获得,因此,该方法使得在根据目标差分升级文件对车锁中的旧固件文件进行升级时,可以不必先单独在内存或闪存中开辟新固件备份区,以还原得到新固件文件,再覆盖编码区中的旧固件文件,而是可以直接根据目标差分升级文件,对编码区中的旧固件文件进行升级,以在减少流量消耗的同时,减少对内存或闪存资源的消耗,提升固件升级速度。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本说明书的实施例,并且连同其说明一起用于解释本说明书的原理。
图1是现有的一种车锁固件升级方法的示意图。
图2是现有的另一种车锁固件升级方法的示意图。
图3是能够实施本公开实施例的共享车辆系统的示意图。
图4是本公开实施例提供的一种差分升级方法的流程示意图。
图5是本公开实施例提供的一种差分升级详细处理示意图。
图6是本公开实施例提供的差分升级文件生成过程示意图。
图7是本公开实施例提供的差分升级文件数据格式示意图。
图8是本公开实施例提供的差分升级文件还原处理示意图。
图9是本公开实施例提供的差分升级文件生成方法的流程示意图。
图10是本公开实施例提供的一种差分升级装置的方框原理图。
图11是本公开实施例提供的一种差分升级文件生成装置的方框原理图。
图12是本公开实施例提供的一种车锁的硬件结构示意图。
图13是本公开实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置>
图1是能够实施本公开实施例的共享车辆系统的示意图。
如图1所示,该车辆系统100包括服务器1000、用户终端2000和车辆3000。
服务器1000与用户终端2000,以及服务器1000与车辆3000可以通过网络N通信连接。车辆3000与服务器1000,以及用户终端2000与服务器1000进行通信所基于的网络N可以是同一个,也可以是不同的。
服务器1000提供处理、数据库、通讯设施的业务点。服务器1000可以是整体式服务器,跨多计算机,计算机数据中心的分散式服务器,云服务器,或者部署在云端的服务器集群等。服务器可以是各种类型的,例如但不限于,网络服务器,新闻服务器,邮件服务器,消息服务器,广告服务器,文件服务器,应用服务器,交互服务器,数据库服务器,或代理服务器。在一些实施例中,每个服务器可以包括硬件,软件,或用于执行服务器所支持或实现的合适功能的内嵌逻辑组件或两个或多个此类组件的组合。例如,服务器例如刀片服务器、云端服务器等,或者可以是由多台服务器组成的服务器群组,可以包括上述类型的服务器中的一种或多种等等。
在一个实施例中,服务器1000可以如图1所示,可以包括处理器1100、存储器1200、接口装置1300、通信装置1400等。
处理器1100用于执行计算机程序,该计算机程序可以采用比如x86、Arm、RISC、MIPS、SSE等架构的指令集编写。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括各种总线接口,例如串行总线接口(包括USB接口)、并行总线接口等。通信装置1400例如能够进行有线或无线通信等。
本实施例中,服务器1000的存储器1200用于存储计算机程序,该计算机程序用于控制处理器1100进行操作,以实现对车辆的监控等,该操作例如包括:根据用户的终端设备2000发送的开锁请求,向车辆发送开锁指令,以使该车辆处于可以骑行的状态;根据用户的终端设备2000发送的关锁请求,向车辆3000发送关锁指令,以使该车辆3000处于不可骑行的状态;以及,根据车辆3000上报的故障信息,对车辆3000进行故障处理等。技术人员可以根据本发明所公开方案设计该计算机程序。该计算机程序如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
尽管在图1中示出了服务器1000中的多个装置,但是,本发明可以仅涉及其中的部分装置,例如,服务器1000只涉及处理器1100、存储器1200以及通信装置1400。
本实施例中,用户终端2000例如是手机、便携式电脑、平板电脑、掌上电脑、可穿戴设备等。
该用户终端2000安装有用车应用客户端,用户可以通过操作该用车应用客户端,实现使用车辆3000的目的。
如图1所示,用户终端2000可以包括处理器2100、存储器2200、接口装置2300、通信装置2400、显示装置2500、输入装置2600、扬声器2700、麦克风2800等等。
处理器2100用于执行计算机程序,该计算机程序可以采用比如x86、Arm、RISC、MIPS、SSE等架构的指令集编写。存储器2200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置2300例如包括USB接口、耳机接口等。通信装置2400例如能够进行有线或无线通信,通信装置2400可以包括至少一种短距离通信模块,例如是基于Hilink协议、WiFi(IEEE 802.11协议)、Mesh、蓝牙、ZigBee、Thread、Z-Wave、NFC、UWB、LiFi等短距离无线通信协议进行短距离无线通信的任意模块,通信装置2400也可以包括远程通信模块,例如是进行WLAN、GPRS、2G/3G/4G/5G远程通信的任意模块。显示装置2500例如是液晶显示屏、触摸显示屏等。输入装置2600例如可以包括触摸屏、键盘等。用户终端2000可以通过扬声器2700输出音频信号,及通过麦克风2800采集音频信号。
本实施例中,用户终端2000的存储器2200用于存储计算机程序,该计算机程序用于控制处理器2100进行操作以执行使用车辆的方法,例如包括:获取车辆3000的唯一标识,生成针对该车辆3000的开锁请求,并将该开锁请求发送至服务器1000;针对该车辆3000向服务器1000发送关锁请求;以及,根据服务器1000发送的费用结算通知进行账单解算等等。技术人员可以根据本发明所公开方案设计计算机程序。计算机程序如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
尽管在图1中示出了用户终端2000中的多个装置,但是,本发明可以仅涉及其中的部分装置,例如,用户终端2000只涉及处理器2100、存储器2200、通信装置2400和显示装置2500。
本实施例中,车辆3000可以是图1中所示的自行车,也可以是三轮车、电动自行车、摩托车以及四轮乘用车等各种形态,车辆3000包括车锁,该车锁可以用于实施任意一实施例提供的差分升级方法。
如图1所示,车辆3000的车锁可以包括处理器3100、存储器3200、接口装置3300、通信装置3400、加速度传感器3500、陀螺仪3600、定位模块3700、扬声器3800等等。
处理器3100可以是微处理器MCU等。存储器3200例如可以包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置3300例如包括USB接口、耳机接口等。通信装置3400例如能够进行有线或无线通信,通信装置3400例如能够进行有线或无线通信,通信装置2400可以包括至少一种短距离通信模块,例如是基于Hilink协议、WiFi(IEEE 802.11协议)、Mesh、蓝牙、ZigBee、Thread、Z-Wave、NFC、UWB、LiFi等短距离无线通信协议进行短距离无线通信的任意模块,通信装置2400也可以包括远程通信。加速度传感器3500可以用于测量车辆的加速度,陀螺仪3600可以用于测量车辆的角速度。定位装置3700例如可以包括基站定位模块、全球导航卫星系统GNSS(Global Navigation SatelliteSystem)定位模块等。全球导航卫星系统GNSS定位模块例如可以是GPS(GlobalPositioning System,全球定位)模块或者北斗模块等。
尽管在图1中示出了车锁中的多个装置,但是,本发明可以仅涉及其中的部分装置,例如,车锁中只涉及处理器3100、存储器3200、通信装置3400以及加速度传感器3500.
应当理解的是,尽管图1仅示出一个服务器1000、一个用户终端2000、及一辆车辆3000,但不意味着限制各自的数量,车辆系统100可以包含多个服务器1000、多个用户终端2000、多个车辆3000等。
<方法实施例一>
图3是本公开实施例提供的一种差分升级方法的流程示意图,该方法可以由车辆实施,更具体地,可以由车辆中的车锁实施,例如由图3车辆3000中的车锁实施,下面以图3所示车辆3000中的车锁为例,说明本实施例的差分升级方法。
如图4所示,本实施例的差分升级方法可以包括如下步骤S4100-0-S4200,以下予以详细说明。
步骤S4100,接收目标差分升级文件,其中,所述目标差分升级文件包括由多个第一数据块构成的第一数据块集合,所述第一数据块的数据内容通过对第二数据块和第三数据块中的数据内容进行差分处理后获得,所述第二数据块为拆分旧固件文件得到的第二数据块集合中的数据块,所述第三数据块为拆分新固件文件得到的第三数据块集合中的数据块,所述第一数据块、所述第二数据块和所述第三数据块在各自所属的数据块集合中的位置相同。
旧固件文件,是指车锁中正在使用的、待升级的固件文件;新固件文件,是指对应版本号高于旧固件文件对应的版本号的固件文件。
目前,现有的差分升级方法通常用于运行有Windows、Android、Linux等任意一操作系统的电子设备中。现有的差分升级方法一般是由服务器将新固件文件与旧固件文件直接进行差分处理,得到差分升级文件;电子设备在从服务器下载该差分升级文件之后,先如图2所示的,需要在内存中开辟用于存储该差分升级文件的OTA备份区;之后,电子设备基于编码区中的旧固件文件和OTA备份区中的差分升级文件进行差分逐一还原至用于存储新固件文件的新固件备份区中;在差分还原完成之后,再将新固件备份区中还原得到的新固件文件覆盖至编码区。
该方法在设计上并没有考虑内存、闪存不足的小资源嵌入式设备,例如,智能车锁、物联网终端等设备,这类设备由于资源有限,并不能将新、旧固件全部加载到内存中进行差分还原,因此,现有的差分升级方法由于占用空间大以及耗时长等问题,并不适用于该类小资源嵌入式设备。
为解决上述问题,本公开的实施例提供一种基于分片处理的差分升级方法,该方法可以基于差分升级文件生成方法获得的目标差分升级文件,方便、快速的完成对车锁固件的升级处理,以下首先对如何获得该目标差分升级文件进行详细说明。
在一个实施例中,目标差分升级文件可以通过以下步骤生成:拆分旧固件文件得到第二数据块集合;以及,拆分新固件文件得到第三数据块集合;对第二数据块和第三数据块中的数据内容进行差分处理,获得差分数据,其中,所示第二数据块为所述第二数据块集合中的数据块,所述第三数据块为所述第三数据块集合中的数据块,所述第二数据块和所述第三数据块在各自所属的数据块集合中的位置相同;根据所述差分数据,生成目标差分升级文件。
请参看图5,其是本公开实施例提供的一种差分升级详细处理示意图。如图5所示,可以先对旧固件文件以及新固件文件分别进行切片拆分处理,得到如图2所示的第二数据块集合和第三数据块集合;之后通过逐一对第二数据块集合和第三数据块集合中的各位置对应的第二数据块、第三数据块进行差分处理,即可得到包括多个差分数据块,即第一数据块的差分升级文件。
在本公开的实施例中,该方法根据以下规则拆分所述旧固件文件和所述新固件文件:按照预设块尺寸,对所述旧固件文件进行切片处理,获得所述第二数据块集合;以及,按照所述预设块尺寸,对所述新固件文件进行切片处理,获得所述第三数据块集合。
例如,设置预设块尺寸为4KB,根据该预设块尺寸分别对旧固件文件和新固件文件进行顺序切片。
在具体实施时,所述对第二数据块和第三数据块中的数据内容进行差分处理,获得差分数据,可以是:预先获取与旧固件文件包含的子字符串对应的字典数据;根据所述字典数据,对第二数据块和第三数据块中的数据内容进行对比,得到第一升级数据、第二升级数据和第一还原指令;根据所述第一升级数据、所述第二升级数据和所述第一还原指令,获得所述差分数据。
第一升级数据,即,diffstring,是第三数据块中不同于第二数据块的数据,。
第二升级数据,即,extra string,是第三数据块相比第二数据块新增的数据。
第一还原指令,可以用于指示根据所述第一数据块对所述第二数据块进行还原,以得到第三数据块。
请参看图6,其是本公开实施例提供的差分升级文件生成过程示意图。如图6所示,针对第三数据块“abedefghigklmn”,第二数据块“abcdefgh123”;经过差分对比可得两者之间的diff string为“00200000”,extra string为“igklmn”。
在具体实施时,经过逐一获取第二数据块集合和第三数据块集合中各对应数据块之间的差分数据,并对差分数据进行bz2压缩以及按照预设数据格式存储压缩后的各压缩文件,即可得到目标差分升级文件。
请参看图7,其是本公开实施例提供的差分升级文件数据格式示意图。如图7所述,在本公开的一个实施例中,所述目标差分升级文件还包括差分文件头,所述差分文件头包括目标版本信息,所述目标版本信息用于指示所述差分升级文件针对的旧固件文件的版本;在接收差分升级文件之后,该方法还可以包括:根据所述目标版本信息,对所述车锁中的旧固件文件进行校验。
在该实施例中,所述根据所述目标版本信息,对所述车锁中的旧固件文件进行校验,包括:获取所述车锁中的旧固件文件的旧版本信息;在所述目标版本信息和所述旧版本信息不一致的情况下,停止对所述车锁中的旧固件文件的升级,并生成升级失败提示消息;以及,将所述升级失败提示消息发送至服务器。
步骤S4200,根据所述目标差分升级文件,对所述车锁中的旧固件镜像进行升级。
请继续参看图5,在一个实施例中,所述根据所述目标差分升级文件,对所述车锁中的旧固件文件进行升级,包括:从所述第一数据块中,获得第一升级数据、第二升级数据和第一还原指令;根据所述第一还原指令,将所述第一升级数据、所述第二升级数据还原至所述旧固件文件的所述第一数据块中,以将所述旧固件文件升级至所述新固件文件。
其中,有关第一升级数据、第二升级数据和第一还原指令的说明请参看以上步骤中的说明,此处不再赘述。
请继续参看图5和图8。在车锁基于OTA服务下载得到目标差分升级文件之后,即可基于该目标差分升级文件,直接对车锁的编码区中的旧固件文件中的各数据块进行差分还原处理,以再不需要额外分配新固件备份区的情况下,快速、方便的完成对旧固件文件的升级处理。
在该实施例中,所述根据所述第一还原指令,将所述第一升级数据、所述第二升级数据还原至所述旧固件文件的所述第二数据块中,包括:根据所述第一还原指令,获得所述第一升级数据在所述第二数据块中的第一起止地址信息,以及,获得所述第二升级数据在所述第二数据块中的第二起止地址信息;根据所述第一起止地址信息,将所述第一升级数据还原至所述第二数据块,以及,根据所述第二起止地址信息,将所述第二升级数据添加至所述第二数据块。
综上可知,本公开的实施例提供的差分升级方法,通过基于分片对旧固件文件和新固件文件进行拆分,并基于拆分得到的各数据块之间的差分数据,整合得到目标差分升级文件,可以降低差分升级文件的尺寸,进而可以降低车锁的流量消耗以及提升升级速度;另外,由于该方法可以基于目标差分文件,直接对车锁编码区中的旧固件文件进行升级,因此,还可以减少对车锁这一类小资源嵌入式设备的资源消耗。
<方法实施例二>
与上述方法实施例一相对应,本公开的实施例还提供一种差分升级文件生成方法,图9是本公开实施例提供的一种差分升级文件生成方法的流程示意图,该方法可以由电子设备实施,例如,由图1中的服务器1000实施,下面以图1所示的服务器1000为例,说明本实施例的差分升级文件生成方法。
如图9所示,本实施例的方法可以包括如下步骤S9100-S9300,以下予以详细说明。
步骤S9100,拆分旧固件文件得到第二数据块集合;以及,拆分新固件文件得到第三数据块集合。
步骤S9200,对第二数据块和第三数据块中的数据内容进行差分处理,获得差分数据,其中,所示第二数据块为所述第二数据块集合中的数据块,所述第三数据块为所述第三数据块集合中的数据块,所述第二数据块和所述第三数据块在各自所属的数据块集合中的位置相同。
步骤S9300,根据所述差分数据,生成目标差分升级文件。
<装置实施例一>
与上述方法实施例一和方法实施例二相对应,本公开的实施例还提供一种差分升级装置,可以应用于车辆,具体地,可以应用于车辆的车锁中,图10是公开实施例提供的一种差分升级装置的方框原理图。如图10所示,该差分升级装置10000可以包括:接收模块10100和升级模块10200。
该接收模块10100,用于接收目标差分升级文件,其中,所述目标差分升级文件包括由多个第一数据块构成的第一数据块集合,所述第一数据块的数据内容通过对第二数据块和第三数据块中的数据内容进行差分处理后获得,所述第二数据块为拆分旧固件文件得到的第二数据块集合中的数据块,所述第三数据块为拆分新固件文件得到的第三数据块集合中的数据块,所述第一数据块、所述第二数据块和所述第三数据块在各自所属的数据块集合中的位置相同。
该升级模块10200,用于根据所述目标差分升级文件,对所述车锁中的旧固件文件进行升级。
在一个实施例中,该升级模块10200在根据所述目标差分升级文件,对所述车锁中的旧固件文件进行升级时,可以用于:从所述第一数据块中,获得第一升级数据、第二升级数据和第一还原指令,其中,所述第一升级数据为第三数据块中不同于所述第二数据块的数据,所述第二升级数据为所述第三数据块相比所述第二数据块新增的数据,所述第一还原指令用于指示根据所述第一数据块对所述第二数据块进行还原,以得到所述第三数据块;根据所述第一还原指令,将所述第一升级数据、所述第二升级数据还原至所述旧固件文件的所述第一数据块中,以将所述旧固件文件升级至所述新固件文件。
在一个实施例中,该升级模块10200在根据所述第一还原指令,将所述第一升级数据、所述第二升级数据还原至所述旧固件文件的所述第二数据块中时,可以用于:根据所述第一还原指令,获得所述第一升级数据在所述第二数据块中的第一起止地址信息,以及,获得所述第二升级数据在所述第二数据块中的第二起止地址信息;根据所述第一起止地址信息,将所述第一升级数据还原至所述第二数据块,以及,根据所述第二起止地址信息,将所述第二升级数据添加至所述第二数据块。
在一个实施例中,该装置10000还包括切片模块,用于:按照预设块尺寸,对所述旧固件文件进行切片处理,获得所述第二数据块集合;以及,按照所述预设块尺寸,对所述新固件文件进行切片处理,获得所述第三数据块集合。
<装置实施例二>
与上述方法实施例一和方法实施例二相对应,本公开的实施例还提供一种差分升级文件生成装置,可以应用于电子设备,图11是本公开实施例提供的一种差分升级文件生成装置的方框原理图。如图11所示,该差分升级文件生成装置11000可以包括:拆分模块11100、差分数据获得模块11200和升级文件生成模块11300。
该拆分模块11100,用于按照预设块尺寸,拆分旧固件文件得到第二数据块集合;以及,按照所述预设块尺寸,拆分新固件文件得到第三数据块集合;
该差分数据获得模块11200,用于对第二数据块和第三数据块中的数据内容进行差分处理,获得差分数据,其中,所示第二数据块为所述第二数据块集合中的数据块,所述第三数据块为所述第三数据块集合中的数据块,所述第二数据块和所述第三数据块在各自所属的数据块集合中的位置相同;
该升级文件生成模块11300,用于根据所述差分数据,生成目标差分升级文件。
<设备实施例一>
与上述实施例一对应,在本实施例中,还提供一种车锁,其可以包括本公开装置实施例一的差分升级装置10000,用于实施本发明任意实施例的差分升级方法。
如图12所示,该车锁100还可以包括处理器120和存储器110,该存储器110用于存储可执行的指令;该处理器120用于根据指令的控制运行车锁以执行根据本公开任意实施例的差分升级方法。
以上装置10000的各个模块可以由处理器120运行该指令以执行根据本发明任意实施例的方法来实现。
<设备实施例二>
与上述实施例二对应,在本实施例中,还提供一种电子设备,其可以包括本公开装置实施例二的差分升级文件生成装置11000,用于实施本发明任意实施例的差分升级文件生成方法。
如图13所示,该电子设备200还可以包括处理器220和存储器210,该存储器210用于存储可执行的指令;该处理器220用于根据指令的控制运行电子设备以执行根据本公开任意实施例的差分文件生成方法。
以上装置11000的各个模块可以由处理器220运行该指令以执行根据本发明任意实施例的方法来实现。
本说明书的一个实施例或者多个实施例可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本说明书的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本说明书实施例操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本说明书的各个方面。
这里参照根据本说明书实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本说明书的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本说明书的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人物来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本说明书的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人物来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人物能理解本文披露的各实施例。本申请的范围由所附权利要求来限定。
Claims (11)
1.一种差分升级方法,其特征在于,应用于车锁,包括:
接收目标差分升级文件,其中,所述目标差分升级文件包括由多个第一数据块构成的第一数据块集合,所述第一数据块的数据内容通过对第二数据块和第三数据块中的数据内容进行差分处理后获得,所述第二数据块为拆分旧固件文件得到的第二数据块集合中的数据块,所述第三数据块为拆分新固件文件得到的第三数据块集合中的数据块,所述第一数据块、所述第二数据块和所述第三数据块在各自所属的数据块集合中的位置相同;
根据所述目标差分升级文件,对所述车锁中的旧固件文件进行升级。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标差分升级文件,对所述车锁中的旧固件文件进行升级,包括:
从所述第一数据块中,获得第一升级数据、第二升级数据和第一还原指令,其中,所述第一升级数据为第三数据块中不同于所述第二数据块的数据,所述第二升级数据为所述第三数据块相比所述第二数据块新增的数据,所述第一还原指令用于指示根据所述第一数据块对所述第二数据块进行还原,以得到所述第三数据块;
根据所述第一还原指令,将所述第一升级数据、所述第二升级数据还原至所述旧固件文件的所述第一数据块中,以将所述旧固件文件升级至所述新固件文件。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一还原指令,将所述第一升级数据、所述第二升级数据还原至所述旧固件文件的所述第二数据块中,包括:
根据所述第一还原指令,获得所述第一升级数据在所述第二数据块中的第一起止地址信息,以及,获得所述第二升级数据在所述第二数据块中的第二起止地址信息;
根据所述第一起止地址信息,将所述第一升级数据还原至所述第二数据块,以及,根据所述第二起止地址信息,将所述第二升级数据添加至所述第二数据块。
4.根据权利要求1所述的方法,其特征在于,所述方法根据以下规则拆分所述旧固件文件和所述新固件文件:
按照预设块尺寸,对所述旧固件文件进行切片处理,获得所述第二数据块集合;以及,
按照所述预设块尺寸,对所述新固件文件进行切片处理,获得所述第三数据块集合。
5.根据权利要求4所述的方法,其特征在于,所述目标差分升级文件还包括差分文件头,所述差分文件头包括目标版本信息,所述目标版本信息用于指示所述差分升级文件针对的旧固件文件的版本;
在接收差分升级文件之后,所述方法还包括:
根据所述目标版本信息,对所述车锁中的旧固件文件进行校验。
6.根据权利要求5所述的方法,其特征在于,所述根据所述目标版本信息,对所述车锁中的旧固件文件进行校验,包括:
获取所述车锁中的旧固件文件的旧版本信息;
在所述目标版本信息和所述旧版本信息不一致的情况下,停止对所述车锁中的旧固件文件的升级,并生成升级失败提示消息;以及,将所述升级失败提示消息发送至服务器。
7.一种差分升级文件生成方法,其特征在于,包括:
拆分旧固件文件得到第二数据块集合;以及,拆分新固件文件得到第三数据块集合;
对第二数据块和第三数据块中的数据内容进行差分处理,获得差分数据,其中,所示第二数据块为所述第二数据块集合中的数据块,所述第三数据块为所述第三数据块集合中的数据块,所述第二数据块和所述第三数据块在各自所属的数据块集合中的位置相同;
根据所述差分数据,生成目标差分升级文件。
8.一种差分升级装置,其特征在于,应用于车锁,包括:
接收模块,用于接收目标差分升级文件,其中,所述目标差分升级文件包括由多个第一数据块构成的第一数据块集合,所述第一数据块的数据内容通过对第二数据块和第三数据块中的数据内容进行差分处理后获得,所述第二数据块为拆分旧固件文件得到的第二数据块集合中的数据块,所述第三数据块为拆分新固件文件得到的第三数据块集合中的数据块,所述第一数据块、所述第二数据块和所述第三数据块在各自所属的数据块集合中的位置相同;
升级模块,用于根据所述目标差分升级文件,对所述车锁中的旧固件文件进行升级。
9.一种差分升级文件生成装置,其特征在于,包括:
拆分模块,用于拆分旧固件文件得到第二数据块集合;以及,拆分新固件文件得到第三数据块集合;
差分数据获得模块,用于对第二数据块和第三数据块中的数据内容进行差分处理,获得差分数据,其中,所示第二数据块为所述第二数据块集合中的数据块,所述第三数据块为所述第三数据块集合中的数据块,所述第二数据块和所述第三数据块在各自所属的数据块集合中的位置相同;
升级文件生成模块,用于根据所述差分数据,生成目标差分升级文件。
10.一种车锁,其特征在于,包括权利要求7所述的差分升级装置,或者,
所述车锁包括:
存储器,用于存储可执行的指令;
处理器,用于根据所述指令的控制运行所述车锁执行如权利要求1-6任意一项所述的方法。
11.一种电子设备,其特征在于,包括权利要求9所述的差分升级文件生成装置,或者,
所述电子设备包括:
存储器,用于存储可执行的指令;
处理器,用于根据所述指令的控制运行所述电子设备执行如权利要求7所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111064412.8A CN113821245A (zh) | 2021-09-10 | 2021-09-10 | 差分升级方法、装置及车锁 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111064412.8A CN113821245A (zh) | 2021-09-10 | 2021-09-10 | 差分升级方法、装置及车锁 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113821245A true CN113821245A (zh) | 2021-12-21 |
Family
ID=78921934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111064412.8A Pending CN113821245A (zh) | 2021-09-10 | 2021-09-10 | 差分升级方法、装置及车锁 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113821245A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114510256A (zh) * | 2021-12-27 | 2022-05-17 | 杭州明特科技有限公司 | 固件升级方法、电能表、计算机设备和存储介质 |
WO2023221735A1 (zh) * | 2022-05-18 | 2023-11-23 | 乐鑫信息科技(上海)股份有限公司 | 嵌入式设备固件更新方法、嵌入式设备及开发端设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110874239A (zh) * | 2020-01-20 | 2020-03-10 | 翱捷科技(上海)有限公司 | 一种电子设备的空中固件差分升级方法及装置 |
CN111475195A (zh) * | 2020-03-24 | 2020-07-31 | 普联技术有限公司 | 一种固件升级方法、装置和系统 |
CN111857790A (zh) * | 2020-07-23 | 2020-10-30 | 北京自如信息科技有限公司 | 一种固件升级方法、装置及计算机设备 |
US20210124573A1 (en) * | 2018-10-25 | 2021-04-29 | Huawei Technologies Co., Ltd. | Firmware upgrade method and apparatus, and terminal |
CN112732319A (zh) * | 2021-01-22 | 2021-04-30 | 百度在线网络技术(北京)有限公司 | 文件升级方法、装置、设备和存储介质 |
-
2021
- 2021-09-10 CN CN202111064412.8A patent/CN113821245A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210124573A1 (en) * | 2018-10-25 | 2021-04-29 | Huawei Technologies Co., Ltd. | Firmware upgrade method and apparatus, and terminal |
CN110874239A (zh) * | 2020-01-20 | 2020-03-10 | 翱捷科技(上海)有限公司 | 一种电子设备的空中固件差分升级方法及装置 |
CN111475195A (zh) * | 2020-03-24 | 2020-07-31 | 普联技术有限公司 | 一种固件升级方法、装置和系统 |
CN111857790A (zh) * | 2020-07-23 | 2020-10-30 | 北京自如信息科技有限公司 | 一种固件升级方法、装置及计算机设备 |
CN112732319A (zh) * | 2021-01-22 | 2021-04-30 | 百度在线网络技术(北京)有限公司 | 文件升级方法、装置、设备和存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114510256A (zh) * | 2021-12-27 | 2022-05-17 | 杭州明特科技有限公司 | 固件升级方法、电能表、计算机设备和存储介质 |
WO2023221735A1 (zh) * | 2022-05-18 | 2023-11-23 | 乐鑫信息科技(上海)股份有限公司 | 嵌入式设备固件更新方法、嵌入式设备及开发端设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111581291A (zh) | 数据处理方法、装置、电子设备及可读介质 | |
CN113821245A (zh) | 差分升级方法、装置及车锁 | |
CN111368519B (zh) | 一种线上表格的编辑方法、装置、设备和存储介质 | |
CN112965761B (zh) | 一种数据处理方法、系统、电子设备及存储介质 | |
CN111309304B (zh) | 一种生成idl文件的方法、装置、介质和电子设备 | |
CN112596720A (zh) | 业务运行方法、装置、电子设备和计算机存储介质 | |
CN112115217A (zh) | 高精地图的数据处理方法、装置、电子设备及存储介质 | |
CN111459822A (zh) | 系统组件数据的提取方法、装置、设备及可读介质 | |
CN111198853B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN111177260A (zh) | 数据库远程复制方法、装置及电子设备 | |
CN114780124A (zh) | 差分升级方法、装置、介质及电子设备 | |
CN112230986A (zh) | 项目文件生成方法、装置、电子设备和计算机可读介质 | |
CN111753238A (zh) | 数据映射方法、装置和电子设备 | |
CN111897827B (zh) | 用于数据仓库的数据更新方法、系统及电子设备 | |
CN114968621B (zh) | 数据通信方法、装置、设备、存储介质和系统 | |
CN111475138B (zh) | 基于weex框架的路由方法、装置、电子设备及可读介质 | |
CN113076119B (zh) | 一种车机程序的更新方法、装置、介质和电子设备 | |
CN115842819B (zh) | 自动驾驶系统测试数据下载方法、装置、设备 | |
CN113821248B (zh) | 车机端软件的服务方法、车机端软件及其相关设备 | |
US20230244504A1 (en) | Method for generating a combined graphical control, device and storage medium | |
CN117132245B (zh) | 线上物品获取业务流程重组方法、装置、设备和可读介质 | |
CN114793227B (zh) | 车载软件下载方法、电子设备及计算机可读存储介质 | |
CN113760338B (zh) | 切换应用程序二进制接口abi的方法、装置及电子设备 | |
CN111078259B (zh) | 一种音频打包方法、装置、电子设备及存储介质 | |
CN116257501A (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 |