From 7ef0ff78eb13b8d98f3a58ebab2d281d02e795b1 Mon Sep 17 00:00:00 2001 From: Albert Tang Date: Tue, 24 May 2022 10:20:11 -0500 Subject: [PATCH] dre: Switch to generic fingerprint HAL The fingerprint HAL in hardware/oneplus is mainly for devices with FOD, which the Nord N200 does not support. ID mismatches will make the generic HAL fail, so hack the goodix blob to fix it. Change-Id: I0724569ed1105d8c63075286987ad56ea0ecd078 --- device.mk | 4 ++-- device_framework_matrix.xml | 2 +- extract-files.sh | 3 +++ proprietary-files.txt | 2 +- sepolicy/vendor/file_contexts | 1 - sepolicy/vendor/hal_fingerprint_device.te | 2 ++ sepolicy/vendor/hwservice_contexts | 5 ++++- 7 files changed, 13 insertions(+), 6 deletions(-) diff --git a/device.mk b/device.mk index d6e9dcd..51efc90 100644 --- a/device.mk +++ b/device.mk @@ -315,8 +315,8 @@ PRODUCT_PACKAGES += \ # Fingerprint PRODUCT_PACKAGES += \ - android.hardware.biometrics.fingerprint@2.3-service.oneplus \ - vendor.goodix.hardware.biometrics.fingerprint@2.1.vendor + android.hardware.biometrics.fingerprint@2.1-service \ + vendor.oneplus.fingerprint.extension@1.0.vendor # Gatekeeper PRODUCT_PACKAGES += \ diff --git a/device_framework_matrix.xml b/device_framework_matrix.xml index 0acada6..f611469 100644 --- a/device_framework_matrix.xml +++ b/device_framework_matrix.xml @@ -15,7 +15,7 @@ - vendor.goodix.hardware.biometrics.fingerprint + vendor.goodix3626.hardware.biometrics.fingerprint 2.1 IGoodixFingerprintDaemon diff --git a/extract-files.sh b/extract-files.sh index 30ac579..1b172ba 100755 --- a/extract-files.sh +++ b/extract-files.sh @@ -58,6 +58,9 @@ function blob_fixup() { system_ext/lib64/libwfdnative.so) sed -i "s/android.hidl.base@1.0.so/libhidlbase.so\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/" "${2}" ;; + vendor/lib64/hw/fingerprint.qcom.so) + sed -i "s/goodix\.3626/fingerprint/g" "${2}" + ;; vendor/lib64/vendor.qti.hardware.camera.postproc@1.0-service-impl.so) "${SIGSCAN}" -p "3F 0A 00 94" -P "1F 20 03 D5" -f "${2}" ;; diff --git a/proprietary-files.txt b/proprietary-files.txt index cf93b83..3372281 100644 --- a/proprietary-files.txt +++ b/proprietary-files.txt @@ -666,7 +666,7 @@ vendor/bin/feature_enabler_client vendor/etc/init/feature_enabler_client.rc # Fingerprint -vendor/lib64/hw/goodix.3626.holi.so +vendor/lib64/hw/goodix.3626.holi.so:vendor/lib64/hw/fingerprint.qcom.so vendor/lib64/fp_hal_extension.so vendor/lib64/libgf_ca.so vendor/lib64/libgf_hal.so diff --git a/sepolicy/vendor/file_contexts b/sepolicy/vendor/file_contexts index 0043d1f..3ddef3e 100644 --- a/sepolicy/vendor/file_contexts +++ b/sepolicy/vendor/file_contexts @@ -32,7 +32,6 @@ /dev/skin_thermal u:object_r:therm_device:s0 # HALs -/(vendor|system/vendor)/bin/hw/android\.hardware\.biometrics\.fingerprint@2\.3-service\.oneplus u:object_r:hal_fingerprint_default_exec:s0 /(vendor|system/vendor)/bin/hw/vendor\.lineage\.livedisplay@2\.1-service\.oneplus u:object_r:hal_lineage_livedisplay_qti_exec:s0 /(vendor|system/vendor)/bin/hw/vendor\.lineage\.powershare@1\.0-service\.oneplus u:object_r:hal_lineage_powershare_default_exec:s0 /(vendor|system/vendor)/bin/hw/vendor\.lineage\.touch@1\.0-service\.oneplus u:object_r:hal_lineage_touch_default_exec:s0 diff --git a/sepolicy/vendor/hal_fingerprint_device.te b/sepolicy/vendor/hal_fingerprint_device.te index fb4cc58..95af6f6 100644 --- a/sepolicy/vendor/hal_fingerprint_device.te +++ b/sepolicy/vendor/hal_fingerprint_device.te @@ -14,6 +14,8 @@ allow hal_fingerprint_default vendor_xdsp_device:chr_file rw_file_perms; allow hal_fingerprint_default proc_touchpanel:dir search; allow hal_fingerprint_default proc_touchpanel:file rw_file_perms; +allow hal_fingerprint_default uhid_device:chr_file rw_file_perms; + get_prop(hal_fingerprint_default, vendor_adsprpc_prop) get_prop(hal_fingerprint_default, vendor_default_prop) set_prop(hal_fingerprint_default, vendor_fingerprint_prop) diff --git a/sepolicy/vendor/hwservice_contexts b/sepolicy/vendor/hwservice_contexts index b35c26b..c890b18 100644 --- a/sepolicy/vendor/hwservice_contexts +++ b/sepolicy/vendor/hwservice_contexts @@ -1,4 +1,7 @@ -vendor.goodix.hardware.biometrics.fingerprint::IGoodixFingerprintDaemon u:object_r:hal_fingerprint_hwservice:s0 +vendor.goodix3626.hardware.biometrics.fingerprint::IGoodixFingerprintDaemon u:object_r:hal_fingerprint_hwservice:s0 +vendor.goodix3626.hardware.biometrics.fingerprint::IGoodixFingerprintDaemonExt u:object_r:hal_fingerprint_hwservice:s0 +vendor.goodix3626.hardware.biometrics.fingerprint::IGoodixFingerprintDaemonHbd u:object_r:hal_fingerprint_hwservice:s0 +vendor.goodix3626.hardware.biometrics.fingerprint::IGoodixFingerprintDaemonFido u:object_r:hal_fingerprint_hwservice:s0 vendor.oneplus.camera.CameraHIDL::IOnePlusCameraProvider u:object_r:hal_cameraHIDL_hwservice:s0 vendor.oneplus.fingerprint.extension::IVendorFingerprintExtensions u:object_r:hal_fingerprint_hwservice:s0 vendor.oneplus.hardware.camera::IOnePlusCameraProvider u:object_r:hal_cameraHIDL_hwservice:s0