定制系统实现方法、计算机设备和存储介质与流程

文档序号:12905898阅读:312来源:国知局
定制系统实现方法、计算机设备和存储介质与流程

本发明涉及计算机技术领域,特别是涉及一种定制系统实现方法、计算机设备和存储介质。



背景技术:

对于同一个产品,可能有不同的客户,而不同的客户可能有不同需求,为满足不同客户的不同需求,往往需要发布不同客户的定制系统。比如,同一个pos机(pointofsale销售终端)产品,可能有来自中国银行、中国建设银行或中国农业银行等不同客户的定制,定制内容比如有开机动画,系统菜单定制,或安装内置app(application计算机应用程序)等等。传统的解决方式是当需要根据不同客户的不同需求而定制系统时,需针对不同客户的不同需求发布不同版本系统固件的系统以满足客户需求。

然而基于传统的针对不同客户的不同需求发布不同版本系统固件的系统的方法,使得每个不同版本的系统固件都需要从头到尾的开发,从而导致定制系统发布效率低。



技术实现要素:

基于此,有必要针对定制系统发布效率低的问题,提供一种定制系统实现方法、计算机设备和存储介质。

一种定制系统实现方法,所述方法包括:

运行系统固件分区中的通用系统固件;

通过运行的通用系统固件读取定制资源分区中的配置信息;

获取所述配置信息中的定制属性标识;

根据获取的定制属性标识确定代码执行路径;

按照所述代码执行路径,从所述通用系统固件中选择系统代码并执行;

通过执行的所述系统代码,从所述定制资源分区中加载定制资源。

一种计算机设备,包括存储器和处理器,所述存储器包括系统固件分区和定制资源分区,所述存储器存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如下步骤。

运行系统固件分区中的通用系统固件;

通过运行的通用系统固件读取定制资源分区中的配置信息;

获取所述配置信息中的定制属性标识;

根据获取的定制属性标识确定代码执行路径;

按照所述代码执行路径,从所述通用系统固件中选择系统代码并执行;

通过执行的所述系统代码,从所述定制资源分区中加载定制资源。

一种计算机可读存储介质,存储有计算机可读指令,所述计算机可读指令被处理器执行时,使得所述处理器执行所述定制系统实现方法的步骤。

上述定制系统实现方法、计算机设备和存储介质,通过运行通用系统固件时读取定制资源分区中的配置信息来执行对应系统代码并加载定制资源,实现系统的定制。由于不同客户的定制系统都是由通用系统固件和对应客户需求的定制资源包共同完成的。通用系统固件开发完成后可反复使用,使得在针对不同客户的不同需求的定制系统开发中,只需再开发出对应客户需求的定制资源包即可完成定制系统,而一个定制资源包的开发效率远高于一个系统固件的开发效率,从而提高了定制系统的发布效率。

附图说明

图1为一个实施例中定制系统实现方法应用环境图;

图2为一个实施例中终端的内部结构示意图;

图3为一个实施例中定制系统实现方法的流程示意图;

图4为一个实施例中定制系统配置步骤的流程示意图;

图5为另一个实施例中定制系统配置步骤的流程示意图;

图6为一个实施例中通用系统固件测试步骤的流程示意图;

图7为一个实施例中定制资源包测试步骤的流程示意图;

图8为另一个实施例中定制系统实现方法的流程示意图。

具体实施方式

为了使本发明的技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1为一个实施例中定制系统实现方法的应用环境图。如图1所示,该应用环境包括终端110和服务器120。其中,终端可以是pos机、移动手机、平板电脑等;服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群。终端110可以执行定制系统实现方法,利用系统固件分区中的通用系统固件,结合定制资源分区中的配置信息及相应的定制资源,实现定制系统。终端110可从服务器120获取通用系统固件并写入到系统固件分区中。终端110可从服务器120获取定制资源包,并将定制资源包中的定制资源及相应的配置信息写入到定制资源分区中。本领域技术人员可以理解,图1中示出的应用环境,仅仅是与本申请方案相关的部分场景,并不构成对本申请方案应用环境的限定。

