固件升级文件更新方法、系统、设备及存储介质与流程

文档序号:25327362发布日期:2021-06-04 17:47阅读:273来源:国知局
固件升级文件更新方法、系统、设备及存储介质与流程

1.本发明涉及数据处理技术领域,尤其涉及一种固件升级文件更新方法、系统、设备及存储介质。


背景技术:

2.嵌入式监控产品在升级固件时使用固件升级文件,即rom文件,该rom文件包括启动模块(boot)操作系统、文件系统(ios)和上层业务(app)的更新数据。固件升级文件制作过程为:将编译完成的上层业务数据(包括程序文件、页面、图片配置文件、数据库等等)打包成一个镜像文件img,再将镜像文件img与文件系统ios的更新文件、启动模块boot的更新文件一起打包,得到打包后的固件升级文件。
3.其中,文件系统ios的更新文件、启动模块boot的更新文件较为通用和稳定,一般在固件升级文件打包好后,很少会再做修改。而上层业务数据因为涉及到具体项目需求,如第三方产品定制、临时功能修改等,修改频率很高。现有技术中,在发生上层业务数据发生临时修改时,往往需要开发人员提交代码,再重新编译、打包rom文件和测试等步骤,十分费时费力。


技术实现要素:

4.针对现有技术中的问题,本发明的目的在于提供一种固件升级文件更新方法、系统、设备及存储介质,可以将镜像文件从打包好的固件升级文件中提取出来,重新解压缩后进行修改,再重新打包为固件升级文件,升级效率更高。
5.本发明实施例提供一种固件升级文件更新方法,包括如下步骤:
6.获取待更新的固件升级文件;
7.对所述待更新的固件升级文件解压缩,提取待更新的镜像文件;
8.将所述待更新的镜像文件挂载到指定目录,得到指定目录下待更新的文件;
9.获取所述指定目录下待更新的文件的更新数据,基于所述更新数据生成更新后的镜像文件;
10.基于所述更新后的镜像文件生成更新后的固件升级文件。
11.在一些实施例中,将所述待更新的镜像文件挂载到指定目录,包括如下步骤:
12.将所述待更新的镜像文件还原为ext4镜像文件;
13.将所述ext4镜像文件挂载到指定目录。
14.在一些实施例中,获取所述指定目录下待更新的文件的更新数据,包括如下步骤:
15.推送业务数据更新页面至用户;
16.接收用户在业务数据更新页面中的更新数据。
17.在一些实施例中,所述方法还包括如下步骤:
18.获取所述镜像文件所对应的业务数据的模块化结构;
19.基于所述模块化结构确定可修改项,基于所述可修改项生成业务数据更新页面。
20.在一些实施例中,所述接收用户在业务数据更新页面中的更新数据,包括如下步骤:
21.接收用户在所述业务数据更新页面中操作的可修改项和修改后的更新数据;
22.基于所述操作的可修改项和修改后的更新数据,更新所述指定目录下待更新的文件,得到指定目录下更新后的文件。
23.在一些实施例中,基于所述更新数据生成更新后的镜像文件,包括如下步骤:
24.基于所述指定目录下更新后的文件生成更新后的镜像文件。
25.在一些实施例中,基于所述更新后的镜像文件生成更新后的固件升级文件,包括如下步骤:
26.将所述更新后的镜像文件以及对所述待更新的固件升级文件解压缩得到的操作系统数据和文件系统数据打包得到可执行文件,作为更新后的固件升级文件。
27.本发明实施例还提供一种固件升级文件更新系统,应用于所述的固件升级文件更新方法,所述系统包括:
28.镜像文件提取模块,用于获取待更新的固件升级文件,对所述待更新的固件升级文件解压缩,提取待更新的镜像文件;
29.镜像文件挂载模块,用于将所述待更新的镜像文件挂载到指定目录,得到指定目录下待更新的文件;
30.更新数据获取模块,用于获取所述指定目录下待更新的文件的更新数据,基于所述更新数据生成更新后的镜像文件;
31.升级文件更新模块,用于基于所述更新后的镜像文件生成更新后的固件升级文件。
32.通过采用本发明的固件升级文件更新系统,在需要更新固件升级文件时,首先通过镜像文件提取模块将固件升级文件解压缩,并且通过镜像文件挂载模块将提取出的镜像文件挂载到指定目录下以供修改,通过更新数据获取模块对指定目录下待更新的文件进行修改,在修改后可以通过升级文件更新模块重新打包得到更新后的固件升级文件,因此无需重新提交代码和编译,提高了固件升级文件更新的效率,并且提高了固件升级文件版本更新的便利性。
33.本发明实施例还提供一种固件升级文件更新设备,包括:
34.处理器;
35.存储器,其中存储有所述处理器的可执行指令;
36.其中,所述处理器配置为经由执行所述可执行指令来执行所述的固件升级文件更新方法的步骤。
37.通过采用本发明所提供的固件升级文件更新设备,所述处理器在执行所述可执行指令时执行所述的固件升级文件更新方法,由此可以获得上述固件升级文件更新方法的有益效果。
38.本发明实施例还提供一种计算机可读存储介质,用于存储程序,所述程序被处理器执行时实现所述的固件升级文件更新方法的步骤。
39.通过采用本发明所提供的计算机可读存储介质,其中存储的程序在被执行时实现所述的固件升级文件更新方法的步骤,由此可以获得上述固件升级文件更新方法的有益效
果。
附图说明
40.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。
41.图1是本发明一实施例的固件升级文件更新方法的流程图;
42.图2是本发明一实施例的挂载镜像文件的流程图;
43.图3是本发明一实施例的业务数据更新页面的示意图;
44.图4是本发明一实施例的固件升级文件更新系统的示意图;
45.图5是本发明一实施例的固件升级文件更新设备的结构示意图;
46.图6是本发明一实施例的计算机存储介质的结构示意图。
具体实施方式
47.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本发明将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。
48.如图1所示,在一实施例中,本发明提供了一种固件升级文件更新方法,包括如下步骤:
49.s100:获取待更新的固件升级文件;
50.s200:对所述待更新的固件升级文件解压缩,提取待更新的镜像文件;
51.s300:将所述待更新的镜像文件挂载到指定目录,得到指定目录下待更新的文件;
52.s400:获取所述指定目录下待更新的文件的更新数据,基于所述更新数据生成更新后的镜像文件;
53.s500:基于所述更新后的镜像文件生成更新后的固件升级文件。
54.通过采用本发明的固件升级文件更新方法,在需要更新固件升级文件时,首先通过步骤s100和s200将固件升级文件解压缩,并且通过步骤s300将提取出的镜像文件挂载到指定目录下以供修改,通过步骤s400根据更新数据对指定目录下待更新的文件进行修改,在修改后通过步骤s500可以重新打包得到更新后的固件升级文件,因此无需重新提交代码和编译,提高了固件升级文件更新的效率,并且提高了固件升级文件版本更新的便利性。
55.所述步骤s100中,获取待更新的固件升级文件,获取到的是rom形式的固件升级文件。所述固件升级文件由操作系统升级文件、文件系统升级文件和业务程序升级文件组成。其中,业务程序升级文件被打包成了一个镜像img文件。操作系统升级文件是boot格式文件,文件系统升级文件是ios格式文件。即所述固件升级文件由镜像img文件、boot格式文件、ios格式文件一起打包得到。其中,镜像文件中主要包括上层业务数据,包括程序文件、页面、图片配置文件、数据库等等。
56.所述步骤s200中,对所述待更新的固件升级文件解压缩后,得到了镜像文件、boot格式文件、ios格式文件。从解压缩后的文件中提取镜像文件。具体地,在该实施例中,在生成固件升级文件时,基于如下命令:
57.mkos_32

