1 /*
2  * Copyright (C) 2021 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 OHOS_SIM_CONSTANT_H
17 #define OHOS_SIM_CONSTANT_H
18 
19 namespace OHOS {
20 namespace Telephony {
21 enum ControllerType {
22     ICC_CONTROLLER_REQ_BASE = 0x16EFF0,
23     ICC_CONTROLLER_REQ_NONE,
24     ICC_CONTROLLER_REQ_SEND_RESPONSE
25 };
26 
27 // mnc Length type
28 enum MncType {
29     UNINITIALIZED_MNC = -1,
30     UNKNOWN_MNC = 0,
31 };
32 
33 enum MWIType {
34     MSG_SIM_MWI = 0,
35     MSG_SIM_CFI = 1,
36     MSG_SIM_SPN = 2
37 };
38 
39 enum StateMessage {
40     MSG_SIM_OBTAIN_ICC_FILE_DONE = 100,
41     MSG_ICC_REFRESH = 31,
42     MSG_SIM_APP_READY = 1
43 };
44 
45 enum CallForwardType {
46     ICC_CALL_FORWARD_TYPE_DISABLED = 0,
47     ICC_CALL_FORWARD_TYPE_ENABLED = 1,
48     ICC_CALL_FORWARD_TYPE_UNKNOWN = -1
49 };
50 
51 enum SimMessage {
52     MSG_ID_DEFAULT = 0,
53     MSG_SIM_OBTAIN_IMSI_DONE = 0x03,
54     MSG_SIM_OBTAIN_ICCID_DONE,
55     MSG_SIM_OBTAIN_MBI_DONE,
56     MSG_SIM_OBTAIN_MBDN_DONE,
57     MSG_SIM_OBTAIN_MWIS_DONE,
58     MSG_SIM_OBTAIN_VOICE_MAIL_INDICATOR_CPHS_DONE,
59     MSG_SIM_OBTAIN_AD_DONE, // Admin data
60     MSG_SIM_OBTAIN_MSISDN_DONE,
61     MSG_SIM_OBTAIN_CPHS_MAILBOX_DONE,
62     MSG_SIM_OBTAIN_SPN_DONE,
63     MSG_SIM_OBTAIN_LI_LANGUAGE_DONE,
64     MSG_SIM_OBTAIN_PL_LANGUAGE_DONE,
65     MSG_SIM_OBTAIN_SPDI_DONE,
66     MSG_SIM_UPDATE_DONE,
67     MSG_SIM_OBTAIN_PNN_DONE,
68     MSG_SIM_OBTAIN_SST_DONE,
69     MSG_SIM_OBTAIN_ALL_SMS_DONE,
70     MSG_SIM_MARK_SMS_READ_DONE,
71     MSG_SIM_SET_MBDN_DONE,
72     MSG_SIM_SMS_ON_SIM,
73     MSG_SIM_OBTAIN_SMS_DONE,
74     MSG_SIM_OBTAIN_CFF_DONE,
75     MSG_SIM_SET_CPHS_MAILBOX_DONE,
76     MSG_SIM_OBTAIN_INFO_CPHS_DONE,
77     MSG_SIM_SET_MSISDN_DONE,
78     MSG_SIM_OBTAIN_CFIS_DONE,
79     MSG_SIM_OBTAIN_CSP_CPHS_DONE,
80     MSG_SIM_OBTAIN_GID1_DONE,
81     MSG_SIM_OBTAIN_GID2_DONE,
82     MSG_SIM_OBTAIN_PLMN_W_ACT_DONE,
83     MSG_SIM_OBTAIN_OPLMN_W_ACT_DONE,
84     MSG_SIM_OBTAIN_HPLMN_W_ACT_DONE,
85     MSG_SIM_OBTAIN_EHPLMN_DONE,
86     MSG_SIM_OBTAIN_FPLMN_DONE,
87     MSG_SIM_OBTAIN_DEVICE_IDENTITY_DONE,
88     MSG_SIM_OBTAIN_CDMA_SUBSCRIPTION_DONE,
89     MSG_SIM_SMS_ON_RUIM,
90     MSG_SIM_OBTAIN_OPL_DONE,
91     MSG_SIM_OBTAIN_OPL5G_DONE,
92     MSG_SIM_OBTAIN_IMPI_DONE,
93     MSG_SIM_OBTAIN_CSIM_SPN_DONE,
94     MSG_SIM_OBTAIN_IST_DONE,
95 #ifdef CORE_SERVICE_SUPPORT_ESIM
96     MSG_ESIM_OPEN_CHANNEL_DONE,
97     MSG_ESIM_CLOSE_CHANNEL_DONE,
98     MSG_ESIM_OBTAIN_EID_DONE,
99     MSG_ESIM_OBTAIN_EUICC_CHALLENGE_DONE,
100     MSG_ESIM_OBTAIN_EUICC_INFO2_DONE,
101     MSG_ESIM_OBTAIN_EUICC_INFO_1_DONE,
102     MSG_ESIM_OBTAIN_DEFAULT_SMDP_ADDRESS_DONE,
103     MSG_ESIM_ESTABLISH_DEFAULT_SMDP_ADDRESS_DONE,
104     MSG_ESIM_DELETE_PROFILE,
105     MSG_ESIM_SWITCH_PROFILE,
106     MSG_ESIM_DISABLE_PROFILE,
107     MSG_ESIM_RESET_MEMORY,
108     MSG_ESIM_REMOVE_NOTIFICATION,
109     MSG_ESIM_REQUEST_ALL_PROFILES,
110     MSG_ESIM_LIST_NOTIFICATION,
111     MSG_ESIM_SET_NICK_NAME,
112     MSG_ESIM_CANCEL_SESSION,
113     MSG_ESIM_OBTAIN_SMDS_ADDRESS,
114     MSG_ESIM_GET_PROFILE,
115     MSG_ESIM_RETRIEVE_NOTIFICATION_DONE,
116     MSG_ESIM_RETRIEVE_NOTIFICATION_LIST,
117     MSG_ESIM_AUTHENTICATE_SERVER,
118     MSG_ESIM_PREPARE_DOWNLOAD_DONE,
119     MSG_ESIM_SEND_APUD_DATA,
120     MSG_ESIM_LOAD_BOUND_PROFILE_PACKAGE,
121     MSG_ESIM_REQUEST_RULES_AUTH_TABLE,
122 #endif
123 };
124 
125 enum ElementaryFile {
126     // ETSI TS 102 221 V3.3.0 section 13.3 Preferred Languages
127     ELEMENTARY_FILE_PL = 0x2F05,
128     // CPHS V4.2 section B.3.1.1, B.4.1 - B.4.7 CPHS information Call forwarding flags and so on
129     ELEMENTARY_FILE_VOICE_MAIL_INDICATOR_CPHS = 0x6F11,
130     ELEMENTARY_FILE_CFF_CPHS = 0x6F13,
131     ELEMENTARY_FILE_SPN_CPHS = 0x6F14,
132     ELEMENTARY_FILE_CSP_CPHS = 0x6F15,
133     ELEMENTARY_FILE_INFO_CPHS = 0x6F16,
134     ELEMENTARY_FILE_MAILBOX_CPHS = 0x6F17,
135     ELEMENTARY_FILE_SPN_SHORT_CPHS = 0x6F18,
136     // 3GPP TS 51.011 V4.1.0 section 10 contents of the Elementary Files
137     ELEMENTARY_FILE_ICCID = 0x2FE2,
138     ELEMENTARY_FILE_OPL5G = 0x4F08,
139     ELEMENTARY_FILE_IMG = 0x4F20,
140     ELEMENTARY_FILE_HPLMN = 0x6F31,
141     ELEMENTARY_FILE_SST = 0x6F38,
142     ELEMENTARY_FILE_ADN = 0x6F3A,
143     ELEMENTARY_FILE_FDN = 0x6F3B,
144     ELEMENTARY_FILE_SMS = 0x6F3C,
145     ELEMENTARY_FILE_GID1 = 0x6F3E,
146     ELEMENTARY_FILE_GID2 = 0x6F3F,
147     ELEMENTARY_FILE_MSISDN = 0x6F40,
148     ELEMENTARY_FILE_SPN = 0x6F46,
149     ELEMENTARY_FILE_SDN = 0x6F49,
150     ELEMENTARY_FILE_EXT1 = 0x6F4A,
151     ELEMENTARY_FILE_EXT2 = 0x6F4B,
152     ELEMENTARY_FILE_EXT3 = 0x6F4C,
153     ELEMENTARY_FILE_EXT4 = 0x6F4E,
154     ELEMENTARY_FILE_PLMN_W_ACT = 0x6F60,
155     ELEMENTARY_FILE_OPLMN_W_ACT = 0x6F61,
156     ELEMENTARY_FILE_HPLMN_W_ACT = 0x6F62,
157     ELEMENTARY_FILE_FPLMN = 0x6F7B,
158     ELEMENTARY_FILE_AD = 0x6FAD,
159     ELEMENTARY_FILE_PNN = 0x6FC5,
160     ELEMENTARY_FILE_OPL = 0x6FC6,
161     ELEMENTARY_FILE_MBDN = 0x6FC7,
162     ELEMENTARY_FILE_EXT6 = 0x6FC8,
163     ELEMENTARY_FILE_MBI = 0x6FC9,
164     ELEMENTARY_FILE_MWIS = 0x6FCA,
165     ELEMENTARY_FILE_CFIS = 0x6FCB,
166     // 3GPP TS 31.102 V3.5.0 section 4.7 files of ADF USIM
167     ELEMENTARY_FILE_PBR = 0x4F30,
168     ELEMENTARY_FILE_LI = 0x6F05,
169     // for usim extensiom
170     ELEMENTARY_FILE_EXT5 = 0x6F4E,
171     ELEMENTARY_FILE_SPDI = 0x6FCD,
172     ELEMENTARY_FILE_EHPLMN = 0x6FD9,
173     ELEMENTARY_FILE_LRPLMNSI = 0x6FDC,
174     ELEMENTARY_FILE_HPPLMN = 0x6F31,
175     ELEMENTARY_FILE_USIM_ADN = 0x4F3A,
176     ELEMENTARY_FILE_USIM_IAP = 0x4F3B,
177     // CDMA RUIM file ids from 3GPP2 C.S0023-0
178     ELEMENTARY_FILE_CST = 0x6F32,
179     ELEMENTARY_FILE_RUIM_SPN = 0x6F41,
180     ELEMENTARY_FILE_CSIM_LI = 0x6F3A,
181     ELEMENTARY_FILE_CSIM_SPN = 0x6F41,
182     ELEMENTARY_FILE_CSIM_MDN = 0x6F44,
183     ELEMENTARY_FILE_CSIM_IMSIM = 0x6F22,
184     ELEMENTARY_FILE_CSIM_CDMAHOME = 0x6F28,
185     ELEMENTARY_FILE_CSIM_EPRL = 0x6F5A,
186     ELEMENTARY_FILE_CSIM_MIPUPP = 0x6F4D,
187     // ISIM access
188     ELEMENTARY_FILE_IMPU = 0x6F04,
189     ELEMENTARY_FILE_IMPI = 0x6F02,
190     ELEMENTARY_FILE_DOMAIN = 0x6F03,
191     ELEMENTARY_FILE_IST = 0x6F07,
192     ELEMENTARY_FILE_PCSCF = 0x6F09
193 };
194 
195 // file controller constant
196 enum ControllerRequest {
197     CONTROLLER_REQ_READ_BINARY = 0xb0,
198     CONTROLLER_REQ_UPDATE_BINARY = 0xd6,
199     CONTROLLER_REQ_READ_RECORD = 0xb2,
200     CONTROLLER_REQ_UPDATE_RECORD = 0xdc,
201     CONTROLLER_REQ_SEEK = 0xa2,
202     CONTROLLER_REQ_GET_RESPONSE = 0xc0
203 };
204 
205 enum ElementaryFileTile {
206     ELEMENTARY_FILE_TYPE_TRANSPARENT = 0,
207     ELEMENTARY_FILE_TYPE_LINEAR_FIXED = 1,
208     ELEMENTARY_FILE_TYPE_CYCLIC = 3
209 };
210 
211 enum MainFile {
212     ICC_MASTER_FILE = 1,
213     ICC_DEDICATED_FILE = 2,
214     ICC_ELEMENTARY_FILE = 4
215 };
216 
217 enum ResponseFile {
218     GET_RESPONSE_ELEMENTARY_FILE_SIZE_BYTES = 15,
219     GET_RESPONSE_ELEMENTARY_FILE_IMG_SIZE_BYTES = 10
220 };
221 
222 // controller file type
223 enum SizeType {
224     SIZE_ONE_OF_FILE = 2,
225     SIZE_TWO_OF_FILE = 3,
226     TYPE_OF_FILE = 6,
227     STRUCTURE_OF_DATA = 13,
228     LENGTH_OF_RECORD = 14
229 };
230 
231 enum ControllerMessage {
232     MSG_SIM_OBTAIN_SIZE_OF_FIXED_ELEMENTARY_FILE_DONE = 1,
233     MSG_SIM_OBTAIN_FIXED_ELEMENTARY_FILE_DONE = 2,
234     MSG_SIM_OBTAIN_SIZE_OF_TRANSPARENT_ELEMENTARY_FILE_DONE = 3,
235     MSG_SIM_OBTAIN_TRANSPARENT_ELEMENTARY_FILE_DONE = 4,
236     MSG_SIM_OBTAIN_SIZE_OF_LINEAR_ELEMENTARY_FILE_DONE = 5,
237     MSG_SIM_UPDATE_TRANSPARENT_ELEMENTARY_FILE_DONE = 6,
238     MSG_SIM_UPDATE_LINEAR_FIXED_FILE_DONE = 7,
239     MSG_SIM_OBTAIN_ICON_DONE = 10
240 };
241 
242 enum {
243     INVALID_VALUE = -1,
244     BYTE_LENGTH = 8,
245     BYTE_VALUE = 0xFF
246 };
247 
248 enum LockMsg {
249     MSG_SIM_LOCKED_RECORDS_LOADED = 0xf3,
250     MSG_SIM_NETWORK_LOCKED_RECORDS_LOADED = 0xf4,
251     MSG_SIM_SPN_UPDATED = 0xf5
252 };
253 
254 enum SpnType { SPN_INVALID = -1, SPN_COND_PLMN = 1, SPN_COND = 2 };
255 
256 enum SpnShowType {
257     SPN_CONDITION_DISPLAY_SPN = 0x01,
258     SPN_CONDITION_DISPLAY_PLMN = 0x02
259 };
260 
261 enum ActiveState {
262     DEACTIVE = 0,
263     ACTIVE = 1
264 };
265 
266 enum CardShape {
267     ENTITY_CARD = 1,
268     VIRTUAL_CARD = 11
269 };
270 
271 enum CardStand {
272     NOT_MAIN = 0,
273     MAIN_CARD = 1
274 };
275 
276 enum IccStatus {
277     ICC_STATE_UNKNOWN = 0,
278     ICC_STATE_NOT_READY = 1,
279     ICC_STATE_ABSENT = 2,
280     ICC_STATE_READY = 3,
281     ICC_STATE_LOADED = 4,
282     ICC_STATE_IMSI = 5,
283     ICC_STATE_PIN = 6,
284     ICC_STATE_PUK = 7,
285     ICC_STATE_SIMLOCK = 8
286 };
287 
288 enum IccDiallingNumberConstant {
289     LOADER_ERROR = 200,
290     PARAMETER_INCORRECT = 201,
291     NAME_CHAR_POS = 36,
292     CSIM_SPN_OCTET = 0x00,
293     CSIM_SPN_7BIT_ASCII = 0x02,
294     CSIM_SPN_IA5 = 0x03,
295     CSIM_SPN_UNICODE_16 = 0x04,
296     CSIM_SPN_LATIN = 0x08,
297     CSIM_SPN_7BIT_ALPHABET = 0x09
298 };
299 
300 enum RadioProtocolEvent {
301     MSG_SIM_TIME_OUT_ACTIVE = 2000,
302     MSG_SIM_SET_ACTIVE = 2001,
303     MSG_SIM_FORGET_ALLDATA = 2002,
304 };
305 
306 enum VoiceMailConstant {
307     DEFAULT_VOICE_MAIL_COUNT = -2,
308     UNKNOWN_VOICE_MAIL_COUNT = -1,
309 };
310 
311 enum CallForwardingStatus {
312     CALL_FORWARDING_STATUS_DISABLED = 0,
313     CALL_FORWARDING_STATUS_ENABLED = 1,
314     CALL_FORWARDING_STATUS_UNKNOWN = -1,
315 };
316 
317 inline const std::string DATASHARE_READY_EVENT = "usual.event.DATA_SHARE_READY";
318 inline const std::string BUNDLE_SCAN_FINISHED_EVENT = "usual.event.BUNDLE_SCAN_FINISHED";
319 } // namespace Telephony
320 } // namespace OHOS
321 #endif // OHOS_SIM_CONSTANT_H
322