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 #ifndef OS_ACCOUNT_INTERFACES_INNERKITS_OS_ACCOUNT_CONSTANT_H 16 #define OS_ACCOUNT_INTERFACES_INNERKITS_OS_ACCOUNT_CONSTANT_H 17 18 #include <string> 19 #include <sys/sysinfo.h> 20 #include "os_account_info.h" 21 22 namespace OHOS { 23 namespace AccountSA { 24 namespace Constants { 25 const std::string PATH_SEPARATOR = "/"; 26 #ifndef ACCOUNT_TEST 27 const std::string USER_INFO_BASE = "/data/service/el1/public/account"; 28 #else 29 const std::string USER_INFO_BASE = "/data/service/el1/public/account/test"; 30 #endif // ACCOUNT_TEST 31 const std::string SYSTEM_ETC_BASE = "/system/etc/account"; 32 const std::string OSACCOUNT_CONSTRAINTS_JSON_PATH = SYSTEM_ETC_BASE + PATH_SEPARATOR + "osaccount_constraints.json"; 33 const std::string CONSTRAINTS_LIST_JSON_PATH = SYSTEM_ETC_BASE + PATH_SEPARATOR + "constraints_list_collection.json"; 34 const std::string ACCOUNT_LIST_FILE_JSON_PATH = USER_INFO_BASE + PATH_SEPARATOR + "account_list.json"; 35 const std::string ACCOUNT_INDEX_JSON_PATH = USER_INFO_BASE + PATH_SEPARATOR + "account_index_info.json"; 36 const std::string ACCOUNT_INFO_DIGEST_FILE_PATH = USER_INFO_BASE + PATH_SEPARATOR + "account_info_digest.json"; 37 const std::string BASE_OSACCOUNT_CONSTRAINTS_JSON_PATH = 38 USER_INFO_BASE + PATH_SEPARATOR + "base_os_account_constraints.json"; 39 const std::string GLOBAL_OSACCOUNT_CONSTRAINTS_JSON_PATH = 40 USER_INFO_BASE + PATH_SEPARATOR + "global_os_account_constraints.json"; 41 const std::string SPECIFIC_OSACCOUNT_CONSTRAINTS_JSON_PATH = 42 USER_INFO_BASE + PATH_SEPARATOR + "specific_os_account_constraints.json"; 43 const char USER_PHOTO_FILE_PNG_NAME[] = "fase.png"; 44 const char USER_PHOTO_FILE_JPG_NAME[] = "fase.jpg"; 45 const char USER_PHOTO_FILE_TXT_NAME[] = "photo.txt"; 46 const char USER_PHOTO_BASE_JPG_HEAD[] = "data:image/jpeg;base64,"; 47 const char USER_PHOTO_BASE_PNG_HEAD[] = "data:image/png;base64,"; 48 const char USER_INFO_FILE_NAME[] = "account_info.json"; 49 const char USER_ADD_SECRET_FLAG_FILE_NAME[] = "add_secret_flag"; 50 const char OPERATION_ACTIVATE[] = "activate"; 51 const char OPERATION_CREATE[] = "create"; 52 const char OPERATION_REMOVE[] = "remove"; 53 const char OPERATION_SWITCH[] = "switch"; 54 const char OPERATION_STOP[] = "stop"; 55 const char OPERATION_START[] = "start"; 56 const char OPERATION_UPDATE[] = "update"; 57 const char OPERATION_UNLOCK[] = "unlock"; 58 59 // distributed database 60 const char APP_ID[] = "os_account_mgr_service"; 61 const bool SYNC_OS_ACCOUNT_DATABASE = false; 62 const std::uint32_t DEVICE_UUID_LENGTH = 65; 63 64 // uid judgment 65 const std::int32_t APP_UID_START = 2100; 66 const std::int32_t MAX_SYSTEM_UID_NUM = 2899; 67 68 // subscribe 69 const int SUBSCRIBER_MAX_SIZE = 100; 70 // account restrict 71 const unsigned int LOCAL_NAME_MAX_SIZE = sysconf(_SC_LOGIN_NAME_MAX); 72 const unsigned int LOCAL_PHOTO_MAX_SIZE = 1024 * 1024; 73 const uint32_t SHORT_NAME_MAX_SIZE = 255; 74 const uint32_t IPC_WRITE_RAW_DATA_MAX_SIZE = 1024 * 1024 * 128; 75 76 // domain info limits 77 const unsigned int DOMAIN_NAME_MAX_SIZE = 128; 78 79 // constraint limits 80 const unsigned int CONSTRAINT_MAX_SIZE = 128; 81 82 const std::int32_t ADMIN_LOCAL_ID = 0; 83 const int ADMIN_TYPE = -1; 84 const char ADMIN_LOCAL_NAME[] = "admin"; 85 const char STANDARD_LOCAL_NAME[] = "user"; 86 const std::int32_t START_USER_ID = 100; 87 const char START_USER_STRING_ID[] = "100"; 88 const std::int32_t MAX_USER_ID = 10736; // Int32 maximum value divided by 200000 89 const std::int32_t INVALID_OS_ACCOUNT_ID = -1; 90 const size_t MAX_USER_ID_LENGTH = 4; 91 const int64_t SERIAL_NUMBER_NUM_START_FOR_ADMIN = 20210231; 92 const int64_t SERIAL_NUMBER_NUM_START = 1; 93 const int64_t CARRY_NUM = 100000000; 94 const bool IS_SERIAL_NUMBER_FULL_INIT_VALUE = false; 95 const int64_t TIME_WAIT_TIME_OUT = 5; 96 const std::int32_t WAIT_ONE_TIME = 1000; 97 const uint64_t DEFAULT_DISPALY_ID = 0; 98 const uint64_t INVALID_DISPALY_ID = -1ull; 99 100 // an error code of ipc which means peer end is dead 101 const int32_t E_IPC_ERROR = 29189; 102 const int32_t E_IPC_SA_DIED = 32; 103 104 // type template 105 const char DEVICE_OWNER_ID[] = "deviceOwnerId"; 106 const char ALL_GLOBAL_CONSTRAINTS[] = "allGlobalConstraints"; 107 const char ALL_SPECIFIC_CONSTRAINTS[] = "allSpecificConstraints"; 108 const char USER_CONSTRAINTS_TEMPLATE[] = "UserConstraintsTemplate"; 109 const char TYPE_LIST[] = "TypeList"; 110 const char ACCOUNT_LIST[] = "AccountList"; 111 const char NEXT_LOCAL_ID[] = "NextLocalId"; 112 const char COUNT_ACCOUNT_NUM[] = "CountAccountNum"; 113 const char MAX_ALLOW_CREATE_ACCOUNT_ID[] = "MaxAllowCreateAccountID"; 114 const char SERIAL_NUMBER_NUM[] = "SerialNumber"; 115 const char IS_MULTI_OS_ACCOUNT_ENABLE[] = "IsMultiOsAccountEnable"; 116 const char IS_SERIAL_NUMBER_FULL[] = "isSerialNumberFull"; 117 const char CONSTRAINTS_LIST[] = "constraints"; 118 const char IS_ALLOWED_CREATE_ADMIN[] = "IsAllowedCreateAdmin"; 119 const char LOCAL_NAME[] = "localName"; 120 const char SHORT_NAME[] = "shortName"; 121 122 123 // start type 124 const OS_ACCOUNT_SWITCH_MOD NOW_OS_ACCOUNT_SWITCH_MOD = OS_ACCOUNT_SWITCH_MOD::HOT_SWITCH; 125 }; // namespace Constants 126 } // namespace AccountSA 127 } // namespace OHOS 128 #endif // OS_ACCOUNT_INTERFACES_INNERKITS_OS_ACCOUNT_CONSTANT_H 129