x ipc7.2.2_his3519a_imx385_fixipc.pkg
58.例如可以采用海思hi3519a芯片,通过mkos_32

i选项将镜像文件、操作系统升级文件、文件系统升级文件打包成pkg,而步骤s200中解压缩包可以采用海思hi3519a芯片,利用

x选项。
59.在其他可替代的实施方式中,在生成固件升级文件时,也可以采用其他的压缩工具来实现打包。只要该压缩工具支持逆向打包,即支持解压缩即可。
60.如图2所示,在该实施例中,所述步骤s300:将所述待更新的镜像文件挂载到指定目录,包括如下步骤:
61.s310:安装镜像还原工具,所述镜像还原工具配置为将img镜像文件转换为ext4镜像文件;
62.例如,在该实施例中,采用simg2img工具,安装命令如下:
63.sudo apt

get install android

tools

fsutils
64.该工具可以通过下载工具集android

tools

fsutiles获得;
65.s320:将所述待更新的镜像文件还原为ext4镜像文件;
66.例如,在采用simg2img工具时,还原命令如下:
67.simg2img app.img app.img.ext
68.还原完成后,利用linux系统下的file命令可以检测得到该镜像文件目前为ext4文件格式;命令如下:
69.mkdir ext4_mnt;
70.s330:创建指定目录,将所述ext4镜像文件挂载到所述指定目录,具体地,命令如下:
71.sudo mount
ꢀ‑
t ext4
ꢀ‑
o loop app.img.ext ext4_mnt。
72.由此,镜像文件挂载成功,可以对指定目录下待更新的文件执行修改更新操作。此处仅列举了一种镜像文件挂载的方式,在其他可替代的实施方式中,也可以利用其他的镜像文件挂载方式,例如采用其他的工具将img镜像还原为ext4镜像等,均属于本发明的保护范围之内。
73.在该实施例中,所述步骤s400:获取所述指定目录下待更新的文件的更新数据,包括如下步骤:
74.推送业务数据更新页面至用户,例如可以推送至用户操作的电脑、手机等终端设备,用户可以直接在业务数据更新页面上选择需要更新的内容,并输入更新信息;
75.接收用户在业务数据更新页面中的更新数据,此更新数据即对应于镜像文件中的业务数据,例如包括版本信息、产品logo、协议信息、产商信息、时区信息等等。
76.如图3所示,为一种实施方式中的业务数据更新页面的示意图。其中,以图形化的方式展示可以供用户(例如版本发布人员,即市场人员或测试人员等)修改的项目和修改的方式。例如,用户可以通过选择“版本标识”的选择框并在后面的输入框中输入文字的方式来调整业务数据中的版本标识,通过选择语言对应的选择框来选择对应的语言等等。由此,可以实现十分方便地定制固件升级文件中的业务数据,并且可以做到快速更新,快速发布。
77.在该实施例中,所述固件升级文件中的业务数据对应的业务程序支持模块化管理,可以单独替换里面的配置文件、个别应用程序、网页代码、数据库等,替换后不会引起整
体业务数据的运行异常。各个模块之间要充分实现模块化和去耦合。
78.进一步地,所述固件升级文件更新方法还包括生成所述业务数据更新页面的步骤,具体地,采用如下步骤生成该页面:
79.获取所述镜像文件所对应的业务数据的模块化结构;
80.基于所述模块化结构确定可修改项,基于所述可修改项生成业务数据更新页面。例如,在图3中,可修改项包括产品标识、产品型号、产品logo、web插件操作、删除语言、免激活、协议等等。
81.在该实施例中,所述步骤s400:接收用户在业务数据更新页面中的更新数据,包括如下步骤:
82.接收用户在所述业务数据更新页面中操作的可修改项和修改后的更新数据;例如,一个用户更新了版本标识,则接收用户修改后的版本标识信息;
83.基于所述操作的可修改项和修改后的更新数据,更新所述指定目录下待更新的文件,得到指定目录下更新后的文件。具体地,基于之前可修改项在业务数据的模块化结构中的位置,采用更新数据替换所述指定目录下待更新的文件中可修改项未更新前的信息,可以得到指定目录下更新后的文件。
84.在该实施例中,所述步骤s400中,基于所述更新数据生成更新后的镜像文件,包括如下步骤:
85.基于所述指定目录下更新后的文件生成更新后的镜像文件。
86.在该实施例中,所述步骤s500中,基于所述更新后的镜像文件生成更新后的固件升级文件,包括如下步骤:
87.将所述更新后的镜像文件以及对所述待更新的固件升级文件解压缩得到的操作系统数据和文件系统数据打包得到可执行文件,作为更新后的固件升级文件。具体地,重新打包文件的方式可以采用如上所述的方式,例如采用海思hi3519a芯片,通过mkos_32

