mirror of
https://github.com/openharmony/ability_ability_runtime.git
synced 2026-08-24 22:21:36 -04:00
b7e23e1f6a
add fuzz Created-by: zhongshield1 Commit-by: zhangzezhong Merged-by: openharmony_ci Description: **IssueNo**: https://gitcode.com/openharmony/ability_ability_runtime/issues/14125 **Description**: **稳定性自检:** | 自检项 | 自检结果 | | ------------------------------------------------------------ | -------- | | 涉及跨进程调用的相关操作需要抛至主线程或加锁防止并发 | | | 成员变量进行赋值或创建需要排查并发 | | | 谨慎在lambda表达式中使用引用捕获 | | | 谨慎在未经拷贝的情况下使用外部传入的string、C字符串 | | | map\vector\list\set等stl模板类使用时需要排查并发 | | | 谨慎考虑加锁范围 | | | 在IPC通信中谨慎使用同步通信方式 | | | 禁止传递this指针至其他模块或线程(特别是eventhandler任务) | | | 禁止将外部传入的裸指针在内部直接构造智能指针 | | | 禁止多个独立创建的智能指针管理同一地址 | | | 禁止在析构函数中抛异步任务 | | | 禁止js对象在非js线程(例如在IPC线程)创建、使用或销毁 | | | 禁止在对外接口中未经判空直接使用外部传入的指针 | | | 禁止接口返回局部变量引用 | | | 禁止在信号函数中加锁 | | | 禁止在关键流程(SA启动、应用启动等主流程)执行耗时的操作 | | | 禁止将同一个cpp编译在不同的so中 | | **安全编码自检:** | 自检项 | 自检结果 | | -------------------------------------------------------------- | -------- | | 裸指针避免通过隐式转换构造为sptr | | | json对象在取值之前必须先判断类型,避免类型不匹配 | | | 序列化时必须对传入的数组大小进行校验,避免出现超大数组 | | | 避免使用未明确位宽的整型,选择使用int8_t、uint8_t等类型 | | | 外部传入的路径要做规范化校验,对路径中的.、..、../等特殊字符严格校验 | | | 指针变量、表示资源描述符的变量、bool变量必须赋初值 | | | readParcelable获取的对象使用前需要判空 | | | 分配和释放内存的函数需要成对出现 | | | 申请内存后异常退出前需要及时进行内存释放 | | | 内存申请前必须对内存大小进行合法性校验 | | | 内存分配后必须判断是否成功 | | | 禁止使用realloc、alloca函数 | | | 禁止打印文件路径、口令等敏感信息,如有需要,使用private修饰 | | | 禁止打印内存地址 | | | 整数之间运算时必须严格检查,确保不会出现溢出、反转、除0 | | | 禁止对有符号整数进行位操作符运算 | | | 禁止对指针进行逻辑或位运算 | | | 循环次数如果收外部数据控制,需要检验其合法性 | | | 禁止使用内存操作类危险函数,需要使用安全函数 | | | 谨慎使用不可重入函数 | | | 必须检查安全函数的返回值,并进行正确处理 | | | 禁止仅通过TokenType类型判断绕过权限校验 | | **TDD Result**: **XTS Result**: ### 是否已执行L0用例 - [ ] 已验证 - [ ] 不涉及。如不涉及,请写明理由 See merge request: openharmony/ability_ability_runtime!17992
938 lines
50 KiB
C++
938 lines
50 KiB
C++
/*
|
|
* Copyright (c) 2025-2026 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 <fuzzer/FuzzedDataProvider.h>
|
|
#include <map>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#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 "disposed_rule.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"
|
|
#include "insight_intent_profile.h"
|
|
|
|
namespace OHOS {
|
|
namespace AppExecFwk {
|
|
namespace AbilityFuzzUtil {
|
|
constexpr size_t CODE_ONE = 1;
|
|
constexpr size_t CODE_TWO = 2;
|
|
constexpr size_t CODE_THREE = 3;
|
|
constexpr size_t CODE_FOUR = 4;
|
|
constexpr size_t CODE_FIVE = 5;
|
|
constexpr size_t CODE_TEN = 10;
|
|
constexpr size_t CODE_FOURTEEN = 14;
|
|
constexpr size_t CODE_TWENTYFIVE = 25;
|
|
constexpr size_t CODE_MAX = 99;
|
|
constexpr size_t STRING_MAX_LENGTH = 128;
|
|
|
|
std::vector<std::string> GenerateStringArray(FuzzedDataProvider& fdp, size_t arraySizeMax = STRING_MAX_LENGTH,
|
|
size_t stringSize = STRING_MAX_LENGTH)
|
|
{
|
|
std::vector<std::string> result;
|
|
size_t arraySize = fdp.ConsumeIntegralInRange<size_t>(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;
|
|
}
|
|
|
|
ExecuteMode GetRandomExecuteMode(FuzzedDataProvider& fdp)
|
|
{
|
|
return static_cast<ExecuteMode>(fdp.ConsumeIntegralInRange<int>(
|
|
static_cast<int>(ExecuteMode::UI_ABILITY_FOREGROUND),
|
|
static_cast<int>(ExecuteMode::SERVICE_EXTENSION_ABILITY)
|
|
));
|
|
}
|
|
|
|
void GetRandomUIAbilityIntentInfo(FuzzedDataProvider& fdp, UIAbilityIntentInfo& info)
|
|
{
|
|
info.abilityName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
size_t modeCount = fdp.ConsumeIntegralInRange<size_t>(0, 1);
|
|
for (size_t i = 0; i < modeCount; ++i) {
|
|
info.supportExecuteMode.push_back(GetRandomExecuteMode(fdp));
|
|
}
|
|
}
|
|
|
|
void GetRandomUIExtensionIntentInfo(FuzzedDataProvider& fdp, UIExtensionIntentInfo& info)
|
|
{
|
|
info.abilityName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
}
|
|
|
|
void GetRandomServiceExtensionIntentInfo(FuzzedDataProvider& fdp, ServiceExtensionIntentInfo& info)
|
|
{
|
|
info.abilityName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
}
|
|
|
|
void GetRandomFormIntentInfo(FuzzedDataProvider& fdp, FormIntentInfo& info)
|
|
{
|
|
info.abilityName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
info.formName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
}
|
|
|
|
|
|
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);
|
|
InsightIntentEntityInfo entities;
|
|
entities.decoratorFile = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
entities.className = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
entities.decoratorType = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
entities.entityCategory = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
entities.parameters = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
entities.parentClassName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
info.entities.push_back(entities);
|
|
}
|
|
|
|
void GetRandomInsightIntentExecuteParam(FuzzedDataProvider& fdp, InsightIntentExecuteParam& info)
|
|
{
|
|
info.executeMode_ = fdp.ConsumeIntegral<int32_t>();
|
|
info.displayId_ = fdp.ConsumeIntegral<int32_t>();
|
|
info.flags_ = fdp.ConsumeIntegral<int32_t>();
|
|
info.insightIntentId_ = fdp.ConsumeIntegral<uint64_t>();
|
|
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<int8_t>();
|
|
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 GetRandomInsightIntentInfo(FuzzedDataProvider& fdp, InsightIntentInfo& info)
|
|
{
|
|
info.intentName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
info.intentDomain = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
info.intentVersion = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
info.srcEntry = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
info.arkTSMode = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
info.cfgEntities = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
info.displayName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
info.icon = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
info.displayDescription = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
info.bundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
info.moduleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
|
|
info.inputParams = GenerateStringArray(fdp);
|
|
info.outputParams = GenerateStringArray(fdp);
|
|
info.keywords = GenerateStringArray(fdp);
|
|
|
|
GetRandomUIAbilityIntentInfo(fdp, info.uiAbilityIntentInfo);
|
|
GetRandomUIExtensionIntentInfo(fdp, info.uiExtensionIntentInfo);
|
|
GetRandomServiceExtensionIntentInfo(fdp, info.serviceExtensionIntentInfo);
|
|
GetRandomFormIntentInfo(fdp, info.formIntentInfo);
|
|
}
|
|
|
|
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<int32_t>();
|
|
status.setterId = fdp.ConsumeIntegral<int32_t>();
|
|
status.setter = static_cast<KeepAliveSetter>(fdp.ConsumeIntegralInRange<int32_t>(0, CODE_TWO));
|
|
}
|
|
|
|
void GetRandomDlpConnectionInfo(FuzzedDataProvider& fdp, DlpConnectionInfo& info)
|
|
{
|
|
info.dlpUid = fdp.ConsumeIntegral<int32_t>();
|
|
info.openedAbilityCount = fdp.ConsumeIntegral<int32_t>();
|
|
}
|
|
|
|
void GetRandomConnectionData(FuzzedDataProvider& fdp, ConnectionData& info)
|
|
{
|
|
info.isSuspended = fdp.ConsumeBool();
|
|
info.extensionPid = fdp.ConsumeIntegral<uint32_t>();
|
|
info.extensionUid = fdp.ConsumeIntegral<uint32_t>();
|
|
info.callerUid = fdp.ConsumeIntegral<uint32_t>();
|
|
info.callerPid = fdp.ConsumeIntegral<uint32_t>();
|
|
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<uint32_t>();
|
|
info.targetUid = fdp.ConsumeIntegral<uint32_t>();
|
|
info.callerUid = fdp.ConsumeIntegral<uint32_t>();
|
|
info.callerPid = fdp.ConsumeIntegral<uint32_t>();
|
|
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<int32_t>();
|
|
info.descriptionId = fdp.ConsumeIntegral<int32_t>();
|
|
info.iconId = fdp.ConsumeIntegral<int32_t>();
|
|
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<int32_t>();
|
|
rule.sceneCode = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
rule.isBackSkuExempt = fdp.ConsumeBool();
|
|
rule.embedResultCode = fdp.ConsumeIntegral<int32_t>();
|
|
}
|
|
|
|
void GetRandomAutoStartupInfo(FuzzedDataProvider& fdp, AutoStartupInfo& info)
|
|
{
|
|
info.appCloneIndex = fdp.ConsumeIntegral<int32_t>();
|
|
info.userId = fdp.ConsumeIntegral<int32_t>();
|
|
info.retryCount = fdp.ConsumeIntegral<int32_t>();
|
|
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<uint32_t>();
|
|
info.minCompatibleVersionCode = fdp.ConsumeIntegral<uint32_t>();
|
|
info.compatibleVersion = fdp.ConsumeIntegral<uint32_t>();
|
|
info.targetVersion = fdp.ConsumeIntegral<uint32_t>();
|
|
info.appIndex = fdp.ConsumeIntegral<int32_t>();
|
|
info.minSdkVersion = fdp.ConsumeIntegral<int32_t>();
|
|
info.maxSdkVersion = fdp.ConsumeIntegral<int32_t>();
|
|
info.overlayType = fdp.ConsumeIntegral<int32_t>();
|
|
info.installTime = fdp.ConsumeIntegral<int64_t>();
|
|
info.updateTime = fdp.ConsumeIntegral<int64_t>();
|
|
info.firstInstallTime = fdp.ConsumeIntegral<int64_t>();
|
|
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<int32_t>();
|
|
info.setterId = fdp.ConsumeIntegral<int32_t>();
|
|
info.appType = static_cast<KeepAliveAppType>(fdp.ConsumeIntegralInRange<int32_t>(0, CODE_TWO));
|
|
info.setter = static_cast<KeepAliveSetter>(fdp.ConsumeIntegralInRange<int32_t>(0, CODE_TWO));
|
|
info.policy = static_cast<KeepAlivePolicy>(fdp.ConsumeIntegralInRange<int32_t>(0, CODE_TWO));
|
|
info.bundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
}
|
|
|
|
void GetRandomKeepAliveAbilityInfo(FuzzedDataProvider& fdp, KeepAliveAbilityInfo& info)
|
|
{
|
|
info.userId = fdp.ConsumeIntegral<int32_t>();
|
|
info.appCloneIndex = fdp.ConsumeIntegral<int32_t>();
|
|
info.uid = fdp.ConsumeIntegral<int32_t>();
|
|
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<AppState>(fdp.ConsumeIntegralInRange<int32_t>(0, CODE_TWO));
|
|
info.pid = fdp.ConsumeIntegral<uint32_t>();
|
|
info.appIndex = fdp.ConsumeIntegral<int32_t>();
|
|
info.instanceKey = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
info.bundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
}
|
|
|
|
void GetRandomAppqfInfo(FuzzedDataProvider& fdp, AppqfInfo& deployedAppqfInfo)
|
|
{
|
|
deployedAppqfInfo.type = static_cast<QuickFixType>(fdp.ConsumeIntegralInRange<int8_t>(0, CODE_TWO));
|
|
deployedAppqfInfo.versionCode = fdp.ConsumeIntegral<int32_t>();
|
|
deployedAppqfInfo.versionName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
deployedAppqfInfo.cpuAbi = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
deployedAppqfInfo.nativeLibraryPath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
std::vector<HqfInfo> hqfInfos;
|
|
}
|
|
|
|
void GetRandomDeployingAppqfInfo(FuzzedDataProvider& fdp, AppqfInfo& deployingAppqfInfo)
|
|
{
|
|
deployingAppqfInfo.type = static_cast<QuickFixType>(fdp.ConsumeIntegralInRange<int8_t>(0, CODE_TWO));
|
|
deployingAppqfInfo.versionCode = fdp.ConsumeIntegral<int32_t>();
|
|
deployingAppqfInfo.versionName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
deployingAppqfInfo.cpuAbi = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
deployingAppqfInfo.nativeLibraryPath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
std::vector<HqfInfo> hqfInfos;
|
|
}
|
|
|
|
void GetRandomAppQuickFix(FuzzedDataProvider& fdp, AppQuickFix& appQuickFix)
|
|
{
|
|
appQuickFix.versionCode = fdp.ConsumeIntegral<int32_t>();
|
|
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<int32_t>();
|
|
}
|
|
|
|
void GetRandomApplicationInfo(FuzzedDataProvider& fdp, ApplicationInfo& appInfo)
|
|
{
|
|
appInfo.name = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
appInfo.bundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
appInfo.versionCode = fdp.ConsumeIntegral<int32_t>();
|
|
appInfo.versionName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
appInfo.minCompatibleVersionCode = fdp.ConsumeIntegral<int32_t>();
|
|
appInfo.apiCompatibleVersion = fdp.ConsumeIntegral<int32_t>();
|
|
appInfo.apiTargetVersion = fdp.ConsumeIntegral<int32_t>();
|
|
appInfo.crowdtestDeadline = fdp.ConsumeIntegral<int64_t>();
|
|
appInfo.iconPath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
appInfo.iconId = fdp.ConsumeIntegral<int32_t>();
|
|
GetRandomResourceInfo(fdp, appInfo.labelResource);
|
|
appInfo.label = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
appInfo.labelId = fdp.ConsumeIntegral<int32_t>();
|
|
GetRandomResourceInfo(fdp, appInfo.labelResource);
|
|
appInfo.description = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
appInfo.descriptionId = fdp.ConsumeIntegral<int32_t>();
|
|
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<int32_t>();
|
|
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<int32_t>();
|
|
appInfo.applicationReservedFlag = fdp.ConsumeIntegral<int32_t>();
|
|
appInfo.accessTokenIdEx = fdp.ConsumeIntegral<int64_t>();
|
|
appInfo.enabled = fdp.ConsumeBool();
|
|
appInfo.appIndex = fdp.ConsumeIntegral<int64_t>();
|
|
appInfo.uid = fdp.ConsumeIntegral<int32_t>();
|
|
appInfo.maxChildProcess = fdp.ConsumeIntegral<int32_t>();
|
|
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<int32_t>();
|
|
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<int32_t>();
|
|
appInfo.overlayState = fdp.ConsumeIntegral<int32_t>();
|
|
appInfo.bundleType = static_cast<BundleType>(fdp.ConsumeIntegralInRange<int32_t>(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<uint32_t>();
|
|
info.uid = fdp.ConsumeIntegral<uint32_t>();
|
|
info.collaboratorType = static_cast<CollaboratorType>(fdp.ConsumeIntegralInRange<int32_t>(0, CODE_TWO));
|
|
info.callerTokenRecordId = fdp.ConsumeIntegral<uint32_t>();
|
|
info.userId = fdp.ConsumeIntegral<uint32_t>();
|
|
info.callerAccessTokenId = fdp.ConsumeIntegral<uint32_t>();
|
|
info.specifyTokenId = fdp.ConsumeIntegral<uint32_t>();
|
|
info.callerUid = fdp.ConsumeIntegral<uint32_t>();
|
|
info.requestCode = fdp.ConsumeIntegral<uint32_t>();
|
|
info.callType = static_cast<AbilityCallType>(fdp.ConsumeIntegralInRange<int32_t>(0, CODE_TWO));
|
|
info.restartTime = fdp.ConsumeIntegral<uint64_t>();
|
|
info.extensionType = static_cast<ExtensionAbilityType>(fdp.ConsumeIntegralInRange<int32_t>(0, CODE_TWO));
|
|
info.extensionProcessMode = static_cast<ExtensionProcessMode>(fdp.ConsumeIntegralInRange<int32_t>(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<int32_t>());
|
|
startOptions.SetDisplayID(fdp.ConsumeIntegral<int32_t>());
|
|
startOptions.SetWindowLeft(fdp.ConsumeIntegral<int32_t>());
|
|
startOptions.SetWindowTop(fdp.ConsumeIntegral<int32_t>());
|
|
startOptions.SetWindowWidth(fdp.ConsumeIntegral<int32_t>());
|
|
startOptions.SetWindowHeight(fdp.ConsumeIntegral<int32_t>());
|
|
startOptions.SetMinWindowWidth(fdp.ConsumeIntegral<int32_t>());
|
|
startOptions.SetMinWindowHeight(fdp.ConsumeIntegral<int32_t>());
|
|
startOptions.SetMaxWindowWidth(fdp.ConsumeIntegral<int32_t>());
|
|
startOptions.SetMaxWindowHeight(fdp.ConsumeIntegral<int32_t>());
|
|
}
|
|
|
|
void GetRandomDisposedRule(FuzzedDataProvider& fdp, DisposedRule& disposedRule)
|
|
{
|
|
disposedRule.isEdm = fdp.ConsumeBool();
|
|
disposedRule.priority = fdp.ConsumeIntegral<int32_t>();
|
|
disposedRule.componentType = static_cast<ComponentType>(fdp.ConsumeIntegralInRange<uint8_t>(CODE_ONE, CODE_TWO));
|
|
disposedRule.disposedType = static_cast<DisposedType>(fdp.ConsumeIntegralInRange<uint8_t>(CODE_ONE, CODE_THREE));
|
|
disposedRule.controlType = static_cast<ControlType>(fdp.ConsumeIntegralInRange<uint8_t>(CODE_ONE, CODE_TWO));
|
|
disposedRule.callerName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
disposedRule.setTime = fdp.ConsumeIntegral<int64_t>();
|
|
|
|
size_t arraySize = fdp.ConsumeIntegralInRange<size_t>(0, CODE_THREE);
|
|
disposedRule.elementList.reserve(arraySize);
|
|
for (size_t i = 0; i < arraySize; ++i) {
|
|
ElementName elementName;
|
|
GenerateElementName(fdp, elementName);
|
|
disposedRule.elementList.emplace_back(elementName);
|
|
}
|
|
}
|
|
|
|
std::vector<DisposedRule> GetRandomDisposedRulesList(FuzzedDataProvider& fdp, size_t arraySizeMax = CODE_TEN)
|
|
{
|
|
std::vector<DisposedRule> result;
|
|
size_t arraySize = fdp.ConsumeIntegralInRange<size_t>(0, arraySizeMax);
|
|
result.reserve(arraySize);
|
|
|
|
for (size_t i = 0; i < arraySize; ++i) {
|
|
DisposedRule disposedRule;
|
|
GetRandomDisposedRule(fdp, disposedRule);
|
|
result.emplace_back(disposedRule);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
void GenerateApplicationInfo(FuzzedDataProvider& fdp, ApplicationInfo& applicationInfo)
|
|
{
|
|
applicationInfo.keepAlive = fdp.ConsumeBool();
|
|
applicationInfo.removable = fdp.ConsumeBool();
|
|
applicationInfo.singleton = fdp.ConsumeBool();
|
|
applicationInfo.userDataClearable = fdp.ConsumeBool();
|
|
applicationInfo.allowAppRunWhenDeviceFirstLocked = fdp.ConsumeBool();
|
|
applicationInfo.accessible = fdp.ConsumeBool();
|
|
applicationInfo.runningResourcesApply = fdp.ConsumeBool();
|
|
applicationInfo.associatedWakeUp = fdp.ConsumeBool();
|
|
applicationInfo.hideDesktopIcon = fdp.ConsumeBool();
|
|
applicationInfo.formVisibleNotify = fdp.ConsumeBool();
|
|
applicationInfo.isSystemApp = fdp.ConsumeBool();
|
|
applicationInfo.isLauncherApp = fdp.ConsumeBool();
|
|
applicationInfo.isFreeInstallApp = fdp.ConsumeBool();
|
|
applicationInfo.asanEnabled = fdp.ConsumeBool();
|
|
applicationInfo.debug = fdp.ConsumeBool();
|
|
applicationInfo.distributedNotificationEnabled = fdp.ConsumeBool();
|
|
applicationInfo.installedForAllUser = fdp.ConsumeBool();
|
|
applicationInfo.allowEnableNotification = fdp.ConsumeBool();
|
|
applicationInfo.allowMultiProcess = fdp.ConsumeBool();
|
|
applicationInfo.gwpAsanEnabled = fdp.ConsumeBool();
|
|
applicationInfo.enabled = fdp.ConsumeBool();
|
|
applicationInfo.hasPlugin = fdp.ConsumeBool();
|
|
applicationInfo.multiProjects = fdp.ConsumeBool();
|
|
applicationInfo.isCompressNativeLibs = fdp.ConsumeBool();
|
|
applicationInfo.tsanEnabled = fdp.ConsumeBool();
|
|
applicationInfo.hwasanEnabled = fdp.ConsumeBool();
|
|
applicationInfo.ubsanEnabled = fdp.ConsumeBool();
|
|
applicationInfo.cloudFileSyncEnabled = fdp.ConsumeBool();
|
|
applicationInfo.cloudStructuredDataSyncEnabled = fdp.ConsumeBool();
|
|
applicationInfo.needAppDetail = fdp.ConsumeBool();
|
|
applicationInfo.versionCode = fdp.ConsumeIntegral<uint32_t>();
|
|
applicationInfo.apiCompatibleVersion = fdp.ConsumeIntegral<uint32_t>();
|
|
applicationInfo.iconId = fdp.ConsumeIntegral<uint32_t>();
|
|
applicationInfo.labelId = fdp.ConsumeIntegral<uint32_t>();
|
|
applicationInfo.descriptionId = fdp.ConsumeIntegral<uint32_t>();
|
|
applicationInfo.accessTokenId = fdp.ConsumeIntegral<uint32_t>();
|
|
applicationInfo.applicationReservedFlag = fdp.ConsumeIntegral<uint32_t>();
|
|
applicationInfo.apiTargetVersion = fdp.ConsumeIntegral<int32_t>();
|
|
applicationInfo.minCompatibleVersionCode = fdp.ConsumeIntegral<int32_t>();
|
|
applicationInfo.supportedModes = fdp.ConsumeIntegral<int32_t>();
|
|
applicationInfo.appIndex = fdp.ConsumeIntegral<int32_t>();
|
|
applicationInfo.uid = fdp.ConsumeIntegral<int32_t>();
|
|
applicationInfo.flags = fdp.ConsumeIntegral<int32_t>();
|
|
applicationInfo.targetPriority = fdp.ConsumeIntegral<int32_t>();
|
|
applicationInfo.overlayState = fdp.ConsumeIntegral<int32_t>();
|
|
applicationInfo.maxChildProcess = fdp.ConsumeIntegral<int32_t>();
|
|
applicationInfo.applicationFlags = fdp.ConsumeIntegral<int32_t>();
|
|
applicationInfo.bundleType = static_cast<BundleType>(fdp.ConsumeIntegralInRange<int32_t>(0, CODE_FOUR));
|
|
applicationInfo.crowdtestDeadline = fdp.ConsumeIntegral<int64_t>();
|
|
applicationInfo.accessTokenIdEx = fdp.ConsumeIntegral<uint64_t>();
|
|
applicationInfo.name = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.bundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.versionName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.iconPath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.label = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.description = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.asanLogPath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.codePath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.dataDir = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.dataBaseDir = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.cacheDir = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.entryDir = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.apiReleaseType = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.deviceId = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.entityType = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.process = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.vendor = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.appPrivilegeLevel = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.appDistributionType = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.appProvisionType = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.nativeLibraryPath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.cpuAbi = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.arkNativeFilePath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.arkNativeFileAbi = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.fingerprint = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.icon = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.entryModuleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.signatureKey = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.targetBundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.compileSdkVersion = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.compileSdkType = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.organization = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.appDetailAbilityLibraryPath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.installSource = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
applicationInfo.configuration = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
GetRandomResourceInfo(fdp, applicationInfo.iconResource);
|
|
GetRandomResourceInfo(fdp, applicationInfo.labelResource);
|
|
GetRandomResourceInfo(fdp, applicationInfo.descriptionResource);
|
|
|
|
applicationInfo.allowCommonEvent = GenerateStringArray(fdp);
|
|
applicationInfo.assetAccessGroups = GenerateStringArray(fdp);
|
|
|
|
applicationInfo.permissions = GenerateStringArray(fdp);
|
|
applicationInfo.moduleSourceDirs = GenerateStringArray(fdp);
|
|
applicationInfo.targetBundleList = GenerateStringArray(fdp);
|
|
}
|
|
|
|
void GenerateAbilityInfo(FuzzedDataProvider& fdp, AbilityInfo& abilityInfo)
|
|
{
|
|
abilityInfo.visible = fdp.ConsumeBool();
|
|
abilityInfo.isLauncherAbility = fdp.ConsumeBool();
|
|
abilityInfo.isNativeAbility = fdp.ConsumeBool();
|
|
abilityInfo.enabled = fdp.ConsumeBool();
|
|
abilityInfo.supportPipMode = fdp.ConsumeBool();
|
|
abilityInfo.formEnabled = fdp.ConsumeBool();
|
|
abilityInfo.removeMissionAfterTerminate = fdp.ConsumeBool();
|
|
abilityInfo.allowSelfRedirect = fdp.ConsumeBool();
|
|
abilityInfo.isModuleJson = fdp.ConsumeBool();
|
|
abilityInfo.isStageBasedModel = fdp.ConsumeBool();
|
|
abilityInfo.continuable = fdp.ConsumeBool();
|
|
abilityInfo.excludeFromMissions = fdp.ConsumeBool();
|
|
abilityInfo.unclearableMission = fdp.ConsumeBool();
|
|
abilityInfo.excludeFromDock = fdp.ConsumeBool();
|
|
abilityInfo.recoverable = fdp.ConsumeBool();
|
|
abilityInfo.isolationProcess = fdp.ConsumeBool();
|
|
abilityInfo.multiUserShared = fdp.ConsumeBool();
|
|
abilityInfo.grantPermission = fdp.ConsumeBool();
|
|
abilityInfo.directLaunch = fdp.ConsumeBool();
|
|
|
|
abilityInfo.linkType = static_cast<LinkType>(fdp.ConsumeIntegralInRange<uint8_t>(0, CODE_TWO));
|
|
abilityInfo.labelId = fdp.ConsumeIntegral<uint32_t>();
|
|
abilityInfo.descriptionId = fdp.ConsumeIntegral<uint32_t>();
|
|
abilityInfo.iconId = fdp.ConsumeIntegral<uint32_t>();
|
|
abilityInfo.orientationId = fdp.ConsumeIntegral<uint32_t>();
|
|
abilityInfo.formEntity = fdp.ConsumeIntegral<uint32_t>();
|
|
abilityInfo.backgroundModes = fdp.ConsumeIntegral<uint32_t>();
|
|
abilityInfo.startWindowId = fdp.ConsumeIntegral<uint32_t>();
|
|
abilityInfo.startWindowIconId = fdp.ConsumeIntegral<uint32_t>();
|
|
abilityInfo.startWindowBackgroundId = fdp.ConsumeIntegral<uint32_t>();
|
|
abilityInfo.maxWindowWidth = fdp.ConsumeIntegral<uint32_t>();
|
|
abilityInfo.minWindowWidth = fdp.ConsumeIntegral<uint32_t>();
|
|
abilityInfo.maxWindowHeight = fdp.ConsumeIntegral<uint32_t>();
|
|
abilityInfo.minWindowHeight = fdp.ConsumeIntegral<uint32_t>();
|
|
abilityInfo.packageSize = fdp.ConsumeIntegral<uint32_t>();
|
|
abilityInfo.minFormHeight = fdp.ConsumeIntegral<int32_t>();
|
|
abilityInfo.defaultFormHeight = fdp.ConsumeIntegral<int32_t>();
|
|
abilityInfo.minFormWidth = fdp.ConsumeIntegral<int32_t>();
|
|
abilityInfo.defaultFormWidth = fdp.ConsumeIntegral<int32_t>();
|
|
abilityInfo.priority = fdp.ConsumeIntegral<int32_t>();
|
|
abilityInfo.appIndex = fdp.ConsumeIntegral<int32_t>();
|
|
abilityInfo.uid = fdp.ConsumeIntegral<int32_t>();
|
|
abilityInfo.type = static_cast<AbilityType>(fdp.ConsumeIntegralInRange<uint8_t>(0, CODE_FIVE));
|
|
abilityInfo.extensionAbilityType =
|
|
static_cast<ExtensionAbilityType>(fdp.ConsumeIntegralInRange<uint16_t>(0, CODE_TWENTYFIVE));
|
|
abilityInfo.orientation = static_cast<DisplayOrientation>(fdp.ConsumeIntegralInRange<uint8_t>(0, CODE_FOURTEEN));
|
|
abilityInfo.launchMode = static_cast<LaunchMode>(fdp.ConsumeIntegralInRange<uint8_t>(0, CODE_TWO));
|
|
abilityInfo.compileMode = static_cast<CompileMode>(fdp.ConsumeIntegralInRange<uint8_t>(0, CODE_ONE));
|
|
abilityInfo.subType = static_cast<AbilitySubType>(fdp.ConsumeIntegralInRange<uint8_t>(0, CODE_ONE));
|
|
|
|
abilityInfo.name = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.label = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.description = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.iconPath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.theme = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.kind = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.extensionTypeName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.srcPath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.srcLanguage = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
|
|
abilityInfo.process = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.uri = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.targetAbility = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.readPermission = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.writePermission = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
|
|
abilityInfo.package = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.bundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.moduleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.applicationName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
|
|
abilityInfo.codePath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.resourcePath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.hapPath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
|
|
abilityInfo.srcEntrance = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
|
|
abilityInfo.startWindow = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.startWindowIcon = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.startWindowBackground = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.preferMultiWindowOrientation = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
|
|
abilityInfo.originalBundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.appName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.privacyUrl = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.privacyName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.downloadUrl = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.versionName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.className = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.originalClassName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.uriPermissionMode = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.uriPermissionPath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.libPath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
abilityInfo.deviceId = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
}
|
|
|
|
void GenerateAbilityRequestInfo(FuzzedDataProvider& fdp, AbilityRequest& info)
|
|
{
|
|
info.isStartInSplitMode = fdp.ConsumeBool();
|
|
info.restart = fdp.ConsumeBool();
|
|
info.startRecent = fdp.ConsumeBool();
|
|
info.uriReservedFlag = fdp.ConsumeBool();
|
|
info.isFromIcon = fdp.ConsumeBool();
|
|
info.isShellCall = fdp.ConsumeBool();
|
|
info.isTargetPlugin = fdp.ConsumeBool();
|
|
info.isQueryERMS = fdp.ConsumeBool();
|
|
info.isEmbeddedAllowed = fdp.ConsumeBool();
|
|
info.callSpecifiedFlagTimeout = fdp.ConsumeBool();
|
|
info.hideStartWindow = fdp.ConsumeBool();
|
|
info.primaryWindowId = fdp.ConsumeIntegral<int32_t>();
|
|
info.restartCount = fdp.ConsumeIntegral<int32_t>();
|
|
info.uid = fdp.ConsumeIntegral<int32_t>();
|
|
info.collaboratorType = fdp.ConsumeIntegralInRange<int32_t>(0, CODE_TWO);
|
|
info.callerTokenRecordId = fdp.ConsumeIntegral<int32_t>();
|
|
info.userId = fdp.ConsumeIntegral<int32_t>();
|
|
info.callerAccessTokenId = fdp.ConsumeIntegral<uint32_t>();
|
|
info.specifyTokenId = fdp.ConsumeIntegral<uint32_t>();
|
|
info.callerUid = fdp.ConsumeIntegral<int>();
|
|
info.requestCode = fdp.ConsumeIntegral<int>();
|
|
info.callType = static_cast<AbilityCallType>(fdp.ConsumeIntegralInRange<uint8_t>(0, CODE_FOUR));
|
|
info.restartTime = fdp.ConsumeIntegral<int64_t>();
|
|
info.supportWindowModes.reserve(STRING_MAX_LENGTH);
|
|
for (size_t i = 0; i < STRING_MAX_LENGTH; ++i) {
|
|
info.supportWindowModes.emplace_back(
|
|
static_cast<SupportWindowMode>(fdp.ConsumeIntegralInRange<uint8_t>(0, CODE_TWO)));
|
|
}
|
|
info.extensionProcessMode =
|
|
static_cast<ExtensionProcessMode>(fdp.ConsumeIntegralInRange<uint8_t>(0, CODE_FOUR) - 1);
|
|
info.specifiedFlag = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
info.customProcess = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
info.moduleProcess = 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);
|
|
info.hostBundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
GenerateAbilityInfo(fdp, info.abilityInfo);
|
|
GenerateApplicationInfo(fdp, info.appInfo);
|
|
GetRandomStartOptions(fdp, info.startOptions);
|
|
info.hideFailureTipDialog = fdp.ConsumeBool();
|
|
info.promotePriority = fdp.ConsumeBool();
|
|
info.specifiedFullTokenId = fdp.ConsumeIntegral<uint64_t>();
|
|
info.isFromOpenLink = fdp.ConsumeBool();
|
|
info.loadExtensionTimeout = fdp.ConsumeIntegral<int32_t>();
|
|
}
|
|
|
|
void GenerateDeviceFeatureMap(FuzzedDataProvider& fdp, std::map<std::string, std::vector<std::string>>& data)
|
|
{
|
|
const size_t numPairs = fdp.ConsumeIntegralInRange<size_t>(0, STRING_MAX_LENGTH);
|
|
for (size_t i = 0; i < numPairs; ++i) {
|
|
const std::string key = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
const std::vector<std::string> value = GenerateStringArray(fdp);
|
|
data[key] = value;
|
|
}
|
|
}
|
|
|
|
void GenerateHapModuleInfo(FuzzedDataProvider& fdp, HapModuleInfo& hapModuleInfo)
|
|
{
|
|
hapModuleInfo.compressNativeLibs = fdp.ConsumeBool();
|
|
hapModuleInfo.isLibIsolated = fdp.ConsumeBool();
|
|
hapModuleInfo.deliveryWithInstall = fdp.ConsumeBool();
|
|
hapModuleInfo.installationFree = fdp.ConsumeBool();
|
|
hapModuleInfo.isModuleJson = fdp.ConsumeBool();
|
|
hapModuleInfo.isStageBasedModel = fdp.ConsumeBool();
|
|
hapModuleInfo.hasIntent = fdp.ConsumeBool();
|
|
hapModuleInfo.resizeable = fdp.ConsumeBool();
|
|
hapModuleInfo.descriptionId = fdp.ConsumeIntegral<uint32_t>();
|
|
hapModuleInfo.iconId = fdp.ConsumeIntegral<uint32_t>();
|
|
hapModuleInfo.labelId = fdp.ConsumeIntegral<uint32_t>();
|
|
hapModuleInfo.upgradeFlag = fdp.ConsumeIntegral<int32_t>();
|
|
hapModuleInfo.supportedModes = fdp.ConsumeIntegral<int>();
|
|
hapModuleInfo.colorMode =
|
|
static_cast<ModuleColorMode>(fdp.ConsumeIntegralInRange<uint8_t>(0, CODE_TWO) - 1);
|
|
hapModuleInfo.moduleType = static_cast<ModuleType>(fdp.ConsumeIntegralInRange<uint8_t>(0, CODE_THREE));
|
|
hapModuleInfo.compileMode = fdp.ConsumeBool() ? CompileMode::ES_MODULE : CompileMode::JS_BUNDLE;
|
|
hapModuleInfo.aotCompileStatus =
|
|
static_cast<AOTCompileStatus>(fdp.ConsumeIntegralInRange<uint8_t>(0, CODE_FOUR));
|
|
hapModuleInfo.isolationMode = static_cast<IsolationMode>(fdp.ConsumeIntegralInRange<uint8_t>(0, CODE_THREE));
|
|
hapModuleInfo.name = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.package = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.moduleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.description = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.iconPath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.label = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.backgroundImg = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.mainAbility = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.srcPath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.hashValue = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.hapPath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.nativeLibraryPath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.cpuAbi = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.bundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.mainElementName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.pages = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.systemTheme = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.process = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.resourcePath = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.srcEntrance = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.uiSyntax = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.virtualMachine = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.moduleSourceDir = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.buildHash = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.fileContextMenu = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.routerMap = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.packageName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.abilitySrcEntryDelegator = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.abilityStageSrcEntryDelegator = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.appStartup = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);
|
|
hapModuleInfo.nativeLibraryFileNames = GenerateStringArray(fdp);
|
|
hapModuleInfo.reqCapabilities = GenerateStringArray(fdp);
|
|
hapModuleInfo.deviceTypes = GenerateStringArray(fdp);
|
|
GenerateDeviceFeatureMap(fdp, hapModuleInfo.requiredDeviceFeatures);
|
|
}
|
|
} // namespace AbilityFuzzUtil
|
|
} // namespace AppExecFwk
|
|
} // namespace OHOS
|
|
#endif // BMS_FUZZTEST_UTIL_H
|