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