1 /*
2 * Copyright (c) 2022-2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "event_report.h"
17 #include "hilog_tag_wrapper.h"
18 #include "hitrace_meter.h"
19 #include "record_cost_time_util.h"
20
21 namespace OHOS {
22 namespace AAFwk {
23 namespace {
24 // event params
25 constexpr const char *EVENT_KEY_APP_PID = "APP_PID";
26 constexpr const char *EVENT_KEY_USERID = "USER_ID";
27 constexpr const char *EVENT_KEY_ERROR_CODE = "ERROR_CODE";
28 constexpr const char *EVENT_KEY_BUNDLE_NAME = "BUNDLE_NAME";
29 constexpr const char *EVENT_KEY_MODULE_NAME = "MODULE_NAME";
30 constexpr const char *EVENT_KEY_ABILITY_NAME = "ABILITY_NAME";
31 constexpr const char *EVENT_KEY_ABILITY_NUMBER = "ABILITY_NUMBER";
32 constexpr const char *EVENT_KEY_ABILITY_TYPE = "ABILITY_TYPE";
33 constexpr const char *EVENT_KEY_VERSION_NAME = "VERSION_NAME";
34 constexpr const char *EVENT_KEY_VERSION_CODE = "VERSION_CODE";
35 constexpr const char *EVENT_KEY_PROCESS_NAME = "PROCESS_NAME";
36 constexpr const char *EVENT_KEY_EXTENSION_TYPE = "EXTENSION_TYPE";
37 constexpr const char *EVENT_KEY_STARTUP_TIME = "STARTUP_TIME";
38 constexpr const char *EVENT_KEY_STARTUP_ABILITY_TYPE = "STARTUP_ABILITY_TYPE";
39 constexpr const char *EVENT_KEY_STARTUP_EXTENSION_TYPE = "STARTUP_EXTENSION_TYPE";
40 constexpr const char *EVENT_KEY_CALLER_BUNDLE_NAME = "CALLER_BUNDLE_NAME";
41 constexpr const char *EVENT_KEY_CALLER_UID = "CALLER_UID";
42 constexpr const char *EVENT_KEY_CALLER_PROCESS_NAME = "CALLER_PROCESS_NAME";
43 constexpr const char *EVENT_KEY_CALLER_PROCESS_ID = "CALLER_PROCESS_ID";
44 constexpr const char *EVENT_KEY_EXIT_TIME = "EXIT_TIME";
45 constexpr const char *EVENT_KEY_EXIT_RESULT = "EXIT_RESULT";
46 constexpr const char *EVENT_KEY_EXIT_PID = "EXIT_PID";
47 constexpr const char *EVENT_KEY_EXIT_REASON = "EXIT_REASON";
48 constexpr const char *EVENT_KEY_BUNDLE_TYPE = "BUNDLE_TYPE";
49 constexpr const char *EVENT_KEY_START_TYPE = "START_TYPE";
50 constexpr const char *EVENT_KEY_START_REASON = "START_REASON";
51 constexpr const char *EVENT_KEY_CALLER_STATE = "CALLER_STATE";
52 constexpr const char *EVENT_KEY_CALLER_VERSION_NAME = "CALLER_VERSION_NAME";
53 constexpr const char *EVENT_KEY_CALLER_VERSION_CODE = "CALLER_VERSION_CODE";
54 constexpr const char *EVENT_KEY_URI = "URI";
55 constexpr const char *EVENT_KEY_RESTART_TIME = "RESTART_TIME";
56 constexpr const char *EVENT_KEY_APP_UID = "APP_UID";
57 constexpr const char *EVENT_KEY_PROCESS_TYPE = "PROCESS_TYPE";
58 constexpr const char *EVENT_KEY_TIME = "TIME";
59 constexpr const char *EVENT_KEY_PID = "PID";
60 constexpr const char *EVENT_KEY_REASON = "REASON";
61 constexpr const char *EVENT_KEY_SUB_REASON = "SUB_REASON";
62 constexpr const char *INVALID_EVENT_NAME = "INVALIDEVENTNAME";
63 constexpr const char *EVENT_KEY_APP_INDEX = "APP_INDEX";
64 constexpr const char *EVENT_KEY_LIFE_CYCLE_STATE = "LIFE_CYCLE_STATE";
65 constexpr const char *EVENT_KEY_ERR_REASON = "ERR_REASON";
66 constexpr const char *EVENT_KEY_LIFE_CYCLE = "LIFE_CYCLE";
67 constexpr const char *EVENT_KEY_PERSISTENT_ID = "PERSISTENT_ID";
68 constexpr const char *EVENT_KEY_INTENT_NAME = "INTENT_NAME";
69 constexpr const char *EVENT_KEY_ERROR_MESSAGE = "ERROR_MESSAGE";
70 constexpr const char *EVENT_FILE_OR_FOLDER_PATH = "FILE_OR_FOLDER_PATH";
71 constexpr const char *EVENT_FILE_OR_FOLDER_SIZE = "FILE_OR_FOLDER_SIZE";
72 constexpr const char *EVENT_COMPONENT_NAME_KEY = "COMPONENT_NAME";
73 constexpr const char *EVENT_PARTITION_NAME_KEY = "PARTITION_NAME";
74 constexpr const char *EVENT_REMAIN_PARTITION_SIZE_KEY = "REMAIN_PARTITION_SIZE";
75 constexpr const char *EVENT_KEY_CALLER_PID = "CALLER_PID";
76 constexpr const char *EVENT_KEY_EXIT_MESSAGE = "EXIT_MESSAGE";
77 constexpr const char *EVENT_KEY_SHOULD_KILL_FOREGROUND = "SHOULD_KILL_FOREGROUND";
78
79 constexpr const int32_t DEFAULT_EXTENSION_TYPE = -1;
80 }
81
SendAppEvent(const EventName & eventName,HiSysEventType type,const EventInfo & eventInfo)82 void EventReport::SendAppEvent(const EventName &eventName, HiSysEventType type, const EventInfo &eventInfo)
83 {
84 HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
85 RecordCostTimeUtil timeRecord("SendAppEvent");
86 std::string name = ConvertEventName(eventName);
87 if (name == INVALID_EVENT_NAME) {
88 TAG_LOGE(AAFwkTag::DEFAULT, "invalid eventName");
89 return;
90 }
91 switch (eventName) {
92 case EventName::APP_STARTUP_TYPE:
93 HiSysEventWrite(
94 HiSysEvent::Domain::AAFWK,
95 name,
96 type,
97 EVENT_KEY_APP_PID, eventInfo.pid,
98 EVENT_KEY_VERSION_CODE, eventInfo.versionCode,
99 EVENT_KEY_VERSION_NAME, eventInfo.versionName,
100 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
101 EVENT_KEY_ABILITY_NAME, eventInfo.abilityName,
102 EVENT_KEY_START_TYPE, eventInfo.startType,
103 EVENT_KEY_START_REASON, eventInfo.startReason);
104 break;
105 case EventName::DRAWN_COMPLETED:
106 TAG_LOGI(AAFwkTag::DEFAULT,
107 "DRAWN_COMPLETED, bundle: %{public}s, ability: %{public}s",
108 eventInfo.bundleName.c_str(), eventInfo.abilityName.c_str());
109 HiSysEventWrite(
110 HiSysEvent::Domain::AAFWK,
111 name,
112 type,
113 EVENT_KEY_USERID, eventInfo.userId,
114 EVENT_KEY_APP_PID, eventInfo.pid,
115 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
116 EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
117 EVENT_KEY_ABILITY_NAME, eventInfo.abilityName);
118 break;
119 default:
120 HiSysEventWrite(
121 HiSysEvent::Domain::AAFWK,
122 name,
123 type,
124 EVENT_KEY_APP_PID, eventInfo.pid,
125 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
126 EVENT_KEY_VERSION_NAME, eventInfo.versionName,
127 EVENT_KEY_VERSION_CODE, eventInfo.versionCode,
128 EVENT_KEY_PROCESS_NAME, eventInfo.processName);
129 break;
130 }
131 }
132
LogErrorEvent(const std::string & name,HiSysEventType type,const EventInfo & eventInfo)133 void EventReport::LogErrorEvent(const std::string &name, HiSysEventType type, const EventInfo &eventInfo)
134 {
135 HiSysEventWrite(
136 HiSysEvent::Domain::AAFWK,
137 name,
138 type,
139 EVENT_KEY_USERID, eventInfo.userId,
140 EVENT_KEY_APP_INDEX, eventInfo.appIndex,
141 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
142 EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
143 EVENT_KEY_ABILITY_NAME, eventInfo.abilityName,
144 EVENT_KEY_ERROR_CODE, eventInfo.errCode,
145 EVENT_KEY_ERROR_MESSAGE, eventInfo.errMsg);
146 }
147
LogStartErrorEvent(const std::string & name,HiSysEventType type,const EventInfo & eventInfo)148 void EventReport::LogStartErrorEvent(const std::string &name, HiSysEventType type, const EventInfo &eventInfo)
149 {
150 HiSysEventWrite(
151 HiSysEvent::Domain::AAFWK,
152 name,
153 type,
154 EVENT_KEY_USERID, eventInfo.userId,
155 EVENT_KEY_APP_INDEX, eventInfo.appIndex,
156 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
157 EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
158 EVENT_KEY_ABILITY_NAME, eventInfo.abilityName,
159 EVENT_KEY_ERROR_CODE, eventInfo.errCode,
160 EVENT_KEY_ERROR_MESSAGE, eventInfo.errMsg,
161 EVENT_KEY_CALLER_BUNDLE_NAME, eventInfo.callerBundleName);
162 }
163
LogSystemErrorEvent(const std::string & name,HiSysEventType type,const EventInfo & eventInfo)164 void EventReport::LogSystemErrorEvent(const std::string &name, HiSysEventType type, const EventInfo &eventInfo)
165 {
166 HiSysEventWrite(
167 HiSysEvent::Domain::AAFWK,
168 name,
169 type,
170 EVENT_KEY_APP_INDEX, eventInfo.appIndex,
171 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
172 EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
173 EVENT_KEY_ABILITY_NAME, eventInfo.abilityName,
174 EVENT_KEY_ERROR_CODE, eventInfo.errCode,
175 EVENT_KEY_ERROR_MESSAGE, eventInfo.errMsg);
176 }
177
LogStartAbilityEvent(const std::string & name,HiSysEventType type,const EventInfo & eventInfo)178 void EventReport::LogStartAbilityEvent(const std::string &name, HiSysEventType type, const EventInfo &eventInfo)
179 {
180 HiSysEventWrite(
181 HiSysEvent::Domain::AAFWK,
182 name,
183 type,
184 EVENT_KEY_USERID, eventInfo.userId,
185 EVENT_KEY_APP_INDEX, eventInfo.appIndex,
186 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
187 EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
188 EVENT_KEY_ABILITY_NAME, eventInfo.abilityName);
189 }
190
LogTerminateAbilityEvent(const std::string & name,HiSysEventType type,const EventInfo & eventInfo)191 void EventReport::LogTerminateAbilityEvent(const std::string &name, HiSysEventType type, const EventInfo &eventInfo)
192 {
193 HiSysEventWrite(
194 HiSysEvent::Domain::AAFWK,
195 name,
196 type,
197 EVENT_KEY_APP_INDEX, eventInfo.appIndex,
198 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
199 EVENT_KEY_ABILITY_NAME, eventInfo.abilityName);
200 }
201
LogAbilityOnForegroundEvent(const std::string & name,HiSysEventType type,const EventInfo & eventInfo)202 void EventReport::LogAbilityOnForegroundEvent(const std::string &name, HiSysEventType type, const EventInfo &eventInfo)
203 {
204 HiSysEventWrite(
205 HiSysEvent::Domain::AAFWK,
206 name,
207 type,
208 EVENT_KEY_APP_INDEX, eventInfo.appIndex,
209 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
210 EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
211 EVENT_KEY_ABILITY_NAME, eventInfo.abilityName,
212 EVENT_KEY_BUNDLE_TYPE, eventInfo.bundleType,
213 EVENT_KEY_CALLER_BUNDLE_NAME, eventInfo.callerBundleName,
214 EVENT_KEY_LIFE_CYCLE_STATE, eventInfo.lifeCycleState);
215 }
216
LogAbilityOnBackgroundEvent(const std::string & name,HiSysEventType type,const EventInfo & eventInfo)217 void EventReport::LogAbilityOnBackgroundEvent(const std::string &name, HiSysEventType type, const EventInfo &eventInfo)
218 {
219 HiSysEventWrite(
220 HiSysEvent::Domain::AAFWK,
221 name,
222 type,
223 EVENT_KEY_APP_INDEX, eventInfo.appIndex,
224 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
225 EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
226 EVENT_KEY_ABILITY_NAME, eventInfo.abilityName,
227 EVENT_KEY_BUNDLE_TYPE, eventInfo.bundleType,
228 EVENT_KEY_LIFE_CYCLE_STATE, eventInfo.lifeCycleState);
229 }
230
LogAbilityOnActiveEvent(const std::string & name,HiSysEventType type,const EventInfo & eventInfo)231 void EventReport::LogAbilityOnActiveEvent(const std::string &name, HiSysEventType type, const EventInfo &eventInfo)
232 {
233 HiSysEventWrite(
234 HiSysEvent::Domain::AAFWK,
235 name,
236 type,
237 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
238 EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
239 EVENT_KEY_ABILITY_NAME, eventInfo.abilityName,
240 EVENT_KEY_ABILITY_TYPE, eventInfo.abilityType,
241 EVENT_KEY_BUNDLE_TYPE, eventInfo.bundleType,
242 EVENT_KEY_CALLER_BUNDLE_NAME, eventInfo.callerBundleName);
243 }
244
LogAbilityOnInactiveEvent(const std::string & name,HiSysEventType type,const EventInfo & eventInfo)245 void EventReport::LogAbilityOnInactiveEvent(const std::string &name, HiSysEventType type, const EventInfo &eventInfo)
246 {
247 HiSysEventWrite(
248 HiSysEvent::Domain::AAFWK,
249 name,
250 type,
251 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
252 EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
253 EVENT_KEY_ABILITY_NAME, eventInfo.abilityName,
254 EVENT_KEY_BUNDLE_TYPE, eventInfo.bundleType);
255 }
256
LogStartStandardEvent(const std::string & name,HiSysEventType type,const EventInfo & eventInfo)257 void EventReport::LogStartStandardEvent(const std::string &name, HiSysEventType type, const EventInfo &eventInfo)
258 {
259 TAG_LOGD(AAFwkTag::DEFAULT, "EventInfo: [%{public}d, %{public}s, %{public}s, %{public}s]",
260 eventInfo.userId, eventInfo.bundleName.c_str(), eventInfo.moduleName.c_str(),
261 eventInfo.abilityName.c_str());
262 HiSysEventWrite(
263 HiSysEvent::Domain::AAFWK,
264 name,
265 type,
266 EVENT_KEY_USERID, eventInfo.userId,
267 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
268 EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
269 EVENT_KEY_ABILITY_NAME, eventInfo.abilityName,
270 EVENT_KEY_ABILITY_NUMBER, eventInfo.abilityNumber);
271 }
272
LogStartAbilityByAppLinking(const std::string & name,HiSysEventType type,const EventInfo & eventInfo)273 void EventReport::LogStartAbilityByAppLinking(const std::string &name, HiSysEventType type, const EventInfo &eventInfo)
274 {
275 TAG_LOGD(AAFwkTag::DEFAULT, "EventInfo, bundleName: %{public}s, callerBundleName: %{public}s, uri: %{public}s",
276 eventInfo.bundleName.c_str(), eventInfo.callerBundleName.c_str(), eventInfo.uri.c_str());
277 auto ret = HiSysEventWrite(
278 HiSysEvent::Domain::AAFWK,
279 name,
280 type,
281 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
282 EVENT_KEY_CALLER_BUNDLE_NAME, eventInfo.callerBundleName,
283 EVENT_KEY_URI, eventInfo.uri);
284 if (ret != 0) {
285 TAG_LOGE(AAFwkTag::DEFAULT, "Write event fail: %{public}s, ret %{public}d", name.c_str(), ret);
286 }
287 }
288
LogKillProcessWithReason(const std::string & name,HiSysEventType type,const EventInfo & eventInfo)289 void EventReport::LogKillProcessWithReason(const std::string &name, HiSysEventType type, const EventInfo &eventInfo)
290 {
291 HiSysEventWrite(
292 HiSysEvent::Domain::AAFWK,
293 name,
294 type,
295 EVENT_KEY_CALLER_PID, eventInfo.callerPid,
296 EVENT_KEY_PID, eventInfo.pid,
297 EVENT_KEY_EXIT_MESSAGE, eventInfo.exitMsg,
298 EVENT_KEY_SHOULD_KILL_FOREGROUND, eventInfo.shouldKillForeground,
299 EVENT_KEY_ERROR_CODE, eventInfo.errCode,
300 EVENT_KEY_ERROR_MESSAGE, eventInfo.errMsg);
301 }
302
LogUIExtensionErrorEvent(const std::string & name,HiSysEventType type,const EventInfo & eventInfo)303 void EventReport::LogUIExtensionErrorEvent(const std::string &name, HiSysEventType type, const EventInfo &eventInfo)
304 {
305 HiSysEventWrite(
306 HiSysEvent::Domain::AAFWK,
307 name,
308 type,
309 EVENT_KEY_USERID, eventInfo.userId,
310 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
311 EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
312 EVENT_KEY_ABILITY_NAME, eventInfo.abilityName,
313 EVENT_KEY_ERROR_CODE, eventInfo.errCode,
314 EVENT_KEY_CALLER_BUNDLE_NAME, eventInfo.callerBundleName,
315 EVENT_KEY_APP_INDEX, eventInfo.appIndex,
316 EVENT_KEY_ERR_REASON, eventInfo.errReason,
317 EVENT_KEY_LIFE_CYCLE, eventInfo.lifeCycle,
318 EVENT_KEY_CALLER_UID, eventInfo.callerUid,
319 EVENT_KEY_PERSISTENT_ID, eventInfo.persistentId);
320 }
321
LogUIServiceExtErrorEvent(const std::string & name,HiSysEventType type,const EventInfo & eventInfo)322 void EventReport::LogUIServiceExtErrorEvent(const std::string &name, HiSysEventType type, const EventInfo &eventInfo)
323 {
324 HiSysEventWrite(
325 HiSysEvent::Domain::AAFWK,
326 name,
327 type,
328 EVENT_KEY_USERID, eventInfo.userId,
329 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
330 EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
331 EVENT_KEY_ABILITY_NAME, eventInfo.abilityName,
332 EVENT_KEY_ERROR_CODE, eventInfo.errCode,
333 EVENT_KEY_CALLER_BUNDLE_NAME, eventInfo.callerBundleName,
334 EVENT_KEY_APP_INDEX, eventInfo.appIndex,
335 EVENT_KEY_ERR_REASON, eventInfo.errReason,
336 EVENT_KEY_CALLER_UID, eventInfo.callerUid,
337 EVENT_KEY_LIFE_CYCLE, eventInfo.lifeCycle);
338 }
339
SendAbilityEvent(const EventName & eventName,HiSysEventType type,const EventInfo & eventInfo)340 void EventReport::SendAbilityEvent(const EventName &eventName, HiSysEventType type, const EventInfo &eventInfo)
341 {
342 HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
343 std::string name = ConvertEventName(eventName);
344 if (name == INVALID_EVENT_NAME) {
345 TAG_LOGE(AAFwkTag::DEFAULT, "invalid eventName");
346 return;
347 }
348 switch (eventName) {
349 case EventName::START_ABILITY_ERROR:
350 LogStartErrorEvent(name, type, eventInfo);
351 break;
352 case EventName::TERMINATE_ABILITY_ERROR:
353 LogErrorEvent(name, type, eventInfo);
354 break;
355 case EventName::START_ABILITY_SYSTEM_ERROR:
356 LogSystemErrorEvent(name, type, eventInfo);
357 break;
358 case EventName::START_ABILITY:
359 LogStartAbilityEvent(name, type, eventInfo);
360 break;
361 case EventName::TERMINATE_ABILITY:
362 case EventName::CLOSE_ABILITY:
363 LogTerminateAbilityEvent(name, type, eventInfo);
364 break;
365 case EventName::ABILITY_ONFOREGROUND:
366 LogAbilityOnForegroundEvent(name, type, eventInfo);
367 break;
368 case EventName::ABILITY_ONBACKGROUND:
369 LogAbilityOnBackgroundEvent(name, type, eventInfo);
370 break;
371 case EventName::ABILITY_ONINACTIVE:
372 LogAbilityOnInactiveEvent(name, type, eventInfo);
373 break;
374 case EventName::ABILITY_ONACTIVE:
375 LogAbilityOnActiveEvent(name, type, eventInfo);
376 break;
377 case EventName::START_STANDARD_ABILITIES:
378 LogStartStandardEvent(name, type, eventInfo);
379 break;
380 case EventName::START_ABILITY_BY_APP_LINKING:
381 LogStartAbilityByAppLinking(name, type, eventInfo);
382 break;
383 case EventName::KILL_PROCESS_WITH_REASON:
384 LogKillProcessWithReason(name, type, eventInfo);
385 break;
386 default:
387 break;
388 }
389 }
390
SendAtomicServiceEvent(const EventName & eventName,HiSysEventType type,const EventInfo & eventInfo)391 void EventReport::SendAtomicServiceEvent(const EventName &eventName, HiSysEventType type, const EventInfo &eventInfo)
392 {
393 std::string name = ConvertEventName(eventName);
394 if (name == INVALID_EVENT_NAME) {
395 TAG_LOGE(AAFwkTag::DEFAULT, "invalid eventName");
396 return;
397 }
398 switch (eventName) {
399 case EventName::ATOMIC_SERVICE_DRAWN_COMPLETE:
400 HiSysEventWrite(
401 HiSysEvent::Domain::AAFWK,
402 name,
403 type,
404 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
405 EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
406 EVENT_KEY_ABILITY_NAME, eventInfo.abilityName);
407 break;
408 case EventName::CREATE_ATOMIC_SERVICE_PROCESS:
409 HiSysEventWrite(
410 HiSysEvent::Domain::AAFWK,
411 name,
412 type,
413 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
414 EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
415 EVENT_KEY_ABILITY_NAME, eventInfo.abilityName,
416 EVENT_KEY_CALLER_BUNDLE_NAME, eventInfo.callerBundleName,
417 EVENT_KEY_CALLER_PROCESS_NAME, eventInfo.callerProcessName,
418 EVENT_KEY_CALLER_UID, eventInfo.callerUid);
419 break;
420 default:
421 break;
422 }
423 }
424
SendGrantUriPermissionEvent(const EventName & eventName,const EventInfo & eventInfo)425 void EventReport::SendGrantUriPermissionEvent(const EventName &eventName, const EventInfo &eventInfo)
426 {
427 std::string name = ConvertEventName(eventName);
428 if (name == INVALID_EVENT_NAME) {
429 TAG_LOGE(AAFwkTag::DEFAULT, "invalid eventName: %{public}s", name.c_str());
430 return;
431 }
432 switch (eventName) {
433 case EventName::GRANT_URI_PERMISSION:
434 HiSysEventWrite(
435 HiSysEvent::Domain::AAFWK,
436 name,
437 HiSysEventType::BEHAVIOR,
438 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
439 EVENT_KEY_CALLER_BUNDLE_NAME, eventInfo.callerBundleName,
440 EVENT_KEY_URI, eventInfo.uri);
441 break;
442 case EventName::SHARE_UNPRIVILEGED_FILE_URI:
443 HiSysEventWrite(
444 HiSysEvent::Domain::AAFWK,
445 name,
446 HiSysEventType::BEHAVIOR,
447 EVENT_KEY_CALLER_BUNDLE_NAME, eventInfo.callerBundleName,
448 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName);
449 break;
450 default:
451 break;
452 }
453 }
454
SendExtensionEvent(const EventName & eventName,HiSysEventType type,const EventInfo & eventInfo)455 void EventReport::SendExtensionEvent(const EventName &eventName, HiSysEventType type, const EventInfo &eventInfo)
456 {
457 HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
458 std::string name = ConvertEventName(eventName);
459 if (name == INVALID_EVENT_NAME) {
460 TAG_LOGE(AAFwkTag::DEFAULT, "invalid eventName");
461 return;
462 }
463 switch (eventName) {
464 case EventName::START_EXTENSION_ERROR:
465 case EventName::STOP_EXTENSION_ERROR:
466 case EventName::CONNECT_SERVICE_ERROR:
467 HiSysEventWrite(
468 HiSysEvent::Domain::AAFWK,
469 name,
470 type,
471 EVENT_KEY_USERID, eventInfo.userId,
472 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
473 EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
474 EVENT_KEY_ABILITY_NAME, eventInfo.abilityName,
475 EVENT_KEY_ERROR_CODE, eventInfo.errCode);
476 break;
477 case EventName::DISCONNECT_SERVICE_ERROR:
478 HiSysEventWrite(HiSysEvent::Domain::AAFWK, name, type, EVENT_KEY_ERROR_CODE, eventInfo.errCode);
479 break;
480 case EventName::UI_EXTENSION_ERROR:
481 LogUIExtensionErrorEvent(name, type, eventInfo);
482 break;
483 case EventName::UI_SERVICE_EXTENSION_ERROR:
484 LogUIServiceExtErrorEvent(name, type, eventInfo);
485 break;
486 default:
487 break;
488 }
489 }
490
SendKeyEvent(const EventName & eventName,HiSysEventType type,const EventInfo & eventInfo)491 void EventReport::SendKeyEvent(const EventName &eventName, HiSysEventType type, const EventInfo &eventInfo)
492 {
493 std::string name = ConvertEventName(eventName);
494 if (name == INVALID_EVENT_NAME) {
495 TAG_LOGE(AAFwkTag::DEFAULT, "invalid eventName");
496 return;
497 }
498 TAG_LOGI(AAFwkTag::DEFAULT, "name: %{public}s", name.c_str());
499 switch (eventName) {
500 case EventName::FA_SHOW_ON_LOCK:
501 case EventName::START_PRIVATE_ABILITY:
502 HiSysEventWrite(
503 HiSysEvent::Domain::AAFWK,
504 name,
505 type,
506 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
507 EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
508 EVENT_KEY_ABILITY_NAME, eventInfo.abilityName);
509 break;
510 case EventName::RESTART_PROCESS_BY_SAME_APP:
511 HiSysEventWrite(
512 HiSysEvent::Domain::AAFWK,
513 name,
514 type,
515 EVENT_KEY_RESTART_TIME, eventInfo.time,
516 EVENT_KEY_APP_UID, eventInfo.appUid,
517 EVENT_KEY_CALLER_PROCESS_NAME, eventInfo.callerProcessName,
518 EVENT_KEY_PROCESS_NAME, eventInfo.processName,
519 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName);
520 break;
521 default:
522 break;
523 }
524 }
525
SendAppLaunchEvent(const EventName & eventName,const EventInfo & eventInfo)526 void EventReport::SendAppLaunchEvent(const EventName &eventName, const EventInfo &eventInfo)
527 {
528 std::string name = ConvertEventName(eventName);
529 if (name == INVALID_EVENT_NAME) {
530 TAG_LOGE(AAFwkTag::DEFAULT, "invalid eventName");
531 return;
532 }
533 HiSysEventWrite(
534 HiSysEvent::Domain::AAFWK,
535 name,
536 HiSysEventType::BEHAVIOR,
537 EVENT_KEY_APP_PID, eventInfo.pid,
538 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
539 EVENT_KEY_VERSION_NAME, eventInfo.versionName,
540 EVENT_KEY_VERSION_CODE, eventInfo.versionCode,
541 EVENT_KEY_PROCESS_NAME, eventInfo.processName,
542 EVENT_KEY_CALLER_BUNDLE_NAME, eventInfo.callerBundleName,
543 EVENT_KEY_CALLER_VERSION_NAME, eventInfo.callerVersionName,
544 EVENT_KEY_CALLER_VERSION_CODE, eventInfo.callerVersionCode,
545 EVENT_KEY_CALLER_UID, eventInfo.callerUid,
546 EVENT_KEY_CALLER_STATE, eventInfo.callerState);
547 }
548
SendAppForegroundEvent(const EventName & eventName,const EventInfo & eventInfo)549 void EventReport::SendAppForegroundEvent(const EventName &eventName, const EventInfo &eventInfo)
550 {
551 std::string name = ConvertEventName(eventName);
552 if (name == INVALID_EVENT_NAME) {
553 TAG_LOGE(AAFwkTag::DEFAULT, "invalid eventName");
554 return;
555 }
556 auto ret = HiSysEventWrite(
557 HiSysEvent::Domain::AAFWK,
558 name,
559 HiSysEventType::BEHAVIOR,
560 EVENT_KEY_APP_PID, eventInfo.pid,
561 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
562 EVENT_KEY_VERSION_NAME, eventInfo.versionName,
563 EVENT_KEY_VERSION_CODE, eventInfo.versionCode,
564 EVENT_KEY_PROCESS_NAME, eventInfo.processName,
565 EVENT_KEY_BUNDLE_TYPE, eventInfo.bundleType,
566 EVENT_KEY_CALLER_BUNDLE_NAME, eventInfo.callerBundleName,
567 EVENT_KEY_PROCESS_TYPE, eventInfo.processType);
568 if (ret != 0) {
569 TAG_LOGE(AAFwkTag::DEFAULT, "fail: %{public}s, ret %{public}d", name.c_str(), ret);
570 }
571 }
572
SendAppBackgroundEvent(const EventName & eventName,const EventInfo & eventInfo)573 void EventReport::SendAppBackgroundEvent(const EventName &eventName, const EventInfo &eventInfo)
574 {
575 std::string name = ConvertEventName(eventName);
576 if (name == INVALID_EVENT_NAME) {
577 TAG_LOGE(AAFwkTag::DEFAULT, "invalid eventName");
578 return;
579 }
580 auto ret = HiSysEventWrite(
581 HiSysEvent::Domain::AAFWK,
582 name,
583 HiSysEventType::BEHAVIOR,
584 EVENT_KEY_APP_PID, eventInfo.pid,
585 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
586 EVENT_KEY_VERSION_NAME, eventInfo.versionName,
587 EVENT_KEY_VERSION_CODE, eventInfo.versionCode,
588 EVENT_KEY_PROCESS_NAME, eventInfo.processName,
589 EVENT_KEY_BUNDLE_TYPE, eventInfo.bundleType,
590 EVENT_KEY_PROCESS_TYPE, eventInfo.processType);
591 if (ret != 0) {
592 TAG_LOGE(AAFwkTag::DEFAULT, "fail: %{public}s, ret %{public}d", name.c_str(), ret);
593 }
594 }
595
SendProcessStartEvent(const EventName & eventName,const EventInfo & eventInfo)596 void EventReport::SendProcessStartEvent(const EventName &eventName, const EventInfo &eventInfo)
597 {
598 constexpr int32_t defaultVal = -1;
599 std::string name = ConvertEventName(eventName);
600 if (name == INVALID_EVENT_NAME) {
601 TAG_LOGE(AAFwkTag::DEFAULT, "invalid eventName");
602 return;
603 }
604 if (eventInfo.extensionType == defaultVal) {
605 HiSysEventWrite(
606 HiSysEvent::Domain::AAFWK,
607 name,
608 HiSysEventType::BEHAVIOR,
609 EVENT_KEY_STARTUP_TIME, eventInfo.time,
610 EVENT_KEY_STARTUP_ABILITY_TYPE, eventInfo.abilityType,
611 EVENT_KEY_CALLER_BUNDLE_NAME, eventInfo.callerBundleName,
612 EVENT_KEY_CALLER_UID, eventInfo.callerUid,
613 EVENT_KEY_CALLER_PROCESS_NAME, eventInfo.callerProcessName,
614 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
615 EVENT_KEY_PID, eventInfo.pid,
616 EVENT_KEY_PROCESS_NAME, eventInfo.processName,
617 EVENT_KEY_CALLER_PROCESS_ID, eventInfo.callerPid);
618 } else {
619 HiSysEventWrite(
620 HiSysEvent::Domain::AAFWK,
621 name,
622 HiSysEventType::BEHAVIOR,
623 EVENT_KEY_STARTUP_TIME, eventInfo.time,
624 EVENT_KEY_STARTUP_ABILITY_TYPE, eventInfo.abilityType,
625 EVENT_KEY_STARTUP_EXTENSION_TYPE, eventInfo.extensionType,
626 EVENT_KEY_CALLER_BUNDLE_NAME, eventInfo.callerBundleName,
627 EVENT_KEY_CALLER_UID, eventInfo.callerUid,
628 EVENT_KEY_CALLER_PROCESS_NAME, eventInfo.callerProcessName,
629 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
630 EVENT_KEY_PID, eventInfo.pid,
631 EVENT_KEY_PROCESS_NAME, eventInfo.processName,
632 EVENT_KEY_CALLER_PROCESS_ID, eventInfo.callerPid);
633 }
634 }
635
SendProcessStartFailedEvent(const EventName & eventName,const EventInfo & eventInfo)636 void EventReport::SendProcessStartFailedEvent(const EventName &eventName, const EventInfo &eventInfo)
637 {
638 std::string name = ConvertEventName(eventName);
639 if (name == INVALID_EVENT_NAME) {
640 TAG_LOGE(AAFwkTag::DEFAULT, "invalid eventName");
641 return;
642 }
643 TAG_LOGD(AAFwkTag::DEFAULT, "eventName:%{public}s,processName:%{public}s,reason:%{public}d,subReason:%{public}d",
644 name.c_str(), eventInfo.processName.c_str(), eventInfo.reason, eventInfo.subReason);
645 if (eventInfo.extensionType == DEFAULT_EXTENSION_TYPE) {
646 HiSysEventWrite(
647 HiSysEvent::Domain::AAFWK,
648 name,
649 HiSysEventType::FAULT,
650 EVENT_KEY_STARTUP_TIME, eventInfo.time,
651 EVENT_KEY_STARTUP_ABILITY_TYPE, eventInfo.abilityType,
652 EVENT_KEY_CALLER_BUNDLE_NAME, eventInfo.callerBundleName,
653 EVENT_KEY_CALLER_UID, eventInfo.callerUid,
654 EVENT_KEY_CALLER_PROCESS_NAME, eventInfo.callerProcessName,
655 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
656 EVENT_KEY_PROCESS_NAME, eventInfo.processName,
657 EVENT_KEY_CALLER_PROCESS_ID, eventInfo.callerPid,
658 EVENT_KEY_PROCESS_TYPE, eventInfo.processType,
659 EVENT_KEY_REASON, eventInfo.reason,
660 EVENT_KEY_SUB_REASON, eventInfo.subReason);
661 } else {
662 HiSysEventWrite(
663 HiSysEvent::Domain::AAFWK,
664 name,
665 HiSysEventType::FAULT,
666 EVENT_KEY_STARTUP_TIME, eventInfo.time,
667 EVENT_KEY_STARTUP_ABILITY_TYPE, eventInfo.abilityType,
668 EVENT_KEY_STARTUP_EXTENSION_TYPE, eventInfo.extensionType,
669 EVENT_KEY_CALLER_BUNDLE_NAME, eventInfo.callerBundleName,
670 EVENT_KEY_CALLER_UID, eventInfo.callerUid,
671 EVENT_KEY_CALLER_PROCESS_NAME, eventInfo.callerProcessName,
672 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
673 EVENT_KEY_PROCESS_NAME, eventInfo.processName,
674 EVENT_KEY_CALLER_PROCESS_ID, eventInfo.callerPid,
675 EVENT_KEY_PROCESS_TYPE, eventInfo.processType,
676 EVENT_KEY_REASON, eventInfo.reason,
677 EVENT_KEY_SUB_REASON, eventInfo.subReason);
678 }
679 }
680
SendProcessExitEvent(const EventName & eventName,const EventInfo & eventInfo)681 void EventReport::SendProcessExitEvent(const EventName &eventName, const EventInfo &eventInfo)
682 {
683 std::string name = ConvertEventName(eventName);
684 if (name == INVALID_EVENT_NAME) {
685 TAG_LOGE(AAFwkTag::DEFAULT, "invalid eventName");
686 return;
687 }
688 HiSysEventWrite(
689 HiSysEvent::Domain::AAFWK,
690 name,
691 HiSysEventType::BEHAVIOR,
692 EVENT_KEY_EXIT_TIME, eventInfo.time,
693 EVENT_KEY_EXIT_RESULT, eventInfo.exitResult,
694 EVENT_KEY_EXIT_PID, eventInfo.pid,
695 EVENT_KEY_PROCESS_NAME, eventInfo.processName,
696 EVENT_KEY_EXTENSION_TYPE, eventInfo.extensionType,
697 EVENT_KEY_EXIT_REASON, eventInfo.exitReason);
698 }
699
SendStartServiceEvent(const EventName & eventName,const EventInfo & eventInfo)700 void EventReport::SendStartServiceEvent(const EventName &eventName, const EventInfo &eventInfo)
701 {
702 std::string name = ConvertEventName(eventName);
703 if (name == INVALID_EVENT_NAME) {
704 TAG_LOGE(AAFwkTag::DEFAULT, "invalid eventName");
705 return;
706 }
707 HiSysEventWrite(
708 HiSysEvent::Domain::AAFWK,
709 name,
710 HiSysEventType::BEHAVIOR,
711 EVENT_KEY_TIME, eventInfo.time,
712 EVENT_KEY_USERID, eventInfo.userId,
713 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
714 EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
715 EVENT_KEY_ABILITY_NAME, eventInfo.abilityName,
716 EVENT_KEY_EXTENSION_TYPE, eventInfo.extensionType,
717 EVENT_KEY_PID, eventInfo.pid,
718 EVENT_KEY_PROCESS_NAME, eventInfo.processName,
719 EVENT_KEY_CALLER_PROCESS_ID, eventInfo.callerPid,
720 EVENT_KEY_CALLER_PROCESS_NAME, eventInfo.callerProcessName);
721 }
722
SendStopServiceEvent(const EventName & eventName,const EventInfo & eventInfo)723 void EventReport::SendStopServiceEvent(const EventName &eventName, const EventInfo &eventInfo)
724 {
725 std::string name = ConvertEventName(eventName);
726 if (name == INVALID_EVENT_NAME) {
727 TAG_LOGE(AAFwkTag::DEFAULT, "invalid eventName");
728 return;
729 }
730 HiSysEventWrite(
731 HiSysEvent::Domain::AAFWK,
732 name,
733 HiSysEventType::BEHAVIOR,
734 EVENT_KEY_USERID, eventInfo.userId,
735 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
736 EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
737 EVENT_KEY_ABILITY_NAME, eventInfo.abilityName,
738 EVENT_KEY_EXTENSION_TYPE, eventInfo.extensionType,
739 EVENT_KEY_TIME, eventInfo.time,
740 EVENT_KEY_PID, eventInfo.pid,
741 EVENT_KEY_PROCESS_NAME, eventInfo.processName,
742 EVENT_KEY_CALLER_PROCESS_ID, eventInfo.callerPid,
743 EVENT_KEY_CALLER_PROCESS_NAME, eventInfo.callerProcessName);
744 }
745
SendConnectServiceEvent(const EventName & eventName,const EventInfo & eventInfo)746 void EventReport::SendConnectServiceEvent(const EventName &eventName, const EventInfo &eventInfo)
747 {
748 std::string name = ConvertEventName(eventName);
749 if (name == INVALID_EVENT_NAME) {
750 TAG_LOGE(AAFwkTag::DEFAULT, "invalid eventName");
751 return;
752 }
753 HiSysEventWrite(
754 HiSysEvent::Domain::AAFWK,
755 name,
756 HiSysEventType::BEHAVIOR,
757 EVENT_KEY_TIME, eventInfo.time,
758 EVENT_KEY_USERID, eventInfo.userId,
759 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
760 EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
761 EVENT_KEY_ABILITY_NAME, eventInfo.abilityName,
762 EVENT_KEY_PID, eventInfo.pid,
763 EVENT_KEY_PROCESS_NAME, eventInfo.processName,
764 EVENT_KEY_CALLER_PROCESS_ID, eventInfo.callerPid,
765 EVENT_KEY_CALLER_PROCESS_NAME, eventInfo.callerProcessName);
766 }
767
SendDisconnectServiceEvent(const EventName & eventName,const EventInfo & eventInfo)768 void EventReport::SendDisconnectServiceEvent(const EventName &eventName, const EventInfo &eventInfo)
769 {
770 std::string name = ConvertEventName(eventName);
771 if (name == INVALID_EVENT_NAME) {
772 TAG_LOGE(AAFwkTag::DEFAULT, "invalid eventName");
773 return;
774 }
775 HiSysEventWrite(HiSysEvent::Domain::AAFWK,
776 name,
777 HiSysEventType::BEHAVIOR,
778 EVENT_KEY_TIME, eventInfo.time,
779 EVENT_KEY_PID, eventInfo.pid,
780 EVENT_KEY_PROCESS_NAME, eventInfo.processName,
781 EVENT_KEY_CALLER_PROCESS_ID, eventInfo.callerPid,
782 EVENT_KEY_CALLER_PROCESS_NAME, eventInfo.callerProcessName);
783 }
784
SendStartAbilityOtherExtensionEvent(const EventName & eventName,const EventInfo & eventInfo)785 void EventReport::SendStartAbilityOtherExtensionEvent(const EventName &eventName, const EventInfo &eventInfo)
786 {
787 std::string name = ConvertEventName(eventName);
788 if (name == INVALID_EVENT_NAME) {
789 TAG_LOGE(AAFwkTag::DEFAULT, "invalid eventName");
790 return;
791 }
792 HiSysEventWrite(HiSysEvent::Domain::AAFWK,
793 name,
794 HiSysEventType::BEHAVIOR,
795 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
796 EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
797 EVENT_KEY_ABILITY_NAME, eventInfo.abilityName,
798 EVENT_KEY_EXTENSION_TYPE, eventInfo.extensionType,
799 // Historical reason: Word spelling error during event definition
800 "CALLER_BUNLED_NAME", eventInfo.callerBundleName);
801 }
802
SendExecuteIntentEvent(const EventName & eventName,HiSysEventType type,const EventInfo & eventInfo)803 void EventReport::SendExecuteIntentEvent(const EventName &eventName, HiSysEventType type, const EventInfo &eventInfo)
804 {
805 std::string name = ConvertEventName(eventName);
806 if (name == INVALID_EVENT_NAME) {
807 TAG_LOGE(AAFwkTag::DEFAULT, "invalid eventName");
808 return;
809 }
810 HiSysEventWrite(
811 HiSysEvent::Domain::AAFWK,
812 name,
813 type,
814 EVENT_KEY_USERID, eventInfo.userId,
815 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
816 EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
817 EVENT_KEY_ABILITY_NAME, eventInfo.abilityName,
818 EVENT_KEY_ERROR_CODE, eventInfo.errCode,
819 EVENT_KEY_CALLER_BUNDLE_NAME, eventInfo.callerBundleName,
820 EVENT_KEY_APP_INDEX, eventInfo.appIndex,
821 EVENT_KEY_ERR_REASON, eventInfo.errReason,
822 EVENT_KEY_INTENT_NAME, eventInfo.intentName);
823 }
824
SendLaunchFrameworkEvent(const EventName & eventName,HiSysEventType type,const EventInfo & eventInfo)825 void EventReport::SendLaunchFrameworkEvent(const EventName &eventName, HiSysEventType type, const EventInfo &eventInfo)
826 {
827 std::string name = ConvertEventName(eventName);
828 if (name == INVALID_EVENT_NAME) {
829 TAG_LOGE(AAFwkTag::DEFAULT, "invalid eventName");
830 return;
831 }
832 HiSysEventWrite(
833 HiSysEvent::Domain::AAFWK,
834 name,
835 type,
836 EVENT_KEY_USERID, eventInfo.userId,
837 EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
838 EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
839 EVENT_KEY_ERROR_CODE, eventInfo.errCode,
840 EVENT_KEY_PROCESS_NAME, eventInfo.processName,
841 EVENT_KEY_APP_INDEX, eventInfo.appIndex,
842 EVENT_KEY_ERR_REASON, eventInfo.errReason);
843 }
844
SendReportDataPartitionUsageEvent(const EventName & eventName,HiSysEventType type,const EventInfo & eventInfo)845 void EventReport::SendReportDataPartitionUsageEvent(const EventName &eventName, HiSysEventType type,
846 const EventInfo &eventInfo)
847 {
848 std::string name = ConvertEventName(eventName);
849 if (name == INVALID_EVENT_NAME) {
850 TAG_LOGE(AAFwkTag::DEFAULT, "invalid eventName");
851 return;
852 }
853
854 HiSysEventWrite(
855 #ifdef USE_EXTENSION_DATA
856 OHOS::HiviewDFX::HiSysEvent::Domain::FILEMANAGEMENT,
857 #else
858 OHOS::HiviewDFX::HiSysEvent::Domain::AAFWK,
859 #endif
860 name,
861 type,
862 EVENT_COMPONENT_NAME_KEY, eventInfo.componentName,
863 EVENT_PARTITION_NAME_KEY, eventInfo.partitionName,
864 EVENT_REMAIN_PARTITION_SIZE_KEY, eventInfo.remainPartitionSize,
865 EVENT_FILE_OR_FOLDER_PATH, eventInfo.fileOfFolderPath,
866 EVENT_FILE_OR_FOLDER_SIZE, eventInfo.fileOfFolderSize);
867 }
868
ConvertEventName(const EventName & eventName)869 std::string EventReport::ConvertEventName(const EventName &eventName)
870 {
871 const char* eventNames[] = {
872 // fault event
873 "START_ABILITY_ERROR", "TERMINATE_ABILITY_ERROR", "START_EXTENSION_ERROR",
874 "STOP_EXTENSION_ERROR", "CONNECT_SERVICE_ERROR", "DISCONNECT_SERVICE_ERROR",
875 "UI_EXTENSION_ERROR", "UI_SERVICE_EXTENSION_ERROR", "EXECUTE_INSIGHT_INTENT_ERROR",
876 "STARTUP_TASK_ERROR", "START_ABILITY_SYSTEM_ERROR",
877
878 // ability behavior event
879 "START_ABILITY", "TERMINATE_ABILITY", "CLOSE_ABILITY",
880 "ABILITY_ONFOREGROUND", "ABILITY_ONBACKGROUND", "ABILITY_ONACTIVE", "ABILITY_ONINACTIVE",
881 "START_ABILITY_BY_APP_LINKING", "KILL_PROCESS_WITH_REASON",
882
883 // serviceExtensionAbility behavior event
884 "START_SERVICE", "STOP_SERVICE", "CONNECT_SERVICE", "DISCONNECT_SERVICE", "START_ABILITY_OTHER_EXTENSION",
885
886 // app behavior event
887 "APP_ATTACH", "APP_LAUNCH", "APP_FOREGROUND", "APP_BACKGROUND", "APP_TERMINATE",
888 "PROCESS_START", "PROCESS_EXIT", "DRAWN_COMPLETED", "APP_STARTUP_TYPE", "PROCESS_START_FAILED",
889
890 // key behavior event
891 "GRANT_URI_PERMISSION", "FA_SHOW_ON_LOCK", "START_PRIVATE_ABILITY",
892 "RESTART_PROCESS_BY_SAME_APP", "START_STANDARD_ABILITIES",
893
894 // atomic service event
895 "CREATE_ATOMIC_SERVICE_PROCESS", "ATOMIC_SERVICE_DRAWN_COMPLETE",
896
897 // uri permission
898 "SHARE_UNPRIVILEGED_FILE_URI",
899
900 // report data
901 "USER_DATA_SIZE"
902 };
903 uint32_t eventIndex = static_cast<uint32_t> (eventName);
904 if (eventIndex >= sizeof(eventNames) / sizeof(const char*)) {
905 return INVALID_EVENT_NAME;
906 }
907 return eventNames[eventIndex];
908 }
909 } // namespace AAFwk
910 } // namespace OHOS
911