1d9f0492fSopenharmony_ci/* 2d9f0492fSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 3d9f0492fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4d9f0492fSopenharmony_ci * you may not use this file except in compliance with the License. 5d9f0492fSopenharmony_ci * You may obtain a copy of the License at 6d9f0492fSopenharmony_ci * 7d9f0492fSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8d9f0492fSopenharmony_ci * 9d9f0492fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10d9f0492fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11d9f0492fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12d9f0492fSopenharmony_ci * See the License for the specific language governing permissions and 13d9f0492fSopenharmony_ci * limitations under the License. 14d9f0492fSopenharmony_ci */ 15d9f0492fSopenharmony_ci 16d9f0492fSopenharmony_ci#include <cstdlib> 17d9f0492fSopenharmony_ci#include <cstdint> 18d9f0492fSopenharmony_ci 19d9f0492fSopenharmony_ci#include "begetctl.h" 20d9f0492fSopenharmony_ci#include "shell.h" 21d9f0492fSopenharmony_ci#include "shell_utils.h" 22d9f0492fSopenharmony_ci#include "parameter.h" 23d9f0492fSopenharmony_ci#include "parameters.h" 24d9f0492fSopenharmony_ci#include "sysversion.h" 25d9f0492fSopenharmony_ci 26d9f0492fSopenharmony_ciusing SysParaInfoItem = struct { 27d9f0492fSopenharmony_ci char *infoName; 28d9f0492fSopenharmony_ci const char *(*getInfoValue)(void); 29d9f0492fSopenharmony_ci}; 30d9f0492fSopenharmony_ci 31d9f0492fSopenharmony_cistatic const SysParaInfoItem SYSPARA_LIST[] = { 32d9f0492fSopenharmony_ci {(char *)"DeviceType", GetDeviceType}, 33d9f0492fSopenharmony_ci {(char *)"Manufacture", GetManufacture}, 34d9f0492fSopenharmony_ci {(char *)"Brand", GetBrand}, 35d9f0492fSopenharmony_ci {(char *)"MarketName", GetMarketName}, 36d9f0492fSopenharmony_ci {(char *)"ProductSeries", GetProductSeries}, 37d9f0492fSopenharmony_ci {(char *)"ProductModel", GetProductModel}, 38d9f0492fSopenharmony_ci {(char *)"SoftwareModel", GetSoftwareModel}, 39d9f0492fSopenharmony_ci {(char *)"HardwareModel", GetHardwareModel}, 40d9f0492fSopenharmony_ci {(char *)"Serial", GetSerial}, 41d9f0492fSopenharmony_ci {(char *)"OSFullName", GetOSFullName}, 42d9f0492fSopenharmony_ci {(char *)"DisplayVersion", GetDisplayVersion}, 43d9f0492fSopenharmony_ci {(char *)"BootloaderVersion", GetBootloaderVersion}, 44d9f0492fSopenharmony_ci {(char *)"GetSecurityPatchTag", GetSecurityPatchTag}, 45d9f0492fSopenharmony_ci {(char *)"AbiList", GetAbiList}, 46d9f0492fSopenharmony_ci {(char *)"IncrementalVersion", GetIncrementalVersion}, 47d9f0492fSopenharmony_ci {(char *)"VersionId", GetVersionId}, 48d9f0492fSopenharmony_ci {(char *)"BuildType", GetBuildType}, 49d9f0492fSopenharmony_ci {(char *)"BuildUser", GetBuildUser}, 50d9f0492fSopenharmony_ci {(char *)"BuildHost", GetBuildHost}, 51d9f0492fSopenharmony_ci {(char *)"BuildTime", GetBuildTime}, 52d9f0492fSopenharmony_ci {(char *)"BuildRootHash", GetBuildRootHash}, 53d9f0492fSopenharmony_ci {(char *)"GetOsReleaseType", GetOsReleaseType}, 54d9f0492fSopenharmony_ci {(char *)"GetHardwareProfile", GetHardwareProfile}, 55d9f0492fSopenharmony_ci}; 56d9f0492fSopenharmony_ci 57d9f0492fSopenharmony_cistatic int32_t SysParaApiDumpCmd(BShellHandle shell, int32_t argc, char *argv[]) 58d9f0492fSopenharmony_ci{ 59d9f0492fSopenharmony_ci int index = 0; 60d9f0492fSopenharmony_ci int dumpInfoItemNum = (sizeof(SYSPARA_LIST) / sizeof(SYSPARA_LIST[0])); 61d9f0492fSopenharmony_ci const char *temp = nullptr; 62d9f0492fSopenharmony_ci BShellEnvOutput(shell, const_cast<char *>("Begin dump syspara\r\n")); 63d9f0492fSopenharmony_ci BShellEnvOutput(shell, const_cast<char *>("=======================\r\n")); 64d9f0492fSopenharmony_ci while (index < dumpInfoItemNum) { 65d9f0492fSopenharmony_ci temp = SYSPARA_LIST[index].getInfoValue(); 66d9f0492fSopenharmony_ci BShellEnvOutput(shell, const_cast<char *>("%s:%s\r\n"), SYSPARA_LIST[index].infoName, temp); 67d9f0492fSopenharmony_ci index++; 68d9f0492fSopenharmony_ci } 69d9f0492fSopenharmony_ci BShellEnvOutput(shell, const_cast<char *>("FirstApiVersion:%d\r\n"), GetFirstApiVersion()); 70d9f0492fSopenharmony_ci BShellEnvOutput(shell, const_cast<char *>("GetSerial:%s\r\n"), GetSerial()); 71d9f0492fSopenharmony_ci#ifndef OHOS_LITE 72d9f0492fSopenharmony_ci BShellEnvOutput(shell, const_cast<char *>("acl serial:%s\r\n"), AclGetSerial()); 73d9f0492fSopenharmony_ci#endif 74d9f0492fSopenharmony_ci char udid[65] = {0}; 75d9f0492fSopenharmony_ci GetDevUdid(udid, sizeof(udid)); 76d9f0492fSopenharmony_ci BShellEnvOutput(shell, const_cast<char *>("GetDevUdid:%s\r\n"), udid); 77d9f0492fSopenharmony_ci#ifndef OHOS_LITE 78d9f0492fSopenharmony_ci AclGetDevUdid(udid, sizeof(udid)); 79d9f0492fSopenharmony_ci BShellEnvOutput(shell, const_cast<char *>("Acl devUdid:%s\r\n"), udid); 80d9f0492fSopenharmony_ci#endif 81d9f0492fSopenharmony_ci BShellEnvOutput(shell, const_cast<char *>("Version:%d.%d.%d.%d\r\n"), 82d9f0492fSopenharmony_ci GetMajorVersion(), GetSeniorVersion(), GetFeatureVersion(), GetBuildVersion()); 83d9f0492fSopenharmony_ci BShellEnvOutput(shell, const_cast<char *>("GetSdkApiVersion:%d\r\n"), GetSdkApiVersion()); 84d9f0492fSopenharmony_ci BShellEnvOutput(shell, const_cast<char *>("GetSystemCommitId:%lld\r\n"), GetSystemCommitId()); 85d9f0492fSopenharmony_ci BShellEnvOutput(shell, const_cast<char *>("=======================\r\n")); 86d9f0492fSopenharmony_ci BShellEnvOutput(shell, const_cast<char *>("End dump syspara\r\n")); 87d9f0492fSopenharmony_ci return 0; 88d9f0492fSopenharmony_ci} 89d9f0492fSopenharmony_ci 90d9f0492fSopenharmony_ciMODULE_CONSTRUCTOR(void) 91d9f0492fSopenharmony_ci{ 92d9f0492fSopenharmony_ci const CmdInfo infos[] = { 93d9f0492fSopenharmony_ci { 94d9f0492fSopenharmony_ci const_cast<char *>("dump"), SysParaApiDumpCmd, const_cast<char *>("dump api"), 95d9f0492fSopenharmony_ci const_cast<char *>("dump api"), const_cast<char *>("dump api") 96d9f0492fSopenharmony_ci }, 97d9f0492fSopenharmony_ci }; 98d9f0492fSopenharmony_ci for (size_t i = 0; i < sizeof(infos) / sizeof(infos[0]); i++) { 99d9f0492fSopenharmony_ci BShellEnvRegisterCmd(GetShellHandle(), &infos[i]); 100d9f0492fSopenharmony_ci } 101d9f0492fSopenharmony_ci} 102