图2为一个实施例中终端的内部结构示意图。如图2所示,该终端包括通过系统总线连接的处理器、非易失性存储介质、内存储器、摄像头、显示屏、usb接口和网络接口。其中,服务器的非易失性存储介质包括系统固件分区和定制资源分区,可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器实现定制系统实现方法。该处理器用于提供计算和控制能力,支撑整个终端的运行。该内存储器中也可储存有计算机可读指令,该计算机可读指令被所述处理器执行时,可使得所述处理器执行定制系统实现方法。本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

如图3所示,在一个实施例中,提供了一种定制系统实现方法。本实施例主要以该方法应用于上述图2中的终端来举例说明。参照图3,该定制系统实现方法具体包括如下步骤:

s302,运行系统固件分区中的通用系统固件。

其中,系统固件分区是终端的存储器中用于存储通用系统固件的分区。系统固件是实现操作系统功能的固件。通用系统固件是实现不同的定制系统所公用的系统固件。通用系统固件可以是通用的android系统固件。通用系统固件具有操作系统基础功能,如摄像头扫描功能、网络连接功能、触控驱动功能、打印功能和读卡功能等。通用系统固件具备可选则的定制功能,如应用程序安装校验功能或者客户权限判定功能等。终端可在启动过程中自动从系统固件分区加载通用系统固件到内存储器中运行。

s304,通过运行的通用系统固件读取定制资源分区中的配置信息。

其中,定制资源分区是终端的存储器中用于存储配置信息和定制资源的分区。定制资源分区可以与系统固件分区处于相同或者不同的存储介质中。配置信息是基于通用系统固件实现定制系统的功能所需配置的信息。

在一个实施例中,当运行通用系统固件时,终端可通过通用系统固件中的代码指令从定制资源分区的文件中读取定制资源分区中的配置信息。

s306,获取配置信息中的定制属性标识。

其中,定制属性是基于通用系统固件实现定制系统时可定制的属性。基于不同的定制属性,可以从通用系统固件中选择不同的系统代码执行,以实现不同的定制功能。定制属性标识用于唯一标识相应的定制属性。定制属性标识可以是客户名称或客户名称编码。客户名称比如“ccb”,是中国建设银行的英文缩写。配置信息中包含有定制属性标识。

举例说明,定制资源分区中的配置信息包括“ro.customer.name=ccb”,其中“ro.customer.name”表示定制属性字段,“ccb”则是定制属性的值,表示定制属性标识。终端可通过读取定制资源分区中定制属性字段“ro.customer.name=ccb”的值“ccb”来获取定制属性标识。

308,根据获取的定制属性标识确定代码执行路径。

其中,代码执行路径是通用系统固件中实现定制功能的系统代码所执行的路径。不同的代码执行路径可实现不同的定制功能。通用系统固件集成了实现各种定制系统所需的系统代码,通过不同的代码执行路径可以选择不同的系统代码并执行,以实现不同的定制功能。

具体地,终端可在运行通用系统固件时,在运行到路径判断条件时,读取定制资源分区中的配置信息,获取配置信息中的定制属性标识,将获取的定制属性标识输入路径判断条件进行判断,从而确定与获取的定制属性标识对应的代码执行路径。举例说明,比如该终端获取的定制属性标识为“ccb”,则该终端选择判断条件与定制属性标识“ccb”相符的对应的代码执行路径。

s310,按照代码执行路径,从通用系统固件中选择系统代码并执行。

其中,系统代码是能实现具体功能的代码。具体地,终端根据已选择的确定的代码执行路径,从通用系统固件中选择对应的系统代码并按代码执行路径的逻辑执行代码。

s312,通过执行的系统代码,从定制资源分区中加载定制资源。

