• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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