Android8.0中对指纹的新要求

  • 784

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

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

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

fingerprintd的代码实现如下目录:

Fingerprintd把IFingerprintDaemon远程服务,注册到serivcemanager。

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

framework层中的FingerprintService调fingerprintd服务,调用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

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

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

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

4,fingerprint 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的语言来定义Freamework与HAL之间的接口。

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测试将是各厂商需要重点关注的。

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

  1. Android8.0 学习 (17)Android国际化(多语言)实现,支持8.0

    Android国际化(多语言)实现,支持8.0 前言 最近因为项目中使用了国际化,所以正好研究了下实现方法: 首先说下项目需求: 可以随着系统切换语言而切换语言,不支持的语言显示默认 用户可以选择语言 ...

  2. OpenCV中文文档4.0.0学习笔记(更新中……)

    系列文章目录 文章目录 系列文章目录 前言 一.简介 1.OpenCV-Python教程简介 2.OpenCV-Python 3.OpenCV-Python教程 4.OpenCV 需要你!!! 二.G ...

  3. Android每周一个学习计划——RxJava2 0的学习使用

    序言:蜗壳已经退役一年多了,但是还是抵不住蜗壳在NBA界的影响力,最近NBA流行向"蜗壳挑战",事情起源于蜗壳给IT和北境之王设定了新赛季的挑战,然后众多球星也纷纷向蜗壳讨要挑战. ...

  4. android 8.0后台定位,Android8.0适配前台定位服务service的示例代码

    从Android 8.0开始系统为实现降低功耗,对后台应用获取用户位置信息频率进行了限制,每小时只允许更新几次位置信息,详细信息请参考官方说明.按照官方指引,如果要提高位置更新频率,需要后台应用提供一 ...

  5. 一加连续点Android版本号,一加5T Android8.0全国首刷/附加教程和ROM

    一加5T作为全面屏大军的一员,总算在11月和我们见面了,果核也在第一时间下单买到了一加5T,到手了第一件事就是刷机. 其实果核最早就有一台一加3,在出手没多久就看到了一加3刷安卓8.0的消息,当时那个 ...

  6. Android 8 禁止 谷歌,谷歌Android8.0增降级保护功能:升级后不能降级

    [PConline资讯]一直以来,每当新版iOS系统发布,就意味着苹果即将关闭上一个iOS版本的验证通道,而升级到新版iOS系统的用户将无法降回原来的系统.现在, 谷歌Android系统似乎也要学苹果 ...

  7. Android源码学习以及在工作中的应用01-TextView

    有人说种下一棵树最好的时间是十年前,其次是现在.我已经浪费了整整十年,所以从现在起,脚踏实地,静下心来学习,一切从头开始.期望十年后的自己,无怨无悔. 我们在自动化测试的工作中,有一个这样的场景需求. ...

  8. TensorFlow2.0学习笔记2-tf2.0两种方式搭建神经网络

    目录 一,TensorFlow2.0搭建神经网络八股 1)import  [引入相关模块] 2)train,test  [告知喂入网络的训练集测试集以及相应的标签] 3)model=tf.keras. ...

  9. 【深度学习】在PyTorch中使用 LSTM 进行新冠病例预测

    时间序列数据,顾名思义是一种随时间变化的数据.例如,24 小时时间段内的温度,一个月内各种产品的价格,特定公司一年内的股票价格.长短期记忆网络(LSTM)等高级深度学习模型能够捕捉时间序列数据中的模式 ...

最新文章

  1. vmware的三种网络模式讲解
  2. canvas手机端绘图解决方案
  3. C++ STL 之 unordered_set 使用(包括unordersd_map)
  4. VTK:等参细胞演示用法实战
  5. matlab如何读取csv,Matlab:如何读取CSV文件以及如何读取带有字符串数据项的CSV文件 | 学步园...
  6. antd-vue中的form表单label标签for导致点击文字触发输入框解决方案
  7. linux修改ip配置文件路径,Centos7系统如何修改IP地址
  8. JAVA面向对象OOP多态→抽象类abstract、接口interface实现implement、final不变修饰符、样例代码
  9. php 编译安装gd 失败,编译安装php5 解决编译安装的php加载不了gd
  10. 【数学建模】MATLAB应用实战系列(138)-2021年MathorCup高校数学建模挑战赛A题思路解析(附代码)
  11. 高德地图报Native method not found: com.autonavi.amap.mapcore.MapCore.nativeNewInstance:
  12. 视频教程-【深入理解计算机网络】入门计算机网络基础视频课程(下)-计算机网络
  13. lpush rpush 区别_lpush(lpush和rpush)
  14. 3Dmax与BIM模型的区别
  15. 京东360buy 手机项目的“加入购物车”动画效果研究
  16. 如何在Python中使用Tushare进行股票日线行情获取并存储至数据库
  17. Live mail 配置Gmail邮件收发
  18. 基于注入式木马病毒(浏览器绑架)实现及防御方法的研究
  19. JavaScript两大支柱-PART2:函数式编程
  20. 图解各种悬挂系统优缺点

热门文章

  1. (11)DJBX33A APR哈希默认算法
  2. Nandflash 驱动深度分析(基于S3C2410)
  3. 用anaconda保证64位和32位的python共存
  4. 英伟达显卡不同架构_英伟达GeForce RTX 3070 Ti与RTX 3070显卡规格曝光
  5. 《RabbitMQ 实战指南》第一章 RabbitMQ 简介
  6. [BZOJ1635][Usaco2007 Jan]Tallest Cow 最高的牛
  7. Spring+SpringMVC+MyBatis深入学习及搭建(九)——MyBatis和Spring整合
  8. BP神经网络(手写数字识别)
  9. 12.引入依赖项目的时候,如果找不到jar
  10. php实现一个简单的购物网站