一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种应用程序的安装方法与流程

2023-02-04 17:21:05 来源:中国专利 TAG:


1.本发明涉及计算机应用程序技术领域,尤其涉及一种应用程序的安装方法。


背景技术:

2.随着汽车行业与电子技术的发展,越来越多的整车电控单元都被要求能实现程序的自升级。微处理器(mcu,也称单片机)将程序功能划分为应用程序(app)和启动引导程序(boot),app用于实现用户功能,boot用于实现app程序的更新。通常,app程序会发生升级更新,boot程序保持不变。为防止app程序升级异常导致用户功能丧失,在更新app程序之前,需要对app程序内容备份于闪存(flash)内,当出现异常时,可以通过自回滚的方式恢复升级之前的程序。对于一些小容量mcu而言,内置的flash空间不足以同时存储主app程序与备份app程序,因此需要外挂存储器用于存储备份app程序。
3.而外挂的存储器相比mcu内置的flash,数据异常的风险更高,虽然通过通信协议可以确保数据传输的正确性,但如果数据被人为篡改导致app程序的数据存在差异问题,则难以识别,此时若触发app程序自回滚完,回滚完成后,app程序将处于异常状态,导致无法预计的后果。因此确保自回滚的安全性尤为重要。


技术实现要素:

4.本发明的目的在于,解决上述问题,提供一种应用程序的安装方法,确保应用程序(app)自回滚的安全性,解决目前存在数据传输错误以及数据被人为篡改导致app程序的数据存在差异而难以识别导致无法安装app程序以及app程序自回滚时出现异常的技术问题。
5.为了实现上述目的,本发明提出一种应用程序的安装方法,其包括步骤:s1、设置校验值步骤,预先在应用程序中设置校验值,所述校验值用于在应用程序安装前进行校验;s2、获取目标校验值步骤,根据预安装的应用程序的正确完整版本内容,获取预安装版本的应用程序所对应的校验值作为目标校验值;s3、获取待安装应用程序实际内容步骤,获取提供至客户端设备的待安装应用程序全部内容,去除所述校验值以外的内容作为待安装应用程序实际内容;s4、计算待安装应用程序实际校验值步骤,根据获取的所述待安装应用程序实际内容计算该待安装应用程序的实际校验值;s5、对比目标校验值与待安装应用程序实际校验值步骤,将所述待安装应用程序的实际校验值与所述目标校验值对比并判断是否一致;若所述实际校验值与所述目标校验值相同,则在客户端设备安装所述待安装应用程序。
6.进一步地,在所述对比目标校验值与待安装应用程序实际校验值步骤s5中,若所述实际校验值与所述目标校验值不相同,则不在客户端设备安装所述待安装应用程序,并发出所述待安装应用程序错误的提示信息。
7.进一步地,在所述对比目标校验值与待安装应用程序实际校验值步骤s5中,在客户端设备执行安装所述待安装应用程序时具体包括步骤:s51、备份现有应用程序步骤,将所述客户端设备中现有的应用程序进行备份;以及s52、安装应用程序步骤,将提供至客户端设备的待安装应用程序进行安装。
8.进一步地,所述客户端设备中现有的应用程序备份于客户端设备的闪存、云服务器、外挂存储器中的至少一个内。
9.进一步地,在所述安装应用程序步骤s52之后还包括:s53、应用程序回滚步骤,当所述待安装应用程序安装出错时调取备份的应用程序进行回滚。
10.进一步地,所述应用程序回滚步骤s53具体包括步骤:s531、获取目标校验值步骤,根据预安装的应用程序的正确完整版本内容,获取预安装版本的应用程序所对应的校验值作为目标校验值;s532、获取备份应用程序实际内容步骤,获取备份的应用程序全部内容,去除所述校验值以外的内容作为备份应用程序实际内容;s533、计算备份应用程序实际校验值步骤,根据获取的所述备份应用程序实际内容计算该备份应用程序的实际校验值;s534、对比目标校验值与备份应用程序实际校验值步骤,将所述备份应用程序的实际校验值与所述目标校验值对比并判断是否一致;若所述实际校验值与所述目标校验值相同,则在客户端设备安装所述备份应用程序。
11.进一步地,在所述对比目标校验值与备份应用程序实际校验值步骤中,若所述实际校验值与所述目标校验值不相同,则不在客户端设备安装所述备份应用程序,并发出所述备份应用程序错误的提示信息。
12.进一步地,在所述对比目标校验值与备份应用程序实际校验值步骤中,若所述实际校验值与所述目标校验值不相同,则更换一个对应备份的应用程序,重新执行所述应用程序回滚步骤。
13.进一步地,所述设置校验值步骤s1包括:s11、预留用于存储目标校验值的空间步骤,在应用程序编译过程中预留用于存储目标校验值的空间;s12、生成目标校验值步骤,解析应用程序编译输出的文件内容,获取除了预留入的存储目标校验值空间以外的全部内容作为应用程序实际内容;根据所述应用程序实际内容使用校验算法生成目标校验值;s13、写入目标校验值步骤,将生成的目标校验值写入到预留的存储目标校验值的空间内。
14.进一步地,所述目标校验值、所述待安装应用程序的实际校验值以及所述备份应用程序的实际校验值均通过循环冗余校验(cycl ic redundancy check,crc)方式计算获得。
15.本发明的有益效果在于,提供一种应用程序的安装方法,通过校验预安装的app程序及备份app程序的正确性,确保app程序安装及自回滚安装的安全性,通过比对app程序自带的校验值与读取app程序内容计算出的实际校验值,确保app程序内容的正确性,能有效识别app程序的数据异常,避免安装数据错误的app程序导致的异常。
附图说明
16.下面结合附图,通过对本技术的具体实施方式详细描述,呈现本技术的技术方案及其它有益效果。
17.图1为本技术的应用程序的安装方法的流程图。
18.图2为本技术的设置校验值步骤的流程图。
19.图3为本技术的在客户端设备执行安装所述待安装应用程序时的流程图。
20.图4为本技术的应用程序回滚步骤的流程图。
21.图5为本技术的示例预先在程序中设计校验值的流程图。
22.图6为本技术的示例最终app程序内容地址分配。
23.图7为本技术的示例计算校验值算法流程图。
具体实施方式
24.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
25.下文的公开提供了许多不同的实施方式或例子用来实现本技术的不同结构。为了简化本技术的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本技术。
26.如图1所示,本发明提出一种应用程序的安装方法,其特征在于,包括步骤s1-s5。
27.s1、设置校验值步骤,预先在应用程序中设置校验值,所述校验值用于在应用程序安装前进行校验。如图2所示,所述设置校验值步骤s1包括:s11、预留用于存储目标校验值的空间步骤,在应用程序编译过程中预留用于存储目标校验值的空间;s12、生成目标校验值步骤,解析应用程序编译输出的文件内容,获取除了预留入的存储目标校验值空间以外的全部内容作为应用程序实际内容;根据所述应用程序实际内容使用校验算法生成目标校验值;s13、写入目标校验值步骤,将生成的目标校验值写入到预留的存储目标校验值的空间内。
28.s2、获取目标校验值步骤,根据预安装的应用程序的正确完整版本内容,获取预安装版本的应用程序所对应的校验值作为目标校验值。
29.s3、获取待安装应用程序实际内容步骤,获取提供至客户端设备的待安装应用程序全部内容,去除所述校验值以外的内容作为待安装应用程序实际内容。
30.s4、计算待安装应用程序实际校验值步骤,根据获取的所述待安装应用程序实际内容计算该待安装应用程序的实际校验值。
31.s5、对比目标校验值与待安装应用程序实际校验值步骤,将所述待安装应用程序的实际校验值与所述目标校验值对比并判断是否一致;若所述实际校验值与所述目标校验值相同,则在客户端设备安装所述待安装应用程序;若所述实际校验值与所述目标校验值不相同,则不在客户端设备安装所述待安装应用程序,并发出所述待安装应用程序错误的提示信息。
32.如图3所示,在所述对比目标校验值与待安装应用程序实际校验值步骤s5中,在客户端设备执行安装所述待安装应用程序时具体包括步骤s51-s53。s51、备份现有应用程序步骤,将所述客户端设备中现有的应用程序进行备份;所述客户端设备中现有的应用程序备份于客户端设备的闪存、云服务器、外挂存储器中的至少一个内。s52、安装应用程序步骤,将提供至客户端设备的待安装应用程序进行安装。s53、应用程序回滚步骤,当所述待安装应用程序安装出错时调取备份的应用程序进行回滚。
33.如图4所示,所述应用程序回滚步骤s53具体包括步骤:s531、获取目标校验值步骤,根据预安装的应用程序的正确完整版本内容,获取预安装版本的应用程序所对应的校验值作为目标校验值;s532、获取备份应用程序实际内容步骤,获取备份的应用程序全部内
容,去除所述校验值以外的内容作为备份应用程序实际内容;s533、计算备份应用程序实际校验值步骤,根据获取的所述备份应用程序实际内容计算该备份应用程序的实际校验值;s534、对比目标校验值与备份应用程序实际校验值步骤,将所述备份应用程序的实际校验值与所述目标校验值对比并判断是否一致;若所述实际校验值与所述目标校验值相同,则在客户端设备安装所述备份应用程序;若所述实际校验值与所述目标校验值不相同,则不在客户端设备安装所述备份应用程序,并发出所述备份应用程序错误的提示信息;或者若所述实际校验值与所述目标校验值不相同,则更换一个对应备份的应用程序,重新执行所述应用程序回滚步骤。
34.其中,所述目标校验值、所述待安装应用程序的实际校验值以及所述备份应用程序的实际校验值均通过循环冗余校验(cycl ic redundancy check,crc)方式计算获得。
35.本发明通过校验预安装的app程序及备份app程序的正确性,确保app程序安装及自回滚安装的安全性,通过比对app程序自带的校验值与读取app程序内容计算出的实际校验值,确保app程序内容的正确性,能有效识别app程序的数据异常,避免安装数据错误的app程序导致的异常。
36.为方便说明,此处定义app程序在mcu的flash中分配地址为0x8000到0xd7ff,定义目标校验值存放在地址0x8000到0x8003中,定义生成的flash内容文件为hex格式。
37.所述循环冗余校验方式具体使用crc32的计算方法,确保了app实际内容与校验值的唯一对应性,将校验值与app实际内容合并成为app备份内容,以便验证备份数据的正确性。
38.在执行所述设置校验值步骤s1时,预先在app程序中设置校验值的操作如图5、图6所示,在开发app阶段,预留0x8000到0x8003的地址空间,app编译得到app.hex;使用上位机解析hex,读取地址0x8004到0xd7ff的内容,共22524字节内容。其中地址0x8004到0xd7ff的内存储app程序实际内容,按图5所示算法对地址0x8004到0xd7ff的内容计算,得到目标校验值,记录为crc_tar,将crc_tar按字节从高到低组合成一个32位的数值,记录到地址0x8000到0x8003空间。在进行app程序备份时,将整个app空间(0x8000到0xd7ff),即包括目标校验值与实际的app内容,一起写入到备份存储区中。在安装app程序之前,如图7所示,读取预安装app程序中地址0x80004到0xd7ff内容,共22524字节;将地址0x80004到0xd7ff内容计算获得实际校验值,记录为crc_rel。对比得到的crc_tar(目标校验值)与crc_rel(实际校验值),如果一致则返回正确,否则返回错误。当返回结果为正确,则允许待安装app程序的安装或者备份app程序的自回滚,否则认为备份的app程序异常,禁止待安装app程序的安装或备份app程序的自回滚,继续停留在boot程序中,允许响应新的iap请求,能有效避免由于自回滚数据错误导致mcu处于不可知状态的风险。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献