CN115220798A - 驱动数据读取方法、装置、计算机设备和存储介质 - Google Patents
驱动数据读取方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN115220798A CN115220798A CN202210811028.8A CN202210811028A CN115220798A CN 115220798 A CN115220798 A CN 115220798A CN 202210811028 A CN202210811028 A CN 202210811028A CN 115220798 A CN115220798 A CN 115220798A
- Authority
- CN
- China
- Prior art keywords
- data
- binary file
- data segment
- segment
- reading
- 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 49
- 238000012795 verification Methods 0.000 claims abstract description 32
- 238000006243 chemical reaction Methods 0.000 claims abstract description 30
- 230000006870 function Effects 0.000 description 8
- 241000282326 Felis catus Species 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 101000772194 Homo sapiens Transthyretin Proteins 0.000 description 4
- 102100029290 Transthyretin Human genes 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了驱动数据读取方法、装置、计算机设备和存储介质;本申请实施例获取驱动数据中的资源数据;将所述资源数据转换为二进制文件,得到转换后的驱动数据,所述二进制文件包括用于验证所述二进制文件的第一数据段、以及对应所述资源数据的第二数据段;当目标设备读取所述转换后的驱动数据时,根据所述第一数据段,验证所述二进制文件;若验证通过,读取所述二进制文件的第二数据段,以读取所述驱动数据。本申请实施例通过将驱动数据中的资源数据转换为二进制文件,在提升驱动数据安全性的同时,还能保证数据转换的效率。
Description
技术领域
本申请涉及计算机技术领域,具体涉及驱动数据读取方法、装置、计算机设备和存储介质。
背景技术
目前,智能终端设备都会配置部分外部设备,例如,智能电视的数字功放模块,这些外部设备一般都要软件驱动和对应的驱动数据才能正常运作。现有技术中,通常是将驱动数据以明文的形式存放在ini格式的文件中,以读取并使用。
然而,以明文形式的文件存储的驱动数据,很容易通过串口、adb(Android调试桥)等方式进入智能终端设备的***,通过cat命令读取到明文的驱动数据,造成数据泄露,无法保障驱动数据的安全。
发明内容
本申请实施例提供驱动数据读取方法、装置、计算机设备和存储介质,可以提升驱动数据的安全性。
本申请实施例提供一种驱动数据读取方法,包括:获取驱动数据中的资源数据;将所述资源数据转换为二进制文件,得到转换后的驱动数据,所述二进制文件包括用于验证所述二进制文件的第一数据段、以及对应所述资源数据的第二数据段;当目标设备读取所述转换后的驱动数据时,根据所述第一数据段,验证所述二进制文件;若验证通过,读取所述二进制文件的第二数据段,以读取所述驱动数据。
本申请实施例还提供一种驱动数据读取装置,包括:获取单元,用于获取驱动数据中的资源数据;转换单元,用于将所述资源数据转换为二进制文件,得到转换后的驱动数据,所述二进制文件包括用于验证所述二进制文件的第一数据段、以及对应所述资源数据的第二数据段;验证单元,用于当目标设备读取所述转换后的驱动数据时,根据所述第一数据段,验证所述二进制文件;读取单元,用于若验证通过,读取所述二进制文件的第二数据段,以读取所述驱动数据。
本申请实施例还提供一种计算机设备,包括处理器和存储器,所述存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行本申请实施例所提供的任一种驱动数据读取方法中的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本申请实施例所提供的任一种驱动数据读取方法中的步骤。
本申请实施例可以获取驱动数据中的资源数据;将所述资源数据转换为二进制文件,得到转换后的驱动数据,所述二进制文件包括用于验证所述二进制文件的第一数据段、以及对应所述资源数据的第二数据段;当目标设备读取所述转换后的驱动数据时,根据所述第一数据段,验证所述二进制文件;若验证通过,读取所述二进制文件的第二数据段,以读取所述驱动数据。
在本申请中,通过将驱动数据中的资源数据转换为二进制文件一方面可以将驱动数据中的部分数据即资源数据转为暗文存储,能够提升驱动数据的安全性,另一方面仅对资源数据进行转换,没有转换逻辑数据,也能保证数据转换的效率,再一方面由于驱动数据中,资源数据经常变化,而逻辑数据通常不变,这种转换方式使驱动程序更新时只需替换对应的二进制文件,也可以提升驱动程序更新时的编译效率。显然,本申请在提升驱动数据安全性的同时,还能保证数据转换的效率以及提升驱动程序更新时的编译效率。
此外,本申请通过在二进制文件中写入第一数据段,能够在读取二进制文件时,通过验证第一数据段以确定读取到的二进制文件的正确性,增加读取到的二进制文件的可靠性,以增加驱动数据的可靠性,避免出错。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的驱动数据读取方法的场景示意图;
图1b是本申请实施例提供的驱动数据读取方法的流程示意图;
图2是本申请实施例提供的驱动数据读取装置的结构示意图;
图3是本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供驱动数据读取方法、装置、计算机设备和存储介质。
其中,该驱动数据读取装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、或者个人电脑(Personal Computer,PC)等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
在一些实施例中,该驱动数据读取装置还可以集成在多个电子设备中,比如,驱动数据读取装置可以集成在多个服务器中,由多个服务器来实现本申请的驱动数据读取方法。
在一些实施例中,服务器也可以以终端的形式来实现。
例如,参考图1a,提供了一种该驱动数据读取方法的应用场景,该应用场景可以包括多个电子设备中,如服务器、终端设备和外接设备,终端设备即为目标设备。
其中,服务器可以获取驱动数据中的资源数据;将资源数据转换为二进制文件,得到转换后的驱动数据,二进制文件包括用于验证二进制文件的第一数据段、以及对应资源数据的第二数据段;再将转换后的驱动数据发送至终端设备。
终端设备可以在接入对应转换后的驱动数据的外接设备时,读取转换后的驱动树,并当目标设备读取转换后的驱动数据时,根据第一数据段,验证二进制文件;若验证通过,读取二进制文件的第二数据段,以读取驱动数据。
以下分别进行详细说明。
在本实施例中,提供了一种驱动数据读取方法,如图1b所示,该驱动数据读取方法的具体流程可以如下:
110、获取驱动数据中的资源数据。
驱动数据是指用于运行驱动程序的数据,当终端设备的***要使用某个硬件如外接设备时,终端设备可以通过外接设备的驱动程序与外接设备之间完成数据传送,外接设备可以包括但不限于主板、光驱、显卡、声卡、键盘、鼠标、硬盘、手柄、方向盘、摇杆或跳舞毯等。驱动数据可以包括资源数据和逻辑数据,其中,逻辑数据可以指与驱动数据的控制逻辑相关的数据,资源数据可以指驱动程序在运行控制逻辑时使用的数据,通常资源数据为驱动数据中除逻辑数据以外的数据。现有技术中,驱动数据通常都以ini格式的文件存储,ini文件是一种以明文形式存储数据的文件。
在一些实施方式中,可以通过对应资源数据的预设的文件标识,快速读取到对应的资源数据文件,提升资源数据的读取效率,节省算力。具体地,获取驱动数据中的资源数据,可以包括:
根据预设的文件标识,获取对应预设的文件标识的资源数据文件;
从资源数据文件中,提取得到资源数据。
预设的文件标识可以为能够指向资源数据文件的标识,例如,可以为文件名、文件存储位置信息、索引值等。如,可以根据资源数据文件的文件名,获取对应的文件,可以根据资源数据文件存储的位置信息,查找到对应的资源数据文件,也可以根据资源数据文件对应的索引值,从索引表查找对应的地址,以获取对应的资源数据文件。
在实际应用时,终端设备中,可以存储有多种不同外接设备的驱动数据,每种驱动数据可以存储在特定名称的数据文件中。例如,用户可以通过驱动数据中的逻辑数据获知要读取对应的资源数据文件的名称,如通过功放驱动ad82088的逻辑数据确定要读取的驱动文件名称ad82088.ini,以此可以根据文件名称ad82088.ini,通过cat(concatenate)命令读取资源数据文件ad82088.ini中的资源数据。
120、将资源数据转换为二进制文件,得到转换后的驱动数据,二进制文件包括用于验证二进制文件的第一数据段、以及对应资源数据的第二数据段。
二进制文件可以指包含在ASCII及扩展ASCII字符编写的数据或程序指令的文件。例如,二进制文件可以为bin(binary)格式的文件。
可以理解的是,现有技术中常以特定名称的文件来存储驱动数据,这种存储方式使熟悉驱动的其他用户容易获知相应驱动对应的文件名称,并能直接根据文件名称访问对应的明文驱动文件如ini文件,造成驱动数据泄露。相比而言,本申请实施例,将资源数据转换为二进制文件如bin文件,二进制文件是以二进制数据存储,在终端设备的***中是无法通过cat命令读取,因此难以被其他用户访问,也难以破解,能够提升驱动数据的安全性。
第一数据段和第二数据段均为二进制数据。第一数据段是可以用于验证转换后的二进制文件的数据段,例如可以为头码、用于表征数据类型的数据段或校验码等。第二数据段是将资源数据转换得到的二进制数据。
通过在二进制文件中写入第一数据段,能够在读取二进制文件时,通过验证第一数据段以确定读取到的二进制文件的正确性,增加读取到的二进制文件的可靠性。
在一些实施方式中,可以通过写入第三数据段,以在读取二进制文件时,提示要读取的资源数据的长度,提升读取效率。具体地,二进制文件还包括用于表征资源数据长度的第三数据段,将资源数据转换为二进制文件,得到转换后的驱动数据,可以包括:
根据预设的写入顺序,将第一数据段、第二数据段以及第三数据段,写入二进制文件,得到转换后的驱动数据。
预设的写入顺序可以指预先设置在二进制文件中的,写入第一数据段、第二数据段以及第三数据段的先后顺序。可以根据实际需要设置不同的预设的写入顺序。例如,预设的写入顺序可以为按照第三数据段、第一数据段以及第二数据段的先后顺序进行写入的顺序,也可以为按照第一数据段、第三数据段以及第二数据段的先后顺序进行写入的顺序。
第三数据段为二进制数据,例如,资源数据转换得到的第二数据段的长度为N,第三数据段可以为N对应的二进制数据。
在一些实施方式中,为了提升二进制文件的读取效率,可以使第三数据段的写入顺序早于第二数据段,以在读取第二数据段之前,可以根据读取到的第三数据段确定要读取的第二数据段的长度,避免读取冗余数据,以提升二进制文件的读取效率。
在一些实施方式中,可以通过头码或表征数据类型的数据段来验证二进制文件。具体地,第一数据段可以包括头码以及用于表征数据类型的第四数据段中的至少一种。头码可以用于表征数据的开始,以此可以通过识别头码来判断是否读取到对应的二进制文件,表征数据类型的第四数据段可以使驱动程序根据读取的数据类型处理二进制文件。例如,驱动程序可以根据识别第四数据段来确定该数据类型是否是要处理的数据类型,且可以根据不同的数据类型执行不同的工作流。若识别的数据类型不是要处理的数据类型或驱动程序不支持此类数据类型,则可以退出。
在一些实施方式中,可以在开始读取二进制文件时,验证二进制文件,以预先验证二进制文件的正确性,提升读取效率,在验证通过后可以根据第三数据段确定要读取的资源数据长度,以进一步提升二进制文件的读取效率。具体地,预设的写入顺序可以包括按照第一数据段、第三数据段以及第二数据段的先后顺序进行写入。
在一些实施方式中,可以在二进制文件中写入校验码,一方面,能够在写入所有的目标数据段后,快速根据写入的数据生成校验码,提升生成校验码的效率,另一方面,能够在读取二进制文件时,通过校验码验证二进制文件,增加读取到的二进制文件的可靠性,以增加驱动数据的可靠性,避免出错。具体地,二进制文件还可以包括校验码,根据预设的写入顺序,将第一数据段、第二数据段以及第三数据段,写入二进制文件,得到转换后的驱动数据,可以包括:
根据预设的写入顺序,将第一数据段、第二数据段以及第三数据段,写入二进制文件;
对目标数据段进行校验,得到校验码,目标数据段包括第一数据段、第二数据段以及第三数据段;
在目标数据段之后,将校验码写入二进制文件,得到转换后的驱动数据。
校验码为二进制数据。例如,可以通过循环冗余校验法、奇偶校验码等方法对目标数据段进行校验得到校验码,并以二进制数据形式将校验码写入二进制文件。
例如,以功放驱动ad82088为例,该驱动包括以明文存储的ad82088.ini文件,可以从该驱动的逻辑文件中获知该驱动要读取ad82088.ini文件,因此可以通过cat命令读取ad82088.ini文件,再获取ad82088.ini文件中ATTR_0_DATA_ARRAY字段的数据,并通过脚本amp_ini_to_bin.sh,按照预设的转换逻辑,将获取到的数据转换为ad82088.bin文件。相对于ini明文显示的数据,经过转换后的bin文件,在Linux***中是无法通过cat命令拿到数据的,因此能够提升驱动程序的安全性。
在一些实施方式中,驱动数据还可以包括对应转换逻辑的逻辑数据,转换逻辑用于确定二进制文件的转换方法。
转换逻辑可以为根据转换方法预设的转换逻辑,预设的转换逻辑可以包括预设的写入顺序、对目标数据段进行校验,得到校验码以及写入校验码的顺序,具体地,转换逻辑中可以包匹配字符串的操作,该操作通过提取ini文件里特定字符串后面的长度为N的数据,然后顺序写入第三数据段之后。如步骤120是根据转换逻辑实现的,即步骤将资源数据转换为二进制文件,得到转换后的驱动数据可以包括:根据转换逻辑,将资源数据转换为二进制文件,得到转换后的驱动数据。
例如,转换逻辑可以包括二进制文件中的数据段以0x40和0x23两个固定的数据为头码,头码后依次为用于表征数据类型的第四数据段、用于表征资源数据长度的第三数据段以及对应资源数据的第二数据段,最后在第二数据段之后存放校验码,校验码用于在读取完所有数据后进行校验。具体地,二进制文件可以包括:第1位:0x40(头码)、第2位:0x23(头码)、第3位:0x01(用于表征数据类型的第四数据段,用于驱动识别)、第4位:0x40(数据长度N,用于表征资源数据长度的第三数据段,告知写入的资源数据的长度)、第5位:数据1、第6位:数据2、...第4+N位:数据N(第5位至第4+N位的数据为对应资源数据的第二数据段)、第4+N+1位(校验码,用于驱动确认暗文是否正确),其中校验码为二进制文件的最后一位。可以理解的是,可以按照资源数据的顺序将其存放在第5位至第4+N位;在读取二进制文件时,当读取到数据长度N后,此时可以根据N确定只需再读取N+1位的数据(即读取到第4+N+1位的校验码)。
在一些实施方式中,为了提升二进制文件的读取效率,根据预设的写入顺序,将第一数据段、第二数据段以及第三数据段,写入二进制文件,可以包括:
获取第一数据段,并将第一数据段写入二进制文件;
在第一数据段之后,根据资源数据的长度,将第三数据段写入二进制文件;
在第三数据段之后,将第二数据段写入二进制文件。
例如,转换逻辑可以通过amp_ini_to_bin.sh脚本实现,该脚本将资源文件转换为二进制文件具体过程为:第一步,头码生成,脚本里面固定配置头码为readonlyHeadCode="0x40,0x23",脚本会将此数据首先写入到bin文件开头;第二步,写入数据类型,脚本会遍历ini里面的内容,匹配字符”ATTR_0_DATA_ARRAY”,假如存在,则执行后面步骤第三步和第四步,并写入协商好的类型0x01到bin文件里面,假如不存在,则报错告知用户ini文件格式跟脚本不匹配;第三步,脚本会将ini匹配字符”ATTR_0_DATA_ARRAY”后面的数据读取出来,计算一共有多少数据,先将数据长度写入bin文件,随后写入资源数据;最后一步,将前面写入的数据进行奇偶校验,将校验码写入bin文件最后,完成后可以退出脚本。
在一些实施方式中,转换后的驱动数据还可以包括对应目标逻辑的逻辑数据,将资源数据转换为二进制文件,得到转换后的驱动数据,还可以包括:生成对应二进制文件的目标逻辑,目标逻辑用于确定二进制文件的读取方法。
目标逻辑可以为根据转换逻辑生成的逻辑,例如目标逻辑可以包括读取数据段的顺序、对目标数据段进行校验等,如步骤130~步骤140为根据目标逻辑实现的,即步骤当目标设备读取转换后的驱动数据时,根据第一数据段,验证二进制文件可以包括:当目标设备读取转换后的驱动数据时,根据目标逻辑以及第一数据段,验证二进制文件,步骤若验证通过,读取二进制文件的第二数据段可以包括:若验证通过,根据目标逻辑,读取二进制文件的第二数据段。需说明的是,转换后的驱动数据还可以包括其他逻辑数据,如用于确定驱动程序如何使用读取到的资源数据的逻辑数据等,该其他数据逻辑在转换前后可以不变。
130、当目标设备读取转换后的驱动数据时,根据第一数据段,验证二进制文件。
在读取转换后的驱动数据时,可以通过验证第一数据段以验证读取到的二进制文件的正确性,增加读取到的二进制文件的可靠性,以增加驱动数据的可靠性,避免出错。
目标设备可以指接入外接设备的设备,可以为终端或服务器,例如可以为终端设备,如智能电视。
需说明的是,步骤110以及步骤120可以在目标设备上执行,也可以在其他设备如其他终端或服务器上执行。例如,在步骤110以及步骤120中,目标设备或其他设备可以先获取驱动数据,驱动数据中的资源数据以ini文件形式存储,再从驱动数据的ini文件中读取资源数据,将资源数据转换为二进制文件,得到转换后的驱动数据。若步骤110以及步骤120在目标设备上执行,可以将转换后的驱动数据存储在本地,若步骤110以及步骤120在其他设备上执行,可以将转换后的驱动数据发送给目标设备,如可以将转换后的驱动数据烧录进智能电视。以此,当目标设备接入外接设备时,目标设备可以生成读取指令,并根据读取指令在本地读取转换后的驱动数据,在读取过程中,根据第一数据段,验证二进制文件,若验证通过,读取二进制文件的第二数据段,以读取驱动数据。
在实际应用中,在读取转换后的驱动数据时,可以根据转换后的驱动数据中的逻辑数据读取二进制文件。逻辑数据可以以ini文件形式存储。可以理解的是,在将资源数据转换为二进制文件时,并没有对驱动数据中的逻辑数据进行转换,即转换前的驱动数据和转换后的驱动数据中的逻辑数据均为ini文件形式存储。显然,本申请实施例将驱动数据中的资源数据转换为二进制文件,并没有转换逻辑数据,一方面可以将驱动数据中的部分数据即资源数据转为暗文存储,能够提升驱动数据的安全性,另一方面仅对驱动数据部分数据进行转换也能保证数据转换的效率,再一方面由于驱动数据中,资源数据经常变化,而逻辑数据通常不变,这种转换方式使驱动程序更新时只替换对应的二进制文件,也可以提升驱动程序更新时的编译效率。
在一些实施方式中,在读取转换后的驱动数据时,可以将二进制文件数据存储在有序的数组中,以根据数组的序列读取对应的数据段。具体地,当目标设备读取转换后的驱动数据时,根据第一数据段,验证二进制文件,可以包括:
当目标设备读取转换后的驱动数据时,新建目标数组;
将二进制文件中的数据存储在目标数组中;
验证目标数组中的第一数据段。
目标数组可以指用于存储转换后的驱动数据的数组,数组是指有序的元素序列。
在一些实施方式中,可以通过读取头码和读取用于表征数据类型的第四数据段来验证二进制文件的正确性,以在开始读取的时候能够确定是否继续读取,提升读取效率。具体地,第一数据段可以包括头码以及用于表征数据类型的第四数据段,验证目标数组中的第一数据段,可以包括:
读取目标数组中的头码;
若读取成功,读取头码的下一数据段;
若下一数据段为第四数据段,且读取成功,则验证通过。
140、若验证通过,读取二进制文件的第二数据段,以读取驱动数据。
在读取到对应资源数据的第二数据段后,可以根据驱动数据中的逻辑数据使用该资源数据运行驱动程序,以使目标设备与外接设备之间进行数据传送,以实现驱动数据的读取,并使用读取的驱动数据运行驱动程序。
在一些实施方式中,在验证通过时,可以根据第三数据段表征的资源数据长度,读取相应长度的第二数据段,提升读取效率。具体地,二进制文件还包括用于表征资源数据长度的第三数据段,若验证通过,读取二进制文件的第二数据段,可以包括:
若验证通过,根据第三数据段,读取二进制文件的第二数据段。
可以根据资源数据的长度,从二进制文件中读取相应长度的第二数据段,也可以根据目标数组的序列从目标数组中读取相应长度的第二数据段。
在一些实施方式中,在读取二进制文件时,通过验证校验码以验证二进制文件的正确性,增加读取到的二进制文件的可靠性,以增加驱动数据的可靠性,避免出错。具体地,二进制文件还可以包括校验码,若验证通过,读取二进制文件的第二数据段之后,还可以包括:
通过校验码,对目标数据段进行校验,目标数据段包括第一数据段、第二数据段以及第三数据段;
若校验通过,将第二数据段发送至驱动程序使用。
在一些实施方式中,在通过校验码,对目标数据段进行校验之前,还可以包括:读取二进制文件的校验码。
在一些实施方式中,目标逻辑还可以包括每次要读取的数据段的长度,以此,在每次读取操作时,可以根据读取逻辑读取对应长度的数据段,增加读取数据的可靠性,以增加驱动数据的可靠性,避免出错。
例如,现有技术中,在读取资源数据时,所采用的数据逻辑通常是使用函数如“ATTR_0_DATA_ARRAY”来匹配ini文件中特定的匹配字符,再获取该字符对应的数据,填充到驱动程序中使用,该方式只能读取明文的ini文件中的数据。然而,本申请实施例中,目标逻辑可以包括如下过程:第一步、使用标准Linux函数如fopen、fread对bin文件进行数据流的读取;第二步、将读取的数据存在一个开辟的空间数组内,然后在后续步骤对空间数组内的数据进行校验和反向获取;第三步、判断数组内的数据前两位是否与协商好的头码如“0x40,0x23”一致,若一致,则执行下一步,若不一致,则返回退出;第四步、判断数组内的第三位数据对应的数据类型是否是驱动想要的(驱动程序支持的),根据不同的数据类型,驱动程序可以执行不一样的工作流,若是驱动支持的数据类型,则执行下一步,若不是驱动支持的数据类型,则返回退出;第五步、获取数组内的第四位数据的数值,例如获取到0x40,代表需要取64个数据,此处假设资源数据长度为N,若从bin文件流获取到的资源数据长度少于该数值,则返回退出,若获取到的数据长度等于该数值,则执行下一步;第六步、根据第五步的获取到的数值,取数组从第五位开始,连续N个字节的数据,并使用奇偶校验法计算数组内从第1位至第(4+N+1)位的数据的校验码;第七步、取数组内第4+N+1位的数据,将此数据和第六步计算出来的校验码进行对比,若一致,表明校验成功,说明bin文件数据是正确的,则可以将数组中读取的N个字节的资源数据发送给驱动程序使用,若不一致,则表明校验失败,返回退出。驱动程序在收到资源数据后,可以通过该资源数据运行驱动程序,以使目标设备与外接设备之间进行数据传送。
本申请实施例提供的驱动数据读取方案可以应用在各种应用驱动程序的设备的场景中。比如,以智能终端设备为例,可以获取驱动数据中的资源数据;将资源数据转换为二进制文件,得到转换后的驱动数据,二进制文件包括用于验证二进制文件的第一数据段、以及对应资源数据的第二数据段;当目标设备读取转换后的驱动数据时,根据第一数据段,验证二进制文件;若验证通过,读取二进制文件的第二数据段,以读取驱动数据。
采用本申请实施例提供的方案通过将驱动数据中的资源数据转换为二进制文件一方面可以将驱动数据中的部分数据即资源数据转为暗文存储,能够提升驱动数据的安全性,另一方面仅对资源数据进行转换,没有转换逻辑数据,也能保证数据转换的效率,再一方面由于驱动数据中,资源数据经常变化,而逻辑数据通常不变,这种转换方式使驱动程序更新时只需替换对应的二进制文件,也可以提升驱动程序更新时的编译效率。显然,本申请在提升驱动数据安全性的同时,还能保证数据转换的效率以及提升驱动程序更新时的编译效率。
此外,本申请通过在二进制文件中写入第一数据段,能够在读取二进制文件时,通过验证第一数据段以确定读取到的二进制文件的正确性,增加读取到的二进制文件的可靠性,以增加驱动数据的可靠性,避免出错。
为了更好地实施以上方法,本申请实施例还提供一种驱动数据读取装置,该驱动数据读取装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
比如,在本实施例中,将以驱动数据读取装置具体集成在计算机设备为例,对本申请实施例的方法进行详细说明。
例如,如图2所示,该驱动数据读取装置可以包括获取单元210、转换单元220、验证单元230以及读取单元240,如下:
(一)获取单元210
用于获取驱动数据中的资源数据。
在一些实施方式中,获取单元210具体可以用于:
根据预设的文件标识,获取对应预设的文件标识的资源数据文件;
从资源数据文件中,提取得到资源数据。
(二)转换单元220
用于将资源数据转换为二进制文件,得到转换后的驱动数据,二进制文件包括用于验证二进制文件的第一数据段、以及对应资源数据的第二数据段。
在一些实施方式中,二进制文件还包括用于表征资源数据长度的第三数据段,转换单元220具体可以用于:
根据预设的写入顺序,将第一数据段、第二数据段以及第三数据段,写入二进制文件,得到转换后的驱动数据。
在一些实施方式中,第一数据段包括头码以及用于表征数据类型的第四数据段中的至少一种。
在一些实施方式中,二进制文件还包括校验码,根据预设的写入顺序,将第一数据段、第二数据段以及第三数据段,写入二进制文件,得到转换后的驱动数据,包括:
根据预设的写入顺序,将第一数据段、第二数据段以及第三数据段,写入二进制文件;
对目标数据段进行校验,得到校验码,目标数据段包括第一数据段、第二数据段以及第三数据段;
在目标数据段之后,将校验码写入二进制文件,得到转换后的驱动数据。
(三)验证单元230
用于当目标设备读取转换后的驱动数据时,根据第一数据段,验证二进制文件。
在一些实施方式中,验证单元230具体可以用于:
当目标设备读取转换后的驱动数据时,新建目标数组;
将二进制文件中的数据存储在目标数组中;
验证目标数组中的第一数据段。
(四)读取单元240
用于若验证通过,读取二进制文件的第二数据段,以读取驱动数据。
在一些实施方式中,二进制文件还包括用于表征资源数据长度的第三数据段,读取单元240具体可以用于:
若验证通过,根据第三数据段,读取二进制文件的第二数据段。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由上可知,本实施例的驱动数据读取装置包括获取单元、转换单元、验证单元以及读取单元,其中,获取单元,用于获取驱动数据中的资源数据;转换单元,用于将资源数据转换为二进制文件,得到转换后的驱动数据,二进制文件包括用于验证二进制文件的第一数据段、以及对应资源数据的第二数据段;验证单元,用于当目标设备读取转换后的驱动数据时,根据第一数据段,验证二进制文件;读取单元,用于若验证通过,读取二进制文件的第二数据段,以读取驱动数据。
由此,本申请实施例可以在提升驱动数据安全性的同时,还能保证数据转换的效率、提升驱动程序更新时的编译效率以及增加驱动数据的可靠性。
相应的,本申请实施例还提供一种计算机设备,该计算机设备可以为终端或服务器,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机、个人数字助理(Personal Digital Assistant,PDA)等终端设备。
如图3所示,图3为本申请实施例提供的计算机设备的结构示意图,该计算机设备300包括有一个或者一个以上处理核心的处理器310、有一个或一个以上计算机可读存储介质的存储器320及存储在存储器320上并可在处理器上运行的计算机程序。其中,处理器310与存储器320电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器310是计算机设备300的控制中心,利用各种接口和线路连接整个计算机设备300的各个部分,通过运行或加载存储在存储器320内的软件程序和/或模块,以及调用存储在存储器320内的数据,执行计算机设备300的各种功能和处理数据,从而对计算机设备300进行整体监控。
在本申请实施例中,计算机设备300中的处理器310会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器320中,并由处理器310来运行存储在存储器320中的应用程序,从而实现各种功能:
获取驱动数据中的资源数据;将资源数据转换为二进制文件,得到转换后的驱动数据,二进制文件包括用于验证二进制文件的第一数据段、以及对应资源数据的第二数据段;当目标设备读取转换后的驱动数据时,根据第一数据段,验证二进制文件;若验证通过,读取二进制文件的第二数据段,以读取驱动数据。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图3所示,计算机设备300还包括:触控显示屏330、射频电路340、音频电路350、输入单元360以及电源370。其中,处理器310分别与触控显示屏330、射频电路340、音频电路350、输入单元360以及电源370电性连接。本领域技术人员可以理解,图3中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏330可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏330可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-EmittingDiode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器310,并能接收处理器310发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器310以确定触摸事件的类型,随后处理器310根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏330而实现输入和输出功能。但是在某些实施例中,触控面板与显示面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏330也可以作为输入单元360的一部分实现输入功能。
射频电路340可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。
音频电路350可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路350可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路350接收后转换为音频数据,再将音频数据输出处理器310处理后,经射频电路340以发送给比如另一计算机设备,或者将音频数据输出至存储器320以便进一步处理。音频电路350还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
输入单元360可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源370用于给计算机设备300的各个部件供电。可选的,电源370可以通过电源管理***与处理器310逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源370还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图3中未示出,计算机设备300还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
由上可知,本实施例提供的计算机设备可以在提升驱动数据安全性的同时,还能保证数据转换的效率、提升驱动程序更新时的编译效率以及增加驱动数据的可靠性。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种驱动数据读取方法中的步骤。例如,该计算机程序可以执行如下步骤:
获取驱动数据中的资源数据;将资源数据转换为二进制文件,得到转换后的驱动数据,二进制文件包括用于验证二进制文件的第一数据段、以及对应资源数据的第二数据段;当目标设备读取转换后的驱动数据时,根据第一数据段,验证二进制文件;若验证通过,读取二进制文件的第二数据段,以读取驱动数据。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种驱动数据读取方法中的步骤,因此,可以实现本申请实施例所提供的任一种驱动数据读取方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种驱动数据读取方法、装置、计算机设备和存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种驱动数据读取方法,其特征在于,包括:
获取驱动数据中的资源数据;
将所述资源数据转换为二进制文件,得到转换后的驱动数据,所述二进制文件包括用于验证所述二进制文件的第一数据段、以及对应所述资源数据的第二数据段;
当目标设备读取所述转换后的驱动数据时,根据所述第一数据段,验证所述二进制文件;
若验证通过,读取所述二进制文件的第二数据段,以读取所述驱动数据。
2.如权利要求1所述的驱动数据读取方法,其特征在于,所述二进制文件还包括用于表征资源数据长度的第三数据段,所述将所述资源数据转换为二进制文件,得到转换后的驱动数据,包括:
根据预设的写入顺序,将所述第一数据段、所述第二数据段以及所述第三数据段,写入所述二进制文件,得到转换后的驱动数据。
3.如权利要求2所述的驱动数据读取方法,其特征在于,所述第一数据段包括头码以及用于表征数据类型的第四数据段中的至少一种。
4.如权利要求2所述的驱动数据读取方法,其特征在于,所述二进制文件还包括校验码,所述根据预设的写入顺序,将所述第一数据段、所述第二数据段以及所述第三数据段,写入所述二进制文件,得到转换后的驱动数据,包括:
根据预设的写入顺序,将所述第一数据段、所述第二数据段以及所述第三数据段,写入所述二进制文件;
对目标数据段进行校验,得到校验码,所述目标数据段包括所述第一数据段、所述第二数据段以及所述第三数据段;
在所述目标数据段之后,将所述校验码写入所述二进制文件,得到转换后的驱动数据。
5.如权利要求2所述的驱动数据读取方法,其特征在于,所述当目标设备读取所述转换后的驱动数据时,根据所述第一数据段,验证所述二进制文件,包括:
当所述目标设备读取所述转换后的驱动数据时,新建目标数组;
将所述二进制文件中的数据存储在所述目标数组中;
验证所述目标数组中的所述第一数据段。
6.如权利要求1所述的驱动数据读取方法,其特征在于,所述二进制文件还包括用于表征资源数据长度的第三数据段,所述若验证通过,读取所述二进制文件的第二数据段,包括:
若验证通过,根据所述第三数据段,读取所述二进制文件的第二数据段。
7.如权利要求1所述的驱动数据读取方法,其特征在于,所述获取驱动数据中的资源数据,包括:
根据预设的文件标识,获取对应所述预设的文件标识的资源数据文件;
从所述资源数据文件中,提取得到所述资源数据。
8.一种驱动数据读取装置,其特征在于,包括:
获取单元,用于获取驱动数据中的资源数据;
转换单元,用于将所述资源数据转换为二进制文件,得到转换后的驱动数据,所述二进制文件包括用于验证所述二进制文件的第一数据段、以及对应所述资源数据的第二数据段;
验证单元,用于当目标设备读取所述转换后的驱动数据时,根据所述第一数据段,验证所述二进制文件;
读取单元,用于若验证通过,读取所述二进制文件的第二数据段,以读取所述驱动数据。
9.一种计算机设备,其特征在于,包括处理器和存储器,所述存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行如权利要求1~7任一项所述的驱动数据读取方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1~7任一项所述的驱动数据读取方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210811028.8A CN115220798A (zh) | 2022-07-11 | 2022-07-11 | 驱动数据读取方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210811028.8A CN115220798A (zh) | 2022-07-11 | 2022-07-11 | 驱动数据读取方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115220798A true CN115220798A (zh) | 2022-10-21 |
Family
ID=83611634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210811028.8A Pending CN115220798A (zh) | 2022-07-11 | 2022-07-11 | 驱动数据读取方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115220798A (zh) |
-
2022
- 2022-07-11 CN CN202210811028.8A patent/CN115220798A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102048222B1 (ko) | 통신 시스템에서 외부 장치를 인식하는 장치 및 방법 | |
CN102637117A (zh) | 触摸屏终端的解锁方法及触摸屏终端 | |
CN108874441B (zh) | 一种板卡配置方法、装置、服务器和存储介质 | |
CN111262737B (zh) | 一种端口配置管理方法、装置、存储介质及终端 | |
CN107862035A (zh) | 会议记录的网络读取方法、装置、智能平板和存储介质 | |
CN112817582A (zh) | 代码处理方法、装置、计算机设备和存储介质 | |
CN105279466A (zh) | 图形码识别方法及装置、图形码生成方法及装置 | |
CN109104481B (zh) | 文件完整性检测方法、文件完整性检测装置及终端设备 | |
CN115220798A (zh) | 驱动数据读取方法、装置、计算机设备和存储介质 | |
KR20200097100A (ko) | 어플리케이션의 무결성을 검증하는 전자 장치 및 어플리케이션의 무결성을 검증하기 위한 방법 | |
CN114201729A (zh) | 一种矩阵运算方式的选择方法、装置、设备以及存储介质 | |
CN111352357B (zh) | 机器人的控制方法、装置及终端设备 | |
CN114579136A (zh) | 代码处理方法、装置、计算机设备和存储介质 | |
CN114564206A (zh) | 一种数据非空校验方法、装置、设备及可读存储介质 | |
CN113890753A (zh) | 数字身份管理方法、装置、***、计算机设备和存储介质 | |
CN109558387B (zh) | 身份证号的处理方法、装置、存储介质及终端 | |
CN111723153A (zh) | 一种数据同步处理方法、装置、设备及存储介质 | |
TWI547859B (zh) | 移除外接設備的方法、電腦系統及非暫態電腦可讀媒介 | |
CN110825572A (zh) | I2c设备地址的探测方法、装置、***及电子设备 | |
CN110928814A (zh) | 串口硬盘传输异常检测方法、装置及电子设备 | |
CN110716908A (zh) | 日志信息写入方法、***、存储介质及移动终端 | |
CN117238066B (zh) | 一种开锁方法、无源电子锁、电子设备和存储介质 | |
CN111475177B (zh) | 一种服务器的程序写入方法、装置及终端设备 | |
CN108268334A (zh) | 电子终端中的数据处理方法及电子终端 | |
CN110443088B (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 |