i选项将镜像文件、操作系统升级文件、文件系统升级文件打包成pkg可执行文件,作为更新后的固件升级文件。在其他可替代的实施方式中,也可以采用其他的压缩打包方式,只要该方式支持解压缩即可,均属于本发明的保护范围之内。
88.由此,本发明无需用户重新提供编译文件,即可以实现部分业务模块的替换。对于后续测试人员来说,可以只针对模块化的有更新的部分业务数据进行有针对性地测试,而无需重复测试整个固件升级文件,也大大减轻了测试人员的工作量。同时,本发明通过提供可视化的业务数据更新页面,用户可以轻松方便地在图形化页面中进行操作,操作十分简便,无需重新编译代码,大大加快了业务数据更新的效率。
89.如图4所示,本发明实施例还提供一种固件升级文件更新系统,应用于所述的固件升级文件更新方法,所述系统包括:
90.镜像文件提取模块m100,用于获取待更新的固件升级文件,对所述待更新的固件升级文件解压缩,提取待更新的镜像文件;
91.镜像文件挂载模块m200,用于将所述待更新的镜像文件挂载到指定目录,得到待更新的指定目录下文件;
92.更新数据获取模块m300,用于获取所述待更新的指定目录下文件的更新数据,基于所述更新数据生成更新后的镜像文件;
93.升级文件更新模块m400,用于基于所述更新后的镜像文件生成更新后的固件升级文件。
94.通过采用本发明的固件升级文件更新系统,在需要更新固件升级文件时,首先通过镜像文件提取模块m100将固件升级文件解压缩,并且通过镜像文件挂载模块m200将提取出的镜像文件挂载到指定目录下以供修改,通过更新数据获取模块m300对指定目录下待更新的文件进行修改,在修改后可以通过升级文件更新模块m400重新打包得到更新后的固件升级文件,因此无需重新提交代码和编译,提高了固件升级文件更新的效率,并且提高了固件升级文件版本更新的便利性。
95.本发明实施例还提供一种固件升级文件更新设备,包括处理器;存储器,其中存储有所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行所述的固件升级文件更新方法的步骤。
96.所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
97.下面参照图5来描述根据本发明的这种实施方式的电子设备600。图5显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
98.如图5所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630、显示单元640等。
99.其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元610可以执行如图1中所示的步骤。
100.所述存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(rom)6203。
101.所述存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
102.总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
103.电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数
据备份存储系统等。
104.通过采用本发明所提供的固件升级文件更新设备,所述处理器在执行所述可执行指令时执行所述的固件升级文件更新方法,由此可以获得上述固件升级文件更新方法的有益效果。
105.本发明实施例还提供一种计算机可读存储介质,用于存储程序,所述程序被处理器执行时实现所述的固件升级文件更新方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。
106.参考图6所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(cd

rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
107.所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
108.所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
109.可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或集群上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
110.通过采用本发明所提供的计算机可读存储介质,其中存储的程序在被执行时实现所述的固件升级文件更新方法的步骤,由此可以获得上述固件升级文件更新方法的有益效果。
111.以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在
不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1