blob: 758232924aad685e4151ec133a40e62e132daecc [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 Pue0263c42024-07-17 12:33:29 -040010 scope: Public
Joe Bolingerde94aa02021-12-09 17:00:32 -080011 access: ReadWrite
Jeff Pu0b8ea042024-12-19 21:11:16 +000012 enum_values: "default|rear|udfps|udfps-us|side"
Joe Bolingerde94aa02021-12-09 17:00:32 -080013 api_name: "type"
14}
15
16# ids of call current enrollments
17prop {
18 prop_name: "persist.vendor.fingerprint.virtual.enrollments"
19 type: IntegerList
Jeff Pue0263c42024-07-17 12:33:29 -040020 scope: Public
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 Pue0263c42024-07-17 12:33:29 -040030 scope: Public
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 Pue0263c42024-07-17 12:33:29 -040045 scope: Public
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 Pue0263c42024-07-17 12:33:29 -040054 scope: Public
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 Pue0263c42024-07-17 12:33:29 -040063 scope: Public
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 Pue0263c42024-07-17 12:33:29 -040072 scope: Public
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 Pue0263c42024-07-17 12:33:29 -040085 scope: Public
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 Pue0263c42024-07-17 12:33:29 -040094 scope: Public
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
Jeff Pue0263c42024-07-17 12:33:29 -0400107 scope: Public
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
Jeff Pue0263c42024-07-17 12:33:29 -0400117 scope: Public
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
Jeff Pue0263c42024-07-17 12:33:29 -0400127 scope: Public
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 Pue0263c42024-07-17 12:33:29 -0400137 scope: Public
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 Pue0263c42024-07-17 12:33:29 -0400146 scope: Public
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
Jeff Pu4facadf2025-01-02 21:24:35 +0000152# <display1>[,display2] ...
153# display format: <x>:<y>:<radius>[:displayString]
Jeff Pu63f33c72022-07-28 16:06:23 -0400154prop {
155 prop_name: "persist.vendor.fingerprint.virtual.sensor_location"
156 type: String
Jeff Pue0263c42024-07-17 12:33:29 -0400157 scope: Public
Jeff Pu63f33c72022-07-28 16:06:23 -0400158 access: ReadWrite
159 api_name: "sensor_location"
160}
Jeff Pu343ca942022-09-14 15:56:30 -0400161
162# acquired info during authentication in format of sequence
163prop {
164 prop_name: "vendor.fingerprint.virtual.operation_authenticate_acquired"
165 type: String
Jeff Pue0263c42024-07-17 12:33:29 -0400166 scope: Public
Jeff Pu343ca942022-09-14 15:56:30 -0400167 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
Jeff Pue0263c42024-07-17 12:33:29 -0400176 scope: Public
Jeff Pu343ca942022-09-14 15:56:30 -0400177 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
Jeff Pue0263c42024-07-17 12:33:29 -0400188 scope: Public
Jeff Pu343ca942022-09-14 15:56:30 -0400189 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
Jeff Pue0263c42024-07-17 12:33:29 -0400197 scope: Public
Jeff Pu343ca942022-09-14 15:56:30 -0400198 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
Jeff Pue0263c42024-07-17 12:33:29 -0400207 scope: Public
Jeff Pu343ca942022-09-14 15:56:30 -0400208 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
Jeff Pue0263c42024-07-17 12:33:29 -0400217 scope: Public
Jeff Pu343ca942022-09-14 15:56:30 -0400218 access: ReadWrite
219 api_name: "max_enrollments"
220}
221
Jeff Pu4facadf2025-01-02 21:24:35 +0000222# whether support navigation gestures (default: false)
Jeff Pu343ca942022-09-14 15:56:30 -0400223prop {
Jeff Pu4facadf2025-01-02 21:24:35 +0000224 prop_name: "persist.vendor.fingerprint.virtual.navigation_gesture"
Jeff Pu343ca942022-09-14 15:56:30 -0400225 type: Boolean
Jeff Pue0263c42024-07-17 12:33:29 -0400226 scope: Public
Jeff Pu343ca942022-09-14 15:56:30 -0400227 access: ReadWrite
Jeff Pu4facadf2025-01-02 21:24:35 +0000228 api_name: "navigation_gesture"
Jeff Pu343ca942022-09-14 15:56:30 -0400229}
230
231# whether support detect interaction (default: false)
232prop {
233 prop_name: "persist.vendor.fingerprint.virtual.detect_interaction"
234 type: Boolean
Jeff Pue0263c42024-07-17 12:33:29 -0400235 scope: Public
Jeff Pu343ca942022-09-14 15:56:30 -0400236 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
Jeff Pue0263c42024-07-17 12:33:29 -0400244 scope: Public
Jeff Pu343ca942022-09-14 15:56:30 -0400245 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
Jeff Pue0263c42024-07-17 12:33:29 -0400253 scope: Public
Jeff Pu343ca942022-09-14 15:56:30 -0400254 access: ReadWrite
255 api_name: "control_illumination"
256}
Jeff Pu52653182022-10-12 16:27:23 -0400257
258# force to be locked out (default: false)
259prop {
260 prop_name: "persist.vendor.fingerprint.virtual.lockout"
261 type: Boolean
Jeff Pue0263c42024-07-17 12:33:29 -0400262 scope: Public
Jeff Pu52653182022-10-12 16:27:23 -0400263 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
Jeff Pue0263c42024-07-17 12:33:29 -0400271 scope: Public
Jeff Pu52653182022-10-12 16:27:23 -0400272 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
Jeff Pue0263c42024-07-17 12:33:29 -0400280 scope: Public
Jeff Pu52653182022-10-12 16:27:23 -0400281 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
Jeff Pue0263c42024-07-17 12:33:29 -0400289 scope: Public
Jeff Pu52653182022-10-12 16:27:23 -0400290 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
Jeff Pue0263c42024-07-17 12:33:29 -0400298 scope: Public
Jeff Pu52653182022-10-12 16:27:23 -0400299 access: ReadWrite
300 api_name: "lockout_permanent_threshold"
301}