blob: a96d31f0bba0f58b2d12ed884cfed90aaa7f97d3 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2005
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
36/*******************************************************************************
37 * Filename:
38 * ---------
39 * sim_trc.h
40 *
41 * Project:
42 * --------
43 * MT6208
44 *
45 * Description:
46 * ------------
47 * This file is trace map definition.
48 *
49 * Author:
50 * -------
51 * -------
52 *
53 *==============================================================================
54 *******************************************************************************/
55
56/********************************************************************************
57* Copyright Statement:
58* --------------------
59*
60* This product has been developed using a protocol stack
61* developed by Sasken Communication Technologies Limited.
62*
63********************************************************************************/
64
65/*Kinki*/
66#ifndef _SIM_COMMON_ENUMS_H
67
68#define _SIM_COMMON_ENUMS_H
69#include "sim_common_enums.h"
70//#include "custom_mmi_default_value.h"
71//#include "common_nvram_editor_data_item.h"
72#include "nvram_editor_data_item.h"
73#include "l4_nvram_def.h"
74#include "l4_nvram_editor.h"
75//#include "kal_non_specific_general_types.h"
76//#include "ps2sim_struct.h"
77#include "kal_general_types.h"
78#include "ps_public_struct.h"
79#include "ps_public_enum.h"
80#endif /* _SIM_COMMON_ENUMS_H */
81
82
83#ifndef _SMU_COMMON_ENUMS_H
84#define _SMU_COMMON_ENUMS_H
85
86#include "custom_nvram_sec.h"
87
88#define NUM_OF_BYTE_LP 2
89#define MAX_LP_NUM 5
90#define NUM_OF_BYTE_ECC 3
91#define MAX_ECC_NUM 5
92#define NUM_OF_BYTE_NP NVRAM_EDITOR_NUM_OF_BYTE_NP
93#define NUM_NP NVRAM_EDITOR_NUM_NP
94#define NUM_OF_BYTE_NSP NVRAM_EDITOR_NUM_OF_BYTE_NSP
95#define NUM_NSP NVRAM_EDITOR_NUM_NSP
96#define NUM_OF_BYTE_KEY NVRAM_EDITOR_NUM_OF_BYTE_KEY
97//#define NUM_GID NVRAM_EDITOR_NUM_GID
98#define NUM_OF_BYTE_IMSI NVRAM_EDITOR_NUM_OF_BYTE_IMSI
99#define NUM_OF_BYTE_PLMN 3
100#define NUM_OF_PUCT_DIGIT 18
101#define NUM_OF_BYTE_ICCID NVRAM_EDITOR_NUM_OF_BYTE_ICCID
102
103#ifdef __SMS_DEPERSONALIZATION__
104#define LEN_OF_BYTE_SMS_DEPER 88 //Kinki: [MAUI_01255000]
105#endif
106
107// UICC unlock
108#define SML_ENC_NONCE_LEN 256+1 // 256 byte + 1 byte('/0')
109#define SML_MAX_RAW_NONCE_LEN 256
110#define SML_RAND_STRING_LEN 80
111#define SML_RAW_NONCE_LEN SML_RAND_STRING_LEN+15 // IMEI: 15 digit, MEID : 14 digit + 'Z'
112
113/* msg ID */
114
115typedef enum
116{
117 SMU_PHONELOCK_REQUIRED,
118 SMU_CHV1_NOT_REQUIRED,
119 SMU_CHV1_REQUIRED,
120 SMU_UBCHV1_REQUIRED,
121 SMU_SIM_BLOCKED,
122 SMU_SMT_TP_HALT,
123}smu_chv1_phonelock_status_enum;
124
125typedef enum
126{
127 SMU_CHV1,
128 SMU_CHV2
129}smu_chv_type_enum;
130
131typedef enum
132{
133 CHV_RETRY_ALLOW,
134 CHV_VERIFIED,
135 CHV_DISABLED,
136 CHV_BLOCKED,
137 CHV_DEAD,
138 CHV_INVALID_TYPE,
139 CHV_NOTINITED
140}smu_chv_status_enum;
141
142
143typedef enum
144{
145 SEARCH_RECORD=162,
146 READ_BINARY=176,
147 READ_RECORD=178,
148 GET_RESPONSE=192,
149 UPDATE_BINARY=214,
150 UPDATE_RECORD=220,
151 STATUS_CMD=242
152}smu_sim_access_cmd_enum;
153
154
155typedef enum
156{
157 SMU_UPDATE_ACMMAX,
158 SMU_UPDATE_ACM,
159 SMU_UPDATE_PUCT,
160 SMU_SWITCH_BDN
161}smu_access_item_enum;
162
163typedef enum
164{
165 SMU_ACCESS_NOT_ALLOW,
166 SMU_VERIFY_CHV1,
167 SMU_VERIFY_CHV2
168}smu_access_condition_enum;
169
170typedef enum
171{
172 ID_READY,
173 ID_SIM_PIN1,
174 ID_SIM_PUK1,
175 ID_PH_SIM_PIN,
176 ID_PH_FSIM_PIN,
177 ID_PH_FSIM_PUK,
178 ID_SIM_PIN2,
179 ID_SIM_PUK2,
180 ID_PH_NET_PIN,
181 ID_PH_NET_PUK,
182 ID_PH_NETSUB_PIN,
183 ID_PH_NETSUB_PUK,
184 ID_PH_SP_PIN,
185 ID_PH_SP_PUK,
186 ID_PH_CORP_PIN,
187 ID_PH_CORP_PUK,
188 ID_PH_LINK_NS_SP_PIN,
189 ID_PH_LINK_NS_SP_PUK,
190 ID_PH_LINK_SIM_C_PIN,
191 ID_PH_LINK_SIM_C_PUK,
192 ID_PHONELOCK,
193 ID_SIM_BLOCKED,
194 ID_SIM_BUSY, /* This add for WM CPIN? with SML check */
195 ID_SIM_PIN_DEFER,
196 ID_CARD_REBOOT,
197 ID_CARD_RESTRICTED,
198 ID_EMPTY_EUICC,
199 ID_UNKNOWN //link_SML
200}smu_pending_password_id_enum;
201
202typedef enum
203{
204 SMU_WRITE_PUCT_RMI,
205 SMU_WRITE_PUCT_LMI,
206 SMU_SIM_ACCESS_CMD,
207 SMU_WRITE_PLMN_SEL_ADD_RMI,
208 SMU_WRITE_PLMN_SEL_REMOVE_RMI,
209 SMU_WRITE_PLMN_SEL_REPLACE_RMI,
210 SMU_WRITE_PLMN_SEL_ADD_LMI,
211 SMU_WRITE_PLMN_SEL_REMOVE_LMI,
212 SMU_WRITE_PLMN_SEL_REPLACE_LMI,
213 SMU_READ_PUCT_RMI,
214 SMU_READ_PLMN_SEL_RMI,
215 SMU_READ_PUCT_LMI,
216 SMU_READ_PLMN_SEL_LMI,
217 SMU_READ_CSP_RMI,
218 SMU_READ_CSP_LMI,
219 SMU_READ_CHANGED_PLMNSEL,
220 SMU_READ_CHANGED_PUCT,
221 SMU_WRITE_DCK
222}smu_write_access_id_enum;
223
224typedef enum {
225 SMU_CI_DISABLE,
226 SMU_CI_ENABLE,
227 SMU_CI_NONE
228} smu_cipher_ind_enum;
229
230/*Kinki : revised ECC*/
231typedef enum
232{
233 SMU_SIM_UNKNOWN, //default value
234 SMU_SIM_NOT_INSERTED,
235 SMU_SIM_INSERTED
236}smu_sim_inserted_enum;
237
238#ifdef __SMS_DEPERSONALIZATION__ //Kinki: [MAUI_01255000]
239
240typedef enum
241{
242 SMU_SML_LENGTH_TOO_SHORT,
243 RFU
244}smu_sms_depersonalization_enum;
245
246#endif
247
248typedef struct {
249 kal_uint8 mcc2;
250 kal_uint8 mcc1;
251 kal_uint8 mnc3;
252 kal_uint8 mcc3;
253 kal_uint8 mnc2;
254 kal_uint8 mnc1;
255 kal_uint8 access_tech[2];
256} smu_plmn_id_struct;
257
258typedef enum
259{
260 SML_LOCK_RULE_NONE = 0,
261 SML_LOCK_RULE_SIM1_SLOT_LOCKED_ONLY = 1,
262 SML_LOCK_RULE_SIM2_SLOT_LOCKED_ONLY = 2,
263 SML_LOCK_RULE_ALL_SIM_SLOT_LOCKED = 3,
264 SML_LOCK_RULE_LINK_LOCK_BY_SIM1_SLOT = 4,
265 SML_LOCK_RULE_LINK_LOCK_BY_SIM2_SLOT = 5,
266 SML_LOCK_RULE_LINK_LOCK_BY_ALL_SIM_SLOT = 6,
267 SML_LOCK_RULE_LINK_LOCK_RJIO_LOCK = 7, // Lock on protocol 1
268 SML_LOCK_RULE_LINK_LOCK_BY_ALL_SIM_SLOT_REVERSE = 8,
269 SML_LOCK_RULE_LINK_LOCK_BY_ALL_SIM_SLOT_SRVLCK = 9,
270 SML_LOCK_RULE_VZW_NETWORK_LOCK = 10,
271 SML_LOCK_RULE_LOCK_BY_OP129 = 11, // KDDI RSU
272 SML_LOCK_RULE_TMO_NETWORK_LOCK = 12,
273 SML_LOCK_RULE_ATT_NETWORK_LOCK = 13,
274 SML_LOCK_RULE_SPR_NETWORK_LOCK = 14,
275
276 SML_LOCK_RULE_MAX,
277 SML_LOCK_RULE_LEGACY_MODE = 255,
278 SML_LOCK_RULE_UNKNOWN = 256,
279} sml_lock_rule_enum;
280
281typedef enum
282{
283 SML_LOCK_SUB_RULE_SLOT_COMMON_RULE,
284 SML_LOCK_SUB_RULE_SLOT_INDEPENDENT_RULE,
285 SML_LOCK_SUB_RULE_LS_FULL_SERVICE,
286 SML_LOCK_SUB_RULE_LS_CS_ONLY_SERVICE,
287 SML_LOCK_SUB_RULE_LS_VOICE_ONLY_SERVICE,
288 SML_LOCK_SUB_RULE_UNKNOWN
289} sml_lock_sub_rule_enum;
290
291typedef enum
292{
293 SML_LOCK_SPR_SUB_RULE_DEFAULT,
294 SML_LOCK_SPR_SUB_RULE_BMVNO
295} sml_lock_spr_sub_rule_enum;
296
297typedef enum
298{
299 SML_LOCK_TMO_SUB_RULE_MOVIAL,
300 SML_LOCK_TMO_SUB_RULE_TRUSTONIC
301} sml_lock_tmo_sub_rule_enum;
302
303#ifdef __CUST_SML_RULE__
304
305typedef enum
306{
307 SML_LOCK_CUST_CODE_NONE = 0,
308
309 SML_LOCK_CUST_CODE_CUST_X,
310 SML_LOCK_CUST_CODE_SIZE
311} sml_lock_cust_code_enum;
312
313typedef enum
314{
315 /* SML_LOCK_CUST_CODE_CUST_X */
316 SML_LOCK_CUST_RULE_CUST_X_RULE_XXX = 0,
317 SML_LOCK_CUST_RULE_CUST_X_RULE_SIZE,
318
319 SML_LOCK_CUST_RULE_NONE = 0xFF
320} sml_lock_cust_rule_enum;
321
322/* Order and Existence should be aligned with sml_lock_cust_code_enum */
323#define SML_GBLOB_MAX_CUST_RULE_LIST_END 0
324#define SML_GBLOB_MAX_CUST_RULE_LIST { \
325 0, /* SML_LOCK_CUST_CODE_NONE */ \
326 \
327 SML_LOCK_CUST_RULE_CUST_X_RULE_SIZE, /* SML_LOCK_CUST_CODE_CUST_X */ \
328 SML_GBLOB_MAX_CUST_RULE_LIST_END \
329 }
330
331extern const kal_uint8 sml_gblob_max_cust_rule[SML_LOCK_CUST_CODE_SIZE + 1];
332
333#endif /* __CUST_SML_RULE__ */
334
335typedef enum
336{
337 SML_RULE_UNKNOWN,
338 SML_RULE_FULL_SERVICE,
339 SML_RULE_CS_ONLY_SERVICE,
340 SML_RULE_PS_ONLY_SERVICE,
341 SML_RULE_ECC_ONLY_SERVICE,
342 SML_RULE_NO_SERVICE,
343 SML_RULE_VOICE_ONLY_SERVICE, // Modem still have full service, AP will block data service (except VoLTE call)
344} sml_lock_rule_policy_enum;
345
346typedef enum
347{
348 SML_STATUS_SIM_UNKNOWN,
349 SML_STATUS_SIM_VALID,
350 SML_STATUS_SIM_INVALID,
351 SML_STATUS_SIM_ABSENT
352} sml_state_is_valid_sim_enum;
353
354typedef enum
355{
356 LINK_SML_BUSY_SIM,
357 LINK_SML_VALID_SIM,
358 LINK_SML_INVALID_SIM,
359 LINK_SML_INVALID_TO_VALID_SIM,
360 LINK_SML_VALID_TO_INVLAID_SIM,
361 LINK_SML_UNKNOWN_SIM
362} link_sml_valid_sim_enum;
363
364
365typedef enum
366{
367 LINK_SML_IN_SERVICE,
368 LINK_SML_NO_SERVICE,
369 LINK_SML_UNKNOWN_SERVICE
370} link_sml_srv_state_enum;
371
372typedef enum
373{
374 LINK_SML_CHECK_ALL_SIM_LOCKED,
375 LINK_SML_CHECK_WAITING,
376 LINK_SML_CHECK_VALID_SIM_EXIST,
377 LINK_SML_CHECK_NO_VALID_SIM_EXIST,
378 LINK_SML_CHECK_UNKNOWN
379} link_sml_check_enum;
380
381typedef enum
382{
383 DSML_SIMLOCK_ENCRYPTED_DATA_RECEIVED_SUCCESS = 0,
384 DSML_SIMLOCK_ENCRYPTED_DATA_RECEIVED_ERROR = 1,
385 DSML_SIMLOCK_ENCRYPTED_DATA_DELETED_SUCCESS = 2,
386 DSML_SIMLOCK_ENCRYPTED_DATA_DELETED_ERROR = 3,
387 DSML_SIMLOCK_ENCRYPTED_DATA_READ_SUCCESS = 4,
388 DSML_SIMLOCK_ENCRYPTED_DATA_READ_ERROR = 5,
389 DSML_SIMLOCK_INVALID_IMEI = 6,
390 DSML_SIMLOCK_CONFIGURE_SUCCESS = 7,
391 DSML_SIMLOCK_DUPLICATE_SETTING_ERROR = 8,
392 DSML_SIMLOCK_MAX_RETRIES_REACHED = 9,
393 DSML_SIMLOCK_INVALID_LOCK_DATA = 10,
394 DSML_SIMLOCK_PARAMETER_UNSUPPORTED = 11,
395 DSML_SIMLOCK_CK_ERROR = 12,
396 DSML_SIMLOCK_MEMORY_ERROR = 13,
397 DSML_SIMLOCK_SIGN_ERROR = 14,
398 DSML_SIMLOCK_DECRYPT_ERROR = 15,
399 DSML_SIMLOCK_UNKNOWN_ERROR = 16,
400} dsml_result_enum;
401
402typedef enum
403{
404 DSML_OP_ADD_LOCK_WITHOUT_CK = 0,
405 DSML_OP_UNLOCK_WITHOUT_CK = 1,
406 DSML_OP_PERMANENTLY_UNLOCK_WITHOUT_CK = 2,
407 DSML_OP_ADD_LOCK = 3,
408 DSML_OP_UNLOCK_WITH_CK = 4,
409 DSML_OP_REPLACED_CARD = 5,
410 DSML_OP_UPDATE_SIMLOCK = 6,
411 DSML_OP_UNKNOWN = 7,
412} dsml_op_enum;
413
414typedef struct
415{
416 kal_uint8 cat_type;
417 kal_uint8 autolock;
418 kal_uint8 blacklist_op;
419 kal_uint8 blacklist_len;
420 kal_uint8 blacklist[DSML_MAX_BL_LEN];
421} dsml_category_data_struct;
422
423typedef struct
424{
425 dsml_op_enum operation;
426 kal_uint8 slot;
427 kal_uint8 imei[15];
428 kal_uint8 slot_policy;
429 kal_uint8 sub_policy[2]; //sub_policy[0] : 1st byte, sub_policy[1] : 2nd byte
430 kal_uint8 ck_length;
431 kal_uint8 ck[32];
432 kal_uint8 hck_length;
433 kal_uint8 hck[64];
434 kal_uint8 salt_length;
435 kal_uint8 salt[32];
436 kal_uint8 iteration[4];
437 kal_uint32 max_retry_cnt;
438 kal_uint8 num_of_cat;
439 dsml_category_data_struct cat_data[7];
440} dsml_simlock_data_struct;
441
442/* UICC Unlock Validation Mode */
443typedef enum
444{
445 SMU_UULK_VALID_CHECK_AND_UPDATE,
446 SMU_UULK_VALID_CHECK_ONLY,
447 SMU_UULK_VALID_UNKNOWN
448} smu_uulk_valid_mode_enum;
449
450typedef enum
451{
452 SMU_TRC_SIM_STATUS_ENUM,
453 SMU_TRC_PENDING_PASSWD_ENUM,
454 SMU_TRC_ENUM_UNKNOWN
455} smu_trc_enum_type_enum;
456
457
458typedef enum{
459 SML_OP129_NULL,
460 SML_OP129_LOCK,
461 SML_OP129_UNLOCK,
462 SML_OP129_NO_CHECK,
463}smu_op129_lock_enum;
464
465extern kal_bool l4csmu_read_plmn_sel(sim_file_index_enum file_idx, kal_uint8 start_index, kal_uint16 * num, smu_plmn_id_struct * plmn_ptr);
466//extern smu_chv_status_enum l4csmu_get_chv_status(smu_chv_type_enum type);
467extern kal_bool l4csmu_get_puct_value(kal_uint8 *currency,kal_uint8 *ppu);
468
469//SMU only
470/*Kinki remove(useless function)*/
471//extern void l4csmu_get_preferred_language(kal_uint8 *num,sim_lp_file_type_enum *file_type, kal_uint8 *lp_data);
472//extern void l4csmu_get_ecc(kal_uint8 *num_ecc, sim_ecc_entry_struct *ecc_entry);
473//extern void l4csmu_get_ecc(kal_uint8 *num, kal_uint8 *ecc_data);
474extern void l4csmu_get_imsi(kal_uint8 *imsi_data);
475extern void l4csmu_get_imsi_by_idx(kal_uint8 *imsi_data, kal_uint8 simInterface);
476
477//SMU only
478/*Kinki remove(useless function)*/
479//extern smu_access_condition_enum l4csmu_get_sim_access_info(smu_access_item_enum access_item);
480extern smu_pending_password_id_enum l4csmu_get_pending_password_id(void);
481//link_SML
482extern smu_pending_password_id_enum l4csmu_get_pending_password_id_ext(sim_interface_enum sim_id);
483extern smu_pending_password_id_enum l4csmu_app_get_pending_password_id(kal_uint8);
484extern kal_bool l4csmu_get_pending_lock(smu_pending_password_id_enum password, smu_security_type_enum *type);
485extern void l4csmu_get_chv_status_ext(sim_chv_status_struct *chv_status,sim_interface_enum sim_id);
486extern kal_bool l4csmu_is_normal_registration_allowed(sim_interface_enum ps_id);
487
488
489/*Kinki remove(useless function)*/
490//extern kal_uint16 l4csmu_test_preferred_plmn (void); //Benson 20040407 modified for mtk00714's request
491extern sim_dn_enum l4csmu_get_dial_mode(void);
492extern sim_dn_enum l4csmu_get_dial_mode_by_ps_id(protocol_id_enum ps_id);
493//Kinki remove for MAUI_00632199
494#if 0
495#ifdef __GEMINI__
496/* under construction !*/
497#else
498/* under construction !*/
499#endif
500#endif
501
502extern kal_bool check_is_usim(void);
503
504#if defined(__GEMINI__)
505extern smu_sim_inserted_enum is_sim_inserted(kal_uint8 simInterface);
506#else
507extern smu_sim_inserted_enum is_sim_inserted(void);
508#endif
509
510extern kal_bool smu_update_is_simcard_replaced(kal_uint8 *iccid, kal_uint8 simInterface);
511
512#ifdef __cplusplus
513extern "C" {
514#endif
515extern smu_sim_status_enum smu_update_is_sim_replaced(kal_uint8 *imsi, kal_uint8 simInterface);
516#ifdef __cplusplus
517}
518#endif
519
520extern smu_cipher_ind_enum l4csmu_get_cipher_ind_status(void);
521
522extern kal_bool l4csmu_sat_ready_req(kal_bool trigger_by_user);
523
524extern kal_bool l4csmu_plmn_read_of_File_index(sim_file_index_enum file_idx, kal_uint8 simInterface, kal_uint16 * fileSize, kal_uint8 * file_data);
525
526#ifdef __TRACFONE_SML__
527extern kal_bool is_any_sml_locked(kal_uint8 simInterface);
528#endif
529extern kal_bool smu_is_lte_only_customization_supported();
530
531#define SML_MCC_LEN 3
532#define SML_MCC_MNC_LEN 6
533extern kal_uint8 sml_sprint_mcc_mnc_list[][SML_MCC_MNC_LEN+1];
534extern kal_uint8 sml_us_mcc_list[][SML_MCC_LEN+1];
535extern kal_uint8 sml_bmvno_mcc_mnc_list[][SML_MCC_MNC_LEN+1];
536extern kal_uint8 sml_uicc_lock_get_list_num(kal_uint8 lock_code, kal_uint8 ps_id);
537extern kal_bool sml_is_bmvno_plmn_gid(kal_uint8* mccmnc, kal_uint8 is_valid_gid1, kal_uint8* gid1);
538extern kal_bool custom_sml_is_uicc_unlock_enabled(void);
539extern kal_bool sml_uicc_lock_checking(kal_uint8 code, kal_uint8* imsi);
540extern kal_uint8 l4csmu_get_unlock_code();
541extern void l4csmu_gen_nonce(kal_uint8* device_id, kal_uint32 device_id_len, kal_uint8* nonce, kal_uint32* nonce_len);
542extern kal_bool l4csmu_validate_signature(smu_uulk_valid_mode_enum mode, kal_uint8 unlock_code, kal_uint8* signature, kal_uint32 signature_len);
543
544extern void sml_lock_rule_and_status_update_ind(kal_uint8 simInterface);
545extern sml_lock_rule_policy_enum sml_query_legal_service(kal_uint8 simInterface);
546extern void sml_update_legal_service(sml_lock_rule_policy_enum new_policy,
547 sml_state_is_valid_sim_enum is_sim_valid,
548 kal_uint8 simInterface);
549extern sml_lock_rule_enum sml_query_sml_lock_rule();
550#ifdef __CUST_SML_RULE__
551extern kal_uint8 sml_query_sml_cust_code(void);
552extern kal_uint8 sml_query_sml_cust_rule(void);
553#endif
554extern kal_uint16 sml_query_sml_lock_sub_rule();
555extern sml_lock_sub_rule_enum sml_query_slot_lock_context_rule();
556extern sml_lock_sub_rule_enum sml_query_linksml_invalid_sim_rule();
557extern kal_bool sml_is_gblob_enabled(void);
558extern kal_bool sml_is_linksml_enabled(void);
559extern kal_bool sml_is_internal_gblob_lock_rule(sml_lock_rule_enum lock_rule);
560extern void sml_force_unlock_gblob_dev_lock();
561
562extern kal_bool l4csmu_sl_get_dual_sim_lock_control_slot1_only_feature_supported(void);
563extern kal_bool smu_is_sml_in_sl_locked(void);
564
565extern void sml_upgrade_service_req(void);
566extern void sml_update_service_state(link_sml_srv_state_enum state, kal_uint8 simInterface);
567extern dsml_result_enum dynamic_simmelock_hdlr(dsml_simlock_data_struct* simlock_data);
568extern kal_uint8 l4csmu_get_sml_cat_algo_type_with_source(sml_cat_enum cat, kal_uint8 source);
569extern kal_uint8 l4csmu_get_sml_cat_algo_type(sml_cat_enum cat);
570extern sml_state_is_valid_sim_enum sml_query_sml_sim_state(kal_uint8 simInterface);
571extern kal_bool sml_check_ctrlslot_if_all_cat_unlock_state(kal_uint8 sml_lock_rule);
572
573extern kal_bool smu_check_is_iccid_valid(kal_uint8 ps_id);
574
575extern kal_bool sml_vzw_rsu_is_need_relock(kal_uint8 ps_id);
576
577extern void l4csmu_get_nonce_sign_status_req(kal_uint8* nonce_status, kal_uint8* sign_status);
578#endif
579