一种多机型多硬件软件版本的下载更新方法与流程

文档序号:32610609发布日期:2022-12-20 19:45阅读:36来源:国知局
一种多机型多硬件软件版本的下载更新方法与流程

1.本发明属于软件下载更新技术领域,具体涉及一种多机型多硬件软件版本的下载更新方法。


背景技术:

2.对于pos机等各种产品,其具有多种产品型号,并且,同一产品型号的产品,也通常具有不同的软硬件平台,比如,具有多种可选的硬件配置,包括:是否具有蓝牙,通讯模块类型为5g或wifi等。比如,同一款产品提供给不同客户时,会产生不同的软件。另外,由于软件的不断更新,因此,会具有多种版本。
3.由此可见,即使对于同一产品型号的产品,会产生很多版本的软件。现有技术中,对于分别安装于不同终端设备的软件,采用人工方式对软件进行升级,不仅任务繁重,而且容易出错。


技术实现要素:

4.针对现有技术存在的缺陷,本发明提供一种多机型多硬件软件版本的下载更新方法,可有效解决上述问题。
5.本发明采用的技术方案如下:
6.本发明提供一种多机型多硬件软件版本的下载更新方法,包括以下步骤:
7.步骤1,确定软件文件的命名规则:
8.软件文件的名称包括5个部分,分别为:硬件名a、客户标识b、软件项目名c、软件文件版本号d和后缀名e,由此形成软件文件的名称为:硬件名a_客户标识b_软件项目名c_软件文件版本号d_后缀名e;
9.其中:
10.硬件名a包括3个部分,分别为:机型编码a1、硬件配置编码a2和硬件生产厂家编码a3,由此形成硬件名a为:机型编码a
1-硬件配置编码a
2-硬件生产厂家编码a3;
11.软件项目名c包括5个部分,分别为:项目类别编码c1、客户类别代码c2、客户一级级别编码c3、客户二级级别编码c4和项目名称编码c5,由此形成软件项目名c为:项目类别编码c1.客户类别代码c2.客户一级级别编码c3.客户二级级别编码c4.项目名称编码c5;
12.步骤2,确定存储软件文件的目录结构:
13.存储软件文件的目录结构包括:根目录,一级子目录,二级子目录和三级子目录;
14.根目录下具有多个一级子目录,每个一级子目录的目录名为一种机型编码a1;
15.每种机型编码a1下具有多个二级子目录,每个二级子目录的目录名为硬件名a,代表属于同一种机型下的各个硬件名;
16.每种硬件名a下具有多个三级子目录,每个三级子目录的目录名为软件项目名c,代表属于同一种机型的同一种硬件配置的各个软件项目名;
17.每种软件项目名c下存储软件文件的名称,代表属于同一种机型的同一种硬件配
置的同一种软件项目的不同版本号的软件文件的名称;通过该软件文件的名称,定位到具体的软件文件;
18.步骤3,确定打包协议:
19.步骤3.1,将多个软件文件打包后得到的统一包的结构包括:标识头、索引区域、参数区域和文件区域;
20.其中:
21.标识头包括:统一包版本号、散列值mac、统一包总长度、索引区域偏移、索引区域长度、参数区域偏移、参数区域长度、文件区域偏移和文件区域长度;
22.统一包版本号:代表统一包版本,固定长度;
23.散列值mac:对统一包计算之后得到的散列值;
24.统一包总长度:统一包的字节总长度;
25.索引区域偏移:索引区域在统一包中的开始位置;
26.索引区域长度:索引区域在统一包中的长度;
27.参数区域偏移:参数区域在统一包中的开始位置;
28.参数区域长度:参数区域在统一包中的长度;
29.文件区域偏移:文件区域在统一包中的开始位置;
30.文件区域长度:文件区域在统一包中的长度;
31.所述索引区域,存储多个机型索引,每种机型索引绑定偏移值,该偏移值是指该机型对应的所有软件文件打包形成机型软件包后,该机型软件包在参数区域内部的相对偏移;
32.所述参数区域,用于存储每种机型对应的机型软件包的存储参数,用于指示每种机型对应的机型软件包在文件区域的存储位置,以及该机型软件包包括的各个软件文件,在机型软件包内部的位置;
33.所述文件区域,用于存储各个机型软件包;其中,每个机型软件包包括对应的多个软件文件;
34.步骤4,各个软件文件按步骤1的命名规则命名后,按步骤2确定的目录结构存储,然后,按步骤3确定的打包协议打包,得到统一包;
35.步骤5,当某个产品需要安装软件文件时,从所述统一包中自动选择并下载适配的软件文件;
36.当某个产品需要对已安装的软件文件进行升级操作时,从所述统一包中自动选择与产品适配的最新版本的软件文件,并下载更新。
37.优选的,所述参数区域存储每种机型对应的以下存储参数:
38.机型软件包在文件区域内的偏移;
39.机型软件包在文件区域内的占用长度;
40.机型软件包的哈希值,通过对机型软件包包括的各个软件文件进行哈希计算得到;
41.机型软件包内每个软件文件的名称;
42.机型软件包内每个软件文件在文件区域内的偏移;
43.机型软件包内每个软件文件在文件区域内的占用长度。
44.本发明提供的一种多机型多硬件软件版本的下载更新方法具有以下优点:
45.本发明提供的一种多机型多硬件软件版本的下载更新方法,将软件文件按统一的命名规则命名,然后,按规定的目录结构存储,采用规定的打包协议进行打包后,由此得到统一包。因此,在下载或升级产品的软件文件时,可以快速高效准确的从统一包中得到与产品匹配的软件文件,提高软件文件下载和更新的效率。
附图说明
46.图1为本发明提供的一种多机型多硬件软件版本的下载更新方法的流程示意图。
具体实施方式
47.为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
48.本发明提供一种多机型多硬件软件版本的下载更新方法,如图1所示,包括以下步骤:
49.步骤1,确定软件文件的命名规则:
50.软件文件的名称包括5个部分,分别为:硬件名a、客户标识b、软件项目名c、软件文件版本号d和后缀名e,由此形成软件文件的名称为:硬件名a_客户标识b_软件项目名c_软件文件版本号d_后缀名e。
51.(一)硬件名a
52.硬件名a包括3个部分,分别为:机型编码a1、硬件配置编码a2和硬件生产厂家编码a3,由此形成硬件名a为:机型编码a
1-硬件配置编码a
2-硬件生产厂家编码a3;
53.其中:
54.机型编码a1:为每种上市的机器赋予机型编码,一般为3到4个英文字母和数字的组合。
55.硬件配置编码a2:由于同一机型的硬件配置可能不同,例如,支持的通信方式类型,包括4g,5g,wifi等。是否支持蓝牙等。因此,针对不同的硬件配置进行编码,并作为硬件名a的一部分。
56.硬件生产厂家编码a3:同一个机型,可能同时选择几个生产厂家的硬件,从而保证供应,也可以降低成本。因此,针对不同的硬件生产厂家进行编码,并作为硬件名a的一部分。
57.(二)客户标识b
58.客户标识b:客户标识是为每个客户赋予的一个编码,主要为了防窃机。
59.(三)软件项目名c
60.软件项目名c包括5个部分,分别为:项目类别编码c1、客户类别代码c2、客户一级级别编码c3、客户二级级别编码c4和项目名称编码c5,由此形成软件项目名c为:项目类别编码c1.客户类别代码c2.客户一级级别编码c3.客户二级级别编码c4.项目名称编码c5;
61.其中:
62.项目类别编码c1:项目类别主要包括以下两种:app:客户项目类别;dev:设备相关
的共享的库或者系统文件。因此,针对不同的项目类别进行编码。
63.客户类别代码c2:由于公司的客户主要是银行,所以客户类别代码一般为银行的英文缩写;对于非银行客户,一般以其中文名称的拼音的首字母作为客户类别代码。
64.客户一级级别编码c3和客户二级级别编码c4:表示客户级别,例如,总部或分公司项目。对于银行,如果是总行的项目,客户一级级别编码c3用zh表示,客户二级级别编码c4用
“‑”
代替;如果是某个分行,客户一级级别编码c3是对应的省分行的代码,客户二级级别编码c4是对应的市分行代码,如果是省级分行的项目,则客户二级级别编码c4用
“‑”
代替。
65.具体每个相关省和分行的编码见下表:
[0066][0067]
[0068]
(四)软件文件版本号d
[0069]
软件文件版本号d格式为va.b.c。其中,a,b,c为三个数字。当软件有变动时会生成一个新的版本。一般来说,相邻2个版本或几个版本之间的文件内容差异比较小,所以为减小网络传输时间,后一个版本会和其前一个版本进行差分,生成只包含两个文件差异的差分文件。差分文件的文件名是在原来的文件名之后添加一个版本号,其版本号的格式变为v1-v2,其中v1为新版本,v2为老的版本。
[0070]
步骤2,确定存储软件文件的目录结构:
[0071]
存储软件文件的目录结构包括:根目录,一级子目录,二级子目录和三级子目录;
[0072]
根目录:具体名称不做规定,可以为“pos软件包”等名称;
[0073]
根目录下具有多个一级子目录,每个一级子目录的目录名为一种机型编码a1;
[0074]
每种机型编码a1下具有多个二级子目录,每个二级子目录的目录名为硬件名a,代表属于同一种机型下的各个硬件名;
[0075]
每种硬件名a下具有多个三级子目录,每个三级子目录的目录名为软件项目名c,代表属于同一种机型的同一种硬件配置的各个软件项目名;
[0076]
每种软件项目名c下存储软件文件的名称,代表属于同一种机型的同一种硬件配置的同一种软件项目的不同版本号的软件文件的名称;通过该软件文件的名称,定位到具体的软件文件;
[0077]
步骤3,确定打包协议:
[0078]
步骤3.1,将多个软件文件打包后得到的统一包的结构包括:标识头、索引区域、参数区域和文件区域;
[0079]
统一包总体结构如下表:
[0080]
标识头索引区域参数区域文件区域48字节不定长不定长不定长
[0081]
(一)标识头
[0082]
标识头包括:统一包版本号、散列值mac、统一包总长度、索引区域偏移、索引区域长度、参数区域偏移、参数区域长度、文件区域偏移和文件区域长度;
[0083]
统一包版本号:代表统一包版本,固定长度;
[0084]
散列值mac:对统一包计算之后得到的散列值;
[0085]
统一包总长度:统一包的字节总长度;
[0086]
索引区域偏移:索引区域在统一包中的开始位置;
[0087]
索引区域长度:索引区域在统一包中的长度;
[0088]
参数区域偏移:参数区域在统一包中的开始位置;
[0089]
参数区域长度:参数区域在统一包中的长度;
[0090]
文件区域偏移:文件区域在统一包中的开始位置;
[0091]
文件区域长度:文件区域在统一包中的长度;
[0092]
例如,标识头的结构如下表:
[0093][0094]
其中:
[0095]
统一包版本号:固定内容,为字符串“van_packv1.0”,共12个字节。不同版本号用v后面的数字区分。
[0096]
mac:对统一包计算之后得到的散列值。计算方法是:计算前将mac部分设置为全0x00,然后用md5对统一包计算散列码,得到8个字节的散列码,然后将这8个字节写入mac部分。
[0097]
统一包总长度:统一包的字节总长度,用4字节的整数表示,写入时按字节顺序,即高字节在前,低字节在后。其他比如索引区域偏移,索引区域长度,文件区域偏移,文件区域长度,均采用此种方式。
[0098]
索引区域偏移和索引区域长度:通过索引区域偏移和索引区域长度,确定索引区域在统一包中的位置信息。
[0099]
参数区域偏移和参数区域长度:通过参数区域偏移和参数区域长度,确定参数区域在统一包中的位置信息。
[0100]
文件区域偏移和文件区域长度:通过文件区域偏移和文件区域长度,确定文件区域在统一包中的位置信息。
[0101]
(二)索引区域
[0102]
所述索引区域,存储多个机型索引,每种机型索引绑定偏移值,该偏移值是指该机型对应的所有软件文件打包形成机型软件包后,该机型软件包在参数区域内部的相对偏移;
[0103]
例如,索引区域采用数组形式存储每种机型索引。数组中的每个元素为一种机型索引,其结构如下图:
[0104]
机型偏移参数长度324字节4字节
[0105]
其中:偏移是在参数区域内部的相对偏移。
[0106]
索引的个数是机型的个数,就是说,每一个机型对应一个机型索引。
[0107]
(三)参数区域
[0108]
所述参数区域,用于存储每种机型对应的机型软件包的存储参数,用于指示每种机型对应的机型软件包在文件区域的存储位置,以及该机型软件包包括的各个软件文件,在机型软件包内部的位置;
[0109]
具体的,参数区域存储每种机型对应的以下存储参数:
[0110]
机型软件包在文件区域内的偏移;
[0111]
机型软件包在文件区域内的占用长度;
[0112]
机型软件包的哈希值,通过对机型软件包包括的各个软件文件进行哈希计算得
到;
[0113]
机型软件包内每个软件文件的名称;
[0114]
机型软件包内每个软件文件在文件区域内的偏移;
[0115]
机型软件包内每个软件文件在文件区域内的占用长度。
[0116]
例如,每种机型对应一段json格式的存储参数。该存储参数指示机型对应的机型软件包的位置信息,以及机型软件包中每个软件文件相关的信息。其格式如下表:
[0117][0118]
(四)文件区域
[0119]
所述文件区域,用于存储各个机型软件包;其中,每个机型软件包包括对应的多个软件文件;
[0120]
例如,按线性存放各个机型软件包包括的软件的文件,其结构如下表:
[0121][0122]
步骤4,各个软件文件按步骤1的命名规则命名后,按步骤2确定的目录结构存储,然后,按步骤3确定的打包协议打包,得到统一包;
[0123]
步骤5,当某个产品需要安装软件文件时,从所述统一包中自动选择并下载适配的软件文件;
[0124]
当某个产品需要对已安装的软件文件进行升级操作时,从所述统一包中自动选择与产品适配的最新版本的软件文件,并下载更新。
[0125]
本发明提供的一种多机型多硬件软件版本的下载更新方法,将软件文件按统一的命名规则命名,然后,按规定的目录结构存储,采用规定的打包协议进行打包后,由此得到统一包。因此,在下载或升级产品的软件文件时,可以快速高效准确的从统一包中得到与产品匹配的软件文件,提高软件文件下载和更新的效率。
[0126]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1