2016年2月13日土曜日

Android M Fingerprint APIについて調べてみた

関西モバイル研究会で発表した内容です。

Android M FingerPrint(public)
http://www.slideshare.net/baroqueworksdev/android-m-finger-printpublic

簡易クラス図

アプリからHAL層までの簡易クラス図です。



アプリケーションから使用する場合

  • Context#getSystemService()でFragmentprintManagerにアクセス 
  • コールバックで結果を受け取る

FingerprintManagerクラス

  • アプリケーションから要求を受け取る
  • Android Frameworksのサービス群にある、FingerprintServiceに連携
  • 認証結果をFingerprintServiceから受け取り、アプリケーションに通知する

FingerprintServiceクラス

  • SystemServiceクラスを継承
  • Android Systemとして指紋認証機能を実行
  • Native(JNI->HAL)につなぐ
  • 認証要求時にFingerprintDeamonクラスをとおして、Native層に通知 アプリケーションの突然死の際、unbindする(IBinder.DeathRecipient)

JNI / HAL層

  • HAL層(ライブラリ)をとおして、Kernelに通知、ハードウェアの制御を行う
  • 認証結果をKeystoreServiceに通知