Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a42367f1 authored by TARKZiM's avatar TARKZiM Committed by Bernhard Thoben
Browse files

kitakami-common: fingerprint: Proper implement 2.1 functions

* Rename it to 2.1 properly.
parent c202d42e
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -14,10 +14,10 @@
// See the License for the specific language governing permissions and
// limitations under the License.
cc_binary {
    name: "android.hardware.biometrics.fingerprint@2.0-service.kitakami",
    name: "android.hardware.biometrics.fingerprint@2.1-service.kitakami",
    defaults: ["hidl_defaults"],
    relative_install_path: "hw",
    init_rc: ["android.hardware.biometrics.fingerprint@2.0-service.kitakami.rc"],
    init_rc: ["android.hardware.biometrics.fingerprint@2.1-service.kitakami.rc"],
    srcs: ["service.cpp", "BiometricsFingerprint.cpp"],
    shared_libs: [
        "libutils",
+13 −26
Original line number Diff line number Diff line
@@ -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.kitakami"
#define LOG_VERBOSE "android.hardware.biometrics.fingerprint@2.0-service.kitakami"
#define LOG_TAG "android.hardware.biometrics.fingerprint@2.1-service.kitakami"
#define LOG_VERBOSE "android.hardware.biometrics.fingerprint@2.1-service.kitakami"

#include <hardware/hw_auth_token.h>

@@ -184,30 +184,8 @@ Return<RequestStatus> BiometricsFingerprint::cancel() {
    return ErrorFilter(ret);
}

#define MAX_FINGERPRINTS 100

typedef int (*enumerate_2_0)(struct fingerprint_device *dev, fingerprint_finger_id_t *results,
        uint32_t *max_size);

Return<RequestStatus> 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<uint64_t>(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<RequestStatus> BiometricsFingerprint::remove(uint32_t gid, uint32_t fid) {
@@ -365,7 +343,16 @@ void BiometricsFingerprint::notify(const fingerprint_msg_t *msg) {
            }
            break;
        case FINGERPRINT_TEMPLATE_ENUMERATING:
            // ignored, won't happen for 2.0 HALs
	            ALOGD("onEnumerate(fid=%d, gid=%d, rem=%d)",
                msg->data.enumerated.finger.fid,
                msg->data.enumerated.finger.gid,
                msg->data.enumerated.remaining_templates);
            if (!thisPtr->mClientCallback->onEnumerate(devId,
                    msg->data.enumerated.finger.fid,
                    msg->data.enumerated.finger.gid,
                    msg->data.enumerated.remaining_templates).isOk()) {
                ALOGE("failed to invoke fingerprint onEnumerate callback");
            }
            break;
    }
}
+1 −1
Original line number Diff line number Diff line
service vendor.fps_hal /vendor/bin/hw/android.hardware.biometrics.fingerprint@2.0-service.kitakami
service vendor.fps_hal /vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-service.kitakami
    # "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.
+1 −1
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@
/data/etc(/.*)                                             u:object_r:ta_data_file:s0

# Fingerprint
/(vendor|system/vendor)/bin/hw/android\.hardware\.biometrics\.fingerprint@2\.0-service.kitakami u:object_r:hal_fingerprint_default_exec:s0
/(vendor|system/vendor)/bin/hw/android\.hardware\.biometrics\.fingerprint@2\.1-service.kitakami u:object_r:hal_fingerprint_default_exec:s0

# Fingerprint sensor SPI device
/data/fpc(/.*)?                                            u:object_r:fpc_data_file:s0