122c0b7e4Sopenharmony_ci/*
222c0b7e4Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
322c0b7e4Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
422c0b7e4Sopenharmony_ci * you may not use this file except in compliance with the License.
522c0b7e4Sopenharmony_ci * You may obtain a copy of the License at
622c0b7e4Sopenharmony_ci *
722c0b7e4Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
822c0b7e4Sopenharmony_ci *
922c0b7e4Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1022c0b7e4Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1122c0b7e4Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1222c0b7e4Sopenharmony_ci * See the License for the specific language governing permissions and
1322c0b7e4Sopenharmony_ci * limitations under the License.
1422c0b7e4Sopenharmony_ci */
1522c0b7e4Sopenharmony_ci
1622c0b7e4Sopenharmony_ci#include "fuzztest_helper.h"
1722c0b7e4Sopenharmony_ci
1822c0b7e4Sopenharmony_ci#include "accesstoken_kit.h"
1922c0b7e4Sopenharmony_ci#include "nativetoken_kit.h"
2022c0b7e4Sopenharmony_ci#include "token_setproc.h"
2122c0b7e4Sopenharmony_ci
2222c0b7e4Sopenharmony_cinamespace OHOS {
2322c0b7e4Sopenharmony_cinamespace DeviceUsageStats {
2422c0b7e4Sopenharmony_ciFuzztestHelper::FuzztestHelper() {}
2522c0b7e4Sopenharmony_ci
2622c0b7e4Sopenharmony_ciFuzztestHelper::~FuzztestHelper() {}
2722c0b7e4Sopenharmony_ci
2822c0b7e4Sopenharmony_civoid FuzztestHelper::NativeTokenGet()
2922c0b7e4Sopenharmony_ci{
3022c0b7e4Sopenharmony_ci    if (isPermissionSet_) {
3122c0b7e4Sopenharmony_ci        return;
3222c0b7e4Sopenharmony_ci    }
3322c0b7e4Sopenharmony_ci    uint64_t tokenId;
3422c0b7e4Sopenharmony_ci    static const char *perms[] = {
3522c0b7e4Sopenharmony_ci        "ohos.permission.BUNDLE_ACTIVE_INFO",
3622c0b7e4Sopenharmony_ci    };
3722c0b7e4Sopenharmony_ci
3822c0b7e4Sopenharmony_ci    NativeTokenInfoParams infoInstance = {
3922c0b7e4Sopenharmony_ci        .dcapsNum = 0,
4022c0b7e4Sopenharmony_ci        .permsNum = 1,
4122c0b7e4Sopenharmony_ci        .aclsNum = 0,
4222c0b7e4Sopenharmony_ci        .dcaps = nullptr,
4322c0b7e4Sopenharmony_ci        .perms = perms,
4422c0b7e4Sopenharmony_ci        .acls = nullptr,
4522c0b7e4Sopenharmony_ci        .aplStr = "system_basic",
4622c0b7e4Sopenharmony_ci    };
4722c0b7e4Sopenharmony_ci
4822c0b7e4Sopenharmony_ci    infoInstance.processName = "BundleActiveOnRemoteRequestFuzzTest";
4922c0b7e4Sopenharmony_ci    tokenId = GetAccessTokenId(&infoInstance);
5022c0b7e4Sopenharmony_ci    SetSelfTokenID(tokenId);
5122c0b7e4Sopenharmony_ci    OHOS::Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo();
5222c0b7e4Sopenharmony_ci    isPermissionSet_ = true;
5322c0b7e4Sopenharmony_ci}
5422c0b7e4Sopenharmony_ci}
5522c0b7e4Sopenharmony_ci}