Add virtual fingerprint HAL APEX
This moves the virtual fingerprint HAL into a vendor apex: com.android.hardware.biometrics.fingerprint.virtual. Bug: 279674662 Test: follow README.md to test the virtual FP HAL (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:7af7ad0c8770e13c3b77abe81c2ba48a2927b531) Merged-In: I4664a3805b9444c87b0ac31a84ec10fb47d9580e Change-Id: I4664a3805b9444c87b0ac31a84ec10fb47d9580e
This commit is contained in:
parent
c01432b259
commit
580e81b0be
9 changed files with 185 additions and 2 deletions
|
@ -11,8 +11,8 @@ cc_binary {
|
|||
name: "android.hardware.biometrics.fingerprint-service.example",
|
||||
vendor: true,
|
||||
relative_install_path: "hw",
|
||||
init_rc: ["fingerprint-example.rc"],
|
||||
vintf_fragments: ["fingerprint-example.xml"],
|
||||
init_rc: [":fingerprint-example.rc"],
|
||||
vintf_fragments: [":fingerprint-example.xml"],
|
||||
local_include_dirs: ["include"],
|
||||
srcs: [
|
||||
"FakeLockoutTracker.cpp",
|
||||
|
@ -142,3 +142,13 @@ sysprop_library {
|
|||
property_owner: "Vendor",
|
||||
vendor: true,
|
||||
}
|
||||
|
||||
filegroup {
|
||||
name: "fingerprint-example.rc",
|
||||
srcs: ["fingerprint-example.rc"],
|
||||
}
|
||||
|
||||
filegroup {
|
||||
name: "fingerprint-example.xml",
|
||||
srcs: ["fingerprint-example.xml"],
|
||||
}
|
||||
|
|
|
@ -14,6 +14,12 @@ following to your device's `.mk` file to include it:
|
|||
PRODUCT_PACKAGES_DEBUG += android.hardware.biometrics.fingerprint-service.example
|
||||
```
|
||||
|
||||
or add the following to include it as an apex:
|
||||
|
||||
```
|
||||
PRODUCT_PACKAGES_DEBUG += com.android.hardware.biometrics.fingerprint.virtual
|
||||
```
|
||||
|
||||
The virtual HAL will be ignored if a real HAL is also installed on the target
|
||||
device. Set the `biometric_virtual_enabled` settings and reboot the device to
|
||||
switch to the virtual HAL. Unset it and reboot again to switch back.
|
||||
|
|
73
biometrics/fingerprint/aidl/default/apex/Android.bp
Normal file
73
biometrics/fingerprint/aidl/default/apex/Android.bp
Normal file
|
@ -0,0 +1,73 @@
|
|||
// Copyright (C) 2023 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package {
|
||||
default_applicable_licenses: ["Android-Apache-2.0"],
|
||||
}
|
||||
|
||||
apex_key {
|
||||
name: "com.android.hardware.biometrics.fingerprint.virtual.key",
|
||||
public_key: "com.android.hardware.biometrics.fingerprint.virtual.avbpubkey",
|
||||
private_key: "com.android.hardware.biometrics.fingerprint.virtual.pem",
|
||||
}
|
||||
|
||||
android_app_certificate {
|
||||
name: "com.android.hardware.biometrics.fingerprint.virtual.certificate",
|
||||
certificate: "com.android.hardware.biometrics.fingerprint.virtual",
|
||||
}
|
||||
|
||||
apex {
|
||||
name: "com.android.hardware.biometrics.fingerprint.virtual",
|
||||
manifest: "manifest.json",
|
||||
file_contexts: "file_contexts",
|
||||
key: "com.android.hardware.biometrics.fingerprint.virtual.key",
|
||||
certificate: ":com.android.hardware.biometrics.fingerprint.virtual.certificate",
|
||||
updatable: false,
|
||||
use_vndk_as_stable: true,
|
||||
vendor: true,
|
||||
|
||||
binaries: [
|
||||
"android.hardware.biometrics.fingerprint-service.example",
|
||||
],
|
||||
prebuilts: [
|
||||
// init_rc
|
||||
"fingerprint-example-apex.rc",
|
||||
// vintf_fragment
|
||||
"fingerprint-example-apex.xml",
|
||||
],
|
||||
|
||||
overrides: [
|
||||
"android.hardware.biometrics.fingerprint-service.example",
|
||||
],
|
||||
}
|
||||
|
||||
genrule {
|
||||
name: "gen-fingerprint-example-apex.rc",
|
||||
srcs: [":fingerprint-example.rc"],
|
||||
out: ["fingerprint-example-apex.rc"],
|
||||
cmd: "sed -e 's@/vendor/bin/@/apex/com.android.hardware.biometrics.fingerprint.virtual/bin/@' $(in) > $(out)",
|
||||
}
|
||||
|
||||
prebuilt_etc {
|
||||
name: "fingerprint-example-apex.rc",
|
||||
src: ":gen-fingerprint-example-apex.rc",
|
||||
installable: false,
|
||||
}
|
||||
|
||||
prebuilt_etc {
|
||||
name: "fingerprint-example-apex.xml",
|
||||
src: ":fingerprint-example.xml",
|
||||
sub_dir: "vintf",
|
||||
installable: false,
|
||||
}
|
Binary file not shown.
|
@ -0,0 +1,52 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
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
|
||||
qHAY4JU3ldxQzDUZCz5VCz372pgXkQ==
|
||||
-----END PRIVATE KEY-----
|
Binary file not shown.
|
@ -0,0 +1,35 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIGCzCCA/MCFFuIt0T1K9U92QfzZI3RpCyRp1ruMA0GCSqGSIb3DQEBCwUAMIHA
|
||||
MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91
|
||||
bnRhaW4gVmlldzEQMA4GA1UECgwHQW5kcm9pZDEQMA4GA1UECwwHQW5kcm9pZDEi
|
||||
MCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTE8MDoGA1UEAwwzY29t
|
||||
LmFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludC52aXJ0dWFs
|
||||
MCAXDTIzMDUxMDA3MDkwMloYDzQ3NjEwNDA1MDcwOTAyWjCBwDELMAkGA1UEBhMC
|
||||
VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcx
|
||||
EDAOBgNVBAoMB0FuZHJvaWQxEDAOBgNVBAsMB0FuZHJvaWQxIjAgBgkqhkiG9w0B
|
||||
CQEWE2FuZHJvaWRAYW5kcm9pZC5jb20xPDA6BgNVBAMMM2NvbS5hbmRyb2lkLmhh
|
||||
cmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnQudmlydHVhbDCCAiIwDQYJKoZI
|
||||
hvcNAQEBBQADggIPADCCAgoCggIBAMKXBcAw2Cs68KUMt5Hw2LVwkgEDiwqaXkG9
|
||||
V0SBK9y/q+6JCoxs9+4NsDPAEzHB+UHpqJ2i07VW1YV9F+2V93KCy/0fUjXIWmu8
|
||||
P0ixb+t8wlHZM2zYXQe9PELUZ/ZlYjAxkVKJjDmsCM8yzpRk+g3KKswlYwzyBoat
|
||||
qukrtvAaNKlRGJmjeStEo2o4qgQQUq96NAvSt3d6PsrNdFbXxqX61JT1dT8Kgxhk
|
||||
+oSAkV2/C2knQp/8ME1oJrK/D+glynXVqVkvYYplxp+GCIZUs/DOJcHyb+ZrNLJP
|
||||
f2zr4yDoB2pnV3G9VcjbdznWc661Wg+B2yZEvLVbOMiqaMRlpHzNczghowCy3xoq
|
||||
42IUmp3HLak0DUmrrUZDnJAAT/KEZxh/PwLeAcmUrQCbUiG5lN/njuZ5LjJ8gdcg
|
||||
v0RDPSIIszamrf2l+xlaI34iXS7xHf3OLTbgst2L7LhW5qmLsB1SZzAYGIUYnRWZ
|
||||
aqzaFIAWt28S0yhpOt+qS7b1l+fvMb09jiKfxzkYQh2bB0HrpbTl2x390q2GW6yE
|
||||
jmraC+nTiAVDCUnDjOVji7nXDloSmK+MDD/DaDQ47PoYE3hBqc0fsRr2aIlvMOvb
|
||||
m+4VhO85gCuJAK02XuixLPo6ZqBAEFNwQ4NDcuOHuODaaJ/amTxQBXRpNXUSnhXy
|
||||
ejpwspHrAgMBAAEwDQYJKoZIhvcNAQELBQADggIBAGl3KGKMAWpefnRSQWs0n8kD
|
||||
eKYbzbe6mG0O5lqx5FKpJZpIki4RH1Yh5ZDR/NIeF2RNhlb/dqo99TKbCEGAoMB9
|
||||
R7EXDhyMcEXr5ATCA6iurhMKgkcLfOz6HkTI6k3wlPNuvx4iZGHD2KEvZiZGmae1
|
||||
dnK9iVtNs6ccyC0+V3y3Yt1fvjzp9SWcPpBXiO5QNf0sHxtzc32xXsBH0aLwLjDZ
|
||||
BCytwfEvq2S25v0r9m0fKquDBoFnk68cqClpNQZ9Ky0k8fGgOiQ5/jnVmgPmTheG
|
||||
mBcdPeUrhxGNs1vax/i/ysT4AVmDzIVW0uXVouhVeMQzykuy1+Ywa/Rn0jLxeNF2
|
||||
X3ooOE+EF8u9Pxf8ILRnfqok3VRuYLH6neNknTSKTx1aQAh9XbBpTUa/eCq3LDCP
|
||||
L6hSXYWjk9e5txbn0cNw9WuKMUg+Z9Qms3aVRFcvBxZQySEvf8FhgSrQbqbCbzhf
|
||||
dI0/ouW5w9iHUOh/FDvfETeZCeeTS+EOvGOqknzO8Y7PiChlgFsoMvC1GpHZ1ADy
|
||||
3xKSh15G92JCiv89CK2VvM8QDFh8ErQmSLjhMl700CLYis+AAZhCKOhAo573zj2u
|
||||
dZf29S+o3SEBhsl5snVGJW13Bu7BjxQtscCwKOv0g1cCkrqgcm2bMuNhpTK7rhMP
|
||||
i4hGSvbdGC27BtXbsiVX
|
||||
-----END CERTIFICATE-----
|
3
biometrics/fingerprint/aidl/default/apex/file_contexts
Normal file
3
biometrics/fingerprint/aidl/default/apex/file_contexts
Normal file
|
@ -0,0 +1,3 @@
|
|||
(/.*)? u:object_r:vendor_file:s0
|
||||
/etc(/.*)? u:object_r:vendor_configs_file:s0
|
||||
/bin/hw/android\.hardware\.biometrics\.fingerprint-service\.example u:object_r:hal_fingerprint_default_exec:s0
|
4
biometrics/fingerprint/aidl/default/apex/manifest.json
Normal file
4
biometrics/fingerprint/aidl/default/apex/manifest.json
Normal file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"name": "com.android.hardware.biometrics.fingerprint.virtual",
|
||||
"version": 1
|
||||
}
|
Loading…
Reference in a new issue