其中,定制资源是定制系统中能实现定制功能的资源,比如定制的开机动画、定制的背景图片或者定制的应用程序等。定制的应用程序可以配置为默认开机启动。

具体地,终端通过执行通用系统固件中选择的与代码执行路径相对应的系统代码,加载定制资源分区中的定制资源,实现定制系统的定制功能。

上述定制系统实现方法,通过运行通用系统固件时读取定制资源分区中的配置信息来执行对应系统代码并加载定制资源,实现系统的定制。由于不同客户的定制系统都是由通用系统固件和对应客户需求的定制资源包共同完成的。通用系统固件开发完成后可反复使用,使得在针对不同客户的不同需求的定制系统开发中,只需再开发出对应客户需求的定制资源包即可完成定制系统,而一个定制资源包的开发效率远高于一个系统固件的开发效率,从而提高了定制系统的发布效率。

如图4所示,在一个实施例中,在步骤s302之前,该定制系统实现方法还包括定制系统配置步骤,定制系统配置步骤具体包括:

s402,获取通用系统固件。

在一个实施例中,终端可以通过usb接口连接或网络连接等通信方式从服务器获取通用系统固件。

s404,将获取的通用系统固件写入系统固件分区。

在一个实施例中,终端可将获取的通用系统固件通过烧录工具直接烧录到系统固件分区上。

在另一个实施例中,终端可将获取到的通用系统固件通过硬件接口和相关软件传输到终端的内存储器中,再用u-boot(universalbootloader,即系统启动的入口点)的命令将通用系统固件写入到系统固件分区。

s406,获取定制资源包。

在一个实施例中,终端可以通过usb接口连接或网络连接等通信方式从服务器获取定制资源包。

s408,将定制资源包中的配置信息和相应的定制资源写入到定制资源分区。

在一个实施例中,终端可从定制资源包中解析出配置信息和定制资源,从而将配置信息和定制资源通过烧录工具直接烧录到定制资源分区。

s410,重启该终端。

具体地,可通过断开该终端电源,再重新供给电源后复位该终端硬件设备并初始化该终端操作系统。

在本实施例中,通过获取和写入通用系统固件到系统固件分区,获取定制资源包并将定制资源包中的配置信息和定制资源写入到定制资源分区,完成定制系统的配置,为定制系统实现方法的实施提供了物理基础。

如图5所示,在一个实施例中,定制系统配置步骤还包括:

s502,获取通用系统固件。

s504,将获取的通用系统固件写入系统固件分区。

s506,获取定制资源包。

s508,获取定制资源包中的数字签名和公钥。

其中,数字签名是进行信息鉴别的数据。信息鉴别具体可以是对定制资源包的来源和完整性的鉴别。数字签名可通过私钥加密方式生成,其中私钥是私用密钥。公钥是与私钥相对应的公开的密匙。

在一个实施例中,服务器可对定制资源包的摘要信息用私钥加密得到数字签名。终端通过获取定制资源包,从定制资源包中获取数字签名和与私钥对应的公钥。

s510,根据公钥解密数字签名后进行校验。

其中,对数字签名进行校验,是对数字签名的合法性进行检验。校验通过说明定制资源包的信息完整未被篡改。

在一个实施例中,终端使用公钥解密被加密的定制资源包的摘要信息,然后用哈希函数对收到的定制资源包产生一个摘要信息,将收到的定制资源包的摘要信息与通过公钥解密的摘要信息比对,如果相同,则说明对定制资源包的数字签名校验通过;如果不相同,则说明对定制资源包的数字签名校验不通过。

s512,当校验通过、且公钥与生成通用系统固件中数字签名的公钥一致时,将定制资源包中的配置信息和相应的定制资源写入到定制资源分区。其中,当对定制资源包校验通过后,说明定制资源包的信息完整未被篡改,当定制资源包中的公钥与通用系统固件中的公钥一致时说明定制资源包与通用系统固件来源一致。

s514,重启该终端。

