1 /* 2 * Copyright (c) 2021-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 NET_POLICY_DEFINE_H 17 #define NET_POLICY_DEFINE_H 18 19 #include "common_event_manager.h" 20 #include "common_event_support.h" 21 22 #include "net_quota_policy.h" 23 24 namespace OHOS { 25 namespace NetManagerStandard { 26 const std::string COMMON_EVENT_NET_QUOTA_LIMIT = "usual.event.NET_QUOTA_LIMIT"; 27 const std::string COMMON_EVENT_NET_QUOTA_LIMIT_REMINDED = "usual.event.NET_QUOTA_LIMIT_REMINDED"; 28 const std::string COMMON_EVENT_NET_QUOTA_WARNING = "usual.event.QUOTA_WARNING"; 29 const std::string COMMON_EVENT_POWER_SAVE_MODE_CHANGED = 30 EventFwk::CommonEventSupport::COMMON_EVENT_POWER_SAVE_MODE_CHANGED; 31 const std::string COMMON_EVENT_DEVICE_IDLE_MODE_CHANGED = 32 EventFwk::CommonEventSupport::COMMON_EVENT_DEVICE_IDLE_MODE_CHANGED; 33 const std::string COMMON_EVENT_PACKAGE_REMOVED = EventFwk::CommonEventSupport::COMMON_EVENT_PACKAGE_REMOVED; 34 35 const mode_t CHOWN_RWX_USR_GRP = 0770; 36 constexpr int16_t PERIODDURATION_POS_NUM_ONE = 1; 37 constexpr int16_t DAY_ONE = 1; 38 constexpr int16_t DAY_THIRTY_ONE = 31; 39 constexpr int16_t LIMIT_ACTION_ONE = 1; 40 constexpr int16_t LIMIT_ACTION_THREE = 3; 41 constexpr int16_t LIMIT_CALLBACK_NUM = 200; 42 constexpr const char *POLICY_FILE_NAME = "/data/service/el1/public/netmanager/net_policy.json"; 43 constexpr const char *POLICY_FILE_BAK_NAME = "/data/service/el1/public/netmanager/net_policy.bak"; 44 constexpr const char *POLICY_FILE_BAK_PATH = "/data/service/el1/public/netmanager/"; 45 constexpr const char *CONFIG_HOS_VERSION = "hosVersion"; 46 constexpr const char *CONFIG_UID_POLICY = "uidPolicy"; 47 constexpr const char *CONFIG_UID = "uid"; 48 constexpr const char *CONFIG_POLICY = "policy"; 49 constexpr const char *HOS_VERSION = "1.0"; 50 constexpr const char *CONFIG_BACKGROUND_POLICY = "backgroundPolicy"; 51 constexpr const char *CONFIG_BACKGROUND_POLICY_STATUS = "status"; 52 constexpr const char *CONFIG_QUOTA_POLICY = "quotaPolicy"; 53 constexpr const char *CONFIG_QUOTA_POLICY_NETTYPE = "netType"; 54 constexpr const char *CONFIG_QUOTA_POLICY_SUBSCRIBERID = "simId"; 55 constexpr const char *CONFIG_QUOTA_POLICY_PERIODSTARTTIME = "periodStartTime"; 56 constexpr const char *CONFIG_QUOTA_POLICY_PERIODDURATION = "periodDuration"; 57 constexpr const char *CONFIG_QUOTA_POLICY_WARNINGBYTES = "warningBytes"; 58 constexpr const char *CONFIG_QUOTA_POLICY_LIMITBYTES = "limitBytes"; 59 constexpr const char *CONFIG_QUOTA_POLICY_LASTLIMITSNOOZE = "lastLimitSnooze"; 60 constexpr const char *CONFIG_QUOTA_POLICY_METERED = "metered"; 61 constexpr const char *CONFIG_QUOTA_POLICY_IDENT = "ident"; 62 constexpr const char *CONFIG_FIREWALL_RULE = "firewallList"; 63 constexpr const char *CONFIG_FIREWALL_RULE_DENIEDLIST = "deniedList"; 64 constexpr const char *CONFIG_FIREWALL_RULE_ALLOWEDLIST = "allowedList"; 65 constexpr const char *BACKGROUND_POLICY_ALLOW = "allow"; 66 constexpr const char *BACKGROUND_POLICY_REJECT = "reject"; 67 constexpr const char *IDENT_PREFIX_CELLULAR = "simId"; 68 constexpr const char *IDENT_PREFIX_WIFI = "ssId"; 69 constexpr const char *UNKNOW_IFACE = ""; 70 71 enum { 72 FIREWALL_CHAIN_NONE = 0, // ChainType::CHAIN_NONE 73 FIREWALL_CHAIN_DEVICE_IDLE = 16, // ChainType::CHAIN_OHFW_DOZABLE 74 FIREWALL_CHAIN_POWER_SAVE = 17, // ChainType::CHAIN_OHFW_UNDOZABLE 75 }; 76 77 enum { 78 FIREWALL_RULE_ALLOW = 1, 79 FIREWALL_RULE_DENY = 2, 80 }; 81 82 struct UidPolicy { 83 std::string uid; 84 std::string policy; 85 }; 86 87 struct NetPolicyQuota { 88 std::string netType; 89 std::string simId; 90 std::string periodStartTime; 91 std::string periodDuration; 92 std::string warningBytes; 93 std::string limitBytes; 94 std::string lastLimitSnooze; 95 std::string metered; 96 std::string ident; 97 }; 98 99 struct NetPolicyCellular { 100 std::string simId; 101 std::string periodStartTime; 102 std::string periodDuration; 103 std::string title; 104 std::string summary; 105 std::string limitBytes; 106 std::string limitAction; 107 std::string usedBytes; 108 std::string usedTimeDuration; 109 std::string possessor; 110 }; 111 112 struct NetFirewallRule { 113 std::set<uint32_t> deniedList; 114 std::set<uint32_t> allowedList; 115 }; 116 117 struct NetPolicy { 118 std::string hosVersion; 119 std::vector<UidPolicy> uidPolicies; 120 std::string backgroundPolicyStatus; 121 std::vector<NetPolicyQuota> netQuotaPolicies; 122 std::map<uint32_t, NetFirewallRule> netFirewallRules; 123 }; 124 125 // link power_mode_module.h 126 enum { 127 POWER_MODE_MIN = 600, 128 NORMAL_MODE = POWER_MODE_MIN, 129 SAVE_MODE, 130 EXTREME_MODE, 131 LOWPOWER_MODE, 132 POWER_MODE_MAX = LOWPOWER_MODE 133 }; 134 } // namespace NetManagerStandard 135 } // namespace OHOS 136 #endif // NET_POLICY_DEFINE_H