131c75014Sopenharmony_ci/*
231c75014Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
331c75014Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
431c75014Sopenharmony_ci * you may not use this file except in compliance with the License.
531c75014Sopenharmony_ci * You may obtain a copy of the License at
631c75014Sopenharmony_ci *
731c75014Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
831c75014Sopenharmony_ci *
931c75014Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1031c75014Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1131c75014Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1231c75014Sopenharmony_ci * See the License for the specific language governing permissions and
1331c75014Sopenharmony_ci * limitations under the License.
1431c75014Sopenharmony_ci */
1531c75014Sopenharmony_ci
1631c75014Sopenharmony_ci#include <stdio.h>
1731c75014Sopenharmony_ci#include <stdlib.h>
1831c75014Sopenharmony_ci
1931c75014Sopenharmony_ci#include "parameter.h"
2031c75014Sopenharmony_ci#include "devattest_interface.h"
2131c75014Sopenharmony_ci
2231c75014Sopenharmony_ciconst int DEVATTEST_SUESS = 0;
2331c75014Sopenharmony_ciconst int UDIDSIZE_LEN = 64;
2431c75014Sopenharmony_ci
2531c75014Sopenharmony_civoid ObtainProductParms()
2631c75014Sopenharmony_ci{
2731c75014Sopenharmony_ci    int sdkApiVersion = GetSdkApiVersion();
2831c75014Sopenharmony_ci    if (sdkApiVersion != 0) {
2931c75014Sopenharmony_ci        printf("SdkApiVersion = %d\n", sdkApiVersion);
3031c75014Sopenharmony_ci    } else {
3131c75014Sopenharmony_ci        printf("SdkApiVersion = 0\n");
3231c75014Sopenharmony_ci    }
3331c75014Sopenharmony_ci
3431c75014Sopenharmony_ci    int firstApiVersion = GetFirstApiVersion();
3531c75014Sopenharmony_ci    if (firstApiVersion != 0) {
3631c75014Sopenharmony_ci        printf("firstApiVersion = %d\n", firstApiVersion);
3731c75014Sopenharmony_ci    } else {
3831c75014Sopenharmony_ci        printf("firstApiVersion = 0\n");
3931c75014Sopenharmony_ci    }
4031c75014Sopenharmony_ci
4131c75014Sopenharmony_ci    const char *bootloaderVersion = GetBootloaderVersion();
4231c75014Sopenharmony_ci    if (bootloaderVersion != nullptr) {
4331c75014Sopenharmony_ci        printf("bootloaderVersion = %s\n", bootloaderVersion);
4431c75014Sopenharmony_ci    } else {
4531c75014Sopenharmony_ci        printf("bootloaderVersion = nullptr\n");
4631c75014Sopenharmony_ci    }
4731c75014Sopenharmony_ci
4831c75014Sopenharmony_ci
4931c75014Sopenharmony_ci    const char *incrementalVersion = GetIncrementalVersion();
5031c75014Sopenharmony_ci    if (incrementalVersion != nullptr) {
5131c75014Sopenharmony_ci        printf("incrementalVersion = %s\n", incrementalVersion);
5231c75014Sopenharmony_ci    } else {
5331c75014Sopenharmony_ci        printf("incrementalVersion = nullptr\n");
5431c75014Sopenharmony_ci    }
5531c75014Sopenharmony_ci
5631c75014Sopenharmony_ci    const char *buildType = GetBuildType();
5731c75014Sopenharmony_ci    if (buildType != nullptr) {
5831c75014Sopenharmony_ci        printf("buildType = %s\n", buildType);
5931c75014Sopenharmony_ci    } else {
6031c75014Sopenharmony_ci        printf("buildType = nullptr\n");
6131c75014Sopenharmony_ci    }
6231c75014Sopenharmony_ci
6331c75014Sopenharmony_ci    const char *buildUser = GetBuildUser();
6431c75014Sopenharmony_ci    if (buildUser != nullptr) {
6531c75014Sopenharmony_ci        printf("buildUser = %s\n", buildUser);
6631c75014Sopenharmony_ci    } else {
6731c75014Sopenharmony_ci        printf("buildUser = nullptr\n");
6831c75014Sopenharmony_ci    }
6931c75014Sopenharmony_ci
7031c75014Sopenharmony_ci    const char *buildHost = GetBuildHost();
7131c75014Sopenharmony_ci    if (buildHost != nullptr) {
7231c75014Sopenharmony_ci        printf("buildHost = %s\n", buildHost);
7331c75014Sopenharmony_ci    } else {
7431c75014Sopenharmony_ci        printf("buildHost = nullptr\n");
7531c75014Sopenharmony_ci    }
7631c75014Sopenharmony_ci
7731c75014Sopenharmony_ci    const char *buildTime = GetBuildTime();
7831c75014Sopenharmony_ci    if (buildTime != nullptr) {
7931c75014Sopenharmony_ci        printf("buildTime = %s\n", buildTime);
8031c75014Sopenharmony_ci    } else {
8131c75014Sopenharmony_ci        printf("buildTime = nullptr\n");
8231c75014Sopenharmony_ci    }
8331c75014Sopenharmony_ci
8431c75014Sopenharmony_ci    const char *abiList = GetAbiList();
8531c75014Sopenharmony_ci    if (abiList != nullptr) {
8631c75014Sopenharmony_ci        printf("AbiList = %s\n", abiList);
8731c75014Sopenharmony_ci    } else {
8831c75014Sopenharmony_ci        printf("AbiList = nullptr\n");
8931c75014Sopenharmony_ci    }
9031c75014Sopenharmony_ci}
9131c75014Sopenharmony_ci
9231c75014Sopenharmony_ciint main()
9331c75014Sopenharmony_ci{
9431c75014Sopenharmony_ci    printf("******To Obtain Product Params Start******\n");
9531c75014Sopenharmony_ci    const char *productType = GetDeviceType();
9631c75014Sopenharmony_ci    if (productType != nullptr) {
9731c75014Sopenharmony_ci        printf("Device Type = %s\n", productType);
9831c75014Sopenharmony_ci    } else {
9931c75014Sopenharmony_ci        printf("Device Type = nullptr\n");
10031c75014Sopenharmony_ci    }
10131c75014Sopenharmony_ci
10231c75014Sopenharmony_ci    const char *securityPatchTag = GetSecurityPatchTag();
10331c75014Sopenharmony_ci    if (securityPatchTag != nullptr) {
10431c75014Sopenharmony_ci        printf("Security Patch = %s\n", securityPatchTag);
10531c75014Sopenharmony_ci    } else {
10631c75014Sopenharmony_ci        printf("Security Patch = nullptr\n");
10731c75014Sopenharmony_ci    }
10831c75014Sopenharmony_ci
10931c75014Sopenharmony_ci    const char *osName = GetOSFullName();
11031c75014Sopenharmony_ci    if (osName != nullptr) {
11131c75014Sopenharmony_ci        printf("OsFullName = %s\n", osName);
11231c75014Sopenharmony_ci    } else {
11331c75014Sopenharmony_ci        printf("OsFullName = nullptr\n");
11431c75014Sopenharmony_ci    }
11531c75014Sopenharmony_ci
11631c75014Sopenharmony_ci    const char *displayVersion = GetDisplayVersion();
11731c75014Sopenharmony_ci    if (displayVersion != nullptr) {
11831c75014Sopenharmony_ci        printf("DisplayVersion = %s\n", displayVersion);
11931c75014Sopenharmony_ci    } else {
12031c75014Sopenharmony_ci        printf("DisplayVersion = nullptr\n");
12131c75014Sopenharmony_ci    }
12231c75014Sopenharmony_ci
12331c75014Sopenharmony_ci    const char *versionId = GetVersionId();
12431c75014Sopenharmony_ci    if (versionId != nullptr) {
12531c75014Sopenharmony_ci        printf("VersionID = %s\n", versionId);
12631c75014Sopenharmony_ci    } else {
12731c75014Sopenharmony_ci        printf("VersionID = nullptr\n");
12831c75014Sopenharmony_ci    }
12931c75014Sopenharmony_ci
13031c75014Sopenharmony_ci    AttestResultInfo attestResultInfo = {0};
13131c75014Sopenharmony_ci    attestResultInfo.ticket = NULL;
13231c75014Sopenharmony_ci    int32_t retStatus = GetAttestStatus(&attestResultInfo);
13331c75014Sopenharmony_ci    if (retStatus != DEVATTEST_SUESS) {
13431c75014Sopenharmony_ci        printf("[CLIENT MAIN] wrong. retStatus:%d\n", retStatus);
13531c75014Sopenharmony_ci        printf("authResult = %d\n", attestResultInfo.authResult);
13631c75014Sopenharmony_ci        printf("softwareResult = %d\n", attestResultInfo.softwareResult);
13731c75014Sopenharmony_ci    } else {
13831c75014Sopenharmony_ci        printf("authResult = %d\n", attestResultInfo.authResult);
13931c75014Sopenharmony_ci        printf("softwareResult = %d\n", attestResultInfo.softwareResult);
14031c75014Sopenharmony_ci    }
14131c75014Sopenharmony_ci
14231c75014Sopenharmony_ci    char udid[UDIDSIZE_LEN + 1] = {0};
14331c75014Sopenharmony_ci    int retUdid = GetDevUdid(udid, UDIDSIZE_LEN + 1);
14431c75014Sopenharmony_ci    if (retUdid == 0) {
14531c75014Sopenharmony_ci        printf("DevUdid = %s\n", udid);
14631c75014Sopenharmony_ci    } else {
14731c75014Sopenharmony_ci        printf("DevUdid = nullptr\n");
14831c75014Sopenharmony_ci    }
14931c75014Sopenharmony_ci
15031c75014Sopenharmony_ci    const char *manuFacture = GetManufacture();
15131c75014Sopenharmony_ci    if (manuFacture != nullptr) {
15231c75014Sopenharmony_ci        printf("manuFacture = %s\n", manuFacture);
15331c75014Sopenharmony_ci    } else {
15431c75014Sopenharmony_ci        printf("manuFacture = nullptr\n");
15531c75014Sopenharmony_ci    }
15631c75014Sopenharmony_ci
15731c75014Sopenharmony_ci    const char *productModel = GetProductModel();
15831c75014Sopenharmony_ci    if (productModel != nullptr) {
15931c75014Sopenharmony_ci        printf("productModel = %s\n", productModel);
16031c75014Sopenharmony_ci    } else {
16131c75014Sopenharmony_ci        printf("productModel = nullptr\n");
16231c75014Sopenharmony_ci    }
16331c75014Sopenharmony_ci
16431c75014Sopenharmony_ci    const char *serial = GetSerial();
16531c75014Sopenharmony_ci    if (serial != nullptr) {
16631c75014Sopenharmony_ci        printf("serial = %s\n", serial);
16731c75014Sopenharmony_ci    } else {
16831c75014Sopenharmony_ci        printf("serial = nullptr\n");
16931c75014Sopenharmony_ci    }
17031c75014Sopenharmony_ci
17131c75014Sopenharmony_ci    const char *brand = GetBrand();
17231c75014Sopenharmony_ci    if (brand != nullptr) {
17331c75014Sopenharmony_ci        printf("brand = %s\n", brand);
17431c75014Sopenharmony_ci    } else {
17531c75014Sopenharmony_ci        printf("brand = nullptr\n");
17631c75014Sopenharmony_ci    }
17731c75014Sopenharmony_ci
17831c75014Sopenharmony_ci    const char *productSeries = GetProductSeries();
17931c75014Sopenharmony_ci    if (productSeries != nullptr) {
18031c75014Sopenharmony_ci        printf("productSeries = %s\n", productSeries);
18131c75014Sopenharmony_ci    } else {
18231c75014Sopenharmony_ci        printf("productSeries = nullptr\n");
18331c75014Sopenharmony_ci    }
18431c75014Sopenharmony_ci
18531c75014Sopenharmony_ci    const char *softwareModel = GetSoftwareModel();
18631c75014Sopenharmony_ci    if (softwareModel != nullptr) {
18731c75014Sopenharmony_ci        printf("softwareModel = %s\n", softwareModel);
18831c75014Sopenharmony_ci    } else {
18931c75014Sopenharmony_ci        printf("softwareModel = nullptr\n");
19031c75014Sopenharmony_ci    }
19131c75014Sopenharmony_ci
19231c75014Sopenharmony_ci    const char *hardWareModel = GetHardwareModel();
19331c75014Sopenharmony_ci    if (hardWareModel != nullptr) {
19431c75014Sopenharmony_ci        printf("HardwareModel = %s\n", hardWareModel);
19531c75014Sopenharmony_ci    } else {
19631c75014Sopenharmony_ci        printf("HardwareModel = nullptr\n");
19731c75014Sopenharmony_ci    }
19831c75014Sopenharmony_ci
19931c75014Sopenharmony_ci    const char *buildRootHash = GetBuildRootHash();
20031c75014Sopenharmony_ci    if (buildRootHash != nullptr) {
20131c75014Sopenharmony_ci        printf("BuildRootHash = %s\n", buildRootHash);
20231c75014Sopenharmony_ci    } else {
20331c75014Sopenharmony_ci        printf("BuildRootHash = nullptr\n");
20431c75014Sopenharmony_ci    }
20531c75014Sopenharmony_ci
20631c75014Sopenharmony_ci    const char *marketName = GetMarketName();
20731c75014Sopenharmony_ci    if (marketName != nullptr) {
20831c75014Sopenharmony_ci        printf("marketName = %s\n", marketName);
20931c75014Sopenharmony_ci    } else {
21031c75014Sopenharmony_ci        printf("marketName = nullptr\n");
21131c75014Sopenharmony_ci    }
21231c75014Sopenharmony_ci
21331c75014Sopenharmony_ci    ObtainProductParms();
21431c75014Sopenharmony_ci
21531c75014Sopenharmony_ci    printf("******To Obtain Product Params End  ******\n");
21631c75014Sopenharmony_ci    return 0;
21731c75014Sopenharmony_ci}
218