在本实施例中,通过校验定制资源包的数字签名保证了定制资源包的信息完整未被篡改,当定制资源包中的公钥与通用系统固件中的公钥一致时说明定制资源包与通用系统固件来源一致,从而保证了定制系统的安全。

在一个实施例中,在步骤s304之后,该定制系统实现方法还包括:当定制资源分区中不存在配置信息时,从通用系统固件中获取默认代码执行路径;按照默认代码执行路径,从通用系统固件中选择系统代码并执行。

其中,默认代码执行路径是当系统没有定制功能时通用系统固件中系统代码所执行的路径。具体地,当运行通用系统固件时,通过通用系统固件中的代码指令从定制资源分区的文件中未读取到配置信息时,则满足通用系统固件中默认代码执行路径的选择条件,则该终端从通用系统固件中选择系统代码并按默认代码执行路径的逻辑执行该代码。

在本实施例中,当定制资源分区中不存在配置信息时,选择默认代码路径并加载系统代码,可实现普通系统功能,完成非定制系统的实现。

在一个实施例中,步骤s304之后,该定制系统实现方法还包括通用系统固件测试步骤,通用系统固件测试步骤具体包括:在系统固件分区中写入通用系统固件,并保持定制资源分区为空;当定制资源分区中不存在配置信息时,从通用系统固件中获取默认代码执行路径;按照默认代码执行路径,从通用系统固件中选择系统代码并执行。

在一个实施例中,通用系统固件测试步骤还具体包括:

s602,获取通用系统固件。

s604,将获取的通用系统固件写入系统固件分区。

s606,运行系统固件分区中的通用系统固件。

s608,通过运行的通用系统固件读取定制资源分区中的配置信息。

s610,当定制资源分区中不存在配置信息时,从通用系统固件中获取默认代码执行路径。

s612,按照默认代码执行路径,从通用系统固件中选择系统代码并执行。

在本实施例中,通过保持定制资源为空,运行通用系统固件时从通用系统固件中获取默认代码执行路径并执行系统代码可以实现对通用系统固件的测试。

如图7所述,在一个实施例中,步骤s304之后,该定制系统实现方法还包括定制资源包测试步骤,定制资源包测试步骤具体包括:

s702,获取通用系统固件。

s704,将获取的通用系统固件写入系统固件分区。

s706,获取多个定制资源包。

s708,在定制资源分区中,写入多个定制资源包中其中一个定制资源包中的配置信息和相应的定制资源。

s710,通过运行的通用系统固件读取定制资源分区中的配置信息。

s712,获取配置信息中的定制属性标识。

s714,根据获取的定制属性标识确定代码执行路径。

s716,按照代码执行路径,从通用系统固件中选择系统代码并执行。

s718,通过执行的系统代码,从定制资源分区中加载定制资源。

s720,判断所有定制资源包是否均被轮次写入,若是,则执行步骤s722,若否,则跳转步骤s708。

s722,结束定制资源包测试。

在一个实施例中,终端可获取多个定制资源包,在定制资源分区中,轮次写入不同的定制资源包中的配置信息和相应的定制资源,通过运行通用系统固件读取定制资源分区中的配置信息,获取配置信息中的定制属性标识,根据获取的定制属性标识确定代码执行路径,按照代码执行路径,从通用系统固件中选择系统代码并执行,通过执行的系统代码,从定制资源分区中加载定制资源的步骤分别对轮次写入的定制资源包进行测试。其中,不同定制资源包中的配置信息和定制资源的写入顺序可以和获取定制资源包的顺序一致,也可以是随机写入。

在本实施例中通过轮次写入定制资源包并轮次测试定制资源包,以完成对定制系统的定制功能的测试。

如图8所示,在一个具体实施例中,定制系统实现方法包括以下步骤:

s802,获取通用系统固件。

s804,将获取的通用系统固件写入系统固件分区。

s806,获取定制资源包。

s808,获取定制资源包中的数字签名和公钥。

