Android 8.0 学习(17)---Android8.0中对指纹的新要求

Android8.0中对指纹的新要求


  • 784

我们先来看一张指纹在Android6.0版本上的架构层次图:


指纹应用层,也就是手机上的指纹设置,这是Android系统层定义的指纹管理入口。

 

1system/core/rootdir/init.rc启动system/core/Fingerprintd指纹的守护进程




fingerprintd的代码实现如下目录:


FingerprintdIFingerprintDaemon远程服务,注册到serivcemanager

 

2SystemServer 会启动指纹的系统服务FingerprintService

framework层中的FingerprintServicefingerprintd服务,调用FingerprintDaemonProxy.cpp里面的方法。

/frameworks/base/services/java/com/android/server/SystemServer.java

mSystemServiceManager.startService(FingerprintService.class);

Android系统在加载SystemServer,启动FingerprintService指纹系统服务。

/frameworks/base/services/core/java/com/android/server/fingerprint/FingerprintService.java

 

3FingerprintSetvice调用fingerprintd的接口,与fingerprint Hal层通信

/frameworks/base/core/java/android/hardware/fingerprint/

fingerprintd的代码FingerprintDaemonProxy.cpp会打开HAL层。



4fingerprint Hal通过指纹厂商的驱动程序访问指纹硬件。

在这一层,如果不在TEE中实现,则是指纹HAL层库,直接访问指纹硬件驱动。

目前Google要求指纹必须在TEE中实现,因此此处的HAL层也可以称之为指纹CA

一般情况下,指纹CA代码会在如下目录,

 

/hardware/libhardware/include/hardware/fingerprint.h

/hardware/libhardware/modules/fingerprint

不同厂商的TEE系统,指纹厂商必须进行适配。

 

5,指纹TA

由于在TEE系统已经接管了指纹硬件SPI接口,因此指纹TA中封装了操作指纹函数接口。

那指纹驱动现在还有啥作用?

\kernel-3.18\drivers\misc\mediatek\fingerprint\

主要是GPIO的设置以及设备服务操作等等。





Android O版本对指纹有啥特别要求?

我们前面也介绍过《Android O新特性之Treble介绍》,在Android O以及以后的版本当中,Android更新了框架,引入了一套叫HIDL的语言来定义FreameworkHAL之间的接口。

 

Android O 没有了fingerprintd
fingerprintService.java 调用HIDL接口,HIDl接口的实现类可以由指纹厂家自行去实现。

BiometricsFingerprint.cpp 文件是IBiometricsFingerprint接口的实现类。

android.hardware.biometrics.fingerprint@2.1-service.rc启动fps_hal 服务。

BiometricsFingerprint.cpp 文件,会在构造函数中去打开HAL。其他没变。

 

文章以指纹分析作为一个例子,主要是阐述Android8.0新版本架构给vendor厂商带来的改变。也就是说以后的VTS测试将是各厂商需要重点关注的。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值