1 /*
2 * Copyright (c) 2022 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include <iostream>
17 #include <cstddef>
18 #include <cstdint>
19 #include "audio_manager_base.h"
20 #include "audio_policy_manager_listener_stub_impl.h"
21 #include "audio_server.h"
22 #include "message_parcel.h"
23 #include "pulseaudio_ipc_interface_code.h"
24 #include "audio_service_types.h"
25 #include "../fuzz_utils.h"
26 using namespace std;
27 namespace OHOS {
28 namespace AudioStandard {
29 FuzzUtils &g_fuzzUtils = FuzzUtils::GetInstance();
30 constexpr int32_t OFFSET = 4;
31 const std::u16string FORMMGR_INTERFACE_TOKEN = u"OHOS.AudioStandard.IAudioPolicy";
32 const int32_t SYSTEM_ABILITY_ID = 3001;
33 const bool RUN_ON_CREATE = false;
34 const int32_t NUM_2 = 2;
35 const int32_t LIMITSIZE = 4;
36 const int32_t SHIFT_LEFT_8 = 8;
37 const int32_t SHIFT_LEFT_16 = 16;
38 const int32_t SHIFT_LEFT_24 = 24;
39 const uint32_t LIMIT_MIN = 0;
40 const int32_t AUDIO_DISTRIBUTED_SERVICE_ID = 3001;
41 const int32_t AUDIO_POLICY_SERVICE_ID = 3009;
42 const uint32_t LIMIT_MAX = static_cast<uint32_t>(AudioServerInterfaceCode::AUDIO_SERVER_CODE_MAX);
43 typedef void (*TestPtr)(const uint8_t *, size_t);
44
45 const vector<std::string> g_testKeys = {
46 "PCM_DUMP",
47 "hpae_effect",
48 "test",
49 };
50 const vector<DeviceType> g_testDeviceTypes = {
51 DEVICE_TYPE_NONE,
52 DEVICE_TYPE_INVALID,
53 DEVICE_TYPE_EARPIECE,
54 DEVICE_TYPE_SPEAKER,
55 DEVICE_TYPE_WIRED_HEADSET,
56 DEVICE_TYPE_WIRED_HEADPHONES,
57 DEVICE_TYPE_BLUETOOTH_SCO,
58 DEVICE_TYPE_BLUETOOTH_A2DP,
59 DEVICE_TYPE_BLUETOOTH_A2DP_IN,
60 DEVICE_TYPE_MIC,
61 DEVICE_TYPE_WAKEUP,
62 DEVICE_TYPE_USB_HEADSET,
63 DEVICE_TYPE_DP,
64 DEVICE_TYPE_REMOTE_CAST,
65 DEVICE_TYPE_USB_DEVICE,
66 DEVICE_TYPE_ACCESSORY,
67 DEVICE_TYPE_REMOTE_DAUDIO,
68 DEVICE_TYPE_HDMI,
69 DEVICE_TYPE_LINE_DIGITAL,
70 DEVICE_TYPE_NEARLINK,
71 DEVICE_TYPE_NEARLINK_IN,
72 DEVICE_TYPE_FILE_SINK,
73 DEVICE_TYPE_FILE_SOURCE,
74 DEVICE_TYPE_EXTERN_CABLE,
75 DEVICE_TYPE_DEFAULT,
76 DEVICE_TYPE_USB_ARM_HEADSET,
77 DEVICE_TYPE_MAX
78 };
79 const vector<DeviceFlag> g_testDeviceFlags = {
80 NONE_DEVICES_FLAG,
81 OUTPUT_DEVICES_FLAG,
82 INPUT_DEVICES_FLAG,
83 ALL_DEVICES_FLAG,
84 DISTRIBUTED_OUTPUT_DEVICES_FLAG,
85 DISTRIBUTED_INPUT_DEVICES_FLAG,
86 ALL_DISTRIBUTED_DEVICES_FLAG,
87 ALL_L_D_DEVICES_FLAG,
88 DEVICE_FLAG_MAX
89 };
90 const vector<HdiIdType> g_testHdiIdTypes = {
91 HDI_ID_TYPE_PRIMARY,
92 HDI_ID_TYPE_FAST,
93 HDI_ID_TYPE_REMOTE,
94 HDI_ID_TYPE_REMOTE_FAST,
95 HDI_ID_TYPE_FILE,
96 HDI_ID_TYPE_BLUETOOTH,
97 HDI_ID_TYPE_OFFLOAD,
98 HDI_ID_TYPE_EAC3,
99 HDI_ID_TYPE_MULTICHANNEL,
100 HDI_ID_TYPE_WAKEUP,
101 HDI_ID_TYPE_ACCESSORY,
102 HDI_ID_TYPE_NUM,
103 };
104
105 class DataTransferStateChangeCallbackInnerFuzzTest : public DataTransferStateChangeCallbackInner {
106 public:
OnDataTransferStateChange(const int32_t & callbackId,const AudioRendererDataTransferStateChangeInfo & info)107 void OnDataTransferStateChange(const int32_t &callbackId,
108 const AudioRendererDataTransferStateChangeInfo &info) override {}
OnMuteStateChange(const int32_t & callbackId,const int32_t & uid,const uint32_t & sessionId,const bool & isMuted)109 void OnMuteStateChange(const int32_t &callbackId, const int32_t &uid,
110 const uint32_t &sessionId, const bool &isMuted) override {}
111 };
112 template<class T>
GetArrLength(T & arr)113 uint32_t GetArrLength(T& arr)
114 {
115 if (arr == nullptr) {
116 AUDIO_INFO_LOG("%{public}s: The array length is equal to 0", __func__);
117 return 0;
118 }
119 return sizeof(arr) / sizeof(arr[0]);
120 }
Convert2Uint32(const uint8_t * ptr)121 uint32_t Convert2Uint32(const uint8_t *ptr)
122 {
123 if (ptr == nullptr) {
124 return 0;
125 }
126 /* Move the 0th digit to the left by 24 bits, the 1st digit to the left by 16 bits,
127 the 2nd digit to the left by 8 bits, and the 3rd digit not to the left */
128 return (ptr[0] << SHIFT_LEFT_24) | (ptr[1] << SHIFT_LEFT_16) | (ptr[2] << SHIFT_LEFT_8) | (ptr[3]);
129 }
130
AudioServerFuzzTest(const uint8_t * rawData,size_t size)131 void AudioServerFuzzTest(const uint8_t *rawData, size_t size)
132 {
133 if (rawData == nullptr || size < LIMITSIZE) {
134 return;
135 }
136 uint32_t code = Convert2Uint32(rawData) % (LIMIT_MAX - LIMIT_MIN + 1) + LIMIT_MIN;
137 rawData = rawData + OFFSET;
138 size = size - OFFSET;
139 MessageParcel data;
140 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
141 data.WriteBuffer(rawData, size);
142 data.RewindRead(0);
143 MessageParcel reply;
144 MessageOption option;
145 std::shared_ptr<AudioServer> AudioServerPtr =
146 std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
147 if (code == static_cast<uint32_t>(AudioServerInterfaceCode::SET_PARAMETER_CALLBACK)) {
148 sptr<AudioPolicyManagerListenerStubImpl> focusListenerStub =
149 new(std::nothrow) AudioPolicyManagerListenerStubImpl();
150 sptr<IRemoteObject> object = focusListenerStub->AsObject();
151 AudioServerPtr->SetParameterCallback(object);
152 return;
153 }
154 if (code == static_cast<uint32_t>(AudioServerInterfaceCode::GET_ASR_AEC_MODE)) {
155 int32_t asrAecMode = 0;
156 AudioServerPtr->SetAsrAecMode(asrAecMode);
157 AudioServerPtr->OnRemoteRequest(code, data, reply, option);
158 return;
159 }
160 AudioServerPtr->OnRemoteRequest(code, data, reply, option);
161 if (size < LIMITSIZE) {
162 return;
163 }
164 std::string netWorkId(reinterpret_cast<const char*>(rawData), size - 1);
165 AudioParamKey key = *reinterpret_cast<const AudioParamKey *>(rawData);
166 std::string condition(reinterpret_cast<const char*>(rawData), size - 1);
167 std::string value(reinterpret_cast<const char*>(rawData), size - 1);
168 AudioServerPtr->OnRenderSinkParamChange(netWorkId, key, condition, value);
169 }
170
Convert2Float(const uint8_t * ptr)171 float Convert2Float(const uint8_t *ptr)
172 {
173 float floatValue = static_cast<float>(*ptr);
174 return floatValue / 128.0f - 1.0f;
175 }
176
AudioServerOffloadSetVolumeFuzzTest(const uint8_t * rawData,size_t size)177 void AudioServerOffloadSetVolumeFuzzTest(const uint8_t *rawData, size_t size)
178 {
179 if (rawData == nullptr || size < LIMITSIZE) {
180 return;
181 }
182 MessageParcel data;
183 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
184 float volume = Convert2Float(rawData);
185 data.WriteFloat(volume);
186 MessageParcel reply;
187 MessageOption option;
188 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
189 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::OFFLOAD_SET_VOLUME),
190 data, reply, option);
191 }
192
AudioServerNotifyStreamVolumeChangedFuzzTest(const uint8_t * rawData,size_t size)193 void AudioServerNotifyStreamVolumeChangedFuzzTest(const uint8_t *rawData, size_t size)
194 {
195 if (rawData == nullptr || size < LIMITSIZE) {
196 return;
197 }
198 MessageParcel data;
199 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
200 uint32_t sizeMs = *reinterpret_cast<const uint32_t*>(rawData);
201 data.WriteUint32(sizeMs);
202 MessageParcel reply;
203 MessageOption option;
204 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
205 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::NOTIFY_STREAM_VOLUME_CHANGED),
206 data, reply, option);
207 }
208
AudioServerResetRouteForDisconnectFuzzTest(const uint8_t * rawData,size_t size)209 void AudioServerResetRouteForDisconnectFuzzTest(const uint8_t *rawData, size_t size)
210 {
211 if (rawData == nullptr || size < LIMITSIZE) {
212 return;
213 }
214 MessageParcel data;
215 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
216 int32_t deviceType = *reinterpret_cast<const int32_t*>(rawData);
217 data.WriteInt32(deviceType);
218 MessageParcel reply;
219 MessageOption option;
220 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
221 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::RESET_ROUTE_FOR_DISCONNECT),
222 data, reply, option);
223 }
224
AudioServerGetEffectLatencyTest(const uint8_t * rawData,size_t size)225 void AudioServerGetEffectLatencyTest(const uint8_t *rawData, size_t size)
226 {
227 if (rawData == nullptr || size < LIMITSIZE) {
228 return;
229 }
230 MessageParcel data;
231 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
232 std::string sessionId(reinterpret_cast<const char*>(rawData), size);
233 data.WriteString(sessionId);
234 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
235 MessageParcel reply;
236 MessageOption option;
237 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::GET_EFFECT_LATENCY),
238 data, reply, option);
239 }
240
AudioServerUpdateLatencyTimestampTest(const uint8_t * rawData,size_t size)241 void AudioServerUpdateLatencyTimestampTest(const uint8_t *rawData, size_t size)
242 {
243 if (rawData == nullptr || size < LIMITSIZE) {
244 return;
245 }
246 MessageParcel data;
247 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
248 std::string timestamp(reinterpret_cast<const char*>(rawData), size - 1);
249 bool isRenderer = *reinterpret_cast<const bool*>(rawData);
250 data.WriteString(timestamp);
251 data.WriteBool(isRenderer);
252 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
253 MessageParcel reply;
254 MessageOption option;
255 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::UPDATE_LATENCY_TIMESTAMP),
256 data, reply, option);
257 }
258
AudioServerGetMaxAmplitudeTest(const uint8_t * rawData,size_t size)259 void AudioServerGetMaxAmplitudeTest(const uint8_t *rawData, size_t size)
260 {
261 if (rawData == nullptr || size < LIMITSIZE) {
262 return;
263 }
264 MessageParcel data;
265 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
266 bool isOutputDevice = *reinterpret_cast<const bool*>(rawData);
267 int32_t deviceType = *reinterpret_cast<const int32_t*>(rawData);
268 data.WriteBool(isOutputDevice);
269 data.WriteInt32(deviceType);
270 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
271 MessageParcel reply;
272 MessageOption option;
273 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::GET_MAX_AMPLITUDE),
274 data, reply, option);
275 }
276
AudioServerResetAudioEndpointTest(const uint8_t * rawData,size_t size)277 void AudioServerResetAudioEndpointTest(const uint8_t *rawData, size_t size)
278 {
279 if (rawData == nullptr || size < LIMITSIZE) {
280 return;
281 }
282 MessageParcel data;
283 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
284 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
285 MessageParcel reply;
286 MessageOption option;
287 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::RESET_AUDIO_ENDPOINT),
288 data, reply, option);
289 }
290
AudioServerCreatePlaybackCapturerManagerTest(const uint8_t * rawData,size_t size)291 void AudioServerCreatePlaybackCapturerManagerTest(const uint8_t *rawData, size_t size)
292 {
293 if (rawData == nullptr || size < LIMITSIZE) {
294 return;
295 }
296 MessageParcel data;
297 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
298 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
299 MessageParcel reply;
300 MessageOption option;
301 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::CREATE_PLAYBACK_CAPTURER_MANAGER),
302 data, reply, option);
303 }
304
AudioServerSetOutputDeviceSinkTest(const uint8_t * rawData,size_t size)305 void AudioServerSetOutputDeviceSinkTest(const uint8_t *rawData, size_t size)
306 {
307 if (rawData == nullptr || size < LIMITSIZE) {
308 return;
309 }
310 MessageParcel data;
311 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
312 int32_t deviceType = *reinterpret_cast<const int32_t*>(rawData);
313 std::string sinkName(reinterpret_cast<const char*>(rawData), size - 1);
314 data.WriteInt32(deviceType);
315 data.WriteString(sinkName);
316 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
317 MessageParcel reply;
318 MessageOption option;
319 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::SET_OUTPUT_DEVICE_SINK),
320 data, reply, option);
321 }
322
AudioServerSetAudioMonoStateTest(const uint8_t * rawData,size_t size)323 void AudioServerSetAudioMonoStateTest(const uint8_t *rawData, size_t size)
324 {
325 if (rawData == nullptr || size < LIMITSIZE) {
326 return;
327 }
328 MessageParcel data;
329 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
330 bool audioMono = *reinterpret_cast<const bool*>(rawData);
331 data.WriteBool(audioMono);
332 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
333 MessageParcel reply;
334 MessageOption option;
335 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::SET_AUDIO_MONO_STATE),
336 data, reply, option);
337 }
338
AudioServerSetVoiceVolumeTest(const uint8_t * rawData,size_t size)339 void AudioServerSetVoiceVolumeTest(const uint8_t *rawData, size_t size)
340 {
341 if (rawData == nullptr || size < LIMITSIZE) {
342 return;
343 }
344 MessageParcel data;
345 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
346 float volume = *reinterpret_cast<const float*>(rawData);
347 data.WriteFloat(volume);
348 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
349 MessageParcel reply;
350 MessageOption option;
351 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::SET_VOICE_VOLUME),
352 data, reply, option);
353 }
354
AudioServerCheckRemoteDeviceStateTest(const uint8_t * rawData,size_t size)355 void AudioServerCheckRemoteDeviceStateTest(const uint8_t *rawData, size_t size)
356 {
357 if (rawData == nullptr || size < LIMITSIZE) {
358 return;
359 }
360 MessageParcel data;
361 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
362 std::string networkId(reinterpret_cast<const char*>(rawData), size - 1);
363 DeviceRole deviceRole = *reinterpret_cast<const DeviceRole*>(rawData);
364 bool isStartDevice = *reinterpret_cast<const bool*>(rawData);
365 data.WriteString(networkId);
366 data.WriteInt32(static_cast<int32_t>(deviceRole));
367 data.WriteBool(isStartDevice);
368 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
369 MessageParcel reply;
370 MessageOption option;
371 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::CHECK_REMOTE_DEVICE_STATE),
372 data, reply, option);
373 }
374
AudioServerNotifyDeviceInfoTest(const uint8_t * rawData,size_t size)375 void AudioServerNotifyDeviceInfoTest(const uint8_t *rawData, size_t size)
376 {
377 if (rawData == nullptr || size < LIMITSIZE) {
378 return;
379 }
380
381 MessageParcel data;
382 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
383 std::string networkId(reinterpret_cast<const char*>(rawData), size - 1);
384 bool connected = *reinterpret_cast<const bool*>(rawData);
385 data.WriteString(networkId);
386 data.WriteBool(connected);
387
388 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
389 MessageParcel reply;
390 MessageOption option;
391 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::NOTIFY_DEVICE_INFO),
392 data, reply, option);
393 }
394
AudioServerGetAudioParameterTest(const uint8_t * rawData,size_t size)395 void AudioServerGetAudioParameterTest(const uint8_t *rawData, size_t size)
396 {
397 if (rawData == nullptr || size < LIMITSIZE) {
398 return;
399 }
400
401 MessageParcel data;
402 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
403 std::string key(reinterpret_cast<const char*>(rawData), size - 1);
404 data.WriteString(key);
405 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
406 MessageParcel reply;
407 MessageOption option;
408 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::GET_AUDIO_PARAMETER),
409 data, reply, option);
410 }
411
AudioServerSetAudioParameterTest(const uint8_t * rawData,size_t size)412 void AudioServerSetAudioParameterTest(const uint8_t *rawData, size_t size)
413 {
414 if (rawData == nullptr || size < LIMITSIZE) {
415 return;
416 }
417
418 MessageParcel data;
419 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
420 std::string key(reinterpret_cast<const char*>(rawData), size - 1);
421 std::string value(reinterpret_cast<const char*>(rawData), size - 1);
422 data.WriteString(key);
423 data.WriteString(value);
424 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
425 MessageParcel reply;
426 MessageOption option;
427 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::SET_AUDIO_PARAMETER),
428 data, reply, option);
429 }
430
AudioServerSetMicrophoneMuteTest(const uint8_t * rawData,size_t size)431 void AudioServerSetMicrophoneMuteTest(const uint8_t *rawData, size_t size)
432 {
433 if (rawData == nullptr || size < LIMITSIZE) {
434 return;
435 }
436
437 MessageParcel data;
438 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
439 bool isMute = *reinterpret_cast<const bool*>(rawData);
440 data.WriteBool(isMute);
441 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
442 MessageParcel reply;
443 MessageOption option;
444 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::SET_MICROPHONE_MUTE),
445 data, reply, option);
446 }
447
AudioServerSetAudioBalanceValueTest(const uint8_t * rawData,size_t size)448 void AudioServerSetAudioBalanceValueTest(const uint8_t *rawData, size_t size)
449 {
450 if (rawData == nullptr || size < LIMITSIZE) {
451 return;
452 }
453 MessageParcel data;
454 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
455 float audioBalance = *reinterpret_cast<const float*>(rawData);
456 data.WriteFloat(audioBalance);
457 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
458 MessageParcel reply;
459 MessageOption option;
460 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::SET_AUDIO_BALANCE_VALUE),
461 data, reply, option);
462 }
463
AudioServerSetAudioSceneTest(const uint8_t * rawData,size_t size)464 void AudioServerSetAudioSceneTest(const uint8_t *rawData, size_t size)
465 {
466 if (rawData == nullptr || size < LIMITSIZE) {
467 return;
468 }
469 MessageParcel data;
470 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
471 AudioScene audioScene = *reinterpret_cast<const AudioScene*>(rawData);
472 data.WriteInt32(static_cast<int32_t>(audioScene));
473 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
474 MessageParcel reply;
475 MessageOption option;
476 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::SET_AUDIO_SCENE),
477 data, reply, option);
478 }
479
AudioServerSetOffloadModeTest(const uint8_t * rawData,size_t size)480 void AudioServerSetOffloadModeTest(const uint8_t *rawData, size_t size)
481 {
482 if (rawData == nullptr || size < LIMITSIZE) {
483 return;
484 }
485 MessageParcel data;
486 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
487 uint32_t sessionId = *reinterpret_cast<const uint32_t*>(rawData);
488 int32_t state = *reinterpret_cast<const int32_t*>(rawData);
489 bool isAppBack = *reinterpret_cast<const bool*>(rawData);
490 data.WriteUint32(sessionId);
491 data.WriteInt32(state);
492 data.WriteBool(isAppBack);
493 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
494 MessageParcel reply;
495 MessageOption option;
496 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::SET_OFFLOAD_MODE),
497 data, reply, option);
498 }
499
AudioServerUnsetOffloadTest(const uint8_t * rawData,size_t size)500 void AudioServerUnsetOffloadTest(const uint8_t *rawData, size_t size)
501 {
502 if (rawData == nullptr || size < LIMITSIZE) {
503 return;
504 }
505 MessageParcel data;
506 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
507 uint32_t sessionId = *reinterpret_cast<const uint32_t*>(rawData);
508 data.WriteUint32(sessionId);
509 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
510 MessageParcel reply;
511 MessageOption option;
512 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::UNSET_OFFLOAD_MODE),
513 data, reply, option);
514 }
515
AudioServerCheckHibernateStateTest(const uint8_t * rawData,size_t size)516 void AudioServerCheckHibernateStateTest(const uint8_t *rawData, size_t size)
517 {
518 if (rawData == nullptr || size < LIMITSIZE) {
519 return;
520 }
521 MessageParcel data;
522 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
523 bool hibernate = *reinterpret_cast<const bool*>(rawData);
524 data.WriteBool(hibernate);
525 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
526 MessageParcel reply;
527 MessageOption option;
528 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::CHECK_HIBERNATE_STATE),
529 data, reply, option);
530 }
531
AudioServerSetSessionMuteStateTest(const uint8_t * rawData,size_t size)532 void AudioServerSetSessionMuteStateTest(const uint8_t *rawData, size_t size)
533 {
534 if (rawData == nullptr || size < LIMITSIZE) {
535 return;
536 }
537 MessageParcel data;
538 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
539 uint32_t sessionId = 10;
540 data.WriteInt32(sessionId);
541 data.WriteBool(true);
542 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
543 MessageParcel reply;
544 MessageOption option;
545 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::SET_SESSION_MUTE_STATE),
546 data, reply, option);
547 }
548
AudioServerNotifyMuteStateChangeTest(const uint8_t * rawData,size_t size)549 void AudioServerNotifyMuteStateChangeTest(const uint8_t *rawData, size_t size)
550 {
551 if (rawData == nullptr || size < LIMITSIZE) {
552 return;
553 }
554
555 MessageParcel data;
556 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
557 uint32_t sessionId = 10;
558 data.WriteInt32(sessionId);
559 data.WriteBool(true);
560
561 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
562 MessageParcel reply;
563 MessageOption option;
564 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::NOTIFY_MUTE_STATE_CHANGE),
565 data, reply, option);
566 }
567
AudioServerAudioWorkgroupCreateTest(const uint8_t * rawData,size_t size)568 void AudioServerAudioWorkgroupCreateTest(const uint8_t *rawData, size_t size)
569 {
570 if (rawData == nullptr || size < LIMITSIZE) {
571 return;
572 }
573
574 MessageParcel data;
575 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
576 int32_t testPid = *reinterpret_cast<const int32_t*>(rawData);
577 data.WriteInt32(static_cast<int32_t>(testPid));
578
579 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
580 MessageParcel reply;
581 MessageOption option;
582 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::CREATE_AUDIOWORKGROUP),
583 data, reply, option);
584 }
585
AudioServerAudioWorkgroupReleaseTest(const uint8_t * rawData,size_t size)586 void AudioServerAudioWorkgroupReleaseTest(const uint8_t *rawData, size_t size)
587 {
588 if (rawData == nullptr || size < LIMITSIZE) {
589 return;
590 }
591
592 MessageParcel data;
593 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
594 int32_t testPid = *reinterpret_cast<const int32_t*>(rawData);
595 int32_t workgroupId = *reinterpret_cast<const int32_t*>(rawData);
596 data.WriteInt32(static_cast<int32_t>(testPid));
597 data.WriteInt32(static_cast<int32_t>(workgroupId));
598
599 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
600 MessageParcel reply;
601 MessageOption option;
602 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::RELEASE_AUDIOWORKGROUP),
603 data, reply, option);
604 }
605
AudioServerAudioWorkgroupAddThreadTest(const uint8_t * rawData,size_t size)606 void AudioServerAudioWorkgroupAddThreadTest(const uint8_t *rawData, size_t size)
607 {
608 if (rawData == nullptr || size < LIMITSIZE) {
609 return;
610 }
611
612 MessageParcel data;
613 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
614 int32_t testPid = *reinterpret_cast<const int32_t*>(rawData);
615 int32_t workgroupId = *reinterpret_cast<const int32_t*>(rawData);
616 int32_t tokenId = *reinterpret_cast<const int32_t*>(rawData);
617 data.WriteInt32(static_cast<int32_t>(testPid));
618 data.WriteInt32(static_cast<int32_t>(workgroupId));
619 data.WriteInt32(static_cast<int32_t>(tokenId));
620
621 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
622 MessageParcel reply;
623 MessageOption option;
624 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::ADD_THREAD_TO_AUDIOWORKGROUP),
625 data, reply, option);
626 }
627
AudioServerAudioWorkgroupRemoveThreadTest(const uint8_t * rawData,size_t size)628 void AudioServerAudioWorkgroupRemoveThreadTest(const uint8_t *rawData, size_t size)
629 {
630 if (rawData == nullptr || size < LIMITSIZE) {
631 return;
632 }
633
634 MessageParcel data;
635 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
636 int32_t testPid = *reinterpret_cast<const int32_t*>(rawData);
637 int32_t workgroupId = *reinterpret_cast<const int32_t*>(rawData);
638 int32_t tokenId = *reinterpret_cast<const int32_t*>(rawData);
639 data.WriteInt32(static_cast<int32_t>(testPid));
640 data.WriteInt32(static_cast<int32_t>(workgroupId));
641 data.WriteInt32(static_cast<int32_t>(tokenId));
642
643 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
644 MessageParcel reply;
645 MessageOption option;
646 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::REMOVE_THREAD_FROM_AUDIOWORKGROUP),
647 data, reply, option);
648 }
649
AudioServerAudioWorkgroupStartGroupTest(const uint8_t * rawData,size_t size)650 void AudioServerAudioWorkgroupStartGroupTest(const uint8_t *rawData, size_t size)
651 {
652 if (rawData == nullptr || size < LIMITSIZE) {
653 return;
654 }
655
656 MessageParcel data;
657 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
658 int32_t testPid = *reinterpret_cast<const int32_t*>(rawData);
659 int32_t workgroupId = *reinterpret_cast<const int32_t*>(rawData);
660 uint64_t startTime = *reinterpret_cast<const int32_t*>(rawData);
661 uint64_t deadlineTime = *reinterpret_cast<const int32_t*>(rawData);
662 data.WriteInt32(static_cast<int32_t>(testPid));
663 data.WriteInt32(static_cast<int32_t>(workgroupId));
664 data.WriteUint64(static_cast<int32_t>(startTime));
665 data.WriteUint64(static_cast<int32_t>(deadlineTime));
666
667 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
668 MessageParcel reply;
669 MessageOption option;
670 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::START_AUDIOWORKGROUP),
671 data, reply, option);
672 }
673
AudioServerAudioWorkgroupStopGroupTest(const uint8_t * rawData,size_t size)674 void AudioServerAudioWorkgroupStopGroupTest(const uint8_t *rawData, size_t size)
675 {
676 if (rawData == nullptr || size < LIMITSIZE) {
677 return;
678 }
679
680 MessageParcel data;
681 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
682 int32_t testPid = *reinterpret_cast<const int32_t*>(rawData);
683 int32_t workgroupId = *reinterpret_cast<const int32_t*>(rawData);
684 data.WriteInt32(static_cast<int32_t>(testPid));
685 data.WriteInt32(static_cast<int32_t>(workgroupId));
686
687 std::shared_ptr<AudioServer> AudioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
688 MessageParcel reply;
689 MessageOption option;
690 AudioServerPtr->OnRemoteRequest(static_cast<uint32_t>(AudioServerInterfaceCode::STOP_AUDIOWORKGROUP),
691 data, reply, option);
692 }
693
AudioServerDumpTest(const uint8_t * rawData,size_t size)694 void AudioServerDumpTest(const uint8_t *rawData, size_t size)
695 {
696 if (rawData == nullptr || size < LIMITSIZE) {
697 return;
698 }
699 vector<std::u16string> gTestDumpArges = {
700 u"-fb",
701 u"test",
702 u"test2",
703 u"test3",
704 };
705 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
706 std::vector<std::u16string> args(gTestDumpArges.begin(), gTestDumpArges.begin() +
707 (static_cast<uint32_t>(size) % gTestDumpArges.size()));
708 int32_t fd = static_cast<int32_t>(size);
709
710 audioServerPtr->Dump(fd, args);
711 }
712
AudioServerGetUsbParameterTest(const uint8_t * rawData,size_t size)713 void AudioServerGetUsbParameterTest(const uint8_t *rawData, size_t size)
714 {
715 if (rawData == nullptr || size < LIMITSIZE) {
716 return;
717 }
718 const vector<std::string> params = {
719 "address=card2;device=0 role=1",
720 "address=card2;device=0 role=2"
721 };
722 std::string param = params[*reinterpret_cast<const uint32_t*>(rawData) % params.size()];
723 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
724 audioServerPtr->GetUsbParameter(param);
725 }
726
AudioServerOnAddSystemAbilityTest(const uint8_t * rawData,size_t size)727 void AudioServerOnAddSystemAbilityTest(const uint8_t *rawData, size_t size)
728 {
729 if (rawData == nullptr || size < LIMITSIZE) {
730 return;
731 }
732 vector<int32_t> gTestSystemAbilityId = {
733 0,
734 AUDIO_POLICY_SERVICE_ID,
735 AUDIO_DISTRIBUTED_SERVICE_ID,
736 };
737 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
738
739 uint32_t id = static_cast<uint32_t>(size) % gTestSystemAbilityId.size();
740 std::string deviceId = "0";
741
742 audioServerPtr->OnAddSystemAbility(gTestSystemAbilityId[id], deviceId);
743 }
744
AudioServerSetExtraParametersTest(const uint8_t * rawData,size_t size)745 void AudioServerSetExtraParametersTest(const uint8_t *rawData, size_t size)
746 {
747 if (rawData == nullptr || size < LIMITSIZE) {
748 return;
749 }
750
751 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
752 std::vector<std::pair<std::string, std::string>> kvpairs;
753 uint32_t id = static_cast<uint32_t>(size) % g_testKeys.size();
754 std::string key = g_testKeys[id];
755 std::pair<std::string, std::string> kvpair = std::make_pair(g_testKeys[id], g_testKeys[id]);
756 kvpairs.push_back(kvpair);
757 audioServerPtr->CacheExtraParameters(key, kvpairs);
758 audioServerPtr->ParseAudioParameter();
759 }
760
AudioServerSetAudioParameterByKeyTest(const uint8_t * rawData,size_t size)761 void AudioServerSetAudioParameterByKeyTest(const uint8_t *rawData, size_t size)
762 {
763 if (rawData == nullptr || size < LIMITSIZE) {
764 return;
765 }
766 vector<std::string> gTestAudioParameterKeys = {
767 "AUDIO_EXT_PARAM_KEY_A2DP_OFFLOAD_CONFIG",
768 "A2dpSuspended",
769 "AUDIO_EXT_PARAM_KEY_LOWPOWER",
770 "bt_headset_nrec",
771 "bt_wbs",
772 "AUDIO_EXT_PARAM_KEY_A2DP_OFFLOAD_CONFIG",
773 "mmi",
774 "perf_info",
775 };
776
777 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
778 uint32_t id = static_cast<uint32_t>(size) % gTestAudioParameterKeys.size();
779 audioServerPtr->SetAudioParameter(gTestAudioParameterKeys[id], "");
780 }
781
AudioServerGetExtraParametersTest(const uint8_t * rawData,size_t size)782 void AudioServerGetExtraParametersTest(const uint8_t *rawData, size_t size)
783 {
784 if (rawData == nullptr || size < LIMITSIZE) {
785 return;
786 }
787
788 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
789 uint32_t id = static_cast<uint32_t>(size) % g_testKeys.size();
790 bool isAudioParameterParsed = static_cast<uint32_t>(size) % NUM_2;
791 audioServerPtr->isAudioParameterParsed_.store(isAudioParameterParsed);
792 std::vector<StringPair> result;
793 std::vector<std::string> subKeys;
794 audioServerPtr->GetExtraParameters(g_testKeys[id], subKeys, result);
795 }
796
AudioServerGetAudioParameterByIdTest(const uint8_t * rawData,size_t size)797 void AudioServerGetAudioParameterByIdTest(const uint8_t *rawData, size_t size)
798 {
799 if (rawData == nullptr || size < LIMITSIZE) {
800 return;
801 }
802
803 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
804 vector<std::string> tetsNetworkId = {
805 "LocalDevice",
806 "TestNetwork",
807 };
808 vector<AudioParamKey> audioParamKey {
809 NONE,
810 VOLUME,
811 INTERRUPT,
812 PARAM_KEY_STATE,
813 A2DP_SUSPEND_STATE,
814 BT_HEADSET_NREC,
815 BT_WBS,
816 A2DP_OFFLOAD_STATE,
817 GET_DP_DEVICE_INFO,
818 GET_PENCIL_INFO,
819 GET_UWB_INFO,
820 USB_DEVICE,
821 PERF_INFO,
822 MMI,
823 PARAM_KEY_LOWPOWER,
824 };
825 string str = "test";
826 uint32_t id = static_cast<uint32_t>(size) % audioParamKey.size();
827 AudioParamKey key = static_cast<AudioParamKey>(audioParamKey[id]);
828 id = static_cast<uint32_t>(size) % tetsNetworkId.size();
829 CHECK_AND_RETURN(audioServerPtr != nullptr);
830 audioServerPtr->GetAudioParameter(tetsNetworkId[id], key, "", str);
831 }
832
AudioServerIsFastBlockedTest(const uint8_t * rawData,size_t size)833 void AudioServerIsFastBlockedTest(const uint8_t *rawData, size_t size)
834 {
835 if (rawData == nullptr || size < LIMITSIZE) {
836 return;
837 }
838
839 vector<PlayerType> gPlayerType = {
840 PLAYER_TYPE_DEFAULT,
841 PLAYER_TYPE_SOUND_POOL,
842 PLAYER_TYPE_AV_PLAYER,
843 };
844
845 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
846
847 uint32_t id = static_cast<uint32_t>(size) % gPlayerType.size();
848 audioServerPtr->IsFastBlocked(static_cast<uint32_t>(id), gPlayerType[id]);
849 }
850
AudioServerCheckRemoteDeviceStateTestTwo(const uint8_t * rawData,size_t size)851 void AudioServerCheckRemoteDeviceStateTestTwo(const uint8_t *rawData, size_t size)
852 {
853 if (rawData == nullptr || size < LIMITSIZE) {
854 return;
855 }
856 vector<DeviceRole> gDeviceRole = {
857 DEVICE_ROLE_NONE,
858 INPUT_DEVICE,
859 OUTPUT_DEVICE,
860 DEVICE_ROLE_MAX,
861 };
862 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
863 bool isStartDevice = static_cast<uint32_t>(size) % NUM_2;
864 uint32_t id = static_cast<uint32_t>(size) % gDeviceRole.size();
865 audioServerPtr->CheckRemoteDeviceState("LocalDevice", gDeviceRole[id], isStartDevice);
866 }
867
AudioServerCreateAudioStreamTest(const uint8_t * rawData,size_t size)868 void AudioServerCreateAudioStreamTest(const uint8_t *rawData, size_t size)
869 {
870 if (rawData == nullptr || size < LIMITSIZE) {
871 return;
872 }
873
874 sptr<IRemoteObject> remoteObject = nullptr;
875 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
876 audioServerPtr->NotifyProcessStatus();
877 AudioProcessConfig config;
878 std::shared_ptr<PipeInfoGuard> pipeinfoGuard = std::make_shared<PipeInfoGuard>(0);
879 vector<int32_t> gTestCallingUid = {
880 AudioServer::VASSISTANT_UID,
881 AudioServer::MEDIA_SERVICE_UID,
882 };
883 uint32_t id = static_cast<uint32_t>(size) % gTestCallingUid.size();
884 config.audioMode = AUDIO_MODE_RECORD;
885 remoteObject = audioServerPtr->CreateAudioStream(config, gTestCallingUid[id], pipeinfoGuard);
886 vector<AudioParamKey> audioParamKey {
887 NONE,
888 VOLUME,
889 INTERRUPT,
890 PARAM_KEY_STATE,
891 A2DP_SUSPEND_STATE,
892 BT_HEADSET_NREC,
893 BT_WBS,
894 A2DP_OFFLOAD_STATE,
895 GET_DP_DEVICE_INFO,
896 GET_PENCIL_INFO,
897 GET_UWB_INFO,
898 USB_DEVICE,
899 PERF_INFO,
900 MMI,
901 PARAM_KEY_LOWPOWER,
902 };
903
904 config.audioMode = static_cast<AudioMode>(-1);
905 audioServerPtr->IsNormalIpcStream(config);
906 id = static_cast<uint32_t>(size) % audioParamKey.size();
907 audioServerPtr->OnRenderSinkParamChange("", audioParamKey[id], "", "");
908 audioServerPtr->OnCaptureSourceParamChange("", audioParamKey[id], "", "");
909 audioServerPtr->OnWakeupClose();
910 id = static_cast<uint32_t>(size) % NUM_2;
911 audioServerPtr->OnCapturerState(static_cast<bool>(id), id, id);
912 audioServerPtr->SetParameterCallback(remoteObject);
913 audioServerPtr->SetWakeupSourceCallback(remoteObject);
914 audioServerPtr->RegiestPolicyProvider(remoteObject);
915 audioServerPtr->RegistCoreServiceProvider(remoteObject);
916 }
917
AudioServerSetSinkRenderEmptyTest(const uint8_t * rawData,size_t size)918 void AudioServerSetSinkRenderEmptyTest(const uint8_t *rawData, size_t size)
919 {
920 if (rawData == nullptr || size < LIMITSIZE) {
921 return;
922 }
923 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
924
925 uint32_t id = static_cast<uint32_t>(size) % NUM_2;
926 audioServerPtr->SetSinkRenderEmpty("primary", id);
927 }
928
AudioServerOnRenderSinkStateChangeTest(const uint8_t * rawData,size_t size)929 void AudioServerOnRenderSinkStateChangeTest(const uint8_t *rawData, size_t size)
930 {
931 if (rawData == nullptr || size < LIMITSIZE) {
932 return;
933 }
934 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
935
936 uint32_t id = static_cast<uint32_t>(size) % NUM_2;
937 audioServerPtr->OnRenderSinkStateChange(id, static_cast<bool>(id));
938 }
939
AudioServerCreateHdiSinkPortTest(const uint8_t * rawData,size_t size)940 void AudioServerCreateHdiSinkPortTest(const uint8_t *rawData, size_t size)
941 {
942 if (rawData == nullptr || size < LIMITSIZE) {
943 return;
944 }
945 uint32_t renderId = 0;
946 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
947 IAudioSinkAttr attr;
948 std::string deviceClass = "audio_test_class";
949 std::string idInfo = "audio_indo";
950 CHECK_AND_RETURN(audioServerPtr != nullptr);
951 audioServerPtr->CreateHdiSinkPort(deviceClass, idInfo, attr, renderId);
952 }
953
AudioServerCreateHdiSourcePortTest(const uint8_t * rawData,size_t size)954 void AudioServerCreateHdiSourcePortTest(const uint8_t *rawData, size_t size)
955 {
956 if (rawData == nullptr || size < LIMITSIZE) {
957 return;
958 }
959
960 uint32_t captureId = 0;
961 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
962 IAudioSourceAttr attr;
963 std::string deviceClass = "audio_test_class";
964 std::string idInfo = "audio_indo";
965 CHECK_AND_RETURN(audioServerPtr != nullptr);
966 audioServerPtr->CreateHdiSourcePort(deviceClass, idInfo, attr, captureId);
967 }
968
AudioServerRegisterDataTransferCallbackTest(const uint8_t * rawData,size_t size)969 void AudioServerRegisterDataTransferCallbackTest(const uint8_t *rawData, size_t size)
970 {
971 if (rawData == nullptr || size < LIMITSIZE) {
972 return;
973 }
974
975 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
976 sptr<AudioPolicyManagerListenerStubImpl> focusListenerStub = new(std::nothrow) AudioPolicyManagerListenerStubImpl();
977 sptr<IRemoteObject> object = focusListenerStub->AsObject();
978
979 audioServerPtr->RegisterDataTransferCallback(object);
980 }
981
AudioServerWriteServiceStartupErrorTest(const uint8_t * rawData,size_t size)982 void AudioServerWriteServiceStartupErrorTest(const uint8_t *rawData, size_t size)
983 {
984 if (rawData == nullptr || size < LIMITSIZE) {
985 return;
986 }
987
988 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
989 audioServerPtr->WriteServiceStartupError();
990 }
991
AudioServerProcessKeyValuePairsTest(const uint8_t * rawData,size_t size)992 void AudioServerProcessKeyValuePairsTest(const uint8_t *rawData, size_t size)
993 {
994 if (rawData == nullptr || size < LIMITSIZE) {
995 return;
996 }
997 static const vector<string> testPairs = {
998 "unprocess_audio_effect",
999 "test",
1000 };
1001 string key = "test_key";
1002 string value{};
1003 string pairTest = testPairs[static_cast<uint32_t>(size) % testPairs.size()];
1004 std::vector<std::pair<std::string, std::string>> kvpairs;
1005 kvpairs.push_back(make_pair(pairTest, "test_value"));
1006 set<std::string> subKeys = {"effect"};
1007 unordered_map<std::string, std::set<std::string>> subKeyMap;
1008 subKeyMap.insert(make_pair(pairTest, subKeys));
1009
1010 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1011 audioServerPtr->ProcessKeyValuePairs(key, kvpairs, subKeyMap, value);
1012 }
1013
AudioServerSetA2dpAudioParameterTest(const uint8_t * rawData,size_t size)1014 void AudioServerSetA2dpAudioParameterTest(const uint8_t *rawData, size_t size)
1015 {
1016 if (rawData == nullptr || size < LIMITSIZE) {
1017 return;
1018 }
1019 string renderValue;
1020
1021 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1022 audioServerPtr->SetA2dpAudioParameter(renderValue);
1023 }
1024
AudioServerGetAudioParameterByKeyTest(const uint8_t * rawData,size_t size)1025 void AudioServerGetAudioParameterByKeyTest(const uint8_t *rawData, size_t size)
1026 {
1027 if (rawData == nullptr || size < LIMITSIZE) {
1028 return;
1029 }
1030 static const vector<string> testKeys = {
1031 "AUDIO_EXT_PARAM_KEY_LOWPOWER",
1032 "need_change_usb_device#C",
1033 "getSmartPAPOWER",
1034 "show_RealTime_ChipModel",
1035 "perf_info",
1036 };
1037
1038 string value = "test";
1039 string key = testKeys[static_cast<uint32_t>(size) % testKeys.size()];
1040 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1041 CHECK_AND_RETURN(audioServerPtr != nullptr);
1042 audioServerPtr->GetAudioParameter(key, value);
1043 }
1044
AudioServerGetDPParameterTest(const uint8_t * rawData,size_t size)1045 void AudioServerGetDPParameterTest(const uint8_t *rawData, size_t size)
1046 {
1047 if (rawData == nullptr || size < LIMITSIZE) {
1048 return;
1049 }
1050
1051 std::string condition;
1052 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1053 audioServerPtr->GetDPParameter(condition);
1054 }
1055
AudioServerSetAudioSceneByDeviceTypeTest(const uint8_t * rawData,size_t size)1056 void AudioServerSetAudioSceneByDeviceTypeTest(const uint8_t *rawData, size_t size)
1057 {
1058 if (rawData == nullptr || size < LIMITSIZE) {
1059 return;
1060 }
1061 uint32_t index = static_cast<uint32_t>(size);
1062 static const vector<AudioScene> testAudioScenes = {
1063 AUDIO_SCENE_INVALID,
1064 AUDIO_SCENE_DEFAULT,
1065 AUDIO_SCENE_RINGING,
1066 AUDIO_SCENE_PHONE_CALL,
1067 AUDIO_SCENE_PHONE_CHAT,
1068 AUDIO_SCENE_CALL_START,
1069 AUDIO_SCENE_CALL_END,
1070 AUDIO_SCENE_VOICE_RINGING,
1071 AUDIO_SCENE_MAX,
1072 };
1073 static const vector<BluetoothOffloadState> testBluetoothOffloadStates = {
1074 NO_A2DP_DEVICE,
1075 A2DP_NOT_OFFLOAD,
1076 A2DP_OFFLOAD,
1077 };
1078 bool scoExcludeFlag = static_cast<bool>(index % NUM_2);
1079 BluetoothOffloadState a2dpOffloadFlag = testBluetoothOffloadStates[index % testBluetoothOffloadStates.size()];
1080 AudioScene audioScene = testAudioScenes[static_cast<uint32_t>(size) % testAudioScenes.size()];
1081 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1082 audioServerPtr->SetAudioScene(audioScene, a2dpOffloadFlag, scoExcludeFlag);
1083 }
1084
AudioServerNotifyDeviceInfoFuzzTest(const uint8_t * rawData,size_t size)1085 void AudioServerNotifyDeviceInfoFuzzTest(const uint8_t *rawData, size_t size)
1086 {
1087 if (rawData == nullptr || size < LIMITSIZE) {
1088 return;
1089 }
1090
1091 std::string networkId = "test_network_id";
1092 bool connected = *reinterpret_cast<const bool*>(rawData);
1093 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1094 if (audioServerPtr == nullptr) {
1095 return;
1096 }
1097 audioServerPtr->NotifyDeviceInfo(networkId, connected);
1098 }
1099
AudioServerSetVoiceVolumeFuzzTest(const uint8_t * rawData,size_t size)1100 void AudioServerSetVoiceVolumeFuzzTest(const uint8_t *rawData, size_t size)
1101 {
1102 if (rawData == nullptr || size < LIMITSIZE) {
1103 return;
1104 }
1105
1106 float volume = *reinterpret_cast<const float*>(rawData);
1107 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1108 if (audioServerPtr == nullptr) {
1109 return;
1110 }
1111 audioServerPtr->SetVoiceVolume(volume);
1112 }
1113
AudioServerCheckRemoteDeviceStateFuzzTest(const uint8_t * rawData,size_t size)1114 void AudioServerCheckRemoteDeviceStateFuzzTest(const uint8_t *rawData, size_t size)
1115 {
1116 static const vector<DeviceRole> testDeviceRole = {
1117 DEVICE_ROLE_NONE,
1118 INPUT_DEVICE,
1119 OUTPUT_DEVICE,
1120 DEVICE_ROLE_MAX,
1121 };
1122 if (rawData == nullptr || size < LIMITSIZE || testDeviceRole.size() == 0) {
1123 return;
1124 }
1125
1126 std::string networkId = "test_network_id";
1127 uint32_t deviceId = *reinterpret_cast<const uint32_t*>(rawData);
1128 DeviceRole deviceRole = testDeviceRole[deviceId % testDeviceRole.size()];
1129 bool isStartDevice = *reinterpret_cast<const bool*>(rawData);
1130 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1131 if (audioServerPtr == nullptr) {
1132 return;
1133 }
1134 audioServerPtr->CheckRemoteDeviceState(networkId, deviceRole, isStartDevice);
1135 }
1136
AudioServerSetAudioBalanceValueFuzzTest(const uint8_t * rawData,size_t size)1137 void AudioServerSetAudioBalanceValueFuzzTest(const uint8_t *rawData, size_t size)
1138 {
1139 if (rawData == nullptr || size < LIMITSIZE) {
1140 return;
1141 }
1142
1143 float audioBalance = *reinterpret_cast<const float*>(rawData);
1144 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1145 if (audioServerPtr == nullptr) {
1146 return;
1147 }
1148 audioServerPtr->SetAudioBalanceValue(audioBalance);
1149 }
1150
AudioServerRemoveRendererDataTransferCallbackFuzzTest(const uint8_t * rawData,size_t size)1151 void AudioServerRemoveRendererDataTransferCallbackFuzzTest(const uint8_t *rawData, size_t size)
1152 {
1153 if (rawData == nullptr || size < LIMITSIZE) {
1154 return;
1155 }
1156 int32_t testPid = *reinterpret_cast<const int32_t*>(rawData);
1157 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1158 audioServerPtr->RemoveRendererDataTransferCallback(testPid);
1159 }
1160
AudioServerRegisterDataTransferCallbackFuzzTest(const uint8_t * rawData,size_t size)1161 void AudioServerRegisterDataTransferCallbackFuzzTest(const uint8_t *rawData, size_t size)
1162 {
1163 if (rawData == nullptr || size < LIMITSIZE) {
1164 return;
1165 }
1166 MessageParcel data;
1167 data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN);
1168 data.WriteBuffer(rawData, size);
1169 data.RewindRead(0);
1170 sptr<IRemoteObject> object = data.ReadRemoteObject();
1171 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1172 audioServerPtr->RegisterDataTransferCallback(object);
1173 }
1174
AudioServerRegisterDataTransferMonitorParamFuzzTest(const uint8_t * rawData,size_t size)1175 void AudioServerRegisterDataTransferMonitorParamFuzzTest(const uint8_t *rawData, size_t size)
1176 {
1177 if (rawData == nullptr || size < LIMITSIZE) {
1178 return;
1179 }
1180 int32_t testCallbackId = *reinterpret_cast<const int32_t*>(rawData);
1181 DataTransferMonitorParam param;
1182 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1183 audioServerPtr->RegisterDataTransferMonitorParam(testCallbackId, param);
1184 }
1185
AudioServerUnregisterDataTransferMonitorParamFuzzTest(const uint8_t * rawData,size_t size)1186 void AudioServerUnregisterDataTransferMonitorParamFuzzTest(const uint8_t *rawData, size_t size)
1187 {
1188 if (rawData == nullptr || size < LIMITSIZE) {
1189 return;
1190 }
1191 int32_t testCallbackId = *reinterpret_cast<const int32_t*>(rawData);
1192 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1193 audioServerPtr->UnregisterDataTransferMonitorParam(testCallbackId);
1194 }
1195
AudioServerOnDataTransferStateChangeFuzzTest(const uint8_t * rawData,size_t size)1196 void AudioServerOnDataTransferStateChangeFuzzTest(const uint8_t *rawData, size_t size)
1197 {
1198 if (rawData == nullptr || size < LIMITSIZE) {
1199 return;
1200 }
1201 int32_t testPid = *reinterpret_cast<const int32_t*>(rawData);
1202 int32_t testCallbackId = *reinterpret_cast<const int32_t*>(rawData);
1203 AudioRendererDataTransferStateChangeInfo info;
1204 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1205 audioServerPtr->OnDataTransferStateChange(testPid, testCallbackId, info);
1206 }
1207
AudioServerOnMuteStateChangeFuzzTest(const uint8_t * rawData,size_t size)1208 void AudioServerOnMuteStateChangeFuzzTest(const uint8_t *rawData, size_t size)
1209 {
1210 if (rawData == nullptr || size < LIMITSIZE) {
1211 return;
1212 }
1213 int32_t testPid = *reinterpret_cast<const int32_t*>(rawData);
1214 int32_t testCallbackId = *reinterpret_cast<const int32_t*>(rawData);
1215 int32_t testUid = *reinterpret_cast<const int32_t*>(rawData);
1216 int32_t testSessionId = *reinterpret_cast<const uint32_t*>(rawData);
1217 bool testIsMuted = *reinterpret_cast<const bool*>(rawData);
1218 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1219 audioServerPtr->OnMuteStateChange(testPid, testCallbackId, testUid, testSessionId, testIsMuted);
1220 }
1221
AudioServerRegisterDataTransferStateChangeCallbackFuzzTest(const uint8_t * rawData,size_t size)1222 void AudioServerRegisterDataTransferStateChangeCallbackFuzzTest(const uint8_t *rawData, size_t size)
1223 {
1224 if (rawData == nullptr || size < LIMITSIZE) {
1225 return;
1226 }
1227 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1228 audioServerPtr->RegisterDataTransferStateChangeCallback();
1229 }
1230
AudioServerInitMaxRendererStreamCntPerUidFuzzTest(const uint8_t * rawData,size_t size)1231 void AudioServerInitMaxRendererStreamCntPerUidFuzzTest(const uint8_t *rawData, size_t size)
1232 {
1233 if (rawData == nullptr || size < LIMITSIZE) {
1234 return;
1235 }
1236 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1237 audioServerPtr->InitMaxRendererStreamCntPerUid();
1238 }
1239
AudioServerSetPcmDumpParameterFuzzTest(const uint8_t * rawData,size_t size)1240 void AudioServerSetPcmDumpParameterFuzzTest(const uint8_t *rawData, size_t size)
1241 {
1242 if (rawData == nullptr || size < LIMITSIZE) {
1243 return;
1244 }
1245 const vector<string> testPairs = {
1246 "OPEN",
1247 "CLOSE",
1248 "UPLOAD",
1249 "test"
1250 };
1251 string pairTest = testPairs[*reinterpret_cast<const uint32_t*>(rawData) % testPairs.size()];
1252 std::vector<std::pair<std::string, std::string>> params;
1253 params.push_back(make_pair(pairTest, "test_value"));
1254 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1255 audioServerPtr->SetPcmDumpParameter(params);
1256 }
1257
AudioServerSuspendRenderSinkFuzzTest(const uint8_t * rawData,size_t size)1258 void AudioServerSuspendRenderSinkFuzzTest(const uint8_t *rawData, size_t size)
1259 {
1260 if (rawData == nullptr || size < LIMITSIZE) {
1261 return;
1262 }
1263 std::string sinkName = "test_sinkName";
1264 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1265 audioServerPtr->SuspendRenderSink(sinkName);
1266 }
1267
AudioServerRestoreRenderSinkFuzzTest(const uint8_t * rawData,size_t size)1268 void AudioServerRestoreRenderSinkFuzzTest(const uint8_t *rawData, size_t size)
1269 {
1270 if (rawData == nullptr || size < LIMITSIZE) {
1271 return;
1272 }
1273 std::string sinkName = "test_sinkName";
1274 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1275 audioServerPtr->RestoreRenderSink(sinkName);
1276 }
1277
AudioServerSetAudioParameterFuzzTest(const uint8_t * rawData,size_t size)1278 void AudioServerSetAudioParameterFuzzTest(const uint8_t *rawData, size_t size)
1279 {
1280 if (rawData == nullptr || size < LIMITSIZE) {
1281 return;
1282 }
1283 std::string networkId = "test_networkId";
1284 int32_t key = *reinterpret_cast<const int32_t*>(rawData);
1285 std::string condition = "test_condition";
1286 std::string value = "test_value";
1287 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1288 audioServerPtr->SetAudioParameter(networkId, key, condition, value);
1289 }
1290
AudioServerGetTransactionIdFuzzTest(const uint8_t * rawData,size_t size)1291 void AudioServerGetTransactionIdFuzzTest(const uint8_t *rawData, size_t size)
1292 {
1293 if (rawData == nullptr || size < LIMITSIZE) {
1294 return;
1295 }
1296 const vector<DeviceRole> g_deviceRole = {
1297 DEVICE_ROLE_NONE,
1298 INPUT_DEVICE,
1299 OUTPUT_DEVICE,
1300 DEVICE_ROLE_MAX
1301 };
1302 DeviceType deviceType = g_testDeviceTypes[*reinterpret_cast<const uint32_t*>(rawData) % g_testDeviceTypes.size()];
1303 DeviceRole deviceRole = g_deviceRole[*reinterpret_cast<const uint32_t*>(rawData) % g_deviceRole.size()];
1304 uint64_t transactionId = *reinterpret_cast<const uint64_t*>(rawData);
1305 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1306 audioServerPtr->GetTransactionId(deviceType, deviceRole, transactionId);
1307 }
1308
AudioServerSetIORoutesFuzzTest(const uint8_t * rawData,size_t size)1309 void AudioServerSetIORoutesFuzzTest(const uint8_t *rawData, size_t size)
1310 {
1311 if (rawData == nullptr || size < LIMITSIZE) {
1312 return;
1313 }
1314 uint32_t deviceTypeCount = static_cast<uint32_t>(size) % g_testDeviceTypes.size();
1315 DeviceType deviceType = g_testDeviceTypes[deviceTypeCount];
1316 uint32_t deviceFlagCount = static_cast<uint32_t>(size) % g_testDeviceFlags.size();
1317 DeviceFlag deviceFlag = g_testDeviceFlags[deviceFlagCount];
1318 std::vector<std::pair<DeviceType, DeviceFlag>> activeDevices;
1319 std::pair<DeviceType, DeviceFlag> activeDevice = std::make_pair(deviceType, deviceFlag);
1320 activeDevices.push_back(activeDevice);
1321 uint32_t index = static_cast<uint32_t>(size);
1322 static const vector<BluetoothOffloadState> testBluetoothOffloadStates = {
1323 NO_A2DP_DEVICE,
1324 A2DP_NOT_OFFLOAD,
1325 A2DP_OFFLOAD
1326 };
1327 BluetoothOffloadState a2dpOffloadFlag = testBluetoothOffloadStates[index % testBluetoothOffloadStates.size()];
1328 std::string deviceName = "test_deviceName";
1329 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1330 audioServerPtr->SetIORoutes(activeDevices, a2dpOffloadFlag, deviceName);
1331 std::vector<DeviceType> deviceTypes = {deviceType};
1332 audioServerPtr->SetIORoutes(deviceType, deviceFlag, deviceTypes, a2dpOffloadFlag, deviceName);
1333 }
1334
AudioServerUpdateActiveDeviceRouteFuzzTest(const uint8_t * rawData,size_t size)1335 void AudioServerUpdateActiveDeviceRouteFuzzTest(const uint8_t *rawData, size_t size)
1336 {
1337 if (rawData == nullptr || size < LIMITSIZE) {
1338 return;
1339 }
1340 int32_t type = *reinterpret_cast<const int32_t*>(rawData);
1341 int32_t flag = *reinterpret_cast<const int32_t*>(rawData);
1342 int32_t a2dpOffloadFlag = *reinterpret_cast<const int32_t*>(rawData);
1343 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1344 audioServerPtr->UpdateActiveDeviceRoute(type, flag, a2dpOffloadFlag);
1345 }
1346
AudioServerUpdateActiveDevicesRouteFuzzTest(const uint8_t * rawData,size_t size)1347 void AudioServerUpdateActiveDevicesRouteFuzzTest(const uint8_t *rawData, size_t size)
1348 {
1349 if (rawData == nullptr || size < LIMITSIZE) {
1350 return;
1351 }
1352 std::vector<IntPair> activeDevices;
1353 int32_t a2dpOffloadFlag = *reinterpret_cast<const int32_t*>(rawData);
1354 std::string deviceName = "test_deviceName";
1355 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1356 audioServerPtr->UpdateActiveDevicesRoute(activeDevices, a2dpOffloadFlag, deviceName);
1357 }
1358
AudioServerSetDmDeviceTypeFuzzTest(const uint8_t * rawData,size_t size)1359 void AudioServerSetDmDeviceTypeFuzzTest(const uint8_t *rawData, size_t size)
1360 {
1361 if (rawData == nullptr || size < LIMITSIZE) {
1362 return;
1363 }
1364 uint16_t dmDeviceType = *reinterpret_cast<const uint16_t*>(rawData);
1365 int32_t deviceTypeIn = *reinterpret_cast<const int32_t*>(rawData);
1366 std::vector<IntPair> activeDevices;
1367 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1368 audioServerPtr->SetDmDeviceType(dmDeviceType, deviceTypeIn);
1369 }
1370
AudioServerSetAudioMonoStateFuzzTest(const uint8_t * rawData,size_t size)1371 void AudioServerSetAudioMonoStateFuzzTest(const uint8_t *rawData, size_t size)
1372 {
1373 if (rawData == nullptr || size < LIMITSIZE) {
1374 return;
1375 }
1376 bool audioMono = *reinterpret_cast<const bool*>(rawData);
1377 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1378 audioServerPtr->SetAudioMonoState(audioMono);
1379 }
1380
AudioServerGetHapBuildApiVersionFuzzTest(const uint8_t * rawData,size_t size)1381 void AudioServerGetHapBuildApiVersionFuzzTest(const uint8_t *rawData, size_t size)
1382 {
1383 if (rawData == nullptr || size < LIMITSIZE) {
1384 return;
1385 }
1386 int32_t callerUid = *reinterpret_cast<const int32_t*>(rawData);
1387 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1388 audioServerPtr->GetHapBuildApiVersion(callerUid);
1389 }
1390
AudioServerResetRecordConfigFuzzTest(const uint8_t * rawData,size_t size)1391 void AudioServerResetRecordConfigFuzzTest(const uint8_t *rawData, size_t size)
1392 {
1393 if (rawData == nullptr || size < LIMITSIZE) {
1394 return;
1395 }
1396 AudioProcessConfig config;
1397 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1398 audioServerPtr->ResetRecordConfig(config);
1399 }
1400
AudioServerResetProcessConfigFuzzTest(const uint8_t * rawData,size_t size)1401 void AudioServerResetProcessConfigFuzzTest(const uint8_t *rawData, size_t size)
1402 {
1403 if (rawData == nullptr || size < LIMITSIZE) {
1404 return;
1405 }
1406 AudioProcessConfig config;
1407 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1408 audioServerPtr->ResetProcessConfig(config);
1409 }
1410
AudioServerCheckStreamInfoFormatFuzzTest(const uint8_t * rawData,size_t size)1411 void AudioServerCheckStreamInfoFormatFuzzTest(const uint8_t *rawData, size_t size)
1412 {
1413 if (rawData == nullptr || size < LIMITSIZE) {
1414 return;
1415 }
1416 AudioProcessConfig config;
1417 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1418 audioServerPtr->CheckStreamInfoFormat(config);
1419 }
1420
AudioServerCheckRendererFormatFuzzTest(const uint8_t * rawData,size_t size)1421 void AudioServerCheckRendererFormatFuzzTest(const uint8_t *rawData, size_t size)
1422 {
1423 if (rawData == nullptr || size < LIMITSIZE) {
1424 return;
1425 }
1426 AudioProcessConfig config;
1427 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1428 audioServerPtr->CheckRendererFormat(config);
1429 }
1430
AudioServerCheckRecorderFormatFuzzTest(const uint8_t * rawData,size_t size)1431 void AudioServerCheckRecorderFormatFuzzTest(const uint8_t *rawData, size_t size)
1432 {
1433 if (rawData == nullptr || size < LIMITSIZE) {
1434 return;
1435 }
1436 AudioProcessConfig config;
1437 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1438 audioServerPtr->CheckRecorderFormat(config);
1439 }
1440
AudioServerCheckConfigFormatFuzzTest(const uint8_t * rawData,size_t size)1441 void AudioServerCheckConfigFormatFuzzTest(const uint8_t *rawData, size_t size)
1442 {
1443 if (rawData == nullptr || size < LIMITSIZE) {
1444 return;
1445 }
1446 AudioProcessConfig config;
1447 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1448 audioServerPtr->CheckConfigFormat(config);
1449 }
1450
AudioServerSendCreateErrorInfoFuzzTest(const uint8_t * rawData,size_t size)1451 void AudioServerSendCreateErrorInfoFuzzTest(const uint8_t *rawData, size_t size)
1452 {
1453 if (rawData == nullptr || size < LIMITSIZE) {
1454 return;
1455 }
1456 AudioProcessConfig config;
1457 int32_t errorCode = *reinterpret_cast<const int32_t*>(rawData);
1458 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1459 audioServerPtr->SendCreateErrorInfo(config, errorCode);
1460 }
1461
AudioServerCheckMaxRendererInstancesFuzzTest(const uint8_t * rawData,size_t size)1462 void AudioServerCheckMaxRendererInstancesFuzzTest(const uint8_t *rawData, size_t size)
1463 {
1464 if (rawData == nullptr || size < LIMITSIZE) {
1465 return;
1466 }
1467 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1468 audioServerPtr->CheckMaxRendererInstances();
1469 }
1470
AudioServerCheckMaxLoopbackInstancesFuzzTest(const uint8_t * rawData,size_t size)1471 void AudioServerCheckMaxLoopbackInstancesFuzzTest(const uint8_t *rawData, size_t size)
1472 {
1473 if (rawData == nullptr || size < LIMITSIZE) {
1474 return;
1475 }
1476 int32_t modeCount = static_cast<int32_t>(AudioMode::AUDIO_MODE_RECORD) + 1;
1477 uint8_t index = *reinterpret_cast<const uint8_t*>(rawData);
1478 AudioMode audioMode = static_cast<AudioMode>(index % modeCount);
1479 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1480 audioServerPtr->CheckMaxLoopbackInstances(audioMode);
1481 }
1482
AudioServerCheckAndWaitAudioPolicyReadyFuzzTest(const uint8_t * rawData,size_t size)1483 void AudioServerCheckAndWaitAudioPolicyReadyFuzzTest(const uint8_t *rawData, size_t size)
1484 {
1485 if (rawData == nullptr || size < LIMITSIZE) {
1486 return;
1487 }
1488 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1489 audioServerPtr->CheckAndWaitAudioPolicyReady();
1490 }
1491
AudioServerIsSatelliteFuzzTest(const uint8_t * rawData,size_t size)1492 void AudioServerIsSatelliteFuzzTest(const uint8_t *rawData, size_t size)
1493 {
1494 if (rawData == nullptr || size < LIMITSIZE) {
1495 return;
1496 }
1497 AudioProcessConfig config;
1498 int32_t callingUid = *reinterpret_cast<const int32_t*>(rawData);
1499 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1500 audioServerPtr->IsSatellite(config, callingUid);
1501 }
1502
AudioServerCreateAudioProcessFuzzTest(const uint8_t * rawData,size_t size)1503 void AudioServerCreateAudioProcessFuzzTest(const uint8_t *rawData, size_t size)
1504 {
1505 if (rawData == nullptr || size < LIMITSIZE) {
1506 return;
1507 }
1508 sptr<IRemoteObject> client = nullptr;
1509 AudioProcessConfig config;
1510 AudioPlaybackCaptureConfig filterConfig = AudioPlaybackCaptureConfig();
1511 int32_t errorCode = *reinterpret_cast<const int32_t*>(rawData);
1512 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1513 audioServerPtr->CreateAudioProcess(config, errorCode, filterConfig, client);
1514 }
1515
AudioServerCreateAudioProcessInnerFuzzTest(const uint8_t * rawData,size_t size)1516 void AudioServerCreateAudioProcessInnerFuzzTest(const uint8_t *rawData, size_t size)
1517 {
1518 if (rawData == nullptr || size < LIMITSIZE) {
1519 return;
1520 }
1521 AudioProcessConfig config;
1522 AudioPlaybackCaptureConfig filterConfig = AudioPlaybackCaptureConfig();
1523 int32_t errorCode = *reinterpret_cast<const int32_t*>(rawData);
1524 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1525 audioServerPtr->CreateAudioProcessInner(config, errorCode, filterConfig);
1526 }
1527
AudioServerPermissionCheckerFuzzTest(const uint8_t * rawData,size_t size)1528 void AudioServerPermissionCheckerFuzzTest(const uint8_t *rawData, size_t size)
1529 {
1530 if (rawData == nullptr || size < LIMITSIZE) {
1531 return;
1532 }
1533 AudioProcessConfig config;
1534 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1535 audioServerPtr->PermissionChecker(config);
1536 }
1537
AudioServerCheckPlaybackPermissionFuzzTest(const uint8_t * rawData,size_t size)1538 void AudioServerCheckPlaybackPermissionFuzzTest(const uint8_t *rawData, size_t size)
1539 {
1540 if (rawData == nullptr || size < LIMITSIZE) {
1541 return;
1542 }
1543 AudioProcessConfig config;
1544 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1545 audioServerPtr->CheckPlaybackPermission(config);
1546 }
1547
AudioServerCheckInnerRecorderPermissionFuzzTest(const uint8_t * rawData,size_t size)1548 void AudioServerCheckInnerRecorderPermissionFuzzTest(const uint8_t *rawData, size_t size)
1549 {
1550 if (rawData == nullptr || size < LIMITSIZE) {
1551 return;
1552 }
1553 AudioProcessConfig config;
1554 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1555 audioServerPtr->CheckInnerRecorderPermission(config);
1556 }
1557
AudioServerHandleCheckRecorderBackgroundCaptureFuzzTest(const uint8_t * rawData,size_t size)1558 void AudioServerHandleCheckRecorderBackgroundCaptureFuzzTest(const uint8_t *rawData, size_t size)
1559 {
1560 if (rawData == nullptr || size < LIMITSIZE) {
1561 return;
1562 }
1563 AudioProcessConfig config;
1564 config.callerUid = g_fuzzUtils.GetData<int32_t>();
1565 config.capturerInfo.sourceType = g_fuzzUtils.GetData<SourceType>();
1566 config.appInfo.appTokenId = g_fuzzUtils.GetData<uint32_t>();
1567 config.appInfo.appFullTokenId = g_fuzzUtils.GetData<uint64_t>();
1568 config.originalSessionId = g_fuzzUtils.GetData<uint32_t>();
1569 config.appInfo.appUid = g_fuzzUtils.GetData<int32_t>();
1570 config.appInfo.appPid = g_fuzzUtils.GetData<int32_t>();
1571
1572 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1573 audioServerPtr->HandleCheckRecorderBackgroundCapture(config);
1574 }
1575
AudioServerSetForegroundListFuzzTest(const uint8_t * rawData,size_t size)1576 void AudioServerSetForegroundListFuzzTest(const uint8_t *rawData, size_t size)
1577 {
1578 if (rawData == nullptr || size < LIMITSIZE) {
1579 return;
1580 }
1581 std::vector<std::string> list = {"test_list"};
1582 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1583 audioServerPtr->SetForegroundList(list);
1584 }
1585
AudioServerCreatePlaybackCapturerManagerFuzzTest(const uint8_t * rawData,size_t size)1586 void AudioServerCreatePlaybackCapturerManagerFuzzTest(const uint8_t *rawData, size_t size)
1587 {
1588 if (rawData == nullptr || size < LIMITSIZE) {
1589 return;
1590 }
1591 bool isSuccess = *reinterpret_cast<const bool*>(rawData);
1592 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1593 audioServerPtr->CreatePlaybackCapturerManager(isSuccess);
1594 }
1595
AudioServerRegisterAudioCapturerSourceCallbackFuzzTest(const uint8_t * rawData,size_t size)1596 void AudioServerRegisterAudioCapturerSourceCallbackFuzzTest(const uint8_t *rawData, size_t size)
1597 {
1598 if (rawData == nullptr || size < LIMITSIZE) {
1599 return;
1600 }
1601 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1602 audioServerPtr->RegisterAudioCapturerSourceCallback();
1603 }
1604
AudioServerRegisterAudioRendererSinkCallbackFuzzTest(const uint8_t * rawData,size_t size)1605 void AudioServerRegisterAudioRendererSinkCallbackFuzzTest(const uint8_t *rawData, size_t size)
1606 {
1607 if (rawData == nullptr || size < LIMITSIZE) {
1608 return;
1609 }
1610 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1611 audioServerPtr->RegisterAudioRendererSinkCallback();
1612 }
1613
AudioServerGetMaxAmplitudeFuzzTest(const uint8_t * rawData,size_t size)1614 void AudioServerGetMaxAmplitudeFuzzTest(const uint8_t *rawData, size_t size)
1615 {
1616 if (rawData == nullptr || size < LIMITSIZE) {
1617 return;
1618 }
1619 bool isOutputDevice = *reinterpret_cast<const bool*>(rawData);
1620 std::string deviceClass = "test_deviceClass";
1621 float maxAmplitude = *reinterpret_cast<const float*>(rawData);
1622 int32_t sourceType = *reinterpret_cast<const int32_t*>(rawData);
1623 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1624 audioServerPtr->GetMaxAmplitude(isOutputDevice, deviceClass, sourceType, maxAmplitude);
1625 }
1626
AudioServerGetVolumeDataCountFuzzTest(const uint8_t * rawData,size_t size)1627 void AudioServerGetVolumeDataCountFuzzTest(const uint8_t *rawData, size_t size)
1628 {
1629 if (rawData == nullptr || size < LIMITSIZE) {
1630 return;
1631 }
1632 std::string sinkName = "test_sinkName";
1633 int64_t volumeData = *reinterpret_cast<const int64_t*>(rawData);
1634 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1635 audioServerPtr->GetVolumeDataCount(sinkName, volumeData);
1636 }
1637
AudioServerUpdateLatencyTimestampFuzzTest(const uint8_t * rawData,size_t size)1638 void AudioServerUpdateLatencyTimestampFuzzTest(const uint8_t *rawData, size_t size)
1639 {
1640 if (rawData == nullptr || size < LIMITSIZE) {
1641 return;
1642 }
1643 std::string timestamp(reinterpret_cast<const char*>(rawData), size - 1);
1644 bool isRenderer = *reinterpret_cast<const bool*>(rawData);
1645 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1646 audioServerPtr->UpdateLatencyTimestamp(timestamp, isRenderer);
1647 }
1648
AudioServerCheckHibernateStateFuzzTest(const uint8_t * rawData,size_t size)1649 void AudioServerCheckHibernateStateFuzzTest(const uint8_t *rawData, size_t size)
1650 {
1651 if (rawData == nullptr || size < LIMITSIZE) {
1652 return;
1653 }
1654 bool hibernate = *reinterpret_cast<const bool*>(rawData);
1655 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1656 audioServerPtr->CheckHibernateState(hibernate);
1657 }
1658
AudioServerCreateIpcOfflineStreamFuzzTest(const uint8_t * rawData,size_t size)1659 void AudioServerCreateIpcOfflineStreamFuzzTest(const uint8_t *rawData, size_t size)
1660 {
1661 if (rawData == nullptr || size < LIMITSIZE) {
1662 return;
1663 }
1664 int32_t errorCode = *reinterpret_cast<const int32_t*>(rawData);
1665 sptr<IRemoteObject> client = nullptr;
1666 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1667 audioServerPtr->CreateIpcOfflineStream(errorCode, client);
1668 }
1669
AudioServerGetOfflineAudioEffectChainsFuzzTest(const uint8_t * rawData,size_t size)1670 void AudioServerGetOfflineAudioEffectChainsFuzzTest(const uint8_t *rawData, size_t size)
1671 {
1672 if (rawData == nullptr || size < LIMITSIZE) {
1673 return;
1674 }
1675 std::vector<std::string> effectChains = {"test_effectChains"};
1676 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1677 audioServerPtr->GetOfflineAudioEffectChains(effectChains);
1678 }
1679
AudioServerGetStandbyStatusFuzzTest(const uint8_t * rawData,size_t size)1680 void AudioServerGetStandbyStatusFuzzTest(const uint8_t *rawData, size_t size)
1681 {
1682 if (rawData == nullptr || size < LIMITSIZE) {
1683 return;
1684 }
1685 uint32_t sessionId = *reinterpret_cast<const uint32_t*>(rawData);
1686 bool isStandby = *reinterpret_cast<const bool*>(rawData);
1687 int64_t enterStandbyTime = *reinterpret_cast<const int64_t*>(rawData);
1688 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1689 audioServerPtr->GetStandbyStatus(sessionId, isStandby, enterStandbyTime);
1690 }
1691
AudioServerGenerateSessionIdFuzzTest(const uint8_t * rawData,size_t size)1692 void AudioServerGenerateSessionIdFuzzTest(const uint8_t *rawData, size_t size)
1693 {
1694 if (rawData == nullptr || size < LIMITSIZE) {
1695 return;
1696 }
1697 uint32_t sessionId = *reinterpret_cast<const uint32_t*>(rawData);
1698 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1699 audioServerPtr->GenerateSessionId(sessionId);
1700 }
1701
AudioServerNotifyAudioPolicyReadyFuzzTest(const uint8_t * rawData,size_t size)1702 void AudioServerNotifyAudioPolicyReadyFuzzTest(const uint8_t *rawData, size_t size)
1703 {
1704 if (rawData == nullptr || size < LIMITSIZE) {
1705 return;
1706 }
1707 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1708 audioServerPtr->NotifyAudioPolicyReady();
1709 }
1710
AudioServerGetAllSinkInputsFuzzTest(const uint8_t * rawData,size_t size)1711 void AudioServerGetAllSinkInputsFuzzTest(const uint8_t *rawData, size_t size)
1712 {
1713 if (rawData == nullptr || size < LIMITSIZE) {
1714 return;
1715 }
1716 std::vector<SinkInput> sinkInputs;
1717 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1718 audioServerPtr->GetAllSinkInputs(sinkInputs);
1719 }
1720
AudioServerReleaseCaptureLimitFuzzTest(const uint8_t * rawData,size_t size)1721 void AudioServerReleaseCaptureLimitFuzzTest(const uint8_t *rawData, size_t size)
1722 {
1723 if (rawData == nullptr || size < LIMITSIZE) {
1724 return;
1725 }
1726 int32_t innerCapId = *reinterpret_cast<const int32_t*>(rawData);
1727 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1728 audioServerPtr->ReleaseCaptureLimit(innerCapId);
1729 }
1730
AudioServerLoadHdiAdapterFuzzTest(const uint8_t * rawData,size_t size)1731 void AudioServerLoadHdiAdapterFuzzTest(const uint8_t *rawData, size_t size)
1732 {
1733 if (rawData == nullptr || size < LIMITSIZE) {
1734 return;
1735 }
1736 uint32_t devMgrType = *reinterpret_cast<const uint32_t*>(rawData);
1737 std::string adapterName = "test_adapterName";
1738 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1739 audioServerPtr->LoadHdiAdapter(devMgrType, adapterName);
1740 }
1741
AudioServerUnloadHdiAdapterFuzzTest(const uint8_t * rawData,size_t size)1742 void AudioServerUnloadHdiAdapterFuzzTest(const uint8_t *rawData, size_t size)
1743 {
1744 if (rawData == nullptr || size < LIMITSIZE) {
1745 return;
1746 }
1747 uint32_t devMgrType = *reinterpret_cast<const uint32_t*>(rawData);
1748 std::string adapterName = "test_adapterName";
1749 bool force = *reinterpret_cast<const bool*>(rawData);
1750 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1751 audioServerPtr->UnloadHdiAdapter(devMgrType, adapterName, force);
1752 }
1753
AudioServerCreateSinkPortFuzzTest(const uint8_t * rawData,size_t size)1754 void AudioServerCreateSinkPortFuzzTest(const uint8_t *rawData, size_t size)
1755 {
1756 if (rawData == nullptr || size < LIMITSIZE) {
1757 return;
1758 }
1759 uint32_t idBase = *reinterpret_cast<const uint32_t*>(rawData);
1760 uint32_t idType = *reinterpret_cast<const uint32_t*>(rawData);
1761 std::string idInfo = "test_idInfo";
1762 IAudioSinkAttr attr;
1763 uint32_t renderId = *reinterpret_cast<const uint32_t*>(rawData);
1764 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1765 audioServerPtr->CreateSinkPort(idBase, idType, idInfo, attr, renderId);
1766 }
1767
AudioServerCreateSourcePortFuzzTest(const uint8_t * rawData,size_t size)1768 void AudioServerCreateSourcePortFuzzTest(const uint8_t *rawData, size_t size)
1769 {
1770 if (rawData == nullptr || size < LIMITSIZE) {
1771 return;
1772 }
1773 uint32_t idBase = *reinterpret_cast<const uint32_t*>(rawData);
1774 uint32_t idType = *reinterpret_cast<const uint32_t*>(rawData);
1775 std::string idInfo = "test_idInfo";
1776 IAudioSourceAttr attr;
1777 uint32_t captureId = *reinterpret_cast<const uint32_t*>(rawData);
1778 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1779 audioServerPtr->CreateSourcePort(idBase, idType, idInfo, attr, captureId);
1780 }
1781
AudioServerDestroyHdiPortFuzzTest(const uint8_t * rawData,size_t size)1782 void AudioServerDestroyHdiPortFuzzTest(const uint8_t *rawData, size_t size)
1783 {
1784 if (rawData == nullptr || size < LIMITSIZE) {
1785 return;
1786 }
1787 uint32_t id = *reinterpret_cast<const uint32_t*>(rawData);
1788 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1789 audioServerPtr->DestroyHdiPort(id);
1790 }
1791
AudioServerSetDeviceConnectedFlagFuzzTest(const uint8_t * rawData,size_t size)1792 void AudioServerSetDeviceConnectedFlagFuzzTest(const uint8_t *rawData, size_t size)
1793 {
1794 if (rawData == nullptr || size < LIMITSIZE) {
1795 return;
1796 }
1797 bool flag = *reinterpret_cast<const bool*>(rawData);
1798 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1799 audioServerPtr->SetDeviceConnectedFlag(flag);
1800 }
1801
AudioServerSetBtHdiInvalidStateFuzzTest(const uint8_t * rawData,size_t size)1802 void AudioServerSetBtHdiInvalidStateFuzzTest(const uint8_t *rawData, size_t size)
1803 {
1804 if (rawData == nullptr || size < LIMITSIZE) {
1805 return;
1806 }
1807 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1808 audioServerPtr->SetBtHdiInvalidState();
1809 }
1810
AudioServerCreateAudioWorkgroupFuzzTest(const uint8_t * rawData,size_t size)1811 void AudioServerCreateAudioWorkgroupFuzzTest(const uint8_t *rawData, size_t size)
1812 {
1813 if (rawData == nullptr || size < LIMITSIZE) {
1814 return;
1815 }
1816 int32_t pid = *reinterpret_cast<const int32_t*>(rawData);
1817 sptr<IRemoteObject> object = nullptr;
1818 int32_t workgroupId = *reinterpret_cast<const int32_t*>(rawData);
1819 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1820 audioServerPtr->CreateAudioWorkgroup(pid, object, workgroupId);
1821 }
1822
AudioServerReleaseAudioWorkgroupFuzzTest(const uint8_t * rawData,size_t size)1823 void AudioServerReleaseAudioWorkgroupFuzzTest(const uint8_t *rawData, size_t size)
1824 {
1825 if (rawData == nullptr || size < LIMITSIZE) {
1826 return;
1827 }
1828 int32_t pid = *reinterpret_cast<const int32_t*>(rawData);
1829 int32_t workgroupId = *reinterpret_cast<const int32_t*>(rawData);
1830 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1831 audioServerPtr->ReleaseAudioWorkgroup(pid, workgroupId);
1832 }
1833
AudioServerAddThreadToGroupFuzzTest(const uint8_t * rawData,size_t size)1834 void AudioServerAddThreadToGroupFuzzTest(const uint8_t *rawData, size_t size)
1835 {
1836 if (rawData == nullptr || size < LIMITSIZE) {
1837 return;
1838 }
1839 int32_t pid = *reinterpret_cast<const int32_t*>(rawData);
1840 int32_t workgroupId = *reinterpret_cast<const int32_t*>(rawData);
1841 int32_t tokenId = *reinterpret_cast<const int32_t*>(rawData);
1842 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1843 audioServerPtr->AddThreadToGroup(pid, workgroupId, tokenId);
1844 }
1845
AudioServerForceStopAudioStreamFuzzTest(const uint8_t * rawData,size_t size)1846 void AudioServerForceStopAudioStreamFuzzTest(const uint8_t *rawData, size_t size)
1847 {
1848 if (rawData == nullptr || size < LIMITSIZE) {
1849 return;
1850 }
1851 int32_t audioType = *reinterpret_cast<const int32_t*>(rawData);
1852 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1853 audioServerPtr->ForceStopAudioStream(audioType);
1854 }
1855
AudioServerStartGroupFuzzTest(const uint8_t * rawData,size_t size)1856 void AudioServerStartGroupFuzzTest(const uint8_t *rawData, size_t size)
1857 {
1858 if (rawData == nullptr || size < LIMITSIZE) {
1859 return;
1860 }
1861 int32_t pid = *reinterpret_cast<const int32_t*>(rawData);
1862 int32_t workgroupId = *reinterpret_cast<const int32_t*>(rawData);
1863 uint64_t startTime = *reinterpret_cast<const uint64_t*>(rawData);
1864 uint64_t deadlineTime = *reinterpret_cast<const uint64_t*>(rawData);
1865 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1866 audioServerPtr->StartGroup(pid, workgroupId, startTime, deadlineTime);
1867 }
1868
AudioServerStopGroupFuzzTest(const uint8_t * rawData,size_t size)1869 void AudioServerStopGroupFuzzTest(const uint8_t *rawData, size_t size)
1870 {
1871 if (rawData == nullptr || size < LIMITSIZE) {
1872 return;
1873 }
1874 int32_t pid = *reinterpret_cast<const int32_t*>(rawData);
1875 int32_t workgroupId = *reinterpret_cast<const int32_t*>(rawData);
1876 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1877 audioServerPtr->StopGroup(pid, workgroupId);
1878 }
1879
AudioServerSetActiveOutputDeviceFuzzTest(const uint8_t * rawData,size_t size)1880 void AudioServerSetActiveOutputDeviceFuzzTest(const uint8_t *rawData, size_t size)
1881 {
1882 if (rawData == nullptr || size < LIMITSIZE) {
1883 return;
1884 }
1885 int32_t deviceTypeId = *reinterpret_cast<const int32_t*>(rawData) % g_testDeviceTypes.size();
1886 int32_t deviceType = g_testDeviceTypes[deviceTypeId];
1887 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1888 audioServerPtr->SetActiveOutputDevice(deviceType);
1889 }
AudioServerResetRecordConfigSourceTypeFuzzTest(const uint8_t * rawData,size_t size)1890 void AudioServerResetRecordConfigSourceTypeFuzzTest(const uint8_t *rawData, size_t size)
1891 {
1892 if (rawData == nullptr || size < LIMITSIZE) {
1893 return;
1894 }
1895 AudioProcessConfig config;
1896 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1897 CHECK_AND_RETURN(audioServerPtr != nullptr);
1898 config.capturerInfo.sourceType = g_fuzzUtils.GetData<SourceType>();
1899 audioServerPtr->ResetRecordConfig(config);
1900 }
1901
AudioServerResetProcessConfigCallerUidFuzzTest(const uint8_t * rawData,size_t size)1902 void AudioServerResetProcessConfigCallerUidFuzzTest(const uint8_t *rawData, size_t size)
1903 {
1904 if (rawData == nullptr || size < LIMITSIZE) {
1905 return;
1906 }
1907 AudioProcessConfig config;
1908 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1909 CHECK_AND_RETURN(audioServerPtr != nullptr);
1910 config.callerUid = g_fuzzUtils.GetData<int32_t>();
1911 audioServerPtr->ResetProcessConfig(config);
1912 }
1913
AudioServerCheckStreamInfoFormatNotContainFuzzTest(const uint8_t * rawData,size_t size)1914 void AudioServerCheckStreamInfoFormatNotContainFuzzTest(const uint8_t *rawData, size_t size)
1915 {
1916 if (rawData == nullptr || size < LIMITSIZE) {
1917 return;
1918 }
1919 AudioProcessConfig config;
1920 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1921 CHECK_AND_RETURN(audioServerPtr != nullptr);
1922 config.streamInfo.format = g_fuzzUtils.GetData<AudioSampleFormat>();
1923 config.streamInfo.encoding = g_fuzzUtils.GetData<AudioEncodingType>();
1924 config.audioMode = g_fuzzUtils.GetData<AudioMode>();
1925 config.streamInfo.channels = g_fuzzUtils.GetData<AudioChannel>();
1926 audioServerPtr->CheckStreamInfoFormat(config);
1927 }
1928
AudioServerCheckRendererFormatNotContainFuzzTest(const uint8_t * rawData,size_t size)1929 void AudioServerCheckRendererFormatNotContainFuzzTest(const uint8_t *rawData, size_t size)
1930 {
1931 if (rawData == nullptr || size < LIMITSIZE) {
1932 return;
1933 }
1934 AudioProcessConfig config;
1935 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1936 CHECK_AND_RETURN(audioServerPtr != nullptr);
1937 config.rendererInfo.streamUsage = g_fuzzUtils.GetData<StreamUsage>();
1938 audioServerPtr->CheckRendererFormat(config);
1939 }
1940
AudioServerCheckRecorderFormatNotContainFuzzTest(const uint8_t * rawData,size_t size)1941 void AudioServerCheckRecorderFormatNotContainFuzzTest(const uint8_t *rawData, size_t size)
1942 {
1943 if (rawData == nullptr || size < LIMITSIZE) {
1944 return;
1945 }
1946 AudioProcessConfig config;
1947 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1948 CHECK_AND_RETURN(audioServerPtr != nullptr);
1949 config.capturerInfo.sourceType = g_fuzzUtils.GetData<SourceType>();
1950 config.capturerInfo.capturerFlags = g_fuzzUtils.GetData<int32_t>();
1951 audioServerPtr->CheckRecorderFormat(config);
1952 }
1953
AudioServerCreateAudioProcessInnerAudioModeFuzzTest(const uint8_t * rawData,size_t size)1954 void AudioServerCreateAudioProcessInnerAudioModeFuzzTest(const uint8_t *rawData, size_t size)
1955 {
1956 if (rawData == nullptr || size < LIMITSIZE) {
1957 return;
1958 }
1959 AudioProcessConfig config;
1960 AudioPlaybackCaptureConfig filterConfig = AudioPlaybackCaptureConfig();
1961 int32_t errorCode = g_fuzzUtils.GetData<int32_t>();
1962 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1963 CHECK_AND_RETURN(audioServerPtr != nullptr);
1964 config.audioMode = g_fuzzUtils.GetData<AudioMode>();
1965 config.rendererInfo.streamUsage = g_fuzzUtils.GetData<StreamUsage>();
1966 audioServerPtr->CreateAudioProcessInner(config, errorCode, filterConfig);
1967 }
1968
1969 #ifdef HAS_FEATURE_INNERCAPTURER
AudioServerHandleCheckCaptureLimitFuzzTest(const uint8_t * rawData,size_t size)1970 void AudioServerHandleCheckCaptureLimitFuzzTest(const uint8_t *rawData, size_t size)
1971 {
1972 if (rawData == nullptr || size < LIMITSIZE) {
1973 return;
1974 }
1975 AudioProcessConfig config;
1976 AudioPlaybackCaptureConfig filterConfig = AudioPlaybackCaptureConfig();
1977 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1978 CHECK_AND_RETURN(audioServerPtr != nullptr);
1979 config.capturerInfo.sourceType = g_fuzzUtils.GetData<SourceType>();
1980 audioServerPtr->HandleCheckCaptureLimit(config, filterConfig);
1981 }
1982
AudioServerInnerCheckCaptureLimitFuzzTest(const uint8_t * rawData,size_t size)1983 void AudioServerInnerCheckCaptureLimitFuzzTest(const uint8_t *rawData, size_t size)
1984 {
1985 if (rawData == nullptr || size < LIMITSIZE) {
1986 return;
1987 }
1988 AudioPlaybackCaptureConfig filterConfig = AudioPlaybackCaptureConfig();
1989 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
1990 CHECK_AND_RETURN(audioServerPtr != nullptr);
1991 int32_t innerCapId = g_fuzzUtils.GetData<int32_t>();
1992 audioServerPtr->InnerCheckCaptureLimit(filterConfig, innerCapId);
1993 }
1994 #endif
1995
AudioServerIsNormalIpcStreamFuzzTest(const uint8_t * rawData,size_t size)1996 void AudioServerIsNormalIpcStreamFuzzTest(const uint8_t *rawData, size_t size)
1997 {
1998 if (rawData == nullptr || size < LIMITSIZE) {
1999 return;
2000 }
2001 AudioProcessConfig config;
2002 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
2003 CHECK_AND_RETURN(audioServerPtr != nullptr);
2004 config.audioMode = g_fuzzUtils.GetData<AudioMode>();
2005 audioServerPtr->IsNormalIpcStream(config);
2006 }
2007
AudioServerCheckRemoteDeviceStateSwitchCaseFuzzTest(const uint8_t * rawData,size_t size)2008 void AudioServerCheckRemoteDeviceStateSwitchCaseFuzzTest(const uint8_t *rawData, size_t size)
2009 {
2010 if (rawData == nullptr || size < LIMITSIZE) {
2011 return;
2012 }
2013 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
2014 CHECK_AND_RETURN(audioServerPtr != nullptr);
2015 bool isStartDevice = g_fuzzUtils.GetData<bool>();
2016 int32_t deviceRole = g_fuzzUtils.GetData<int32_t>();
2017 audioServerPtr->CheckRemoteDeviceState("LocalDevice", deviceRole, isStartDevice);
2018 }
2019
AudioServerCheckInnerRecorderPermissionSourceTypeFuzzTest(const uint8_t * rawData,size_t size)2020 void AudioServerCheckInnerRecorderPermissionSourceTypeFuzzTest(const uint8_t *rawData, size_t size)
2021 {
2022 if (rawData == nullptr || size < LIMITSIZE) {
2023 return;
2024 }
2025 AudioProcessConfig config;
2026 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
2027 CHECK_AND_RETURN(audioServerPtr != nullptr);
2028 config.capturerInfo.sourceType = g_fuzzUtils.GetData<SourceType>();
2029 audioServerPtr->CheckInnerRecorderPermission(config);
2030 }
2031
AudioServerSetRenderWhitelistFuzzTest(const uint8_t * rawData,size_t size)2032 void AudioServerSetRenderWhitelistFuzzTest(const uint8_t *rawData, size_t size)
2033 {
2034 if (rawData == nullptr || size < LIMITSIZE) {
2035 return;
2036 }
2037 std::shared_ptr<AudioServer> audioServerPtr = std::make_shared<AudioServer>(SYSTEM_ABILITY_ID, RUN_ON_CREATE);
2038 CHECK_AND_RETURN(audioServerPtr != nullptr);
2039 std::vector<std::string> list;
2040 list.push_back(g_fuzzUtils.GetData<std::string>());
2041 audioServerPtr->SetRenderWhitelist(list);
2042 }
2043
2044 } // namespace AudioStandard
2045 } // namesapce OHOS
2046
2047 OHOS::AudioStandard::TestPtr g_testPtrs[] = {
2048 OHOS::AudioStandard::AudioServerDumpTest,
2049 OHOS::AudioStandard::AudioServerGetUsbParameterTest,
2050 OHOS::AudioStandard::AudioServerOnAddSystemAbilityTest,
2051 OHOS::AudioStandard::AudioServerSetExtraParametersTest,
2052 OHOS::AudioStandard::AudioServerSetAudioParameterByKeyTest,
2053 OHOS::AudioStandard::AudioServerGetExtraParametersTest,
2054 OHOS::AudioStandard::AudioServerGetAudioParameterByIdTest,
2055 OHOS::AudioStandard::AudioServerIsFastBlockedTest,
2056 OHOS::AudioStandard::AudioServerCheckRemoteDeviceStateTestTwo,
2057 OHOS::AudioStandard::AudioServerCreateAudioStreamTest,
2058 OHOS::AudioStandard::AudioServerSetSinkRenderEmptyTest,
2059 OHOS::AudioStandard::AudioServerOnRenderSinkStateChangeTest,
2060 OHOS::AudioStandard::AudioServerCreateHdiSinkPortTest,
2061 OHOS::AudioStandard::AudioServerCreateHdiSourcePortTest,
2062 OHOS::AudioStandard::AudioServerFuzzTest,
2063 OHOS::AudioStandard::AudioServerOffloadSetVolumeFuzzTest,
2064 OHOS::AudioStandard::AudioServerNotifyStreamVolumeChangedFuzzTest,
2065 OHOS::AudioStandard::AudioServerResetRouteForDisconnectFuzzTest,
2066 OHOS::AudioStandard::AudioServerGetEffectLatencyTest,
2067 OHOS::AudioStandard::AudioServerGetMaxAmplitudeTest,
2068 OHOS::AudioStandard::AudioServerResetAudioEndpointTest,
2069 OHOS::AudioStandard::AudioServerCreatePlaybackCapturerManagerTest,
2070 OHOS::AudioStandard::AudioServerSetOutputDeviceSinkTest,
2071 OHOS::AudioStandard::AudioServerSetAudioMonoStateTest,
2072 OHOS::AudioStandard::AudioServerSetVoiceVolumeTest,
2073 OHOS::AudioStandard::AudioServerCheckRemoteDeviceStateTest,
2074 OHOS::AudioStandard::AudioServerNotifyDeviceInfoTest,
2075 OHOS::AudioStandard::AudioServerGetAudioParameterTest,
2076 OHOS::AudioStandard::AudioServerSetAudioParameterTest,
2077 OHOS::AudioStandard::AudioServerSetMicrophoneMuteTest,
2078 OHOS::AudioStandard::AudioServerSetAudioBalanceValueTest,
2079 OHOS::AudioStandard::AudioServerSetAudioSceneTest,
2080 OHOS::AudioStandard::AudioServerUpdateLatencyTimestampTest,
2081 OHOS::AudioStandard::AudioServerSetOffloadModeTest,
2082 OHOS::AudioStandard::AudioServerUnsetOffloadTest,
2083 OHOS::AudioStandard::AudioServerCheckHibernateStateTest,
2084 OHOS::AudioStandard::AudioServerSetSessionMuteStateTest,
2085 OHOS::AudioStandard::AudioServerNotifyMuteStateChangeTest,
2086 OHOS::AudioStandard::AudioServerAudioWorkgroupCreateTest,
2087 OHOS::AudioStandard::AudioServerAudioWorkgroupReleaseTest,
2088 OHOS::AudioStandard::AudioServerAudioWorkgroupAddThreadTest,
2089 OHOS::AudioStandard::AudioServerAudioWorkgroupRemoveThreadTest,
2090 OHOS::AudioStandard::AudioServerAudioWorkgroupStartGroupTest,
2091 OHOS::AudioStandard::AudioServerAudioWorkgroupStopGroupTest,
2092 OHOS::AudioStandard::AudioServerRegisterDataTransferCallbackTest,
2093 OHOS::AudioStandard::AudioServerWriteServiceStartupErrorTest,
2094 OHOS::AudioStandard::AudioServerProcessKeyValuePairsTest,
2095 OHOS::AudioStandard::AudioServerSetA2dpAudioParameterTest,
2096 OHOS::AudioStandard::AudioServerGetAudioParameterByKeyTest,
2097 OHOS::AudioStandard::AudioServerGetDPParameterTest,
2098 OHOS::AudioStandard::AudioServerSetAudioSceneByDeviceTypeTest,
2099 OHOS::AudioStandard::AudioServerNotifyDeviceInfoFuzzTest,
2100 OHOS::AudioStandard::AudioServerSetVoiceVolumeFuzzTest,
2101 OHOS::AudioStandard::AudioServerCheckRemoteDeviceStateFuzzTest,
2102 OHOS::AudioStandard::AudioServerSetAudioBalanceValueFuzzTest,
2103 OHOS::AudioStandard::AudioServerRemoveRendererDataTransferCallbackFuzzTest,
2104 OHOS::AudioStandard::AudioServerRegisterDataTransferCallbackFuzzTest,
2105 OHOS::AudioStandard::AudioServerRegisterDataTransferMonitorParamFuzzTest,
2106 OHOS::AudioStandard::AudioServerUnregisterDataTransferMonitorParamFuzzTest,
2107 OHOS::AudioStandard::AudioServerOnDataTransferStateChangeFuzzTest,
2108 OHOS::AudioStandard::AudioServerRegisterDataTransferStateChangeCallbackFuzzTest,
2109 OHOS::AudioStandard::AudioServerInitMaxRendererStreamCntPerUidFuzzTest,
2110 OHOS::AudioStandard::AudioServerSetPcmDumpParameterFuzzTest,
2111 OHOS::AudioStandard::AudioServerSuspendRenderSinkFuzzTest,
2112 OHOS::AudioStandard::AudioServerRestoreRenderSinkFuzzTest,
2113 OHOS::AudioStandard::AudioServerSetAudioParameterFuzzTest,
2114 OHOS::AudioStandard::AudioServerGetTransactionIdFuzzTest,
2115 OHOS::AudioStandard::AudioServerSetIORoutesFuzzTest,
2116 OHOS::AudioStandard::AudioServerUpdateActiveDeviceRouteFuzzTest,
2117 OHOS::AudioStandard::AudioServerUpdateActiveDevicesRouteFuzzTest,
2118 OHOS::AudioStandard::AudioServerSetDmDeviceTypeFuzzTest,
2119 OHOS::AudioStandard::AudioServerSetAudioMonoStateFuzzTest,
2120 OHOS::AudioStandard::AudioServerGetHapBuildApiVersionFuzzTest,
2121 OHOS::AudioStandard::AudioServerResetRecordConfigFuzzTest,
2122 OHOS::AudioStandard::AudioServerResetProcessConfigFuzzTest,
2123 OHOS::AudioStandard::AudioServerCheckStreamInfoFormatFuzzTest,
2124 OHOS::AudioStandard::AudioServerCheckRendererFormatFuzzTest,
2125 OHOS::AudioStandard::AudioServerCheckRecorderFormatFuzzTest,
2126 OHOS::AudioStandard::AudioServerCheckConfigFormatFuzzTest,
2127 OHOS::AudioStandard::AudioServerSendCreateErrorInfoFuzzTest,
2128 OHOS::AudioStandard::AudioServerCheckMaxRendererInstancesFuzzTest,
2129 OHOS::AudioStandard::AudioServerCheckMaxLoopbackInstancesFuzzTest,
2130 OHOS::AudioStandard::AudioServerCheckAndWaitAudioPolicyReadyFuzzTest,
2131 OHOS::AudioStandard::AudioServerIsSatelliteFuzzTest,
2132 OHOS::AudioStandard::AudioServerCreateAudioProcessFuzzTest,
2133 OHOS::AudioStandard::AudioServerCreateAudioProcessInnerFuzzTest,
2134 OHOS::AudioStandard::AudioServerPermissionCheckerFuzzTest,
2135 OHOS::AudioStandard::AudioServerCheckPlaybackPermissionFuzzTest,
2136 OHOS::AudioStandard::AudioServerCheckInnerRecorderPermissionFuzzTest,
2137 OHOS::AudioStandard::AudioServerHandleCheckRecorderBackgroundCaptureFuzzTest,
2138 OHOS::AudioStandard::AudioServerSetForegroundListFuzzTest,
2139 OHOS::AudioStandard::AudioServerCreatePlaybackCapturerManagerFuzzTest,
2140 OHOS::AudioStandard::AudioServerRegisterAudioCapturerSourceCallbackFuzzTest,
2141 OHOS::AudioStandard::AudioServerRegisterAudioRendererSinkCallbackFuzzTest,
2142 OHOS::AudioStandard::AudioServerGetMaxAmplitudeFuzzTest,
2143 OHOS::AudioStandard::AudioServerGetVolumeDataCountFuzzTest,
2144 OHOS::AudioStandard::AudioServerUpdateLatencyTimestampFuzzTest,
2145 OHOS::AudioStandard::AudioServerCheckHibernateStateFuzzTest,
2146 OHOS::AudioStandard::AudioServerCreateIpcOfflineStreamFuzzTest,
2147 OHOS::AudioStandard::AudioServerGetOfflineAudioEffectChainsFuzzTest,
2148 OHOS::AudioStandard::AudioServerGetStandbyStatusFuzzTest,
2149 OHOS::AudioStandard::AudioServerGenerateSessionIdFuzzTest,
2150 OHOS::AudioStandard::AudioServerNotifyAudioPolicyReadyFuzzTest,
2151 OHOS::AudioStandard::AudioServerGetAllSinkInputsFuzzTest,
2152 OHOS::AudioStandard::AudioServerReleaseCaptureLimitFuzzTest,
2153 OHOS::AudioStandard::AudioServerLoadHdiAdapterFuzzTest,
2154 OHOS::AudioStandard::AudioServerUnloadHdiAdapterFuzzTest,
2155 OHOS::AudioStandard::AudioServerCreateSinkPortFuzzTest,
2156 OHOS::AudioStandard::AudioServerCreateSourcePortFuzzTest,
2157 OHOS::AudioStandard::AudioServerDestroyHdiPortFuzzTest,
2158 OHOS::AudioStandard::AudioServerSetDeviceConnectedFlagFuzzTest,
2159 OHOS::AudioStandard::AudioServerSetBtHdiInvalidStateFuzzTest,
2160 OHOS::AudioStandard::AudioServerCreateAudioWorkgroupFuzzTest,
2161 OHOS::AudioStandard::AudioServerReleaseAudioWorkgroupFuzzTest,
2162 OHOS::AudioStandard::AudioServerAddThreadToGroupFuzzTest,
2163 OHOS::AudioStandard::AudioServerForceStopAudioStreamFuzzTest,
2164 OHOS::AudioStandard::AudioServerStartGroupFuzzTest,
2165 OHOS::AudioStandard::AudioServerStopGroupFuzzTest,
2166 OHOS::AudioStandard::AudioServerSetActiveOutputDeviceFuzzTest,
2167 OHOS::AudioStandard::AudioServerResetRecordConfigSourceTypeFuzzTest,
2168 OHOS::AudioStandard::AudioServerResetProcessConfigCallerUidFuzzTest,
2169 OHOS::AudioStandard::AudioServerCheckStreamInfoFormatNotContainFuzzTest,
2170 OHOS::AudioStandard::AudioServerCheckRendererFormatNotContainFuzzTest,
2171 OHOS::AudioStandard::AudioServerCheckRecorderFormatNotContainFuzzTest,
2172 OHOS::AudioStandard::AudioServerCreateAudioProcessInnerAudioModeFuzzTest,
2173 #ifdef HAS_FEATURE_INNERCAPTURER
2174 OHOS::AudioStandard::AudioServerHandleCheckCaptureLimitFuzzTest,
2175 OHOS::AudioStandard::AudioServerInnerCheckCaptureLimitFuzzTest,
2176 #endif
2177 OHOS::AudioStandard::AudioServerIsNormalIpcStreamFuzzTest,
2178 OHOS::AudioStandard::AudioServerCheckRemoteDeviceStateSwitchCaseFuzzTest,
2179 OHOS::AudioStandard::AudioServerCheckInnerRecorderPermissionSourceTypeFuzzTest,
2180 OHOS::AudioStandard::AudioServerSetRenderWhitelistFuzzTest,
2181 OHOS::AudioStandard::AudioServerOnMuteStateChangeFuzzTest
2182 };
2183 /* Fuzzer entry point */
LLVMFuzzerTestOneInput(const uint8_t * data,size_t size)2184 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
2185 {
2186 /* Run your code on data */
2187 if (data == nullptr || size <= 1) {
2188 return 0;
2189 }
2190 uint32_t len = OHOS::AudioStandard::GetArrLength(g_testPtrs);
2191 if (len > 0) {
2192 uint8_t firstByte = *data % len;
2193 if (firstByte >= len) {
2194 return 0;
2195 }
2196 data = data + 1;
2197 size = size - 1;
2198 g_testPtrs[firstByte](data, size);
2199 }
2200 return 0;
2201 }