diff --git a/fingerprint/Android.bp b/fingerprint/Android.bp index b67ea42..a7ea5af 100644 --- a/fingerprint/Android.bp +++ b/fingerprint/Android.bp @@ -27,6 +27,7 @@ cc_binary { "libhwbinder", "liblog", "libutils", + "libcutils", "android.hardware.biometrics.fingerprint@2.1", ], proprietary: true, diff --git a/fingerprint/BiometricsFingerprint.cpp b/fingerprint/BiometricsFingerprint.cpp index aa24cbf..a10c7bb 100644 --- a/fingerprint/BiometricsFingerprint.cpp +++ b/fingerprint/BiometricsFingerprint.cpp @@ -15,6 +15,7 @@ * limitations under the License. */ #define LOG_TAG "android.hardware.biometrics.fingerprint@2.1-service.xiaomi_sdm660" +#define FP_SENSOR_PROP "ro.boot.fpsensor" #include @@ -24,6 +25,7 @@ #include #include +#include namespace android { namespace hardware { @@ -215,8 +217,17 @@ fingerprint_device_t* getDeviceForVendor(const char *class_name) { const hw_module_t *hw_module = nullptr; int err; + char fp_vendor[PROPERTY_VALUE_MAX]; + + property_get(FP_SENSOR_PROP, fp_vendor, "fpc"); + ALOGE("Fp vendor is %s",fp_vendor); + + if (!strcmp(fp_vendor, "fpc")) { + err = hw_get_module_by_class(FINGERPRINT_HARDWARE_MODULE_ID, "fpc", &hw_module); + } else { + err = hw_get_module(FINGERPRINT_HARDWARE_MODULE_ID, &hw_module); + } - err = hw_get_module_by_class(FINGERPRINT_HARDWARE_MODULE_ID, class_name, &hw_module); if (err) { ALOGE("Failed to get fingerprint module: class %s, error %d", class_name, err); return nullptr; @@ -266,13 +277,6 @@ fingerprint_device_t* getFingerprintDevice() return fp_device; } - fp_device = getDeviceForVendor("goodix"); - if (fp_device == nullptr) { - ALOGE("Failed to load goodix fingerprint module"); - } else { - return fp_device; - } - return nullptr; } diff --git a/fingerprint/service.cpp b/fingerprint/service.cpp index e8536ef..bf833b3 100644 --- a/fingerprint/service.cpp +++ b/fingerprint/service.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define LOG_TAG "android.hardware.biometrics.fingerprint@2.1-service.xiaomi_msm8998" +#define LOG_TAG "android.hardware.biometrics.fingerprint@2.1-service.xiaomi_sdm660" #include #include