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