1 /*
2 * Copyright (c) 2021-2023 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 #include "status_receiver_proxy.h"
17
18 #include <map>
19
20 #include "app_log_wrapper.h"
21 #include "appexecfwk_errors.h"
22 #include "bundle_framework_core_ipc_interface_code.h"
23 #include "bundle_mgr_service.h"
24 #include "ipc_types.h"
25 #include "parcel.h"
26 #include "string_ex.h"
27
28 namespace OHOS {
29 namespace AppExecFwk {
30 namespace {
31 // struct for transform internal error code/message to result which open to developer
32 struct ReceivedResult {
33 int32_t clientCode = -1;
34 std::string clientMessage;
35 };
36
37 const char* MSG_SUCCESS = "[SUCCESS]";
38 const char* MSG_ERR_INSTALL_INTERNAL_ERROR = "[ERR_INSTALL_INTERNAL_ERROR]";
39 const char* MSG_ERR_INSTALL_HOST_INSTALLER_FAILED = "[ERR_INSTALL_HOST_INSTALLER_FAILED]";
40 const char* MSG_ERR_INSTALL_PARSE_FAILED = "[ERR_INSTALL_PARSE_FAILED]";
41 const char* MSG_ERR_INSTALL_VERSION_DOWNGRADE = "[ERR_INSTALL_VERSION_DOWNGRADE]";
42 const char* MSG_ERR_INSTALL_VERIFICATION_FAILED = "[ERR_INSTALL_VERIFICATION_FAILED]";
43 const char* MSG_ERR_INSTALL_FAILED_INVALID_SIGNATURE_FILE_PATH =
44 "[MSG_ERR_INSTALL_FAILED_INVALID_SIGNATURE_FILE_PATH]";
45 const char* MSG_ERR_INSTALL_FAILED_BAD_BUNDLE_SIGNATURE_FILE =
46 "[MSG_ERR_INSTALL_FAILED_BAD_BUNDLE_SIGNATURE_FILE]";
47 const char* MSG_ERR_INSTALL_FAILED_NO_BUNDLE_SIGNATURE = "[MSG_ERR_INSTALL_FAILED_NO_BUNDLE_SIGNATURE]";
48 const char* MSG_ERR_INSTALL_FAILED_VERIFY_APP_PKCS7_FAIL = "[MSG_ERR_INSTALL_FAILED_VERIFY_APP_PKCS7_FAIL]";
49 const char* MSG_ERR_INSTALL_FAILED_PROFILE_PARSE_FAIL = "[MSG_ERR_INSTALL_FAILED_PROFILE_PARSE_FAIL]";
50 const char* MSG_ERR_INSTALL_FAILED_APP_SOURCE_NOT_TRUESTED = "[MSG_ERR_INSTALL_FAILED_APP_SOURCE_NOT_TRUESTED]";
51 const char* MSG_ERR_INSTALL_FAILED_BAD_DIGEST = "[MSG_ERR_INSTALL_FAILED_BAD_DIGEST]";
52 const char* MSG_ERR_INSTALL_FAILED_BUNDLE_INTEGRITY_VERIFICATION_FAILURE =
53 "[MSG_ERR_INSTALL_FAILED_BUNDLE_INTEGRITY_VERIFICATION_FAILURE]";
54 const char* MSG_ERR_INSTALL_FAILED_FILE_SIZE_TOO_LARGE = "[MSG_ERR_INSTALL_FAILED_FILE_SIZE_TOO_LARGE]";
55 const char* MSG_ERR_INSTALL_FAILED_BAD_PUBLICKEY = "[MSG_ERR_INSTALL_FAILED_BAD_PUBLICKEY]";
56 const char* MSG_ERR_INSTALL_FAILED_BAD_BUNDLE_SIGNATURE = "[MSG_ERR_INSTALL_FAILED_BAD_BUNDLE_SIGNATURE]";
57 const char* MSG_ERR_INSTALL_FAILED_NO_PROFILE_BLOCK_FAIL = "[MSG_ERR_INSTALL_FAILED_NO_PROFILE_BLOCK_FAIL]";
58 const char* MSG_ERR_INSTALL_FAILED_BUNDLE_SIGNATURE_VERIFICATION_FAILURE =
59 "[MSG_ERR_INSTALL_FAILED_BUNDLE_SIGNATURE_VERIFICATION_FAILURE]";
60 const char* MSG_ERR_INSTALL_FAILED_VERIFY_SOURCE_INIT_FAIL = "[MSG_ERR_INSTALL_FAILED_VERIFY_SOURCE_INIT_FAIL]";
61 const char* MSG_ERR_INSTALL_FAILED_INCOMPATIBLE_SIGNATURE = "[ERR_INSTALL_FAILED_INCOMPATIBLE_SIGNATURE]";
62 const char* MSG_ERR_INSTALL_FAILED_INCONSISTENT_SIGNATURE = "[MSG_ERR_INSTALL_FAILED_INCONSISTENT_SIGNATURE]";
63 const char* MSG_ERR_INSTALL_FAILED_MODULE_NAME_EMPTY = "[MSG_ERR_INSTALL_FAILED_MODULE_NAME_EMPTY]";
64 const char* MSG_ERR_INSTALL_FAILED_MODULE_NAME_DUPLICATE = "[MSG_ERR_INSTALL_FAILED_MODULE_NAME_DUPLICATE]";
65 const char* MSG_ERR_INSTALL_FAILED_CHECK_HAP_HASH_PARAM = "[MSG_ERR_INSTALL_FAILED_CHECK_HAP_HASH_PARAM]";
66 const char* MSG_ERR_INSTALL_PARAM_ERROR = "[MSG_ERR_INSTALL_PARAM_ERROR]";
67 const char* MSG_ERR_INSTALL_PERMISSION_DENIED = "[MSG_ERR_INSTALL_PERMISSION_DENIED]";
68 const char* MSG_ERR_INSTALL_ENTRY_ALREADY_EXIST = "[MSG_ERR_INSTALL_ENTRY_ALREADY_EXIST]";
69 const char* MSG_ERR_INSTALL_STATE_ERROR = "[MSG_ERR_INSTALL_STATE_ERROR]";
70 const char* MSG_ERR_INSTALL_FILE_PATH_INVALID = "[MSG_ERR_INSTALL_FILE_PATH_INVALID]";
71 const char* MSG_ERR_INSTALL_INVALID_BUNDLE_FILE = "[ERR_INSTALL_INVALID_BUNDLE_FILE]";
72 const char* MSG_ERR_INSTALL_INVALID_HAP_SIZE = "[ERR_INSTALL_INVALID_HAP_SIZE]";
73 const char* MSG_ERR_INSTALL_GENERATE_UID_ERROR = "[ERR_INSTALL_GENERATE_UID_ERROR]";
74 const char* MSG_ERR_INSTALL_INSTALLD_SERVICE_ERROR = "[ERR_INSTALL_INSTALLD_SERVICE_ERROR]";
75 const char* MSG_ERR_INSTALL_BUNDLE_MGR_SERVICE_ERROR = "[ERR_INSTALL_BUNDLE_MGR_SERVICE_ERROR]";
76 const char* MSG_ERR_INSTALL_ALREADY_EXIST = "[ERR_INSTALL_ALREADY_EXIST]";
77 const char* MSG_ERR_INSTALL_BUNDLENAME_NOT_SAME = "[ERR_INSTALL_BUNDLENAME_NOT_SAME]";
78 const char* MSG_ERR_INSTALL_VERSIONCODE_NOT_SAME = "[ERR_INSTALL_VERSIONCODE_NOT_SAME]";
79 const char* MSG_ERR_INSTALL_VERSIONNAME_NOT_SAME = "[ERR_INSTALL_VERSIONNAME_NOT_SAME]";
80 const char* MSG_ERR_INSTALL_MINCOMPATIBLE_VERSIONCODE_NOT_SAME =
81 "[ERR_INSTALL_MINCOMPATIBLE_VERSIONCODE_NOT_SAME]";
82 const char* MSG_ERR_INSTALL_VENDOR_NOT_SAME = "[ERR_INSTALL_VENDOR_NOT_SAME]";
83 const char* MSG_ERR_INSTALL_RELEASETYPE_TARGET_NOT_SAME = "[ERR_INSTALL_RELEASETYPE_TARGET_NOT_SAME]";
84 const char* MSG_ERR_INSTALL_RELEASETYPE_NOT_SAME = "[ERR_INSTALL_RELEASETYPE_NOT_SAME]";
85 const char* MSG_ERR_INSTALL_RELEASETYPE_COMPATIBLE_NOT_SAME = "[ERR_INSTALL_RELEASETYPE_COMPATIBLE_NOT_SAME]";
86 const char* MSG_ERR_INSTALL_VERSION_NOT_COMPATIBLE = "[ERR_INSTALL_VERSION_NOT_COMPATIBLE]";
87 const char* MSG_ERR_INSTALL_APP_DISTRIBUTION_TYPE_NOT_SAME = "[ERR_INSTALL_APP_DISTRIBUTION_TYPE_NOT_SAME]";
88 const char* MSG_ERR_INSTALL_APP_PROVISION_TYPE_NOT_SAME = "[ERR_INSTALL_APP_PROVISION_TYPE_NOT_SAME]";
89 const char* MSG_ERR_INSTALL_INVALID_NUMBER_OF_ENTRY_HAP = "[ERR_INSTALL_INVALID_NUMBER_OF_ENTRY_HAP]";
90 const char* MSG_ERR_INSTALL_DISK_MEM_INSUFFICIENT = "[MSG_ERR_INSTALL_DISK_MEM_INSUFFICIENT]";
91 const char* MSG_ERR_INSTALL_GRANT_REQUEST_PERMISSIONS_FAILED =
92 "[MSG_ERR_INSTALL_GRANT_REQUEST_PERMISSIONS_FAILED]";
93 const char* MSG_ERR_INSTALL_UPDATE_HAP_TOKEN_FAILED = "[MSG_ERR_INSTALL_UPDATE_HAP_TOKEN_FAILED]";
94 const char* MSG_ERR_INSTALL_SINGLETON_NOT_SAME = "[MSG_ERR_INSTALL_SINGLETON_NOT_SAME]";
95 const char* MSG_ERR_INSTALL_ZERO_USER_WITH_NO_SINGLETON = "[MSG_ERR_INSTALL_ZERO_USER_WITH_NO_SINGLETON]";
96 const char* MSG_ERR_INSTALL_CHECK_SYSCAP_FAILED = "[MSG_ERR_INSTALL_CHECK_SYSCAP_FAILED]";
97 const char* MSG_ERR_INSTALL_APPTYPE_NOT_SAME = "[MSG_ERR_INSTALL_APPTYPE_NOT_SAME]";
98 const char* MSG_ERR_INSTALL_URI_DUPLICATE = "[MSG_ERR_INSTALL_URI_DUPLICATE]";
99 const char* MSG_ERR_INSTALL_TYPE_ERROR = "[ERR_INSTALL_TYPE_ERROR]";
100 const char* MSG_ERR_INSTALL_SDK_INCOMPATIBLE = "[ERR_INSTALL_SDK_INCOMPATIBLE]";
101 const char* MSG_ERR_INSTALL_SO_INCOMPATIBLE = "[ERR_INSTALL_SO_INCOMPATIBLE]";
102 const char* MSG_ERR_INSTALL_AN_INCOMPATIBLE = "[ERR_INSTALL_AN_INCOMPATIBLE]";
103 const char* MSG_ERR_INSTALL_PARSE_UNEXPECTED = "[ERR_INSTALL_PARSE_UNEXPECTED]";
104 const char* MSG_ERR_INSTALL_PARSE_MISSING_BUNDLE = "[ERR_INSTALL_PARSE_MISSING_BUNDLE]";
105 const char* MSG_ERR_INSTALL_PARSE_MISSING_ABILITY = "[ERR_INSTALL_PARSE_MISSING_ABILITY]";
106 const char* MSG_ERR_INSTALL_PARSE_NO_PROFILE = "[ERR_INSTALL_PARSE_NO_PROFILE]";
107 const char* MSG_ERR_INSTALL_PARSE_BAD_PROFILE = "[ERR_INSTALL_PARSE_BAD_PROFILE]";
108 const char* MSG_ERR_INSTALL_PARSE_PROFILE_PROP_TYPE_ERROR = "[ERR_INSTALL_PARSE_PROFILE_PROP_TYPE_ERROR]";
109 const char* MSG_ERR_INSTALL_PARSE_PROFILE_MISSING_PROP = "[ERR_INSTALL_PARSE_PROFILE_MISSING_PROP]";
110 const char* MSG_ERR_INSTALL_PARSE_PERMISSION_ERROR = "[ERR_INSTALL_PARSE_PERMISSION_ERROR]";
111 const char* MSG_ERR_INSTALL_PARSE_PROFILE_PROP_CHECK_ERROR = "[ERR_INSTALL_PARSE_PROFILE_PROP_CHECK_ERROR]";
112 const char* MSG_ERR_INSTALL_PARSE_PROFILE_PROP_SIZE_CHECK_ERROR = "[ERR_INSTALL_PARSE_PROFILE_PROP_SIZE_CHECK_ERROR]";
113 const char* MSG_ERR_INSTALL_PARSE_RPCID_FAILED = "[ERR_INSTALL_PARSE_RPCID_FAILED]";
114 const char* MSG_ERR_INSTALL_PARSE_NATIVE_SO_FAILED = "[ERR_INSTALL_PARSE_NATIVE_SO_FAILED]";
115 const char* MSG_ERR_INSTALL_PARSE_AN_FAILED = "[ERR_INSTALL_PARSE_AN_FAILED]";
116
117 const char* MSG_ERR_INSTALLD_CLEAN_DIR_FAILED = "[MSG_ERR_INSTALLD_CLEAN_DIR_FAILED]";
118 const char* MSG_ERR_INSTALLD_RNAME_DIR_FAILED = "[MSG_ERR_INSTALLD_RNAME_DIR_FAILED]";
119 const char* MSG_ERR_INSTALLD_EXTRACT_FILES_FAILED = "[MSG_ERR_INSTALLD_EXTRACT_FILES_FAILED]";
120 const char* MSG_ERR_INSTALLD_REMOVE_DIR_FAILED = "[ERR_INSTALLD_REMOVE_DIR_FAILED]";
121 const char* MSG_ERR_INSTALLD_CHOWN_FAILED = "[ERR_INSTALLD_CHOWN_FAILED,]";
122 const char* MSG_ERR_INSTALLD_CREATE_DIR_EXIST = "[ERR_INSTALLD_CREATE_DIR_EXIST]";
123 const char* MSG_ERR_INSTALLD_CREATE_DIR_FAILED = "[ERR_INSTALLD_CREATE_DIR_FAILED]";
124 const char* MSG_ERR_INSTALLD_GET_PROXY_ERROR = "[ERR_INSTALLD_GET_PROXY_ERROR]";
125 const char* MSG_ERR_INSTALLD_PARAM_ERROR = "[ERR_INSTALLD_PARAM_ERROR]";
126 const char* MSG_ERR_INSTALLD_PERMISSION_DENIED = "[ERR_INSTALLD_PERMISSION_DENIED]";
127 const char* MSG_ERR_INSTALLD_SET_SELINUX_LABEL_FAILED = "[ERR_INSTALLD_SET_SELINUX_LABEL_FAILED]";
128 const char* MSG_ERR_INSTALL_NOT_UNIQUE_DISTRO_MODULE_NAME = "[ERR_INSTALL_NOT_UNIQUE_DISTRO_MODULE_NAME]";
129 const char* MSG_ERR_INSTALL_INCONSISTENT_MODULE_NAME = "[MSG_ERR_INSTALL_INCONSISTENT_MODULE_NAME]";
130 const char* MSG_ERR_INSTALL_SINGLETON_INCOMPATIBLE = "[MSG_ERR_INSTALL_SINGLETON_INCOMPATIBLE]";
131 const char* MSG_ERR_INSTALL_DISALLOWED = "[MSG_ERR_INSTALL_DISALLOWED]";
132 const char* MSG_ERR_INSTALL_DEVICE_TYPE_NOT_SUPPORTED = "[MSG_ERR_INSTALL_DEVICE_TYPE_NOT_SUPPORTED]";
133 const char* MSG_ERR_INSTALL_DEPENDENT_MODULE_NOT_EXIST = "[MSG_ERR_INSTALL_DEPENDENT_MODULE_NOT_EXIST]";
134 const char* MSG_ERR_INSTALL_SHARE_APP_LIBRARY_NOT_ALLOWED = "[MSG_ERR_INSTALL_SHARE_APP_LIBRARY_NOT_ALLOWED]";
135 const char* MSG_ERR_INSTALL_COMPATIBLE_POLICY_NOT_SAME = "[MSG_ERR_INSTALL_COMPATIBLE_POLICY_NOT_SAME]";
136 const char* MSG_ERR_INSTALL_FILE_IS_SHARED_LIBRARY = "[MSG_ERR_INSTALL_FILE_IS_SHARED_LIBRARY]";
137 const char* MSG_ERR_INSTALL_INVALID_HAP_NAME = "[ERR_INSTALL_INVALID_HAP_NAME]";
138 const char* MSG_ERR_INSTALL_PROXY_DATA_URI_WRONG = "[ERR_INSTALL_PROXY_DATA_URI_WRONG]";
139 const char* MSG_ERR_INSTALL_PROXY_DATA_PERMISSION_WRONG = "[ERR_INSTALL_PROXY_DATA_PERMISSION_WRONG]";
140 const char* MSG_ERR_UNINSTALL_PARAM_ERROR = "[ERR_UNINSTALL_PARAM_ERROR]";
141 const char* MSG_ERR_UNINSTALL_PERMISSION_DENIED = "[MSG_ERR_UNINSTALL_PERMISSION_DENIED]";
142 const char* MSG_ERR_UNINSTALL_INVALID_NAME = "[ERR_UNINSTALL_INVALID_NAME]";
143 const char* MSG_ERR_UNINSTALL_BUNDLE_MGR_SERVICE_ERROR = "[ERR_UNINSTALL_BUNDLE_MGR_SERVICE_ERROR,]";
144 const char* MSG_ERR_UNINSTALL_MISSING_INSTALLED_BUNDLE = "[ERR_UNINSTALL_MISSING_INSTALLED_BUNDLE]";
145 const char* MSG_ERR_UNINSTALL_MISSING_INSTALLED_MODULE = "[ERR_UNINSTALL_MISSING_INSTALLED_MODULE]";
146 const char* MSG_ERR_UNINSTALL_KILLING_APP_ERROR = "[ERR_UNINSTALL_KILLING_APP_ERROR]";
147 const char* MSG_ERR_UNINSTALL_SYSTEM_APP_ERROR = "[MSG_ERR_UNINSTALL_SYSTEM_APP_ERROR]";
148 const char* MSG_ERR_UNINSTALL_DISALLOWED = "[MSG_ERR_UNINSTALL_DISALLOWED]";
149 const char* MSG_ERR_UNINSTALL_SHARE_APP_LIBRARY_NOT_EXIST = "[ERR_UNINSTALL_SHARE_APP_LIBRARY_NOT_EXIST]";
150 const char* MSG_ERR_UNINSTALL_SHARE_APP_LIBRARY_IS_RELIED = "[ERR_UNINSTALL_SHARE_APP_LIBRARY_IS_RELIED]";
151 const char* MSG_ERR_UNINSTALL_BUNDLE_IS_SHAED_LIBRARY = "[ERR_UNINSTALL_BUNDLE_IS_SHARED_LIBRARY]";
152 const char* MSG_ERR_UNKNOWN = "[ERR_UNKNOWN]";
153 const char* MSG_ERR_INSTALL_ISOLATION_MODE_FAILED = "[MSG_INSTALL_ISOLATION_MODE_CONFLICTED]";
154
155 const char* MSG_ERR_RECOVER_GET_BUNDLEPATH_ERROR = "[ERR_RECOVER_GET_BUNDLEPATH_ERROR]";
156 const char* MSG_ERR_RECOVER_INVALID_BUNDLE_NAME = "[ERR_RECOVER_INVALID_BUNDLE_NAME]";
157 const char* MSG_ERR_RECOVER_NOT_ALLOWED = "[ERR_RECOVER_NOT_ALLOWED]";
158 const char* MSG_ERR_FAILED_SERVICE_DIED = "[ERR_FAILED_SERVICE_DIED]";
159 const char* MSG_ERR_FAILED_GET_INSTALLER_PROXY = "[MSG_ERR_FAILED_GET_INSTALLER_PROXY]";
160 const char* MSG_ERR_OPERATION_TIME_OUT = "[MSG_ERR_OPERATION_TIME_OUT]";
161 const char* MSG_ERR_USER_NOT_EXIST = "[ERR_USER_NOT_EXIST]";
162 const char* MSG_ERR_USER_CREATE_FAILED = "[ERR_USER_CREATE_FAILED]";
163 const char* MSG_ERR_USER_REMOVE_FAILED = "[ERR_USER_REMOVE_FAILED]";
164 const char* MSG_ERR_USER_NOT_INSTALL_HAP = "[ERR_USER_NOT_INSTALL_HAP]";
165 const char* MSG_ERR_ASAN_ENABLED_NOT_SAME = "[ERR_INSTALL_ASAN_ENABLED_NOT_SAME]";
166 const char* MSG_ERR_ASAN_ENABLED_NOT_SUPPORT = "[ERR_ASAN_ENABLED_NOT_SUPPORT]";
167 const char* MSG_ERR_INSTALL_BUNDLE_TYPE_NOT_SAME = "[ERR_INSTALL_BUNDLE_TYPE_NOT_SAME]";
168
169 // overlay installation
170 const char* MSG_ERR_OVERLAY_INSTALLATION_FAILED_INTERNAL_ERROR = "[ERR_OVERLAY_INSTALLATION_FAILED_INTERNAL_ERROR]";
171 const char* MSG_ERR_OVERLAY_INSTALLATION_FAILED_INVALID_BUNDLE_NAME =
172 "[ERR_OVERLAY_INSTALLATION_FAILED_INVALID_BUNDLE_NAME]";
173 const char* MSG_ERR_OVERLAY_INSTALLATION_FAILED_INVALID_MODULE_NAME =
174 "[ERR_OVERLAY_INSTALLATION_FAILED_INVALID_MODULE_NAME]";
175 const char* MSG_ERR_OVERLAY_INSTALLATION_FAILED_ERROR_HAP_TYPE = "[ERR_OVERLAY_INSTALLATION_FAILED_ERROR_HAP_TYPE]";
176 const char* MSG_ERR_OVERLAY_INSTALLATION_FAILED_ERROR_BUNDLE_TYPE =
177 "[ERR_OVERLAY_INSTALLATION_FAILED_ERROR_BUNDLE_TYPE]";
178 const char* MSG_ERR_OVERLAY_INSTALLATION_FAILED_TARGET_BUNDLE_NAME_MISSED =
179 "[ERR_OVERLAY_INSTALLATION_FAILED_TARGET_BUNDLE_NAME_MISSED]";
180 const char* MSG_ERR_OVERLAY_INSTALLATION_FAILED_TARGET_MODULE_NAME_MISSED =
181 "[ERR_OVERLAY_INSTALLATION_FAILED_TARGET_MODULE_NAME_MISSED]";
182 const char* MSG_ERR_OVERLAY_INSTALLATION_FAILED_TARGET_BUNDLE_NAME_NOT_SAME =
183 "[ERR_OVERLAY_INSTALLATION_FAILED_TARGET_BUNDLE_NAME_NOT_SAME]";
184 const char* MSG_ERR_OVERLAY_INSTALLATION_FAILED_INTERNAL_EXTERNAL_OVERLAY_EXISTED_SIMULTANEOUSLY =
185 "[ERR_OVERLAY_INSTALLATION_FAILED_INTERNAL_EXTERNAL_OVERLAY_EXISTED_SIMULTANEOUSLY]";
186 const char* MSG_ERR_OVERLAY_INSTALLATION_FAILED_TARGET_PRIORITY_NOT_SAME =
187 "[ERR_OVERLAY_INSTALLATION_FAILED_TARGET_PRIORITY_NOT_SAME]";
188 const char* MSG_ERR_OVERLAY_INSTALLATION_FAILED_INVALID_PRIORITY =
189 "[ERR_OVERLAY_INSTALLATION_FAILED_INVALID_PRIORITY]";
190 const char* MSG_ERR_OVERLAY_INSTALLATION_FAILED_INCONSISTENT_VERSION_CODE =
191 "[ERR_OVERLAY_INSTALLATION_FAILED_INCONSISTENT_VERSION_CODE]";
192 const char* MSG_ERR_OVERLAY_INSTALLATION_FAILED_SERVICE_EXCEPTION =
193 "[ERR_OVERLAY_INSTALLATION_FAILED_SERVICE_EXCEPTION]";
194 const char* MSG_ERR_OVERLAY_INSTALLATION_FAILED_BUNDLE_NAME_SAME_WITH_TARGET_BUNDLE_NAME =
195 "[ERR_OVERLAY_INSTALLATION_FAILED_BUNDLE_NAME_SAME_WITH_TARGET_BUNDLE_NAME]";
196 const char* MSG_ERR_OVERLAY_INSTALLATION_FAILED_NO_SYSTEM_APPLICATION_FOR_EXTERNAL_OVERLAY =
197 "[ERR_OVERLAY_INSTALLATION_FAILED_NO_SYSTEM_APPLICATION_FOR_EXTERNAL_OVERLAY]";
198 const char* MSG_ERR_OVERLAY_INSTALLATION_FAILED_DIFFERENT_SIGNATURE_CERTIFICATE =
199 "[ERR_OVERLAY_INSTALLATION_FAILED_DIFFERENT_SIGNATURE_CERTIFICATE]";
200 const char* MSG_ERR_OVERLAY_INSTALLATION_FAILED_TARGET_BUNDLE_IS_OVERLAY_BUNDLE =
201 "[ERR_OVERLAY_INSTALLATION_FAILED_TARGET_BUNDLE_IS_OVERLAY_BUNDLE]";
202 const char* MSG_ERR_OVERLAY_INSTALLATION_FAILED_TARGET_MODULE_IS_OVERLAY_MODULE =
203 "[ERR_OVERLAY_INSTALLATION_FAILED_TARGET_MODULE_IS_OVERLAY_MODULE]";
204 const char* MSG_ERR_OVERLAY_INSTALLATION_FAILED_OVERLAY_TYPE_NOT_SAME =
205 "[ERR_OVERLAY_INSTALLATION_FAILED_OVERLAY_TYPE_NOT_SAME]";
206 const char* MSG_ERR_OVERLAY_INSTALLATION_FAILED_INVALID_BUNDLE_DIR =
207 "[ERR_OVERLAY_INSTALLATION_FAILED_INVALID_BUNDLE_DIR]";
208 const char* MSG_ERR_APPEXECFWK_INSTALL_DEBUG_NOT_SAME = "[MSG_ERR_APPEXECFWK_INSTALL_DEBUG_NOT_SAME]";
209 const char* MSG_ERR_INSTALL_CODE_SIGNATURE_FAILED = "[MSG_ERR_INSTALL_CODE_SIGNATURE_FAILED]";
210 const char* MSG_ERR_INSTALL_CODE_SIGNATURE_FILE_IS_INVALID = "[MSG_ERR_INSTALL_CODE_SIGNATURE_FILE_IS_INVALID]";
211 const char* MSG_ERR_UNINSTALL_FROM_BMS_EXTENSION_FAILED = "[MSG_ERR_UNINSTALL_FROM_BMS_EXTENSION_FAILED]";
212 const char* MSG_ERR_INSTALL_SELF_UPDATE_NOT_MDM = "[MSG_ERR_INSTALL_SELF_UPDATE_NOT_MDM]";
213 const char* MSG_ERR_INSTALL_SELF_UPDATE_BUNDLENAME_NOT_SAME = "[MSG_ERR_INSTALL_SELF_UPDATE_BUNDLENAME_NOT_SAME]";
214 const char* MSG_ERR_INSTALL_ENTERPRISE_BUNDLE_NOT_ALLOWED = "[MSG_ERR_INSTALL_ENTERPRISE_BUNDLE_NOT_ALLOWED]";
215
216 const std::map<int32_t, struct ReceivedResult> MAP_RECEIVED_RESULTS {
217 {ERR_OK, {IStatusReceiver::SUCCESS, MSG_SUCCESS}},
218 {ERR_APPEXECFWK_INSTALL_INTERNAL_ERROR,
219 {IStatusReceiver::ERR_INSTALL_INTERNAL_ERROR, MSG_ERR_INSTALL_INTERNAL_ERROR}},
220 {ERR_APPEXECFWK_INSTALL_HOST_INSTALLER_FAILED,
221 {IStatusReceiver::ERR_INSTALL_HOST_INSTALLER_FAILED, MSG_ERR_INSTALL_HOST_INSTALLER_FAILED}},
222 {ERR_APPEXECFWK_INSTALL_PARSE_FAILED, {IStatusReceiver::ERR_INSTALL_PARSE_FAILED, MSG_ERR_INSTALL_PARSE_FAILED}},
223 {ERR_APPEXECFWK_INSTALL_VERSION_DOWNGRADE,
224 {IStatusReceiver::ERR_INSTALL_VERSION_DOWNGRADE, MSG_ERR_INSTALL_VERSION_DOWNGRADE}},
225 {ERR_APPEXECFWK_INSTALL_VERIFICATION_FAILED,
226 {IStatusReceiver::ERR_INSTALL_VERIFICATION_FAILED, MSG_ERR_INSTALL_VERIFICATION_FAILED}},
227 {ERR_APPEXECFWK_INSTALL_FAILED_INVALID_SIGNATURE_FILE_PATH,
228 {IStatusReceiver::ERR_INSTALL_FAILED_INVALID_SIGNATURE_FILE_PATH,
229 MSG_ERR_INSTALL_FAILED_INVALID_SIGNATURE_FILE_PATH}},
230 {ERR_APPEXECFWK_INSTALL_FAILED_BAD_BUNDLE_SIGNATURE_FILE,
231 {IStatusReceiver::ERR_INSTALL_FAILED_BAD_BUNDLE_SIGNATURE_FILE,
232 MSG_ERR_INSTALL_FAILED_BAD_BUNDLE_SIGNATURE_FILE}},
233 {ERR_APPEXECFWK_INSTALL_FAILED_NO_BUNDLE_SIGNATURE,
234 {IStatusReceiver::ERR_INSTALL_FAILED_NO_BUNDLE_SIGNATURE, MSG_ERR_INSTALL_FAILED_NO_BUNDLE_SIGNATURE}},
235 {ERR_APPEXECFWK_INSTALL_FAILED_VERIFY_APP_PKCS7_FAIL,
236 {IStatusReceiver::ERR_INSTALL_FAILED_VERIFY_APP_PKCS7_FAIL, MSG_ERR_INSTALL_FAILED_VERIFY_APP_PKCS7_FAIL}},
237 {ERR_APPEXECFWK_INSTALL_FAILED_PROFILE_PARSE_FAIL,
238 {IStatusReceiver::ERR_INSTALL_FAILED_PROFILE_PARSE_FAIL, MSG_ERR_INSTALL_FAILED_PROFILE_PARSE_FAIL}},
239 {ERR_APPEXECFWK_INSTALL_FAILED_APP_SOURCE_NOT_TRUESTED,
240 {IStatusReceiver::ERR_INSTALL_FAILED_APP_SOURCE_NOT_TRUESTED, MSG_ERR_INSTALL_FAILED_APP_SOURCE_NOT_TRUESTED}},
241 {ERR_APPEXECFWK_INSTALL_FAILED_BAD_DIGEST,
242 {IStatusReceiver::ERR_INSTALL_FAILED_BAD_DIGEST, MSG_ERR_INSTALL_FAILED_BAD_DIGEST}},
243 {ERR_APPEXECFWK_INSTALL_FAILED_BUNDLE_INTEGRITY_VERIFICATION_FAILURE,
244 {IStatusReceiver::ERR_INSTALL_FAILED_BUNDLE_INTEGRITY_VERIFICATION_FAILURE,
245 MSG_ERR_INSTALL_FAILED_BUNDLE_INTEGRITY_VERIFICATION_FAILURE}},
246 {ERR_APPEXECFWK_INSTALL_FAILED_FILE_SIZE_TOO_LARGE,
247 {IStatusReceiver::ERR_INSTALL_FAILED_FILE_SIZE_TOO_LARGE, MSG_ERR_INSTALL_FAILED_FILE_SIZE_TOO_LARGE}},
248 {ERR_APPEXECFWK_INSTALL_FAILED_BAD_PUBLICKEY,
249 {IStatusReceiver::ERR_INSTALL_FAILED_BAD_PUBLICKEY, MSG_ERR_INSTALL_FAILED_BAD_PUBLICKEY}},
250 {ERR_APPEXECFWK_INSTALL_FAILED_BAD_BUNDLE_SIGNATURE,
251 {IStatusReceiver::ERR_INSTALL_FAILED_BAD_BUNDLE_SIGNATURE, MSG_ERR_INSTALL_FAILED_BAD_BUNDLE_SIGNATURE}},
252 {ERR_APPEXECFWK_INSTALL_FAILED_NO_PROFILE_BLOCK_FAIL,
253 {IStatusReceiver::ERR_INSTALL_FAILED_NO_PROFILE_BLOCK_FAIL, MSG_ERR_INSTALL_FAILED_NO_PROFILE_BLOCK_FAIL}},
254 {ERR_APPEXECFWK_INSTALL_FAILED_BUNDLE_SIGNATURE_VERIFICATION_FAILURE,
255 {IStatusReceiver::ERR_INSTALL_FAILED_BUNDLE_SIGNATURE_VERIFICATION_FAILURE,
256 MSG_ERR_INSTALL_FAILED_BUNDLE_SIGNATURE_VERIFICATION_FAILURE}},
257 {ERR_APPEXECFWK_INSTALL_FAILED_VERIFY_SOURCE_INIT_FAIL,
258 {IStatusReceiver::ERR_INSTALL_FAILED_VERIFY_SOURCE_INIT_FAIL, MSG_ERR_INSTALL_FAILED_VERIFY_SOURCE_INIT_FAIL}},
259 {ERR_APPEXECFWK_INSTALL_FAILED_INCOMPATIBLE_SIGNATURE,
260 {IStatusReceiver::ERR_INSTALL_FAILED_INCOMPATIBLE_SIGNATURE, MSG_ERR_INSTALL_FAILED_INCOMPATIBLE_SIGNATURE}},
261 {ERR_APPEXECFWK_INSTALL_FAILED_INCONSISTENT_SIGNATURE,
262 {IStatusReceiver::ERR_INSTALL_FAILED_INCONSISTENT_SIGNATURE, MSG_ERR_INSTALL_FAILED_INCONSISTENT_SIGNATURE}},
263 {ERR_APPEXECFWK_INSTALL_FAILED_MODULE_NAME_EMPTY,
264 {IStatusReceiver::ERR_INSTALL_FAILED_MODULE_NAME_EMPTY, MSG_ERR_INSTALL_FAILED_MODULE_NAME_EMPTY}},
265 {ERR_APPEXECFWK_INSTALL_FAILED_MODULE_NAME_DUPLICATE,
266 {IStatusReceiver::ERR_INSTALL_FAILED_MODULE_NAME_DUPLICATE, MSG_ERR_INSTALL_FAILED_MODULE_NAME_DUPLICATE}},
267 {ERR_APPEXECFWK_INSTALL_FAILED_CHECK_HAP_HASH_PARAM,
268 {IStatusReceiver::ERR_INSTALL_FAILED_CHECK_HAP_HASH_PARAM, MSG_ERR_INSTALL_FAILED_CHECK_HAP_HASH_PARAM}},
269 {ERR_APPEXECFWK_INSTALL_PARAM_ERROR,
270 {IStatusReceiver::ERR_INSTALL_PARAM_ERROR, MSG_ERR_INSTALL_PARAM_ERROR}},
271 {ERR_APPEXECFWK_INSTALL_PERMISSION_DENIED,
272 {IStatusReceiver::ERR_INSTALL_PERMISSION_DENIED, MSG_ERR_INSTALL_PERMISSION_DENIED}},
273 {ERR_APPEXECFWK_INSTALL_ENTRY_ALREADY_EXIST,
274 {IStatusReceiver::ERR_INSTALL_ENTRY_ALREADY_EXIST, MSG_ERR_INSTALL_ENTRY_ALREADY_EXIST}},
275 {ERR_APPEXECFWK_INSTALL_STATE_ERROR,
276 {IStatusReceiver::ERR_INSTALL_STATE_ERROR, MSG_ERR_INSTALL_STATE_ERROR}},
277 {ERR_APPEXECFWK_INSTALL_FILE_PATH_INVALID,
278 {IStatusReceiver::ERR_INSTALL_FILE_PATH_INVALID, MSG_ERR_INSTALL_FILE_PATH_INVALID}},
279 {ERR_APPEXECFWK_INSTALL_INVALID_HAP_NAME,
280 {IStatusReceiver::ERR_INSTALL_INVALID_HAP_NAME, MSG_ERR_INSTALL_INVALID_HAP_NAME}},
281 {ERR_APPEXECFWK_INSTALL_INVALID_BUNDLE_FILE,
282 {IStatusReceiver::ERR_INSTALL_INVALID_BUNDLE_FILE, MSG_ERR_INSTALL_INVALID_BUNDLE_FILE}},
283 {ERR_APPEXECFWK_INSTALL_INVALID_HAP_SIZE,
284 {IStatusReceiver::ERR_INSTALL_INVALID_HAP_SIZE, MSG_ERR_INSTALL_INVALID_HAP_SIZE}},
285 {ERR_APPEXECFWK_INSTALL_GENERATE_UID_ERROR,
286 {IStatusReceiver::ERR_INSTALL_GENERATE_UID_ERROR, MSG_ERR_INSTALL_GENERATE_UID_ERROR}},
287 {ERR_APPEXECFWK_INSTALL_INSTALLD_SERVICE_ERROR,
288 {IStatusReceiver::ERR_INSTALL_INSTALLD_SERVICE_ERROR, MSG_ERR_INSTALL_INSTALLD_SERVICE_ERROR}},
289 {ERR_APPEXECFWK_INSTALL_BUNDLE_MGR_SERVICE_ERROR,
290 {IStatusReceiver::ERR_INSTALL_BUNDLE_MGR_SERVICE_ERROR, MSG_ERR_INSTALL_BUNDLE_MGR_SERVICE_ERROR}},
291 {ERR_APPEXECFWK_INSTALL_ALREADY_EXIST,
292 {IStatusReceiver::ERR_INSTALL_ALREADY_EXIST, MSG_ERR_INSTALL_ALREADY_EXIST}},
293 {ERR_APPEXECFWK_INSTALL_BUNDLENAME_NOT_SAME,
294 {IStatusReceiver::ERR_INSTALL_BUNDLENAME_NOT_SAME, MSG_ERR_INSTALL_BUNDLENAME_NOT_SAME}},
295 {ERR_APPEXECFWK_INSTALL_VERSIONCODE_NOT_SAME,
296 {IStatusReceiver::ERR_INSTALL_VERSIONCODE_NOT_SAME, MSG_ERR_INSTALL_VERSIONCODE_NOT_SAME}},
297 {ERR_APPEXECFWK_INSTALL_VERSIONNAME_NOT_SAME,
298 {IStatusReceiver::ERR_INSTALL_VERSIONNAME_NOT_SAME, MSG_ERR_INSTALL_VERSIONNAME_NOT_SAME}},
299 {ERR_APPEXECFWK_INSTALL_MINCOMPATIBLE_VERSIONCODE_NOT_SAME,
300 {IStatusReceiver::ERR_INSTALL_MINCOMPATIBLE_VERSIONCODE_NOT_SAME,
301 MSG_ERR_INSTALL_MINCOMPATIBLE_VERSIONCODE_NOT_SAME}},
302 {ERR_APPEXECFWK_INSTALL_VENDOR_NOT_SAME,
303 {IStatusReceiver::ERR_INSTALL_VENDOR_NOT_SAME, MSG_ERR_INSTALL_VENDOR_NOT_SAME}},
304 {ERR_APPEXECFWK_INSTALL_RELEASETYPE_TARGET_NOT_SAME,
305 {IStatusReceiver::ERR_INSTALL_RELEASETYPE_TARGET_NOT_SAME, MSG_ERR_INSTALL_RELEASETYPE_TARGET_NOT_SAME}},
306 {ERR_APPEXECFWK_INSTALL_RELEASETYPE_NOT_SAME,
307 {IStatusReceiver::ERR_INSTALL_RELEASETYPE_NOT_SAME, MSG_ERR_INSTALL_RELEASETYPE_NOT_SAME}},
308 {ERR_APPEXECFWK_INSTALL_RELEASETYPE_COMPATIBLE_NOT_SAME,
309 {IStatusReceiver::ERR_INSTALL_RELEASETYPE_COMPATIBLE_NOT_SAME,
310 MSG_ERR_INSTALL_RELEASETYPE_COMPATIBLE_NOT_SAME}},
311 {ERR_APPEXECFWK_INSTALL_APP_DISTRIBUTION_TYPE_NOT_SAME,
312 {IStatusReceiver::ERR_INSTALL_APP_DISTRIBUTION_TYPE_NOT_SAME,
313 MSG_ERR_INSTALL_APP_DISTRIBUTION_TYPE_NOT_SAME}},
314 {ERR_APPEXECFWK_INSTALL_APP_PROVISION_TYPE_NOT_SAME,
315 {IStatusReceiver::ERR_INSTALL_APP_PROVISION_TYPE_NOT_SAME,
316 MSG_ERR_INSTALL_APP_PROVISION_TYPE_NOT_SAME}},
317 {ERR_APPEXECFWK_INSTALL_VERSION_NOT_COMPATIBLE,
318 {IStatusReceiver::ERR_INSTALL_VERSION_NOT_COMPATIBLE, MSG_ERR_INSTALL_VERSION_NOT_COMPATIBLE}},
319 {ERR_APPEXECFWK_INSTALL_INVALID_NUMBER_OF_ENTRY_HAP,
320 {IStatusReceiver::ERR_INSTALL_INVALID_NUMBER_OF_ENTRY_HAP, MSG_ERR_INSTALL_INVALID_NUMBER_OF_ENTRY_HAP}},
321 {ERR_APPEXECFWK_INSTALL_GRANT_REQUEST_PERMISSIONS_FAILED,
322 {IStatusReceiver::ERR_INSTALL_GRANT_REQUEST_PERMISSIONS_FAILED,
323 MSG_ERR_INSTALL_GRANT_REQUEST_PERMISSIONS_FAILED}},
324 {ERR_APPEXECFWK_INSTALL_UPDATE_HAP_TOKEN_FAILED,
325 {IStatusReceiver::ERR_INSTALL_UPDATE_HAP_TOKEN_FAILED, MSG_ERR_INSTALL_UPDATE_HAP_TOKEN_FAILED}},
326 {ERR_APPEXECFWK_INSTALL_SINGLETON_NOT_SAME,
327 {IStatusReceiver::ERR_INSTALL_SINGLETON_NOT_SAME, MSG_ERR_INSTALL_SINGLETON_NOT_SAME}},
328 {ERR_APPEXECFWK_INSTALL_ZERO_USER_WITH_NO_SINGLETON,
329 {IStatusReceiver::ERR_INSTALL_ZERO_USER_WITH_NO_SINGLETON, MSG_ERR_INSTALL_ZERO_USER_WITH_NO_SINGLETON}},
330 {ERR_APPEXECFWK_INSTALL_CHECK_SYSCAP_FAILED,
331 {IStatusReceiver::ERR_INSTALL_CHECK_SYSCAP_FAILED, MSG_ERR_INSTALL_CHECK_SYSCAP_FAILED}},
332 {ERR_APPEXECFWK_INSTALL_APPTYPE_NOT_SAME,
333 {IStatusReceiver::ERR_INSTALL_APPTYPE_NOT_SAME, MSG_ERR_INSTALL_APPTYPE_NOT_SAME}},
334 {ERR_APPEXECFWK_INSTALL_URI_DUPLICATE,
335 {IStatusReceiver::ERR_INSTALL_URI_DUPLICATE, MSG_ERR_INSTALL_URI_DUPLICATE}},
336 {ERR_APPEXECFWK_INSTALL_TYPE_ERROR, {IStatusReceiver::ERR_INSTALL_TYPE_ERROR, MSG_ERR_INSTALL_TYPE_ERROR}},
337 {ERR_APPEXECFWK_INSTALL_SDK_INCOMPATIBLE,
338 {IStatusReceiver::ERR_INSTALL_SDK_INCOMPATIBLE, MSG_ERR_INSTALL_SDK_INCOMPATIBLE}},
339 {ERR_APPEXECFWK_INSTALL_SO_INCOMPATIBLE,
340 {IStatusReceiver::ERR_INSTALL_SO_INCOMPATIBLE, MSG_ERR_INSTALL_SO_INCOMPATIBLE}},
341 {ERR_APPEXECFWK_INSTALL_AN_INCOMPATIBLE,
342 {IStatusReceiver::ERR_INSTALL_AN_INCOMPATIBLE, MSG_ERR_INSTALL_AN_INCOMPATIBLE}},
343 {ERR_APPEXECFWK_INSTALL_DISK_MEM_INSUFFICIENT,
344 {IStatusReceiver::ERR_INSTALL_DISK_MEM_INSUFFICIENT, MSG_ERR_INSTALL_DISK_MEM_INSUFFICIENT}},
345 {ERR_APPEXECFWK_PARSE_UNEXPECTED,
346 {IStatusReceiver::ERR_INSTALL_PARSE_UNEXPECTED, MSG_ERR_INSTALL_PARSE_UNEXPECTED}},
347 {ERR_APPEXECFWK_PARSE_MISSING_BUNDLE,
348 {IStatusReceiver::ERR_INSTALL_PARSE_MISSING_BUNDLE, MSG_ERR_INSTALL_PARSE_MISSING_BUNDLE}},
349 {ERR_APPEXECFWK_PARSE_MISSING_ABILITY,
350 {IStatusReceiver::ERR_INSTALL_PARSE_MISSING_ABILITY, MSG_ERR_INSTALL_PARSE_MISSING_ABILITY}},
351 {ERR_APPEXECFWK_PARSE_NO_PROFILE,
352 {IStatusReceiver::ERR_INSTALL_PARSE_NO_PROFILE, MSG_ERR_INSTALL_PARSE_NO_PROFILE}},
353 {ERR_APPEXECFWK_PARSE_BAD_PROFILE,
354 {IStatusReceiver::ERR_INSTALL_PARSE_BAD_PROFILE, MSG_ERR_INSTALL_PARSE_BAD_PROFILE}},
355 {ERR_APPEXECFWK_PARSE_PROFILE_PROP_TYPE_ERROR,
356 {IStatusReceiver::ERR_INSTALL_PARSE_PROFILE_PROP_TYPE_ERROR, MSG_ERR_INSTALL_PARSE_PROFILE_PROP_TYPE_ERROR}},
357 {ERR_APPEXECFWK_PARSE_PROFILE_MISSING_PROP,
358 {IStatusReceiver::ERR_INSTALL_PARSE_PROFILE_MISSING_PROP, MSG_ERR_INSTALL_PARSE_PROFILE_MISSING_PROP}},
359 {ERR_APPEXECFWK_PARSE_PERMISSION_ERROR,
360 {IStatusReceiver::ERR_INSTALL_PARSE_PERMISSION_ERROR, MSG_ERR_INSTALL_PARSE_PERMISSION_ERROR}},
361 {ERR_APPEXECFWK_PARSE_PROFILE_PROP_CHECK_ERROR,
362 {IStatusReceiver::ERR_INSTALL_PARSE_PROFILE_PROP_CHECK_ERROR, MSG_ERR_INSTALL_PARSE_PROFILE_PROP_CHECK_ERROR}},
363 {ERR_APPEXECFWK_PARSE_PROFILE_PROP_SIZE_CHECK_ERROR,
364 {IStatusReceiver::ERR_INSTALL_PARSE_PROFILE_PROP_SIZE_CHECK_ERROR,
365 MSG_ERR_INSTALL_PARSE_PROFILE_PROP_SIZE_CHECK_ERROR}},
366 {ERR_APPEXECFWK_PARSE_RPCID_FAILED,
367 {IStatusReceiver::ERR_INSTALL_PARSE_RPCID_FAILED, MSG_ERR_INSTALL_PARSE_RPCID_FAILED}},
368 {ERR_APPEXECFWK_PARSE_NATIVE_SO_FAILED,
369 {IStatusReceiver::ERR_INSTALL_PARSE_NATIVE_SO_FAILED, MSG_ERR_INSTALL_PARSE_NATIVE_SO_FAILED}},
370 {ERR_APPEXECFWK_PARSE_AN_FAILED,
371 {IStatusReceiver::ERR_INSTALL_PARSE_AN_FAILED, MSG_ERR_INSTALL_PARSE_AN_FAILED}},
372 {ERR_APPEXECFWK_INSTALL_ASAN_ENABLED_NOT_SAME,
373 {IStatusReceiver::ERR_INSTALL_ASAN_ENABLED_NOT_SAME, MSG_ERR_ASAN_ENABLED_NOT_SAME}},
374 {ERR_APPEXECFWK_INSTALL_ASAN_NOT_SUPPORT,
375 {IStatusReceiver::ERR_INSTALL_ASAN_ENABLED_NOT_SUPPORT, MSG_ERR_ASAN_ENABLED_NOT_SUPPORT}},
376 {ERR_APPEXECFWK_BUNDLE_TYPE_NOT_SAME,
377 {IStatusReceiver::ERR_INSTALL_BUNDLE_TYPE_NOT_SAME, MSG_ERR_INSTALL_BUNDLE_TYPE_NOT_SAME}},
378
379 {ERR_APPEXECFWK_INSTALLD_CLEAN_DIR_FAILED,
380 {IStatusReceiver::ERR_INSTALLD_CLEAN_DIR_FAILED, MSG_ERR_INSTALLD_CLEAN_DIR_FAILED}},
381 {ERR_APPEXECFWK_INSTALLD_RNAME_DIR_FAILED,
382 {IStatusReceiver::ERR_INSTALLD_RNAME_DIR_FAILED, MSG_ERR_INSTALLD_RNAME_DIR_FAILED}},
383 {ERR_APPEXECFWK_INSTALLD_EXTRACT_FILES_FAILED,
384 {IStatusReceiver::ERR_INSTALLD_EXTRACT_FILES_FAILED, MSG_ERR_INSTALLD_EXTRACT_FILES_FAILED}},
385 {ERR_APPEXECFWK_INSTALLD_REMOVE_DIR_FAILED,
386 {IStatusReceiver::ERR_INSTALLD_REMOVE_DIR_FAILED, MSG_ERR_INSTALLD_REMOVE_DIR_FAILED}},
387 {ERR_APPEXECFWK_INSTALLD_CHOWN_FAILED, {IStatusReceiver::ERR_INSTALLD_CHOWN_FAILED, MSG_ERR_INSTALLD_CHOWN_FAILED}},
388 {ERR_APPEXECFWK_INSTALLD_CREATE_DIR_EXIST,
389 {IStatusReceiver::ERR_INSTALLD_CREATE_DIR_EXIST, MSG_ERR_INSTALLD_CREATE_DIR_EXIST}},
390 {ERR_APPEXECFWK_INSTALLD_CREATE_DIR_FAILED,
391 {IStatusReceiver::ERR_INSTALLD_CREATE_DIR_FAILED, MSG_ERR_INSTALLD_CREATE_DIR_FAILED}},
392 {ERR_APPEXECFWK_INSTALLD_GET_PROXY_ERROR,
393 {IStatusReceiver::ERR_INSTALLD_GET_PROXY_ERROR, MSG_ERR_INSTALLD_GET_PROXY_ERROR}},
394 {ERR_APPEXECFWK_INSTALLD_PARAM_ERROR, {IStatusReceiver::ERR_INSTALLD_PARAM_ERROR, MSG_ERR_INSTALLD_PARAM_ERROR}},
395 {ERR_APPEXECFWK_INSTALLD_PERMISSION_DENIED, {IStatusReceiver::ERR_INSTALLD_PERMISSION_DENIED,
396 MSG_ERR_INSTALLD_PERMISSION_DENIED}},
397 {ERR_APPEXECFWK_INSTALLD_SET_SELINUX_LABEL_FAILED, {IStatusReceiver::ERR_INSTALLD_SET_SELINUX_LABEL_FAILED,
398 MSG_ERR_INSTALLD_SET_SELINUX_LABEL_FAILED}},
399
400 {ERR_APPEXECFWK_UNINSTALL_MISSING_INSTALLED_MODULE,
401 {IStatusReceiver::ERR_UNINSTALL_MISSING_INSTALLED_MODULE, MSG_ERR_UNINSTALL_MISSING_INSTALLED_MODULE}},
402 {ERR_APPEXECFWK_UNINSTALL_PARAM_ERROR, {IStatusReceiver::ERR_UNINSTALL_PARAM_ERROR, MSG_ERR_UNINSTALL_PARAM_ERROR}},
403 {ERR_APPEXECFWK_UNINSTALL_PERMISSION_DENIED,
404 {IStatusReceiver::ERR_UNINSTALL_PERMISSION_DENIED, MSG_ERR_UNINSTALL_PERMISSION_DENIED}},
405 {ERR_APPEXECFWK_UNINSTALL_BUNDLE_MGR_SERVICE_ERROR,
406 {IStatusReceiver::ERR_UNINSTALL_BUNDLE_MGR_SERVICE_ERROR, MSG_ERR_UNINSTALL_BUNDLE_MGR_SERVICE_ERROR}},
407 {ERR_APPEXECFWK_UNINSTALL_MISSING_INSTALLED_BUNDLE,
408 {IStatusReceiver::ERR_UNINSTALL_MISSING_INSTALLED_BUNDLE, MSG_ERR_UNINSTALL_MISSING_INSTALLED_BUNDLE}},
409 {ERR_APPEXECFWK_UNINSTALL_KILLING_APP_ERROR,
410 {IStatusReceiver::ERR_UNINSTALL_KILLING_APP_ERROR, MSG_ERR_UNINSTALL_KILLING_APP_ERROR}},
411 {ERR_APPEXECFWK_UNINSTALL_SYSTEM_APP_ERROR,
412 {IStatusReceiver::ERR_UNINSTALL_SYSTEM_APP_ERROR, MSG_ERR_UNINSTALL_SYSTEM_APP_ERROR}},
413 {ERR_APPEXECFWK_UNINSTALL_INVALID_NAME,
414 {IStatusReceiver::ERR_UNINSTALL_INVALID_NAME, MSG_ERR_UNINSTALL_INVALID_NAME}},
415 {ERR_APPEXECFWK_RECOVER_GET_BUNDLEPATH_ERROR,
416 {IStatusReceiver::ERR_RECOVER_GET_BUNDLEPATH_ERROR, MSG_ERR_RECOVER_GET_BUNDLEPATH_ERROR}},
417 {ERR_APPEXECFWK_RECOVER_INVALID_BUNDLE_NAME,
418 {IStatusReceiver::ERR_RECOVER_INVALID_BUNDLE_NAME, MSG_ERR_RECOVER_INVALID_BUNDLE_NAME}},
419 {ERR_APPEXECFWK_RECOVER_NOT_ALLOWED,
420 {IStatusReceiver::ERR_RECOVER_NOT_ALLOWED, MSG_ERR_RECOVER_NOT_ALLOWED}},
421 {ERR_APPEXECFWK_FAILED_SERVICE_DIED,
422 {IStatusReceiver::ERR_FAILED_SERVICE_DIED, MSG_ERR_FAILED_SERVICE_DIED}},
423 {ERR_APPEXECFWK_FAILED_GET_INSTALLER_PROXY,
424 {IStatusReceiver::ERR_FAILED_GET_INSTALLER_PROXY, MSG_ERR_FAILED_GET_INSTALLER_PROXY}},
425 {ERR_APPEXECFWK_OPERATION_TIME_OUT,
426 {IStatusReceiver::ERR_OPERATION_TIME_OUT, MSG_ERR_OPERATION_TIME_OUT}},
427 {ERR_APPEXECFWK_USER_NOT_EXIST,
428 {IStatusReceiver::ERR_USER_NOT_EXIST, MSG_ERR_USER_NOT_EXIST}},
429 {ERR_APPEXECFWK_USER_CREATE_FAILED,
430 {IStatusReceiver::ERR_USER_CREATE_FAILED, MSG_ERR_USER_CREATE_FAILED}},
431 {ERR_APPEXECFWK_USER_REMOVE_FAILED,
432 {IStatusReceiver::ERR_USER_REMOVE_FAILED, MSG_ERR_USER_REMOVE_FAILED}},
433 {ERR_APPEXECFWK_USER_NOT_INSTALL_HAP,
434 {IStatusReceiver::ERR_USER_NOT_INSTALL_HAP, MSG_ERR_USER_NOT_INSTALL_HAP}},
435 {ERR_APPEXECFWK_INSTALL_NOT_UNIQUE_DISTRO_MODULE_NAME,
436 {IStatusReceiver::ERR_INSTALL_NOT_UNIQUE_DISTRO_MODULE_NAME, MSG_ERR_INSTALL_NOT_UNIQUE_DISTRO_MODULE_NAME}},
437 {ERR_APPEXECFWK_INSTALL_INCONSISTENT_MODULE_NAME,
438 {IStatusReceiver::ERR_INSTALL_INCONSISTENT_MODULE_NAME, MSG_ERR_INSTALL_INCONSISTENT_MODULE_NAME}},
439 {ERR_APPEXECFWK_INSTALL_SINGLETON_INCOMPATIBLE,
440 {IStatusReceiver::ERR_INSTALL_SINGLETON_INCOMPATIBLE, MSG_ERR_INSTALL_SINGLETON_INCOMPATIBLE}},
441 {ERR_BUNDLE_MANAGER_APP_CONTROL_DISALLOWED_INSTALL,
442 {IStatusReceiver::ERR_INSTALL_DISALLOWED, MSG_ERR_INSTALL_DISALLOWED}},
443 {ERR_BUNDLE_MANAGER_APP_CONTROL_DISALLOWED_UNINSTALL,
444 {IStatusReceiver::ERR_UNINSTALL_DISALLOWED, MSG_ERR_UNINSTALL_DISALLOWED}},
445 {ERR_APPEXECFWK_UNINSTALL_SHARE_APP_LIBRARY_IS_NOT_EXIST,
446 {IStatusReceiver::ERR_APPEXECFWK_UNINSTALL_SHARE_APP_LIBRARY_IS_NOT_EXIST,
447 MSG_ERR_UNINSTALL_SHARE_APP_LIBRARY_NOT_EXIST}},
448 {ERR_APPEXECFWK_UNINSTALL_SHARE_APP_LIBRARY_IS_RELIED,
449 {IStatusReceiver::ERR_APPEXECFWK_UNINSTALL_SHARE_APP_LIBRARY_IS_RELIED,
450 MSG_ERR_UNINSTALL_SHARE_APP_LIBRARY_IS_RELIED}},
451 {ERR_APPEXECFWK_UNINSTALL_BUNDLE_IS_SHARED_LIBRARY,
452 {IStatusReceiver::ERR_APPEXECFWK_UNINSTALL_BUNDLE_IS_SHARED_LIBRARY,
453 MSG_ERR_UNINSTALL_BUNDLE_IS_SHAED_LIBRARY}},
454 {ERR_APPEXECFWK_INSTALL_DEVICE_TYPE_NOT_SUPPORTED,
455 {IStatusReceiver::ERR_INSTALL_DEVICE_TYPE_NOT_SUPPORTED, MSG_ERR_INSTALL_DEVICE_TYPE_NOT_SUPPORTED}},
456 {ERR_APPEXECFWK_INSTALL_DEPENDENT_MODULE_NOT_EXIST,
457 {IStatusReceiver::ERR_INSTALL_DEPENDENT_MODULE_NOT_EXIST, MSG_ERR_INSTALL_DEPENDENT_MODULE_NOT_EXIST}},
458 {ERR_APPEXECFWK_INSTALL_SHARE_APP_LIBRARY_NOT_ALLOWED,
459 {IStatusReceiver::ERR_INSTALL_SHARE_APP_LIBRARY_NOT_ALLOWED, MSG_ERR_INSTALL_SHARE_APP_LIBRARY_NOT_ALLOWED}},
460 {ERR_APPEXECFWK_INSTALL_COMPATIBLE_POLICY_NOT_SAME,
461 {IStatusReceiver::ERR_INSTALL_COMPATIBLE_POLICY_NOT_SAME, MSG_ERR_INSTALL_COMPATIBLE_POLICY_NOT_SAME}},
462 {ERR_APPEXECFWK_INSTALL_FILE_IS_SHARED_LIBRARY,
463 {IStatusReceiver::ERR_INSTALL_FILE_IS_SHARED_LIBRARY, MSG_ERR_INSTALL_FILE_IS_SHARED_LIBRARY}},
464 {ERR_BUNDLEMANAGER_OVERLAY_INSTALLATION_FAILED_INTERNAL_ERROR,
465 {IStatusReceiver::ERR_OVERLAY_INSTALLATION_FAILED_INTERNAL_ERROR,
466 MSG_ERR_OVERLAY_INSTALLATION_FAILED_INTERNAL_ERROR}},
467 {ERR_BUNDLEMANAGER_OVERLAY_INSTALLATION_FAILED_INVALID_BUNDLE_NAME,
468 {IStatusReceiver::ERR_OVERLAY_INSTALLATION_FAILED_INVALID_BUNDLE_NAME,
469 MSG_ERR_OVERLAY_INSTALLATION_FAILED_INVALID_BUNDLE_NAME}},
470 {ERR_BUNDLEMANAGER_OVERLAY_INSTALLATION_FAILED_INVALID_MODULE_NAME,
471 {IStatusReceiver::ERR_OVERLAY_INSTALLATION_FAILED_INVALID_MODULE_NAME,
472 MSG_ERR_OVERLAY_INSTALLATION_FAILED_INVALID_MODULE_NAME}},
473 {ERR_BUNDLEMANAGER_OVERLAY_INSTALLATION_FAILED_ERROR_HAP_TYPE,
474 {IStatusReceiver::ERR_OVERLAY_INSTALLATION_FAILED_ERROR_HAP_TYPE,
475 MSG_ERR_OVERLAY_INSTALLATION_FAILED_ERROR_HAP_TYPE}},
476 {ERR_BUNDLEMANAGER_OVERLAY_INSTALLATION_FAILED_ERROR_BUNDLE_TYPE,
477 {IStatusReceiver::ERR_OVERLAY_INSTALLATION_FAILED_ERROR_BUNDLE_TYPE,
478 MSG_ERR_OVERLAY_INSTALLATION_FAILED_ERROR_BUNDLE_TYPE}},
479 {ERR_BUNDLEMANAGER_OVERLAY_INSTALLATION_FAILED_TARGET_BUNDLE_NAME_MISSED,
480 {IStatusReceiver::ERR_OVERLAY_INSTALLATION_FAILED_TARGET_BUNDLE_NAME_MISSED,
481 MSG_ERR_OVERLAY_INSTALLATION_FAILED_TARGET_BUNDLE_NAME_MISSED}},
482 {ERR_BUNDLEMANAGER_OVERLAY_INSTALLATION_FAILED_TARGET_MODULE_NAME_MISSED,
483 {IStatusReceiver::ERR_OVERLAY_INSTALLATION_FAILED_TARGET_MODULE_NAME_MISSED,
484 MSG_ERR_OVERLAY_INSTALLATION_FAILED_TARGET_MODULE_NAME_MISSED}},
485 {ERR_BUNDLEMANAGER_OVERLAY_INSTALLATION_FAILED_TARGET_BUNDLE_NAME_NOT_SAME,
486 {IStatusReceiver::ERR_OVERLAY_INSTALLATION_FAILED_TARGET_BUNDLE_NAME_NOT_SAME,
487 MSG_ERR_OVERLAY_INSTALLATION_FAILED_TARGET_BUNDLE_NAME_NOT_SAME}},
488 {ERR_BUNDLEMANAGER_OVERLAY_INSTALLATION_FAILED_INTERNAL_EXTERNAL_OVERLAY_EXISTED_SIMULTANEOUSLY,
489 {IStatusReceiver::ERR_OVERLAY_INSTALLATION_FAILED_INTERNAL_EXTERNAL_OVERLAY_EXISTED_SIMULTANEOUSLY,
490 MSG_ERR_OVERLAY_INSTALLATION_FAILED_INTERNAL_EXTERNAL_OVERLAY_EXISTED_SIMULTANEOUSLY}},
491 {ERR_BUNDLEMANAGER_OVERLAY_INSTALLATION_FAILED_TARGET_PRIORITY_NOT_SAME,
492 {IStatusReceiver::ERR_OVERLAY_INSTALLATION_FAILED_TARGET_PRIORITY_NOT_SAME,
493 MSG_ERR_OVERLAY_INSTALLATION_FAILED_TARGET_PRIORITY_NOT_SAME}},
494 {ERR_BUNDLEMANAGER_OVERLAY_INSTALLATION_FAILED_INVALID_PRIORITY,
495 {IStatusReceiver::ERR_OVERLAY_INSTALLATION_FAILED_INVALID_PRIORITY,
496 MSG_ERR_OVERLAY_INSTALLATION_FAILED_INVALID_PRIORITY}},
497 {ERR_BUNDLEMANAGER_OVERLAY_INSTALLATION_FAILED_INCONSISTENT_VERSION_CODE,
498 {IStatusReceiver::ERR_OVERLAY_INSTALLATION_FAILED_INCONSISTENT_VERSION_CODE,
499 MSG_ERR_OVERLAY_INSTALLATION_FAILED_INCONSISTENT_VERSION_CODE}},
500 {ERR_BUNDLEMANAGER_OVERLAY_INSTALLATION_FAILED_SERVICE_EXCEPTION,
501 {IStatusReceiver::ERR_OVERLAY_INSTALLATION_FAILED_SERVICE_EXCEPTION,
502 MSG_ERR_OVERLAY_INSTALLATION_FAILED_SERVICE_EXCEPTION}},
503 {ERR_BUNDLEMANAGER_OVERLAY_INSTALLATION_FAILED_BUNDLE_NAME_SAME_WITH_TARGET_BUNDLE_NAME,
504 {IStatusReceiver::ERR_OVERLAY_INSTALLATION_FAILED_BUNDLE_NAME_SAME_WITH_TARGET_BUNDLE_NAME,
505 MSG_ERR_OVERLAY_INSTALLATION_FAILED_BUNDLE_NAME_SAME_WITH_TARGET_BUNDLE_NAME}},
506 {ERR_BUNDLEMANAGER_OVERLAY_INSTALLATION_FAILED_NO_SYSTEM_APPLICATION_FOR_EXTERNAL_OVERLAY,
507 {IStatusReceiver::ERR_OVERLAY_INSTALLATION_FAILED_NO_SYSTEM_APPLICATION_FOR_EXTERNAL_OVERLAY,
508 MSG_ERR_OVERLAY_INSTALLATION_FAILED_NO_SYSTEM_APPLICATION_FOR_EXTERNAL_OVERLAY}},
509 {ERR_BUNDLEMANAGER_OVERLAY_INSTALLATION_FAILED_DIFFERENT_SIGNATURE_CERTIFICATE,
510 {IStatusReceiver::ERR_OVERLAY_INSTALLATION_FAILED_DIFFERENT_SIGNATURE_CERTIFICATE,
511 MSG_ERR_OVERLAY_INSTALLATION_FAILED_DIFFERENT_SIGNATURE_CERTIFICATE}},
512 {ERR_BUNDLEMANAGER_OVERLAY_INSTALLATION_FAILED_TARGET_BUNDLE_IS_OVERLAY_BUNDLE,
513 {IStatusReceiver::ERR_OVERLAY_INSTALLATION_FAILED_TARGET_BUNDLE_IS_OVERLAY_BUNDLE,
514 MSG_ERR_OVERLAY_INSTALLATION_FAILED_TARGET_BUNDLE_IS_OVERLAY_BUNDLE}},
515 {ERR_BUNDLEMANAGER_OVERLAY_INSTALLATION_FAILED_TARGET_MODULE_IS_OVERLAY_MODULE,
516 {IStatusReceiver::ERR_OVERLAY_INSTALLATION_FAILED_TARGET_MODULE_IS_OVERLAY_MODULE,
517 MSG_ERR_OVERLAY_INSTALLATION_FAILED_TARGET_MODULE_IS_OVERLAY_MODULE}},
518 {ERR_BUNDLEMANAGER_OVERLAY_INSTALLATION_FAILED_OVERLAY_TYPE_NOT_SAME,
519 {IStatusReceiver::ERR_OVERLAY_INSTALLATION_FAILED_OVERLAY_TYPE_NOT_SAME,
520 MSG_ERR_OVERLAY_INSTALLATION_FAILED_OVERLAY_TYPE_NOT_SAME}},
521 {ERR_BUNDLEMANAGER_OVERLAY_INSTALLATION_FAILED_INVALID_BUNDLE_DIR,
522 {IStatusReceiver::ERR_OVERLAY_INSTALLATION_FAILED_INVALID_BUNDLE_DIR,
523 MSG_ERR_OVERLAY_INSTALLATION_FAILED_INVALID_BUNDLE_DIR}},
524 {ERR_APPEXECFWK_INSTALL_CHECK_PROXY_DATA_URI_FAILED,
525 {IStatusReceiver::ERR_INSATLL_CHECK_PROXY_DATA_URI_FAILED,
526 MSG_ERR_INSTALL_PROXY_DATA_URI_WRONG}},
527 {ERR_APPEXECFWK_INSTALL_CHECK_PROXY_DATA_PERMISSION_FAILED,
528 {IStatusReceiver::ERR_INSATLL_CHECK_PROXY_DATA_PERMISSION_FAILED,
529 MSG_ERR_INSTALL_PROXY_DATA_PERMISSION_WRONG}},
530 {ERR_APPEXECFWK_INSTALL_DEBUG_NOT_SAME,
531 {IStatusReceiver::ERR_INSTALL_FAILED_DEBUG_NOT_SAME, MSG_ERR_APPEXECFWK_INSTALL_DEBUG_NOT_SAME}},
532 {ERR_APPEXECFWK_INSTALL_ISOLATION_MODE_FAILED,
533 {IStatusReceiver::ERR_INSTALL_ISOLATION_MODE_FAILED, MSG_ERR_INSTALL_ISOLATION_MODE_FAILED}},
534 {ERR_BUNDLEMANAGER_INSTALL_CODE_SIGNATURE_FAILED,
535 {IStatusReceiver::ERR_INSTALL_CODE_SIGNATURE_FAILED, MSG_ERR_INSTALL_CODE_SIGNATURE_FAILED}},
536 {ERR_BUNDLEMANAGER_INSTALL_CODE_SIGNATURE_FILE_IS_INVALID,
537 {IStatusReceiver::ERR_INSTALL_CODE_SIGNATURE_FILE_IS_INVALID, MSG_ERR_INSTALL_CODE_SIGNATURE_FILE_IS_INVALID}},
538 {ERR_BUNDLE_MANAGER_UNINSTALL_FROM_BMS_EXTENSION_FAILED,
539 {IStatusReceiver::ERR_UNINSTALL_FROM_BMS_EXTENSION_FAILED, MSG_ERR_UNINSTALL_FROM_BMS_EXTENSION_FAILED}},
540 {ERR_APPEXECFWK_INSTALL_SELF_UPDATE_NOT_MDM,
541 {IStatusReceiver::ERR_INSTALL_SELF_UPDATE_NOT_MDM, MSG_ERR_INSTALL_SELF_UPDATE_NOT_MDM}},
542 {ERR_APPEXECFWK_INSTALL_SELF_UPDATE_BUNDLENAME_NOT_SAME,
543 {IStatusReceiver::ERR_INSTALL_SELF_UPDATE_BUNDLENAME_NOT_SAME,
544 MSG_ERR_INSTALL_SELF_UPDATE_BUNDLENAME_NOT_SAME}},
545 {ERR_APPEXECFWK_INSTALL_ENTERPRISE_BUNDLE_NOT_ALLOWED,
546 {IStatusReceiver::ERR_INSTALL_ENTERPRISE_BUNDLE_NOT_ALLOWED,
547 MSG_ERR_INSTALL_ENTERPRISE_BUNDLE_NOT_ALLOWED}},
548 };
549 } // namespace
550
StatusReceiverProxy(const sptr<IRemoteObject> & object)551 StatusReceiverProxy::StatusReceiverProxy(const sptr<IRemoteObject> &object) : IRemoteProxy<IStatusReceiver>(object)
552 {
553 APP_LOGI("create status receiver proxy instance");
554 }
555
~StatusReceiverProxy()556 StatusReceiverProxy::~StatusReceiverProxy()
557 {
558 APP_LOGI("destroy status receiver proxy instance");
559 }
560
OnStatusNotify(const int32_t progress)561 void StatusReceiverProxy::OnStatusNotify(const int32_t progress)
562 {
563 APP_LOGI("status from service is %{public}d", progress);
564
565 MessageParcel data;
566 MessageParcel reply;
567 MessageOption option(MessageOption::TF_SYNC);
568 if (!data.WriteInterfaceToken(StatusReceiverProxy::GetDescriptor())) {
569 APP_LOGE("fail to OnStatusNotify due to write MessageParcel fail");
570 return;
571 }
572
573 if (!data.WriteInt32(progress)) {
574 APP_LOGE("fail to call OnStatusNotify, for write progress failed");
575 return;
576 }
577
578 sptr<IRemoteObject> remote = Remote();
579 if (remote == nullptr) {
580 APP_LOGE("fail to call OnStatusNotify, for Remote() is nullptr");
581 return;
582 }
583
584 int32_t ret =
585 remote->SendRequest(static_cast<int32_t>(StatusReceiverInterfaceCode::ON_STATUS_NOTIFY), data, reply, option);
586 if (ret != NO_ERROR) {
587 APP_LOGE("fail to call OnStatusNotify, for transact is failed, error code is: %{public}d", ret);
588 }
589 }
590
OnFinished(const int32_t resultCode,const std::string & resultMsg)591 void StatusReceiverProxy::OnFinished(const int32_t resultCode, const std::string &resultMsg)
592 {
593 APP_LOGI("result from service is %{public}d, %{public}s", resultCode, resultMsg.c_str());
594 // transform service error code to client error code.
595 TransformResult(resultCode);
596 CloseStreamInstaller(streamInstallerId_);
597 MessageParcel data;
598 MessageParcel reply;
599 MessageOption option(MessageOption::TF_SYNC);
600 if (!data.WriteInterfaceToken(StatusReceiverProxy::GetDescriptor())) {
601 APP_LOGE("fail to OnFinished due to write MessageParcel fail");
602 return;
603 }
604
605 if (!data.WriteInt32(resultCode_)) {
606 APP_LOGE("fail to call OnFinished, for write resultCode_ failed");
607 return;
608 }
609 if (!data.WriteString16(Str8ToStr16(resultMsg_))) {
610 APP_LOGE("fail to call OnFinished, for write resultMsg_ failed");
611 return;
612 }
613
614 sptr<IRemoteObject> remote = Remote();
615 if (remote == nullptr) {
616 APP_LOGE("fail to call OnFinished, for Remote() is nullptr");
617 return;
618 }
619
620 int32_t ret = remote->SendRequest(
621 static_cast<int32_t>(StatusReceiverInterfaceCode::ON_FINISHED), data, reply, option);
622 if (ret != NO_ERROR) {
623 APP_LOGE("fail to call OnFinished, for transact is failed, error code is: %{public}d", ret);
624 }
625 }
626
TransformResult(const int32_t resultCode)627 void StatusReceiverProxy::TransformResult(const int32_t resultCode)
628 {
629 auto result = MAP_RECEIVED_RESULTS.find(resultCode);
630 if (result != MAP_RECEIVED_RESULTS.end()) {
631 resultCode_ = result->second.clientCode;
632 resultMsg_ = result->second.clientMessage;
633 } else {
634 resultCode_ = ERR_UNKNOWN;
635 resultMsg_ = MSG_ERR_UNKNOWN;
636 }
637 APP_LOGD("result transformed is %{public}d, %{public}s", resultCode_, resultMsg_.c_str());
638 }
639
CloseStreamInstaller(uint32_t installerId)640 void StatusReceiverProxy::CloseStreamInstaller(uint32_t installerId)
641 {
642 if (installerId <= 0) {
643 APP_LOGE("invalid installer id: %{public}u", installerId);
644 return;
645 }
646 sptr<IBundleInstaller> bundleInstaller = DelayedSingleton<BundleMgrService>::GetInstance()->GetBundleInstaller();
647 if (bundleInstaller == nullptr) {
648 APP_LOGE("bundle install is nullptr");
649 return;
650 }
651 bundleInstaller->DestoryBundleStreamInstaller(installerId);
652 streamInstallerId_ = 0;
653 }
654
SetStreamInstallId(uint32_t installerId)655 void StatusReceiverProxy::SetStreamInstallId(uint32_t installerId)
656 {
657 streamInstallerId_ = installerId;
658 }
659 } // namespace AppExecFwk
660 } // namespace OHOS