android 13 指紋整理
術語
縮略語 | 英文全名 | 中文解釋 |
---|---|---|
TEE | Trusted Execution Environment | 可信執行環境,存在於主 CPU 中的一塊安 全運行環境。 |
CA | Client Application | 客戶端應用,通常指運行在 REE 的應用 |
TA | Trusted Application | 可信應用,通常指運行在 TEE 環境的應 用 |
REE | Rich Execution Environment | 富執行環境,普通 Android 運行環境,與 TEE 相對應 |
HAL | Hardware Abstract Layer | 硬件抽象層 |
RPMB | Replay Protected Memory Block | (重放保護內存塊) 的簡稱,是eMMC中的一個具有安全特性的分區 |
HIDL | HAL interface definition language | 是用於指定 HAL 和其用戶之間的接口的一種接口描述語言 (IDL) |
AIDL | The Android Interface Definition Language | 是一種讓用戶抽象出 IPC 的工具。給定一個接口(在.aidl 文件中指定),各種構建系統使用aidl 二進制文件來構建 C++ 或 Java 綁定,以便該接口可以跨進程使用,而不管那裏的運行時或位數如何 |
指紋初始化過程
- 指紋 CA 程序,由 TEE 加載並執行
- [email protected] 加載指紋 HAL 庫,初始化,提供服務
- kernel 加載硬件驅動,如:goodix_fp 一般驅動非常簡單,採用 SPI 或 I2C 連接到指紋模塊,註冊硬件中斷號,和 input 事件,如 wakeup 系統,提供 ioctl 接口,供指紋 HAL 庫控制硬件
- 指紋錄入、識別時的原始數據信息,由 TEE 存儲在 RPMB 加密分區中,對安卓系統不可見,即使有 system 、root 權限。
指紋移值適配
- kernel 驅動添加
- kernel 配置 設備樹文件
- 將 HAL 庫打包到系統中
- 添加廠家 硬件初始化服務到 rc 文件(也可能沒有)
- 添加配置 selinux 規則
- 測試
屏下指紋
Udfps (Under display finger print scanner) 代表屏下指紋掃描儀
以前指紋傳感器採用獨立外置元器件,如:背部指紋、側鍵指紋、HOME 鍵指紋。三星 AMOLED 屏幕做的比較薄,可以採用屏下指紋方案。在屏幕的下面放置一個超聲波或光線的指紋傳感器。
在 systemUI中添加了 UdfpsController.java 的實現,功能就是控制在屏幕上顯示一個指紋的圖標,可以向 [email protected] 發送指紋按下、擡起的動作。