/* * Copyright (C) 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "hal.h" #include "session.h" #include "storage.h" namespace aidl::android::hardware::biometrics::fingerprint { namespace { constexpr char HW_COMPONENT_ID[] = "FingerprintSensor"; constexpr char XW_VERSION[] = "ranchu/fingerprint/aidl"; constexpr char FW_VERSION[] = "1"; constexpr char SERIAL_NUMBER[] = "00000001"; constexpr char SW_COMPONENT_ID[] = "matchingAlgorithm"; } // namespace ndk::ScopedAStatus Hal::getSensorProps(std::vector* out) { std::vector componentInfo = { { HW_COMPONENT_ID, XW_VERSION, FW_VERSION, SERIAL_NUMBER, "" /* softwareVersion */ }, { SW_COMPONENT_ID, "" /* hardwareVersion */, "" /* firmwareVersion */, "" /* serialNumber */, XW_VERSION } }; SensorLocation sensorLocation; sensorLocation.sensorLocationX = 0; sensorLocation.sensorLocationY = 0; sensorLocation.sensorRadius = 0; sensorLocation.display = ""; TouchDetectionParameters touchDetectionParameters; touchDetectionParameters.targetSize = 1.0; touchDetectionParameters.minOverlap = 0.2; SensorProps props; props.commonProps.sensorId = 0; props.commonProps.sensorStrength = common::SensorStrength::STRONG; props.commonProps.maxEnrollmentsPerUser = Storage::getMaxEnrollmentsPerUser(); props.commonProps.componentInfo = std::move(componentInfo); props.sensorType = FingerprintSensorType::REAR; props.sensorLocations.push_back(std::move(sensorLocation)); props.supportsNavigationGestures = false; props.supportsDetectInteraction = true; props.halHandlesDisplayTouches = false; props.halControlsIllumination = false; props.touchDetectionParameters = touchDetectionParameters; out->push_back(std::move(props)); return ndk::ScopedAStatus::ok(); } ndk::ScopedAStatus Hal::createSession(const int32_t sensorId, const int32_t userId, const std::shared_ptr& cb, std::shared_ptr* out) { *out = SharedRefBase::make(sensorId, userId, cb); return ndk::ScopedAStatus::ok(); } } // namespace aidl::android::hardware::biometrics::fingerprint