xref: /aosp_15_r20/hardware/interfaces/biometrics/fingerprint/aidl/default/fingerprint.sysprop (revision 4d7e907c777eeecc4c5bd7cf640a754fac206ff7)
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