mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 16:50:18 +00:00
Update default face implementation
Note that we're configuring this default HAL as "STRONG" so that the framework can eventually test multi-sensor authenticatorId invalidation Bug: 173453845 Test: atest CtsBiometricsTestCases Change-Id: Idd7b74f0a22c5078dc5c2b0b99f62fdc4b51e25d
This commit is contained in:
@@ -20,7 +20,7 @@
|
||||
namespace aidl::android::hardware::biometrics::face {
|
||||
|
||||
const int kSensorId = 0;
|
||||
const common::SensorStrength kSensorStrength = common::SensorStrength::WEAK;
|
||||
const common::SensorStrength kSensorStrength = common::SensorStrength::STRONG;
|
||||
const int kMaxEnrollmentsPerUser = 5;
|
||||
const FaceSensorType kSensorType = FaceSensorType::RGB;
|
||||
const bool kHalControlsPreview = true;
|
||||
|
||||
@@ -21,17 +21,35 @@
|
||||
namespace aidl::android::hardware::biometrics::face {
|
||||
|
||||
class CancellationSignal : public common::BnCancellationSignal {
|
||||
private:
|
||||
std::shared_ptr<ISessionCallback> cb_;
|
||||
public:
|
||||
ndk::ScopedAStatus cancel() override { return ndk::ScopedAStatus::ok(); }
|
||||
explicit CancellationSignal(std::shared_ptr<ISessionCallback> cb) : cb_(std::move(cb)) {}
|
||||
|
||||
ndk::ScopedAStatus cancel() override {
|
||||
cb_->onError(Error::CANCELED, 0 /* vendorCode */);
|
||||
cb_->onStateChanged(0, SessionState::IDLING);
|
||||
return ndk::ScopedAStatus::ok();
|
||||
}
|
||||
};
|
||||
|
||||
Session::Session(std::shared_ptr<ISessionCallback> cb) : cb_(std::move(cb)) {}
|
||||
|
||||
ndk::ScopedAStatus Session::generateChallenge(int32_t /*cookie*/, int32_t /*timeoutSec*/) {
|
||||
if (cb_) {
|
||||
cb_->onStateChanged(0, SessionState::GENERATING_CHALLENGE);
|
||||
cb_->onChallengeGenerated(0);
|
||||
cb_->onStateChanged(0, SessionState::IDLING);
|
||||
}
|
||||
return ndk::ScopedAStatus::ok();
|
||||
}
|
||||
|
||||
ndk::ScopedAStatus Session::revokeChallenge(int32_t /*cookie*/, int64_t /*challenge*/) {
|
||||
ndk::ScopedAStatus Session::revokeChallenge(int32_t /*cookie*/, int64_t challenge) {
|
||||
if (cb_) {
|
||||
cb_->onStateChanged(0, SessionState::REVOKING_CHALLENGE);
|
||||
cb_->onChallengeRevoked(challenge);
|
||||
cb_->onStateChanged(0, SessionState::IDLING);
|
||||
}
|
||||
return ndk::ScopedAStatus::ok();
|
||||
}
|
||||
|
||||
@@ -47,7 +65,7 @@ ndk::ScopedAStatus Session::authenticate(int32_t /*cookie*/, int64_t /*keystoreO
|
||||
if (cb_) {
|
||||
cb_->onStateChanged(0, SessionState::AUTHENTICATING);
|
||||
}
|
||||
*return_val = SharedRefBase::make<CancellationSignal>();
|
||||
*return_val = SharedRefBase::make<CancellationSignal>(cb_);
|
||||
return ndk::ScopedAStatus::ok();
|
||||
}
|
||||
|
||||
@@ -57,15 +75,30 @@ ndk::ScopedAStatus Session::detectInteraction(
|
||||
}
|
||||
|
||||
ndk::ScopedAStatus Session::enumerateEnrollments(int32_t /*cookie*/) {
|
||||
if (cb_) {
|
||||
cb_->onStateChanged(0, SessionState::ENUMERATING_ENROLLMENTS);
|
||||
cb_->onEnrollmentsEnumerated(std::vector<int32_t>());
|
||||
cb_->onStateChanged(0, SessionState::IDLING);
|
||||
}
|
||||
return ndk::ScopedAStatus::ok();
|
||||
}
|
||||
|
||||
ndk::ScopedAStatus Session::removeEnrollments(int32_t /*cookie*/,
|
||||
const std::vector<int32_t>& /*enrollmentIds*/) {
|
||||
if (cb_) {
|
||||
cb_->onStateChanged(0, SessionState::REMOVING_ENROLLMENTS);
|
||||
cb_->onEnrollmentsRemoved(std::vector<int32_t>());
|
||||
cb_->onStateChanged(0, SessionState::IDLING);
|
||||
}
|
||||
return ndk::ScopedAStatus::ok();
|
||||
}
|
||||
|
||||
ndk::ScopedAStatus Session::getAuthenticatorId(int32_t /*cookie*/) {
|
||||
if (cb_) {
|
||||
cb_->onStateChanged(0, SessionState::GETTING_AUTHENTICATOR_ID);
|
||||
cb_->onAuthenticatorIdRetrieved(0 /* authenticatorId */);
|
||||
cb_->onStateChanged(0, SessionState::IDLING);
|
||||
}
|
||||
return ndk::ScopedAStatus::ok();
|
||||
}
|
||||
|
||||
@@ -75,6 +108,11 @@ ndk::ScopedAStatus Session::invalidateAuthenticatorId(int32_t /*cookie*/) {
|
||||
|
||||
ndk::ScopedAStatus Session::resetLockout(int32_t /*cookie*/,
|
||||
const keymaster::HardwareAuthToken& /*hat*/) {
|
||||
if (cb_) {
|
||||
cb_->onStateChanged(0, SessionState::RESETTING_LOCKOUT);
|
||||
cb_->onLockoutCleared();
|
||||
cb_->onStateChanged(0, SessionState::IDLING);
|
||||
}
|
||||
return ndk::ScopedAStatus::ok();
|
||||
}
|
||||
} // namespace aidl::android::hardware::biometrics::face
|
||||
|
||||
Reference in New Issue
Block a user