From 4975ae28b917c6546a8eae47b3727f7dddbda8a9 Mon Sep 17 00:00:00 2001 From: ImCaO Date: Mon, 17 Jul 2023 18:34:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=AE=89=E8=A3=85=E4=BC=81?= =?UTF-8?q?=E4=B8=9A=20normal/mdm=20=E5=BA=94=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: ImCaO --- .../include/provision/provision_info.h | 2 ++ .../src/provision/provision_verify.cpp | 25 +++++++++++-------- .../appverify/src/verify/hap_verify_v2.cpp | 2 ++ .../appverify_lite/src/app_provision.c | 11 ++++++-- 4 files changed, 28 insertions(+), 12 deletions(-) diff --git a/interfaces/innerkits/appverify/include/provision/provision_info.h b/interfaces/innerkits/appverify/include/provision/provision_info.h index 4c7c472..70e554c 100644 --- a/interfaces/innerkits/appverify/include/provision/provision_info.h +++ b/interfaces/innerkits/appverify/include/provision/provision_info.h @@ -32,6 +32,8 @@ enum AppDistType { ENTERPRISE = 2, OS_INTEGRATION = 3, CROWDTESTING = 4, + ENTERPRISE_NORMAL = 5, + ENTERPRISE_MDM = 6, }; struct BundleInfo { diff --git a/interfaces/innerkits/appverify/src/provision/provision_verify.cpp b/interfaces/innerkits/appverify/src/provision/provision_verify.cpp index ceda2eb..749c00a 100644 --- a/interfaces/innerkits/appverify/src/provision/provision_verify.cpp +++ b/interfaces/innerkits/appverify/src/provision/provision_verify.cpp @@ -60,6 +60,8 @@ const string KEY_DEVELOPMENT_MODE = "const.product.developmentmode"; const string VALUE_TYPE_RELEASE = "release"; const string VALUE_DIST_TYPE_APP_GALLERY = "app_gallery"; const string VALUE_DIST_TYPE_ENTERPRISE = "enterprise"; +const string VALUE_DIST_TYPE_ENTERPRISE_NORMAL = "enterprise_normal"; +const string VALUE_DIST_TYPE_ENTERPRISE_MDM = "enterprise_mdm"; const string VALUE_DIST_TYPE_OS_INTEGRATION = "os_integration"; const string VALUE_DIST_TYPE_CROWDTESTING = "crowdtesting"; const string VALUE_DEVICE_ID_TYPE_UDID = "udid"; @@ -120,6 +122,15 @@ inline bool IsObjectExist(const json& obj, const string& key) namespace OHOS { namespace Security { namespace Verify { +const std::map distTypeMap = { + {VALUE_DIST_TYPE_APP_GALLERY, AppDistType::APP_GALLERY}, + {VALUE_DIST_TYPE_ENTERPRISE, AppDistType::ENTERPRISE}, + {VALUE_DIST_TYPE_ENTERPRISE_NORMAL, AppDistType::ENTERPRISE_NORMAL}, + {VALUE_DIST_TYPE_ENTERPRISE_MDM, AppDistType::ENTERPRISE_MDM}, + {VALUE_DIST_TYPE_OS_INTEGRATION, AppDistType::OS_INTEGRATION}, + {VALUE_DIST_TYPE_CROWDTESTING, AppDistType::CROWDTESTING} +}; + void ParseType(const json& obj, ProvisionInfo& out) { string type; @@ -132,17 +143,11 @@ void ParseAppDistType(const json& obj, ProvisionInfo& out) { string distType; GetStringIfExist(obj, KEY_APP_DIST_TYPE, distType); - if (distType == VALUE_DIST_TYPE_APP_GALLERY) { - out.distributionType = AppDistType::APP_GALLERY; - } else if (distType == VALUE_DIST_TYPE_ENTERPRISE) { - out.distributionType = AppDistType::ENTERPRISE; - } else if (distType == VALUE_DIST_TYPE_OS_INTEGRATION) { - out.distributionType = AppDistType::OS_INTEGRATION; - } else if (distType == VALUE_DIST_TYPE_CROWDTESTING) { - out.distributionType = AppDistType::CROWDTESTING; - } else { - out.distributionType = AppDistType::NONE_TYPE; + if (distTypeMap.find(distType) != distTypeMap.end()) { + out.distributionType = static_cast(distTypeMap.at(distType)); + return; } + out.distributionType = AppDistType::NONE_TYPE; } void ParseBundleInfo(const json& obj, ProvisionInfo& out) diff --git a/interfaces/innerkits/appverify/src/verify/hap_verify_v2.cpp b/interfaces/innerkits/appverify/src/verify/hap_verify_v2.cpp index 86512a9..09013f3 100644 --- a/interfaces/innerkits/appverify/src/verify/hap_verify_v2.cpp +++ b/interfaces/innerkits/appverify/src/verify/hap_verify_v2.cpp @@ -289,6 +289,8 @@ bool HapVerifyV2::IsAppDistributedTypeAllowInstall(const AppDistType& type, cons } return false; case AppDistType::ENTERPRISE: + case AppDistType::ENTERPRISE_NORMAL: + case AppDistType::ENTERPRISE_MDM: case AppDistType::OS_INTEGRATION: case AppDistType::CROWDTESTING: return true; diff --git a/interfaces/innerkits/appverify_lite/src/app_provision.c b/interfaces/innerkits/appverify_lite/src/app_provision.c index d45885b..299b014 100644 --- a/interfaces/innerkits/appverify_lite/src/app_provision.c +++ b/interfaces/innerkits/appverify_lite/src/app_provision.c @@ -21,6 +21,12 @@ #include "cJSON.h" #include "securec.h" +const char APP_GALLERY[] = "app_gallery"; +const char ENTERPRISE[] = "enterprise"; +const char ENTERPRISE_NORMAL[] = "enterprise_normal"; +const char ENTERPRISE_MDM[] = "enterprise_mdm"; +const char OS_INTEGRATION[] = "os_integration"; + static void ProfInit(ProfileProf *pf) { errno_t ret = memset_s(pf, sizeof(ProfileProf), 0, sizeof(ProfileProf)); @@ -339,8 +345,9 @@ static int VerifyAppTypeAndDistribution(const ProfileProf *pf) return V_ERR; } if (strcmp(pf->type, RELEASE_TYPE) == 0) { - if ((strcmp(pf->appDistType, "app_gallery") != 0) && (strcmp(pf->appDistType, "enterprise") != 0) && - (strcmp(pf->appDistType, "os_integration") != 0)) { + if ((strcmp(pf->appDistType, APP_GALLERY) != 0) && (strcmp(pf->appDistType, ENTERPRISE) != 0) && + (strcmp(pf->appDistType, ENTERPRISE_NORMAL) != 0) && (strcmp(pf->appDistType, ENTERPRISE_MDM) != 0) && + (strcmp(pf->appDistType, OS_INTEGRATION) != 0)) { LOG_PRINT_STR("invalid app dis type: %s", pf->appDistType); return V_ERR; } -- Gitee