• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-2022 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_INTERFACES_INNERKITS_APPEXECFWK_CORE_INCLUDE_BUNDLEMGR_STATUS_RECEIVER_INTERFACE_H
17 #define FOUNDATION_APPEXECFWK_INTERFACES_INNERKITS_APPEXECFWK_CORE_INCLUDE_BUNDLEMGR_STATUS_RECEIVER_INTERFACE_H
18 
19 #include "iremote_broker.h"
20 
21 namespace OHOS {
22 namespace AppExecFwk {
23 class IStatusReceiver : public IRemoteBroker {
24 public:
25     DECLARE_INTERFACE_DESCRIPTOR(u"ohos.appexecfwk.StatusReceiver");
26 
27     /**
28      * @brief Called when install status changed, with the percentage of installation progress
29      * @param progress Indicates the percentage of the installation progress.
30      */
31     virtual void OnStatusNotify(const int progress) = 0;
32     /**
33      * @brief Called when an application is installed, updated, or uninstalled.
34      * @param resultCode Indicates the status code returned for the application installation, update, or uninstallation
35      *                   result.
36      * @param resultMsg Indicates the result message returned with the status code.
37      */
38     virtual void OnFinished(const int32_t resultCode, const std::string &resultMsg) = 0;
39 
40     virtual void SetStreamInstallId(uint32_t installerId) = 0;
41 
42     enum class Message {
43         ON_STATUS_NOTIFY,
44         ON_FINISHED,
45     };
46 
47     enum {
48         SUCCESS = 0,
49         ERR_INSTALL_INTERNAL_ERROR,
50         ERR_INSTALL_HOST_INSTALLER_FAILED,
51         ERR_INSTALL_PARSE_FAILED,
52         ERR_INSTALL_VERSION_DOWNGRADE,
53         ERR_INSTALL_VERIFICATION_FAILED,
54         ERR_INSTALL_PARAM_ERROR,
55         ERR_INSTALL_PERMISSION_DENIED,
56         ERR_INSTALL_ENTRY_ALREADY_EXIST,
57         ERR_INSTALL_STATE_ERROR,
58         ERR_INSTALL_FILE_PATH_INVALID,
59         ERR_INSTALL_INVALID_HAP_NAME,
60         ERR_INSTALL_INVALID_BUNDLE_FILE,
61         ERR_INSTALL_INVALID_HAP_SIZE,
62         ERR_INSTALL_GENERATE_UID_ERROR,
63         ERR_INSTALL_INSTALLD_SERVICE_ERROR,
64         ERR_INSTALL_BUNDLE_MGR_SERVICE_ERROR,
65         ERR_INSTALL_ALREADY_EXIST,
66         ERR_INSTALL_BUNDLENAME_NOT_SAME,
67         ERR_INSTALL_VERSIONCODE_NOT_SAME,
68         ERR_INSTALL_VERSIONNAME_NOT_SAME,
69         ERR_INSTALL_MINCOMPATIBLE_VERSIONCODE_NOT_SAME,
70         ERR_INSTALL_VENDOR_NOT_SAME,
71         ERR_INSTALL_RELEASETYPE_TARGET_NOT_SAME,
72         ERR_INSTALL_RELEASETYPE_NOT_SAME,
73         ERR_INSTALL_RELEASETYPE_COMPATIBLE_NOT_SAME,
74         ERR_INSTALL_VERSION_NOT_COMPATIBLE,
75         ERR_INSTALL_APP_DISTRIBUTION_TYPE_NOT_SAME,
76         ERR_INSTALL_APP_PROVISION_TYPE_NOT_SAME,
77         ERR_INSTALL_INVALID_NUMBER_OF_ENTRY_HAP,
78         ERR_INSTALL_DISK_MEM_INSUFFICIENT,
79         ERR_INSTALL_GRANT_REQUEST_PERMISSIONS_FAILED,
80         ERR_INSTALL_UPDATE_HAP_TOKEN_FAILED,
81         ERR_INSTALL_SINGLETON_NOT_SAME,
82         ERR_INSTALL_ZERO_USER_WITH_NO_SINGLETON,
83         ERR_INSTALL_CHECK_SYSCAP_FAILED,
84         ERR_INSTALL_APPTYPE_NOT_SAME,
85         ERR_INSTALL_URI_DUPLICATE,
86         ERR_INSTALL_TYPE_ERROR,
87         ERR_INSTALL_SDK_INCOMPATIBLE,
88         ERR_INSTALL_SO_INCOMPATIBLE,
89         ERR_INSTALL_AN_INCOMPATIBLE,
90         ERR_INSTALL_NOT_UNIQUE_DISTRO_MODULE_NAME,
91         ERR_INSTALL_INCONSISTENT_MODULE_NAME,
92         ERR_INSTALL_SINGLETON_INCOMPATIBLE,
93         ERR_INSTALL_DISALLOWED,
94         ERR_INSTALL_DEVICE_TYPE_NOT_SUPPORTED,
95         ERR_INSTALL_DEPENDENT_MODULE_NOT_EXIST,
96         ERR_INSTALL_ASAN_ENABLED_NOT_SAME,
97         ERR_INSTALL_ASAN_ENABLED_NOT_SUPPORT,
98         ERR_INSTALL_BUNDLE_TYPE_NOT_SAME,
99 
100         // signature errcode
101         ERR_INSTALL_FAILED_INVALID_SIGNATURE_FILE_PATH,
102         ERR_INSTALL_FAILED_BAD_BUNDLE_SIGNATURE_FILE,
103         ERR_INSTALL_FAILED_NO_BUNDLE_SIGNATURE,
104         ERR_INSTALL_FAILED_VERIFY_APP_PKCS7_FAIL,
105         ERR_INSTALL_FAILED_PROFILE_PARSE_FAIL,
106         ERR_INSTALL_FAILED_APP_SOURCE_NOT_TRUESTED,
107         ERR_INSTALL_FAILED_BAD_DIGEST,
108         ERR_INSTALL_FAILED_BUNDLE_INTEGRITY_VERIFICATION_FAILURE,
109         ERR_INSTALL_FAILED_FILE_SIZE_TOO_LARGE,
110         ERR_INSTALL_FAILED_BAD_PUBLICKEY,
111         ERR_INSTALL_FAILED_BAD_BUNDLE_SIGNATURE,
112         ERR_INSTALL_FAILED_NO_PROFILE_BLOCK_FAIL,
113         ERR_INSTALL_FAILED_BUNDLE_SIGNATURE_VERIFICATION_FAILURE,
114         ERR_INSTALL_FAILED_VERIFY_SOURCE_INIT_FAIL,
115         ERR_INSTALL_FAILED_INCOMPATIBLE_SIGNATURE,
116         ERR_INSTALL_FAILED_INCONSISTENT_SIGNATURE,
117         ERR_INSTALL_FAILED_MODULE_NAME_EMPTY,
118         ERR_INSTALL_FAILED_MODULE_NAME_DUPLICATE,
119         ERR_INSTALL_FAILED_CHECK_HAP_HASH_PARAM,
120 
121         ERR_INSTALL_PARSE_UNEXPECTED,
122         ERR_INSTALL_PARSE_MISSING_BUNDLE,
123         ERR_INSTALL_PARSE_MISSING_ABILITY,
124         ERR_INSTALL_PARSE_NO_PROFILE,
125         ERR_INSTALL_PARSE_BAD_PROFILE,
126         ERR_INSTALL_PARSE_PROFILE_PROP_TYPE_ERROR,
127         ERR_INSTALL_PARSE_PROFILE_MISSING_PROP,
128         ERR_INSTALL_PARSE_PERMISSION_ERROR,
129         ERR_INSTALL_PARSE_PROFILE_PROP_CHECK_ERROR,
130         ERR_INSTALL_PARSE_PROFILE_PROP_SIZE_CHECK_ERROR,
131         ERR_INSTALL_PARSE_RPCID_FAILED,
132         ERR_INSTALL_PARSE_NATIVE_SO_FAILED,
133         ERR_INSTALL_PARSE_AN_FAILED,
134 
135         ERR_INSTALLD_PARAM_ERROR,
136         ERR_INSTALLD_GET_PROXY_ERROR,
137         ERR_INSTALLD_CREATE_DIR_FAILED,
138         ERR_INSTALLD_CREATE_DIR_EXIST,
139         ERR_INSTALLD_CHOWN_FAILED,
140         ERR_INSTALLD_REMOVE_DIR_FAILED,
141         ERR_INSTALLD_EXTRACT_FILES_FAILED,
142         ERR_INSTALLD_RNAME_DIR_FAILED,
143         ERR_INSTALLD_CLEAN_DIR_FAILED,
144         ERR_INSTALLD_PERMISSION_DENIED,
145 
146         ERR_UNINSTALL_SYSTEM_APP_ERROR,
147         ERR_UNINSTALL_KILLING_APP_ERROR,
148         ERR_UNINSTALL_INVALID_NAME,
149         ERR_UNINSTALL_PARAM_ERROR,
150         ERR_UNINSTALL_PERMISSION_DENIED,
151         ERR_UNINSTALL_BUNDLE_MGR_SERVICE_ERROR,
152         ERR_UNINSTALL_MISSING_INSTALLED_BUNDLE,
153         ERR_UNINSTALL_MISSING_INSTALLED_MODULE,
154         ERR_UNINSTALL_DISALLOWED,
155         ERR_UNKNOWN,
156 
157         ERR_FAILED_GET_INSTALLER_PROXY,
158         ERR_FAILED_SERVICE_DIED,
159         ERR_OPERATION_TIME_OUT,
160 
161         ERR_RECOVER_GET_BUNDLEPATH_ERROR = 201,
162         ERR_RECOVER_INVALID_BUNDLE_NAME,
163         ERR_RECOVER_NOT_ALLOWED,
164 
165         ERR_USER_NOT_EXIST = 301,
166         ERR_USER_CREATE_FAILED,
167         ERR_USER_REMOVE_FAILED,
168         ERR_USER_NOT_INSTALL_HAP,
169     };
170 };
171 }  // namespace AppExecFwk
172 }  // namespace OHOS
173 #endif  // FOUNDATION_APPEXECFWK_INTERFACES_INNERKITS_APPEXECFWK_CORE_INCLUDE_BUNDLEMGR_STATUS_RECEIVER_INTERFACE_H