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 #include "bundle_status_callback_proxy.h"
17
18 #include "app_log_wrapper.h"
19 #include "appexecfwk_errors.h"
20 #include "bundle_framework_core_ipc_interface_code.h"
21 #include "ipc_types.h"
22 #include "parcel.h"
23 #include "string_ex.h"
24
25 namespace OHOS {
26 namespace AppExecFwk {
InitResultMap()27 void BundleStatusCallbackProxy::InitResultMap()
28 {
29 resultMap_ = {
30 {ERR_OK, "SUCCESS"},
31 {ERR_APPEXECFWK_INSTALL_INTERNAL_ERROR, "ERR_APPEXECFWK_INSTALL_INTERNAL_ERROR"},
32 {ERR_APPEXECFWK_INSTALL_HOST_INSTALLER_FAILED, "ERR_APPEXECFWK_INSTALL_HOST_INSTALLER_FAILED"},
33 {ERR_APPEXECFWK_INSTALL_PARSE_FAILED, "ERR_APPEXECFWK_INSTALL_PARSE_FAILED"},
34 {ERR_APPEXECFWK_INSTALL_VERSION_DOWNGRADE, "ERR_APPEXECFWK_INSTALL_VERSION_DOWNGRADE"},
35 {ERR_APPEXECFWK_INSTALL_VERIFICATION_FAILED, "ERR_APPEXECFWK_INSTALL_VERIFICATION_FAILED"},
36 {ERR_APPEXECFWK_INSTALL_FAILED_INVALID_SIGNATURE_FILE_PATH,
37 "ERR_APPEXECFWK_INSTALL_FAILED_INVALID_SIGNATURE_FILE_PATH"},
38 {ERR_APPEXECFWK_INSTALL_FAILED_BAD_BUNDLE_SIGNATURE_FILE,
39 "ERR_APPEXECFWK_INSTALL_FAILED_BAD_BUNDLE_SIGNATURE_FILE"},
40 {ERR_APPEXECFWK_INSTALL_FAILED_NO_BUNDLE_SIGNATURE, "ERR_APPEXECFWK_INSTALL_FAILED_NO_BUNDLE_SIGNATURE"},
41 {ERR_APPEXECFWK_INSTALL_FAILED_VERIFY_APP_PKCS7_FAIL, "ERR_APPEXECFWK_INSTALL_FAILED_VERIFY_APP_PKCS7_FAIL"},
42 {ERR_APPEXECFWK_INSTALL_FAILED_PROFILE_PARSE_FAIL, "ERR_APPEXECFWK_INSTALL_FAILED_PROFILE_PARSE_FAIL"},
43 {ERR_APPEXECFWK_INSTALL_FAILED_APP_SOURCE_NOT_TRUESTED,
44 "ERR_APPEXECFWK_INSTALL_FAILED_APP_SOURCE_NOT_TRUESTED"},
45 {ERR_APPEXECFWK_INSTALL_FAILED_BAD_DIGEST, "ERR_APPEXECFWK_INSTALL_FAILED_BAD_DIGEST"},
46 {ERR_APPEXECFWK_INSTALL_FAILED_BUNDLE_INTEGRITY_VERIFICATION_FAILURE,
47 "ERR_APPEXECFWK_INSTALL_FAILED_BUNDLE_INTEGRITY_VERIFICATION_FAILURE"},
48 {ERR_APPEXECFWK_INSTALL_FAILED_FILE_SIZE_TOO_LARGE, "ERR_APPEXECFWK_INSTALL_FAILED_FILE_SIZE_TOO_LARGE"},
49 {ERR_APPEXECFWK_INSTALL_FAILED_BAD_PUBLICKEY, "ERR_APPEXECFWK_INSTALL_FAILED_BAD_PUBLICKEY"},
50 {ERR_APPEXECFWK_INSTALL_FAILED_BAD_BUNDLE_SIGNATURE, "ERR_APPEXECFWK_INSTALL_FAILED_BAD_BUNDLE_SIGNATURE"},
51 {ERR_APPEXECFWK_INSTALL_FAILED_NO_PROFILE_BLOCK_FAIL, "ERR_APPEXECFWK_INSTALL_FAILED_NO_PROFILE_BLOCK_FAIL"},
52 {ERR_APPEXECFWK_INSTALL_FAILED_BUNDLE_SIGNATURE_VERIFICATION_FAILURE,
53 "ERR_APPEXECFWK_INSTALL_FAILED_BUNDLE_SIGNATURE_VERIFICATION_FAILURE"},
54 {ERR_APPEXECFWK_INSTALL_FAILED_VERIFY_SOURCE_INIT_FAIL,
55 "ERR_APPEXECFWK_INSTALL_FAILED_VERIFY_SOURCE_INIT_FAIL"},
56 {ERR_APPEXECFWK_INSTALL_FAILED_INCOMPATIBLE_SIGNATURE, "ERR_APPEXECFWK_INSTALL_FAILED_INCOMPATIBLE_SIGNATURE"},
57 {ERR_APPEXECFWK_INSTALL_FAILED_INCONSISTENT_SIGNATURE, "ERR_APPEXECFWK_INSTALL_FAILED_INCONSISTENT_SIGNATURE"},
58 {ERR_APPEXECFWK_INSTALL_FAILED_MODULE_NAME_EMPTY, "ERR_APPEXECFWK_INSTALL_FAILED_MODULE_NAME_EMPTY"},
59 {ERR_APPEXECFWK_INSTALL_FAILED_MODULE_NAME_DUPLICATE, "ERR_APPEXECFWK_INSTALL_FAILED_MODULE_NAME_DUPLICATE"},
60 {ERR_APPEXECFWK_INSTALL_FAILED_CHECK_HAP_HASH_PARAM, "ERR_APPEXECFWK_INSTALL_FAILED_CHECK_HAP_HASH_PARAM"},
61 {ERR_APPEXECFWK_INSTALL_PARAM_ERROR, "ERR_APPEXECFWK_INSTALL_PARAM_ERROR"},
62 {ERR_APPEXECFWK_INSTALL_PERMISSION_DENIED, "ERR_APPEXECFWK_INSTALL_PERMISSION_DENIED"},
63 {ERR_APPEXECFWK_INSTALL_ENTRY_ALREADY_EXIST, "ERR_APPEXECFWK_INSTALL_ENTRY_ALREADY_EXIST"},
64 {ERR_APPEXECFWK_INSTALL_STATE_ERROR, "ERR_APPEXECFWK_INSTALL_STATE_ERROR"},
65 {ERR_APPEXECFWK_INSTALL_FILE_PATH_INVALID, "ERR_APPEXECFWK_INSTALL_FILE_PATH_INVALID"},
66 {ERR_APPEXECFWK_INSTALL_INVALID_HAP_NAME, "ERR_APPEXECFWK_INSTALL_INVALID_HAP_NAME"},
67 {ERR_APPEXECFWK_INSTALL_INVALID_BUNDLE_FILE, "ERR_APPEXECFWK_INSTALL_INVALID_BUNDLE_FILE"},
68 {ERR_APPEXECFWK_INSTALL_INVALID_HAP_SIZE, "ERR_APPEXECFWK_INSTALL_INVALID_HAP_SIZE"},
69 {ERR_APPEXECFWK_INSTALL_GENERATE_UID_ERROR, "ERR_APPEXECFWK_INSTALL_GENERATE_UID_ERROR"},
70 {ERR_APPEXECFWK_INSTALL_INSTALLD_SERVICE_ERROR, "ERR_APPEXECFWK_INSTALL_INSTALLD_SERVICE_ERROR"},
71 {ERR_APPEXECFWK_INSTALL_BUNDLE_MGR_SERVICE_ERROR, "ERR_APPEXECFWK_INSTALL_BUNDLE_MGR_SERVICE_ERROR"},
72 {ERR_APPEXECFWK_INSTALL_ALREADY_EXIST, "ERR_APPEXECFWK_INSTALL_ALREADY_EXIST"},
73 {ERR_APPEXECFWK_INSTALL_BUNDLENAME_NOT_SAME, "ERR_APPEXECFWK_INSTALL_BUNDLENAME_NOT_SAME"},
74 {ERR_APPEXECFWK_INSTALL_VERSIONCODE_NOT_SAME, "ERR_APPEXECFWK_INSTALL_VERSIONCODE_NOT_SAME"},
75 {ERR_APPEXECFWK_INSTALL_VERSIONNAME_NOT_SAME, "ERR_APPEXECFWK_INSTALL_VERSIONNAME_NOT_SAME"},
76 {ERR_APPEXECFWK_INSTALL_MINCOMPATIBLE_VERSIONCODE_NOT_SAME,
77 "ERR_APPEXECFWK_INSTALL_MINCOMPATIBLE_VERSIONCODE_NOT_SAME"},
78 {ERR_APPEXECFWK_INSTALL_VENDOR_NOT_SAME, "ERR_APPEXECFWK_INSTALL_VENDOR_NOT_SAME"},
79 {ERR_APPEXECFWK_INSTALL_RELEASETYPE_TARGET_NOT_SAME, "ERR_APPEXECFWK_INSTALL_RELEASETYPE_TARGET_NOT_SAME"},
80 {ERR_APPEXECFWK_INSTALL_RELEASETYPE_NOT_SAME, "ERR_APPEXECFWK_INSTALL_RELEASETYPE_NOT_SAME"},
81 {ERR_APPEXECFWK_INSTALL_RELEASETYPE_COMPATIBLE_NOT_SAME,
82 "ERR_APPEXECFWK_INSTALL_RELEASETYPE_COMPATIBLE_NOT_SAME"},
83 {ERR_APPEXECFWK_INSTALL_VERSION_NOT_COMPATIBLE, "ERR_APPEXECFWK_INSTALL_VERSION_NOT_COMPATIBLE"},
84 {ERR_APPEXECFWK_INSTALL_INVALID_NUMBER_OF_ENTRY_HAP, "ERR_APPEXECFWK_INSTALL_INVALID_NUMBER_OF_ENTRY_HAP"},
85 {ERR_APPEXECFWK_INSTALL_DISK_MEM_INSUFFICIENT, "ERR_APPEXECFWK_INSTALL_DISK_MEM_INSUFFICIENT"},
86 {ERR_APPEXECFWK_NATIVE_HNP_EXTRACT_FAILED, "ERR_APPEXECFWK_NATIVE_HNP_EXTRACT_FAILED"},
87 {ERR_APPEXECFWK_INSTALL_GRANT_REQUEST_PERMISSIONS_FAILED,
88 "ERR_APPEXECFWK_INSTALL_GRANT_REQUEST_PERMISSIONS_FAILED"},
89 {ERR_APPEXECFWK_INSTALL_UPDATE_HAP_TOKEN_FAILED, "ERR_APPEXECFWK_INSTALL_UPDATE_HAP_TOKEN_FAILED"},
90 {ERR_APPEXECFWK_INSTALL_CHECK_SYSCAP_FAILED, "ERR_APPEXECFWK_INSTALL_CHECK_SYSCAP_FAILED"},
91 {ERR_APPEXECFWK_INSTALL_APPTYPE_NOT_SAME, "ERR_APPEXECFWK_INSTALL_APPTYPE_NOT_SAME"},
92 {ERR_APPEXECFWK_INSTALL_URI_DUPLICATE, "ERR_APPEXECFWK_INSTALL_URI_DUPLICATE"},
93 {ERR_APPEXECFWK_INSTALL_TYPE_ERROR, "ERR_APPEXECFWK_INSTALL_TYPE_ERROR"},
94 {ERR_APPEXECFWK_INSTALL_SDK_INCOMPATIBLE, "ERR_APPEXECFWK_INSTALL_SDK_INCOMPATIBLE"},
95 {ERR_APPEXECFWK_INSTALL_SO_INCOMPATIBLE, "ERR_APPEXECFWK_INSTALL_SO_INCOMPATIBLE"},
96 {ERR_APPEXECFWK_INSTALL_AN_INCOMPATIBLE, "ERR_APPEXECFWK_INSTALL_AN_INCOMPATIBLE"},
97 {ERR_APPEXECFWK_FAILED_SERVICE_DIED, "ERR_APPEXECFWK_FAILED_SERVICE_DIED"},
98 {ERR_APPEXECFWK_PARSE_UNEXPECTED, "ERR_APPEXECFWK_PARSE_UNEXPECTED"},
99 {ERR_APPEXECFWK_PARSE_MISSING_BUNDLE, "ERR_APPEXECFWK_PARSE_MISSING_BUNDLE"},
100 {ERR_APPEXECFWK_PARSE_MISSING_ABILITY, "ERR_APPEXECFWK_PARSE_MISSING_ABILITY"},
101 {ERR_APPEXECFWK_PARSE_NO_PROFILE, "ERR_APPEXECFWK_PARSE_NO_PROFILE"},
102 {ERR_APPEXECFWK_PARSE_BAD_PROFILE, "ERR_APPEXECFWK_PARSE_BAD_PROFILE"},
103 {ERR_APPEXECFWK_PARSE_PROFILE_PROP_TYPE_ERROR, "ERR_APPEXECFWK_PARSE_PROFILE_PROP_TYPE_ERROR"},
104 {ERR_APPEXECFWK_PARSE_PROFILE_MISSING_PROP, "ERR_APPEXECFWK_PARSE_PROFILE_MISSING_PROP"},
105 {ERR_APPEXECFWK_PARSE_PERMISSION_ERROR, "ERR_APPEXECFWK_PARSE_PERMISSION_ERROR"},
106 {ERR_APPEXECFWK_PARSE_PROFILE_PROP_CHECK_ERROR, "ERR_APPEXECFWK_PARSE_PROFILE_PROP_CHECK_ERROR"},
107 {ERR_APPEXECFWK_PARSE_RPCID_FAILED, "ERR_APPEXECFWK_PARSE_RPCID_FAILED"},
108 {ERR_APPEXECFWK_PARSE_NATIVE_SO_FAILED, "ERR_APPEXECFWK_PARSE_NATIVE_SO_FAILED"},
109 {ERR_APPEXECFWK_PARSE_AN_FAILED, "ERR_APPEXECFWK_PARSE_AN_FAILED"},
110 {ERR_APPEXECFWK_INSTALLD_PARAM_ERROR, "ERR_APPEXECFWK_INSTALLD_PARAM_ERROR"},
111 {ERR_APPEXECFWK_INSTALLD_GET_PROXY_ERROR, "ERR_APPEXECFWK_INSTALLD_GET_PROXY_ERROR"},
112 {ERR_APPEXECFWK_INSTALLD_CREATE_DIR_FAILED, "ERR_APPEXECFWK_INSTALLD_CREATE_DIR_FAILED"},
113 {ERR_APPEXECFWK_INSTALLD_CREATE_DIR_EXIST, "ERR_APPEXECFWK_INSTALLD_CREATE_DIR_EXIST"},
114 {ERR_APPEXECFWK_INSTALLD_CHOWN_FAILED, "ERR_APPEXECFWK_INSTALLD_CHOWN_FAILED"},
115 {ERR_APPEXECFWK_INSTALLD_REMOVE_DIR_FAILED, "ERR_APPEXECFWK_INSTALLD_REMOVE_DIR_FAILED"},
116 {ERR_APPEXECFWK_INSTALLD_EXTRACT_FILES_FAILED, "ERR_APPEXECFWK_INSTALLD_EXTRACT_FILES_FAILED"},
117 {ERR_APPEXECFWK_INSTALLD_RNAME_DIR_FAILED, "ERR_APPEXECFWK_INSTALLD_RNAME_DIR_FAILED"},
118 {ERR_APPEXECFWK_INSTALLD_CLEAN_DIR_FAILED, "ERR_APPEXECFWK_INSTALLD_CLEAN_DIR_FAILED"},
119 {ERR_APPEXECFWK_INSTALLD_PERMISSION_DENIED, "ERR_APPEXECFWK_INSTALLD_PERMISSION_DENIED"},
120 {ERR_APPEXECFWK_INSTALLD_SET_SELINUX_LABEL_FAILED, "ERR_APPEXECFWK_INSTALLD_SET_SELINUX_LABEL_FAILED"},
121 {ERR_APPEXECFWK_UNINSTALL_SYSTEM_APP_ERROR, "ERR_APPEXECFWK_UNINSTALL_SYSTEM_APP_ERROR"},
122 {ERR_APPEXECFWK_UNINSTALL_KILLING_APP_ERROR, "ERR_APPEXECFWK_UNINSTALL_KILLING_APP_ERROR"},
123 {ERR_APPEXECFWK_UNINSTALL_INVALID_NAME, "ERR_APPEXECFWK_UNINSTALL_INVALID_NAME"},
124 {ERR_APPEXECFWK_UNINSTALL_PARAM_ERROR, "ERR_APPEXECFWK_UNINSTALL_PARAM_ERROR"},
125 {ERR_APPEXECFWK_UNINSTALL_PERMISSION_DENIED, "ERR_APPEXECFWK_UNINSTALL_PERMISSION_DENIED"},
126 {ERR_APPEXECFWK_UNINSTALL_BUNDLE_MGR_SERVICE_ERROR, "ERR_APPEXECFWK_UNINSTALL_BUNDLE_MGR_SERVICE_ERROR"},
127 {ERR_APPEXECFWK_UNINSTALL_MISSING_INSTALLED_BUNDLE, "ERR_APPEXECFWK_UNINSTALL_MISSING_INSTALLED_BUNDLE"},
128 {ERR_APPEXECFWK_UNINSTALL_MISSING_INSTALLED_MODULE, "ERR_APPEXECFWK_UNINSTALL_MISSING_INSTALLED_MODULE"},
129 {ERR_APPEXECFWK_RECOVER_GET_BUNDLEPATH_ERROR, "ERR_APPEXECFWK_RECOVER_GET_BUNDLEPATH_ERROR"},
130 {ERR_APPEXECFWK_RECOVER_INVALID_BUNDLE_NAME, "ERR_APPEXECFWK_RECOVER_INVALID_BUNDLE_NAME"},
131 {ERR_APPEXECFWK_RECOVER_NOT_ALLOWED, "ERR_APPEXECFWK_RECOVER_NOT_ALLOWED"},
132 {ERR_APPEXECFWK_UNINSTALL_AND_RECOVER_NOT_PREINSTALLED_BUNDLE,
133 "ERR_APPEXECFWK_UNINSTALL_AND_RECOVER_NOT_PREINSTALLED_BUNDLE"},
134 {ERR_APPEXECFWK_UNINSTALL_CONTROLLED, "ERR_APPEXECFWK_UNINSTALL_CONTROLLED"},
135 {ERR_APPEXECFWK_USER_NOT_EXIST, "ERR_APPEXECFWK_USER_NOT_EXIST"},
136 {ERR_APPEXECFWK_USER_CREATE_FAILED, "ERR_APPEXECFWK_USER_CREATE_FAILED"},
137 {ERR_APPEXECFWK_USER_REMOVE_FAILED, "ERR_APPEXECFWK_USER_REMOVE_FAILED"},
138 {ERR_APPEXECFWK_USER_NOT_INSTALL_HAP, "ERR_APPEXECFWK_USER_NOT_INSTALL_HAP"},
139 {ERR_APPEXECFWK_INSTALL_APP_DISTRIBUTION_TYPE_NOT_SAME,
140 "ERR_APPEXECFWK_INSTALL_APP_DISTRIBUTION_TYPE_NOT_SAME"},
141 {ERR_APPEXECFWK_INSTALL_APP_PROVISION_TYPE_NOT_SAME, "ERR_APPEXECFWK_INSTALL_APP_PROVISION_TYPE_NOT_SAME"},
142 {ERR_APPEXECFWK_INSTALL_NOT_UNIQUE_DISTRO_MODULE_NAME, "ERR_APPEXECFWK_INSTALL_NOT_UNIQUE_DISTRO_MODULE_NAME"},
143 {ERR_APPEXECFWK_INSTALL_INCONSISTENT_MODULE_NAME, "ERR_APPEXECFWK_INSTALL_INCONSISTENT_MODULE_NAME"},
144 {ERR_APPEXECFWK_INSTALL_SINGLETON_INCOMPATIBLE, "ERR_APPEXECFWK_INSTALL_SINGLETON_INCOMPATIBLE"},
145 {ERR_BUNDLE_MANAGER_APP_CONTROL_DISALLOWED_INSTALL, "ERR_BUNDLE_MANAGER_APP_CONTROL_DISALLOWED_INSTALL"},
146 {ERR_BUNDLE_MANAGER_APP_CONTROL_DISALLOWED_UNINSTALL, "ERR_BUNDLE_MANAGER_APP_CONTROL_DISALLOWED_UNINSTALL"},
147 {ERR_APPEXECFWK_INSTALL_DEVICE_TYPE_NOT_SUPPORTED, "ERR_APPEXECFWK_INSTALL_DEVICE_TYPE_NOT_SUPPORTED"},
148 {ERR_APPEXECFWK_INSTALL_DEPENDENT_MODULE_NOT_EXIST, "ERR_APPEXECFWK_INSTALL_DEPENDENT_MODULE_NOT_EXIST"},
149 {ERR_APPEXECFWK_PARSE_PROFILE_PROP_SIZE_CHECK_ERROR, "ERR_APPEXECFWK_PARSE_PROFILE_PROP_SIZE_CHECK_ERROR"},
150 {ERR_APPEXECFWK_INSTALL_ASAN_ENABLED_NOT_SAME, "ERR_APPEXECFWK_INSTALL_ASAN_ENABLED_NOT_SAME"},
151 {ERR_APPEXECFWK_INSTALL_ASAN_NOT_SUPPORT, "ERR_APPEXECFWK_INSTALL_ASAN_NOT_SUPPORT"},
152 {ERR_APPEXECFWK_BUNDLE_TYPE_NOT_SAME, "ERR_APPEXECFWK_BUNDLE_TYPE_NOT_SAME"},
153 {ERR_APPEXECFWK_INSTALL_SHARE_APP_LIBRARY_NOT_ALLOWED, "ERR_APPEXECFWK_INSTALL_SHARE_APP_LIBRARY_NOT_ALLOWED"},
154 {ERR_APPEXECFWK_INSTALL_COMPATIBLE_POLICY_NOT_SAME, "ERR_APPEXECFWK_INSTALL_COMPATIBLE_POLICY_NOT_SAME"},
155 {ERR_APPEXECFWK_INSTALL_FILE_IS_SHARED_LIBRARY, "ERR_APPEXECFWK_INSTALL_FILE_IS_SHARED_LIBRARY"},
156 {ERR_APPEXECFWK_INSTALL_CHECK_PROXY_DATA_URI_FAILED, "ERR_APPEXECFWK_INSTALL_CHECK_PROXY_DATA_URI_FAILED"},
157 {ERR_APPEXECFWK_INSTALL_SELF_UPDATE_NOT_MDM, "ERR_APPEXECFWK_INSTALL_SELF_UPDATE_NOT_MDM"},
158 {ERR_APPEXECFWK_INSTALL_CHECK_PROXY_DATA_PERMISSION_FAILED,
159 "ERR_APPEXECFWK_INSTALL_CHECK_PROXY_DATA_PERMISSION_FAILED"},
160 {ERR_APPEXECFWK_INSTALL_DEBUG_NOT_SAME,
161 "ERR_APPEXECFWK_INSTALL_DEBUG_NOT_SAME"},
162 {ERR_APPEXECFWK_INSTALL_ISOLATION_MODE_FAILED, "ERR_APPEXECFWK_INSTALL_ISOLATION_MODE_FAILED"},
163 {ERR_BUNDLEMANAGER_INSTALL_CODE_SIGNATURE_FAILED, "ERR_BUNDLEMANAGER_INSTALL_CODE_SIGNATURE_FAILED"},
164 {ERR_BUNDLEMANAGER_INSTALL_CODE_SIGNATURE_FILE_IS_INVALID,
165 "ERR_BUNDLEMANAGER_INSTALL_CODE_SIGNATURE_FILE_IS_INVALID"},
166 {ERR_APPEXECFWK_INSTALL_ENTERPRISE_BUNDLE_NOT_ALLOWED, "ERR_APPEXECFWK_INSTALL_ENTERPRISE_BUNDLE_NOT_ALLOWED"},
167 {ERR_APPEXECFWK_INSTALL_INTERNALTESTING_BUNDLE_NOT_ALLOWED,
168 "ERR_APPEXECFWK_INSTALL_INTERNALTESTING_BUNDLE_NOT_ALLOWED"},
169 {ERR_APPEXECFWK_INSTALL_SELF_UPDATE_BUNDLENAME_NOT_SAME,
170 "ERR_APPEXECFWK_INSTALL_SELF_UPDATE_BUNDLENAME_NOT_SAME"},
171 {ERR_APPEXECFWK_INSTALL_GWP_ASAN_ENABLED_NOT_SAME, "ERR_APPEXECFWK_INSTALL_GWP_ASAN_ENABLED_NOT_SAME"},
172 {ERR_APPEXECFWK_INSTALL_DEBUG_BUNDLE_NOT_ALLOWED, "ERR_APPEXECFWK_INSTALL_DEBUG_BUNDLE_NOT_ALLOWED"},
173 {ERR_APPEXECFWK_INSTALL_CHECK_ENCRYPTION_FAILED, "ERR_APPEXECFWK_INSTALL_CHECK_ENCRYPTION_FAILED"},
174 {ERR_BUNDLE_MANAGER_CODE_SIGNATURE_DELIVERY_FILE_FAILED,
175 "ERR_BUNDLE_MANAGER_CODE_SIGNATURE_DELIVERY_FILE_FAILED"},
176 {ERR_BUNDLE_MANAGER_CODE_SIGNATURE_REMOVE_FILE_FAILED, "ERR_BUNDLE_MANAGER_CODE_SIGNATURE_REMOVE_FILE_FAILED"},
177 {ERR_APPEXECFWK_INSTALL_APPID_NOT_SAME_WITH_PREINSTALLED,
178 "ERR_APPEXECFWK_INSTALL_APPID_NOT_SAME_WITH_PREINSTALLED"},
179 };
180 }
181
BundleStatusCallbackProxy(const sptr<IRemoteObject> & object)182 BundleStatusCallbackProxy::BundleStatusCallbackProxy(const sptr<IRemoteObject> &object)
183 : IRemoteProxy<IBundleStatusCallback>(object)
184 {
185 InitResultMap();
186 APP_LOGI("create bundle status callback proxy instance");
187 }
188
~BundleStatusCallbackProxy()189 BundleStatusCallbackProxy::~BundleStatusCallbackProxy()
190 {
191 APP_LOGI("destroy bundle status callback proxy instance");
192 }
193
OnBundleStateChanged(const uint8_t installType,const int32_t resultCode,const std::string & resultMsg,const std::string & bundleName)194 void BundleStatusCallbackProxy::OnBundleStateChanged(
195 const uint8_t installType, const int32_t resultCode, const std::string &resultMsg, const std::string &bundleName)
196 {
197 APP_LOGI("bundle state changed %{public}s", bundleName.c_str());
198 MessageParcel data;
199 MessageParcel reply;
200 MessageOption option(MessageOption::TF_SYNC);
201 if (!data.WriteInterfaceToken(BundleStatusCallbackProxy::GetDescriptor())) {
202 APP_LOGE("fail to OnBundleStateChanged due to write MessageParcel fail");
203 return;
204 }
205 if (!data.WriteUint8(installType)) {
206 APP_LOGE("fail to call OnBundleStateChanged, for write installType failed");
207 return;
208 }
209 if (!data.WriteInt32(resultCode)) {
210 APP_LOGE("fail to call OnBundleStateChanged, for write resultCode failed");
211 return;
212 }
213 std::string msg = "";
214 if (resultMap_.find(resultCode) != resultMap_.end()) {
215 msg = resultMap_.at(resultCode);
216 }
217 if (!data.WriteString16(Str8ToStr16(msg))) {
218 APP_LOGE("fail to call OnBundleStateChanged, for write resultMsg failed");
219 return;
220 }
221 if (!data.WriteString16(Str8ToStr16(bundleName))) {
222 APP_LOGE("fail to call OnBundleStateChanged, for write bundleName failed");
223 return;
224 }
225
226 sptr<IRemoteObject> remote = Remote();
227 if (remote == nullptr) {
228 APP_LOGE("fail to call OnBundleStateChanged, for Remote() is nullptr");
229 return;
230 }
231
232 int32_t ret = remote->SendRequest(
233 static_cast<int32_t>(BundleStatusCallbackInterfaceCode::ON_BUNDLE_STATE_CHANGED), data, reply, option);
234 if (ret != NO_ERROR) {
235 APP_LOGW("call OnBundleStateChanged fail for transact failed, error code: %{public}d", ret);
236 }
237 }
238 } // namespace AppExecFwk
239 } // namespace OHOS
240