1# face.sysprop 2# module becomes static class (Java) / namespace (C++) for serving API 3module: "android.face.virt.FaceHalProperties" 4owner: Vendor 5 6# type of face sensor 7prop { 8 prop_name: "persist.vendor.face.virtual.type" 9 type: String 10 scope: Public 11 access: ReadWrite 12 enum_values: "IR|RGB" 13 api_name: "type" 14} 15 16# the strength of the sensor 17prop { 18 prop_name: "persist.vendor.face.virtual.strength" 19 type: String 20 scope: Public 21 access: ReadWrite 22 enum_values: "convenience|weak|strong" 23 api_name: "strength" 24} 25 26# ids of current enrollments 27prop { 28 prop_name: "persist.vendor.face.virtual.enrollments" 29 type: IntegerList 30 scope: Public 31 access: ReadWrite 32 api_name: "enrollments" 33} 34 35# List of features 36prop { 37 prop_name: "persist.vendor.face.virtual.features" 38 type: IntegerList 39 scope: Public 40 access: ReadWrite 41 api_name: "features" 42} 43 44# authenticate and detectInteraction will succeed with this 45# enrollment id, when present, otherwise they will error 46prop { 47 prop_name: "vendor.face.virtual.enrollment_hit" 48 type: Integer 49 scope: Public 50 access: ReadWrite 51 api_name: "enrollment_hit" 52} 53 54# the next enrollment in the format: 55# "<id>,<bucket_id>:<delay>:<succeeds>,<bucket_id>..." 56# for example: "0:1,0:100:1,1:200:1" indicating that bucket 0 took 57# 50 milliseconds, bucket 1 took 100 milliseconds, bucket 2 took 200 milliseconds. 58# Note that it is up to the configuration to determine how many buckets are required 59# to complete an enrollment 60prop { 61 prop_name: "vendor.face.virtual.next_enrollment" 62 type: String 63 scope: Public 64 access: ReadWrite 65 api_name: "next_enrollment" 66} 67 68# value for getAuthenticatorId or 0 69prop { 70 prop_name: "vendor.face.virtual.authenticator_id" 71 type: Long 72 scope: Public 73 access: ReadWrite 74 api_name: "authenticator_id" 75} 76 77# value for generateChallenge 78prop { 79 prop_name: "vendor.face.virtual.challenge" 80 type: Long 81 scope: Public 82 access: ReadWrite 83 api_name: "challenge" 84} 85 86# if forced to lock out (Default to false) 87prop { 88 prop_name: "vendor.face.virtual.lockout" 89 type: Boolean 90 scope: Public 91 access: ReadWrite 92 api_name: "lockout" 93} 94 95# force all authenticate operations to fail 96prop { 97 prop_name: "vendor.face.virtual.operation_authenticate_fails" 98 type: Boolean 99 scope: Public 100 access: ReadWrite 101 api_name: "operation_authenticate_fails" 102} 103 104# force all detectInteraction operations to fail 105prop { 106 prop_name: "vendor.face.virtual.operation_detect_interaction_fails" 107 type: Boolean 108 scope: Public 109 access: ReadWrite 110 api_name: "operation_detect_interaction_fails" 111} 112 113# add a latency to authentication operations 114# Note that this latency is the initial authentication latency that occurs before 115# the HAL will send AcquiredInfo::START and AcquiredInfo::FIRST_FRAME_RECEIVED 116prop { 117 prop_name: "vendor.face.virtual.operation_authenticate_latency" 118 type: IntegerList 119 scope: Public 120 access: ReadWrite 121 api_name: "operation_authenticate_latency" 122} 123 124# add a latency to detectInteraction operations 125prop { 126 prop_name: "vendor.face.virtual.operation_detect_interaction_latency" 127 type: IntegerList 128 scope: Public 129 access: ReadWrite 130 api_name: "operation_detect_interaction_latency" 131} 132 133# add a latency to enroll operations 134prop { 135 prop_name: "vendor.face.virtual.operation_enroll_latency" 136 type: IntegerList 137 scope: Public 138 access: ReadWrite 139 api_name: "operation_enroll_latency" 140} 141 142# millisecond duration for authenticate operations 143# (waits for changes to enrollment_hit) 144prop { 145 prop_name: "vendor.face.virtual.operation_authenticate_duration" 146 type: Integer 147 scope: Public 148 access: ReadWrite 149 api_name: "operation_authenticate_duration" 150} 151 152# insert error for authenticate operations 153prop { 154 prop_name: "vendor.face.virtual.operation_authenticate_error" 155 type: Integer 156 scope: Public 157 access: ReadWrite 158 api_name: "operation_authenticate_error" 159} 160 161# acquired info during authentication in format of sequence 162prop { 163 prop_name: "vendor.face.virtual.operation_authenticate_acquired" 164 type: String 165 scope: Public 166 access: ReadWrite 167 api_name: "operation_authenticate_acquired" 168} 169 170# whether support lockout based on the failed auth attempts (default: false) 171prop { 172 prop_name: "persist.vendor.face.virtual.lockout_enable" 173 type: Boolean 174 scope: Public 175 access: ReadWrite 176 api_name: "lockout_enable" 177} 178 179# whether support timed_lockout based on the failed auth attempts (default: false) 180prop { 181 prop_name: "persist.vendor.face.virtual.lockout_timed_enable" 182 type: Boolean 183 scope: Public 184 access: ReadWrite 185 api_name: "lockout_timed_enable" 186} 187 188# temperory lockout threshold in number of consecutive failed auth attempts 189prop { 190 prop_name: "persist.vendor.face.virtual.lockout_timed_threshold" 191 type: Integer 192 scope: Public 193 access: ReadWrite 194 api_name: "lockout_timed_threshold" 195} 196 197# temporary lockout duration in ms (default: 10000ms) 198prop { 199 prop_name: "persist.vendor.face.virtual.lockout_timed_duration" 200 type: Integer 201 scope: Public 202 access: ReadWrite 203 api_name: "lockout_timed_duration" 204} 205 206# permanently lockout threshold in number of consecutive failed auth attempts 207prop { 208 prop_name: "persist.vendor.face.virtual.lockout_permanent_threshold" 209 type: Integer 210 scope: Public 211 access: ReadWrite 212 api_name: "lockout_permanent_threshold" 213} 214