1# syspara Module<a name="EN-US_TOPIC_0000001063362360"></a> 2 3- [Available APIs](#section775916468231) 4- [How to Use](#section118404913233) 5 6This module provides the functions of obtaining and setting system attributes. 7 8It can be used on the Hi3861, Hi3516D V300 and Hi3518E V300 platforms powered by LiteOS Cortex-M and LiteOS Cortex-A. Supported system attributes consist of default, OEM-specified, and custom system attributes. OEM-specified system attributes provide only default values. The specific values need to be adjusted as required. 9 10## Available APIs<a name="section775916468231"></a> 11 12**Table 1** APIs for the syspara module 13 14<a name="table1731550155318"></a> 15<table><thead align="left"><tr id="row4419501537"><th class="cellrowborder" valign="top" width="57.29%" id="mcps1.2.3.1.1"><p id="p54150165315"><a name="p54150165315"></a><a name="p54150165315"></a>API</p> 16</th> 17<th class="cellrowborder" valign="top" width="42.71%" id="mcps1.2.3.1.2"><p id="p941150145313"><a name="p941150145313"></a><a name="p941150145313"></a>Description</p> 18</th> 19</tr> 20</thead> 21<tbody><tr id="row34145016535"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p15146174185515"><a name="p15146174185515"></a><a name="p15146174185515"></a>int GetParameter(const char* key, const char* def, char* value, unsigned int len)</p> 22</td> 23<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p13562171015712"><a name="p13562171015712"></a><a name="p13562171015712"></a>Obtains a system parameter.</p> 24</td> 25</tr> 26<tr id="row57882012954"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p77897122517"><a name="p77897122517"></a><a name="p77897122517"></a>int SetParameter(const char* key, const char* value)</p> 27</td> 28<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p8150164120555"><a name="p8150164120555"></a><a name="p8150164120555"></a>Sets or updates a system parameter.</p> 29</td> 30</tr> 31<tr id="row1746172917474"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p1315210414552"><a name="p1315210414552"></a><a name="p1315210414552"></a>char* GetProductType(void)</p> 32</td> 33<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p12366194110514"><a name="p12366194110514"></a><a name="p12366194110514"></a>Obtains the device type.</p> 34</td> 35</tr> 36<tr id="row10992232154714"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p19154174135517"><a name="p19154174135517"></a><a name="p19154174135517"></a>char* GetManufacture(void)</p> 37</td> 38<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p191521415555"><a name="p191521415555"></a><a name="p191521415555"></a>Obtains the device manufacturer.</p> 39</td> 40</tr> 41<tr id="row137112185917"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p16371201145918"><a name="p16371201145918"></a><a name="p16371201145918"></a>char* GetBrand(void)</p> 42</td> 43<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p2371719599"><a name="p2371719599"></a><a name="p2371719599"></a>Obtains the device brand.</p> 44</td> 45</tr> 46<tr id="row981535875818"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p18151586589"><a name="p18151586589"></a><a name="p18151586589"></a>char* GetMarketName(void)</p> 47</td> 48<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p1081545865810"><a name="p1081545865810"></a><a name="p1081545865810"></a>Obtains the device marketing name.</p> 49</td> 50</tr> 51<tr id="row45019563583"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p3501195617581"><a name="p3501195617581"></a><a name="p3501195617581"></a>char* GetProductSeries(void)</p> 52</td> 53<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p65011156165811"><a name="p65011156165811"></a><a name="p65011156165811"></a>Obtains the device series name.</p> 54</td> 55</tr> 56<tr id="row732525410585"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p10325125465819"><a name="p10325125465819"></a><a name="p10325125465819"></a>char* GetProductModel(void)</p> 57</td> 58<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p332565412582"><a name="p332565412582"></a><a name="p332565412582"></a>Obtains the device authentication model.</p> 59</td> 60</tr> 61<tr id="row5746145116588"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p20746145145812"><a name="p20746145145812"></a><a name="p20746145145812"></a>char* GetSoftwareModel(void)</p> 62</td> 63<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p14746175165810"><a name="p14746175165810"></a><a name="p14746175165810"></a>Obtains the device software model.</p> 64</td> 65</tr> 66<tr id="row536404914589"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p1364749135819"><a name="p1364749135819"></a><a name="p1364749135819"></a>char* GetHardwareModel(void)</p> 67</td> 68<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p1536424935819"><a name="p1536424935819"></a><a name="p1536424935819"></a>Obtains the device hardware model.</p> 69</td> 70</tr> 71<tr id="row453414616584"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p15534164685817"><a name="p15534164685817"></a><a name="p15534164685817"></a>char* GetHardwareProfile(void)</p> 72</td> 73<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p15534154619588"><a name="p15534154619588"></a><a name="p15534154619588"></a>Obtains the device hardware profile.</p> 74</td> 75</tr> 76<tr id="row3279655002"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p112791755204"><a name="p112791755204"></a><a name="p112791755204"></a>char* GetSerial(void)</p> 77</td> 78<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p1827910551901"><a name="p1827910551901"></a><a name="p1827910551901"></a>Obtains the device serial number (SN).</p> 79</td> 80</tr> 81<tr id="row101032053602"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p810395319016"><a name="p810395319016"></a><a name="p810395319016"></a>char* GetOsName(void)</p> 82</td> 83<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p181037531301"><a name="p181037531301"></a><a name="p181037531301"></a>Obtains the operating system name.</p> 84</td> 85</tr> 86<tr id="row081175112010"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p13821151707"><a name="p13821151707"></a><a name="p13821151707"></a>char* GetDisplayVersion(void)</p> 87</td> 88<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p582251708"><a name="p582251708"></a><a name="p582251708"></a>Obtains the software version visible to users.</p> 89</td> 90</tr> 91<tr id="row19112249108"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p1411224911016"><a name="p1411224911016"></a><a name="p1411224911016"></a>char* GetBootloaderVersion(void)</p> 92</td> 93<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p11122497014"><a name="p11122497014"></a><a name="p11122497014"></a>Obtains the bootloader version of this device.</p> 94</td> 95</tr> 96<tr id="row138384461706"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p20839194620019"><a name="p20839194620019"></a><a name="p20839194620019"></a>char* GetSecurityPatchTag(void)</p> 97</td> 98<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p118393469018"><a name="p118393469018"></a><a name="p118393469018"></a>Obtains the security patch tag.</p> 99</td> 100</tr> 101<tr id="row58521914120"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p48527149215"><a name="p48527149215"></a><a name="p48527149215"></a>char* GetAbiList(void)</p> 102</td> 103<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p8852114628"><a name="p8852114628"></a><a name="p8852114628"></a>Obtains the list of application binary interfaces (ABIs) supported on this device.</p> 104</td> 105</tr> 106<tr id="row394071216210"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p9940111212216"><a name="p9940111212216"></a><a name="p9940111212216"></a>char* GetSdkApiLevel(void)</p> 107</td> 108<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p18940171215214"><a name="p18940171215214"></a><a name="p18940171215214"></a>Obtains the SDK API level that matches the current system software.</p> 109</td> 110</tr> 111<tr id="row138205101425"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p1382010101328"><a name="p1382010101328"></a><a name="p1382010101328"></a>char* GetFirstApiLevel(void)</p> 112</td> 113<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p3820810521"><a name="p3820810521"></a><a name="p3820810521"></a>Obtains the first SDK API level of the system software.</p> 114</td> 115</tr> 116<tr id="row156198627"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p75622084212"><a name="p75622084212"></a><a name="p75622084212"></a>char* GetIncrementalVersion(void)</p> 117</td> 118<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p95621087211"><a name="p95621087211"></a><a name="p95621087211"></a>Obtains the incremental version.</p> 119</td> 120</tr> 121<tr id="row138721511320"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p28715156318"><a name="p28715156318"></a><a name="p28715156318"></a>char* GetVersionId(void)</p> 122</td> 123<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p148761512312"><a name="p148761512312"></a><a name="p148761512312"></a>Obtains the version ID.</p> 124</td> 125</tr> 126<tr id="row18749712234"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p10749912738"><a name="p10749912738"></a><a name="p10749912738"></a>char* GetBuildType(void)</p> 127</td> 128<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p67491212437"><a name="p67491212437"></a><a name="p67491212437"></a>Obtains the build type.</p> 129</td> 130</tr> 131<tr id="row178451710639"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p58461810136"><a name="p58461810136"></a><a name="p58461810136"></a>char* GetBuildUser(void)</p> 132</td> 133<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p178466109315"><a name="p178466109315"></a><a name="p178466109315"></a>Obtains the build account user name.</p> 134</td> 135</tr> 136<tr id="row126721685315"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p9673781832"><a name="p9673781832"></a><a name="p9673781832"></a>char* GetBuildHost(void)</p> 137</td> 138<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p12673089315"><a name="p12673089315"></a><a name="p12673089315"></a>Obtains the build host name.</p> 139</td> 140</tr> 141<tr id="row146494315815"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p565184335811"><a name="p565184335811"></a><a name="p565184335811"></a>char* GetBuildTime(void)</p> 142</td> 143<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p1466114365814"><a name="p1466114365814"></a><a name="p1466114365814"></a>Obtains the build time.</p> 144</td> 145</tr> 146<tr id="row933265824817"><td class="cellrowborder" valign="top" width="57.29%" headers="mcps1.2.3.1.1 "><p id="p18200134111553"><a name="p18200134111553"></a><a name="p18200134111553"></a>char* GetBuildRootHash(void)</p> 147</td> 148<td class="cellrowborder" valign="top" width="42.71%" headers="mcps1.2.3.1.2 "><p id="p7945171118466"><a name="p7945171118466"></a><a name="p7945171118466"></a>Obtains the buildroot hash value of this version.</p> 149</td> 150</tr> 151</tbody> 152</table> 153 154## How to Use<a name="section118404913233"></a> 155 156The following is an example of using syspara. 157 158``` 159// set && get 160char key1[] = "rw.sys.version"; 161char value1[] = "10.1.0"; 162int ret = SetParameter(key1, value1); 163char valueGet1[128] = {0}; 164ret = GetParameter(key1, "version=10.1.0", valueGet1, 128); 165 166// get sysparm 167char* value1 = GetProductType(); 168printf("Product type =%s\n", value1); 169free(value1); 170char* value2 = GetManufacture(); 171printf("Manufacture =%s\n", value2); 172free(value2); 173char* value3 = GetBrand(); 174printf("GetBrand =%s\n", value3); 175free(value3); 176char* value4 = GetMarketName(); 177printf("MarketName =%s\n", value4); 178free(value4); 179char* value5 = GetProductSeries(); 180printf("ProductSeries =%s\n", value5); 181free(value5); 182char* value6 = GetProductModel(); 183printf("ProductModel =%s\n", value6); 184free(value6); 185char* value7 = GetSoftwareModel(); 186printf("SoftwareModel =%s\n", value7); 187free(value7); 188char* value8 = GetHardwareModel(); 189printf("HardwareModel =%s\n", value8); 190free(value8); 191char* value9 = GetHardwareProfile(); 192printf("Software profile =%s\n", value9); 193free(value9); 194char* value10 = GetSerial(); 195printf("Serial =%s\n", value10); 196free(value10); 197char* value11 = GetOsName(); 198printf("OS name =%s\n", value11); 199free(value11); 200char* value12 = GetDisplayVersion(); 201printf("Display version =%s\n", value12); 202free(value12); 203char* value13 = GetBootloaderVersion(); 204printf("bootloader version =%s\n", value13); 205free(value13); 206char* value14 = GetSecurityPatchTag(); 207printf("secure patch level =%s\n", value14); 208free(value14); 209char* value15 = GetAbiList(); 210printf("abi list =%s\n", value15); 211free(value15); 212char* value16 = GetFirstApiLevel(); 213printf("first api level =%s\n", value16); 214free(value16); 215char* value17 = GetIncrementalVersion(); 216printf("Incremental version = %s\n", value17); 217free(value17); 218char* value187 = GetVersionId(); 219printf("formal id =%s\n", value187); 220free(value187); 221char* value18 = GetBuildType(); 222printf("build type =%s\n", value18); 223free(value18); 224char* value19 = GetBuildUser(); 225printf("build user =%s\n", value19); 226free(value19); 227char* value20 = GetBuildHost(); 228printf("Build host = %s\n", value20); 229free(value20); 230char* value21 = GetBuildTime(); 231printf("build time =%s\n", value21); 232free(value21); 233char* value22 = GetBuildRootHash(); 234printf("build root later..., %s\n", value22); 235free(value22); 236``` 237 238