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: Internal 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: Internal 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: Internal 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: Internal 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: Internal 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: Internal 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: Internal 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: Internal 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: Internal 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: Internal 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: Internal 109 access: ReadWrite 110 api_name: "operation_detect_interaction_fails" 111} 112 113# force all enroll operations to fail 114prop { 115 prop_name: "vendor.face.virtual.operation_enroll_fails" 116 type: Boolean 117 scope: Internal 118 access: ReadWrite 119 api_name: "operation_enroll_fails" 120} 121 122# add a latency to authentication operations 123# Note that this latency is the initial authentication latency that occurs before 124# the HAL will send AcquiredInfo::START and AcquiredInfo::FIRST_FRAME_RECEIVED 125prop { 126 prop_name: "vendor.face.virtual.operation_authenticate_latency" 127 type: IntegerList 128 scope: Internal 129 access: ReadWrite 130 api_name: "operation_authenticate_latency" 131} 132 133# add a latency to detectInteraction operations 134prop { 135 prop_name: "vendor.face.virtual.operation_detect_interaction_latency" 136 type: IntegerList 137 scope: Internal 138 access: ReadWrite 139 api_name: "operation_detect_interaction_latency" 140} 141 142# add a latency to enroll operations 143prop { 144 prop_name: "vendor.face.virtual.operation_enroll_latency" 145 type: IntegerList 146 scope: Internal 147 access: ReadWrite 148 api_name: "operation_enroll_latency" 149} 150 151# millisecond duration for authenticate operations 152# (waits for changes to enrollment_hit) 153prop { 154 prop_name: "vendor.face.virtual.operation_authenticate_duration" 155 type: Integer 156 scope: Internal 157 access: ReadWrite 158 api_name: "operation_authenticate_duration" 159} 160 161# insert error for authenticate operations 162prop { 163 prop_name: "vendor.face.virtual.operation_authenticate_error" 164 type: Integer 165 scope: Internal 166 access: ReadWrite 167 api_name: "operation_authenticate_error" 168} 169 170# acquired info during authentication in format of sequence 171prop { 172 prop_name: "vendor.face.virtual.operation_authenticate_acquired" 173 type: String 174 scope: Internal 175 access: ReadWrite 176 api_name: "operation_authenticate_acquired" 177} 178 179# whether support lockout based on the failed auth attempts (default: false) 180prop { 181 prop_name: "persist.vendor.face.virtual.lockout_enable" 182 type: Boolean 183 scope: Internal 184 access: ReadWrite 185 api_name: "lockout_enable" 186} 187 188# whether support timed_lockout based on the failed auth attempts (default: false) 189prop { 190 prop_name: "persist.vendor.face.virtual.lockout_timed_enable" 191 type: Boolean 192 scope: Internal 193 access: ReadWrite 194 api_name: "lockout_timed_enable" 195} 196 197# temperory lockout threshold in number of consecutive failed auth attempts 198prop { 199 prop_name: "persist.vendor.face.virtual.lockout_timed_threshold" 200 type: Integer 201 scope: Internal 202 access: ReadWrite 203 api_name: "lockout_timed_threshold" 204} 205 206# temporary lockout duration in ms (default: 10000ms) 207prop { 208 prop_name: "persist.vendor.face.virtual.lockout_timed_duration" 209 type: Integer 210 scope: Internal 211 access: ReadWrite 212 api_name: "lockout_timed_duration" 213} 214 215# permanently lockout threshold in number of consecutive failed auth attempts 216prop { 217 prop_name: "persist.vendor.face.virtual.lockout_permanent_threshold" 218 type: Integer 219 scope: Internal 220 access: ReadWrite 221 api_name: "lockout_permanent_threshold" 222} 223