• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023-2024 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 "dm_radar_helper.h"
17 
18 #include <algorithm>
19 #include <cmath>
20 #include <sstream>
21 #include <iomanip>
22 #include <cJSON.h>
23 #include <errors.h>
24 #include "hisysevent.h"
25 #include "dm_constants.h"
26 #include "dm_log.h"
27 #include "parameter.h"
28 #include "accesstoken_kit.h"
29 #include "access_token.h"
30 #include "hap_token_info.h"
31 #include "ipc_skeleton.h"
32 #include "native_token_info.h"
33 #include "tokenid_kit.h"
34 using namespace OHOS::Security::AccessToken;
35 namespace OHOS {
36 namespace DistributedHardware {
37 const char* ORGPKGNAME = "deviceManager";
38 const char* SOFTBUSNAME = "dsoftbus";
39 const char* HICHAINNAME = "hichain";
40 constexpr int32_t INVALID_UDID_LENGTH = 10;
41 constexpr int32_t SUBSTR_UDID_LENGTH = 5;
42 constexpr int32_t DEFAULT_STAGE = 1;
43 constexpr const char* DM_DISCOVER_BEHAVIOR = "DM_DISCOVER_BEHAVIOR";
44 constexpr const char* DM_AUTHCATION_BEHAVIOR = "DM_AUTHCATION_BEHAVIOR";
45 DM_IMPLEMENT_SINGLE_INSTANCE(DmRadarHelper);
46 
ReportDiscoverRegCallbackStageIdle(struct RadarInfo & info)47 int32_t DmRadarHelper::ReportDiscoverRegCallbackStageIdle(struct RadarInfo &info)
48 {
49     HiSysEventParam params[] = {
50         {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
51         {.name = "HOST_PKG", .t = HISYSEVENT_STRING,
52             .v = { .s = (char *)info.hostName.c_str() }, .arraySize = 0, },
53         {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
54         {.name = "API_TYPE", .t = HISYSEVENT_INT32, .v = { .i32 = GetApiType(), }, .arraySize = 0, },
55         {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
56             .v = { .i32 = static_cast<int32_t>(DiscoverScene::DM_DISCOVER), }, .arraySize = 0, },
57         {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
58             .v = { .i32 = static_cast<int32_t>(DisCoverStage::DISCOVER_REGISTER_CALLBACK), }, .arraySize = 0, },
59         {.name = "STAGE_RES", .t = HISYSEVENT_INT32, .v = { .i32 = info.stageRes, }, .arraySize = 0, },
60         {.name = "BIZ_STATE", .t = HISYSEVENT_INT32, .v = { .i32 = info.bizState, }, .arraySize = 0, },
61         {.name = "TO_CALL_PKG", .t = HISYSEVENT_STRING,
62             .v = { .s = (char *)info.toCallPkg.c_str() }, .arraySize = 0, },
63         {.name = "COMM_SERV", .t = HISYSEVENT_INT32, .v = { .i32 = info.commServ, }, .arraySize = 0, },
64     };
65     size_t len = sizeof(params) / sizeof(params[0]);
66     return OH_HiSysEvent_Write(
67         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
68         DM_DISCOVER_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
69 }
70 
ReportDiscoverRegCallback(struct RadarInfo & info)71 bool DmRadarHelper::ReportDiscoverRegCallback(struct RadarInfo &info)
72 {
73     int32_t res = DM_OK;
74     if (info.stageRes == static_cast<int32_t>(StageRes::STAGE_IDLE)) {
75         res = ReportDiscoverRegCallbackStageIdle(info);
76     } else {
77         HiSysEventParam params[] = {
78             {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
79             {.name = "HOST_PKG", .t = HISYSEVENT_STRING,
80                 .v = { .s = (char *)info.hostName.c_str() }, .arraySize = 0, },
81             {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
82             {.name = "API_TYPE", .t = HISYSEVENT_INT32, .v = { .i32 = GetApiType(), }, .arraySize = 0, },
83             {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
84                 .v = { .i32 = static_cast<int32_t>(DiscoverScene::DM_DISCOVER), }, .arraySize = 0, },
85             {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
86                 .v = { .i32 = static_cast<int32_t>(DisCoverStage::DISCOVER_REGISTER_CALLBACK), }, .arraySize = 0, },
87             {.name = "STAGE_RES", .t = HISYSEVENT_INT32, .v = { .i32 = info.stageRes, }, .arraySize = 0, },
88             {.name = "BIZ_STATE", .t = HISYSEVENT_INT32, .v = { .i32 = info.bizState, }, .arraySize = 0, },
89             {.name = "TO_CALL_PKG", .t = HISYSEVENT_STRING,
90                 .v = { .s = (char *)info.toCallPkg.c_str() }, .arraySize = 0, },
91             {.name = "COMM_SERV", .t = HISYSEVENT_INT32, .v = { .i32 = info.commServ, }, .arraySize = 0, },
92             {.name = "ERROR_CODE", .t = HISYSEVENT_INT32, .v = { .i32 = info.errCode, }, .arraySize = 0, },
93         };
94         size_t len = sizeof(params) / sizeof(params[0]);
95         res = OH_HiSysEvent_Write(
96             OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
97             DM_DISCOVER_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
98     }
99     if (res != DM_OK) {
100         LOGE("ReportDiscoverRegCallback error, res:%{public}d", res);
101         return false;
102     }
103     return true;
104 }
105 
ReportDiscoverResCallbackStageSucc(struct RadarInfo & info)106 int32_t DmRadarHelper::ReportDiscoverResCallbackStageSucc(struct RadarInfo &info)
107 {
108     std::string peerUdid = GetAnonyUdid(info.peerUdid);
109     std::string localUdid = GetAnonyLocalUdid();
110     std::string peerNetId = GetAnonyUdid(info.peerNetId);
111     HiSysEventParam params[] = {
112         {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
113         {.name = "HOST_PKG", .t = HISYSEVENT_STRING,
114             .v = { .s = (char *)SOFTBUSNAME }, .arraySize = 0, },
115         {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
116         {.name = "API_TYPE", .t = HISYSEVENT_INT32, .v = { .i32 = GetApiType(), }, .arraySize = 0, },
117         {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
118             .v = { .i32 = static_cast<int32_t>(DiscoverScene::DM_DISCOVER), }, .arraySize = 0, },
119         {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
120             .v = { .i32 = static_cast<int32_t>(DisCoverStage::DISCOVER_REGISTER_CALLBACK), }, .arraySize = 0, },
121         {.name = "STAGE_RES", .t = HISYSEVENT_INT32,
122             .v = { .i32 = static_cast<int32_t>(StageRes::STAGE_SUCC), }, .arraySize = 0, },
123         {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
124             .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_END), }, .arraySize = 0, },
125         {.name = "PEER_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)peerUdid.c_str() }, .arraySize = 0, },
126         {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
127         {.name = "COMM_SERV", .t = HISYSEVENT_INT32,
128             .v = { .i32 = static_cast<int32_t>(CommServ::USE_SOFTBUS), }, .arraySize = 0, },
129         {.name = "PEER_NET_ID", .t = HISYSEVENT_STRING, .v = { .s = (char *)peerNetId.c_str() }, .arraySize = 0, },
130     };
131     size_t len = sizeof(params) / sizeof(params[0]);
132     return OH_HiSysEvent_Write(
133         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
134         DM_DISCOVER_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
135 }
136 
ReportDiscoverResCallback(struct RadarInfo & info)137 bool DmRadarHelper::ReportDiscoverResCallback(struct RadarInfo &info)
138 {
139     int32_t res = DM_OK;
140     if (info.stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
141         res = ReportDiscoverResCallbackStageSucc(info);
142     } else {
143         std::string peerUdid = GetAnonyUdid(info.peerUdid);
144         std::string localUdid = GetAnonyLocalUdid();
145         std::string peerNetId = GetAnonyUdid(info.peerNetId);
146         HiSysEventParam params[] = {
147             {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
148             {.name = "HOST_PKG", .t = HISYSEVENT_STRING,
149                 .v = { .s = (char *)SOFTBUSNAME }, .arraySize = 0, },
150             {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
151             {.name = "API_TYPE", .t = HISYSEVENT_INT32, .v = { .i32 = GetApiType(), }, .arraySize = 0, },
152             {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
153                 .v = { .i32 = static_cast<int32_t>(DiscoverScene::DM_DISCOVER), }, .arraySize = 0, },
154             {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
155                 .v = { .i32 = static_cast<int32_t>(DisCoverStage::DISCOVER_REGISTER_CALLBACK), }, .arraySize = 0, },
156             {.name = "STAGE_RES", .t = HISYSEVENT_INT32,
157                 .v = { .i32 = static_cast<int32_t>(StageRes::STAGE_FAIL), }, .arraySize = 0, },
158             {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
159                 .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_END), }, .arraySize = 0, },
160             {.name = "PEER_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)peerUdid.c_str() }, .arraySize = 0, },
161             {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
162             {.name = "COMM_SERV", .t = HISYSEVENT_INT32,
163                 .v = { .i32 = static_cast<int32_t>(CommServ::USE_SOFTBUS), }, .arraySize = 0, },
164             {.name = "PEER_NET_ID", .t = HISYSEVENT_STRING, .v = { .s = (char *)peerNetId.c_str() }, .arraySize = 0, },
165             {.name = "ERROR_CODE", .t = HISYSEVENT_INT32, .v = { .i32 = info.errCode, }, .arraySize = 0, },
166         };
167         size_t len = sizeof(params) / sizeof(params[0]);
168         res = OH_HiSysEvent_Write(
169             OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
170             DM_DISCOVER_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
171     }
172     if (res != DM_OK) {
173         LOGE("ReportDiscoverResCallback error, res:%{public}d", res);
174         return false;
175     }
176     return true;
177 }
178 
ReportDiscoverUserResStageCancel(struct RadarInfo & info)179 int32_t DmRadarHelper::ReportDiscoverUserResStageCancel(struct RadarInfo &info)
180 {
181     HiSysEventParam params[] = {
182         {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
183         {.name = "HOST_PKG", .t = HISYSEVENT_STRING,
184             .v = { .s = (char *)info.hostName.c_str() }, .arraySize = 0, },
185         {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
186         {.name = "API_TYPE", .t = HISYSEVENT_INT32, .v = { .i32 = GetApiType(), }, .arraySize = 0, },
187         {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
188             .v = { .i32 = static_cast<int32_t>(DiscoverScene::DM_DISCOVER), }, .arraySize = 0, },
189         {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
190             .v = { .i32 = static_cast<int32_t>(DisCoverStage::DISCOVER_USER_DEAL_RES), }, .arraySize = 0, },
191         {.name = "STAGE_RES", .t = HISYSEVENT_INT32, .v = { .i32 = info.stageRes, }, .arraySize = 0, },
192         {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
193             .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_END), }, .arraySize = 0, },
194         {.name = "COMM_SERV", .t = HISYSEVENT_INT32,
195             .v = { .i32 = static_cast<int32_t>(CommServ::USE_SOFTBUS), }, .arraySize = 0, },
196     };
197     size_t len = sizeof(params) / sizeof(params[0]);
198     return OH_HiSysEvent_Write(
199         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
200         DM_DISCOVER_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
201 }
202 
ReportDiscoverUserResStageSucc(struct RadarInfo & info)203 int32_t DmRadarHelper::ReportDiscoverUserResStageSucc(struct RadarInfo &info)
204 {
205     HiSysEventParam params[] = {
206         {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
207         {.name = "HOST_PKG", .t = HISYSEVENT_STRING,
208             .v = { .s = (char *)info.hostName.c_str() }, .arraySize = 0, },
209         {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
210         {.name = "API_TYPE", .t = HISYSEVENT_INT32, .v = { .i32 = GetApiType(), }, .arraySize = 0, },
211         {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
212             .v = { .i32 = static_cast<int32_t>(DiscoverScene::DM_DISCOVER), }, .arraySize = 0, },
213         {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
214             .v = { .i32 = static_cast<int32_t>(DisCoverStage::DISCOVER_USER_DEAL_RES), }, .arraySize = 0, },
215         {.name = "STAGE_RES", .t = HISYSEVENT_INT32, .v = { .i32 = info.stageRes, }, .arraySize = 0, },
216         {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
217             .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_END), }, .arraySize = 0, },
218         {.name = "COMM_SERV", .t = HISYSEVENT_INT32,
219             .v = { .i32 = static_cast<int32_t>(CommServ::USE_SOFTBUS), }, .arraySize = 0, },
220     };
221     size_t len = sizeof(params) / sizeof(params[0]);
222     return OH_HiSysEvent_Write(
223         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
224         DM_DISCOVER_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
225 }
226 
ReportDiscoverUserResStageOther(struct RadarInfo & info)227 int32_t DmRadarHelper::ReportDiscoverUserResStageOther(struct RadarInfo &info)
228 {
229     HiSysEventParam params[] = {
230         {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
231         {.name = "HOST_PKG", .t = HISYSEVENT_STRING,
232             .v = { .s = (char *)info.hostName.c_str() }, .arraySize = 0, },
233         {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
234         {.name = "API_TYPE", .t = HISYSEVENT_INT32, .v = { .i32 = GetApiType(), }, .arraySize = 0, },
235         {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
236             .v = { .i32 = static_cast<int32_t>(DiscoverScene::DM_DISCOVER), }, .arraySize = 0, },
237         {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
238             .v = { .i32 = static_cast<int32_t>(DisCoverStage::DISCOVER_USER_DEAL_RES), }, .arraySize = 0, },
239         {.name = "STAGE_RES", .t = HISYSEVENT_INT32, .v = { .i32 = info.stageRes, }, .arraySize = 0, },
240         {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
241             .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_END), }, .arraySize = 0, },
242         {.name = "COMM_SERV", .t = HISYSEVENT_INT32,
243             .v = { .i32 = static_cast<int32_t>(CommServ::USE_SOFTBUS), }, .arraySize = 0, },
244         {.name = "ERROR_CODE", .t = HISYSEVENT_INT32, .v = { .i32 = info.errCode, }, .arraySize = 0, },
245     };
246     size_t len = sizeof(params) / sizeof(params[0]);
247     return OH_HiSysEvent_Write(
248         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
249         DM_DISCOVER_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
250 }
251 
ReportDiscoverUserRes(struct RadarInfo info)252 bool DmRadarHelper::ReportDiscoverUserRes(struct RadarInfo info)
253 {
254     int32_t res = DM_OK;
255     if (info.stageRes == static_cast<int32_t>(StageRes::STAGE_CANCEL)) {
256         res = ReportDiscoverUserResStageCancel(info);
257     } else if (info.stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
258         res = ReportDiscoverUserResStageSucc(info);
259     } else {
260         res = ReportDiscoverUserResStageOther(info);
261     }
262     if (res != DM_OK) {
263         LOGE("ReportDiscoverUserRes error, res:%{public}d", res);
264         return false;
265     }
266     return true;
267 }
268 
ReportAuthStart(const std::string & peerUdid,const std::string & pkgName)269 bool DmRadarHelper::ReportAuthStart(const std::string &peerUdid, const std::string &pkgName)
270 {
271     char funcName[] = "AuthenticateDevice";
272     std::string peerUdidTmp = GetAnonyUdid(peerUdid);
273     std::string localUdid = GetAnonyLocalUdid();
274     HiSysEventParam params[] = {
275         {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
276         {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = funcName }, .arraySize = 0, },
277         {.name = "HOST_PKG", .t = HISYSEVENT_STRING,
278             .v = { .s = (char *)pkgName.c_str() }, .arraySize = 0, },
279         {.name = "API_TYPE", .t = HISYSEVENT_INT32, .v = { .i32 = GetApiType(), }, .arraySize = 0, },
280         {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
281             .v = { .i32 = static_cast<int32_t>(AuthScene::DM_AUTHCATION), }, .arraySize = 0, },
282         {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
283             .v = { .i32 = static_cast<int32_t>(AuthStage::AUTH_START), }, .arraySize = 0, },
284         {.name = "STAGE_RES", .t = HISYSEVENT_INT32,
285             .v = { .i32 = static_cast<int32_t>(StageRes::STAGE_SUCC), }, .arraySize = 0, },
286         {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
287             .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_START), }, .arraySize = 0, },
288         {.name = "IS_TRUST", .t = HISYSEVENT_INT32,
289             .v = { .i32 = static_cast<int32_t>(TrustStatus::NOT_TRUST), }, .arraySize = 0, },
290         {.name = "PEER_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)peerUdidTmp.c_str() }, .arraySize = 0, },
291         {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
292     };
293     size_t len = sizeof(params) / sizeof(params[0]);
294     int32_t res = OH_HiSysEvent_Write(
295         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
296         DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
297     if (res != DM_OK) {
298         LOGE("ReportAuthStart error, res:%{public}d", res);
299         return false;
300     }
301     return true;
302 }
303 
ReportAuthOpenSessionStageIdle(struct RadarInfo & info)304 int32_t DmRadarHelper::ReportAuthOpenSessionStageIdle(struct RadarInfo &info)
305 {
306     std::string peerUdid = GetAnonyUdid(info.peerUdid);
307     std::string localUdid = GetAnonyLocalUdid();
308     HiSysEventParam params[] = {
309         {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
310         {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
311         {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
312             .v = { .i32 = static_cast<int32_t>(AuthScene::DM_AUTHCATION), }, .arraySize = 0, },
313         {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
314             .v = { .i32 = static_cast<int32_t>(AuthStage::AUTH_OPEN_SESSION), }, .arraySize = 0, },
315         {.name = "BIZ_STATE", .t = HISYSEVENT_INT32, .v = { .i32 = info.bizState, }, .arraySize = 0, },
316         {.name = "STAGE_RES", .t = HISYSEVENT_INT32, .v = { .i32 = info.stageRes, }, .arraySize = 0, },
317         {.name = "PEER_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)peerUdid.c_str() }, .arraySize = 0, },
318         {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
319         {.name = "CH_ID", .t = HISYSEVENT_INT32, .v = { .i32 = info.channelId, }, .arraySize = 0, },
320         {.name = "IS_TRUST", .t = HISYSEVENT_INT32,
321             .v = { .i32 = static_cast<int32_t>(TrustStatus::NOT_TRUST), }, .arraySize = 0, },
322         {.name = "COMM_SERV", .t = HISYSEVENT_INT32, .v = { .i32 = info.commServ, }, .arraySize = 0, },
323         {.name = "LOCAL_SESS_NAME", .t = HISYSEVENT_STRING,
324             .v = { .s = (char *)info.localSessName.c_str() }, .arraySize = 0, },
325         {.name = "PEER_SESS_NAME", .t = HISYSEVENT_STRING,
326             .v = { .s = (char *)info.peerSessName.c_str() }, .arraySize = 0, },
327     };
328     size_t len = sizeof(params) / sizeof(params[0]);
329     return OH_HiSysEvent_Write(
330         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
331         DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
332 }
333 
ReportAuthOpenSession(struct RadarInfo & info)334 bool DmRadarHelper::ReportAuthOpenSession(struct RadarInfo &info)
335 {
336     int32_t res = DM_OK;
337     if (info.stageRes == static_cast<int32_t>(StageRes::STAGE_IDLE)) {
338         res = ReportAuthOpenSessionStageIdle(info);
339     } else {
340         std::string peerUdid = GetAnonyUdid(info.peerUdid);
341         std::string localUdid = GetAnonyLocalUdid();
342         HiSysEventParam params[] = {
343             {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
344             {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
345             {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
346                 .v = { .i32 = static_cast<int32_t>(AuthScene::DM_AUTHCATION), }, .arraySize = 0, },
347             {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
348                 .v = { .i32 = static_cast<int32_t>(AuthStage::AUTH_OPEN_SESSION), }, .arraySize = 0, },
349             {.name = "BIZ_STATE", .t = HISYSEVENT_INT32, .v = { .i32 = info.bizState, }, .arraySize = 0, },
350             {.name = "STAGE_RES", .t = HISYSEVENT_INT32, .v = { .i32 = info.stageRes, }, .arraySize = 0, },
351             {.name = "PEER_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)peerUdid.c_str() }, .arraySize = 0, },
352             {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
353             {.name = "CH_ID", .t = HISYSEVENT_INT32, .v = { .i32 = info.channelId, }, .arraySize = 0, },
354             {.name = "IS_TRUST", .t = HISYSEVENT_INT32,
355                 .v = { .i32 = static_cast<int32_t>(TrustStatus::NOT_TRUST), }, .arraySize = 0, },
356             {.name = "COMM_SERV", .t = HISYSEVENT_INT32, .v = { .i32 = info.commServ, }, .arraySize = 0, },
357             {.name = "LOCAL_SESS_NAME", .t = HISYSEVENT_STRING,
358                 .v = { .s = (char *)info.localSessName.c_str() }, .arraySize = 0, },
359             {.name = "PEER_SESS_NAME", .t = HISYSEVENT_STRING,
360                 .v = { .s = (char *)info.peerSessName.c_str() }, .arraySize = 0, },
361             {.name = "ERROR_CODE", .t = HISYSEVENT_INT32, .v = { .i32 = info.errCode, }, .arraySize = 0, },
362         };
363         size_t len = sizeof(params) / sizeof(params[0]);
364         res = OH_HiSysEvent_Write(
365             OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
366             DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
367     }
368     if (res != DM_OK) {
369         LOGE("ReportAuthOpenSession error, res:%{public}d", res);
370         return false;
371     }
372     return true;
373 }
374 
ReportAuthSessionOpenCb(struct RadarInfo & info)375 bool DmRadarHelper::ReportAuthSessionOpenCb(struct RadarInfo &info)
376 {
377     std::string peerUdid = GetAnonyUdid(info.peerUdid);
378     std::string localUdid = GetAnonyLocalUdid();
379     HiSysEventParam params[] = {
380         {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
381         {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
382         {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
383             .v = { .i32 = static_cast<int32_t>(AuthScene::DM_AUTHCATION), }, .arraySize = 0, },
384         {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
385             .v = { .i32 = static_cast<int32_t>(AuthStage::AUTH_OPEN_SESSION), }, .arraySize = 0, },
386         {.name = "STAGE_RES", .t = HISYSEVENT_INT32, .v = { .i32 = info.stageRes, }, .arraySize = 0, },
387         {.name = "PEER_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)peerUdid.c_str() }, .arraySize = 0, },
388         {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
389         {.name = "CH_ID", .t = HISYSEVENT_INT32, .v = { .i32 = info.channelId, }, .arraySize = 0, },
390     };
391     size_t len = sizeof(params) / sizeof(params[0]);
392     int32_t res = OH_HiSysEvent_Write(
393         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
394         DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
395     if (res != DM_OK) {
396         LOGE("ReportAuthSessionOpenCb error, res:%{public}d", res);
397         return false;
398     }
399     return true;
400 }
401 
ReportAuthSendRequest(struct RadarInfo & info)402 bool DmRadarHelper::ReportAuthSendRequest(struct RadarInfo &info)
403 {
404     HiSysEventParam params[] = {
405         {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
406         {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
407         {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
408             .v = { .i32 = static_cast<int32_t>(AuthScene::DM_AUTHCATION), }, .arraySize = 0, },
409         {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
410             .v = { .i32 = static_cast<int32_t>(AuthStage::AUTH_SEND_REQUEST), }, .arraySize = 0, },
411         {.name = "BIZ_STATE", .t = HISYSEVENT_INT32, .v = { .i32 = info.bizState, }, .arraySize = 0, },
412         {.name = "STAGE_RES", .t = HISYSEVENT_INT32,
413             .v = { .i32 = static_cast<int32_t>(StageRes::STAGE_SUCC), }, .arraySize = 0, },
414         {.name = "TO_CALL_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
415         {.name = "LOCAL_SESS_NAME", .t = HISYSEVENT_STRING,
416             .v = { .s = (char *)DM_SESSION_NAME }, .arraySize = 0, },
417         {.name = "IS_TRUST", .t = HISYSEVENT_INT32,
418             .v = { .i32 = static_cast<int32_t>(TrustStatus::NOT_TRUST), }, .arraySize = 0, },
419         {.name = "COMM_SERV", .t = HISYSEVENT_INT32, .v = { .i32 = info.commServ, }, .arraySize = 0, },
420     };
421     size_t len = sizeof(params) / sizeof(params[0]);
422     int32_t res = OH_HiSysEvent_Write(
423         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
424         DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
425     if (res != DM_OK) {
426         LOGE("ReportAuthSessionOpenCb error, res:%{public}d", res);
427         return false;
428     }
429     return true;
430 }
431 
ReportAuthPullAuthBox(struct RadarInfo & info)432 bool DmRadarHelper::ReportAuthPullAuthBox(struct RadarInfo &info)
433 {
434     HiSysEventParam params[] = {
435         {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
436         {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
437         {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
438             .v = { .i32 = static_cast<int32_t>(AuthScene::DM_AUTHCATION), }, .arraySize = 0, },
439         {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
440             .v = { .i32 = static_cast<int32_t>(AuthStage::AUTH_PULL_AUTH_BOX), }, .arraySize = 0, },
441         {.name = "STAGE_RES", .t = HISYSEVENT_INT32, .v = { .i32 = info.stageRes, }, .arraySize = 0, },
442     };
443     size_t len = sizeof(params) / sizeof(params[0]);
444     int32_t res = OH_HiSysEvent_Write(
445         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
446         DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
447     if (res != DM_OK) {
448         LOGE("ReportAuthPullAuthBox error, res:%{public}d", res);
449         return false;
450     }
451     return true;
452 }
453 
ReportAuthConfirmBox(struct RadarInfo & info)454 bool DmRadarHelper::ReportAuthConfirmBox(struct RadarInfo &info)
455 {
456     int32_t res = DM_OK;
457     if (info.stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
458         HiSysEventParam params[] = {
459             {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
460             {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
461             {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
462                 .v = { .i32 = static_cast<int32_t>(AuthScene::DM_AUTHCATION), }, .arraySize = 0, },
463             {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
464                 .v = { .i32 = static_cast<int32_t>(AuthStage::AUTH_PULL_AUTH_BOX), }, .arraySize = 0, },
465             {.name = "STAGE_RES", .t = HISYSEVENT_INT32, .v = { .i32 = info.stageRes, }, .arraySize = 0, },
466             {.name = "BIZ_STATE", .t = HISYSEVENT_INT32, .v = { .i32 = info.bizState, }, .arraySize = 0, },
467         };
468         size_t len = sizeof(params) / sizeof(params[0]);
469         res = OH_HiSysEvent_Write(
470             OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
471             DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
472     } else {
473         HiSysEventParam params[] = {
474             {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
475             {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
476             {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
477                 .v = { .i32 = static_cast<int32_t>(AuthScene::DM_AUTHCATION), }, .arraySize = 0, },
478             {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
479                 .v = { .i32 = static_cast<int32_t>(AuthStage::AUTH_PULL_AUTH_BOX), }, .arraySize = 0, },
480             {.name = "STAGE_RES", .t = HISYSEVENT_INT32, .v = { .i32 = info.stageRes, }, .arraySize = 0, },
481             {.name = "BIZ_STATE", .t = HISYSEVENT_INT32, .v = { .i32 = info.bizState, }, .arraySize = 0, },
482             {.name = "ERROR_CODE", .t = HISYSEVENT_INT32, .v = { .i32 = info.errCode, }, .arraySize = 0, },
483         };
484         size_t len = sizeof(params) / sizeof(params[0]);
485         res = OH_HiSysEvent_Write(
486             OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
487             DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
488     }
489     if (res != DM_OK) {
490         LOGE("ReportAuthConfirmBox error, res:%{public}d", res);
491         return false;
492     }
493     return true;
494 }
495 
ReportAuthCreateGroupStageIdle(struct RadarInfo & info)496 int32_t DmRadarHelper::ReportAuthCreateGroupStageIdle(struct RadarInfo &info)
497 {
498     std::string localUdid = GetAnonyLocalUdid();
499     HiSysEventParam params[] = {
500         {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
501         {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
502         {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
503             .v = { .i32 = static_cast<int32_t>(AuthScene::DM_AUTHCATION), }, .arraySize = 0, },
504         {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
505             .v = { .i32 = static_cast<int32_t>(AuthStage::AUTH_CREATE_HICHAIN_GROUP), }, .arraySize = 0, },
506         {.name = "STAGE_RES", .t = HISYSEVENT_INT32, .v = { .i32 = info.stageRes, }, .arraySize = 0, },
507         {.name = "BIZ_STATE", .t = HISYSEVENT_INT32, .v = { .i32 = info.bizState, }, .arraySize = 0, },
508         {.name = "TO_CALL_PKG", .t = HISYSEVENT_STRING,
509             .v = { .s = (char *)info.toCallPkg.c_str() }, .arraySize = 0, },
510         {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
511     };
512     size_t len = sizeof(params) / sizeof(params[0]);
513     return OH_HiSysEvent_Write(
514         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
515         DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
516 }
517 
ReportAuthCreateGroup(struct RadarInfo & info)518 bool DmRadarHelper::ReportAuthCreateGroup(struct RadarInfo &info)
519 {
520     int32_t res = DM_OK;
521     if (info.stageRes == static_cast<int32_t>(StageRes::STAGE_IDLE)) {
522         res = ReportAuthCreateGroupStageIdle(info);
523     } else {
524         std::string localUdid = GetAnonyLocalUdid();
525         HiSysEventParam params[] = {
526             {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
527             {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
528             {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
529                 .v = { .i32 = static_cast<int32_t>(AuthScene::DM_AUTHCATION), }, .arraySize = 0, },
530             {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
531                 .v = { .i32 = static_cast<int32_t>(AuthStage::AUTH_CREATE_HICHAIN_GROUP), }, .arraySize = 0, },
532             {.name = "STAGE_RES", .t = HISYSEVENT_INT32, .v = { .i32 = info.stageRes, }, .arraySize = 0, },
533             {.name = "BIZ_STATE", .t = HISYSEVENT_INT32, .v = { .i32 = info.bizState, }, .arraySize = 0, },
534             {.name = "TO_CALL_PKG", .t = HISYSEVENT_STRING,
535                 .v = { .s = (char *)info.toCallPkg.c_str() }, .arraySize = 0, },
536             {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
537             {.name = "ERROR_CODE", .t = HISYSEVENT_INT32, .v = { .i32 = info.errCode, }, .arraySize = 0, },
538         };
539         size_t len = sizeof(params) / sizeof(params[0]);
540         res = OH_HiSysEvent_Write(
541             OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
542             DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
543     }
544     if (res != DM_OK) {
545         LOGE("ReportAuthCreateGroup error, res:%{public}d", res);
546         return false;
547     }
548     return true;
549 }
550 
ReportAuthCreateGroupCb(std::string funcName,int32_t stageRes)551 bool DmRadarHelper::ReportAuthCreateGroupCb(std::string funcName, int32_t stageRes)
552 {
553     int32_t res = DM_OK;
554     if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
555         HiSysEventParam params[] = {
556             {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
557             {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)funcName.c_str() }, .arraySize = 0, },
558             {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
559                 .v = { .i32 = static_cast<int32_t>(AuthScene::DM_AUTHCATION), }, .arraySize = 0, },
560             {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
561                 .v = { .i32 = static_cast<int32_t>(AuthStage::AUTH_CREATE_HICHAIN_GROUP), }, .arraySize = 0, },
562             {.name = "STAGE_RES", .t = HISYSEVENT_INT32, .v = { .i32 = stageRes, }, .arraySize = 0, },
563             {.name = "HOST_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)HICHAINNAME }, .arraySize = 0, },
564             {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
565                 .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_END), }, .arraySize = 0, },
566         };
567         size_t len = sizeof(params) / sizeof(params[0]);
568         res = OH_HiSysEvent_Write(
569             OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
570             DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
571     } else {
572         HiSysEventParam params[] = {
573             {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
574             {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)funcName.c_str() }, .arraySize = 0, },
575             {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
576                 .v = { .i32 = static_cast<int32_t>(AuthScene::DM_AUTHCATION), }, .arraySize = 0, },
577             {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
578                 .v = { .i32 = static_cast<int32_t>(AuthStage::AUTH_CREATE_HICHAIN_GROUP), }, .arraySize = 0, },
579             {.name = "STAGE_RES", .t = HISYSEVENT_INT32, .v = { .i32 = stageRes, }, .arraySize = 0, },
580             {.name = "HOST_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)HICHAINNAME }, .arraySize = 0, },
581             {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
582                 .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_END), }, .arraySize = 0, },
583             {.name = "ERROR_CODE", .t = HISYSEVENT_INT32,
584                 .v = { .i32 = GetErrCode(ERR_DM_CREATE_GROUP_FAILED), }, .arraySize = 0, },
585         };
586         size_t len = sizeof(params) / sizeof(params[0]);
587         res = OH_HiSysEvent_Write(
588             OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
589             DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
590     }
591     if (res != DM_OK) {
592         LOGE("ReportAuthCreateGroupCb error, res:%{public}d", res);
593         return false;
594     }
595     return true;
596 }
597 
ReportAuthPullPinBox(struct RadarInfo & info)598 bool DmRadarHelper::ReportAuthPullPinBox(struct RadarInfo &info)
599 {
600     HiSysEventParam params[] = {
601         {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
602         {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
603         {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
604             .v = { .i32 = static_cast<int32_t>(AuthScene::DM_AUTHCATION), }, .arraySize = 0, },
605         {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
606             .v = { .i32 = static_cast<int32_t>(AuthStage::AUTH_PULL_PIN_BOX_START), }, .arraySize = 0, },
607         {.name = "STAGE_RES", .t = HISYSEVENT_INT32, .v = { .i32 = info.stageRes, }, .arraySize = 0, },
608     };
609     size_t len = sizeof(params) / sizeof(params[0]);
610     int32_t res = OH_HiSysEvent_Write(
611         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
612         DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
613     if (res != DM_OK) {
614         LOGE("ReportAuthPullPinBox error, res:%{public}d", res);
615         return false;
616     }
617     return true;
618 }
619 
ReportAuthInputPinBox(struct RadarInfo & info)620 bool DmRadarHelper::ReportAuthInputPinBox(struct RadarInfo &info)
621 {
622     int32_t res = DM_OK;
623     if (info.stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
624         HiSysEventParam params[] = {
625             {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
626             {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
627             {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
628                 .v = { .i32 = static_cast<int32_t>(AuthScene::DM_AUTHCATION), }, .arraySize = 0, },
629             {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
630                 .v = { .i32 = static_cast<int32_t>(AuthStage::AUTH_PULL_PIN_INPUT_BOX_END), }, .arraySize = 0, },
631             {.name = "STAGE_RES", .t = HISYSEVENT_INT32, .v = { .i32 = info.stageRes, }, .arraySize = 0, },
632             {.name = "BIZ_STATE", .t = HISYSEVENT_INT32, .v = { .i32 = info.bizState, }, .arraySize = 0, },
633         };
634         size_t len = sizeof(params) / sizeof(params[0]);
635         res = OH_HiSysEvent_Write(
636             OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
637             DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
638     } else {
639         HiSysEventParam params[] = {
640             {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
641             {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
642             {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
643                 .v = { .i32 = static_cast<int32_t>(AuthScene::DM_AUTHCATION), }, .arraySize = 0, },
644             {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
645                 .v = { .i32 = static_cast<int32_t>(AuthStage::AUTH_PULL_PIN_INPUT_BOX_END), }, .arraySize = 0, },
646             {.name = "STAGE_RES", .t = HISYSEVENT_INT32, .v = { .i32 = info.stageRes, }, .arraySize = 0, },
647             {.name = "BIZ_STATE", .t = HISYSEVENT_INT32, .v = { .i32 = info.bizState, }, .arraySize = 0, },
648             {.name = "ERROR_CODE", .t = HISYSEVENT_INT32, .v = { .i32 = info.errCode, }, .arraySize = 0, },
649         };
650         size_t len = sizeof(params) / sizeof(params[0]);
651         res = OH_HiSysEvent_Write(
652             OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
653             DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
654     }
655     if (res != DM_OK) {
656         LOGE("ReportAuthInputPinBox error, res:%{public}d", res);
657         return false;
658     }
659     return true;
660 }
661 
ReportAuthAddGroupStageIdle(struct RadarInfo & info)662 int32_t DmRadarHelper::ReportAuthAddGroupStageIdle(struct RadarInfo &info)
663 {
664     std::string peerUdid = GetAnonyUdid(info.peerUdid);
665     std::string localUdid = GetAnonyLocalUdid();
666     HiSysEventParam params[] = {
667         {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
668         {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
669         {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
670             .v = { .i32 = static_cast<int32_t>(AuthScene::DM_AUTHCATION), }, .arraySize = 0, },
671         {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
672             .v = { .i32 = static_cast<int32_t>(AuthStage::AUTH_ADD_HICHAIN_GROUP), }, .arraySize = 0, },
673         {.name = "STAGE_RES", .t = HISYSEVENT_INT32, .v = { .i32 = info.stageRes, }, .arraySize = 0, },
674         {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
675         {.name = "PEER_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)peerUdid.c_str() }, .arraySize = 0, },
676         {.name = "TO_CALL_PKG", .t = HISYSEVENT_STRING,
677             .v = { .s = (char *)HICHAINNAME }, .arraySize = 0, },
678         {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
679             .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_END), }, .arraySize = 0, },
680     };
681     size_t len = sizeof(params) / sizeof(params[0]);
682     return OH_HiSysEvent_Write(
683         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
684         DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
685 }
686 
ReportAuthAddGroup(struct RadarInfo & info)687 bool DmRadarHelper::ReportAuthAddGroup(struct RadarInfo &info)
688 {
689     int32_t res = DM_OK;
690     if (info.stageRes == static_cast<int32_t>(StageRes::STAGE_IDLE)) {
691         res = ReportAuthAddGroupStageIdle(info);
692     } else {
693         std::string peerUdid = GetAnonyUdid(info.peerUdid);
694         std::string localUdid = GetAnonyLocalUdid();
695         HiSysEventParam params[] = {
696             {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
697             {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
698             {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
699                 .v = { .i32 = static_cast<int32_t>(AuthScene::DM_AUTHCATION), }, .arraySize = 0, },
700             {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
701                 .v = { .i32 = static_cast<int32_t>(AuthStage::AUTH_ADD_HICHAIN_GROUP), }, .arraySize = 0, },
702             {.name = "STAGE_RES", .t = HISYSEVENT_INT32, .v = { .i32 = info.stageRes, }, .arraySize = 0, },
703             {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
704             {.name = "PEER_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)peerUdid.c_str() }, .arraySize = 0, },
705             {.name = "TO_CALL_PKG", .t = HISYSEVENT_STRING,
706                 .v = { .s = (char *)HICHAINNAME }, .arraySize = 0, },
707             {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
708                 .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_END), }, .arraySize = 0, },
709             {.name = "ERROR_CODE", .t = HISYSEVENT_INT32, .v = { .i32 = info.errCode, }, .arraySize = 0, },
710         };
711         size_t len = sizeof(params) / sizeof(params[0]);
712         res = OH_HiSysEvent_Write(
713             OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
714             DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
715     }
716     if (res != DM_OK) {
717         LOGE("ReportAuthAddGroup error, res:%{public}d", res);
718         return false;
719     }
720     return true;
721 }
722 
ReportAuthAddGroupCb(std::string funcName,int32_t stageRes)723 bool DmRadarHelper::ReportAuthAddGroupCb(std::string funcName, int32_t stageRes)
724 {
725     int32_t res = DM_OK;
726     if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
727         HiSysEventParam params[] = {
728             {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
729             {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)funcName.c_str() }, .arraySize = 0, },
730             {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
731                 .v = { .i32 = static_cast<int32_t>(AuthScene::DM_AUTHCATION), }, .arraySize = 0, },
732             {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
733                 .v = { .i32 = static_cast<int32_t>(AuthStage::AUTH_ADD_HICHAIN_GROUP), }, .arraySize = 0, },
734             {.name = "STAGE_RES", .t = HISYSEVENT_INT32, .v = { .i32 = stageRes, }, .arraySize = 0, },
735             {.name = "HOST_PKG", .t = HISYSEVENT_STRING,
736                 .v = { .s = (char *)HICHAINNAME }, .arraySize = 0, },
737             {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
738                 .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_END), }, .arraySize = 0, },
739         };
740         size_t len = sizeof(params) / sizeof(params[0]);
741         res = OH_HiSysEvent_Write(
742             OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
743             DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
744     } else {
745         HiSysEventParam params[] = {
746             {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
747             {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)funcName.c_str() }, .arraySize = 0, },
748             {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
749                 .v = { .i32 = static_cast<int32_t>(AuthScene::DM_AUTHCATION), }, .arraySize = 0, },
750             {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
751                 .v = { .i32 = static_cast<int32_t>(AuthStage::AUTH_ADD_HICHAIN_GROUP), }, .arraySize = 0, },
752             {.name = "STAGE_RES", .t = HISYSEVENT_INT32, .v = { .i32 = stageRes, }, .arraySize = 0, },
753             {.name = "HOST_PKG", .t = HISYSEVENT_STRING,
754                 .v = { .s = (char *)HICHAINNAME }, .arraySize = 0, },
755             {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
756                 .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_END), }, .arraySize = 0, },
757             {.name = "ERROR_CODE", .t = HISYSEVENT_INT32,
758                 .v = { .i32 = GetErrCode(ERR_DM_ADD_GROUP_FAILED), }, .arraySize = 0, },
759         };
760         size_t len = sizeof(params) / sizeof(params[0]);
761         res = OH_HiSysEvent_Write(
762             OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
763             DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
764     }
765     if (res != DM_OK) {
766         LOGE("ReportAuthAddGroupCb error, res:%{public}d", res);
767         return false;
768     }
769     return true;
770 }
771 
ReportNetworkOnline(struct RadarInfo & info)772 bool DmRadarHelper::ReportNetworkOnline(struct RadarInfo &info)
773 {
774     std::string peerUdid = GetAnonyUdid(info.peerUdid);
775     std::string localUdid = GetAnonyLocalUdid();
776     std::string peerNetId = GetAnonyUdid(info.peerNetId);
777     HiSysEventParam params[] = {
778         {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
779         {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
780         {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
781             .v = { .i32 = static_cast<int32_t>(AuthScene::DM_NETWORK), }, .arraySize = 0, },
782         {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
783             .v = { .i32 = static_cast<int32_t>(NetworkStage::NETWORK_ONLINE), }, .arraySize = 0, },
784         {.name = "STAGE_RES", .t = HISYSEVENT_INT32, .v = { .i32 = info.stageRes, }, .arraySize = 0, },
785         {.name = "BIZ_STATE", .t = HISYSEVENT_INT32, .v = { .i32 = info.bizState, }, .arraySize = 0, },
786         {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
787         {.name = "PEER_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)peerUdid.c_str() }, .arraySize = 0, },
788         {.name = "PEER_NET_ID", .t = HISYSEVENT_STRING, .v = { .s = (char *)peerNetId.c_str() }, .arraySize = 0, },
789         {.name = "IS_TRUST", .t = HISYSEVENT_INT32, .v = { .i32 = info.isTrust, }, .arraySize = 0, },
790     };
791     size_t len = sizeof(params) / sizeof(params[0]);
792     int32_t res = OH_HiSysEvent_Write(
793         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
794         DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
795     if (res != DM_OK) {
796         LOGE("ReportNetworkOnline error, res:%{public}d", res);
797         return false;
798     }
799     return true;
800 }
801 
ReportNetworkOffline(struct RadarInfo & info)802 bool DmRadarHelper::ReportNetworkOffline(struct RadarInfo &info)
803 {
804     std::string peerUdid = GetAnonyUdid(info.peerUdid);
805     std::string localUdid = GetAnonyLocalUdid();
806     std::string peerNetId = GetAnonyUdid(info.peerNetId);
807     HiSysEventParam params[] = {
808         {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
809         {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
810         {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
811             .v = { .i32 = static_cast<int32_t>(AuthScene::DM_NETWORK), }, .arraySize = 0, },
812         {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
813             .v = { .i32 = static_cast<int32_t>(NetworkStage::NETWORK_OFFLINE), }, .arraySize = 0, },
814         {.name = "STAGE_RES", .t = HISYSEVENT_INT32, .v = { .i32 = info.stageRes, }, .arraySize = 0, },
815         {.name = "BIZ_STATE", .t = HISYSEVENT_INT32, .v = { .i32 = info.bizState, }, .arraySize = 0, },
816         {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
817         {.name = "PEER_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)peerUdid.c_str() }, .arraySize = 0, },
818         {.name = "PEER_NET_ID", .t = HISYSEVENT_STRING, .v = { .s = (char *)peerNetId.c_str() }, .arraySize = 0, },
819     };
820     size_t len = sizeof(params) / sizeof(params[0]);
821     int32_t res = OH_HiSysEvent_Write(
822         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
823         DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
824     if (res != DM_OK) {
825         LOGE("ReportNetworkOffline error, res:%{public}d", res);
826         return false;
827     }
828     return true;
829 }
830 
ReportDeleteTrustRelation(struct RadarInfo & info)831 bool DmRadarHelper::ReportDeleteTrustRelation(struct RadarInfo &info)
832 {
833     std::string peerUdid = GetAnonyUdid(info.peerUdid);
834     std::string localUdid = GetAnonyLocalUdid();
835     std::string peerNetId = GetAnonyUdid(info.peerNetId);
836     HiSysEventParam params[] = {
837         {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
838         {.name = "HOST_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.hostName.c_str() }, .arraySize = 0, },
839         {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)info.funcName.c_str() }, .arraySize = 0, },
840         {.name = "API_TYPE", .t = HISYSEVENT_INT32, .v = { .i32 = GetApiType(), }, .arraySize = 0, },
841         {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
842             .v = { .i32 = static_cast<int32_t>(AuthScene::DM_DELET_TRUST_RELATION), }, .arraySize = 0, },
843         {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
844             .v = { .i32 = static_cast<int32_t>(DeleteTrust::DELETE_TRUST), }, .arraySize = 0, },
845         {.name = "STAGE_RES", .t = HISYSEVENT_INT32,
846             .v = { .i32 = static_cast<int32_t>(StageRes::STAGE_SUCC), }, .arraySize = 0, },
847         {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
848             .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_END), }, .arraySize = 0, },
849         {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
850         {.name = "PEER_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)peerUdid.c_str() }, .arraySize = 0, },
851         {.name = "PEER_NET_ID", .t = HISYSEVENT_STRING, .v = { .s = (char *)peerNetId.c_str() }, .arraySize = 0, },
852         {.name = "TO_CALL_PKG", .t = HISYSEVENT_STRING,
853             .v = { .s = (char *)info.toCallPkg.c_str() }, .arraySize = 0, },
854     };
855     size_t len = sizeof(params) / sizeof(params[0]);
856     int32_t res = OH_HiSysEvent_Write(
857         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
858         DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
859     if (res != DM_OK) {
860         LOGE("ReportDeleteTrustRelation error, res:%{public}d", res);
861         return false;
862     }
863     return true;
864 }
865 
ReportCreatePinHolderStageSucc(std::string hostName,int32_t channelId,std::string peerUdid,int32_t errCode,int32_t stageRes)866 int32_t DmRadarHelper::ReportCreatePinHolderStageSucc(std::string hostName,
867     int32_t channelId, std::string peerUdid, int32_t errCode, int32_t stageRes)
868 {
869     char funcName[] =  "CreatePinHolder";
870     std::string peerUdidTmp = GetAnonyUdid(peerUdid);
871     std::string localUdid = GetAnonyLocalUdid();
872     HiSysEventParam params[] = {
873         {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
874         {.name = "HOST_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)hostName.c_str() }, .arraySize = 0, },
875         {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = funcName }, .arraySize = 0, },
876         {.name = "API_TYPE", .t = HISYSEVENT_INT32, .v = { .i32 = GetApiType(), }, .arraySize = 0, },
877         {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
878             .v = { .i32 = static_cast<int32_t>(AuthScene::DM_PIN_HOLDER), }, .arraySize = 0, },
879         {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
880             .v = { .i32 = static_cast<int32_t>(PinHolderStage::CREATE_PIN_HOLDER), }, .arraySize = 0, },
881         {.name = "STAGE_RES", .t = HISYSEVENT_INT32,
882             .v = { .i32 = static_cast<int32_t>(StageRes::STAGE_SUCC), }, .arraySize = 0, },
883         {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
884             .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_START), }, .arraySize = 0, },
885         {.name = "CH_ID", .t = HISYSEVENT_INT32, .v = { .i32 = channelId, }, .arraySize = 0, },
886         {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
887         {.name = "PEER_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)peerUdidTmp.c_str() }, .arraySize = 0, },
888         {.name = "TO_CALL_PKG", .t = HISYSEVENT_STRING,
889             .v = { .s = (char *)SOFTBUSNAME }, .arraySize = 0, },
890     };
891     size_t len = sizeof(params) / sizeof(params[0]);
892     return OH_HiSysEvent_Write(
893         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
894         DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
895 }
896 
ReportCreatePinHolder(std::string hostName,int32_t channelId,std::string peerUdid,int32_t errCode,int32_t stageRes)897 void DmRadarHelper::ReportCreatePinHolder(std::string hostName,
898     int32_t channelId, std::string peerUdid, int32_t errCode, int32_t stageRes)
899 {
900     int32_t res = DM_OK;
901     char funcName[] =  "CreatePinHolder";
902     if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
903         res = ReportCreatePinHolderStageSucc(hostName, channelId, peerUdid, errCode, stageRes);
904         if (res != DM_OK) {
905             LOGE("ReportDeleteTrustRelation error, res:%{public}d", res);
906             return;
907         }
908     } else {
909         std::string peerUdidTmp = GetAnonyUdid(peerUdid);
910         std::string localUdid = GetAnonyLocalUdid();
911         HiSysEventParam params[] = {
912             {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
913             {.name = "HOST_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)hostName.c_str() }, .arraySize = 0, },
914             {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = funcName }, .arraySize = 0, },
915             {.name = "API_TYPE", .t = HISYSEVENT_INT32, .v = { .i32 = GetApiType(), }, .arraySize = 0, },
916             {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
917                 .v = { .i32 = static_cast<int32_t>(AuthScene::DM_PIN_HOLDER), }, .arraySize = 0, },
918             {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
919                 .v = { .i32 = static_cast<int32_t>(PinHolderStage::CREATE_PIN_HOLDER), }, .arraySize = 0, },
920             {.name = "STAGE_RES", .t = HISYSEVENT_INT32,
921                 .v = { .i32 = static_cast<int32_t>(StageRes::STAGE_FAIL), }, .arraySize = 0, },
922             {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
923                 .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_END), }, .arraySize = 0, },
924             {.name = "CH_ID", .t = HISYSEVENT_INT32, .v = { .i32 = channelId, }, .arraySize = 0, },
925             {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
926             {.name = "PEER_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)peerUdidTmp.c_str() }, .arraySize = 0, },
927             {.name = "TO_CALL_PKG", .t = HISYSEVENT_STRING,
928                 .v = { .s = (char *)SOFTBUSNAME }, .arraySize = 0, },
929             {.name = "ERROR_CODE", .t = HISYSEVENT_INT32, .v = { .i32 = errCode, }, .arraySize = 0, },
930         };
931         size_t len = sizeof(params) / sizeof(params[0]);
932         res = OH_HiSysEvent_Write(
933             OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
934             DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
935         if (res != DM_OK) {
936             LOGE("ReportDeleteTrustRelation error, res:%{public}d", res);
937             return;
938         }
939     }
940     return;
941 }
942 
ReportDestroyPinHolderStageSucc(std::string hostName,std::string peerUdid,int32_t errCode,int32_t stageRes)943 int32_t DmRadarHelper::ReportDestroyPinHolderStageSucc(std::string hostName,
944     std::string peerUdid, int32_t errCode, int32_t stageRes)
945 {
946     char funcName[] = "DestroyPinHolder";
947     std::string peerUdidTmp = GetAnonyUdid(peerUdid);
948     std::string localUdid = GetAnonyLocalUdid();
949     HiSysEventParam params[] = {
950         {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
951         {.name = "HOST_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)hostName.c_str() }, .arraySize = 0, },
952         {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = funcName }, .arraySize = 0, },
953         {.name = "API_TYPE", .t = HISYSEVENT_INT32, .v = { .i32 = GetApiType(), }, .arraySize = 0, },
954         {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
955             .v = { .i32 = static_cast<int32_t>(AuthScene::DM_PIN_HOLDER), }, .arraySize = 0, },
956         {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
957             .v = { .i32 = static_cast<int32_t>(PinHolderStage::DESTROY_PIN_HOLDER), }, .arraySize = 0, },
958         {.name = "STAGE_RES", .t = HISYSEVENT_INT32,
959             .v = { .i32 = static_cast<int32_t>(StageRes::STAGE_SUCC), }, .arraySize = 0, },
960         {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
961             .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_END), }, .arraySize = 0, },
962         {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
963         {.name = "PEER_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)peerUdidTmp.c_str() }, .arraySize = 0, },
964         {.name = "TO_CALL_PKG", .t = HISYSEVENT_STRING,
965             .v = { .s = (char *)SOFTBUSNAME }, .arraySize = 0, },
966     };
967     size_t len = sizeof(params) / sizeof(params[0]);
968     return OH_HiSysEvent_Write(
969         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
970         DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
971 }
972 
ReportDestroyPinHolder(std::string hostName,std::string peerUdid,int32_t errCode,int32_t stageRes)973 void DmRadarHelper::ReportDestroyPinHolder(std::string hostName,
974     std::string peerUdid, int32_t errCode, int32_t stageRes)
975 {
976     int32_t res = DM_OK;
977     char funcName[] = "DestroyPinHolder";
978     if (stageRes == static_cast<int32_t>(StageRes::STAGE_SUCC)) {
979         res = ReportDestroyPinHolderStageSucc(hostName, peerUdid, errCode, stageRes);
980         if (res != DM_OK) {
981             LOGE("ReportDeleteTrustRelation error, res:%{public}d", res);
982             return;
983         }
984     } else {
985         std::string peerUdidTmp = GetAnonyUdid(peerUdid);
986         std::string localUdid = GetAnonyLocalUdid();
987         HiSysEventParam params[] = {
988             {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
989             {.name = "HOST_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)hostName.c_str() }, .arraySize = 0, },
990             {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = funcName }, .arraySize = 0, },
991             {.name = "API_TYPE", .t = HISYSEVENT_INT32, .v = { .i32 = GetApiType(), }, .arraySize = 0, },
992             {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
993                 .v = { .i32 = static_cast<int32_t>(AuthScene::DM_PIN_HOLDER), }, .arraySize = 0, },
994             {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
995                 .v = { .i32 = static_cast<int32_t>(PinHolderStage::DESTROY_PIN_HOLDER), }, .arraySize = 0, },
996             {.name = "STAGE_RES", .t = HISYSEVENT_INT32,
997                 .v = { .i32 = static_cast<int32_t>(StageRes::STAGE_FAIL), }, .arraySize = 0, },
998             {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
999                 .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_END), }, .arraySize = 0, },
1000             {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
1001             {.name = "PEER_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)peerUdidTmp.c_str() }, .arraySize = 0, },
1002             {.name = "TO_CALL_PKG", .t = HISYSEVENT_STRING,
1003                 .v = { .s = (char *)SOFTBUSNAME }, .arraySize = 0, },
1004             {.name = "ERROR_CODE", .t = HISYSEVENT_INT32, .v = { .i32 = errCode, }, .arraySize = 0, },
1005         };
1006         size_t len = sizeof(params) / sizeof(params[0]);
1007         res = OH_HiSysEvent_Write(
1008             OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
1009             DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
1010         if (res != DM_OK) {
1011             LOGE("ReportDeleteTrustRelation error, res:%{public}d", res);
1012             return;
1013         }
1014     }
1015     return;
1016 }
1017 
ReportSendOrReceiveHolderMsgStageOther(int32_t bizStage,std::string funcName,std::string peerUdid)1018 int32_t DmRadarHelper::ReportSendOrReceiveHolderMsgStageOther(int32_t bizStage,
1019     std::string funcName, std::string peerUdid)
1020 {
1021     std::string peerUdidTmp = GetAnonyUdid(peerUdid);
1022     std::string localUdid = GetAnonyLocalUdid();
1023     HiSysEventParam params[] = {
1024         {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
1025         {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)funcName.c_str() }, .arraySize = 0, },
1026         {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
1027             .v = { .i32 = static_cast<int32_t>(AuthScene::DM_PIN_HOLDER), }, .arraySize = 0, },
1028         {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32, .v = { .i32 = bizStage, }, .arraySize = 0, },
1029         {.name = "STAGE_RES", .t = HISYSEVENT_INT32,
1030             .v = { .i32 = static_cast<int32_t>(StageRes::STAGE_SUCC), }, .arraySize = 0, },
1031         {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
1032         {.name = "PEER_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)peerUdidTmp.c_str() }, .arraySize = 0, },
1033         {.name = "TO_CALL_PKG", .t = HISYSEVENT_STRING,
1034             .v = { .s = (char *)SOFTBUSNAME }, .arraySize = 0, },
1035     };
1036     size_t len = sizeof(params) / sizeof(params[0]);
1037     return OH_HiSysEvent_Write(
1038         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
1039         DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
1040 }
1041 
ReportSendOrReceiveHolderMsg(int32_t bizStage,std::string funcName,std::string peerUdid)1042 void DmRadarHelper::ReportSendOrReceiveHolderMsg(int32_t bizStage, std::string funcName, std::string peerUdid)
1043 {
1044     int32_t res = DM_OK;
1045     if (bizStage == static_cast<int32_t>(PinHolderStage::RECEIVE_DESTROY_PIN_HOLDER_MSG)) {
1046         std::string peerUdidTmp = GetAnonyUdid(peerUdid);
1047         std::string localUdid = GetAnonyLocalUdid();
1048         HiSysEventParam params[] = {
1049             {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
1050             {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)funcName.c_str() }, .arraySize = 0, },
1051             {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
1052                 .v = { .i32 = static_cast<int32_t>(AuthScene::DM_PIN_HOLDER), }, .arraySize = 0, },
1053             {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32, .v = { .i32 = bizStage, }, .arraySize = 0, },
1054             {.name = "STAGE_RES", .t = HISYSEVENT_INT32,
1055                 .v = { .i32 = static_cast<int32_t>(StageRes::STAGE_SUCC), }, .arraySize = 0, },
1056             {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
1057                 .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_END), }, .arraySize = 0, },
1058             {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING,
1059                 .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
1060             {.name = "PEER_UDID", .t = HISYSEVENT_STRING,
1061                 .v = { .s = (char *)peerUdidTmp.c_str() }, .arraySize = 0, },
1062             {.name = "TO_CALL_PKG", .t = HISYSEVENT_STRING,
1063                 .v = { .s = (char *)SOFTBUSNAME }, .arraySize = 0, },
1064         };
1065         size_t len = sizeof(params) / sizeof(params[0]);
1066         res = OH_HiSysEvent_Write(
1067             OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
1068             DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
1069         if (res != DM_OK) {
1070             LOGE("ReportSendOrReceiveHolderMsg error, res:%{public}d", res);
1071             return;
1072         }
1073     } else {
1074         res = ReportSendOrReceiveHolderMsgStageOther(bizStage, funcName, peerUdid);
1075         if (res != DM_OK) {
1076             LOGE("ReportSendOrReceiveHolderMsg error, res:%{public}d", res);
1077             return;
1078         }
1079     }
1080     return;
1081 }
1082 
ReportGetTrustDeviceListResultFailed(std::string hostName,std::string funcName,std::vector<DmDeviceInfo> & deviceInfoList,int32_t errCode,std::string localUdid,std::string discoverDevList)1083 int32_t DmRadarHelper::ReportGetTrustDeviceListResultFailed(std::string hostName,
1084     std::string funcName, std::vector<DmDeviceInfo> &deviceInfoList,
1085     int32_t errCode, std::string localUdid, std::string discoverDevList)
1086 {
1087     HiSysEventParam params[] = {
1088         {.name = "ORG_PKG", .t = HISYSEVENT_STRING,
1089             .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
1090         {.name = "HOST_PKG", .t = HISYSEVENT_STRING,
1091             .v = { .s = (char *)hostName.c_str() }, .arraySize = 0, },
1092         {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)funcName.c_str() }, .arraySize = 0, },
1093         {.name = "API_TYPE", .t = HISYSEVENT_INT32, .v = { .i32 = GetApiType(), }, .arraySize = 0, },
1094         {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
1095             .v = { .i32 = static_cast<int32_t>(DiscoverScene::DM_GET_TRUST_DEVICE_LIST), }, .arraySize = 0, },
1096         {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
1097             .v = { .i32 = static_cast<int32_t>(GetTrustDeviceList::GET_TRUST_DEVICE_LIST), },
1098             .arraySize = 0, },
1099         {.name = "STAGE_RES", .t = HISYSEVENT_INT32,
1100             .v = { .i32 = static_cast<int32_t>(StageRes::STAGE_FAIL), }, .arraySize = 0, },
1101         {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
1102             .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_END), }, .arraySize = 0, },
1103         {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING,
1104             .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
1105         {.name = "DISCOVERY_DEVICE_LIST", .t = HISYSEVENT_STRING,
1106             .v = { .s = (char *)discoverDevList.c_str() }, .arraySize = 0, },
1107         {.name = "ERROR_CODE", .t = HISYSEVENT_INT32, .v = { .i32 = GetErrCode(errCode), }, .arraySize = 0, },
1108     };
1109     size_t len = sizeof(params) / sizeof(params[0]);
1110     return OH_HiSysEvent_Write(
1111         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
1112         DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
1113 }
1114 
ReportGetTrustDeviceList(std::string hostName,std::string funcName,std::vector<DmDeviceInfo> & deviceInfoList,int32_t errCode,std::string localUdid)1115 void DmRadarHelper::ReportGetTrustDeviceList(std::string hostName,
1116     std::string funcName, std::vector<DmDeviceInfo> &deviceInfoList, int32_t errCode, std::string localUdid)
1117 {
1118     int32_t res = DM_OK;
1119     std::string discoverDevList = GetDeviceInfoList(deviceInfoList);
1120     if (errCode == DM_OK) {
1121         int32_t deviceCount = static_cast<int32_t>(deviceInfoList.size());
1122         static std::string TrustCallerName = "";
1123         if (deviceCount > 0 && TrustCallerName != hostName) {
1124             TrustCallerName = hostName;
1125             HiSysEventParam params[] = {
1126                 {.name = "ORG_PKG", .t = HISYSEVENT_STRING,
1127                     .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
1128                 {.name = "HOST_PKG", .t = HISYSEVENT_STRING,
1129                     .v = { .s = (char *)hostName.c_str() }, .arraySize = 0, },
1130                 {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)funcName.c_str() }, .arraySize = 0, },
1131                 {.name = "API_TYPE", .t = HISYSEVENT_INT32, .v = { .i32 = GetApiType(), }, .arraySize = 0, },
1132                 {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
1133                     .v = { .i32 = static_cast<int32_t>(DiscoverScene::DM_GET_TRUST_DEVICE_LIST), }, .arraySize = 0, },
1134                 {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32,
1135                     .v = { .i32 = static_cast<int32_t>(GetTrustDeviceList::GET_TRUST_DEVICE_LIST), },
1136                     .arraySize = 0, },
1137                 {.name = "STAGE_RES", .t = HISYSEVENT_INT32,
1138                     .v = { .i32 = static_cast<int32_t>(StageRes::STAGE_SUCC), }, .arraySize = 0, },
1139                 {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
1140                     .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_END), }, .arraySize = 0, },
1141                 {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING,
1142                     .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
1143                 {.name = "DISCOVERY_DEVICE_LIST", .t = HISYSEVENT_STRING,
1144                     .v = { .s = (char *)discoverDevList.c_str() }, .arraySize = 0, },
1145             };
1146             size_t len = sizeof(params) / sizeof(params[0]);
1147             res = OH_HiSysEvent_Write(
1148                 OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
1149                 DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
1150         }
1151     } else {
1152         res = ReportGetTrustDeviceListResultFailed(hostName, funcName,
1153             deviceInfoList, errCode, localUdid, discoverDevList);
1154     }
1155     if (res != DM_OK) {
1156         LOGE("ReportGetTrustDeviceList error, res:%{public}d", res);
1157         return;
1158     }
1159 }
1160 
ReportDmBehaviorResultSucc(std::string hostName,std::string funcName,int32_t errCode,std::string localUdid)1161 int32_t DmRadarHelper::ReportDmBehaviorResultSucc(std::string hostName, std::string funcName,
1162     int32_t errCode, std::string localUdid)
1163 {
1164     HiSysEventParam params[] = {
1165         {.name = "ORG_PKG", .t = HISYSEVENT_STRING,
1166             .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
1167         {.name = "HOST_PKG", .t = HISYSEVENT_STRING,
1168             .v = { .s = (char *)hostName.c_str() }, .arraySize = 0, },
1169         {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)funcName.c_str() }, .arraySize = 0, },
1170         {.name = "API_TYPE", .t = HISYSEVENT_INT32, .v = { .i32 = GetApiType(), }, .arraySize = 0, },
1171         {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
1172             .v = { .i32 = static_cast<int32_t>(DiscoverScene::DM_BEHAVIOR), }, .arraySize = 0, },
1173         {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32, .v = { .i32 = DEFAULT_STAGE, }, .arraySize = 0, },
1174         {.name = "STAGE_RES", .t = HISYSEVENT_INT32,
1175             .v = { .i32 = static_cast<int32_t>(StageRes::STAGE_SUCC), }, .arraySize = 0, },
1176         {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
1177             .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_END), }, .arraySize = 0, },
1178         {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING,
1179             .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
1180         };
1181     size_t len = sizeof(params) / sizeof(params[0]);
1182     return OH_HiSysEvent_Write(
1183         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
1184         DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
1185 }
1186 
ReportDmBehavior(std::string hostName,std::string funcName,int32_t errCode,std::string localUdid)1187 void DmRadarHelper::ReportDmBehavior(std::string hostName, std::string funcName, int32_t errCode,
1188     std::string localUdid)
1189 {
1190     int32_t res = DM_OK;
1191     if (errCode == DM_OK) {
1192         res = ReportDmBehaviorResultSucc(hostName, funcName, errCode, localUdid);
1193     } else {
1194         HiSysEventParam params[] = {
1195             {.name = "ORG_PKG", .t = HISYSEVENT_STRING,
1196                 .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
1197             {.name = "HOST_PKG", .t = HISYSEVENT_STRING,
1198                 .v = { .s = (char *)hostName.c_str() }, .arraySize = 0, },
1199             {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)funcName.c_str() }, .arraySize = 0, },
1200             {.name = "API_TYPE", .t = HISYSEVENT_INT32, .v = { .i32 = GetApiType(), }, .arraySize = 0, },
1201             {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
1202                 .v = { .i32 = static_cast<int32_t>(DiscoverScene::DM_BEHAVIOR), }, .arraySize = 0, },
1203             {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32, .v = { .i32 = DEFAULT_STAGE, }, .arraySize = 0, },
1204             {.name = "STAGE_RES", .t = HISYSEVENT_INT32,
1205                 .v = { .i32 = static_cast<int32_t>(StageRes::STAGE_FAIL), }, .arraySize = 0, },
1206             {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
1207                 .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_END), }, .arraySize = 0, },
1208             {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING,
1209                 .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
1210             {.name = "ERROR_CODE", .t = HISYSEVENT_INT32, .v = { .i32 = GetErrCode(errCode), }, .arraySize = 0, },
1211         };
1212         size_t len = sizeof(params) / sizeof(params[0]);
1213         res = OH_HiSysEvent_Write(
1214             OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
1215             DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
1216     }
1217     if (res != DM_OK) {
1218         LOGE("ReportDmBehavior error, res:%{public}d", res);
1219         return;
1220     }
1221 }
1222 
ReportGetLocalDevInfoResultSucc(std::string hostName,std::string funcName,DmDeviceInfo & info,int32_t errCode,std::string localUdid)1223 int32_t DmRadarHelper::ReportGetLocalDevInfoResultSucc(std::string hostName,
1224     std::string funcName, DmDeviceInfo &info, int32_t errCode, std::string localUdid)
1225 {
1226     std::string devType = ConvertHexToString(info.deviceTypeId);
1227     std::string localNetId = GetAnonyUdid(info.networkId);
1228     HiSysEventParam params[] = {
1229         {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
1230         {.name = "HOST_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)hostName.c_str() }, .arraySize = 0, },
1231         {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)funcName.c_str() }, .arraySize = 0, },
1232         {.name = "API_TYPE", .t = HISYSEVENT_INT32, .v = { .i32 = GetApiType(), }, .arraySize = 0, },
1233         {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
1234             .v = { .i32 = static_cast<int32_t>(DiscoverScene::DM_GET_LOCAL_DEVICE_INFO), }, .arraySize = 0, },
1235         {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32, .v = { .i32 = DEFAULT_STAGE, }, .arraySize = 0, },
1236         {.name = "STAGE_RES", .t = HISYSEVENT_INT32,
1237             .v = { .i32 = static_cast<int32_t>(StageRes::STAGE_SUCC), }, .arraySize = 0, },
1238         {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
1239             .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_END), }, .arraySize = 0, },
1240         {.name = "DEV_TYPE", .t = HISYSEVENT_STRING, .v = { .s = (char *)devType.c_str() }, .arraySize = 0, },
1241         {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
1242         {.name = "LOCAL_NET_ID", .t = HISYSEVENT_STRING, .v = { .s = (char *)localNetId.c_str() }, .arraySize = 0, },
1243     };
1244     size_t len = sizeof(params) / sizeof(params[0]);
1245     return OH_HiSysEvent_Write(
1246         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
1247         DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
1248 }
1249 
ReportGetLocalDevInfo(std::string hostName,std::string funcName,DmDeviceInfo & info,int32_t errCode,std::string localUdid)1250 void DmRadarHelper::ReportGetLocalDevInfo(std::string hostName,
1251     std::string funcName, DmDeviceInfo &info, int32_t errCode, std::string localUdid)
1252 {
1253     int32_t res = DM_OK;
1254     bool compare = false;
1255     {
1256         std::lock_guard<std::mutex> autoLock(lock_);
1257         if (localCallerName_ != hostName) {
1258             compare = true;
1259             localCallerName_ = hostName;
1260         }
1261     }
1262     if (compare) {
1263         if (errCode == DM_OK) {
1264             res = ReportGetLocalDevInfoResultSucc(hostName, funcName, info, errCode, localUdid);
1265         } else {
1266             std::string devType = ConvertHexToString(info.deviceTypeId);
1267             std::string localNetId = GetAnonyUdid(info.networkId);
1268             HiSysEventParam params[] = {
1269                 {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
1270                 {.name = "HOST_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)hostName.c_str() }, .arraySize = 0, },
1271                 {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)funcName.c_str() }, .arraySize = 0, },
1272                 {.name = "API_TYPE", .t = HISYSEVENT_INT32, .v = { .i32 = GetApiType(), }, .arraySize = 0, },
1273                 {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
1274                     .v = { .i32 = static_cast<int32_t>(DiscoverScene::DM_GET_LOCAL_DEVICE_INFO), }, .arraySize = 0, },
1275                 {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32, .v = { .i32 = DEFAULT_STAGE, }, .arraySize = 0, },
1276                 {.name = "STAGE_RES", .t = HISYSEVENT_INT32,
1277                     .v = { .i32 = static_cast<int32_t>(StageRes::STAGE_FAIL), }, .arraySize = 0, },
1278                 {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
1279                     .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_END), }, .arraySize = 0, },
1280                 {.name = "DEV_TYPE", .t = HISYSEVENT_STRING, .v = { .s = (char *)devType.c_str() }, .arraySize = 0, },
1281                 {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING,
1282                     .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
1283                 {.name = "LOCAL_NET_ID", .t = HISYSEVENT_STRING,
1284                     .v = { .s = (char *)localNetId.c_str() }, .arraySize = 0, },
1285                 {.name = "ERROR_CODE", .t = HISYSEVENT_INT32, .v = { .i32 = GetErrCode(errCode), }, .arraySize = 0, },
1286             };
1287             size_t len = sizeof(params) / sizeof(params[0]);
1288             res = OH_HiSysEvent_Write(
1289                 OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
1290                 DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
1291         }
1292     }
1293     if (res != DM_OK) {
1294         LOGE("ReportGetLocalDevInfo error, res:%{public}d", res);
1295         return;
1296     }
1297 }
1298 
ReportGetDeviceInfoResultSucc(std::string hostName,std::string funcName,DmDeviceInfo & info,int32_t errCode,std::string localUdid)1299 int32_t DmRadarHelper::ReportGetDeviceInfoResultSucc(std::string hostName,
1300     std::string funcName, DmDeviceInfo &info, int32_t errCode, std::string localUdid)
1301 {
1302     std::string devType = ConvertHexToString(info.deviceTypeId);
1303     std::string peerUdid = GetAnonyUdid(info.deviceId);
1304     std::string peerNetId = GetAnonyUdid(info.networkId);
1305     HiSysEventParam params[] = {
1306         {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
1307         {.name = "HOST_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)hostName.c_str() }, .arraySize = 0, },
1308         {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)funcName.c_str() }, .arraySize = 0, },
1309         {.name = "API_TYPE", .t = HISYSEVENT_INT32, .v = { .i32 = GetApiType(), }, .arraySize = 0, },
1310         {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
1311             .v = { .i32 = static_cast<int32_t>(DiscoverScene::DM_GET_DEVICE_INFO), }, .arraySize = 0, },
1312         {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32, .v = { .i32 = DEFAULT_STAGE, }, .arraySize = 0, },
1313         {.name = "STAGE_RES", .t = HISYSEVENT_INT32,
1314             .v = { .i32 = static_cast<int32_t>(StageRes::STAGE_SUCC), }, .arraySize = 0, },
1315         {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
1316             .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_END), }, .arraySize = 0, },
1317         {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
1318         {.name = "DEV_TYPE", .t = HISYSEVENT_STRING, .v = { .s = (char *)devType.c_str() }, .arraySize = 0, },
1319         {.name = "PEER_UDID", .t = HISYSEVENT_STRING, .v = { .s = (char *)peerUdid.c_str() }, .arraySize = 0, },
1320         {.name = "PEER_NET_ID", .t = HISYSEVENT_STRING, .v = { .s = (char *)peerNetId.c_str() }, .arraySize = 0, },
1321     };
1322     size_t len = sizeof(params) / sizeof(params[0]);
1323     return OH_HiSysEvent_Write(
1324         OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
1325         DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
1326 }
1327 
ReportGetDeviceInfo(std::string hostName,std::string funcName,DmDeviceInfo & info,int32_t errCode,std::string localUdid)1328 void DmRadarHelper::ReportGetDeviceInfo(std::string hostName,
1329     std::string funcName, DmDeviceInfo &info, int32_t errCode, std::string localUdid)
1330 {
1331     int32_t res = DM_OK;
1332     static std::string callerName = "";
1333     if (callerName != hostName) {
1334         callerName = hostName;
1335         if (errCode == DM_OK) {
1336             res = ReportGetDeviceInfoResultSucc(hostName, funcName, info, errCode, localUdid);
1337         } else {
1338             std::string devType = ConvertHexToString(info.deviceTypeId);
1339             std::string peerUdid = GetAnonyUdid(info.deviceId);
1340             std::string peerNetId = GetAnonyUdid(info.networkId);
1341             HiSysEventParam params[] = {
1342                 {.name = "ORG_PKG", .t = HISYSEVENT_STRING, .v = { .s = (char *)ORGPKGNAME }, .arraySize = 0, },
1343                 {.name = "HOST_PKG", .t = HISYSEVENT_STRING,
1344                     .v = { .s = (char *)hostName.c_str() }, .arraySize = 0, },
1345                 {.name = "FUNC", .t = HISYSEVENT_STRING, .v = { .s = (char *)funcName.c_str() }, .arraySize = 0, },
1346                 {.name = "API_TYPE", .t = HISYSEVENT_INT32, .v = { .i32 = GetApiType(), }, .arraySize = 0, },
1347                 {.name = "BIZ_SCENE", .t = HISYSEVENT_INT32,
1348                     .v = { .i32 = static_cast<int32_t>(DiscoverScene::DM_GET_DEVICE_INFO), }, .arraySize = 0, },
1349                 {.name = "BIZ_STAGE", .t = HISYSEVENT_INT32, .v = { .i32 = DEFAULT_STAGE, }, .arraySize = 0, },
1350                 {.name = "STAGE_RES", .t = HISYSEVENT_INT32,
1351                     .v = { .i32 = static_cast<int32_t>(StageRes::STAGE_FAIL), }, .arraySize = 0, },
1352                 {.name = "BIZ_STATE", .t = HISYSEVENT_INT32,
1353                     .v = { .i32 = static_cast<int32_t>(BizState::BIZ_STATE_END), }, .arraySize = 0, },
1354                 {.name = "LOCAL_UDID", .t = HISYSEVENT_STRING,
1355                     .v = { .s = (char *)localUdid.c_str() }, .arraySize = 0, },
1356                 {.name = "DEV_TYPE", .t = HISYSEVENT_STRING,
1357                     .v = { .s = (char *)devType.c_str() }, .arraySize = 0, },
1358                 {.name = "PEER_UDID", .t = HISYSEVENT_STRING,
1359                     .v = { .s = (char *)peerUdid.c_str() }, .arraySize = 0, },
1360                 {.name = "PEER_NET_ID", .t = HISYSEVENT_STRING,
1361                     .v = { .s = (char *)peerNetId.c_str() }, .arraySize = 0, },
1362                 {.name = "ERROR_CODE", .t = HISYSEVENT_INT32, .v = { .i32 = GetErrCode(errCode), }, .arraySize = 0, },
1363             };
1364             size_t len = sizeof(params) / sizeof(params[0]);
1365             res = OH_HiSysEvent_Write(
1366                 OHOS::HiviewDFX::HiSysEvent::Domain::DISTRIBUTED_DEVICE_MANAGER,
1367                 DM_AUTHCATION_BEHAVIOR, HISYSEVENT_BEHAVIOR, params, len);
1368         }
1369     }
1370     if (res != DM_OK) {
1371         LOGE("ReportGetDeviceInfo error, res:%{public}d", res);
1372         return;
1373     }
1374 }
1375 
ConvertHexToString(uint16_t hex)1376 std::string DmRadarHelper::ConvertHexToString(uint16_t hex)
1377 {
1378     std::stringstream str;
1379     int32_t with = 3;
1380     str << std::hex << std::setw(with) << std::setfill('0') << hex;
1381     std::string hexStr = str.str();
1382     transform(hexStr.begin(), hexStr.end(), hexStr.begin(), ::toupper);
1383     return hexStr;
1384 }
1385 
GetDeviceInfoList(std::vector<DmDeviceInfo> & deviceInfoList)1386 std::string DmRadarHelper::GetDeviceInfoList(std::vector<DmDeviceInfo> &deviceInfoList)
1387 {
1388     cJSON *deviceInfoJson = cJSON_CreateArray();
1389     if (deviceInfoJson == nullptr) {
1390         LOGE("deviceInfoJson is nullptr.");
1391         return "";
1392     }
1393     for (size_t i = 0; i < deviceInfoList.size(); i++) {
1394         cJSON *object = cJSON_CreateObject();
1395         if (object == nullptr) {
1396             LOGE("object is nullptr.");
1397             cJSON_Delete(deviceInfoJson);
1398             return "";
1399         }
1400         std::string devType = ConvertHexToString(deviceInfoList[i].deviceTypeId);
1401         cJSON_AddStringToObject(object, "PEER_DEV_TYPE", devType.c_str());
1402         cJSON_AddItemToArray(deviceInfoJson, object);
1403     }
1404     char *deviceInfoStr = cJSON_PrintUnformatted(deviceInfoJson);
1405     if (deviceInfoStr == nullptr) {
1406         LOGE("deviceInfoStr is nullptr.");
1407         cJSON_Delete(deviceInfoJson);
1408         return "";
1409     }
1410     std::string devInfoStr = std::string(deviceInfoStr);
1411     cJSON_Delete(deviceInfoJson);
1412     cJSON_free(deviceInfoStr);
1413     return devInfoStr;
1414 }
1415 
GetAnonyUdid(std::string udid)1416 std::string DmRadarHelper::GetAnonyUdid(std::string udid)
1417 {
1418     if (udid.empty() || udid.length() < INVALID_UDID_LENGTH) {
1419         return "unknown";
1420     }
1421     return udid.substr(0, SUBSTR_UDID_LENGTH) + "**" + udid.substr(udid.length() - SUBSTR_UDID_LENGTH);
1422 }
1423 
GetAnonyLocalUdid()1424 std::string DmRadarHelper::GetAnonyLocalUdid()
1425 {
1426     char localDeviceId[DEVICE_UUID_LENGTH] = {0};
1427     GetDevUdid(localDeviceId, DEVICE_UUID_LENGTH);
1428     return GetAnonyUdid(std::string(localDeviceId));
1429 }
1430 
GetErrCode(int32_t errCode)1431 int32_t DmRadarHelper::GetErrCode(int32_t errCode)
1432 {
1433     auto flag = MAP_ERROR_CODE.find(errCode);
1434     if (flag == MAP_ERROR_CODE.end()) {
1435         return errCode;
1436     }
1437     return flag->second;
1438 }
1439 
GetApiType()1440 int32_t DmRadarHelper::GetApiType()
1441 {
1442     AccessTokenID tokenCaller = IPCSkeleton::GetCallingTokenID();
1443     if (tokenCaller == 0) {
1444         LOGE("GetApiType GetCallingTokenID error.");
1445         return static_cast<int32_t>(ApiType::API_UNKNOW);
1446     }
1447     ATokenTypeEnum tokenTypeFlag = AccessTokenKit::GetTokenTypeFlag(tokenCaller);
1448     if (tokenTypeFlag == ATokenTypeEnum::TOKEN_HAP) {
1449         return static_cast<int32_t>(ApiType::API_JS);
1450     } else if (tokenTypeFlag == ATokenTypeEnum::TOKEN_NATIVE) {
1451         return static_cast<int32_t>(ApiType::API_NATIVE);
1452     }
1453     return static_cast<int32_t>(ApiType::API_UNKNOW);
1454 }
1455 
CreateDmRadarInstance()1456 IDmRadarHelper *CreateDmRadarInstance()
1457 {
1458     return &DmRadarHelper::GetInstance();
1459 }
1460 } // namespace DistributedHardware
1461 } // namespace OHOS