• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "mechbodycontrollerstub_fuzzer.h"
17 
18 #include <cstddef>
19 #include <cstdint>
20 #include <cstring>
21 #include <string>
22 
23 #include "mechbody_controller_stub.h"
24 #include "mechbody_controller_service.h"
25 #include "mechbody_controller_ipc_interface_code.h"
26 #include "mechbody_controller_log.h"
27 #include "ipc_skeleton.h"
28 #include "message_option.h"
29 #include "message_parcel.h"
30 #include "securec.h"
31 #include "accesstoken_kit.h"
32 #include "nativetoken_kit.h"
33 #include "token_setproc.h"
34 #include "system_ability.h"
35 
36 namespace OHOS {
37 using namespace OHOS::MechBodyController;
GetInstance()38 MechBodyControllerService& MechBodyControllerService::GetInstance()
39 {
40     static auto instance = new MechBodyControllerService();
41     return *instance;
42 }
43 
MechBodyControllerService()44 MechBodyControllerService::MechBodyControllerService()
45 {
46 }
47 
~MechBodyControllerService()48 MechBodyControllerService::~MechBodyControllerService()
49 {
50 }
51 
OnDeviceConnected(int32_t mechId)52 int32_t MechBodyControllerService::OnDeviceConnected(int32_t mechId)
53 {
54     return 0;
55 }
56 
RegisterAttachStateChangeCallback(const sptr<IRemoteObject> callback)57 int32_t MechBodyControllerService::RegisterAttachStateChangeCallback(const sptr<IRemoteObject> callback)
58 {
59     return 0;
60 }
61 
UnRegisterAttachStateChangeCallback()62 int32_t MechBodyControllerService::UnRegisterAttachStateChangeCallback()
63 {
64     return 0;
65 }
66 
OnAttachStateChange(const AttachmentState & attachmentState,const MechInfo & mechInfo)67 int32_t MechBodyControllerService::OnAttachStateChange(const AttachmentState &attachmentState,
68     const MechInfo &mechInfo)
69 {
70     return 0;
71 }
72 
GetAttachedDevices(std::set<MechInfo> & mechInfo)73 int32_t MechBodyControllerService::GetAttachedDevices(std::set<MechInfo> &mechInfo)
74 {
75     return 0;
76 }
77 
SetUserOperation(const std::shared_ptr<Operation> & operation,const std::string & mac,const std::string & param)78 int32_t MechBodyControllerService::SetUserOperation(const std::shared_ptr<Operation> &operation,
79     const std::string &mac, const std::string &param)
80 {
81     return 0;
82 }
83 
SetTrackingEnabled(bool & isEnabled)84 int32_t MechBodyControllerService::SetTrackingEnabled(bool &isEnabled)
85 {
86     return 0;
87 }
88 
GetTrackingEnabled(bool & isEnabled)89 int32_t MechBodyControllerService::GetTrackingEnabled(bool &isEnabled)
90 {
91     return 0;
92 }
93 
RegisterTrackingEventCallback(sptr<IRemoteObject> callback)94 int32_t MechBodyControllerService::RegisterTrackingEventCallback(sptr<IRemoteObject> callback)
95 {
96     return 0;
97 }
98 
UnRegisterTrackingEventCallback()99 int32_t MechBodyControllerService::UnRegisterTrackingEventCallback()
100 {
101     return 0;
102 }
103 
SetTrackingLayout(CameraTrackingLayout & cameraTrackingLayout)104 int32_t MechBodyControllerService::SetTrackingLayout(CameraTrackingLayout &cameraTrackingLayout)
105 {
106     return 0;
107 }
108 
GetTrackingLayout(CameraTrackingLayout & cameraTrackingLayoutb)109 int32_t MechBodyControllerService::GetTrackingLayout(CameraTrackingLayout &cameraTrackingLayoutb)
110 {
111     return 0;
112 }
113 
RegisterCmdChannel(const sptr<IRemoteObject> callback)114 int32_t MechBodyControllerService::RegisterCmdChannel(const sptr<IRemoteObject> callback)
115 {
116     return 0;
117 }
118 
RotateByDegree(const int32_t & mechId,std::string & cmdId,const std::shared_ptr<RotateByDegreeParam> & rotateByDegreeParam)119 int32_t MechBodyControllerService::RotateByDegree(const int32_t &mechId, std::string &cmdId,
120     const std::shared_ptr<RotateByDegreeParam> &rotateByDegreeParam)
121 {
122     return 0;
123 }
124 
RotateToEulerAngles(const int32_t & mechId,std::string & cmdId,const std::shared_ptr<RotateToEulerAnglesParam> & rotateToEulerAnglesParam)125 int32_t MechBodyControllerService::RotateToEulerAngles(const int32_t &mechId, std::string &cmdId,
126     const std::shared_ptr<RotateToEulerAnglesParam> &rotateToEulerAnglesParam)
127 {
128     return 0;
129 }
130 
GetMaxRotationTime(const int32_t & mechId,std::shared_ptr<TimeLimit> & speedLimit)131 int32_t MechBodyControllerService::GetMaxRotationTime(const int32_t &mechId, std::shared_ptr<TimeLimit> &speedLimit)
132 {
133     return 0;
134 }
135 
GetMaxRotationSpeed(const int32_t & mechId,RotateSpeedLimit & speedLimit)136 int32_t MechBodyControllerService::GetMaxRotationSpeed(const int32_t &mechId, RotateSpeedLimit &speedLimit)
137 {
138     return 0;
139 }
140 
RotateBySpeed(const int32_t & mechId,std::string & cmdId,const std::shared_ptr<RotateBySpeedParam> & rotateBySpeedParam)141 int32_t MechBodyControllerService::RotateBySpeed(const int32_t &mechId, std::string &cmdId,
142     const std::shared_ptr<RotateBySpeedParam> &rotateBySpeedParam)
143 {
144     return 0;
145 }
146 
StopMoving(const int32_t & mechId,std::string & cmdId)147 int32_t MechBodyControllerService::StopMoving(const int32_t &mechId, std::string &cmdId)
148 {
149     return 0;
150 }
151 
GetRotationAngles(const int32_t & mechId,std::shared_ptr<EulerAngles> & eulerAngles)152 int32_t MechBodyControllerService::GetRotationAngles(const int32_t &mechId, std::shared_ptr<EulerAngles> &eulerAngles)
153 {
154     return 0;
155 }
156 
GetRotationDegreeLimits(const int32_t & mechId,RotateDegreeLimit & rotationLimit)157 int32_t MechBodyControllerService::GetRotationDegreeLimits(const int32_t &mechId, RotateDegreeLimit &rotationLimit)
158 {
159     return 0;
160 }
161 
GetRotationAxesStatus(const int32_t & mechId,RotationAxesStatus & axesStatus)162 int32_t MechBodyControllerService::GetRotationAxesStatus(const int32_t &mechId, RotationAxesStatus &axesStatus)
163 {
164     return 0;
165 }
166 
RegisterRotationAxesStatusChangeCallback(const sptr<IRemoteObject> callback)167 int32_t MechBodyControllerService::RegisterRotationAxesStatusChangeCallback(const sptr<IRemoteObject> callback)
168 {
169     return 0;
170 }
171 
UnRegisterRotationAxesStatusChangeCallback()172 int32_t MechBodyControllerService::UnRegisterRotationAxesStatusChangeCallback()
173 {
174     return 0;
175 }
176 
AttachStateChangeListenOnInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)177 void AttachStateChangeListenOnInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
178                                             const uint8_t *data,
179                                             size_t size)
180 {
181     uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::ATTACH_STATE_CHANGE_LISTEN_ON);
182     MessageParcel datas;
183     datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
184     datas.WriteBuffer(data, size);
185     datas.RewindRead(0);
186     MessageParcel reply;
187     MessageOption option;
188 
189     mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
190 }
191 
AttachStateChangeListenOffInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)192 void AttachStateChangeListenOffInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
193                                              const uint8_t *data,
194                                              size_t size)
195 {
196     uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::ATTACH_STATE_CHANGE_LISTEN_OFF);
197     MessageParcel datas;
198     datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
199     datas.WriteBuffer(data, size);
200     datas.RewindRead(0);
201     MessageParcel reply;
202     MessageOption option;
203 
204     mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
205 }
206 
GetAttachedDevicesInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)207 void GetAttachedDevicesInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
208                                      const uint8_t *data,
209                                      size_t size)
210 {
211     uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::GET_ATTACHED_DEVICES);
212     MessageParcel datas;
213     datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
214     datas.WriteBuffer(data, size);
215     datas.RewindRead(0);
216     MessageParcel reply;
217     MessageOption option;
218 
219     mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
220 }
221 
SetUserOperationInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)222 void SetUserOperationInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
223                                    const uint8_t *data,
224                                    size_t size)
225 {
226     uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::SET_USER_OPERATION);
227     MessageParcel datas;
228     datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
229     datas.WriteBuffer(data, size);
230     datas.RewindRead(0);
231     MessageParcel reply;
232     MessageOption option;
233 
234     mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
235 }
236 
SetCameraTrackingEnabledInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)237 void SetCameraTrackingEnabledInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
238                                            const uint8_t *data,
239                                            size_t size)
240 {
241     uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::SET_CAMERA_TRACKING_ENABLED);
242     MessageParcel datas;
243     datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
244     datas.WriteBuffer(data, size);
245     datas.RewindRead(0);
246     MessageParcel reply;
247     MessageOption option;
248 
249     mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
250 }
251 
GetCameraTrackingEnabledInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)252 void GetCameraTrackingEnabledInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
253                                            const uint8_t *data,
254                                            size_t size)
255 {
256     uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::GET_CAMERA_TRACKING_ENABLED);
257     MessageParcel datas;
258     datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
259     datas.WriteBuffer(data, size);
260     datas.RewindRead(0);
261     MessageParcel reply;
262     MessageOption option;
263 
264     mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
265 }
266 
TrackingEventListenOnInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)267 void TrackingEventListenOnInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
268                                         const uint8_t *data,
269                                         size_t size)
270 {
271     uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::TRACKING_EVENT_LISTEN_ON);
272     MessageParcel datas;
273     datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
274     datas.WriteBuffer(data, size);
275     datas.RewindRead(0);
276     MessageParcel reply;
277     MessageOption option;
278 
279     mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
280 }
281 
TrackingEventListenOffInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)282 void TrackingEventListenOffInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
283                                          const uint8_t *data,
284                                          size_t size)
285 {
286     uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::TRACKING_EVENT_LISTEN_OFF);
287     MessageParcel datas;
288     datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
289     datas.WriteBuffer(data, size);
290     datas.RewindRead(0);
291     MessageParcel reply;
292     MessageOption option;
293 
294     mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
295 }
296 
SetCameraTrackingLayoutInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)297 void SetCameraTrackingLayoutInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
298                                           const uint8_t *data,
299                                           size_t size)
300 {
301     uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::SET_CAMERA_TRACKING_LAYOUT);
302     MessageParcel datas;
303     datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
304     datas.WriteBuffer(data, size);
305     datas.RewindRead(0);
306     MessageParcel reply;
307     MessageOption option;
308 
309     mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
310 }
311 
GetCameraTrackingLayoutInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)312 void GetCameraTrackingLayoutInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
313                                           const uint8_t *data,
314                                           size_t size)
315 {
316     uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::GET_CAMERA_TRACKING_LAYOUT);
317     MessageParcel datas;
318     datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
319     datas.WriteBuffer(data, size);
320     datas.RewindRead(0);
321     MessageParcel reply;
322     MessageOption option;
323 
324     mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
325 }
326 
RegisterCmdChannelInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)327 void RegisterCmdChannelInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
328                                      const uint8_t *data,
329                                      size_t size)
330 {
331     uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::REGISTER_CMD_CHANNEL);
332     MessageParcel datas;
333     datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
334     datas.WriteBuffer(data, size);
335     datas.RewindRead(0);
336     MessageParcel reply;
337     MessageOption option;
338 
339     mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
340 }
341 
RotateByDegreeInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)342 void RotateByDegreeInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
343                                  const uint8_t *data,
344                                  size_t size)
345 {
346     uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::ROTATE_BY_DEGREE);
347     MessageParcel datas;
348     datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
349     datas.WriteBuffer(data, size);
350     datas.RewindRead(0);
351     MessageParcel reply;
352     MessageOption option;
353 
354     mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
355 }
356 
GetMaxRotationTimeInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)357 void GetMaxRotationTimeInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
358                                      const uint8_t *data,
359                                      size_t size)
360 {
361     uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::GET_MAX_ROTATION_TIME);
362     MessageParcel datas;
363     datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
364     datas.WriteBuffer(data, size);
365     datas.RewindRead(0);
366     MessageParcel reply;
367     MessageOption option;
368 
369     mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
370 }
371 
GetMaxRotationSpeedInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)372 void GetMaxRotationSpeedInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
373                                       const uint8_t *data,
374                                       size_t size)
375 {
376     uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::GET_MAX_ROTATION_SPEED);
377     MessageParcel datas;
378     datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
379     datas.WriteBuffer(data, size);
380     datas.RewindRead(0);
381     MessageParcel reply;
382     MessageOption option;
383 
384     mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
385 }
386 
RotateBySpeedInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)387 void RotateBySpeedInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
388                                 const uint8_t *data,
389                                 size_t size)
390 {
391     uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::ROTATE_BY_SPEED);
392     MessageParcel datas;
393     datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
394     datas.WriteBuffer(data, size);
395     datas.RewindRead(0);
396     MessageParcel reply;
397     MessageOption option;
398 
399     mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
400 }
401 
StopMovingInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)402 void StopMovingInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
403                              const uint8_t *data,
404                              size_t size)
405 {
406     uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::STOP_MOVING);
407     MessageParcel datas;
408     datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
409     datas.WriteBuffer(data, size);
410     datas.RewindRead(0);
411     MessageParcel reply;
412     MessageOption option;
413 
414     mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
415 }
416 
GetRotationAnglesInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)417 void GetRotationAnglesInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
418                                     const uint8_t *data,
419                                     size_t size)
420 {
421     uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::GET_ROTATION_ANGLES);
422     MessageParcel datas;
423     datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
424     datas.WriteBuffer(data, size);
425     datas.RewindRead(0);
426     MessageParcel reply;
427     MessageOption option;
428 
429     mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
430 }
431 
GetRotationDegreeLimitsInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)432 void GetRotationDegreeLimitsInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
433                                           const uint8_t *data,
434                                           size_t size)
435 {
436     uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::GET_ROTATION_DEGREE_LIMITS);
437     MessageParcel datas;
438     datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
439     datas.WriteBuffer(data, size);
440     datas.RewindRead(0);
441     MessageParcel reply;
442     MessageOption option;
443 
444     mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
445 }
446 
GetRotationAxesStatusInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)447 void GetRotationAxesStatusInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
448                                         const uint8_t *data,
449                                         size_t size)
450 {
451     uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::GET_ROTATION_AXES_STATUS);
452     MessageParcel datas;
453     datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
454     datas.WriteBuffer(data, size);
455     datas.RewindRead(0);
456     MessageParcel reply;
457     MessageOption option;
458 
459     mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
460 }
461 
RotationAxesStatusChangeListenOnInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)462 void RotationAxesStatusChangeListenOnInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
463                                                    const uint8_t *data,
464                                                    size_t size)
465 {
466     uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::ROTATION_AXES_STATUS_CHANGE_LISTEN_ON);
467     MessageParcel datas;
468     datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
469     datas.WriteBuffer(data, size);
470     datas.RewindRead(0);
471     MessageParcel reply;
472     MessageOption option;
473 
474     mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
475 }
476 
RotationAxesStatusChangeListenOffInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)477 void RotationAxesStatusChangeListenOffInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
478                                                     const uint8_t *data,
479                                                     size_t size)
480 {
481     uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::ROTATION_AXES_STATUS_CHANGE_LISTEN_OFF);
482     MessageParcel datas;
483     datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
484     datas.WriteBuffer(data, size);
485     datas.RewindRead(0);
486     MessageParcel reply;
487     MessageOption option;
488 
489     mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
490 }
491 
RotateToEulerAnglesInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,const uint8_t * data,size_t size)492 void RotateToEulerAnglesInnerFuzzTest(std::shared_ptr<MechBodyControllerStub> mechBodyControllerStubPtr,
493     const uint8_t *data,
494     size_t size)
495 {
496     uint32_t code = static_cast<uint32_t>(IMechBodyControllerCode::ROTATE_BY_DEGREE);
497     MessageParcel datas;
498     datas.WriteInterfaceToken(MECH_SERVICE_IPC_TOKEN);
499     datas.WriteBuffer(data, size);
500     datas.RewindRead(0);
501     MessageParcel reply;
502     MessageOption option;
503 
504     mechBodyControllerStubPtr->OnRemoteRequest(code, datas, reply, option);
505 }
506 }
507 
508 /* Fuzzer entry point */
LLVMFuzzerTestOneInput(const uint8_t * data,size_t size)509 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
510 {
511     /* Run your code on data */
512     auto mechBodyControllerStubPtr = std::make_shared<OHOS::MechBodyControllerService>();
513     OHOS::AttachStateChangeListenOnInnerFuzzTest(mechBodyControllerStubPtr, data, size);
514     OHOS::AttachStateChangeListenOffInnerFuzzTest(mechBodyControllerStubPtr, data, size);
515     OHOS::GetAttachedDevicesInnerFuzzTest(mechBodyControllerStubPtr, data, size);
516     OHOS::SetUserOperationInnerFuzzTest(mechBodyControllerStubPtr, data, size);
517     OHOS::SetCameraTrackingEnabledInnerFuzzTest(mechBodyControllerStubPtr, data, size);
518     OHOS::GetCameraTrackingEnabledInnerFuzzTest(mechBodyControllerStubPtr, data, size);
519     OHOS::TrackingEventListenOnInnerFuzzTest(mechBodyControllerStubPtr, data, size);
520     OHOS::TrackingEventListenOffInnerFuzzTest(mechBodyControllerStubPtr, data, size);
521     OHOS::SetCameraTrackingLayoutInnerFuzzTest(mechBodyControllerStubPtr, data, size);
522     OHOS::GetCameraTrackingLayoutInnerFuzzTest(mechBodyControllerStubPtr, data, size);
523     OHOS::RegisterCmdChannelInnerFuzzTest(mechBodyControllerStubPtr, data, size);
524     OHOS::RotateByDegreeInnerFuzzTest(mechBodyControllerStubPtr, data, size);
525     OHOS::GetMaxRotationTimeInnerFuzzTest(mechBodyControllerStubPtr, data, size);
526     OHOS::GetMaxRotationSpeedInnerFuzzTest(mechBodyControllerStubPtr, data, size);
527     OHOS::RotateBySpeedInnerFuzzTest(mechBodyControllerStubPtr, data, size);
528     OHOS::StopMovingInnerFuzzTest(mechBodyControllerStubPtr, data, size);
529     OHOS::GetRotationAnglesInnerFuzzTest(mechBodyControllerStubPtr, data, size);
530     OHOS::GetRotationDegreeLimitsInnerFuzzTest(mechBodyControllerStubPtr, data, size);
531     OHOS::GetRotationAxesStatusInnerFuzzTest(mechBodyControllerStubPtr, data, size);
532     OHOS::RotationAxesStatusChangeListenOnInnerFuzzTest(mechBodyControllerStubPtr, data, size);
533     OHOS::RotationAxesStatusChangeListenOffInnerFuzzTest(mechBodyControllerStubPtr, data, size);
534     OHOS::RotateToEulerAnglesInnerFuzzTest(mechBodyControllerStubPtr, data, size);
535     return 0;
536 }