s810,根据公钥解密数字签名后进行校验。

s812,当校验通过、且公钥与生成通用系统固件中数字签名的公钥一致时,将定制资源包中的配置信息和相应的定制资源写入到定制资源分区。

s814,重启后,运行系统固件分区中的通用系统固件。

s816,通过运行的通用系统固件读取定制资源分区中的配置信息,当定制资源分区中的配置信息不为空时,执行步骤s818;当定制资源分区中的配置信息不存在时,执行步骤s826。

s818,获取配置信息中的定制属性标识。

s820,根据获取的定制属性标识确定代码执行路径。

s822,按照代码执行路径,从通用系统固件中选择系统代码并执行。

s824,通过执行的系统代码,从定制资源分区中加载定制资源。

s826,从通用系统固件中获取默认代码执行路径。

s828,按照默认代码执行路径,从通用系统固件中选择系统代码并执行。

在本实施例中,定制系统实现方法,通过获取并校验定制资源包,保障了定制系统的安全性。运行通用系统固件时读取定制资源分区中的配置信息来执行对应系统代码并加载定制资源,实现系统的定制。当定制资源分区中不存在配置信息时,选择默认代码路径并加载系统代码,可实现普通系统功能,实现非定制系统发布。由于不同客户的定制系统都是由通用系统固件和对应客户需求的定制资源包共同完成的。通用系统固件开发和测试完成后可反复使用,使得在针对不同客户的不同需求的定制系统开发中,只需再开发和测试对应客户需求的定制资源包即可完成定制系统,而一个定制资源包的开发和测试效率远高于一个系统固件的开发和测试效率,从而提高了定制系统的发布效率。

一种计算机设备,包括存储器和处理器,存储器包括系统固件分区和定制资源分区,存储器存储有计算机可读指令;计算机可读指令被处理器执行时,使得处理器执行如下步骤:

运行系统固件分区中的通用系统固件;通过运行的通用系统固件读取定制资源分区中的配置信息;获取配置信息中的定制属性标识;根据获取的定制属性标识确定代码执行路径;按照代码执行路径,从通用系统固件中选择系统代码并执行;通过执行的系统代码,从定制资源分区中加载定制资源。

上述定制系统实现计算机设备,通过运行通用系统固件时读取定制资源分区中的配置信息来执行对应系统代码并加载定制资源,实现系统的定制。由于不同客户的定制系统都是由通用系统固件和对应客户需求的定制资源包共同完成的。通用系统固件开发完成后可反复使用,使得在针对不同客户的不同需求的定制系统开发中,只需再开发出对应客户需求的定制资源包即可完成定制系统,而一个定制资源包的开发效率远高于一个系统固件的开发效率,从而提高了定制系统的发布效率。

在一个实施例中,计算机可读指令使得处理器在执行运行系统固件分区中的通用系统固件之前,还执行以下步骤:获取通用系统固件;将获取的通用系统固件写入系统固件分区;获取定制资源包;将定制资源包中的配置信息和相应的定制资源写入到定制资源分区;重启该计算机设备。

在一个实施例中,计算机可读指令使得处理器在执行将定制资源包中的配置信息和相应的定制资源写入到定制资源分区之前,还执行以下步骤:获取定制资源包中的数字签名和公钥;根据公钥解密数字签名后进行校验;当校验通过、且公钥与生成通用系统固件中数字签名的公钥一致时,将定制资源包中的配置信息和相应的定制资源写入到定制资源分区。

在一个实施例中,计算机可读指令使得处理器在执行通过运行的通用系统固件读取定制资源分区中的配置信息之后,还执行以下步骤:当定制资源分区中不存在配置信息时,从通用系统固件中获取默认代码执行路径;按照默认代码执行路径,从通用系统固件中选择系统代码并执行。

