diff --git a/biometrics/Android.mk b/biometrics/Android.mk index 6c9eb7c1..456846aa 100644 --- a/biometrics/Android.mk +++ b/biometrics/Android.mk @@ -1,8 +1,8 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) -LOCAL_MODULE := android.hardware.biometrics.fingerprint@2.0-service.xiaomi_mido -LOCAL_INIT_RC := android.hardware.biometrics.fingerprint@2.0-service.xiaomi_mido.rc +LOCAL_MODULE := android.hardware.biometrics.fingerprint@2.1-service.xiaomi_mido +LOCAL_INIT_RC := android.hardware.biometrics.fingerprint@2.1-service.xiaomi_mido.rc LOCAL_PROPRIETARY_MODULE := true LOCAL_MODULE_RELATIVE_PATH := hw LOCAL_SRC_FILES := \ @@ -23,7 +23,7 @@ LOCAL_SHARED_LIBRARIES := \ libhardware \ libutils \ libhwbinder \ - libkeystore_binder \ + libkeystore_aidl \ android.hardware.biometrics.fingerprint@2.1 \ include $(BUILD_EXECUTABLE) diff --git a/biometrics/BiometricsFingerprint.cpp b/biometrics/BiometricsFingerprint.cpp index fccc41fa..a1fd16a8 100644 --- a/biometrics/BiometricsFingerprint.cpp +++ b/biometrics/BiometricsFingerprint.cpp @@ -13,8 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#define LOG_TAG "android.hardware.biometrics.fingerprint@2.0-service" -#define LOG_VERBOSE "android.hardware.biometrics.fingerprint@2.0-service" +#define LOG_TAG "android.hardware.biometrics.fingerprint@2.1-service" +#define LOG_VERBOSE "android.hardware.biometrics.fingerprint@2.1-service" #include #include @@ -194,30 +194,8 @@ Return BiometricsFingerprint::cancel() { return ErrorFilter(mDevice->cancel(mDevice)); } -#define MAX_FINGERPRINTS 100 - -typedef int (*enumerate_2_0)(struct fingerprint_device *dev, fingerprint_finger_id_t *results, - uint32_t *max_size); - Return BiometricsFingerprint::enumerate() { - fingerprint_finger_id_t results[MAX_FINGERPRINTS]; - uint32_t n = MAX_FINGERPRINTS; - enumerate_2_0 enumerate = (enumerate_2_0) mDevice->enumerate; - int ret = enumerate(mDevice, results, &n); - - if (ret == 0 && mClientCallback != nullptr) { - ALOGD("Got %d enumerated templates", n); - for (uint32_t i = 0; i < n; i++) { - const uint64_t devId = reinterpret_cast(mDevice); - const auto& fp = results[i]; - ALOGD("onEnumerate(fid=%d, gid=%d)", fp.fid, fp.gid); - if (!mClientCallback->onEnumerate(devId, fp.fid, fp.gid, n - i - 1).isOk()) { - ALOGE("failed to invoke fingerprint onEnumerate callback"); - } - } - } - - return ErrorFilter(ret); + return ErrorFilter(mDevice->enumerate(mDevice)); } Return BiometricsFingerprint::remove(uint32_t gid, uint32_t fid) { @@ -356,7 +334,6 @@ void BiometricsFingerprint::notify(const fingerprint_msg_t *msg) { } break; case FINGERPRINT_TEMPLATE_ENUMERATING: - // ignored, won't happen for 2.0 HALs break; } } diff --git a/biometrics/android.hardware.biometrics.fingerprint@2.0-service.xiaomi_mido.rc b/biometrics/android.hardware.biometrics.fingerprint@2.1-service.xiaomi_mido.rc similarity index 91% rename from biometrics/android.hardware.biometrics.fingerprint@2.0-service.xiaomi_mido.rc rename to biometrics/android.hardware.biometrics.fingerprint@2.1-service.xiaomi_mido.rc index 7d2a3d88..e06cf332 100644 --- a/biometrics/android.hardware.biometrics.fingerprint@2.0-service.xiaomi_mido.rc +++ b/biometrics/android.hardware.biometrics.fingerprint@2.1-service.xiaomi_mido.rc @@ -1,4 +1,4 @@ -service fps_hal /vendor/bin/hw/android.hardware.biometrics.fingerprint@2.0-service.xiaomi_mido +service fps_hal /vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-service.xiaomi_mido # "class hal" causes a race condition on some devices due to files created # in /data. As a workaround, postpone startup until later in boot once # /data is mounted. diff --git a/biometrics/fingerprintd/FingerprintDaemonProxy.cpp b/biometrics/fingerprintd/FingerprintDaemonProxy.cpp index 5474fe9c..9ad18fc9 100644 --- a/biometrics/fingerprintd/FingerprintDaemonProxy.cpp +++ b/biometrics/fingerprintd/FingerprintDaemonProxy.cpp @@ -21,8 +21,7 @@ #include #include #include -#include -#include // for error codes +#include #include #include "FingerprintDaemonProxy.h" @@ -94,12 +93,14 @@ void FingerprintDaemonProxy::notifyKeystore(const uint8_t *auth_token, const siz // TODO: cache service? sp < IServiceManager > sm = defaultServiceManager(); sp < IBinder > binder = sm->getService(String16("android.security.keystore")); - sp < IKeystoreService > service = interface_cast < IKeystoreService > (binder); + sp < security::IKeystoreService > service = interface_cast < security::IKeystoreService > (binder); if (service != NULL) { - status_t ret = service->addAuthToken(auth_token, auth_token_length); - if (ret != (int)ResponseCode::NO_ERROR) { - ALOGE("Falure sending auth token to KeyStore: %d", ret); - } + int result =0; + std::vector auth_token_vector(*auth_token, (*auth_token) + auth_token_length); + auto binder_result = service->addAuthToken(auth_token_vector, &result); + if (!binder_result.isOk() || !keystore::KeyStoreServiceReturnCode(result).isOk()) { + ALOGE("Falure sending auth token to KeyStore"); + } } else { ALOGE("Unable to communicate with KeyStore"); } diff --git a/biometrics/fingerprintd/IFingerprintDaemon.cpp b/biometrics/fingerprintd/IFingerprintDaemon.cpp index ef511b75..8af9bc5b 100644 --- a/biometrics/fingerprintd/IFingerprintDaemon.cpp +++ b/biometrics/fingerprintd/IFingerprintDaemon.cpp @@ -23,8 +23,6 @@ #include #include #include -#include -#include // for error code #include #include #include diff --git a/biometrics/service.cpp b/biometrics/service.cpp index 57e01071..562e54d7 100644 --- a/biometrics/service.cpp +++ b/biometrics/service.cpp @@ -21,7 +21,6 @@ #include #include #include -#include // for error codes #include #include diff --git a/device.mk b/device.mk index 96172c50..46d78dcd 100644 --- a/device.mk +++ b/device.mk @@ -31,7 +31,7 @@ PRODUCT_COPY_FILES += \ # Fingerprint PRODUCT_PACKAGES += \ - android.hardware.biometrics.fingerprint@2.0-service.xiaomi_mido + android.hardware.biometrics.fingerprint@2.1-service.xiaomi_mido # Consumerir PRODUCT_PACKAGES += \