1.一种指纹芯片初始化方法,应用于终端设备中,其特征在于,包括:从多个厂家的硬件抽象层HAL SO库中,确定与终端设备上的指纹芯片匹配的目标厂家的HAL SO库;其中,所述多个厂家的HAL SO库预先存储在所述终端设备中;
通过所述目标厂家的HAL SO库触发运行所述指纹芯片的驱动程序;所述驱动程序用于为所述指纹芯片申请资源,完成所述指纹芯片的初始化;
所述从多个厂家的HAL SO库中,确定与终端设备上的指纹芯片匹配的目标厂家的HAL SO库,包括:加载第i个厂家的HAL SO库,调用所述第i个厂家的HAL SO库中的初始化函数,启动所述第i个厂家的指纹芯片对应的指纹可信应用TA,判断是否可以通过所述指纹可信应用TA获取到所述第i个厂家的指纹芯片的标识,若确定不能获取到所述第i个厂家的指纹芯片的标识,则确定i=i+1,重复上述步骤,若能通过所述指纹可信应用TA获取到所述第i个厂家的指纹芯片的标识,则确定所述第i个厂家的HAL SO库为所述目标厂家的HAL SO库;其中,1≤i≤N,且i为整数,N为厂家的总数量;
在所述加载第i个厂家的HAL SO库之前,所述方法还包括:
启动指纹服务进程;
获取fingerprintd的binder对象;
调用openHal函数;
相应地,所述通过所述目标厂家的HAL SO库触发运行所述指纹芯片的驱动程序之后,所述方法还包括:在所述目标厂家的HAL SO库中注册回调函数;所述回调函数用于将指纹操作的结果返回给所述指纹服务进程,所述指纹操作的结果包括以下至少一种:指纹模板录入的剩余次数、指纹模板的删除结果、指纹识别的匹配结果和录入的指纹模板的个数。
2.根据权利要求1所述的方法,其特征在于,所述确定不能获取到所述第i个厂家的指纹芯片的标识之后,所述方法还包括:关闭所述第i个厂家的指纹芯片对应的指纹可信应用TA。
3.根据权利要求1所述的方法,其特征在于,所述判断是否可以通过所述指纹可信应用TA获取到所述第i个厂家的指纹芯片的标识,包括:若所述指纹可信应用TA可以读取到所述第i个厂家的指纹芯片的标识,则确定能通过所述指纹可信应用TA获取到所述第i个厂家的指纹芯片的标识;
若所述指纹可信应用TA不能读取到所述第i个厂家的指纹芯片的标识,则确定不能通过所述指纹可信应用TA获取到所述第i个厂家的指纹芯片的标识。
4.一种指纹芯片初始化装置,其特征在于,包括:
确定模块,用于从多个厂家的硬件抽象层HAL SO库中,确定与所述装置上的指纹芯片匹配的目标厂家的HAL SO库;其中,所述多个厂家的HAL SO库预先存储在所述装置中;
运行模块,用于通过所述目标厂家的HAL SO库触发运行所述指纹芯片的驱动程序;所述驱动程序用于为所述指纹芯片申请资源,完成所述指纹芯片的初始化;
所述确定模块具体用于:
加载第i个厂家的HAL SO库,调用所述第i个厂家的HAL SO库中的初始化函数,启动所述第i个厂家的指纹芯片对应的指纹可信应用TA,判断是否可以通过所述指纹可信应用TA获取到所述第i个厂家的指纹芯片的标识,若确定不能获取到所述第i个厂家的指纹芯片的标识,则确定i=i+1,重复上述步骤,若能通过所述指纹可信应用TA获取到所述第i个厂家的指纹芯片的标识,则确定所述第i个厂家的HAL SO库为所述目标厂家的HAL SO库;其中,1≤i≤N,且i为整数,N为厂家的总数量;
所述装置还包括:
启动模块,用于启动指纹服务进程;
获取模块,用于获取fingerprintd的binder对象;
调用模块,用于调用openHal函数;
注册模块,用于在所述目标厂家的HAL SO库中注册回调函数;所述回调函数用于将指纹操作的结果返回给所述指纹服务进程,所述指纹操作的结果包括以下至少一种:指纹模板录入的剩余次数、指纹模板的删除结果、指纹识别的匹配结果和录入的指纹模板的个数。
5.根据权利要求4所述的装置,其特征在于,所述装置还包括:
关闭模块,用于关闭所述第i个厂家的指纹芯片对应的指纹可信应用TA。
6.根据权利要求4所述的装置,其特征在于,所述确定模块判断是否可以通过所述指纹可信应用TA获取到所述第i个厂家的指纹芯片的标识,包括:若所述指纹可信应用TA可以读取到所述第i个厂家的指纹芯片的标识,则确定能通过所述指纹可信应用TA获取到所述第i个厂家的指纹芯片的标识;
若所述指纹可信应用TA不能读取到所述第i个厂家的指纹芯片的标识,则确定不能通过所述指纹可信应用TA获取到所述第i个厂家的指纹芯片的标识。