在一个实施例中,计算机可读指令被处理器执行时,使得处理器还执行如下通用系统固件测试步骤:在系统固件分区中写入通用系统固件,并保持定制资源分区为空;运行系统固件分区中的通用系统固件;通过运行的通用系统固件读取定制资源分区中的配置信息;当定制资源分区中不存在配置信息时,从通用系统固件中获取默认代码执行路径;按照默认代码执行路径,从通用系统固件中选择系统代码并执行。

在一个实施例中,计算机可读指令被处理器执行时,使得处理器还执行如下步骤轮次对定制资源包进行测试:在定制资源分区中,轮次写入不同的定制资源包中的配置信息和相应的定制资源,通过运行通用系统固件读取定制资源分区中的配置信息,获取配置信息中的定制属性标识,根据获取的定制属性标识确定代码执行路径,按照代码执行路径,从通用系统固件中选择系统代码并执行,通过执行的系统代码,从定制资源分区中加载定制资源的步骤分别对轮次写入的定制资源包进行测试。

一种计算机可读存储介质,其上存储有计算机可读指令,该计算机可读指令被处理器执行时实现以下步骤:

运行系统固件分区中的通用系统固件;通过运行的通用系统固件读取定制资源分区中的配置信息;获取配置信息中的定制属性标识;根据获取的定制属性标识确定代码执行路径;按照代码执行路径,从通用系统固件中选择系统代码并执行;通过执行的系统代码,从定制资源分区中加载定制资源。

在一个实施例中,计算机可读指令使得处理器在执行运行系统固件分区中的通用系统固件之前,还执行以下步骤:获取通用系统固件;将获取的通用系统固件写入系统固件分区;获取定制资源包;将定制资源包中的配置信息和相应的定制资源写入到定制资源分区;重启该计算机设备。

在一个实施例中,计算机可读指令使得处理器在执行将定制资源包中的配置信息和相应的定制资源写入到定制资源分区之前,还执行以下步骤:获取定制资源包中的数字签名和公钥;根据公钥解密数字签名后进行校验;当校验通过、且公钥与生成通用系统固件中数字签名的公钥一致时,将定制资源包中的配置信息和相应的定制资源写入到定制资源分区。

在一个实施例中,计算机可读指令使得处理器在执行通过运行的通用系统固件读取定制资源分区中的配置信息之后,还执行以下步骤:当定制资源分区中不存在配置信息时,从通用系统固件中获取默认代码执行路径;按照默认代码执行路径,从通用系统固件中选择系统代码并执行。

在一个实施例中,计算机可读指令被处理器执行时,使得处理器还执行如下通用系统固件测试步骤:在系统固件分区中写入通用系统固件,并保持定制资源分区为空;运行系统固件分区中的通用系统固件;通过运行的通用系统固件读取定制资源分区中的配置信息;当定制资源分区中不存在配置信息时,从通用系统固件中获取默认代码执行路径;按照默认代码执行路径,从通用系统固件中选择系统代码并执行。

在一个实施例中,计算机可读指令被处理器执行时,使得处理器还执行如下步骤轮次对定制资源包进行测试:在定制资源分区中,轮次写入不同的定制资源包中的配置信息和相应的定制资源,通过运行通用系统固件读取定制资源分区中的配置信息,获取配置信息中的定制属性标识,根据获取的定制属性标识确定代码执行路径,按照代码执行路径,从通用系统固件中选择系统代码并执行,通过执行的系统代码,从定制资源分区中加载定制资源的步骤分别对轮次写入的定制资源包进行测试。

上述计算机可读存储介质,通过运行通用系统固件时读取定制资源分区中的配置信息来执行对应系统代码并加载定制资源,实现系统的定制。由于不同客户的定制系统都是由通用系统固件和对应客户需求的定制资源包共同完成的。通用系统固件开发完成后可反复使用,使得在针对不同客户的不同需求的定制系统开发中,只需再开发出对应客户需求的定制资源包即可完成定制系统,而一个定制资源包的开发效率远高于一个系统固件的开发效率,从而提高了定制系统的发布效率。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1