Home | History | Annotate | Download | only in authentication
      1 <html devsite><head>
      2     <title>Fingerprint HAL</title>
      3     <meta name="project_path" value="/_project.yaml"/>
      4     <meta name="book_path" value="/_book.yaml"/>
      5   </head>
      6   <body>
      7   <!--
      8       Copyright 2017 The Android Open Source Project
      9 
     10       Licensed under the Apache License, Version 2.0 (the "License");
     11       you may not use this file except in compliance with the License.
     12       You may obtain a copy of the License at
     13 
     14           http://www.apache.org/licenses/LICENSE-2.0
     15 
     16       Unless required by applicable law or agreed to in writing, software
     17       distributed under the License is distributed on an "AS IS" BASIS,
     18       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     19       See the License for the specific language governing permissions and
     20       limitations under the License.
     21   -->
     22 
     23 <h2 id="overview"></h2>
     24 
     25 <p></p>
     26 
     27 <p>Android  Fingerprint  (HAL) </p>
     28 
     29 <p> Fingerprint HAL <code>fingerprint.h</code> (<code>/hardware/libhardware/include/hardware/fingerprint.h</code>) <a href="#major_functions_in_the_fingerprint_hal"></a> <a href="https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/fingerprint.h"><code>fingerprint.h</code></a> </p>
     30 
     31 <h3 id="fingerprint_matching_flow"></h3>
     32 
     33 <p><a href="index.html"></a></p>
     34 
     35 <p> <code>authenticate</code>  <code>enroll</code> </p>
     36 
     37 <ol>
     38   <li>
     39   </li><li> 1  Fingerprint HAL <code>fingerprintd</code>Fingerprint 
     40 </li></ol>
     41 
     42 <p></p>
     43 
     44 <h2 id="architecture"></h2>
     45 
     46 <p><strong>Fingerprint HAL</strong> </p>
     47 
     48 <ul>
     49   <li><strong>FingerprintManager API</strong>
     50   <ul>
     51     <li> FingerprintManager 
     52     </li><li>FingerprintManager  FingerprintService 
     53   </li></ul>
     54   </li><li><strong>FingerprintService</strong> <code>fingerprintd</code> 
     55   </li><li><strong>fingerprintdFingerprint </strong>FingerprintService  Binder  C/C++ <code>fingerprintd</code>  Fingerprint HAL 
     56   </li><li><strong>Fingerprint HAL </strong> Fingerprint HAL 
     57   </li><li><strong>Keystore API  Keymaster</strong> (TEE) 
     58 </li></ul>
     59 
     60 <p> HAL  TEE </p>
     61 
     62 <img src="../images/fingerprint-data-flow.png" alt="" id="figure1"/>
     63 
     64 <p class="img-caption"><strong> 1. </strong> </p>
     65 
     66 <p>TEE TEE </p>
     67 
     68 <p> Root </p>
     69 
     70 <p><code>fingerprintd</code>  Fingerprint HAL </p>
     71 
     72 <img src="../images/fingerprint-daemon.png" alt=" fingerprintd " id="figure2"/>
     73 <p class="img-caption"><strong> 2. </strong> Fingerprint  (<code>fingerprintd</code>)  Fingerprint </p>
     74 
     75 <h2 id="fingerprint_implementation_guidelines">Fingerprint </h2>
     76 
     77 <p></p>
     78 
     79 <ul>
     80   <li></li><li></li></ul>
     81 
     82 <p></p>
     83 
     84 <ol>
     85   <li> (TEE)  TEE SELinux  (SPI)  TEE  SELinux 
     86   </li><li> TEE </li><li>
     87   </li><li> AES  ID
     88   </li><li> <code>set_active_group()</code>  TEE 
     89 </li></ol>
     90 
     91 <h2 id="major_functions_in_the_fingerprint_hal">Fingerprint HAL </h2>
     92 
     93 <p> <code>/hardware/libhardware/include/hardware/fingerprint.h</code> </p>
     94 
     95 <ul>
     96   <li><strong>enroll</strong>  HAL HAL 
     97   </li><li><strong>pre_enroll</strong>  <code>enroll</code>  HMAC 
     98   </li><li><strong>get_authenticator_id</strong> 
     99   </li><li><strong>cancel</strong> HAL 
    100   </li><li><strong>enumerate</strong> 
    101   </li><li><strong>remove</strong> 
    102   </li><li><strong>set_active_group</strong>  (GID)  HAL 
    103   </li><li><strong>authenticate</strong>  ID 
    104   </li><li><strong>set_notify</strong>  HAL  HAL  HAL 
    105 </li></ul>
    106 
    107 </body></html>