sm8250-common: biometrics: Implement boosting on authentication
Change-Id: Ia9cde9f540a614ad700fb497288a2a986e924dbd
This commit is contained in:
parent
a856c06112
commit
1b3fbae7b0
@ -11,12 +11,14 @@ xiaomi_kona_biometrics_hal_binary {
|
||||
],
|
||||
|
||||
shared_libs: [
|
||||
"libbinder_ndk",
|
||||
"libcutils",
|
||||
"liblog",
|
||||
"libhidlbase",
|
||||
"libhardware",
|
||||
"libutils",
|
||||
"android.hardware.biometrics.fingerprint@2.1",
|
||||
"android.hardware.power-ndk_platform",
|
||||
"//hardware/xiaomi:vendor.xiaomi.hardware.fingerprintextension@1.0",
|
||||
],
|
||||
|
||||
|
@ -38,15 +38,24 @@ static const uint16_t kVersion = HARDWARE_MODULE_API_VERSION(2, 1);
|
||||
// List of fingerprint HALs
|
||||
static const char *kHALClasses[HAL_CLASSES_SIZE] = {HAL_CLASSES};
|
||||
|
||||
// Boost duration
|
||||
static constexpr int kDefaultBoostDurationMs = 2000;
|
||||
|
||||
// Power AIDL instance name
|
||||
static const std::string kPowerInstance = std::string(IPower::descriptor) + "/default";
|
||||
|
||||
using RequestStatus =
|
||||
android::hardware::biometrics::fingerprint::V2_1::RequestStatus;
|
||||
|
||||
BiometricsFingerprint *BiometricsFingerprint::sInstance = nullptr;
|
||||
|
||||
BiometricsFingerprint::BiometricsFingerprint() : mClientCallback(nullptr), mDevice(nullptr) {
|
||||
BiometricsFingerprint::BiometricsFingerprint() :
|
||||
mClientCallback(nullptr), mPowerService(nullptr), mDevice(nullptr) {
|
||||
int i;
|
||||
const char *class_name;
|
||||
sInstance = this; // keep track of the most recent instance
|
||||
mPowerService = IPower::fromBinder(ndk::SpAIBinder(
|
||||
AServiceManager_getService(kPowerInstance.c_str())));
|
||||
for (i=0; i<HAL_CLASSES_SIZE; i++) {
|
||||
class_name = kHALClasses[i];
|
||||
mDevice = openHal(class_name);
|
||||
@ -296,6 +305,7 @@ void BiometricsFingerprint::notify(const fingerprint_msg_t *msg) {
|
||||
break;
|
||||
case FINGERPRINT_ACQUIRED: {
|
||||
int32_t vendorCode = 0;
|
||||
sInstance->mPowerService->setBoost(Boost::INTERACTION, kDefaultBoostDurationMs);
|
||||
FingerprintAcquiredInfo result =
|
||||
VendorAcquiredFilter(msg->data.acquired.acquired_info, &vendorCode);
|
||||
ALOGD("onAcquired(%d)", result);
|
||||
|
@ -25,6 +25,9 @@
|
||||
#include <hidl/Status.h>
|
||||
#include <android/hardware/biometrics/fingerprint/2.1/IBiometricsFingerprint.h>
|
||||
#include <vendor/xiaomi/hardware/fingerprintextension/1.0/IXiaomiFingerprint.h>
|
||||
#include <aidl/android/hardware/power/Boost.h>
|
||||
#include <aidl/android/hardware/power/IPower.h>
|
||||
#include <android/binder_manager.h>
|
||||
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
@ -33,6 +36,8 @@ namespace fingerprint {
|
||||
namespace V2_1 {
|
||||
namespace implementation {
|
||||
|
||||
using ::aidl::android::hardware::power::Boost;
|
||||
using ::aidl::android::hardware::power::IPower;
|
||||
using ::android::hardware::biometrics::fingerprint::V2_1::IBiometricsFingerprint;
|
||||
using ::android::hardware::biometrics::fingerprint::V2_1::IBiometricsFingerprintClientCallback;
|
||||
using ::android::hardware::biometrics::fingerprint::V2_1::RequestStatus;
|
||||
@ -77,6 +82,7 @@ private:
|
||||
|
||||
std::mutex mClientCallbackMutex;
|
||||
sp<IBiometricsFingerprintClientCallback> mClientCallback;
|
||||
std::shared_ptr<IPower> mPowerService;
|
||||
xiaomi_fingerprint_device_t *mDevice;
|
||||
};
|
||||
|
||||
|
6
sepolicy/vendor/hal_fingerprint_default.te
vendored
6
sepolicy/vendor/hal_fingerprint_default.te
vendored
@ -1,3 +1,9 @@
|
||||
# Allow access to the HALs
|
||||
hal_client_domain(hal_fingerprint_default, hal_power)
|
||||
|
||||
# Allow binder communication with hal_power_default
|
||||
binder_call(hal_fingerprint_default, hal_power_default)
|
||||
|
||||
allow hal_fingerprint_default fingerprint_data_file:dir rw_dir_perms;
|
||||
allow hal_fingerprint_default fingerprint_data_file:file create_file_perms;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user