1/*
2 * Copyright (c) 2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16#ifndef DEVICEINFO_CSDK_H
17#define DEVICEINFO_CSDK_H
18
19#ifdef __cplusplus
20#if __cplusplus
21extern "C" {
22#endif
23#endif
24
25/**
26 * Obtains the device type represented by a string,
27 * which can be {@code phone} (or {@code default} for phones), {@code wearable}, {@code liteWearable},
28 * {@code tablet}, {@code tv}, {@code car}, or {@code smartVision}.
29 * @syscap SystemCapability.Startup.SystemInfo
30 * @return NULL - Not found device type, or failed to invoke the internal interface.
31 * @since 10
32 */
33const char *OH_GetDeviceType(void);
34
35/**
36 * Obtains the device manufacturer represented by a string.
37 * @syscap SystemCapability.Startup.SystemInfo
38 * @return NULL - Not found device manufacturer, or failed to invoke the internal interface.
39 * @since 10
40 */
41const char *OH_GetManufacture(void);
42
43/**
44 * Obtains the device brand represented by a string.
45 * @syscap SystemCapability.Startup.SystemInfo
46 * @return NULL - Not found device brand, or failed to invoke the internal interface.
47 * @since 10
48 */
49const char *OH_GetBrand(void);
50
51/**
52 * Obtains the product name speaded in the market
53 * @syscap SystemCapability.Startup.SystemInfo
54 * @return NULL - Not found market name, or failed to invoke the internal interface.
55 * @since 10
56 */
57const char *OH_GetMarketName(void);
58
59/**
60 * Obtains the product series represented by a string.
61 * @syscap SystemCapability.Startup.SystemInfo
62 * @return NULL - Not found product series, or failed to invoke the internal interface.
63 * @since 10
64 */
65const char *OH_GetProductSeries(void);
66
67/**
68 * Obtains the product model represented by a string.
69 * @syscap SystemCapability.Startup.SystemInfo
70 * @return NULL - Not found product model, or failed to invoke the internal interface.
71 * @since 10
72 */
73const char *OH_GetProductModel(void);
74
75/**
76 * Obtains the software model represented by a string.
77 * @syscap SystemCapability.Startup.SystemInfo
78 * @return NULL - Not found software model, or failed to invoke the internal interface.
79 * @since 10
80 */
81const char *OH_GetSoftwareModel(void);
82
83/**
84 * Obtains the hardware model represented by a string.
85 * @syscap SystemCapability.Startup.SystemInfo
86 * @return NULL - Not found hardware model, or failed to invoke the internal interface.
87 * @since 10
88 */
89const char *OH_GetHardwareModel(void);
90
91/**
92 * Obtains the bootloader version number represented by a string.
93 * @syscap SystemCapability.Startup.SystemInfo
94 * @return NULL - Not found bootloader version number, or failed to invoke the internal interface.
95 * @since 10
96 */
97const char *OH_GetBootloaderVersion(void);
98
99/**
100 * Obtains the application binary interface (Abi) list represented by a string.
101 * @syscap SystemCapability.Startup.SystemInfo
102 * @return NULL - Not found Abi list, or failed to invoke the internal interface.
103 * @since 10
104 */
105const char *OH_GetAbiList(void);
106
107/**
108 * Obtains the security patch tag represented by a string.
109 * @syscap SystemCapability.Startup.SystemInfo
110 * @return NULL - Not found security patch tag, or failed to invoke the internal interface.
111 * @since 10
112 */
113const char *OH_GetSecurityPatchTag(void);
114
115/**
116 * Obtains the product version displayed for customer represented by a string.
117 * @syscap SystemCapability.Startup.SystemInfo
118 * @return NULL - Not found the product version displayed, or failed to invoke the internal interface.
119 * @since 10
120 */
121const char *OH_GetDisplayVersion(void);
122
123/**
124 * Obtains the incremental version represented by a string.
125 * @syscap SystemCapability.Startup.SystemInfo
126 * @return NULL - Not found the incremental version, or failed to invoke the internal interface.
127 * @since 10
128 */
129const char *OH_GetIncrementalVersion(void);
130
131/**
132 * Obtains the OS release type represented by a string.
133 *
134 * <p>The OS release category can be {@code Release}, {@code Beta}, or {@code Canary}.
135 * The specific release type may be {@code Release}, {@code Beta1}, or others alike.
136 * @syscap SystemCapability.Startup.SystemInfo
137 * @return NULL - Not found the OS release type, or failed to invoke the internal interface.
138 * @since 10
139 */
140const char *OH_GetOsReleaseType(void);
141
142/**
143 * Obtains the OS full version name represented by a string.
144 * @syscap SystemCapability.Startup.SystemInfo
145 * @return NULL - Not found the OS full version name, or failed to invoke the internal interface.
146 * @since 10
147 */
148const char *OH_GetOSFullName(void);
149
150/**
151 * Obtains the SDK API version number.
152 * @syscap SystemCapability.Startup.SystemInfo
153 * @return 0 - Not found the SDK API version number, or failed to invoke the internal interface.
154 * @since 10
155 */
156int OH_GetSdkApiVersion(void);
157
158/**
159 * Obtains the first API version number.
160 * @syscap SystemCapability.Startup.SystemInfo
161 * @return 0 - Not found the first API version number, or failed to invoke the internal interface.
162 * @since 10
163 */
164int OH_GetFirstApiVersion(void);
165
166/**
167 * Obtains the version ID by a string.
168 * @syscap SystemCapability.Startup.SystemInfo
169 * @return NULL - Not found version ID, or failed to invoke the internal interface.
170 * @since 10
171 */
172const char *OH_GetVersionId(void);
173
174/**
175 * Obtains the build type of the current running OS.
176 * @syscap SystemCapability.Startup.SystemInfo
177 * @return NULL - Not found build type, or failed to invoke the internal interface.
178 * @since 10
179 */
180const char *OH_GetBuildType(void);
181
182/**
183 * Obtains the build user of the current running OS.
184 * @syscap SystemCapability.Startup.SystemInfo
185 * @return NULL - Not found build user, or failed to invoke the internal interface.
186 * @since 10
187 */
188const char *OH_GetBuildUser(void);
189
190/**
191 * Obtains the build host of the current running OS.
192 * @syscap SystemCapability.Startup.SystemInfo
193 * @return NULL - Not found build host, or failed to invoke the internal interface.
194 * @since 10
195 */
196const char *OH_GetBuildHost(void);
197
198/**
199 * Obtains the build time of the current running OS.
200 * @syscap SystemCapability.Startup.SystemInfo
201 * @return NULL - Not found build time, or failed to invoke the internal interface.
202 * @since 10
203 */
204const char *OH_GetBuildTime(void);
205
206/**
207 * Obtains the version hash of the current running OS.
208 * @syscap SystemCapability.Startup.SystemInfo
209 * @return NULL - Not found version hash, or failed to invoke the internal interface.
210 * @since 10
211 */
212const char *OH_GetBuildRootHash(void);
213
214/**
215 * Obtains the Distribution OS name represented by a string.
216 *
217 * <p>Independent Software Vendor (ISV) may distribute OHOS with their own OS name.
218 * If ISV not specified, it will return an empty string
219 * @syscap SystemCapability.Startup.SystemInfo
220 * @return NULL - Not found distribution OS name, or failed to invoke the internal interface.
221 * @since 10
222 */
223const char *OH_GetDistributionOSName(void);
224
225/**
226 * Obtains the ISV distribution OS version represented by a string.
227 * If ISV not specified, it will return the same value as OH_GetOSFullName
228 * @syscap SystemCapability.Startup.SystemInfo
229 * @return NULL - Not found distribution OS version, or failed to invoke the internal interface.
230 * @since 10
231 */
232const char *OH_GetDistributionOSVersion(void);
233
234/**
235 * Obtains the ISV distribution OS api version represented by a integer.
236 * If ISV not specified, it will return the same value as OH_GetSdkApiVersion
237 * @syscap SystemCapability.Startup.SystemInfo
238 * @return NULL - Not found distribution OS api version, or failed to invoke the internal interface.
239 * @since 10
240 */
241int OH_GetDistributionOSApiVersion(void);
242
243/**
244 * Obtains the ISV distribution OS release type represented by a string.
245 * If ISV not specified, it will return the same value as OH_GetOsReleaseType
246 * @syscap SystemCapability.Startup.SystemInfo
247 * @return NULL - Not found distribution OS release type, or failed to invoke the internal interface.
248 * @since 10
249 */
250const char *OH_GetDistributionOSReleaseType(void);
251
252#ifdef __cplusplus
253#if __cplusplus
254}
255#endif
256#endif
257#endif
258