blob: 6a6c29728b7e1b1793f959438ef6da698b14c5a2 [file] [log] [blame]
Joe Bolingerde94aa02021-12-09 17:00:32 -08001# 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
Jeff Pu52653182022-10-12 16:27:23 -040010 scope: Internal
Joe Bolingerde94aa02021-12-09 17:00:32 -080011 access: ReadWrite
12 enum_values: "default|rear|udfps|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
Jeff Pu52653182022-10-12 16:27:23 -040020 scope: Internal
Joe Bolingerde94aa02021-12-09 17:00:32 -080021 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
Jeff Pu52653182022-10-12 16:27:23 -040030 scope: Internal
Joe Bolingerde94aa02021-12-09 17:00:32 -080031 access: ReadWrite
32 api_name: "enrollment_hit"
33}
34
Jeff Pu343ca942022-09-14 15:56:30 -040035# 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"
Joe Bolingerde94aa02021-12-09 17:00:32 -080041# this property is reset after enroll completes
42prop {
43 prop_name: "vendor.fingerprint.virtual.next_enrollment"
44 type: String
Jeff Pu52653182022-10-12 16:27:23 -040045 scope: Internal
Joe Bolingerde94aa02021-12-09 17:00:32 -080046 access: ReadWrite
47 api_name: "next_enrollment"
48}
49
50# value for getAuthenticatorId or 0
51prop {
Jeff Pu343ca942022-09-14 15:56:30 -040052 prop_name: "persist.vendor.fingerprint.virtual.authenticator_id"
Joe Bolingerde94aa02021-12-09 17:00:32 -080053 type: Long
Jeff Pu52653182022-10-12 16:27:23 -040054 scope: Internal
Joe Bolingerde94aa02021-12-09 17:00:32 -080055 access: ReadWrite
56 api_name: "authenticator_id"
57}
58
59# value for generateChallenge
60prop {
61 prop_name: "vendor.fingerprint.virtual.challenge"
62 type: Long
Jeff Pu52653182022-10-12 16:27:23 -040063 scope: Internal
Joe Bolingerde94aa02021-12-09 17:00:32 -080064 access: ReadWrite
65 api_name: "challenge"
66}
67
Joe Bolingerde94aa02021-12-09 17:00:32 -080068# force all authenticate operations to fail
69prop {
70 prop_name: "vendor.fingerprint.virtual.operation_authenticate_fails"
71 type: Boolean
Jeff Pu52653182022-10-12 16:27:23 -040072 scope: Internal
Joe Bolingerde94aa02021-12-09 17:00:32 -080073 access: ReadWrite
74 api_name: "operation_authenticate_fails"
75}
76
Jeff Pu343ca942022-09-14 15:56:30 -040077# 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)
Joe Bolingerde94aa02021-12-09 17:00:32 -080082prop {
Jeff Pu343ca942022-09-14 15:56:30 -040083 prop_name: "vendor.fingerprint.virtual.operation_detect_interaction_error"
84 type: Integer
Jeff Pu52653182022-10-12 16:27:23 -040085 scope: Internal
Joe Bolingerde94aa02021-12-09 17:00:32 -080086 access: ReadWrite
Jeff Pu343ca942022-09-14 15:56:30 -040087 api_name: "operation_detect_interaction_error"
Joe Bolingerde94aa02021-12-09 17:00:32 -080088}
89
Jeff Pu343ca942022-09-14 15:56:30 -040090# force all enroll operations to result in error
Joe Bolingerde94aa02021-12-09 17:00:32 -080091prop {
Jeff Pu343ca942022-09-14 15:56:30 -040092 prop_name: "vendor.fingerprint.virtual.operation_enroll_error"
93 type: Integer
Jeff Pu52653182022-10-12 16:27:23 -040094 scope: Internal
Joe Bolingerde94aa02021-12-09 17:00:32 -080095 access: ReadWrite
Jeff Pu343ca942022-09-14 15:56:30 -040096 api_name: "operation_enroll_error"
Joe Bolingerde94aa02021-12-09 17:00:32 -080097}
98
99# add a latency to authentication operations
Jeff Pu52653182022-10-12 16:27:23 -0400100# default to 400ms
101# [x] = x ms
102# [x,y] = randomly between x and y ms
103# others = invalid
Joe Bolingerde94aa02021-12-09 17:00:32 -0800104prop {
105 prop_name: "vendor.fingerprint.virtual.operation_authenticate_latency"
Jeff Pu52653182022-10-12 16:27:23 -0400106 type: IntegerList
107 scope: Internal
Joe Bolingerde94aa02021-12-09 17:00:32 -0800108 access: ReadWrite
109 api_name: "operation_authenticate_latency"
110}
111
112# add a latency to detectInteraction operations
Jeff Pu52653182022-10-12 16:27:23 -0400113# refer to `operation_authenticate_latency` above for usage
Joe Bolingerde94aa02021-12-09 17:00:32 -0800114prop {
115 prop_name: "vendor.fingerprint.virtual.operation_detect_interaction_latency"
Jeff Pu52653182022-10-12 16:27:23 -0400116 type: IntegerList
117 scope: Internal
Joe Bolingerde94aa02021-12-09 17:00:32 -0800118 access: ReadWrite
119 api_name: "operation_detect_interaction_latency"
120}
121
122# add a latency to enroll operations
Jeff Pu52653182022-10-12 16:27:23 -0400123# refer to `operation_authenticate_latency` above for usage
Joe Bolingerde94aa02021-12-09 17:00:32 -0800124prop {
125 prop_name: "vendor.fingerprint.virtual.operation_enroll_latency"
Jeff Pu52653182022-10-12 16:27:23 -0400126 type: IntegerList
127 scope: Internal
Joe Bolingerde94aa02021-12-09 17:00:32 -0800128 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
Jeff Pu52653182022-10-12 16:27:23 -0400137 scope: Internal
Joe Bolingerde94aa02021-12-09 17:00:32 -0800138 access: ReadWrite
139 api_name: "operation_authenticate_duration"
140}
Jeff Pu63f33c72022-07-28 16:06:23 -0400141
Jeff Pu343ca942022-09-14 15:56:30 -0400142# insert error for authenticate operations
143prop {
144 prop_name: "vendor.fingerprint.virtual.operation_authenticate_error"
145 type: Integer
Jeff Pu52653182022-10-12 16:27:23 -0400146 scope: Internal
Jeff Pu343ca942022-09-14 15:56:30 -0400147 access: ReadWrite
148 api_name: "operation_authenticate_error"
149}
150
Jeff Pu63f33c72022-07-28 16:06:23 -0400151# sensor location
152# <x>:<y>:<radius> in pixel
153prop {
154 prop_name: "persist.vendor.fingerprint.virtual.sensor_location"
155 type: String
Jeff Pu52653182022-10-12 16:27:23 -0400156 scope: Internal
Jeff Pu63f33c72022-07-28 16:06:23 -0400157 access: ReadWrite
158 api_name: "sensor_location"
159}
Jeff Pu343ca942022-09-14 15:56:30 -0400160
161# acquired info during authentication in format of sequence
162prop {
163 prop_name: "vendor.fingerprint.virtual.operation_authenticate_acquired"
164 type: String
Jeff Pu52653182022-10-12 16:27:23 -0400165 scope: Internal
Jeff Pu343ca942022-09-14 15:56:30 -0400166 access: ReadWrite
167 api_name: "operation_authenticate_acquired"
168}
169
170# millisecond duration for detect interaction operations
171# (waits for changes to enrollment_hit)
172prop {
173 prop_name: "vendor.fingerprint.virtual.operation_detect_interaction_duration"
174 type: Integer
Jeff Pu52653182022-10-12 16:27:23 -0400175 scope: Internal
Jeff Pu343ca942022-09-14 15:56:30 -0400176 access: ReadWrite
177 api_name: "operation_detect_interaction_duration"
178}
179
180# acquired info during detect interaction operation in format of sequence
181# e.g. 5,6,1 (TOO_SLOW, TOO_FAST, GOOD)
182# onAcquired() callback will be invoked in sequence
183# vendorAcquiredCode = (acquired>1000) ? acquired-1000 : 0
184prop {
185 prop_name: "vendor.fingerprint.virtual.operation_detect_interaction_acquired"
186 type: String
Jeff Pu52653182022-10-12 16:27:23 -0400187 scope: Internal
Jeff Pu343ca942022-09-14 15:56:30 -0400188 access: ReadWrite
189 api_name: "operation_detect_interaction_acquired"
190}
191
192# sensor id (default: 5)
193prop {
194 prop_name: "persist.vendor.fingerprint.virtual.sensor_id"
195 type: Integer
Jeff Pu52653182022-10-12 16:27:23 -0400196 scope: Internal
Jeff Pu343ca942022-09-14 15:56:30 -0400197 access: ReadWrite
198 api_name: "sensor_id"
199}
200
201# sensor strength (default: 2)
202# [0=CONVENECE, 1=WEAK, 2=STRONG]
203prop {
204 prop_name: "persist.vendor.fingerprint.virtual.sensor_strength"
205 type: Integer
Jeff Pu52653182022-10-12 16:27:23 -0400206 scope: Internal
Jeff Pu343ca942022-09-14 15:56:30 -0400207 access: ReadWrite
208 api_name: "sensor_strength"
209}
210
211# max enrollments per user (default: 5)
212#
213prop {
214 prop_name: "persist.vendor.fingerprint.virtual.max_enrollments"
215 type: Integer
Jeff Pu52653182022-10-12 16:27:23 -0400216 scope: Internal
Jeff Pu343ca942022-09-14 15:56:30 -0400217 access: ReadWrite
218 api_name: "max_enrollments"
219}
220
221# whether support navigation guestures (default: false)
222prop {
223 prop_name: "persist.vendor.fingerprint.virtual.navigation_guesture"
224 type: Boolean
Jeff Pu52653182022-10-12 16:27:23 -0400225 scope: Internal
Jeff Pu343ca942022-09-14 15:56:30 -0400226 access: ReadWrite
227 api_name: "navigation_guesture"
228}
229
230# whether support detect interaction (default: false)
231prop {
232 prop_name: "persist.vendor.fingerprint.virtual.detect_interaction"
233 type: Boolean
Jeff Pu52653182022-10-12 16:27:23 -0400234 scope: Internal
Jeff Pu343ca942022-09-14 15:56:30 -0400235 access: ReadWrite
236 api_name: "detect_interaction"
237}
238
239# whether support display touch by hal (default: true)
240prop {
241 prop_name: "persist.vendor.fingerprint.virtual.udfps.display_touch"
242 type: Boolean
Jeff Pu52653182022-10-12 16:27:23 -0400243 scope: Internal
Jeff Pu343ca942022-09-14 15:56:30 -0400244 access: ReadWrite
245 api_name: "display_touch"
246}
247
248# whether support illumination control by hal (default: false)
249prop {
250 prop_name: "persist.vendor.fingerprint.virtual.udfps.control_illumination"
251 type: Boolean
Jeff Pu52653182022-10-12 16:27:23 -0400252 scope: Internal
Jeff Pu343ca942022-09-14 15:56:30 -0400253 access: ReadWrite
254 api_name: "control_illumination"
255}
Jeff Pu52653182022-10-12 16:27:23 -0400256
257# force to be locked out (default: false)
258prop {
259 prop_name: "persist.vendor.fingerprint.virtual.lockout"
260 type: Boolean
261 scope: Internal
262 access: ReadWrite
263 api_name: "lockout"
264}
265
266# whether support lockout based on the failed auth attempts (default: false)
267prop {
268 prop_name: "persist.vendor.fingerprint.virtual.lockout_enable"
269 type: Boolean
270 scope: Internal
271 access: ReadWrite
272 api_name: "lockout_enable"
273}
274
275# temporarily lockout threshold in number of consecutive failed auth attempts (default: 5)
276prop {
277 prop_name: "persist.vendor.fingerprint.virtual.lockout_timed_threshold"
278 type: Integer
279 scope: Internal
280 access: ReadWrite
281 api_name: "lockout_timed_threshold"
282}
283
284# temporary lockout duration in ms (default: 10000ms)
285prop {
286 prop_name: "persist.vendor.fingerprint.virtual.lockout_timed_duration"
287 type: Integer
288 scope: Internal
289 access: ReadWrite
290 api_name: "lockout_timed_duration"
291}
292
293# permanently lockout threshold in number of consecutive failed auth attempts (default: 20)
294prop {
295 prop_name: "persist.vendor.fingerprint.virtual.lockout_permanent_threshold"
296 type: Integer
297 scope: Internal
298 access: ReadWrite
299 api_name: "lockout_permanent_threshold"
300}