一种适用于国产操作系统上生物特征识别驱动的多平台使用方法与流程

文档序号:33031224发布日期:2023-01-20 20:52阅读:35来源:国知局
一种适用于国产操作系统上生物特征识别驱动的多平台使用方法与流程

1.本发明关于一种计算机国产操作系统使用的生物特征识别驱动的多平台使用方法,具体来说是一种对银河麒麟操作系统上龙芯、arm、申威、x86等各种平台生物特征识别驱动的使用方法。


背景技术:

2.在银河麒麟操作系统上,用户登录和锁屏解锁等都使用生物特征识别功能。生物特征识别功能的优点在于,提供了简单易用且多方面的生物特征录入和识别方案,在指纹、指静脉、虹膜、人脸等方面都有涵盖,给用户提供了多种多样的选择,有效的保障了系统的安全性保密性。
3.然而,正是由于生物特征识别功能所支持的设备多种多样,其设备驱动也就越来越多,在使用时就需要各种相对应的设备驱动,而用户在拿到一款或者多款新设备时,若要快速准确无误的识别其型号并找到对应所使用的平台的生物特征识别设备驱动是比较困难的。因此需要一种可以自动、快速查找到对应当前平台的设备驱动,并由此直接安装的多平台使用方法。


技术实现要素:

