From e33abd645659910c27c53bf26e65ac200cb50aff Mon Sep 17 00:00:00 2001 From: Kevin Chyn Date: Fri, 18 Sep 2020 10:31:50 -0700 Subject: [PATCH] Move ICancellationSignal to common, add supportsNavigationGestures Bug: 168842956 Test: Builds Test: make -j56 android.hardware.biometrics.common-update-api Test: make -j56 android.hardware.biometrics.fingerprint-update-api Test: make -j56 VtsHalBiometricsFingerprintTargetTest Change-Id: Ie35ccc2ea8b7ef710914e9a18fc28f49c2d6f0be --- .../biometrics/common}/ICancellationSignal.aidl | 2 +- .../biometrics/common}/ICancellationSignal.aidl | 2 +- .../hardware/biometrics/fingerprint/ISession.aidl | 6 +++--- .../hardware/biometrics/fingerprint/SensorProps.aidl | 1 + .../hardware/biometrics/fingerprint/ISession.aidl | 2 +- .../hardware/biometrics/fingerprint/SensorProps.aidl | 6 ++++++ biometrics/fingerprint/aidl/default/Android.bp | 1 + biometrics/fingerprint/aidl/default/Fingerprint.cpp | 2 ++ biometrics/fingerprint/aidl/default/Session.cpp | 10 +++++----- biometrics/fingerprint/aidl/default/Session.h | 9 +++++---- .../aidl/vts/VtsHalBiometricsFingerprintTargetTest.cpp | 2 +- 11 files changed, 27 insertions(+), 16 deletions(-) rename biometrics/{fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/current/android/hardware/biometrics/fingerprint => common/aidl/aidl_api/android.hardware.biometrics.common/current/android/hardware/biometrics/common}/ICancellationSignal.aidl (95%) rename biometrics/{fingerprint/aidl/android/hardware/biometrics/fingerprint => common/aidl/android/hardware/biometrics/common}/ICancellationSignal.aidl (93%) diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/current/android/hardware/biometrics/fingerprint/ICancellationSignal.aidl b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/current/android/hardware/biometrics/common/ICancellationSignal.aidl similarity index 95% rename from biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/current/android/hardware/biometrics/fingerprint/ICancellationSignal.aidl rename to biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/current/android/hardware/biometrics/common/ICancellationSignal.aidl index 6f3d2dbb3a..1a875bfbd8 100644 --- a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/current/android/hardware/biometrics/fingerprint/ICancellationSignal.aidl +++ b/biometrics/common/aidl/aidl_api/android.hardware.biometrics.common/current/android/hardware/biometrics/common/ICancellationSignal.aidl @@ -15,7 +15,7 @@ // with such a backward incompatible change, it has a high risk of breaking // later when a module using the interface is updated, e.g., Mainline modules. -package android.hardware.biometrics.fingerprint; +package android.hardware.biometrics.common; @VintfStability interface ICancellationSignal { oneway void cancel(); diff --git a/biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/ICancellationSignal.aidl b/biometrics/common/aidl/android/hardware/biometrics/common/ICancellationSignal.aidl similarity index 93% rename from biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/ICancellationSignal.aidl rename to biometrics/common/aidl/android/hardware/biometrics/common/ICancellationSignal.aidl index abfbb2ab89..10102561b5 100644 --- a/biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/ICancellationSignal.aidl +++ b/biometrics/common/aidl/android/hardware/biometrics/common/ICancellationSignal.aidl @@ -14,7 +14,7 @@ * limitations under the License. */ -package android.hardware.biometrics.fingerprint; +package android.hardware.biometrics.common; @VintfStability oneway interface ICancellationSignal { diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/current/android/hardware/biometrics/fingerprint/ISession.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/current/android/hardware/biometrics/fingerprint/ISession.aidl index d92ca4f943..06c8623bf5 100644 --- a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/current/android/hardware/biometrics/fingerprint/ISession.aidl +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/current/android/hardware/biometrics/fingerprint/ISession.aidl @@ -18,9 +18,9 @@ package android.hardware.biometrics.fingerprint; @VintfStability interface ISession { - android.hardware.biometrics.fingerprint.ICancellationSignal enroll(in int cookie, in android.hardware.keymaster.HardwareAuthToken hat); - android.hardware.biometrics.fingerprint.ICancellationSignal authenticate(in int cookie, in long keystoreOperationId); - android.hardware.biometrics.fingerprint.ICancellationSignal detectInteraction(in int cookie); + android.hardware.biometrics.common.ICancellationSignal enroll(in int cookie, in android.hardware.keymaster.HardwareAuthToken hat); + android.hardware.biometrics.common.ICancellationSignal authenticate(in int cookie, in long keystoreOperationId); + android.hardware.biometrics.common.ICancellationSignal detectInteraction(in int cookie); void enumerateEnrollments(in int cookie); void removeEnrollments(in int cookie, in int[] enrollmentIds); void getAuthenticatorId(in int cookie); diff --git a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/current/android/hardware/biometrics/fingerprint/SensorProps.aidl b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/current/android/hardware/biometrics/fingerprint/SensorProps.aidl index 9d946a9247..8c779abc09 100644 --- a/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/current/android/hardware/biometrics/fingerprint/SensorProps.aidl +++ b/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/current/android/hardware/biometrics/fingerprint/SensorProps.aidl @@ -20,6 +20,7 @@ package android.hardware.biometrics.fingerprint; parcelable SensorProps { android.hardware.biometrics.common.CommonProps commonProps; android.hardware.biometrics.fingerprint.FingerprintSensorType sensorType; + boolean supportsNavigationGestures; int sensorLocationX; int sensorLocationY; int sensorRadius; diff --git a/biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/ISession.aidl b/biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/ISession.aidl index 55ea385adb..dd340e8e8c 100644 --- a/biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/ISession.aidl +++ b/biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/ISession.aidl @@ -16,7 +16,7 @@ package android.hardware.biometrics.fingerprint; -import android.hardware.biometrics.fingerprint.ICancellationSignal; +import android.hardware.biometrics.common.ICancellationSignal; import android.hardware.keymaster.HardwareAuthToken; @VintfStability diff --git a/biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/SensorProps.aidl b/biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/SensorProps.aidl index 7c1e1760af..fc3b44d608 100644 --- a/biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/SensorProps.aidl +++ b/biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/SensorProps.aidl @@ -32,6 +32,12 @@ parcelable SensorProps { */ FingerprintSensorType sensorType; + /** + * Must be set to true for sensors that support "swipe" gestures via + * android.view.KeyEvent#KEYCODE_SYSTEM_NAVIGATION_*. + */ + boolean supportsNavigationGestures; + /** * The location of the center of the sensor if applicable. For example, * sensors of FingerprintSensorType::UNDER_DISPLAY_* would report this diff --git a/biometrics/fingerprint/aidl/default/Android.bp b/biometrics/fingerprint/aidl/default/Android.bp index f2536d4ba8..ce1ff5964b 100644 --- a/biometrics/fingerprint/aidl/default/Android.bp +++ b/biometrics/fingerprint/aidl/default/Android.bp @@ -8,6 +8,7 @@ cc_binary { "libbase", "libbinder_ndk", "android.hardware.biometrics.fingerprint-ndk_platform", + "android.hardware.biometrics.common-unstable-ndk_platform", ], srcs: [ "main.cpp", diff --git a/biometrics/fingerprint/aidl/default/Fingerprint.cpp b/biometrics/fingerprint/aidl/default/Fingerprint.cpp index 0ca45f85f0..a1d9d0a006 100644 --- a/biometrics/fingerprint/aidl/default/Fingerprint.cpp +++ b/biometrics/fingerprint/aidl/default/Fingerprint.cpp @@ -23,6 +23,7 @@ const int kSensorId = 0; const common::SensorStrength kSensorStrength = common::SensorStrength::STRONG; const int kMaxEnrollmentsPerUser = 5; const FingerprintSensorType kSensorType = FingerprintSensorType::REAR; +const bool kSupportsNavigationGestures = true; const std::string kHwDeviceName = "fingerprintSensor"; const std::string kHardwareVersion = "vendor/model/revision"; const std::string kFirmwareVersion = "1.01"; @@ -44,6 +45,7 @@ ndk::ScopedAStatus Fingerprint::getSensorProps(std::vector* return_ hardwareInfos}; SensorProps props = {commonProps, kSensorType, + kSupportsNavigationGestures, 0 /* sensorLocationX */, 0 /* sensorLocationY */, 0 /* sensorRadius */, diff --git a/biometrics/fingerprint/aidl/default/Session.cpp b/biometrics/fingerprint/aidl/default/Session.cpp index a3dd75e62d..c2934a8bd7 100644 --- a/biometrics/fingerprint/aidl/default/Session.cpp +++ b/biometrics/fingerprint/aidl/default/Session.cpp @@ -14,13 +14,13 @@ * limitations under the License. */ -#include +#include #include "Session.h" namespace aidl::android::hardware::biometrics::fingerprint { -class CancellationSignal : public BnCancellationSignal { +class CancellationSignal : public common::BnCancellationSignal { public: ndk::ScopedAStatus cancel() override { return ndk::ScopedAStatus::ok(); } }; @@ -28,12 +28,12 @@ class CancellationSignal : public BnCancellationSignal { Session::Session(std::shared_ptr cb) : cb_(std::move(cb)) {} ndk::ScopedAStatus Session::enroll(int32_t /*cookie*/, const keymaster::HardwareAuthToken& /*hat*/, - std::shared_ptr* /*return_val*/) { + std::shared_ptr* /*return_val*/) { return ndk::ScopedAStatus::ok(); } ndk::ScopedAStatus Session::authenticate(int32_t /*cookie*/, int64_t /*keystoreOperationId*/, - std::shared_ptr* return_val) { + std::shared_ptr* return_val) { if (cb_) { cb_->onStateChanged(0, SessionState::AUTHENTICATING); } @@ -42,7 +42,7 @@ ndk::ScopedAStatus Session::authenticate(int32_t /*cookie*/, int64_t /*keystoreO } ndk::ScopedAStatus Session::detectInteraction( - int32_t /*cookie*/, std::shared_ptr* /*return_val*/) { + int32_t /*cookie*/, std::shared_ptr* /*return_val*/) { return ndk::ScopedAStatus::ok(); } diff --git a/biometrics/fingerprint/aidl/default/Session.h b/biometrics/fingerprint/aidl/default/Session.h index 781e95a222..f7cba1b801 100644 --- a/biometrics/fingerprint/aidl/default/Session.h +++ b/biometrics/fingerprint/aidl/default/Session.h @@ -21,20 +21,21 @@ namespace aidl::android::hardware::biometrics::fingerprint { -namespace aidl::android::hardware::keymaster = keymaster; +namespace common = aidl::android::hardware::biometrics::common; +namespace keymaster = aidl::android::hardware::keymaster; class Session : public BnSession { public: explicit Session(std::shared_ptr cb); ndk::ScopedAStatus enroll(int32_t cookie, const keymaster::HardwareAuthToken& hat, - std::shared_ptr* return_val) override; + std::shared_ptr* return_val) override; ndk::ScopedAStatus authenticate(int32_t cookie, int64_t keystoreOperationId, - std::shared_ptr* return_val) override; + std::shared_ptr* return_val) override; ndk::ScopedAStatus detectInteraction(int32_t cookie, - std::shared_ptr* return_val) override; + std::shared_ptr* return_val) override; ndk::ScopedAStatus enumerateEnrollments(int32_t cookie) override; diff --git a/biometrics/fingerprint/aidl/vts/VtsHalBiometricsFingerprintTargetTest.cpp b/biometrics/fingerprint/aidl/vts/VtsHalBiometricsFingerprintTargetTest.cpp index 1a39ad4c12..9590d68000 100644 --- a/biometrics/fingerprint/aidl/vts/VtsHalBiometricsFingerprintTargetTest.cpp +++ b/biometrics/fingerprint/aidl/vts/VtsHalBiometricsFingerprintTargetTest.cpp @@ -114,7 +114,7 @@ TEST_P(Fingerprint, AuthenticateTest) { std::shared_ptr session; ASSERT_TRUE(hal_->createSession(kSensorId, kUserId, session_cb, &session).isOk()); - std::shared_ptr cancel_cb; + std::shared_ptr cancel_cb; ASSERT_TRUE(session->authenticate(0, 0, &cancel_cb).isOk()); ASSERT_EQ(invocation_future.wait_for(kCallbackTimeout), std::future_status::ready);