1/* 2 * Copyright (c) 2024-2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15#ifndef SIGNATRUETOOLS_PROFILE_INFO_H 16#define SIGNATRUETOOLS_PROFILE_INFO_H 17 18#include <string> 19#include <vector> 20#include <memory> 21 22#include "export_define.h" 23 24namespace OHOS { 25namespace SignatureTools { 26 27enum ProvisionType { 28 NONE_PROVISION_TYPE, 29 RELEASE, 30 DEBUG 31}; 32enum AppDistType { 33 NONE_TYPE, 34 APP_GALLERY, 35 ENTERPRISE, 36 OS_INTEGRATION, 37 CROWDTESTING, 38 ENTERPRISE_NORMAL, 39 ENTERPRISE_MDM 40}; 41typedef struct BundleInfoSt { 42 std::string developerId; 43 std::string apl; 44 std::string distributionCertificate; 45 std::string developmentCertificate; 46 std::string bundleName; 47 std::string appIdentifier; 48 std::vector<std::string> dataGroupIds; 49 std::string appFeature; 50}BundleInfo; 51typedef struct AclsSt { 52 std::vector<std::string> allowedAcls; 53}Acls; 54typedef struct PermissionsSt { 55 std::vector<std::string> restrictedCapabilities; 56 std::vector<std::string> restrictedPermissions; 57}Permissions; 58typedef struct DebugInfoSt { 59 std::vector<std::string> deviceIds; 60 std::string deviceIdType; 61}DebugInfo; 62typedef struct ValiditySt { 63 int64_t notAfter = 0; 64 int64_t notBefore = 0; 65}Validity; 66typedef struct MetadataSt { 67 std::string value; 68 std::string resource; 69 std::string name; 70}Metadata; 71struct ProfileInfo { 72 DLL_EXPORT ProfileInfo(); 73 DLL_EXPORT ~ProfileInfo(); 74 DLL_EXPORT ProfileInfo(const ProfileInfo& info); 75 DLL_EXPORT ProfileInfo& operator=(const ProfileInfo& info); 76 int32_t versionCode = 0; 77 std::string uuid; 78 std::string versionName; 79 AppDistType distributionType = NONE_TYPE; 80 ProvisionType type = NONE_PROVISION_TYPE; 81 BundleInfoSt bundleInfo; 82 PermissionsSt permissions; 83 AclsSt acls; 84 std::string issuer; 85 DebugInfoSt debugInfo; 86 std::string fingerprint; 87 std::string appId; 88 std::vector<std::string> appPrivilegeCapabilities; 89 ValiditySt validity; 90 int32_t profileBlockLength = 0; 91 std::vector<MetadataSt> metadatas; 92 std::string organization; 93 std::string appServiceCapabilities; 94 std::unique_ptr<unsigned char[]> profileBlock; 95}; 96} // namespace SignatureTools 97} // namespace OHOS 98 99#endif // SIGNATRUETOOLS_PROFILE_INFO_H 100