1 /* 2 * Copyright (c) 2021-2025 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_BUNDLE_SERVICE_CONSTANTS_H 17 #define FOUNDATION_APPEXECFWK_SERVICES_BUNDLEMGR_INCLUDE_BUNDLE_SERVICE_CONSTANTS_H 18 19 #include <map> 20 #include <set> 21 #include <string> 22 #include <sys/stat.h> 23 #include <vector> 24 25 namespace OHOS { 26 namespace AppExecFwk { 27 namespace ServiceConstants { 28 constexpr const char* RETAIL_MODE_KEY = "const.dfx.enable_retail"; 29 constexpr const char* ASSETS_DIR = "assets"; 30 constexpr const char* RESOURCES_INDEX = "resources.index"; 31 constexpr int8_t INVALID_GID = -1; 32 constexpr int8_t BUNDLE_RDB_VERSION = 1; 33 constexpr const char* PATH_SEPARATOR = "/"; 34 constexpr const char* LIBS = "libs/"; 35 constexpr const char* AN = "an/"; 36 constexpr const char* RES_FILE_PATH = "resources/resfile/"; 37 constexpr const char* HNPS_FILE_PATH = "hnp_tmp_extract_dir/"; 38 constexpr const char* HNPS = "hnp/"; 39 constexpr const char* DIR_EL1 = "el1"; 40 constexpr const char* DIR_EL2 = "el2"; 41 constexpr const char* DIR_EL3 = "el3"; 42 constexpr const char* DIR_EL4 = "el4"; 43 constexpr const char* DIR_EL5 = "el5"; 44 const std::vector<std::string> BUNDLE_EL = {DIR_EL1, DIR_EL2, DIR_EL3, DIR_EL4}; 45 const std::vector<std::string> FULL_BUNDLE_EL = {DIR_EL1, DIR_EL2, DIR_EL3, DIR_EL4, DIR_EL5}; 46 constexpr const char* ARM_EABI = "armeabi"; 47 constexpr const char* ARM_EABI_V7A = "armeabi-v7a"; 48 constexpr const char* ARM64_V8A = "arm64-v8a"; 49 constexpr const char* ARM64 = "arm64"; 50 constexpr const char* X86 = "x86"; 51 constexpr const char* X86_64 = "x86_64"; 52 const std::map<std::string, std::string> ABI_MAP = { 53 {ARM_EABI, "arm"}, 54 {ARM_EABI_V7A, "arm"}, 55 {ARM64_V8A, "arm64"}, 56 {X86, "x86"}, 57 {X86_64, "x86_64"}, 58 }; 59 constexpr const char* CLONE_BUNDLE_PREFIX = "clone_"; 60 constexpr const char* UNINSTALL_TMP_PREFIX = "=uninstall_tmp_"; 61 constexpr const char* INSTALL_FILE_SUFFIX = ".hap"; 62 constexpr const char* HSP_FILE_SUFFIX = ".hsp"; 63 constexpr const char* QUICK_FIX_FILE_SUFFIX = ".hqf"; 64 const char FILE_SEPARATOR_CHAR = '/'; 65 constexpr const char* CURRENT_DEVICE_ID = "PHONE-001"; 66 constexpr const char* HAP_COPY_PATH = "/data/service/el1/public/bms/bundle_manager_service"; 67 constexpr const char* TMP_SUFFIX = "_tmp"; 68 constexpr const char* BUNDLE_APP_DATA_BASE_DIR = "/data/app/"; 69 constexpr const char* BASE = "/base/"; 70 constexpr const char* CLONE = "clone"; 71 constexpr const char* PLUS_SIGN = "+"; 72 constexpr const char* MINUS_SIGN = "-"; 73 constexpr const char* DATABASE = "/database/"; 74 constexpr const char* SHAREFILES = "/sharefiles/"; 75 constexpr const char* LOG = "/log/"; 76 constexpr const char* HAPS = "/haps/"; 77 constexpr const char* EXTENSION_DIR = "+extension-"; 78 constexpr const char* FILE_SEPARATOR_LINE = "-"; 79 constexpr const char* FILE_SEPARATOR_PLUS = "+"; 80 constexpr const char* BUNDLE_MANAGER_SERVICE_PATH = "/data/service/el1/public/bms/bundle_manager_service"; 81 constexpr const char* SANDBOX_DATA_PATH = "/data/storage/el2/base"; 82 constexpr const char* APP_INSTALL_SANDBOX_PATH = "/data/bms_app_install"; 83 constexpr const char* REAL_DATA_PATH = "/data/app/el2"; 84 constexpr const char* DATA_GROUP_PATH = "/group/"; 85 constexpr const char* STREAM_INSTALL_PATH = "stream_install"; 86 constexpr const char* SECURITY_STREAM_INSTALL_PATH = "security_stream_install"; 87 constexpr const char* QUICK_FIX_PATH = "quick_fix"; 88 constexpr const char* SECURITY_QUICK_FIX_PATH = "security_quick_fix"; 89 constexpr const char* BUNDLE_ASAN_LOG_DIR = "/data/local/app-logs"; 90 constexpr const char* SCREEN_LOCK_FILE_DATA_PATH = "/data/app/el5"; 91 constexpr const char* GALLERY_DOWNLOAD_PATH = "/app_install/"; 92 constexpr const char* GALLERY_CLONE_PATH = "/app_clone/"; 93 constexpr const char* UNINSTALLED_PRELOAD_PATH = "/uninstalled_preload/"; 94 constexpr const char* UNINSTALLED_PRELOAD_FILE = "thirdPartyAppList.json"; 95 constexpr const char* PRELOAD_APP_DIR = "/preload/app/"; 96 constexpr const char* UNINSTALL_PRELOAD_LIST = "uninstall_preload_list"; 97 constexpr int NOT_EXIST_USERID = -5; 98 constexpr int PATH_MAX_SIZE = 256; 99 constexpr int32_t API_VERSION_NINE = 9; 100 constexpr int32_t API_VERSION_TWELVE = 12; 101 constexpr int32_t API_VERSION_FIFTEEN = 15; 102 constexpr int32_t API_VERSION_MOD = 1000; 103 constexpr int32_t API_VERSION_MAX = 999; 104 constexpr int32_t BACKUP_DEFAULT_APP_KEY = -2; 105 // native so 106 constexpr const char* ABI_DEFAULT = "default"; 107 constexpr const char* ABI_SEPARATOR = ","; 108 constexpr const char* MODULE_NAME_SEPARATOR = ","; 109 constexpr const char* AN_SUFFIX = ".an"; 110 constexpr const char* AP_SUFFIX = ".ap"; 111 constexpr const char* SYSTEM_LIB64 = "/system/lib64"; 112 constexpr const char* PATCH_PATH = "patch_"; 113 constexpr const char* HOT_RELOAD_PATH = "hotreload_"; 114 // uid and gid 115 constexpr int16_t MODE_BASE = 07777; 116 constexpr int32_t BMS_UID = 1000; 117 constexpr int32_t SHELL_UID = 2000; 118 constexpr int32_t BACKU_HOME_GID = 1089; 119 constexpr int32_t ACCOUNT_UID = 3058; 120 constexpr int32_t MODULE_UPDATE_UID = 6666; 121 constexpr int32_t BMS_GID = 1000; 122 constexpr int32_t DATABASE_DIR_GID = 3012; 123 constexpr int32_t DFS_GID = 1009; 124 constexpr int32_t LOG_DIR_GID = 1007; 125 constexpr int32_t APP_INSTALL_GID = 2002; 126 // first isntall time 127 constexpr int64_t DEFAULT_FIRST_INSTALL_TIME = 0; 128 constexpr int64_t PREINSTALL_FIRST_INSTALL_TIME = 1533657660000; // 2018-08-08 00:01:00 129 // permissions 130 constexpr const char* PERMISSION_INSTALL_ENTERPRISE_BUNDLE = "ohos.permission.INSTALL_ENTERPRISE_BUNDLE"; 131 constexpr const char* PERMISSION_INSTALL_ENTERPRISE_NORMAL_BUNDLE = "ohos.permission.INSTALL_ENTERPRISE_NORMAL_BUNDLE"; 132 constexpr const char* PERMISSION_INSTALL_ENTERPRISE_MDM_BUNDLE = "ohos.permission.INSTALL_ENTERPRISE_MDM_BUNDLE"; 133 constexpr const char* PERMISSION_MANAGE_EDM_POLICY = "ohos.permission.MANAGE_EDM_POLICY"; 134 constexpr const char* PERMISSION_INSTALL_INTERNALTESTING_BUNDLE = "ohos.permission.INSTALL_INTERNALTESTING_BUNDLE"; 135 constexpr const char* PERMISSION_MANAGE_DISPOSED_APP_STATUS = "ohos.permission.MANAGE_DISPOSED_APP_STATUS"; 136 constexpr const char* PERMISSION_INSTALL_SELF_BUNDLE = "ohos.permission.INSTALL_SELF_BUNDLE"; 137 constexpr const char* PERMISSION_UNINSTALL_BUNDLE = "ohos.permission.UNINSTALL_BUNDLE"; 138 constexpr const char* PERMISSION_RECOVER_BUNDLE = "ohos.permission.RECOVER_BUNDLE"; 139 constexpr const char* PERMISSION_GET_BUNDLE_RESOURCES = "ohos.permission.GET_BUNDLE_RESOURCES"; 140 constexpr const char* PERMISSION_INSTALL_SANDBOX_BUNDLE = "ohos.permission.INSTALL_SANDBOX_BUNDLE"; 141 constexpr const char* PERMISSION_UNINSTALL_SANDBOX_BUNDLE = "ohos.permission.UNINSTALL_SANDBOX_BUNDLE"; 142 constexpr const char* PERMISSION_INSTALL_QUICK_FIX_BUNDLE = "ohos.permission.INSTALL_QUICK_FIX_BUNDLE"; 143 constexpr const char* PERMISSION_UNINSTALL_QUICK_FIX_BUNDLE = "ohos.permission.UNINSTALL_QUICK_FIX_BUNDLE"; 144 constexpr const char* PERMISSION_CHANGE_BUNDLE_UNINSTALL_STATE = "ohos.permission.CHANGE_BUNDLE_UNINSTALL_STATE"; 145 constexpr const char* PERMISSION_PROTECT_SCREEN_LOCK_DATA = "ohos.permission.PROTECT_SCREEN_LOCK_DATA"; 146 constexpr const char* PERMISSION_SUPPORT_PLUGIN = "ohos.permission.kernel.SUPPORT_PLUGIN"; 147 constexpr const char* PERMISSION_MANAGE_STORAGE = "ohos.permission.atomicService.MANAGE_STORAGE"; 148 149 constexpr const char* FLAG_HOME_INTENT_FROM_SYSTEM = "flag.home.intent.from.system"; 150 // max number of haps under one direction 151 constexpr uint8_t MAX_HAP_NUMBER = 128; 152 constexpr const char* DATA_ABILITY_URI_PREFIX = "dataability://"; 153 // appFeature 154 constexpr const char* HOS_SYSTEM_APP = "hos_system_app"; 155 // rdb 156 constexpr const char* BUNDLE_RDB_NAME = "/bmsdb.db"; 157 // thread pool 158 constexpr const char* RELATIVE_PATH = "../"; 159 // app detail ability 160 constexpr const char* APP_DETAIL_ABILITY = "AppDetailAbility"; 161 // overlay installation 162 constexpr int32_t DEFAULT_OVERLAY_ENABLE_STATUS = 1; 163 constexpr int32_t DEFAULT_OVERLAY_DISABLE_STATUS = 0; 164 constexpr int32_t OVERLAY_MINIMUM_PRIORITY = 1; 165 // ark compile mode 166 constexpr const char* COMPILE_PARTIAL = "partial"; 167 constexpr const char* ARK_CACHE_PATH = "/data/app/el1/public/aot_compiler/ark_cache/"; 168 169 constexpr int32_t SYSTEM_OPTIMIZE_MODE = (S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH); 170 constexpr const char* ARK_STARTUP_CACHE_DIR = "/ark_startup_cache/"; 171 constexpr const char* SYSTEM_OPTIMIZE_PATH = "/data/app/el1/%/system_optimize/"; 172 // configuration of app startup list 173 constexpr const char* APP_STARTUP_CACHE_CONG = "/system/etc/ark/app_startup_snapshot.json"; 174 // code signature 175 constexpr const char* CODE_SIGNATURE_FILE_SUFFIX = ".sig"; 176 constexpr const char* CODE_SIGNATURE_HAP = "Hap"; 177 constexpr const char* SIGNATURE_FILE_PATH = "signature_files"; 178 constexpr const char* SECURITY_SIGNATURE_FILE_PATH = "security_signature_files"; 179 //pgo file 180 constexpr const char* PGO_FILE_SUFFIX = ".ap"; 181 // system param 182 constexpr const char* ALLOW_ENTERPRISE_BUNDLE = "const.bms.allowenterprisebundle"; 183 constexpr const char* IS_ENTERPRISE_DEVICE = "const.edm.is_enterprise_device"; 184 constexpr const char* DEVELOPERMODE_STATE = "const.security.developermode.state"; 185 constexpr const char* BMS_DATA_PRELOAD = "persist.bms.data.preload"; 186 constexpr const char* IS_SUPPORT_PLUGIN = "const.bms.support_plugin"; 187 constexpr const char* IS_DRIVER_FOR_ALL_USERS = "const.bms.driverForAllUsers"; 188 constexpr const char* HYBRID_SPAWN_ENABLE = "persist.appspawn.hybridspawn.enable"; 189 constexpr const char* IS_APP_CLONE_DISABLE = "persist.edm.app_clone_disable"; 190 //extResource 191 constexpr const char* EXT_RESOURCE_FILE_PATH = "ext_resource"; 192 // hmdfs and sharefs config 193 constexpr const char* HMDFS_CONFIG_PATH = "/config/hmdfs/"; 194 constexpr const char* SHAREFS_CONFIG_PATH = "/config/sharefs/"; 195 constexpr const char* SYSTEM_SERVICE_DIR = "/data/service/el1/public"; 196 constexpr const char* SYSTEM_UI_BUNDLE_NAME = "com.ohos.systemui"; 197 constexpr const char* LAUNCHER_BUNDLE_NAME = "com.ohos.launcher"; 198 // clone application 199 constexpr int32_t CLONE_APP_INDEX_MIN = 1; 200 constexpr int32_t CLONE_APP_INDEX_MAX = 5; 201 constexpr const char* CLONE_PREFIX = "+clone-"; 202 // shader 203 constexpr const char* SHADER_CACHE_PATH = "/data/local/shader_cache/local/"; 204 constexpr const char* CLOUD_SHADER_PATH = "/data/local/shader_cache/cloud/"; 205 constexpr const char* CLOUD_SHADER_COMMON_PATH = "/data/local/shader_cache/cloud/common"; 206 constexpr const char* CLOUD_SHADER_OWNER = "const.appgallery.shaderowner.bundlename"; 207 // new shader 208 constexpr int16_t NEW_SHADRE_CACHE_MODE = 02771; 209 constexpr int16_t NEW_SHADRE_CACHE_GID = 3099; 210 constexpr const char* NEW_SHADER_CACHE_PATH = "/data/app/el1/%/shader_cache/"; 211 constexpr const char* NEW_CLOUD_SHADER_PATH = "/data/app/el1/public/shader_cache/cloud/"; 212 // shader cache dir in /system_optimize 213 constexpr const char* SHADER_CACHE_SUBDIR = "/shader_cache/"; 214 constexpr const char* SYSTEM_OPTIMIZE_SHADER_CACHE_PATH = "/data/app/el1/%/system_optimize/"; 215 // apiReleaseType 216 constexpr const char* API_RELEASE_TYPE_RELEASE = "Release"; 217 constexpr const char* API_RELEASE_TYPE_BETA = "Beta"; 218 constexpr const char* API_RELEASE_TYPE_CANARY = "Canary"; 219 // account constraint 220 constexpr const char* CONSTRAINT_APPS_INSTALL = "constraint.bundles.install"; 221 // allow multi icon bundle 222 const std::set<std::string> ALLOW_MULTI_ICON_BUNDLE = { 223 "com.ohos.contacts" 224 }; 225 constexpr const char* CALLER_NAME_BMS = "bms"; 226 // allow singleton change 227 const std::set<std::string> SINGLETON_WHITE_LIST = { 228 "com.ohos.formrenderservice", 229 "com.ohos.sceneboard", 230 "com.ohos.callui", 231 "com.ohos.mms", 232 "com.ohos.FusionSearch" 233 }; 234 // group 235 constexpr int16_t DATA_GROUP_DIR_MODE = 02770; 236 //install source 237 constexpr const char* INSTALL_SOURCE_PREINSTALL = "pre-installed"; 238 constexpr const char* INSTALL_SOURCE_OTA = "ota"; 239 constexpr const char* INSTALL_SOURCE_RECOVERY = "recovery"; 240 241 // bundle update 242 constexpr const char* BUNDLE_NEW_CODE_DIR = "+new-"; 243 constexpr const char* BUNDLE_OLD_CODE_DIR = "+old-"; 244 245 //ability start window 246 constexpr const char* PROFILE_PATH = "resources/base/profile/"; 247 constexpr const char* PROFILE_PREFIX = "$profile:"; 248 constexpr const char* JSON_SUFFIX = ".json"; 249 250 // app temp path 251 constexpr const char* BMS_APP_TEMP_PATH = "/data/service/el1/public/bms/bundle_manager_service/app_temp"; 252 constexpr const char* BMS_APP_COPY_TEMP_PATH = "/data/service/el1/public/bms/bundle_manager_service/app_copy_temp"; 253 254 // time 255 constexpr const char* BMS_SYSTEM_TIME_FOR_SHORTCUT = "SystemTimeForShortcut"; 256 257 constexpr const char* PRODUCT_SUFFIX = "/etc/app"; 258 constexpr const char* DEFAULT_DATA_PRE_BUNDLE_DIR = "/app_list.json"; 259 constexpr const char* DATA_PRELOAD_APP = "/data/preload/app/"; 260 261 //ota update permissions for not updated application, only updated once 262 constexpr const char* UPDATE_PERMISSIONS_FLAG = "updatePermissionsFlag"; 263 constexpr const char* UPDATE_PERMISSIONS_FLAG_UPDATED = "updated"; 264 265 constexpr const char* EXT_PROFILE = "ext_profile"; 266 constexpr const char* ENTERPRISE_MANIFEST = "ohos.bms.param.enterpriseManifest"; 267 constexpr const char* MANIFEST_JSON = "manifest.json"; 268 constexpr const char* CLOUD_PROFILE_PATH = "resources/base/profile/cloudkit_config.json"; 269 } // namespace ServiceConstants 270 } // namespace AppExecFwk 271 } // namespace OHOS 272 #endif // FOUNDATION_APPEXECFWK_SERVICES_BUNDLEMGR_INCLUDE_BUNDLE_SERVICE_CONSTANTS_H