4.为解决上述问题,本发明提供一种适用于国产操作系统上生物特征识别驱动的多平台使用方法,在操作系统接入新的生物特征识别设备时,能自动检测设备型号,查找到对应当前平台的设备驱动,并由此直接安装。
5.为达到上述目的,本发明所采取的技术方案为:
6.一种适用于国产操作系统的日志记录的保护方法,包括以下步骤:
7.s01、添加驱动标识:定义生物特征识别驱动的驱动信息结构体bio_driver_info,上述驱动信息结构体bio_driver_info用以存储平台信息、驱动版本、驱动的安装状态以及区分不同设备的驱动;
8.所述驱动信息结构体bio_driver_info的组成包括如下成员:
9.platform:获取并保存生物特征识别驱动对应的平台信息,与驱动库配套;
10.vendor_id:用于识别生物特征识别驱动对应的生物特征识别设备的厂家标识,对应设备厂家,与product_id同时使用;
11.product_id:用于识别生物特征识别驱动对应的生物特征识别设备的产品标识,对应设备自身型号,与vendor_id同时使用;
12.driver_name:对应的驱动名,用于获取并判断该生物特征识别驱动的安装状态;
13.driver_version:对应的驱动版本,用于区分同一设备不同版本的生物特征识别驱动;
14.driver_status:记录生物特征识别驱动的安装状态;
15.driver_addr:驱动库中的安装地址,用于安装对应生物特征识别驱动;
16.上述驱动信息结构体bio_driver_info通过vendor_id和product_id识别不同的生物特征识别设备。这七个成员一同构成生物特征信息结构体bio_driver_info分别存储驱动库平台、id、驱动版本、驱动安装状态、安装地址等信息。
17.s02、初始化:初始化厂家标识vendor_id、产品标识product_id和驱动库,读取platform中的平台信息,获取当前平台信息存入数组local_platform中,将platform与local_platform相比较,二者匹配的当前平台信息可以获取与platform对应的驱动库;
18.s03、获取当前所使用的生物特征识别设备型号:系统调用时,在总线上遍历usb设备,根据厂家标识vendor_id和产品标识product_id判断遍历是否匹配,若匹配,根据厂家标识vendor_id和产品标识product_id获取生物特征识别设备对应的驱动名driver_name和安装地址driver_addr,也就是获取了当前所使用的生物特征识别设备型号,若不匹配,结束系统运行;
19.s04、驱动安装状态判断:根据驱动名driver_name判断生物特征识别驱动的安装状态driver_status是否正确,若是,证明为已安装状态,执行步骤s06;若否,证明为未安装状态,执行步骤s05;
20.s05、提供对应驱动以供安装:通过驱动名driver_name识别出当前所使用的生物特征识别设备型号后,提供对应的驱动版本driver_version供用户选择安装,选项有最新版本或是较早版本;用户选择版本后,通过对应的安装地址driver_addr安装驱动;
21.s06、信息记录:生物特征识别驱动安装完之后,系统会再一次获取生物特征识别驱动的安装状态driver_status,并记录更新的安装状态driver_status和当前的驱动版本driver_version。
22.进一步改进在于:步骤s01中,驱动信息结构体bio_driver_info的各成员中,
23.platform的类型为unsigned char;
24.vendor_id的类型为uint32_t;
25.product_id的类型为uint32_t;
26.driver_name的类型为unsigned char;
27.driver_version的类型为unsigned char;
28.driver_status的类型为uint32_t;
29.driver_addr的类型为unsigned char。
30.进一步改进在于:步骤s02中,platform用于获取并保存生物特征识别驱动的平台信息,在获取当前平台信息存入数组local_platform后,将platform与local_platform相比较,如果二者相匹配,从platform中可以获取到与当前平台信息匹配的生物特征识别驱动,否则将与当前平台信息不匹配/不相符的生物特征识别驱动排除在外。
31.进一步改进在于:步骤s03中,系统调用时,通过libusb的api中的函数usb_find_devices在总线上遍历usb设备。在这里,libusb是一个开源的用c实现的,应用程序与用户的usb设备进行通信的库。它是可移植的,对外使用统一的api,支持windows、macos、linux、android。它是用户模式(user-mode),应用程序与usb设备通信不需要高权限,支持所有版本的usb协议。
32.进一步改进在于:步骤s05中,通过驱动名driver_name识别出当前所使用的生物
特征识别设备的型号后,若发现驱动库有多个版本的同一生物特征识别驱动时,按照驱动版本driver_version排序列出对应的生物特征识别驱动,并在结果界面列出,由用户自行选择安装。
33.进一步改进在于:按照驱动版本driver_version从高到低排序列出对应的生物特征识别驱动。
34.进一步改进在于:platform中的平台信息包括平台版本,上述平台版本包括但不限于龙芯、arm、申威、x86的一种或多种。
35.本发明的有益效果包括:
36.本发明优化了国产操作系统平台下生物特征识别驱动系统,保证用户在拿到新设备或者安装系统后,可以快捷方便的安装驱动并使用生物特征识别设备;在日常使用时,可以获取驱动状态,从而正确的更新安装新版本驱动,获取最新版本的功能。
37.本发明可以快速准确无误的识别其型号并找到对应所使用的平台的生物特征识别设备驱动,比如使用本发明识别完20款生物特征识别驱动仅需要3-4秒,安装使用也非常便捷,按照提示安装匹配好的对应驱动即可,节省了大量的时间成本。
附图说明
38.图1是本发明的流程示意图。
具体实施方式
39.下面结合附图和具体实施方式对本发明进行详细说明。
40.(1)添加驱动标识
41.本发明驱动标识中所涉及的各名词所表示的含义如下:
42.bio_driver_info:定义的生物特征识别驱动的驱动信息结构体,用于存储平台信息、驱动版本、驱动的安装状态以及区分不同设备的驱动,一个bio_driver_info实例对象对应一份生物特征识别驱动。
43.platform:bio_driver_info成员,获取并保存生物特征识别驱动对应的平台信息,与驱动库配套。
44.vendor_id:bio_driver_info成员,用于识别该生物特征识别驱动对应的生物特征识别设备的厂家标识,对应设备厂家,与product_id同时使用。
45.product_id:bio_driver_info成员,用于识别该生物特征识别驱动对应的生物特征识别设备的产品标识,对应设备自身型号,与vendor_id同时使用。
46.driver_name:bio_driver_info成员,对应的驱动名,用于获取并判断该生物特征识别驱动的安装状态。
47.driver_version:bio_driver_info成员,对应的驱动版本,用于区分同一设备不同版本的生物特征识别驱动。
48.driver_status:bio_driver_info成员,记录生物特征识别驱动的安装状态。
49.driver_addr:bio_driver_info成员,驱动库中的安装地址,用于安装对应的生物特征识别驱动。
50.驱动信息结构体bio_driver_info实例:
[0051][0052][0053]
可以看出,platform的类型为unsigned char(无符号字节型);vendor_id的类型为uint32_t;product_id的类型为uint32_t;driver_name的类型为unsigned char(无符号字节型);driver_version的类型为unsigned char(无符号字节型);driver_status的类型为uint32_t;driver_addr的类型为
[0054]
unsigned char(无符号字节型)。
[0055]
上述驱动信息结构体bio_driver_info通过vendor_id和product_id识别不同的生物特征识别设备。这七个组成成员一同构成生物特征信息结构体bio_driver_info分别存储驱动库平台、id、驱动版本、驱动安装状态、安装地址等信息。
[0056]
在构建好驱动信息结构体后,本发明提供了一种适用于国产操作系统上生物特征识别驱动的多平台使用方法,如图1所示,包括以下步骤:
[0057]
(2)、初始化:系统开始后,初始化厂家标识vendor_id、产品标识product_id和驱动库,获取生物特征识别驱动对应的平台信息并存储在platform中,platform中的平台信息主要是平台版本信息,平台版本信息包括但不限于龙芯、arm、申威、x86的一种或多种。
[0058]
获取当前平台信息存入数组local_platform中,将platform与local_platform相比较,二者匹配的当前平台信息可以获取与platform中的平台版本信息对应的驱动库,也就是图1中的“匹配平台信息,获取对应的驱动库”。
[0059]
platform用于获取并保存生物特征识别驱动的平台信息,在获取当前平台信息存入数组local_platform后,将platform与local_platform相比较,如果二者相匹配,从platform中可以获取到与当前平台信息匹配的生物特征识别驱动,否则将与当前平台信息不匹配或不相符的生物特征识别驱动排除在外。
[0060]
(3)获取当前所使用的生物特征识别设备型号:系统调用时,在总线上遍历usb设备,根据厂家标识vendor_id和产品标识product_id判断遍历是否匹配,若匹配,根据厂家标识vendor_id和产品标识product_id获取生物特征识别设备对应的驱动名driver_name和安装地址driver_addr,也就是获取了当前所使用的生物特征识别设备型号,若不匹配,结束系统运行,也就是走到了图1的最下方。
[0061]
在此过程中,通过libusb的api中的函数usb_find_devices在总线上遍历usb设
备。libusb是一个开源的用c实现的,应用程序与用户的usb设备进行通信的库。它是可移植的,对外使用统一的api,支持windows、macos、linux、android。它是用户模式(user-mode),应用程序与usb设备通信不需要高权限,支持所有版本的usb协议。
[0062]
(4)、驱动安装状态判断:根据驱动名driver_name判断生物特征识别驱动的安装状态driver_status是否正确,若是,证明为已安装状态,执行步骤6;若否,证明为未安装状态,执行步骤5。
[0063]
(5)、提供对应驱动以供安装:通过驱动名driver_name识别出当前所使用的生物特征识别设备型号后,提供对应的驱动版本driver_version供用户选择安装,选项有最新版本或是较早版本;用户选择版本后,通过对应的安装地址driver_addr安装驱动。
[0064]
在通过驱动名driver_name识别出当前所使用的生物特征识别设备的型号这以过程中,若发现驱动库有多个版本的同一生物特征识别驱动时,按照驱动版本driver_version排序列出对应的生物特征识别驱动,并在结果界面列出,由用户自行选择安装。具体排序可以是按照驱动版本driver_version从高到低排序列出对应的生物特征识别驱动,也可以是从低到高,或者按照更新时间,或者其他顺序,根据需要选用。
[0065]
(6)、信息记录:生物特征识别驱动安装完之后,系统会再一次获取生物特征识别驱动的安装状态driver_status,并记录更新的安装状态driver_status和当前的驱动版本driver_version。
[0066]
在本发明区分生物特征识别驱动中,通过结构体bio_driver_info区分不同的生物特征识别驱动,每一份生物特征识别驱动都对应各自的vendor_id和product_id。
[0067]
具体来说,本发明将已适配过的所有生物特征识别驱动都放入了驱动库中,在初始化时读入所有生物特征识别驱动的信息,按platform中的平台版本信息区分,每一份生物特征识别驱动都会构造对应的驱动信息结构体bio_driver_info。获取当前平台信息存入数组local_platform后,与bio_driver_info中的platform做版本匹配,与平台版本信息不相符的生物特征识别驱动就可以排除在外。例如指纹采集仪frt610设备驱动保存在驱动库中,有龙芯、arm、申威3个驱动版本(还可以加上x86驱动版本),初始化之后,各自对应的bio_driver_info中的platform分别为loongarch64、arm64和sw64,如果获取到的当前平台信息local_platform中为龙芯,即可排除arm和申威这两个版本。
[0068]
本发明中,结构体bio_driver_info的组成成员包括vendor_id和product_id。其中,vendor_id为厂家标识,product_id为产品标识,这两者都是由厂家标记的。如果仅使用单一id可能会出现多个设备相同的问题,如同一厂商的不同型号设备的vendor_id是相同的,而同时使用vendor_id和product_id即可确保唯一性。例如,某家设备厂商的厂家标识vendor_id为0x0860,而该厂家有两款产品,其产品标识product_id分别为0x0001和0x1b55。通过在总线上遍历usb设备,获取到这两个id,得以准确判断该设备型号与驱动是否匹配。
[0069]
当找到vendor_id和product_id完全相同的设备后,即可以得到对应结构体中的driver_name驱动名,使用driver_name驱动名可以获取当前系统中该设备的驱动安装状态。如果驱动状态为已安装,则记录driver_status为bio_ok并保存显示当前版本号;如果驱动状态为未安装bio_notready或其他,则使用安装地址driver_addr安装当前驱动库中的驱动,安装完成之后再次获取驱动状态,并将其记录到driver_status中。完成之后,再继
续遍历下一个usb设备,直至全部遍历完成,这个过程会在结果界面显示所有生物特征识别设备驱动的型号和安装情况。有时,已经安装过的生物特征识别驱动需要重新安装或者更新到最新版本的驱动,用户可以在结果界面选取对应的设备,手动进行更新驱动,驱动安装完成后也会更新驱动状态driver_status并刷新结果界面。
[0070]
如果当前驱动库中没有找到需要的生物特征识别驱动,可以通过网络在线更新的方式,获取最新的驱动库,并再次匹配。如此,生物特征识别驱动开发者只需要把最新适配的驱动导入到驱动库中,并写明平台信息platform、vendor_id和product_id等内容,就可以一次性给所有需要的用户提供更新;而用户也只需要更新驱动库,即可简单快捷的获取到所有可以适配的生物特征识别设备驱动,也无需再去进行查询设备厂商、设备型号、寻找驱动等费时又容易出错的操作。
[0071]
在更新之后,驱动信息结构体bio_driver_info会重新创建并初始化,遍历之后如果驱动状态driver_status为未安装bio_notready,重新匹配后会按照driver_version列出所有版本的生物特征识别设备驱动,由用户自己选择安装,因为新版本的驱动往往会提供更多的新功能,同时也会需要较多的依赖;而部分版本较早的系统可能只需要满足用户需求的驱动即可,从而避免安装大量更新的依赖。
[0072]
借助本发明,本发明优化了国产操作系统平台下生物特征识别驱动系统,保证系统在安装新生物特征识别设备时,准确快捷方便的安装、更新设备驱动,比如使用本发明识别完20款生物特征识别驱动仅需要3-4秒,安装使用也非常便捷,按照提示安装匹配好的对应驱动即可,节省了大量的时间成本。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1