1 /* 2 * Copyright (c) 2021 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 16 #ifndef FOUNDATION_APPEXECFWK_SERVICES_BUNDLEMGR_INCLUDE_COMMON_PROFILE_H 17 #define FOUNDATION_APPEXECFWK_SERVICES_BUNDLEMGR_INCLUDE_COMMON_PROFILE_H 18 19 #include <string> 20 21 #include "nlohmann/json.hpp" 22 23 namespace OHOS { 24 namespace AppExecFwk { 25 namespace ProfileReader { 26 27 // common tag 28 const std::string PROFILE_KEY_NAME = "name"; 29 const std::string PROFILE_KEY_ORIGINAL_NAME = "originalName"; 30 const std::string PROFILE_KEY_LABEL = "label"; 31 const std::string PROFILE_KEY_LABEL_ID = "labelId"; 32 const std::string PROFILE_KEY_DESCRIPTION = "description"; 33 const std::string PROFILE_KEY_DESCRIPTION_ID = "descriptionId"; 34 const std::string PROFILE_KEY_TYPE = "type"; 35 const std::string PROFILE_KEY_SRCPATH = "srcPath"; 36 const std::string PROFILE_KEY_SRCLANGUAGE = "srcLanguage"; 37 38 // bundle profile tag 39 const std::string BUNDLE_PROFILE_KEY_APP = "app"; 40 const std::string BUNDLE_PROFILE_KEY_DEVICE_CONFIG = "deviceConfig"; 41 const std::string BUNDLE_PROFILE_KEY_MODULE = "module"; 42 // sub BUNDLE_PROFILE_KEY_APP 43 const std::string BUNDLE_APP_PROFILE_KEY_BUNDLE_NAME = "bundleName"; 44 const std::string BUNDLE_APP_PROFILE_KEY_VENDOR = "vendor"; 45 const std::string BUNDLE_APP_PROFILE_KEY_VERSION = "version"; 46 const std::string BUNDLE_APP_PROFILE_KEY_API_VERSION = "apiVersion"; 47 // sub BUNDLE_APP_PROFILE_KEY_VERSION 48 const std::string BUNDLE_APP_PROFILE_KEY_CODE = "code"; 49 // sub BUNDLE_APP_PROFILE_KEY_API_VERSION 50 const std::string BUNDLE_APP_PROFILE_KEY_COMPATIBLE = "compatible"; 51 const std::string BUNDLE_APP_PROFILE_KEY_TARGET = "target"; 52 const std::string BUNDLE_APP_PROFILE_KEY_RELEASE_TYPE = "releaseType"; 53 const std::string APP_RELEASE_TYPE_VALUE_RELEASE = "Release"; 54 // sub BUNDLE_PROFILE_KEY_DEVICE_CONFIG 55 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_DEFAULT = "default"; 56 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_PHONE = "phone"; 57 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_TABLET = "tablet"; 58 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_TV = "tv"; 59 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_CAR = "car"; 60 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_WEARABLE = "wearable"; 61 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_LITE_WEARABLE = "liteWearable"; 62 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_SMART_VISION = "smartVision"; 63 // sub BUNDLE_DEVICE_CONFIG_PROFILE_KEY_DEFAULT 64 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_JOINT_USER_ID = "jointUserId"; 65 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_PROCESS = "process"; 66 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_KEEP_ALIVE = "keepAlive"; 67 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_ARK = "ark"; 68 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_DIRECT_LAUNCH = "directLaunch"; 69 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_SUPPORT_BACKUP = "supportBackup"; 70 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_COMPRESS_NATIVE_LIBS = "compressNativeLibs"; 71 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_NETWORK = "network"; 72 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_REQ_VERSION = "reqVersion"; 73 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_FLAG = "flag"; 74 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_COMPATIBLE = "compatible"; 75 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_TARGET = "target"; 76 // sub BUNDLE_DEVICE_CONFIG_PROFILE_KEY_NETWORK 77 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_USES_CLEAR_TEXT = "usesCleartext"; 78 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_SECURITY_CONFIG = "securityConfig"; 79 // sub BUNDLE_DEVICE_CONFIG_PROFILE_KEY_SECURITY_CONFIG 80 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_DOMAIN_SETTINGS = "domainSettings"; 81 // sub BUNDLE_DEVICE_CONFIG_PROFILE_KEY_DOMAIN_SETTINGS 82 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_CLEAR_TEXT_PERMITTED = "cleartextPermitted"; 83 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_DOMAINS = "domains"; 84 // sub BUNDLE_DEVICE_CONFIG_PROFILE_KEY_DOMAINS 85 const std::string BUNDLE_DEVICE_CONFIG_PROFILE_KEY_SUB_DOMAINS = "subDomains"; 86 // sub BUNDLE_PROFILE_KEY_MODULE 87 const std::string BUNDLE_MODULE_PROFILE_KEY_PACKAGE = "package"; 88 const std::string BUNDLE_MODULE_PROFILE_KEY_SUPPORTED_MODES = "supportedModes"; 89 const std::string BUNDLE_MODULE_PROFILE_KEY_REQ_CAPABILITIES = "reqCapabilities"; 90 const std::string BUNDLE_MODULE_PROFILE_KEY_SUPPORTED_REQ_CAPABILITIES = "reqCapabilities"; 91 const std::string MODULE_SUPPORTED_MODES_VALUE_DRIVE = "drive"; 92 const std::string BUNDLE_MODULE_PROFILE_KEY_DEVICE_TYPE = "deviceType"; 93 const std::string BUNDLE_MODULE_PROFILE_KEY_COLOR_MODE = "colorMode"; 94 const std::string BUNDLE_MODULE_PROFILE_KEY_DISTRO = "distro"; 95 const std::string BUNDLE_MODULE_PROFILE_KEY_META_DATA = "metaData"; 96 const std::string BUNDLE_MODULE_PROFILE_KEY_ABILITIES = "abilities"; 97 const std::string BUNDLE_MODULE_PROFILE_KEY_JS = "js"; 98 const std::string BUNDLE_MODULE_PROFILE_KEY_COMMON_EVENTS = "commonEvents"; 99 const std::string BUNDLE_MODULE_PROFILE_KEY_SHORTCUTS = "shortcuts"; 100 const std::string BUNDLE_MODULE_PROFILE_KEY_DEF_PERMISSIONS = "defPermissions"; 101 const std::string BUNDLE_MODULE_PROFILE_KEY_DEF_PERMISSIONS_NAME = "name"; 102 const std::string BUNDLE_MODULE_PROFILE_KEY_DEF_PERMISSIONS_GRANTMODE = "grantMode"; 103 const std::string BUNDLE_MODULE_PROFILE_KEY_DEF_PERMISSIONS_GRANTMODE_USER_GRANT = "user_grant"; 104 const std::string BUNDLE_MODULE_PROFILE_KEY_DEF_PERMISSIONS_GRANTMODE_SYSTEM_GRANT = "system_grant"; 105 const std::string BUNDLE_MODULE_PROFILE_KEY_DEF_PERMISSIONS_AVAILABLESCOPE = "availableScope"; 106 const std::string BUNDLE_MODULE_PROFILE_KEY_DEF_PERMISSIONS_AVAILABLESCOPE_SIGNATURE = "signature"; 107 const std::string BUNDLE_MODULE_PROFILE_KEY_DEF_PERMISSIONS_AVAILABLESCOPE_PRIVILEGED = "privileged"; 108 const std::string BUNDLE_MODULE_PROFILE_KEY_DEF_PERMISSIONS_AVAILABLESCOPE_RESTRICTED = "restricted"; 109 const std::string BUNDLE_MODULE_PROFILE_KEY_DEF_PERMISSIONS_LABEL = "label"; 110 const std::string BUNDLE_MODULE_PROFILE_KEY_DEF_PERMISSIONS_LABEL_ID = "labelId"; 111 const std::string BUNDLE_MODULE_PROFILE_KEY_DEF_PERMISSIONS_DESCRIPTION = "description"; 112 const std::string BUNDLE_MODULE_PROFILE_KEY_DEF_PERMISSIONS_DESCRIPTION_ID = "descriptionId"; 113 const std::string BUNDLE_MODULE_PROFILE_KEY_REQ_PERMISSIONS = "reqPermissions"; 114 const std::string BUNDLE_MODULE_PROFILE_KEY_REQ_PERMISSIONS_NAME = "name"; 115 const std::string BUNDLE_MODULE_PROFILE_KEY_REQ_PERMISSIONS_REASON = "reason"; 116 const std::string BUNDLE_MODULE_PROFILE_KEY_REQ_PERMISSIONS_USEDSCENE = "usedScene"; 117 const std::string BUNDLE_MODULE_PROFILE_KEY_REQ_PERMISSIONS_ABILITY = "ability"; 118 const std::string BUNDLE_MODULE_PROFILE_KEY_REQ_PERMISSIONS_WHEN = "when"; 119 const std::string BUNDLE_MODULE_PROFILE_KEY_REQ_PERMISSIONS_WHEN_INUSE = "inuse"; 120 const std::string BUNDLE_MODULE_PROFILE_KEY_REQ_PERMISSIONS_WHEN_ALWAYS = "always"; 121 const std::string BUNDLE_MODULE_PROFILE_KEY_CUSTOMIZE_DATA = "customizeData"; 122 const std::string BUNDLE_MODULE_PROFILE_KEY_MAIN_ABILITY = "mainAbility"; 123 // sub BUNDLE_MODULE_PROFILE_KEY_DISTRO 124 const std::string BUNDLE_MODULE_PROFILE_KEY_DELIVERY_WITH_INSTALL = "deliveryWithInstall"; 125 const std::string BUNDLE_MODULE_PROFILE_KEY_MODULE_NAME = "moduleName"; 126 const std::string BUNDLE_MODULE_PROFILE_KEY_MODULE_TYPE = "moduleType"; 127 const std::string BUNDLE_MODULE_PROFILE_KEY_MODULE_INSTALLATION_FREE = "installationFree"; 128 // sub BUNDLE_MODULE_PROFILE_KEY_SKILLS 129 const std::string BUNDLE_MODULE_PROFILE_KEY_ACTIONS = "actions"; 130 const std::string BUNDLE_MODULE_PROFILE_KEY_ENTITIES = "entities"; 131 const std::string BUNDLE_MODULE_PROFILE_KEY_URIS = "uris"; 132 // sub BUNDLE_MODULE_PROFILE_KEY_URIS 133 const std::string BUNDLE_MODULE_PROFILE_KEY_SCHEME = "scheme"; 134 const std::string BUNDLE_MODULE_PROFILE_KEY_HOST = "host"; 135 const std::string BUNDLE_MODULE_PROFILE_KEY_PORT = "port"; 136 const std::string BUNDLE_MODULE_PROFILE_KEY_PATH = "path"; 137 const std::string BUNDLE_MODULE_PROFILE_KEY_TYPE = "type"; 138 // sub BUNDLE_MODULE_PROFILE_KEY_META_DATA 139 const std::string BUNDLE_MODULE_META_KEY_NAME = "name"; 140 const std::string BUNDLE_MODULE_META_KEY_DESCRIPTION = "description"; 141 const std::string BUNDLE_MODULE_META_KEY_PARAMETERS = "parameters"; 142 const std::string BUNDLE_MODULE_META_KEY_RESULTS = "results"; 143 const std::string BUNDLE_MODULE_META_KEY_CUSTOMIZE_DATA = "customizeData"; 144 const std::string BUNDLE_MODULE_META_KEY_VALUE = "value"; 145 const std::string BUNDLE_MODULE_META_KEY_EXTRA = "extra"; 146 // sub BUNDLE_MODULE_PROFILE_KEY_DISTRO_TYPE 147 const std::string MODULE_DISTRO_MODULE_TYPE_VALUE_ENTRY = "entry"; 148 const std::string MODULE_DISTRO_MODULE_TYPE_VALUE_FEATURE = "feature"; 149 // sub BUNDLE_MODULE_PROFILE_KEY_ABILITIES 150 const std::string BUNDLE_MODULE_PROFILE_KEY_ICON = "icon"; 151 const std::string BUNDLE_MODULE_PROFILE_KEY_ICON_ID = "iconId"; 152 const std::string BUNDLE_MODULE_PROFILE_KEY_URI = "uri"; 153 const std::string BUNDLE_MODULE_PROFILE_KEY_LAUNCH_TYPE = "launchType"; 154 const std::string BUNDLE_MODULE_PROFILE_KEY_LAUNCH_THEME = "theme"; 155 const std::string BUNDLE_MODULE_PROFILE_KEY_VISIBLE = "visible"; 156 const std::string BUNDLE_MODULE_PROFILE_KEY_PERMISSIONS = "permissions"; 157 const std::string BUNDLE_MODULE_PROFILE_KEY_SKILLS = "skills"; 158 const std::string BUNDLE_MODULE_PROFILE_KEY_PROCESS = "process"; 159 const std::string BUNDLE_MODULE_PROFILE_KEY_DEVICE_CAP_ABILITY = "deviceCapability"; 160 const std::string BUNDLE_MODULE_PROFILE_KEY_FORM_ENABLED = "formEnabled"; 161 const std::string BUNDLE_MODULE_PROFILE_KEY_FORM = "form"; 162 const std::string BUNDLE_MODULE_PROFILE_KEY_ORIENTATION = "orientation"; 163 const std::string BUNDLE_MODULE_PROFILE_KEY_BACKGROUND_MODES = "backgroundModes"; 164 const std::string BUNDLE_MODULE_PROFILE_KEY_GRANT_PERMISSION = "grantPermission"; 165 const std::string BUNDLE_MODULE_PROFILE_KEY_URI_PERMISSION = "uriPermission"; 166 const std::string BUNDLE_MODULE_PROFILE_KEY_READ_PERMISSION = "readPermission"; 167 const std::string BUNDLE_MODULE_PROFILE_KEY_WRITE_PERMISSION = "writePermission"; 168 const std::string BUNDLE_MODULE_PROFILE_KEY_DIRECT_LAUNCH = "directLaunch"; 169 const std::string BUNDLE_MODULE_PROFILE_KEY_CONFIG_CHANGES = "configChanges"; 170 const std::string BUNDLE_MODULE_PROFILE_KEY_MISSION = "mission"; 171 const std::string BUNDLE_MODULE_PROFILE_KEY_TARGET_ABILITY = "targetAbility"; 172 const std::string BUNDLE_MODULE_PROFILE_KEY_MULTIUSER_SHARED = "multiUserShared"; 173 const std::string BUNDLE_MODULE_PROFILE_KEY_SUPPORT_PIP_MODE = "supportPipMode"; 174 const std::string BUNDLE_MODULE_PROFILE_KEY_FORMS_ENABLED = "formsEnabled"; 175 const std::string BUNDLE_MODULE_PROFILE_KEY_FORMS = "forms"; 176 // sub BUNDLE_MODULE_PROFILE_KEY_FORM 177 const std::string BUNDLE_MODULE_PROFILE_KEY_MODE = "mode"; 178 // sub BUNDLE_MODULE_PROFILE_KEY_FORM 179 const std::string BUNDLE_MODULE_PROFILE_FORM_ENTITY = "formEntity"; 180 const std::string BUNDLE_MODULE_PROFILE_FORM_MIN_HEIGHT = "minHeight"; 181 const std::string BUNDLE_MODULE_PROFILE_FORM_DEFAULT_HEIGHT = "defaultHeight"; 182 const std::string BUNDLE_MODULE_PROFILE_FORM_MIN_WIDTH = "minWidth"; 183 const std::string BUNDLE_MODULE_PROFILE_FORM_DEFAULT_WIDTH = "defaultWidth"; 184 // sub BUNDLE_MODULE_PROFILE_KEY_FORMS 185 const std::string BUNDLE_MODULE_PROFILE_FORMS_IS_DEFAULT = "isDefault"; 186 const std::string BUNDLE_MODULE_PROFILE_FORMS_COLOR_MODE = "colorMode"; 187 const std::string BUNDLE_MODULE_PROFILE_FORMS_SUPPORT_DIMENSIONS = "supportDimensions"; 188 const std::string BUNDLE_MODULE_PROFILE_FORMS_DEFAULT_DIMENSION = "defaultDimension"; 189 const std::string BUNDLE_MODULE_PROFILE_FORMS_LANDSCAPE_LAYOUTS = "landscapeLayouts"; 190 const std::string BUNDLE_MODULE_PROFILE_FORMS_PORTRAIT_LAYOUTS = "portraitLayouts"; 191 const std::string BUNDLE_MODULE_PROFILE_FORMS_UPDATEENABLED = "updateEnabled"; 192 const std::string BUNDLE_MODULE_PROFILE_FORMS_SCHEDULED_UPDATE_TIME = "scheduledUpateTime"; 193 const std::string BUNDLE_MODULE_PROFILE_FORMS_UPDATE_DURATION = "updateDuration"; 194 const std::string BUNDLE_MODULE_PROFILE_FORMS_DEEP_LINK = "deepLink"; 195 const std::string BUNDLE_MODULE_PROFILE_FORMS_JS_COMPONENT_NAME = "jsComponentName"; 196 const std::string BUNDLE_MODULE_PROFILE_FORMS_VALUE = "value"; 197 const std::string BUNDLE_MODULE_PROFILE_FORMS_FORM_CONFIG_ABILITY = "formConfigAbility"; 198 const std::string BUNDLE_MODULE_PROFILE_FORMS_FORM_VISIBLE_NOTIFY = "formEnabled"; 199 // sub BUNDLE_MODULE_PROFILE_KEY_JS 200 const std::string BUNDLE_MODULE_PROFILE_KEY_PAGES = "pages"; 201 const std::string BUNDLE_MODULE_PROFILE_KEY_WINDOW = "window"; 202 // sub BUNDLE_MODULE_PROFILE_KEY_COMMON_EVENTS 203 const std::string BUNDLE_MODULE_PROFILE_KEY_PERMISSION = "permission"; 204 const std::string BUNDLE_MODULE_PROFILE_KEY_DATA = "data"; 205 const std::string BUNDLE_MODULE_PROFILE_KEY_EVENTS = "events"; 206 const std::string MODULE_ABILITY_JS_TYPE_VALUE_NORMAL = "normal"; 207 const std::string MODULE_ABILITY_JS_TYPE_VALUE_FORM = "form"; 208 // sub BUNDLE_MODULE_PROFILE_KEY_WINDOW 209 const std::string BUNDLE_MODULE_PROFILE_KEY_DESIGN_WIDTH = "designWidth"; 210 const std::string BUNDLE_MODULE_PROFILE_KEY_AUTO_DESIGN_WIDTH = "autoDesignWidth"; 211 // sub BUNDLE_MODULE_PROFILE_KEY_SHORTCUTS 212 const std::string BUNDLE_MODULE_PROFILE_KEY_SHORTCUT_ID = "shortcutId"; 213 const std::string BUNDLE_MODULE_PROFILE_KEY_SHORTCUT_INTENTS = "intents"; 214 // sub BUNDLE_MODULE_PROFILE_KEY_SHORTCUT_INTENTS 215 const std::string BUNDLE_MODULE_PROFILE_KEY_TARGET_CLASS = "targetClass"; 216 const std::string BUNDLE_MODULE_PROFILE_KEY_TARGET_BUNDLE = "targetBundle"; 217 218 const uint32_t VALUE_HOME_SCREEN = 1 << 0; 219 // 000010 represents supporting search box 220 const uint32_t VALUE_SEARCHBOX = 1 << 1; 221 222 const std::string KEY_HOME_SCREEN = "homeScreen"; 223 const std::string KEY_SEARCHBOX = "searchbox"; 224 225 const std::string BUNDLE_MODULE_PROFILE_KEY_JS_TYPE_ETS = "ets"; 226 227 static std::map<std::string, uint32_t> formEntityMap; 228 229 extern thread_local int32_t parseResult; 230 231 } // namespace ProfileReader 232 } // namespace AppExecFwk 233 } // namespace OHOS 234 #endif // FOUNDATION_APPEXECFWK_SERVICES_BUNDLEMGR_INCLUDE_COMMON_PROFILE_H 235