update folder and optimize code

Change-Id: I6d45cb98acf8f7b63f81e8dcb329e4a39aa98a5d
Signed-off-by: Tianshi Liu <tianshi.liu@huawei.com>
This commit is contained in:
tianshi25
2022-05-14 23:23:48 +08:00
parent f32dd13b15
commit d44b96fd55
22 changed files with 197 additions and 306 deletions
Executable → Regular
+4
View File
@@ -27,7 +27,11 @@
```
//base/user_iam/face_auth
├── bundle.json # 组件描述文件
├── common # 组件公共文件
├── figures # README使用的图片
├── frameworks # 框架代码
├── interfaces # 对外接口存放目录
│ └── inner_api # 对内部子系统暴露的头文件,供系统服务使用
├── sa_profile # Service Ability 配置文件
├── services # Service Ability 服务实现
└── ui # 人脸录入界面实现
+10 -12
View File
@@ -22,33 +22,31 @@
"ram": "16000KB",
"deps": {
"components": [
"ability_base",
"ability_runtime",
"hiviewdfx_hilog_native",
"ipc",
"aafwk_standard",
"safwk",
"samgr_standard"
],
"third_party": [
"openssl"
"faceauth_device_driver_interface:libfaceauth_proxy_1.0",
"hiviewdfx_hilog_native:libhilog",
"ipc:ipc_core",
"safwk:system_ability_fwk",
"samgr_standard:samgr_proxy",
"user_auth:coauth_framework",
"utils_base:utils"
]
},
"build": {
"sub_component": [
"//base/user_iam/face_auth/services:faceauthservice_group",
"//base/user_iam/face_auth/services:faceauthservice",
"//base/user_iam/face_auth/sa_profile:faceauth_sa_profile.init",
"//base/user_iam/face_auth/sa_profile:faceauth_sa_profile"
],
"inner_kits": [
{
"type": "so",
"name": "//base/user_iam/face_auth/interfaces/innerkits/faceauth:faceauth_framework_group",
"name": "//base/user_iam/face_auth/frameworks/face_auth:faceauth_framework",
"header": {
"header_files": [
"face_auth_innerkit.h"
],
"header_base": "//base/user_iam/face_auth/interfaces/innerkits/faceauth/include"
"header_base": "//base/user_iam/face_auth/interfaces/inner_api/face_auth/"
}
}
],
@@ -21,12 +21,6 @@ namespace UserIAM {
namespace FaceAuth {
#include <cstdint>
// constant
namespace {
static const int32_t FA_RET_OK = 0;
static const int32_t FA_RET_ERROR = -1;
} // namespace
enum FaceAuthRet {
FACEAUTH_SUCCESS = 0,
FACEAUTH_ERROR = 1,
-96
View File
@@ -1,96 +0,0 @@
/*
* Copyright (c) 2022 Huawei Device Co., Ltd.
* 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.
*/
#ifndef FACE_AUTH_LOG_WRAPPER_H
#define FACE_AUTH_LOG_WRAPPER_H
#define CONFIG_HILOG
#ifdef CONFIG_HILOG
#include <inttypes.h>
#include <string>
#include <securec.h>
#include "hilog/log.h"
namespace OHOS {
namespace UserIAM {
namespace FaceAuth {
#define FILENAME (__builtin_strrchr(__FILE__, '/') ? __builtin_strrchr(__FILE__, '/') + 1 : __FILE__)
#define FORMATTED(fmt, ...) "[%{public}s] %{public}s# " fmt, FILENAME, __FUNCTION__, ##__VA_ARGS__
#ifdef FACEAUTH_HILOGF
#undef FACEAUTH_HILOGF
#endif
#ifdef FACEAUTH_HILOGE
#undef FACEAUTH_HILOGE
#endif
#ifdef FACEAUTH_HILOGW
#undef FACEAUTH_HILOGW
#endif
#ifdef FACEAUTH_HILOGI
#undef FACEAUTH_HILOGI
#endif
#ifdef FACEAUTH_HILOGD
#undef FACEAUTH_HILOGD
#endif
enum FaceAuthSubModule {
MODULE_SERVICE = 0,
MODULE_FRAMEWORK = 1,
MODULE_MAX
};
static constexpr unsigned int BASE_FACE_AUTH_DOMAIN_ID = 0xD002422;
enum FaceAuthDomainId {
FACE_AUTH_SERVICE_DOMAIN = BASE_FACE_AUTH_DOMAIN_ID + MODULE_SERVICE,
FACE_AUTH_FRAMEWORK_DOMAIN = BASE_FACE_AUTH_DOMAIN_ID + MODULE_FRAMEWORK,
FACE_AUTH_DOMAIN_ID_MAX
};
static constexpr OHOS::HiviewDFX::HiLogLabel FACE_AUTH_LABEL[MODULE_MAX] = {
{LOG_CORE, FACE_AUTH_SERVICE_DOMAIN, "FaceAuthService"},
{LOG_CORE, FACE_AUTH_FRAMEWORK_DOMAIN, "FaceAuthFramework"},
};
#define FACEAUTH_HILOGF(module, ...) (void)OHOS::HiviewDFX::HiLog::Fatal(FACE_AUTH_LABEL[module], \
FORMATTED(__VA_ARGS__))
#define FACEAUTH_HILOGE(module, ...) (void)OHOS::HiviewDFX::HiLog::Error(FACE_AUTH_LABEL[module], \
FORMATTED(__VA_ARGS__))
#define FACEAUTH_HILOGW(module, ...) (void)OHOS::HiviewDFX::HiLog::Warn(FACE_AUTH_LABEL[module], \
FORMATTED(__VA_ARGS__))
#define FACEAUTH_HILOGI(module, ...) (void)OHOS::HiviewDFX::HiLog::Info(FACE_AUTH_LABEL[module], \
FORMATTED(__VA_ARGS__))
#define FACEAUTH_HILOGD(module, ...) (void)OHOS::HiviewDFX::HiLog::Debug(FACE_AUTH_LABEL[module], \
FORMATTED(__VA_ARGS__))
inline std::string getPointerNullString(void *p)
{
if (p == nullptr) {
return "null";
}
return "non-null";
}
} // namespace FaceAuth
} // namespace UserIAM
} // namespace OHOS
#endif // CONFIG_HILOG
#endif // FACE_AUTH_LOG_WRAPPER_H
@@ -14,34 +14,28 @@
import("//build/ohos.gni")
import("//foundation/aafwk/standard/aafwk.gni")
group("faceauth_framework_group") {
deps = []
if (ability_runtime_graphics) {
deps += [ ":faceauth_framework" ]
}
}
config("faceauth_framework_public_config") {
include_dirs =
[ "//base/user_iam/face_auth/interfaces/innerkits/faceauth/include" ]
include_dirs = [
"//base/user_iam/face_auth/interfaces/inner_api/face_auth",
"inc",
]
}
ohos_shared_library("faceauth_framework") {
sources = [
"//base/user_iam/face_auth/interfaces/innerkits/faceauth/src/face_auth_client.cpp",
"//base/user_iam/face_auth/interfaces/innerkits/faceauth/src/face_auth_innerkit.cpp",
"//base/user_iam/face_auth/interfaces/innerkits/faceauth/src/face_auth_proxy.cpp",
"//base/user_iam/face_auth/interfaces/innerkits/faceauth/src/face_auth_stub.cpp",
"src/face_auth_client.cpp",
"src/face_auth_innerkit.cpp",
"src/face_auth_proxy.cpp",
"src/face_auth_stub.cpp",
]
public_configs = [ ":faceauth_framework_public_config" ]
configs = [ "//base/user_iam/user_auth/common:iam_log_config" ]
include_dirs = [
"//base/user_iam/face_auth/common/include",
"//base/user_iam/face_auth/interfaces/innerkits/faceauth/include",
"//foundation/multimedia/camera_standard/interfaces/inner_api/native/camera/include",
"//foundation/multimedia/camera_standard/services/camera_service/binder/base/include",
"//utils/native/base/include",
"//base/user_iam/user_auth/common/utils",
"//base/user_iam/face_auth/common/inc",
]
if (ability_runtime_graphics) {
@@ -52,6 +46,7 @@ ohos_shared_library("faceauth_framework") {
"hiviewdfx_hilog_native:libhilog",
"ipc:ipc_core",
"samgr_standard:samgr_proxy",
"utils_base:utils",
]
subsystem_name = "useriam"
@@ -17,29 +17,24 @@
#define FACE_AUTH_CLIENT_H
#include <list>
#include "nocopyable.h"
#include "singleton.h"
#include "iface_auth.h"
namespace OHOS {
namespace UserIAM {
namespace FaceAuth {
class FaceAuthClient : public IRemoteObject::DeathRecipient {
DECLARE_DELAYED_SINGLETON(FaceAuthClient);
DISALLOW_COPY_AND_MOVE(FaceAuthClient);
class FaceAuthClient : public IRemoteObject::DeathRecipient, public Singleton<FaceAuthClient> {
public:
void ResetFaceAuthProxy();
static std::shared_ptr<FaceAuthClient> GetInstance();
int32_t SetBufferProducer(sptr<IBufferProducer> &producer);
virtual void OnRemoteDied(const wptr<IRemoteObject> &remote);
void OnRemoteDied(const wptr<IRemoteObject> &remote) override;
private:
sptr<IFaceAuth> GetFaceAuthProxy();
static std::mutex mutex_;
static std::shared_ptr<FaceAuthClient> instance_;
std::mutex mutex_;
sptr<IFaceAuth> faceAuthProxy_;
sptr<IRemoteObject::DeathRecipient> recipient_;
};
} // namespace FaceAuth
} // namespace UserIAM
@@ -17,24 +17,27 @@
#define FACE_AUTH_PROXY_H
#include <list>
#include "iface_auth.h"
#include "iremote_proxy.h"
#include "nocopyable.h"
#include "iface_auth.h"
namespace OHOS {
namespace UserIAM {
namespace FaceAuth {
class FaceAuthProxy : public IRemoteProxy<IFaceAuth> {
class FaceAuthProxy : public IRemoteProxy<IFaceAuth>, public NoCopyable {
public:
explicit FaceAuthProxy(const sptr<IRemoteObject> &object);
virtual ~FaceAuthProxy() override;
virtual int32_t SetBufferProducer(sptr<IBufferProducer> &producer) override;
~FaceAuthProxy() override = default;
int32_t SetBufferProducer(sptr<IBufferProducer> &producer) override;
private:
bool SendRequest(uint32_t code, MessageParcel &data, MessageParcel &reply);
static inline BrokerDelegator<FaceAuthProxy> delegator_;
static BrokerDelegator<FaceAuthProxy> delegator_;
};
} // namespace FaceAuth
} // namespace UserIAM
} // namespace OHOS
} // namespace FaceAuth
} // namespace UserIAM
} // namespace OHOS
#endif // FACE_AUTH_PROXY_H
#endif // FACE_AUTH_PROXY_H
@@ -17,30 +17,30 @@
#define FACE_AUTH_STUB_H
#include <map>
#include "face_auth_log_wrapper.h"
#include "iface_auth.h"
#include "iremote_stub.h"
#include "nocopyable.h"
#include "iface_auth.h"
namespace OHOS {
namespace UserIAM {
namespace FaceAuth {
class FaceAuthStub : public IRemoteStub<IFaceAuth> {
class FaceAuthStub : public IRemoteStub<IFaceAuth>, public NoCopyable {
public:
FaceAuthStub();
virtual ~FaceAuthStub() override;
virtual int32_t OnRemoteRequest(uint32_t code, MessageParcel &data, MessageParcel &reply,
MessageOption &option) override;
~FaceAuthStub() override = default;
int32_t OnRemoteRequest(
uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) override;
private:
DISALLOW_COPY_AND_MOVE(FaceAuthStub);
using Handler = int32_t (FaceAuthStub::*)(MessageParcel &data, MessageParcel &reply);
std::map<uint32_t, Handler> keyToHandle_;
void RegisterKeyToHandle();
int32_t FaceAuthSetBufferProducer(MessageParcel &data, MessageParcel &reply);
};
} // namespace FaceAuth
} // namespace UserIAM
} // namespace OHOS
} // namespace FaceAuth
} // namespace UserIAM
} // namespace OHOS
#endif // FACE_AUTH_STUB_H
#endif // FACE_AUTH_STUB_H
@@ -17,11 +17,13 @@
#define IFACE_AUTH_H
#include <list>
#include <vector>
#include "face_auth_defines.h"
#include "iremote_broker.h"
#include "iremote_object.h"
#include "surface.h"
#include "face_auth_defines.h"
namespace OHOS {
namespace UserIAM {
namespace FaceAuth {
@@ -40,8 +42,8 @@ public:
FACE_AUTH_SET_BUFFER_PRODUCER = 1,
};
};
} // namespace FaceAuth
} // namespace UserIAM
} // namespace OHOS
} // namespace FaceAuth
} // namespace UserIAM
} // namespace OHOS
#endif // IFACE_AUTH_H
#endif // IFACE_AUTH_H
@@ -14,36 +14,34 @@
*/
#include "face_auth_client.h"
#include "face_auth_log_wrapper.h"
#include "iservice_registry.h"
#include "system_ability_definition.h"
#include "iam_logger.h"
#define LOG_LABEL UserIAM::Common::LABEL_FACE_AUTH_SDK
namespace OHOS {
namespace UserIAM {
namespace FaceAuth {
std::shared_ptr<FaceAuthClient> FaceAuthClient::instance_ = nullptr;
std::mutex FaceAuthClient::mutex_;
FaceAuthClient::FaceAuthClient() = default;
FaceAuthClient::~FaceAuthClient() = default;
int32_t FaceAuthClient::SetBufferProducer(sptr<IBufferProducer> &producer)
{
FACEAUTH_HILOGI(MODULE_FRAMEWORK, "start");
IAM_LOGI("start");
sptr<IFaceAuth> proxy = GetFaceAuthProxy();
if (proxy == nullptr) {
FACEAUTH_HILOGE(MODULE_FRAMEWORK, "get faceAuthProxy fail");
return FA_RET_ERROR;
IAM_LOGE("get faceAuthProxy fail");
return FACEAUTH_ERROR;
}
return proxy->SetBufferProducer(producer);
}
void FaceAuthClient::OnRemoteDied(const wptr<IRemoteObject> &remote)
{
FACEAUTH_HILOGI(MODULE_FRAMEWORK, "start");
IAM_LOGI("start");
std::lock_guard<std::mutex> lock(mutex_);
if ((faceAuthProxy_ != nullptr) && (faceAuthProxy_->AsObject() != nullptr)) {
faceAuthProxy_->AsObject()->RemoveDeathRecipient(recipient_);
recipient_ = nullptr;
faceAuthProxy_->AsObject()->RemoveDeathRecipient(this);
}
faceAuthProxy_ = nullptr;
return;
@@ -51,26 +49,28 @@ void FaceAuthClient::OnRemoteDied(const wptr<IRemoteObject> &remote)
sptr<IFaceAuth> FaceAuthClient::GetFaceAuthProxy()
{
FACEAUTH_HILOGI(MODULE_FRAMEWORK, "start");
IAM_LOGI("start");
std::lock_guard<std::mutex> lock(mutex_);
if (faceAuthProxy_ != nullptr) {
return faceAuthProxy_;
}
sptr<ISystemAbilityManager> systemAbilityManager =
SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
if (systemAbilityManager == nullptr) {
FACEAUTH_HILOGE(MODULE_FRAMEWORK, "failed to get systemAbilityManager.");
IAM_LOGE("failed to get systemAbilityManager.");
return nullptr;
}
sptr<IRemoteObject> remoteObject = systemAbilityManager->GetSystemAbility(SUBSYS_USERIAM_SYS_ABILITY_FACEAUTH);
if (remoteObject == nullptr) {
FACEAUTH_HILOGE(MODULE_FRAMEWORK, "failed to get remoteObject.");
IAM_LOGE("failed to get remoteObject.");
return nullptr;
}
faceAuthProxy_ = iface_cast<IFaceAuth>(remoteObject);
if ((faceAuthProxy_ == nullptr) || (faceAuthProxy_->AsObject() == nullptr)) {
FACEAUTH_HILOGE(MODULE_FRAMEWORK, "failed to get faceAuthProxy_");
IAM_LOGE("failed to get faceAuthProxy_");
return nullptr;
}
@@ -14,15 +14,15 @@
*/
#include "face_auth_innerkit.h"
#include "face_auth_client.h"
#include "face_auth_log_wrapper.h"
namespace OHOS {
namespace UserIAM {
namespace FaceAuth {
int32_t FaceAuthInnerKit::SetBufferProducer(sptr<IBufferProducer> producer)
{
return DelayedSingleton<FaceAuthClient>::GetInstance()->SetBufferProducer(producer);
return Singleton<FaceAuthClient>::GetInstance().SetBufferProducer(producer);
}
} // namespace FaceAuth
} // namespace UserIAM
@@ -14,19 +14,16 @@
*/
#include "face_auth_proxy.h"
#include "face_auth_log_wrapper.h"
#include "iam_logger.h"
#define LOG_LABEL UserIAM::Common::LABEL_FACE_AUTH_SDK
namespace OHOS {
namespace UserIAM {
namespace FaceAuth {
FaceAuthProxy::FaceAuthProxy(const sptr<IRemoteObject> &object) : IRemoteProxy<IFaceAuth>(object)
{
FACEAUTH_HILOGI(MODULE_FRAMEWORK, "start");
}
FaceAuthProxy::~FaceAuthProxy()
{
FACEAUTH_HILOGI(MODULE_FRAMEWORK, "start");
}
int32_t FaceAuthProxy::SetBufferProducer(sptr<IBufferProducer> &bufferProducer)
@@ -34,37 +31,37 @@ int32_t FaceAuthProxy::SetBufferProducer(sptr<IBufferProducer> &bufferProducer)
MessageParcel data;
MessageParcel reply;
if (!data.WriteInterfaceToken(FaceAuthProxy::GetDescriptor())) {
FACEAUTH_HILOGE(MODULE_FRAMEWORK, "write descriptor failed");
return FA_RET_ERROR;
IAM_LOGE("write descriptor failed");
return FACEAUTH_ERROR;
}
if (bufferProducer != nullptr) {
if (!data.WriteRemoteObject(bufferProducer->AsObject())) {
FACEAUTH_HILOGE(MODULE_FRAMEWORK, "failed to WriteRemoteObject(bufferProducer).");
return FA_RET_ERROR;
IAM_LOGE("failed to WriteRemoteObject(bufferProducer).");
return FACEAUTH_ERROR;
}
}
bool ret = SendRequest(FACE_AUTH_SET_BUFFER_PRODUCER, data, reply);
if (!ret) {
FACEAUTH_HILOGE(MODULE_FRAMEWORK, "failed to send request.");
return FA_RET_ERROR;
IAM_LOGE("failed to send request.");
return FACEAUTH_ERROR;
}
int32_t result = reply.ReadInt32();
FACEAUTH_HILOGI(MODULE_FRAMEWORK, "result = %{public}d", result);
IAM_LOGI("result = %{public}d", result);
return result;
}
bool FaceAuthProxy::SendRequest(uint32_t code, MessageParcel &data, MessageParcel &reply)
{
FACEAUTH_HILOGI(MODULE_FRAMEWORK, "start");
IAM_LOGI("start");
sptr<IRemoteObject> remote = Remote();
if (remote == nullptr) {
FACEAUTH_HILOGE(MODULE_FRAMEWORK, "failed to get remote.");
IAM_LOGE("failed to get remote.");
return false;
}
MessageOption option(MessageOption::TF_SYNC);
int32_t result = remote->SendRequest(code, data, reply, option);
if (result != OHOS::NO_ERROR) {
FACEAUTH_HILOGE(MODULE_FRAMEWORK, "failed to SendRequest.result = %{public}d", result);
IAM_LOGE("failed to SendRequest.result = %{public}d", result);
return false;
}
return true;
@@ -14,23 +14,24 @@
*/
#include "face_auth_stub.h"
#include "securec.h"
#include "face_auth_log_wrapper.h"
#include "iam_check.h"
#include "iam_logger.h"
#include "iam_para2str.h"
#define LOG_LABEL UserIAM::Common::LABEL_FACE_AUTH_SDK
namespace OHOS {
namespace UserIAM {
namespace FaceAuth {
FaceAuthStub::FaceAuthStub()
{
FACEAUTH_HILOGI(MODULE_FRAMEWORK, "start");
IAM_LOGI("start");
RegisterKeyToHandle();
}
FaceAuthStub::~FaceAuthStub()
{
FACEAUTH_HILOGI(MODULE_FRAMEWORK, "start");
}
void FaceAuthStub::RegisterKeyToHandle()
{
keyToHandle_[FACE_AUTH_SET_BUFFER_PRODUCER] = &FaceAuthStub::FaceAuthSetBufferProducer;
@@ -40,36 +41,32 @@ int32_t FaceAuthStub::FaceAuthSetBufferProducer(MessageParcel &data, MessageParc
{
sptr<IBufferProducer> buffer = nullptr;
sptr<IRemoteObject> remoteObj = data.ReadRemoteObject();
FACEAUTH_HILOGI(MODULE_FRAMEWORK, "read remote object %{public}s",
getPointerNullString(remoteObj).c_str());
if (remoteObj != nullptr) {
buffer = iface_cast<OHOS::IBufferProducer>(remoteObj);
}
IAM_LOGI("read remote object %{public}s", Common::GetPointerNullStateString(remoteObj).c_str());
buffer = iface_cast<OHOS::IBufferProducer>(remoteObj);
int32_t ret = SetBufferProducer(buffer);
FACEAUTH_HILOGI(MODULE_FRAMEWORK, "SetBufferProducer ret %{public}d", ret);
IAM_LOGI("SetBufferProducer ret %{public}d", ret);
if (!reply.WriteInt32(ret)) {
FACEAUTH_HILOGE(MODULE_FRAMEWORK, "failed to WriteInt32(ret)");
return FA_RET_OK;
IAM_LOGE("failed to WriteInt32(ret)");
return FACEAUTH_ERROR;
}
return FA_RET_OK;
return FACEAUTH_SUCCESS;
}
int32_t FaceAuthStub::OnRemoteRequest(uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option)
{
FACEAUTH_HILOGI(MODULE_FRAMEWORK, "start");
IAM_LOGI("start");
if (data.ReadInterfaceToken() != FaceAuthStub::GetDescriptor()) {
FACEAUTH_HILOGE(MODULE_FRAMEWORK, "descriptor is not matched");
return FA_RET_ERROR;
IAM_LOGE("descriptor is not matched");
return FACEAUTH_ERROR;
}
auto itFunc = keyToHandle_.find(code);
if (itFunc != keyToHandle_.end()) {
auto requestFunc = itFunc->second;
if (requestFunc != nullptr) {
return (this->*requestFunc)(data, reply);
}
if (itFunc == keyToHandle_.end()) {
IAM_LOGE("key not match, send to IPCObjectStub on default");
return IPCObjectStub::OnRemoteRequest(code, data, reply, option);
}
FACEAUTH_HILOGI(MODULE_FRAMEWORK, "AbilitySchedulerStub::OnRemoteRequest, default case, ignore.");
return IPCObjectStub::OnRemoteRequest(code, data, reply, option);
auto requestFunc = itFunc->second;
IF_FALSE_LOGE_AND_RETURN_VAL(requestFunc != nullptr, FACEAUTH_ERROR);
return (this->*requestFunc)(data, reply);
}
} // namespace FaceAuth
} // namespace UserIAM
+3 -12
View File
@@ -14,13 +14,6 @@
import("//build/ohos.gni")
import("//foundation/aafwk/standard/aafwk.gni")
group("faceauthservice_group") {
deps = []
if (ability_runtime_graphics) {
deps += [ ":faceauthservice" ]
}
}
ohos_shared_library("faceauthservice") {
sources = [
"src/face_auth_driver_hdi.cpp",
@@ -29,19 +22,17 @@ ohos_shared_library("faceauthservice") {
"src/face_auth_service.cpp",
]
include_dirs = [
"include",
"../common/include",
"//base/user_iam/user_auth/interfaces/inner_api/include/userauth/",
"inc",
"//base/user_iam/face_auth/common/inc",
"//base/user_iam/user_auth/common/logs",
"//base/user_iam/user_auth/common/utils",
]
deps = [
"//base/user_iam/face_auth/interfaces/innerkits/faceauth:faceauth_framework",
"//base/user_iam/face_auth/frameworks/face_auth:faceauth_framework",
"//base/user_iam/user_auth/common/executors:userauth_executors",
]
external_deps = [
"device_driver_framework:libhdf_utils",
"faceauth_device_driver_interface:libfaceauth_proxy_1.0",
"hiviewdfx_hilog_native:libhilog",
"safwk:system_ability_fwk",
@@ -16,12 +16,13 @@
#ifndef FACE_AUTH_DRIVER_HDI
#define FACE_AUTH_DRIVER_HDI
#include <iauth_driver_hdi.h>
#include <vector>
#include "nocopyable.h"
#include "iauth_driver_hdi.h"
#include "iauth_executor_hdi.h"
#include "iremote_broker.h"
#include "nocopyable.h"
#include "v1_0/face_auth_interface_proxy.h"
namespace OHOS {
@@ -31,9 +32,9 @@ namespace FaceHdi = OHOS::HDI::FaceAuth::V1_0;
class FaceAuthDriverHdi : public UserAuth::IAuthDriverHdi, public NoCopyable {
public:
FaceAuthDriverHdi() = default;
virtual ~FaceAuthDriverHdi() = default;
~FaceAuthDriverHdi() override = default;
void GetExecutorList(std::vector<std::shared_ptr<UserAuth::IAuthExecutorHdi>> &executorList);
void GetExecutorList(std::vector<std::shared_ptr<UserAuth::IAuthExecutorHdi>> &executorList) override;
};
} // namespace FaceAuth
} // namespace UserIAM
@@ -17,11 +17,12 @@
#define FACE_AUTH_EXECUTOR_CALLBACK_HDI
#include <cstdint>
#include <hdf_base.h>
#include "hdf_base.h"
#include "nocopyable.h"
#include "iexecute_callback.h"
#include "iexecutor_messenger.h"
#include "nocopyable.h"
#include "v1_0/executor_callback_stub.h"
namespace OHOS {
@@ -31,7 +32,7 @@ namespace FaceHdi = OHOS::HDI::FaceAuth::V1_0;
class FaceAuthExecutorCallbackHdi : public FaceHdi::IExecutorCallback, public NoCopyable {
public:
explicit FaceAuthExecutorCallbackHdi(std::shared_ptr<UserAuth::IExecuteCallback> frameworkCallback);
virtual ~FaceAuthExecutorCallbackHdi() = default;
~FaceAuthExecutorCallbackHdi() override = default;
// FaceHdi::IExecutorCallback
int32_t OnResult(int32_t result, const std::vector<uint8_t> &extraInfo) override;
@@ -18,13 +18,14 @@
#include <cstdint>
#include <map>
#include <v1_0/executor_proxy.h>
#include <vector>
#include "nocopyable.h"
#include "framework_types.h"
#include "iauth_executor_hdi.h"
#include "iexecute_callback.h"
#include "nocopyable.h"
#include "v1_0/executor_proxy.h"
namespace OHOS {
namespace UserIAM {
@@ -33,23 +34,23 @@ namespace FaceHdi = OHOS::HDI::FaceAuth::V1_0;
class FaceAuthExecutorHdi : public UserAuth::IAuthExecutorHdi, public NoCopyable {
public:
explicit FaceAuthExecutorHdi(sptr<FaceHdi::IExecutor> executorProxy);
virtual ~FaceAuthExecutorHdi() = default;
~FaceAuthExecutorHdi() override = default;
UserIAM::ResultCode GetExecutorInfo(UserIAM::ExecutorInfo &info);
UserIAM::ResultCode GetTemplateInfo(uint64_t templateId, UserAuth::TemplateInfo &info);
UserIAM::ResultCode GetExecutorInfo(UserIAM::ExecutorInfo &info) override;
UserIAM::ResultCode GetTemplateInfo(uint64_t templateId, UserAuth::TemplateInfo &info) override;
UserIAM::ResultCode OnRegisterFinish(const std::vector<uint64_t> &templateIdList,
const std::vector<uint8_t> &frameworkPublicKey, const std::vector<uint8_t> &extraInfo);
const std::vector<uint8_t> &frameworkPublicKey, const std::vector<uint8_t> &extraInfo) override;
UserIAM::ResultCode Enroll(uint64_t scheduleId, uint64_t callerUid, const std::vector<uint8_t> &extraInfo,
const std::shared_ptr<UserAuth::IExecuteCallback> &callbackObj);
const std::shared_ptr<UserAuth::IExecuteCallback> &callbackObj) override;
UserIAM::ResultCode Authenticate(uint64_t scheduleId, uint64_t callerUid,
const std::vector<uint64_t> &templateIdList, const std::vector<uint8_t> &extraInfo,
const std::shared_ptr<UserAuth::IExecuteCallback> &callbackObj);
const std::shared_ptr<UserAuth::IExecuteCallback> &callbackObj) override;
UserIAM::ResultCode Identify(uint64_t scheduleId, uint64_t callerUid, const std::vector<uint8_t> &extraInfo,
const std::shared_ptr<UserAuth::IExecuteCallback> &callbackObj);
UserIAM::ResultCode Delete(const std::vector<uint64_t> &templateIdList);
UserIAM::ResultCode Cancel(uint64_t scheduleId);
const std::shared_ptr<UserAuth::IExecuteCallback> &callbackObj) override;
UserIAM::ResultCode Delete(const std::vector<uint64_t> &templateIdList) override;
UserIAM::ResultCode Cancel(uint64_t scheduleId) override;
UserIAM::ResultCode SendCommand(UserAuth::AuthPropertyMode commandId, const std::vector<uint8_t> &extraInfo,
const std::shared_ptr<UserAuth::IExecuteCallback> &callbackObj);
const std::shared_ptr<UserAuth::IExecuteCallback> &callbackObj) override;
private:
UserIAM::ResultCode MoveHdiExecutorInfo(FaceHdi::ExecutorInfo &in, UserIAM::ExecutorInfo &out);
@@ -15,24 +15,24 @@
#ifndef FACE_AUTH_SERVICE_H
#define FACE_AUTH_SERVICE_H
#include "face_auth_stub.h"
#include <cstdint>
#include <mutex>
#include "nocopyable.h"
#include "system_ability.h"
#include "surface.h"
#include "system_ability.h"
#include "face_auth_stub.h"
namespace OHOS {
namespace UserIAM {
namespace FaceAuth {
class FaceAuthService : public SystemAbility, public FaceAuthStub, public NoCopyable {
class FaceAuthService : public SystemAbility, public FaceAuthStub {
DECLEAR_SYSTEM_ABILITY(FaceAuthService);
public:
FaceAuthService();
virtual ~FaceAuthService() = default;
~FaceAuthService() override = default;
static std::shared_ptr<FaceAuthService> GetInstance();
void OnStart() override;
@@ -70,12 +70,13 @@ UserIAM::ResultCode FaceAuthExecutorCallbackHdi::ConvertResultCode(const int32_t
};
UserIAM::ResultCode out;
if (data.count(hdiIn) == 0) {
auto iter = data.find(hdiIn);
if (iter == data.end()) {
out = UserIAM::ResultCode::GENERAL_ERROR;
IAM_LOGE("convert hdi undefined result code %{public}d to framework result code %{public}d", in, out);
return out;
}
out = data.at(hdiIn);
out = iter->second;
IAM_LOGI("covert hdi result code %{public}d to framework result code %{public}d", hdiIn, out);
return out;
}
+44 -38
View File
@@ -15,9 +15,10 @@
#include "face_auth_executor_hdi.h"
#include "hdf_base.h"
#include "face_auth_defines.h"
#include "face_auth_executor_callback_hdi.h"
#include "hdf_base.h"
#include "iam_check.h"
#include "iam_logger.h"
@@ -35,12 +36,12 @@ UserIAM::ResultCode FaceAuthExecutorHdi::GetExecutorInfo(UserIAM::ExecutorInfo &
int32_t status = executorProxy_->GetExecutorInfo(localInfo);
UserIAM::ResultCode result = ConvertResultCode(status);
if (result != UserIAM::ResultCode::SUCCESS) {
IAM_LOGE("GetExecutorInfo fail ret=%{public}d", result);
IAM_LOGE("GetExecutorInfo fail result %{public}d", result);
return result;
}
int32_t ret = MoveHdiExecutorInfo(localInfo, info);
if (ret != UserIAM::ResultCode::SUCCESS) {
IAM_LOGE("MoveHdiExecutorInfo fail ret=%{public}d", ret);
result = MoveHdiExecutorInfo(localInfo, info);
if (result != UserIAM::ResultCode::SUCCESS) {
IAM_LOGE("MoveHdiExecutorInfo fail result %{public}d", result);
return UserIAM::ResultCode::GENERAL_ERROR;
}
return UserIAM::ResultCode::SUCCESS;
@@ -53,12 +54,12 @@ UserIAM::ResultCode FaceAuthExecutorHdi::GetTemplateInfo(uint64_t templateId, Us
int32_t status = executorProxy_->GetTemplateInfo(templateId, localInfo);
UserIAM::ResultCode result = ConvertResultCode(status);
if (result != UserIAM::ResultCode::SUCCESS) {
IAM_LOGE("GetTemplateInfo fail ret=%{public}d", result);
IAM_LOGE("GetTemplateInfo fail result %{public}d", result);
return result;
}
int32_t ret = MoveHdiTemplateInfo(localInfo, info);
if (ret != UserIAM::ResultCode::SUCCESS) {
IAM_LOGE("MoveHdiTemplateInfo fail ret=%{public}d", ret);
result = MoveHdiTemplateInfo(localInfo, info);
if (result != UserIAM::ResultCode::SUCCESS) {
IAM_LOGE("MoveHdiTemplateInfo fail result %{public}d", result);
return UserIAM::ResultCode::GENERAL_ERROR;
}
return UserIAM::ResultCode::SUCCESS;
@@ -71,7 +72,7 @@ UserIAM::ResultCode FaceAuthExecutorHdi::OnRegisterFinish(const std::vector<uint
int32_t status = executorProxy_->OnRegisterFinish(templateIdList, frameworkPublicKey, extraInfo);
UserIAM::ResultCode result = ConvertResultCode(status);
if (result != UserIAM::ResultCode::SUCCESS) {
IAM_LOGE("OnRegisterFinish fail ret=%{public}d", status);
IAM_LOGE("OnRegisterFinish fail result %{public}d", status);
return result;
}
return UserIAM::ResultCode::SUCCESS;
@@ -86,7 +87,7 @@ UserIAM::ResultCode FaceAuthExecutorHdi::Enroll(uint64_t scheduleId, uint64_t ca
int32_t status = executorProxy_->Enroll(scheduleId, extraInfo, callback);
UserIAM::ResultCode result = ConvertResultCode(status);
if (result != UserIAM::ResultCode::SUCCESS) {
IAM_LOGE("Enroll fail ret=%{public}d", result);
IAM_LOGE("Enroll fail result %{public}d", result);
return result;
}
return UserIAM::ResultCode::SUCCESS;
@@ -102,7 +103,7 @@ UserIAM::ResultCode FaceAuthExecutorHdi::Authenticate(uint64_t scheduleId, uint6
int32_t status = executorProxy_->Authenticate(scheduleId, templateIdList, extraInfo, callback);
UserIAM::ResultCode result = ConvertResultCode(status);
if (result != UserIAM::ResultCode::SUCCESS) {
IAM_LOGE("Authenticate fail ret=%{public}d", result);
IAM_LOGE("Authenticate fail result %{public}d", result);
return result;
}
return UserIAM::ResultCode::SUCCESS;
@@ -117,7 +118,7 @@ UserIAM::ResultCode FaceAuthExecutorHdi::Identify(uint64_t scheduleId, uint64_t
int32_t status = executorProxy_->Identify(scheduleId, extraInfo, callback);
UserIAM::ResultCode result = ConvertResultCode(status);
if (result != UserIAM::ResultCode::SUCCESS) {
IAM_LOGE("Identify fail ret=%{public}d", result);
IAM_LOGE("Identify fail result %{public}d", result);
return result;
}
return UserIAM::ResultCode::SUCCESS;
@@ -129,7 +130,7 @@ UserIAM::ResultCode FaceAuthExecutorHdi::Delete(const std::vector<uint64_t> &tem
int32_t status = executorProxy_->Delete(templateIdList);
UserIAM::ResultCode result = ConvertResultCode(status);
if (result != UserIAM::ResultCode::SUCCESS) {
IAM_LOGE("Delete fail ret=%{public}d", result);
IAM_LOGE("Delete fail result %{public}d", result);
return result;
}
return UserIAM::ResultCode::SUCCESS;
@@ -141,7 +142,7 @@ UserIAM::ResultCode FaceAuthExecutorHdi::Cancel(uint64_t scheduleId)
int32_t status = executorProxy_->Cancel(scheduleId);
UserIAM::ResultCode result = ConvertResultCode(status);
if (result != UserIAM::ResultCode::SUCCESS) {
IAM_LOGE("Cancel fail ret=%{public}d", result);
IAM_LOGE("Cancel fail result %{public}d", result);
return result;
}
return UserIAM::ResultCode::SUCCESS;
@@ -152,16 +153,16 @@ UserIAM::ResultCode FaceAuthExecutorHdi::SendCommand(UserAuth::AuthPropertyMode
{
IF_FALSE_LOGE_AND_RETURN_VAL(executorProxy_ != nullptr, UserIAM::ResultCode::GENERAL_ERROR);
FaceHdi::CommandId hdiCommandId;
int32_t ret = ConvertCommandId(commandId, hdiCommandId);
if (ret != UserIAM::ResultCode::SUCCESS) {
IAM_LOGE("ConvertCommandId fail ret=%{public}d", ret);
UserIAM::ResultCode result = ConvertCommandId(commandId, hdiCommandId);
if (result != UserIAM::ResultCode::SUCCESS) {
IAM_LOGE("ConvertCommandId fail result %{public}d", result);
return UserIAM::ResultCode::GENERAL_ERROR;
}
int32_t status = executorProxy_->SendCommand(hdiCommandId, extraInfo,
sptr<FaceHdi::IExecutorCallback>(new (std::nothrow) FaceAuthExecutorCallbackHdi(callbackObj)));
UserIAM::ResultCode result = ConvertResultCode(status);
result = ConvertResultCode(status);
if (status != UserIAM::ResultCode::SUCCESS) {
IAM_LOGE("SendCommand fail ret=%{public}d", status);
IAM_LOGE("SendCommand fail result %{public}d", status);
return result;
}
return UserIAM::ResultCode::SUCCESS;
@@ -171,19 +172,19 @@ UserIAM::ResultCode FaceAuthExecutorHdi::MoveHdiExecutorInfo(FaceHdi::ExecutorIn
{
out.executorId = static_cast<int32_t>(in.sensorId);
out.executorType = static_cast<int32_t>(in.executorType);
int32_t ret = ConvertExecutorRole(in.executorRole, out.role);
if (ret != UserIAM::ResultCode::SUCCESS) {
UserIAM::ResultCode result = ConvertExecutorRole(in.executorRole, out.role);
if (result != UserIAM::ResultCode::SUCCESS) {
IAM_LOGE("executorProxy is null");
return UserIAM::ResultCode::GENERAL_ERROR;
}
ret = ConvertAuthType(in.authType, out.authType);
if (ret != UserIAM::ResultCode::SUCCESS) {
IAM_LOGE("ConvertAuthType fail ret=%{public}d", ret);
result = ConvertAuthType(in.authType, out.authType);
if (result != UserIAM::ResultCode::SUCCESS) {
IAM_LOGE("ConvertAuthType fail result %{public}d", result);
return UserIAM::ResultCode::GENERAL_ERROR;
}
ret = ConvertExecutorSecureLevel(in.esl, out.esl);
if (ret != UserIAM::ResultCode::SUCCESS) {
IAM_LOGE("ConvertExecutorSecureLevel fail ret=%{public}d", ret);
result = ConvertExecutorSecureLevel(in.esl, out.esl);
if (result != UserIAM::ResultCode::SUCCESS) {
IAM_LOGE("ConvertExecutorSecureLevel fail result %{public}d", result);
return UserIAM::ResultCode::GENERAL_ERROR;
}
in.publicKey.swap(out.publicKey);
@@ -210,11 +211,12 @@ UserIAM::ResultCode FaceAuthExecutorHdi::ConvertCommandId(const UserAuth::AuthPr
static const std::map<UserAuth::AuthPropertyMode, FaceHdi::CommandId> data = {
{UserAuth::AuthPropertyMode::PROPERMODE_FREEZE, FaceHdi::CommandId::LOCK_TEMPLATE},
{UserAuth::AuthPropertyMode::PROPERMODE_UNFREEZE, FaceHdi::CommandId::UNLOCK_TEMPLATE}};
if (data.count(in) == 0) {
auto iter = data.find(in);
if (iter == data.end()) {
IAM_LOGE("command id %{public}d is invalid", in);
return UserIAM::ResultCode::GENERAL_ERROR;
}
out = data.at(in);
out = iter->second;
IAM_LOGI("covert command id %{public}d to idl command is %{public}d", in, out);
return UserIAM::ResultCode::SUCCESS;
}
@@ -224,11 +226,12 @@ UserIAM::ResultCode FaceAuthExecutorHdi::ConvertAuthType(const FaceHdi::AuthType
static const std::map<FaceHdi::AuthType, UserIAM::AuthType> data = {
{FaceHdi::FACE, UserIAM::AuthType::FACE},
};
if (data.count(in) == 0) {
auto iter = data.find(in);
if (iter == data.end()) {
IAM_LOGE("authType %{public}d is invalid", in);
return UserIAM::ResultCode::GENERAL_ERROR;
}
out = data.at(in);
out = iter->second;
return UserIAM::ResultCode::SUCCESS;
}
@@ -239,11 +242,12 @@ UserIAM::ResultCode FaceAuthExecutorHdi::ConvertExecutorRole(const FaceHdi::Exec
{FaceHdi::ExecutorRole::VERIFIER, UserIAM::ExecutorRole::VERIFIER},
{FaceHdi::ExecutorRole::ALL_IN_ONE, UserIAM::ExecutorRole::ALL_IN_ONE},
};
if (data.count(in) == 0) {
auto iter = data.find(in);
if (iter == data.end()) {
IAM_LOGE("executorRole %{public}d is invalid", in);
return UserIAM::ResultCode::GENERAL_ERROR;
}
out = data.at(in);
out = iter->second;
return UserIAM::ResultCode::SUCCESS;
}
@@ -256,11 +260,12 @@ UserIAM::ResultCode FaceAuthExecutorHdi::ConvertExecutorSecureLevel(
{FaceHdi::ExecutorSecureLevel::ESL2, UserIAM::ExecutorSecureLevel::ESL2},
{FaceHdi::ExecutorSecureLevel::ESL3, UserIAM::ExecutorSecureLevel::ESL3},
};
if (data.count(in) == 0) {
auto iter = data.find(in);
if (iter == data.end()) {
IAM_LOGE("executorSecureLevel %{public}d is invalid", in);
return UserIAM::ResultCode::GENERAL_ERROR;
}
out = data.at(in);
out = iter->second;
return UserIAM::ResultCode::SUCCESS;
}
@@ -276,10 +281,11 @@ UserIAM::ResultCode FaceAuthExecutorHdi::ConvertResultCode(const int32_t in)
};
UserIAM::ResultCode out;
if (data.count(hdfIn) == 0) {
auto iter = data.find(hdfIn);
if (iter == data.end()) {
out = UserIAM::ResultCode::GENERAL_ERROR;
} else {
out = data.at(hdfIn);
out = iter->second;
}
IAM_LOGE("covert hdi result code %{public}d to framework result code %{public}d", in, out);
return out;
+3 -2
View File
@@ -17,14 +17,15 @@
#include <map>
#include "idriver_manager.h"
#include "system_ability_definition.h"
#include "face_auth_defines.h"
#include "face_auth_driver_hdi.h"
#include "iam_check.h"
#include "iam_logger.h"
#include "iam_para2str.h"
#include "iam_ptr.h"
#include "idriver_manager.h"
#include "system_ability_definition.h"
#define LOG_LABEL UserIAM::Common::LABEL_FACE_AUTH_SA