指紋識别與應用不算是什麼新鮮事,很早之前各種書籍就介紹指紋識别算法。但是其在Android移動終端上的實作及應用卻是個新鮮玩意,這和iPhone有不少差距啊,還好6.0正式推出指紋架構。
指紋識别與應用的确有不少優點,用過iphone的人都知道指紋識别對于解鎖、應用下載下傳甚至是付款來說,都非常友善。一般來說,其核心有3點:
- 一是指紋晶片的研發與支援(包括晶片采集能力、識别算法等)。
- 二是基于指紋架構的應用生态鍊。
- 三是指紋識别的安全問題。
針對以上三個問題,現在的情況是指紋晶片的研發方面在國内得到不少公司(如彙頂)大力投入,指紋架構Google完成了一些基礎類,其餘的HAL及附加類還需要繼續完善。指紋識别的安全問題催生出TEE、TZ等解決方案。
對于指紋架構,應用層:
- Setting.apk
- App
framework層:
- FingerPrintManager
- BiometricRecognitionManager
- FingerPrintService
- FingerPrintDeamonProxy
- SensorService
native層:
- fingerPrintd
- TEE proxy
- signature
hal層:
- Sensor
- TEE client
kernel:
- sensor driver
- TZ Device
TZ
- FingerPrint TA(command Handler, algorithm, storage, preprocess)
- Sensor API
以上隻是Android指紋識别的架構概要,具體的後邊會分析源碼。