14d5ea236Sopenharmony_ci/*
24d5ea236Sopenharmony_ci * Copyright (c) 2020 Huawei Device Co., Ltd.
34d5ea236Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
44d5ea236Sopenharmony_ci * you may not use this file except in compliance with the License.
54d5ea236Sopenharmony_ci * You may obtain a copy of the License at
64d5ea236Sopenharmony_ci *
74d5ea236Sopenharmony_ci *    http://www.apache.org/licenses/LICENSE-2.0
84d5ea236Sopenharmony_ci *
94d5ea236Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
104d5ea236Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
114d5ea236Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
124d5ea236Sopenharmony_ci * See the License for the specific language governing permissions and
134d5ea236Sopenharmony_ci * limitations under the License.
144d5ea236Sopenharmony_ci */
154d5ea236Sopenharmony_ci
164d5ea236Sopenharmony_ci#ifndef OHOS_LITE_HOTA_PARTITION_H
174d5ea236Sopenharmony_ci#define OHOS_LITE_HOTA_PARTITION_H
184d5ea236Sopenharmony_ci
194d5ea236Sopenharmony_ci#include "ohos_types.h"
204d5ea236Sopenharmony_ci
214d5ea236Sopenharmony_ci#ifdef __cplusplus
224d5ea236Sopenharmony_ci#if __cplusplus
234d5ea236Sopenharmony_ciextern "C" {
244d5ea236Sopenharmony_ci#endif
254d5ea236Sopenharmony_ci#endif /* End of #ifdef __cplusplus */
264d5ea236Sopenharmony_ci
274d5ea236Sopenharmony_ci#define PARTITION_NAME_LENGTH   16
284d5ea236Sopenharmony_ci#define PARTITION_ERROR         -1
294d5ea236Sopenharmony_ci#define PARTITION_INFO_COMP     1    /* The info component of ota package. */
304d5ea236Sopenharmony_ci#define SIGN_RSA2048_LEN       256
314d5ea236Sopenharmony_ci#define SIGN_RSA3072_LEN       384
324d5ea236Sopenharmony_ci
334d5ea236Sopenharmony_ci#define ABILITY_DIFF_UPDATE      (0x1 << 0)
344d5ea236Sopenharmony_ci#define ABILITY_PATCH_UPDATE     (0x1 << 1)
354d5ea236Sopenharmony_ci#define ABILITY_PKG_SEARCH       (0x1 << 2)
364d5ea236Sopenharmony_ci#define ABILITY_PKG_DLOAD        (0x1 << 3)
374d5ea236Sopenharmony_ci#define ABILITY_UPDATE_AUTH      (0x1 << 4)
384d5ea236Sopenharmony_ci#define ABILITY_AUTO_UPDATE      (0x1 << 5)
394d5ea236Sopenharmony_ci#define ABILITY_FLOW_INSTALL     (0x1 << 6)
404d5ea236Sopenharmony_ci#define ABILITY_AB_PART_INSTALL  (0x1 << 7)
414d5ea236Sopenharmony_ci
424d5ea236Sopenharmony_citypedef enum {
434d5ea236Sopenharmony_ci    SIGN_ARITHMETIC_RSA2048 = 0x0001,
444d5ea236Sopenharmony_ci    SIGN_ARITHMETIC_RSA3072 = 0x0011
454d5ea236Sopenharmony_ci} HotaSignArithmetic;
464d5ea236Sopenharmony_ci
474d5ea236Sopenharmony_citypedef struct {
484d5ea236Sopenharmony_ci    int id;
494d5ea236Sopenharmony_ci    const char *componentName;
504d5ea236Sopenharmony_ci    const char *imgPath;
514d5ea236Sopenharmony_ci    unsigned char abFlag;
524d5ea236Sopenharmony_ci} ComponentTableInfo;
534d5ea236Sopenharmony_ci
544d5ea236Sopenharmony_citypedef struct {
554d5ea236Sopenharmony_ci    unsigned char updateMode;
564d5ea236Sopenharmony_ci    unsigned char runningPartition;
574d5ea236Sopenharmony_ci    unsigned char updatePartition;
584d5ea236Sopenharmony_ci    unsigned char runningStatus;
594d5ea236Sopenharmony_ci    unsigned char otaStatus;
604d5ea236Sopenharmony_ci    unsigned char rebootStatus;
614d5ea236Sopenharmony_ci    unsigned char updateStatus;
624d5ea236Sopenharmony_ci} UpdateMetaData;
634d5ea236Sopenharmony_ci
644d5ea236Sopenharmony_ci
654d5ea236Sopenharmony_ci#ifdef __cplusplus
664d5ea236Sopenharmony_ci#if __cplusplus
674d5ea236Sopenharmony_ci}
684d5ea236Sopenharmony_ci#endif
694d5ea236Sopenharmony_ci#endif /* End of #ifdef __cplusplus */
704d5ea236Sopenharmony_ci
714d5ea236Sopenharmony_ci#endif /* End of #ifndef OHOS_LITE_HOTA_PARTITION_H */
72