/* * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef ABILITY_FUZZ_UTIL_H #define ABILITY_FUZZ_UTIL_H #include #include #include #include #include "ability_record.h" #include "ability_info.h" #include "application_info.h" #include "auto_startup_info.h" #include "bundle_info.h" #include "bundle_user_info.h" #include "dlp_connection_info.h" #include "dlp_state_data.h" #include "ecological_rule/ability_ecological_rule_mgr_service_param.h" #include "extract_insight_intent_profile.h" #include "keep_alive_info.h" #include "keep_alive_process_manager.h" namespace OHOS { namespace AppExecFwk { namespace AbilityFuzzUtil { constexpr size_t CODE_TWO = 2; constexpr size_t CODE_MAX = 99; constexpr size_t STRING_MAX_LENGTH = 128; std::vector GenerateStringArray(FuzzedDataProvider& fdp, size_t arraySizeMax = STRING_MAX_LENGTH, size_t stringSize = STRING_MAX_LENGTH) { std::vector result; size_t arraySize = fdp.ConsumeIntegralInRange(0, arraySizeMax); result.reserve(arraySize); for (size_t i = 0; i < arraySize; ++i) { std::string str = fdp.ConsumeRandomLengthString(stringSize); result.emplace_back(str); } return result; } AppExecFwk::ElementName GenerateElementName(FuzzedDataProvider& fdp, AppExecFwk::ElementName &elementName) { std::string deviceId; std::string bundleName; std::string abilityName; std::string moduleName; deviceId = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); bundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); abilityName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); moduleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); AppExecFwk::ElementName name(deviceId, bundleName, abilityName, moduleName); return name; } void GetRandomExtractInsightIntentGenericInfo(FuzzedDataProvider& fdp, ExtractInsightIntentGenericInfo& info) { info.bundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.moduleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.intentName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.displayName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.decoratorType = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); } void GetRandomInsightIntentInfoForQuery(FuzzedDataProvider& fdp, InsightIntentInfoForQuery& info) { info.bundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.moduleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.intentName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.domain = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.intentVersion = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.displayName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.displayDescription = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.schema = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.icon = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.llmDescription = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.intentType = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.parameters = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.result = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.keywords = GenerateStringArray(fdp); } void GetRandomExtractInsightIntentInfo(FuzzedDataProvider& fdp, ExtractInsightIntentInfo& info) { info.decoratorFile = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.decoratorClass = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.displayDescription = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.domain = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.intentVersion = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.schema = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.icon = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.llmDescription = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.result = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.example = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.keywords = GenerateStringArray(fdp); } void GetRandomInsightIntentExecuteParam(FuzzedDataProvider& fdp, InsightIntentExecuteParam& info) { info.executeMode_ = fdp.ConsumeIntegral(); info.displayId_ = fdp.ConsumeIntegral(); info.flags_ = fdp.ConsumeIntegral(); info.insightIntentId_ = fdp.ConsumeIntegral(); info.bundleName_ = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.moduleName_ = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.abilityName_ = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.insightIntentName_ = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.uris_ = GenerateStringArray(fdp); info.decoratorType_ = fdp.ConsumeIntegral(); info.srcEntrance_ = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.className_ = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.methodName_ = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.methodParams_ = GenerateStringArray(fdp); info.pagePath_ = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.navigationId_ = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.navDestinationName_ = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); } void GetRandomExtractInsightIntentProfileInfo(FuzzedDataProvider& fdp, ExtractInsightIntentProfileInfo& info) { info.decoratorFile = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.decoratorClass = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.decoratorType = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.bundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.moduleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.intentName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.domain = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.intentVersion = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.displayName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.displayDescription = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.schema = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.icon = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.llmDescription = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.keywords = GenerateStringArray(fdp); info.parameters = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.result = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.example = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.uri = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.uiAbility = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.pagePath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.navigationId = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.navDestinationName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.abilityName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.executeMode = GenerateStringArray(fdp); info.functionName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.functionParams = GenerateStringArray(fdp); info.formName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); } void GetRandomKeepAliveStatus(FuzzedDataProvider& fdp, KeepAliveStatus& status) { status.code = fdp.ConsumeIntegral(); status.setterId = fdp.ConsumeIntegral(); status.setter = static_cast(fdp.ConsumeIntegralInRange(0, CODE_TWO)); } void GetRandomDlpConnectionInfo(FuzzedDataProvider& fdp, DlpConnectionInfo& info) { info.dlpUid = fdp.ConsumeIntegral(); info.openedAbilityCount = fdp.ConsumeIntegral(); } void GetRandomConnectionData(FuzzedDataProvider& fdp, ConnectionData& info) { info.isSuspended = fdp.ConsumeBool(); info.extensionPid = fdp.ConsumeIntegral(); info.extensionUid = fdp.ConsumeIntegral(); info.callerUid = fdp.ConsumeIntegral(); info.callerPid = fdp.ConsumeIntegral(); info.extensionBundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.extensionModuleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.extensionName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.callerName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); } void GetRandomDlpStateData(FuzzedDataProvider& fdp, DlpStateData& info) { info.targetPid = fdp.ConsumeIntegral(); info.targetUid = fdp.ConsumeIntegral(); info.callerUid = fdp.ConsumeIntegral(); info.callerPid = fdp.ConsumeIntegral(); info.callerName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.targetBundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.targetModuleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.targetAbilityName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); } void GenerateSignatureInfo(FuzzedDataProvider& fdp, SignatureInfo &signatureInfo) { signatureInfo.appId = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); signatureInfo.fingerprint = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); signatureInfo.appIdentifier = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); signatureInfo.certificate = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); } void GetRandomAbilityInfo(FuzzedDataProvider& fdp, AbilityInfo& info) { info.name = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.label = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.description = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.iconPath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.labelId = fdp.ConsumeIntegral(); info.descriptionId = fdp.ConsumeIntegral(); info.iconId = fdp.ConsumeIntegral(); info.theme = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.visible = fdp.ConsumeBool(); info.kind = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); } void GetRandomAbilityExperienceRule(FuzzedDataProvider& fdp, AbilityExperienceRule& rule) { rule.resultCode = fdp.ConsumeIntegral(); rule.sceneCode = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); rule.isBackSkuExempt = fdp.ConsumeBool(); rule.embedResultCode = fdp.ConsumeIntegral(); } void GetRandomAutoStartupInfo(FuzzedDataProvider& fdp, AutoStartupInfo& info) { info.appCloneIndex = fdp.ConsumeIntegral(); info.userId = fdp.ConsumeIntegral(); info.retryCount = fdp.ConsumeIntegral(); info.bundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.abilityName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.moduleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.abilityTypeName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.accessTokenId = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); } void GetRandomBundleInfo(FuzzedDataProvider& fdp, BundleInfo& info) { info.isNewVersion = fdp.ConsumeBool(); info.isKeepAlive = fdp.ConsumeBool(); info.singleton = fdp.ConsumeBool(); info.isPreInstallApp = fdp.ConsumeBool(); info.isNativeApp = fdp.ConsumeBool(); info.entryInstallationFree = fdp.ConsumeBool(); info.isDifferentName = fdp.ConsumeBool(); info.versionCode = fdp.ConsumeIntegral(); info.minCompatibleVersionCode = fdp.ConsumeIntegral(); info.compatibleVersion = fdp.ConsumeIntegral(); info.targetVersion = fdp.ConsumeIntegral(); info.appIndex = fdp.ConsumeIntegral(); info.minSdkVersion = fdp.ConsumeIntegral(); info.maxSdkVersion = fdp.ConsumeIntegral(); info.overlayType = fdp.ConsumeIntegral(); info.installTime = fdp.ConsumeIntegral(); info.updateTime = fdp.ConsumeIntegral(); info.firstInstallTime = fdp.ConsumeIntegral(); info.name = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.versionName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.vendor = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.releaseType = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.mainEntry = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.entryModuleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.appId = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.cpuAbi = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.seInfo = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.label = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.description = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.jointUserId = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); GenerateSignatureInfo(fdp, info.signatureInfo); info.oldAppIds = GenerateStringArray(fdp); info.hapModuleNames = GenerateStringArray(fdp); info.moduleNames = GenerateStringArray(fdp); info.modulePublicDirs = GenerateStringArray(fdp); info.moduleDirs = GenerateStringArray(fdp); info.moduleResPaths = GenerateStringArray(fdp); info.reqPermissions = GenerateStringArray(fdp); info.defPermissions = GenerateStringArray(fdp); } void GetRandomKeepAliveInfo(FuzzedDataProvider& fdp, KeepAliveInfo& info) { info.userId = fdp.ConsumeIntegral(); info.setterId = fdp.ConsumeIntegral(); info.appType = static_cast(fdp.ConsumeIntegralInRange(0, CODE_TWO)); info.setter = static_cast(fdp.ConsumeIntegralInRange(0, CODE_TWO)); info.policy = static_cast(fdp.ConsumeIntegralInRange(0, CODE_TWO)); info.bundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); } void GetRandomKeepAliveAbilityInfo(FuzzedDataProvider& fdp, KeepAliveAbilityInfo& info) { info.userId = fdp.ConsumeIntegral(); info.appCloneIndex = fdp.ConsumeIntegral(); info.uid = fdp.ConsumeIntegral(); info.bundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.moduleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.abilityName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); } void GetRandomKeepAliveAppInfo(FuzzedDataProvider& fdp, AppInfo& info) { info.processName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.state = static_cast(fdp.ConsumeIntegralInRange(0, CODE_TWO)); info.pid = fdp.ConsumeIntegral(); info.appIndex = fdp.ConsumeIntegral(); info.instanceKey = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.bundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); } void GetRandomAppqfInfo(FuzzedDataProvider& fdp, AppqfInfo& deployedAppqfInfo) { deployedAppqfInfo.type = static_cast(fdp.ConsumeIntegralInRange(0, CODE_TWO)); deployedAppqfInfo.versionCode = fdp.ConsumeIntegral(); deployedAppqfInfo.versionName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); deployedAppqfInfo.cpuAbi = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); deployedAppqfInfo.nativeLibraryPath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); std::vector hqfInfos; } void GetRandomDeployingAppqfInfo(FuzzedDataProvider& fdp, AppqfInfo& deployingAppqfInfo) { deployingAppqfInfo.type = static_cast(fdp.ConsumeIntegralInRange(0, CODE_TWO)); deployingAppqfInfo.versionCode = fdp.ConsumeIntegral(); deployingAppqfInfo.versionName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); deployingAppqfInfo.cpuAbi = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); deployingAppqfInfo.nativeLibraryPath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); std::vector hqfInfos; } void GetRandomAppQuickFix(FuzzedDataProvider& fdp, AppQuickFix& appQuickFix) { appQuickFix.versionCode = fdp.ConsumeIntegral(); appQuickFix.bundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appQuickFix.versionName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); GetRandomAppqfInfo(fdp, appQuickFix.deployedAppqfInfo); GetRandomDeployingAppqfInfo(fdp, appQuickFix.deployingAppqfInfo); } void GetRandomResourceInfo(FuzzedDataProvider& fdp, Resource& labelResource) { labelResource.bundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); labelResource.moduleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); labelResource.id = fdp.ConsumeIntegral(); } void GetRandomApplicationInfo(FuzzedDataProvider& fdp, ApplicationInfo& appInfo) { appInfo.name = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.bundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.versionCode = fdp.ConsumeIntegral(); appInfo.versionName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.minCompatibleVersionCode = fdp.ConsumeIntegral(); appInfo.apiCompatibleVersion = fdp.ConsumeIntegral(); appInfo.apiTargetVersion = fdp.ConsumeIntegral(); appInfo.crowdtestDeadline = fdp.ConsumeIntegral(); appInfo.iconPath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.iconId = fdp.ConsumeIntegral(); GetRandomResourceInfo(fdp, appInfo.labelResource); appInfo.label = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.labelId = fdp.ConsumeIntegral(); GetRandomResourceInfo(fdp, appInfo.labelResource); appInfo.description = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.descriptionId = fdp.ConsumeIntegral(); GetRandomResourceInfo(fdp, appInfo.labelResource); appInfo.keepAlive = fdp.ConsumeBool(); appInfo.removable = fdp.ConsumeBool(); appInfo.singleton = fdp.ConsumeBool(); appInfo.userDataClearable = fdp.ConsumeBool(); appInfo.allowAppRunWhenDeviceFirstLocked = fdp.ConsumeBool(); appInfo.accessible = fdp.ConsumeBool(); appInfo.runningResourcesApply = fdp.ConsumeBool(); appInfo.associatedWakeUp = fdp.ConsumeBool(); appInfo.hideDesktopIcon = fdp.ConsumeBool(); appInfo.formVisibleNotify = fdp.ConsumeBool(); appInfo.installedForAllUser = fdp.ConsumeBool(); appInfo.allowEnableNotification = fdp.ConsumeBool(); appInfo.allowMultiProcess = fdp.ConsumeBool(); appInfo.gwpAsanEnabled = fdp.ConsumeBool(); appInfo.hasPlugin = fdp.ConsumeBool(); appInfo.allowCommonEvent = GenerateStringArray(fdp); appInfo.assetAccessGroups = GenerateStringArray(fdp); appInfo.isSystemApp = fdp.ConsumeBool(); appInfo.isLauncherApp = fdp.ConsumeBool(); appInfo.isFreeInstallApp = fdp.ConsumeBool(); appInfo.asanEnabled = fdp.ConsumeBool(); appInfo.asanLogPath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.codePath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.dataDir = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.dataBaseDir = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.cacheDir = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.entryDir = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.apiReleaseType = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.debug = fdp.ConsumeBool(); appInfo.deviceId = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.distributedNotificationEnabled = fdp.ConsumeBool(); appInfo.entityType = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.process = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.supportedModes = fdp.ConsumeIntegral(); appInfo.vendor = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.appPrivilegeLevel = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.appDistributionType = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.appProvisionType = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.accessTokenId = fdp.ConsumeIntegral(); appInfo.applicationReservedFlag = fdp.ConsumeIntegral(); appInfo.accessTokenIdEx = fdp.ConsumeIntegral(); appInfo.enabled = fdp.ConsumeBool(); appInfo.appIndex = fdp.ConsumeIntegral(); appInfo.uid = fdp.ConsumeIntegral(); appInfo.maxChildProcess = fdp.ConsumeIntegral(); appInfo.nativeLibraryPath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.cpuAbi = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.arkNativeFilePath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.arkNativeFileAbi = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.permissions = GenerateStringArray(fdp); appInfo.moduleSourceDirs = GenerateStringArray(fdp); appInfo.targetBundleList = GenerateStringArray(fdp); appInfo.fingerprint = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); GetRandomAppQuickFix(fdp, appInfo.appQuickFix); appInfo.icon = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.flags = fdp.ConsumeIntegral(); appInfo.entryModuleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.isCompressNativeLibs = fdp.ConsumeBool(); appInfo.signatureKey = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.multiProjects = fdp.ConsumeBool(); appInfo.tsanEnabled = fdp.ConsumeBool(); appInfo.hwasanEnabled = fdp.ConsumeBool(); appInfo.ubsanEnabled = fdp.ConsumeBool(); appInfo.cloudFileSyncEnabled = fdp.ConsumeBool(); appInfo.needAppDetail = fdp.ConsumeBool(); appInfo.appDetailAbilityLibraryPath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.targetBundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.targetPriority = fdp.ConsumeIntegral(); appInfo.overlayState = fdp.ConsumeIntegral(); appInfo.bundleType = static_cast(fdp.ConsumeIntegralInRange(0, CODE_TWO)); appInfo.compileSdkVersion = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.compileSdkType = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.organization = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.installSource = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); appInfo.configuration = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); } void GetRandomAbilityRequestInfo(FuzzedDataProvider& fdp, AbilityRequest& info) { info.restart = fdp.ConsumeBool(); info.startRecent = fdp.ConsumeBool(); info.uriReservedFlag = fdp.ConsumeBool(); info.isFromIcon = fdp.ConsumeBool(); info.isShellCall = fdp.ConsumeBool(); info.isQueryERMS = fdp.ConsumeBool(); info.isEmbeddedAllowed = fdp.ConsumeBool(); info.callSpecifiedFlagTimeout = fdp.ConsumeBool(); info.hideStartWindow = fdp.ConsumeBool(); info.restartCount = fdp.ConsumeIntegral(); info.uid = fdp.ConsumeIntegral(); info.collaboratorType = static_cast(fdp.ConsumeIntegralInRange(0, CODE_TWO)); info.callerTokenRecordId = fdp.ConsumeIntegral(); info.userId = fdp.ConsumeIntegral(); info.callerAccessTokenId = fdp.ConsumeIntegral(); info.specifyTokenId = fdp.ConsumeIntegral(); info.callerUid = fdp.ConsumeIntegral(); info.requestCode = fdp.ConsumeIntegral(); info.callType = static_cast(fdp.ConsumeIntegralInRange(0, CODE_TWO)); info.restartTime = fdp.ConsumeIntegral(); info.extensionType = static_cast(fdp.ConsumeIntegralInRange(0, CODE_TWO)); info.extensionProcessMode = static_cast(fdp.ConsumeIntegralInRange(0, CODE_TWO)); info.specifiedFlag = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.customProcess = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.reservedBundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.appId = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); info.startTime = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); Want want; GetRandomAbilityInfo(fdp, info.abilityInfo); GetRandomApplicationInfo(fdp, info.appInfo); } void GetRandomStartOptions(FuzzedDataProvider& fdp, StartOptions& startOptions) { startOptions.windowLeftUsed_ = fdp.ConsumeBool(); startOptions.windowTopUsed_ = fdp.ConsumeBool(); startOptions.windowWidthUsed_ = fdp.ConsumeBool(); startOptions.windowHeightUsed_ = fdp.ConsumeBool(); startOptions.minWindowWidthUsed_ = fdp.ConsumeBool(); startOptions.minWindowHeightUsed_ = fdp.ConsumeBool(); startOptions.maxWindowWidthUsed_ = fdp.ConsumeBool(); startOptions.maxWindowHeightUsed_ = fdp.ConsumeBool(); startOptions.requestId_ = fdp.ConsumeRandomLengthString(); startOptions.SetWithAnimation(fdp.ConsumeBool()); startOptions.SetWindowFocused(fdp.ConsumeBool()); startOptions.SetHideStartWindow(fdp.ConsumeBool()); startOptions.SetWindowMode(fdp.ConsumeIntegral()); startOptions.SetDisplayID(fdp.ConsumeIntegral()); startOptions.SetWindowLeft(fdp.ConsumeIntegral()); startOptions.SetWindowTop(fdp.ConsumeIntegral()); startOptions.SetWindowWidth(fdp.ConsumeIntegral()); startOptions.SetWindowHeight(fdp.ConsumeIntegral()); startOptions.SetMinWindowWidth(fdp.ConsumeIntegral()); startOptions.SetMinWindowHeight(fdp.ConsumeIntegral()); startOptions.SetMaxWindowWidth(fdp.ConsumeIntegral()); startOptions.SetMaxWindowHeight(fdp.ConsumeIntegral()); } } // namespace AbilityFuzzUtil } // namespace AppExecFwk } // namespace OHOS #endif // BMS_FUZZTEST_UTIL_H