1# fingerprint.sysprop 2# module becomes static class (Java) / namespace (C++) for serving API 3module: "android.fingerprint.virt.FingerprintHalProperties" 4owner: Vendor 5 6# type of fingerprint sensor 7prop { 8 prop_name: "persist.vendor.fingerprint.virtual.type" 9 type: String 10 scope: Public 11 access: ReadWrite 12 enum_values: "default|rear|udfps|udfps-us|side" 13 api_name: "type" 14} 15 16# ids of call current enrollments 17prop { 18 prop_name: "persist.vendor.fingerprint.virtual.enrollments" 19 type: IntegerList 20 scope: Public 21 access: ReadWrite 22 api_name: "enrollments" 23} 24 25# authenticate and detectInteraction will succeed with this 26# enrollment id, when present, otherwise they will error 27prop { 28 prop_name: "vendor.fingerprint.virtual.enrollment_hit" 29 type: Integer 30 scope: Public 31 access: ReadWrite 32 api_name: "enrollment_hit" 33} 34 35# the next enrollment in the format of: 36# "<id>:<delay>,<delay>,...:<result>" 37# <delay> = <duration-[acquiredInfos]> 38# [acquiredInfos] = [acquiredInfo1, acquiredInfo2, ...] 39# (refer to README.md file for acquiredInfo values) 40# e.g. "2:100,20:true", "2:100-[5,1],20:true" 41# this property is reset after enroll completes 42prop { 43 prop_name: "vendor.fingerprint.virtual.next_enrollment" 44 type: String 45 scope: Public 46 access: ReadWrite 47 api_name: "next_enrollment" 48} 49 50# value for getAuthenticatorId or 0 51prop { 52 prop_name: "persist.vendor.fingerprint.virtual.authenticator_id" 53 type: Long 54 scope: Public 55 access: ReadWrite 56 api_name: "authenticator_id" 57} 58 59# value for generateChallenge 60prop { 61 prop_name: "vendor.fingerprint.virtual.challenge" 62 type: Long 63 scope: Public 64 access: ReadWrite 65 api_name: "challenge" 66} 67 68# force all authenticate operations to fail 69prop { 70 prop_name: "vendor.fingerprint.virtual.operation_authenticate_fails" 71 type: Boolean 72 scope: Public 73 access: ReadWrite 74 api_name: "operation_authenticate_fails" 75} 76 77# force all detectInteraction operations to error out 78# error consists of errorCode and vendorErrorCode 79# valid errorCodes are listed in README.md file 80# vendorErrorCode = (error>1000) ? error-1000 : 0 81# e.g. error(1002) --> errorCode(7) and vendorErrorCode(2) 82prop { 83 prop_name: "vendor.fingerprint.virtual.operation_detect_interaction_error" 84 type: Integer 85 scope: Public 86 access: ReadWrite 87 api_name: "operation_detect_interaction_error" 88} 89 90# force all enroll operations to result in error 91prop { 92 prop_name: "vendor.fingerprint.virtual.operation_enroll_error" 93 type: Integer 94 scope: Public 95 access: ReadWrite 96 api_name: "operation_enroll_error" 97} 98 99# add a latency to authentication operations 100# default to 400ms 101# [x] = x ms 102# [x,y] = randomly between x and y ms 103# others = invalid 104prop { 105 prop_name: "vendor.fingerprint.virtual.operation_authenticate_latency" 106 type: IntegerList 107 scope: Public 108 access: ReadWrite 109 api_name: "operation_authenticate_latency" 110} 111 112# add a latency to detectInteraction operations 113# refer to `operation_authenticate_latency` above for usage 114prop { 115 prop_name: "vendor.fingerprint.virtual.operation_detect_interaction_latency" 116 type: IntegerList 117 scope: Public 118 access: ReadWrite 119 api_name: "operation_detect_interaction_latency" 120} 121 122# add a latency to enroll operations 123# refer to `operation_authenticate_latency` above for usage 124prop { 125 prop_name: "vendor.fingerprint.virtual.operation_enroll_latency" 126 type: IntegerList 127 scope: Public 128 access: ReadWrite 129 api_name: "operation_enroll_latency" 130} 131 132# millisecond duration for authenticate operations 133# (waits for changes to enrollment_hit) 134prop { 135 prop_name: "vendor.fingerprint.virtual.operation_authenticate_duration" 136 type: Integer 137 scope: Public 138 access: ReadWrite 139 api_name: "operation_authenticate_duration" 140} 141 142# insert error for authenticate operations 143prop { 144 prop_name: "vendor.fingerprint.virtual.operation_authenticate_error" 145 type: Integer 146 scope: Public 147 access: ReadWrite 148 api_name: "operation_authenticate_error" 149} 150 151# sensor location 152# <display1>[,display2] ... 153# display format: <x>:<y>:<radius>[:displayString] 154prop { 155 prop_name: "persist.vendor.fingerprint.virtual.sensor_location" 156 type: String 157 scope: Public 158 access: ReadWrite 159 api_name: "sensor_location" 160} 161 162# acquired info during authentication in format of sequence 163prop { 164 prop_name: "vendor.fingerprint.virtual.operation_authenticate_acquired" 165 type: String 166 scope: Public 167 access: ReadWrite 168 api_name: "operation_authenticate_acquired" 169} 170 171# millisecond duration for detect interaction operations 172# (waits for changes to enrollment_hit) 173prop { 174 prop_name: "vendor.fingerprint.virtual.operation_detect_interaction_duration" 175 type: Integer 176 scope: Public 177 access: ReadWrite 178 api_name: "operation_detect_interaction_duration" 179} 180 181# acquired info during detect interaction operation in format of sequence 182# e.g. 5,6,1 (TOO_SLOW, TOO_FAST, GOOD) 183# onAcquired() callback will be invoked in sequence 184# vendorAcquiredCode = (acquired>1000) ? acquired-1000 : 0 185prop { 186 prop_name: "vendor.fingerprint.virtual.operation_detect_interaction_acquired" 187 type: String 188 scope: Public 189 access: ReadWrite 190 api_name: "operation_detect_interaction_acquired" 191} 192 193# sensor id (default: 5) 194prop { 195 prop_name: "persist.vendor.fingerprint.virtual.sensor_id" 196 type: Integer 197 scope: Public 198 access: ReadWrite 199 api_name: "sensor_id" 200} 201 202# sensor strength (default: 2) 203# [0=CONVENECE, 1=WEAK, 2=STRONG] 204prop { 205 prop_name: "persist.vendor.fingerprint.virtual.sensor_strength" 206 type: Integer 207 scope: Public 208 access: ReadWrite 209 api_name: "sensor_strength" 210} 211 212# max enrollments per user (default: 5) 213# 214prop { 215 prop_name: "persist.vendor.fingerprint.virtual.max_enrollments" 216 type: Integer 217 scope: Public 218 access: ReadWrite 219 api_name: "max_enrollments" 220} 221 222# whether support navigation gestures (default: false) 223prop { 224 prop_name: "persist.vendor.fingerprint.virtual.navigation_gesture" 225 type: Boolean 226 scope: Public 227 access: ReadWrite 228 api_name: "navigation_gesture" 229} 230 231# whether support detect interaction (default: false) 232prop { 233 prop_name: "persist.vendor.fingerprint.virtual.detect_interaction" 234 type: Boolean 235 scope: Public 236 access: ReadWrite 237 api_name: "detect_interaction" 238} 239 240# whether support display touch by hal (default: true) 241prop { 242 prop_name: "persist.vendor.fingerprint.virtual.udfps.display_touch" 243 type: Boolean 244 scope: Public 245 access: ReadWrite 246 api_name: "display_touch" 247} 248 249# whether support illumination control by hal (default: false) 250prop { 251 prop_name: "persist.vendor.fingerprint.virtual.udfps.control_illumination" 252 type: Boolean 253 scope: Public 254 access: ReadWrite 255 api_name: "control_illumination" 256} 257 258# force to be locked out (default: false) 259prop { 260 prop_name: "persist.vendor.fingerprint.virtual.lockout" 261 type: Boolean 262 scope: Public 263 access: ReadWrite 264 api_name: "lockout" 265} 266 267# whether support lockout based on the failed auth attempts (default: false) 268prop { 269 prop_name: "persist.vendor.fingerprint.virtual.lockout_enable" 270 type: Boolean 271 scope: Public 272 access: ReadWrite 273 api_name: "lockout_enable" 274} 275 276# temporarily lockout threshold in number of consecutive failed auth attempts (default: 5) 277prop { 278 prop_name: "persist.vendor.fingerprint.virtual.lockout_timed_threshold" 279 type: Integer 280 scope: Public 281 access: ReadWrite 282 api_name: "lockout_timed_threshold" 283} 284 285# temporary lockout duration in ms (default: 10000ms) 286prop { 287 prop_name: "persist.vendor.fingerprint.virtual.lockout_timed_duration" 288 type: Integer 289 scope: Public 290 access: ReadWrite 291 api_name: "lockout_timed_duration" 292} 293 294# permanently lockout threshold in number of consecutive failed auth attempts (default: 20) 295prop { 296 prop_name: "persist.vendor.fingerprint.virtual.lockout_permanent_threshold" 297 type: Integer 298 scope: Public 299 access: ReadWrite 300 api_name: "lockout_permanent_threshold" 301} 302