/* * Copyright (c) 2021-2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _CREATE_PCID_H #define _CREATE_PCID_H #define MAX_OS_SYSCAP_NUM 960 typedef enum SystemCapabilityNum { ACCOUNT_APPACCOUNT, ACCOUNT_OSACCOUNT, ACE_ACEENGINELITE, AI_AIENGINE, APPLICATIONS_CONTACTSDATA, BARRIERFREE_ACCESSIBILITY_CORE, BUNDLEMANAGER_BUNDLEFRAMEWORK, BUNDLEMANAGER_BUNDLETOOL, BUNDLEMANAGER_DISTRIBUTEDBUNDLEFRAMEWORK, BUNDLEMANAGER_ZLIB, COMMUNICATION_BLUETOOTH_CORE, COMMUNICATION_NETMANAGER_CORE, COMMUNICATION_NETMANAGER_EXTENSION, COMMUNICATION_NETSTACK, COMMUNICATION_SOFTBUS_CORE, COMMUNICATION_WIFI_AP, COMMUNICATION_WIFI_CORE, COMMUNICATION_WIFI_HOTSPOTEXT, COMMUNICATION_WIFI_P2P, COMMUNICATION_WIFI_STA, CUSTOMIZATION_CONFIGPOLICY, CUSTOMIZATION_ENTERPRISEDEVICEMANAGER, DISTRIBUTEDDATAMANAGER_DATAOBJECT_DISTRIBUTEDOBJECT, DISTRIBUTEDDATAMANAGER_DATASHARE_CONSUMER, DISTRIBUTEDDATAMANAGER_DATASHARE_CORE, DISTRIBUTEDDATAMANAGER_DATASHARE_PROVIDER, DISTRIBUTEDDATAMANAGER_KVSTORE_CORE, DISTRIBUTEDDATAMANAGER_KVSTORE_DISTRIBUTEDKVSTORE, DISTRIBUTEDDATAMANAGER_KVSTORE_LITE, DISTRIBUTEDDATAMANAGER_PREFERENCES_CORE, DISTRIBUTEDDATAMANAGER_RELATIONALSTORE_CORE, DISTRIBUTEDHARDWARE_DEVICEMANAGER, DISTRIBUTEDHARDWARE_DISTRIBUTED_CAMERA, DISTRIBUTEDHARDWARE_DISTRIBUTED_HARDWARE_FWK, DISTRIBUTEDHARDWARE_DISTRIBUTED_SCREEN, FILEMANAGEMENT_FILEMANAGERSERVICE, FILEMANAGEMENT_REMOTEFILESHARE, GLOBAL_RESOURCEMANAGER, GRAPHIC_GRAPHIC2D_NATIVEDRAWING, GRAPHIC_GRAPHIC2D_NATIVEWINDOW, GRAPHIC_GRAPHIC2D_WEBGL, GRAPHIC_GRAPHIC2D_WEBGL2, GRAPHIC_SURFACE, GRAPHIC_UI, GRAPHIC_UTILS, GRAPHIC_WMS, HIVIEWDFX_HIAPPEVENT, HIVIEWDFX_HIDUMPER, HIVIEWDFX_HILOG, HIVIEWDFX_HILOGLITE, HIVIEWDFX_HIPROFILER_HIDEBUG, HIVIEWDFX_HISYSEVENT, HIVIEWDFX_HITRACE, HIVIEWDFX_HIVIEW, HIVIEWDFX_HIVIEW_FAULTLOGGER, I18N, GLOBAL_I18N, KERNEL_LINUX, KERNEL_LITEOS_A, LOCATION_LOCATION, MISCSERVICES_DOWNLOAD, MISCSERVICES_INPUTMETHOD, MISCSERVICES_PASTEBOARD, MISCSERVICES_SCREENLOCK, MISCSERVICES_TIME, MISCSERVICES_UPLOAD, MISCSERVICES_WALLPAPER, MSDP_DEVICESTATUS, MULTIMEDIA_MEDIALIBRARY, MULTIMEDIA_MEDIA_AUDIOPLAYER, MULTIMEDIA_MEDIA_AUDIORECORDER, MULTIMEDIA_MEDIA_CODEC, MULTIMEDIA_MEDIA_CORE, MULTIMEDIA_MEDIA_MUXER, MULTIMEDIA_IMAGE, MULTIMEDIA_IMAGE_CORE, MULTIMEDIA_IMAGE_IMAGESOURCE, MULTIMEDIA_IMAGE_IMAGEPACKER, MULTIMEDIA_IMAGE_IMAGERECEIVER, MULTIMEDIA_MEDIA_SPLITER, MULTIMEDIA_MEDIA_VIDEOPLAYER, MULTIMEDIA_MEDIA_VIDEORECORDER, MULTIMODALINPUT_INPUT, NOTIFICATION_COMMONEVENT, NOTIFICATION_EMITTER, NOTIFICATION_NOTIFICATION, NOTIFICATION_REMINDERAGENT, POWERMANAGER_BATTERYMANAGER_CORE, POWERMANAGER_BATTERYMANAGER_EXTENSION, POWERMANAGER_BATTERYMANAGER_LITE, POWERMANAGER_BATTERYSTATISTICS, POWERMANAGER_DISPLAYPOWERMANAGER, POWERMANAGER_POWERMANAGER_CORE, POWERMANAGER_POWERMANAGER_EXTENSION, POWERMANAGER_POWERMANAGER_LITE, POWERMANAGER_THERMALMANAGER, RESOURCESCHEDULE_BACKGROUNDTASKMANAGER_CONTINUOUSTASK, RESOURCESCHEDULE_BACKGROUNDTASKMANAGER_TRANSIENTTASK, RESOURCESCHEDULE_USAGESTATISTICS_APP, RESOURCESCHEDULE_USAGESTATISTICS_APPGROUP, RESOURCESCHEDULE_WORKSCHEDULER, SECURITY_ACCESSTOKEN, SECURITY_APPVERIFY, SECURITY_DATATRANSITMANAGER, SECURITY_DEVICEAUTH, SECURITY_DEVICESECURITYLEVEL, SECURITY_HUKS, SENSORS_MISCDEVICE, SENSORS_SENSOR, SENSORS_SENSOR_LITE, TELEPHONY_CALLMANAGER, TELEPHONY_CELLULARCALL, TELEPHONY_CELLULARDATA, TELEPHONY_CORESERVICE, TELEPHONY_DATASTORAGE, TELEPHONY_DCALL, TELEPHONY_SMSMMS, TELEPHONY_STATEREGISTRY, TEST_UITEST, TEST_WUKONG, UPDATER_RAW, UPDATE_UPDATESERVICE, USB_USBMANAGER, USERIAM_AUTHEXECUTORMANAGER, USERIAM_USERAUTH_CORE, USERIAM_USERAUTH_FACEAUTH, USERIAM_USERAUTH_PINAUTH, USERIAM_USERIDM, } SyscapNum; typedef struct SystemCapabilityWithNum { char syscapStr[128]; int32_t num; } SyscapWithNum; typedef struct ProductCompatibilityID { uint16_t apiVersion : 15; uint16_t apiVersionType : 1; uint16_t systemType : 3; uint16_t reserved : 13; uint32_t manufacturerID; uint8_t osSyscap[MAX_OS_SYSCAP_NUM / 8]; } PCIDMain; int32_t CreatePCID(char *inputFile, char *outDirPath); int32_t DecodePCID(char *inputFile, char *outDirPath); #endif