blob: b7d2d2368f8c6338d3446b1a820c2496cf6a65e1 [file] [log] [blame]
hong.liud2417072025-06-27 07:10:37 -07001#include <stdbool.h>
b.liu68a94c92025-05-24 12:53:41 +08002#include <unistd.h>
3#include <dlfcn.h>
4#include <time.h>
hong.liud2417072025-06-27 07:10:37 -07005#include "gsw_nw_interface.h"
q.huang6e4f4732025-07-22 18:46:32 +08006#include "gsw_log_interface.h"
7
b.liu68a94c92025-05-24 12:53:41 +08008
9#define MBTK_BUFF_TEMP_SIZE_32 32
10#define MBTK_ERR_OK 0
11#define MBTK_ERR_FAIL -1
xf.li56b78fb2025-06-13 03:29:21 -070012#define GSW_SIM_ICCID_LENGTH 15+1
13#define GSW_SIM_IMSI_LENGTH 15+1
14#define GSW_SIM_MSISDN_LENGTH 15+1
b.liu68a94c92025-05-24 12:53:41 +080015
16//mbtk include
17typedef unsigned int uint32;
18typedef unsigned char uint8;
19typedef unsigned short uint16;
20typedef void (*mbtk_info_callback_func)(const void* data, int data_len);
21typedef struct
22{
23 int client_fd;
24 pthread_t read_thread_id;
25 int exit_fd[2];
26 bool is_waitting;
27 pthread_cond_t cond;
28 pthread_mutex_t mutex;
29
30 pthread_mutex_t send_mutex;
31
32 // Temp response data.
33 uint16 info_err;
34 uint16 data_len;
35 void *data;
36
37 //mbtk wyq for server_ready_status add start
38 char server_ready_status;
39 //mbtk wyq for server_ready_status add end
40
41 mbtk_info_callback_func net_state_cb;
42 mbtk_info_callback_func call_state_cb;
43 mbtk_info_callback_func sms_state_cb;
44 mbtk_info_callback_func radio_state_cb;
45 mbtk_info_callback_func sim_state_cb;
46 mbtk_info_callback_func pdp_state_cb;
47 //add signal by xr
48 mbtk_info_callback_func signal_state_cb;
49} mbtk_info_handle_t;
50
51typedef enum {
52 MBTK_SIM_ABSENT = 0,
53 MBTK_SIM_NOT_READY = 1,
54 MBTK_SIM_READY = 2,
55 MBTK_SIM_PIN = 3,
56 MBTK_SIM_PUK = 4,
57 MBTK_SIM_NETWORK_PERSONALIZATION = 5
58} mbtk_sim_state_enum;
59
60typedef enum
61{
62 MBTK_DEV_MODEM_MIN_FUN, //Modem 最小功能
63 MBTK_DEV_MODEM_FULL_FUN, //Modem 全功能
64 MBTK_DEV_MODEM_DISABLE_RECEIVE_RF_CIRCUITS = 3, //Modem 禁用射频接收电路
65 MBTK_DEV_MODEM_DISABLE_TRANSMIT_AND_RECEIVE_RF_CIRCUITS, //Modem禁用射频发射和接收电路
66 MBTK_DEV_MODEM_DISABLE_SIM, //Modem 禁用(U)SIM 卡
67 MBTK_DEV_MODEM_TURN_OFF_FULL_SECONDARY_RECEIVE, //Modem 完全禁用辅助接收
68}MBTK_DEV_MODEM_FUNCTION;
69
70typedef struct
71{
72 MBTK_DEV_MODEM_FUNCTION fun;
73 int rst;
74} mbtk_modem_info_t;
75
76//api
77
78static mbtk_info_handle_t* (*mbtk_info_handle_get)(void);
b.liu68a94c92025-05-24 12:53:41 +080079#define lib_mbtk_path "/lib/libmbtk_lib.so"
80
81static int sim_init_flag = 0;
82mbtk_info_handle_t* sim_info_handle = NULL;
83static int (*mbtk_info_handle_free)(mbtk_info_handle_t** handle);
84int (*mbtk_sim_state_get)(mbtk_info_handle_t* handle, mbtk_sim_state_enum *sim_state);
85int (*mbtk_imsi_get)(mbtk_info_handle_t* handle, void *imsi);
86int (*mbtk_iccid_get)(mbtk_info_handle_t* handle, void *iccid);
87int (*mbtk_phone_number_get)(mbtk_info_handle_t* handle, void *phone_number);
b.liu68a94c92025-05-24 12:53:41 +080088int (*mbtk_set_modem_fun)(mbtk_info_handle_t* handle, mbtk_modem_info_t *info);
89int (*mbtk_sim_power_set)(int power);
b.liu68a94c92025-05-24 12:53:41 +080090
b.liu68a94c92025-05-24 12:53:41 +080091
l.yang6a42e4d2025-05-28 01:04:20 -070092#define GSW_SIM "[HAL][GSW_SIM]"
93
b.liu68a94c92025-05-24 12:53:41 +080094static void *dlHandle_mbtk;
95
96
97static int gsw_sim_api_import()
98{
99 dlHandle_mbtk = dlopen(lib_mbtk_path, RTLD_NOW);
100 if (dlHandle_mbtk == NULL)
101 {
xy.heb41615b2025-05-28 16:33:20 +0800102 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800103 }
104
b.liu68a94c92025-05-24 12:53:41 +0800105 mbtk_info_handle_get = (mbtk_info_handle_t* (*)(void))dlsym(dlHandle_mbtk, "mbtk_info_handle_get");
106 if (mbtk_info_handle_get == NULL)
107 {
q.huang6e4f4732025-07-22 18:46:32 +0800108 LOGE(GSW_SIM,"mbtk_info_handle_get dlsym fail\n");
xy.heb41615b2025-05-28 16:33:20 +0800109 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800110 }
111
112 mbtk_info_handle_free = (int (*)(mbtk_info_handle_t** handle))dlsym(dlHandle_mbtk, "mbtk_info_handle_free");
113 if (mbtk_info_handle_free == NULL)
114 {
q.huang6e4f4732025-07-22 18:46:32 +0800115 LOGE(GSW_SIM,"mbtk_info_handle_free dlsym fail\n");
xy.heb41615b2025-05-28 16:33:20 +0800116 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800117 }
118
119 mbtk_imsi_get = (int (*)(mbtk_info_handle_t* handle, void *imsi))dlsym(dlHandle_mbtk, "mbtk_imsi_get");
120 if (mbtk_imsi_get == NULL)
121 {
q.huang6e4f4732025-07-22 18:46:32 +0800122 LOGE(GSW_SIM,"mbtk_imsi_get dlsym fail\n");
xy.heb41615b2025-05-28 16:33:20 +0800123 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800124 }
125
126 mbtk_iccid_get = (int (*)(mbtk_info_handle_t* handle, void *iccid))dlsym(dlHandle_mbtk, "mbtk_iccid_get");
127 if (mbtk_iccid_get == NULL)
128 {
q.huang6e4f4732025-07-22 18:46:32 +0800129 LOGE(GSW_SIM,"mbtk_iccid_get dlsym fail\n");
xy.heb41615b2025-05-28 16:33:20 +0800130 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800131 }
132
133 mbtk_phone_number_get = (int (*)(mbtk_info_handle_t* handle, void *phone_number))dlsym(dlHandle_mbtk, "mbtk_phone_number_get");
134 if (mbtk_phone_number_get == NULL)
135 {
q.huang6e4f4732025-07-22 18:46:32 +0800136 LOGE(GSW_SIM,"mbtk_phone_number_get dlsym fail\n");
xy.heb41615b2025-05-28 16:33:20 +0800137 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800138 }
139
q.huang238b22a2025-06-10 14:36:59 +0800140
b.liu68a94c92025-05-24 12:53:41 +0800141 mbtk_sim_state_get = (int (*)(mbtk_info_handle_t* handle, mbtk_sim_state_enum *sim_state))dlsym(dlHandle_mbtk, "mbtk_sim_state_get");
142 if (mbtk_sim_state_get == NULL)
143 {
q.huang6e4f4732025-07-22 18:46:32 +0800144 LOGE(GSW_SIM,"mbtk_sim_state_get dlsym fail\n");
xy.heb41615b2025-05-28 16:33:20 +0800145 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800146 }
147
148 mbtk_set_modem_fun = (int (*)(mbtk_info_handle_t* handle, mbtk_modem_info_t *info))dlsym(dlHandle_mbtk, "mbtk_set_modem_fun");
149 if (mbtk_set_modem_fun == NULL)
150 {
q.huang6e4f4732025-07-22 18:46:32 +0800151 LOGE(GSW_SIM,"mbtk_set_modem_fun dlsym fail\n");
xy.heb41615b2025-05-28 16:33:20 +0800152 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800153 }
154
155 mbtk_sim_power_set = (int (*)(int power))dlsym(dlHandle_mbtk, "mbtk_sim_power_set");
156 if (mbtk_sim_power_set == NULL)
157 {
q.huang6e4f4732025-07-22 18:46:32 +0800158 LOGE(GSW_SIM,"mbtk_sim_power_set dlsym fail\n");
xy.heb41615b2025-05-28 16:33:20 +0800159 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800160 }
161
q.huang6e4f4732025-07-22 18:46:32 +0800162 LOGD(GSW_SIM,"gsw_sim_api_import end\n");
b.liu68a94c92025-05-24 12:53:41 +0800163 return GSW_HAL_SUCCESS;
164}
165
166/**
167 * @brief sim sdk init
168 * @param [in] token usr id define by who use
169 * @retval 0: success
170 * @retval other: fail
171 */
172int gsw_sim_sdk_init(int32_t token)
173{
xy.heb41615b2025-05-28 16:33:20 +0800174 int ret = GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800175
176 if(sim_init_flag == 1 && sim_info_handle != NULL)
177 {
178 return GSW_HAL_SUCCESS;
179 }
180
181 ret = gsw_sim_api_import();
182 if(ret != GSW_HAL_SUCCESS)
183 {
q.huang6e4f4732025-07-22 18:46:32 +0800184 LOGE(GSW_SIM,"gsw_sim_import fail\n");
xy.heb41615b2025-05-28 16:33:20 +0800185 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800186 }
187
b.liu68a94c92025-05-24 12:53:41 +0800188 sim_info_handle = mbtk_info_handle_get();
189 if(sim_info_handle == NULL)
190 {
q.huang6e4f4732025-07-22 18:46:32 +0800191 LOGE(GSW_SIM,"mbtk_info_handle_get fail\n");
xy.heb41615b2025-05-28 16:33:20 +0800192 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800193 }
194
195 sim_init_flag = 1;
196 return GSW_HAL_SUCCESS;
197}
198
199
200/**
201 * @brief sim sdk deinit
202 * @param
203 * @retval 0: success
204 * @retval other: fail
205 */
206int gsw_sim_sdk_deinit(void)
207{
208 int ret = -1;
209
q.huang238b22a2025-06-10 14:36:59 +0800210 if(sim_init_flag == 0 || sim_info_handle == NULL)
b.liu68a94c92025-05-24 12:53:41 +0800211 {
q.huang238b22a2025-06-10 14:36:59 +0800212 printf("sim sdk has been deinit\n");
xy.heb41615b2025-05-28 16:33:20 +0800213 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800214 }
215
216 ret = mbtk_info_handle_free(&sim_info_handle);
217 if(ret != GSW_HAL_SUCCESS)
218 {
q.huang6e4f4732025-07-22 18:46:32 +0800219 LOGE(GSW_SIM,"mbtk_info_handle_free fail\n");
xy.heb41615b2025-05-28 16:33:20 +0800220 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800221 }
222
223 sim_init_flag = 0;
224 sim_info_handle = NULL;
225 dlclose(dlHandle_mbtk);
226
227 return GSW_HAL_SUCCESS;
228
229}
230
231
232/**
233 * @brief get sim state
234 * @param [out] sim_state sim status as sim_status_e_type
235 * @retval 0: success
236 * @retval other: fail
237 */
238int gsw_get_sim_status(int *sim_state)
239{
q.huang238b22a2025-06-10 14:36:59 +0800240 printf("gsw_get_sim_status enter\n");
b.liu68a94c92025-05-24 12:53:41 +0800241 int ret = -1;
242
q.huang238b22a2025-06-10 14:36:59 +0800243 if(sim_init_flag == 0 || sim_info_handle == NULL)
b.liu68a94c92025-05-24 12:53:41 +0800244 {
q.huang238b22a2025-06-10 14:36:59 +0800245 printf("sim sdk has been deinit\n");
xy.heb41615b2025-05-28 16:33:20 +0800246 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800247 }
248
249 mbtk_sim_state_enum sim = MBTK_SIM_ABSENT;
250
q.huang6e4f4732025-07-22 18:46:32 +0800251 LOGD(GSW_SIM,"mbtk_get_sim_status start\n");
b.liu68a94c92025-05-24 12:53:41 +0800252 ret = mbtk_sim_state_get(sim_info_handle, &sim);
253 if(ret)
254 {
q.huang6e4f4732025-07-22 18:46:32 +0800255 LOGE(GSW_SIM,"[gsw_get_sim_status] mbtk_sim_state_get fail [err = %d].", ret);
xy.heb41615b2025-05-28 16:33:20 +0800256 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800257 }
258
259 else
260 {
q.huang6e4f4732025-07-22 18:46:32 +0800261 LOGD(GSW_SIM,"[gsw_get_sim_status] sim = %d\n", sim);
b.liu68a94c92025-05-24 12:53:41 +0800262 switch (sim)
263 {
264 case MBTK_SIM_ABSENT:
265 {
266 *sim_state = SIM_STATUS_ABSENT;
267 break;
268 }
269 case MBTK_SIM_NOT_READY:
270 {
q.huangba7f39c2025-06-06 18:44:46 +0800271 *sim_state = SIM_STATUS_ERROR;// not SIM_STATUS_PRESENT, changed for gsw requirement, hq at 250606
b.liu68a94c92025-05-24 12:53:41 +0800272 break;
273 }
274
275 case MBTK_SIM_READY:
276 {
q.huangba7f39c2025-06-06 18:44:46 +0800277 *sim_state = SIM_STATUS_PRESENT;// not SIM_STATUS_READY, changed for gsw requirement, hq at 250606
b.liu68a94c92025-05-24 12:53:41 +0800278 break;
279 }
280
281 case MBTK_SIM_PIN:
282 {
283 *sim_state = SIM_STATUS_PIN;
284 break;
285 }
286
287 case MBTK_SIM_PUK:
288 {
289 break;
290 }
291
292 case MBTK_SIM_NETWORK_PERSONALIZATION:
293 {
294 break;
295 }
296
297 }
298 }
299
300 return GSW_HAL_SUCCESS;
301}
302
303/**
304 * @brief get iccid function
305 * @param [in] len iccid length,max is 20
306 * @param [out] iccid return iccid from this func
307 * @retval 0: success
308 * @retval other: fail
309 */
310int gsw_get_sim_iccid(int len, char *iccid)
311{
312 int ret = -1;
313
q.huang238b22a2025-06-10 14:36:59 +0800314 if(sim_init_flag == 0 || sim_info_handle == NULL)
b.liu68a94c92025-05-24 12:53:41 +0800315 {
q.huang238b22a2025-06-10 14:36:59 +0800316 printf("sim sdk has been deinit\n");
xy.heb41615b2025-05-28 16:33:20 +0800317 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800318 }
319
320 if(iccid == NULL)
321 {
q.huang6e4f4732025-07-22 18:46:32 +0800322 LOGE(GSW_SIM,"iccid is NULL.");
xy.heb41615b2025-05-28 16:33:20 +0800323 return GSW_HAL_ARG_INVALID;
b.liu68a94c92025-05-24 12:53:41 +0800324 }
325
326 if(len < GSW_SIM_ICCID_LENGTH)
327 {
q.huang6e4f4732025-07-22 18:46:32 +0800328 LOGE(GSW_SIM,"iccid len is too short,len = %d\n", len);
xy.heb41615b2025-05-28 16:33:20 +0800329 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800330 }
331
332 ret = mbtk_iccid_get(sim_info_handle, (void *)iccid);
333 if(ret != MBTK_ERR_OK)
334 {
q.huang6e4f4732025-07-22 18:46:32 +0800335 LOGE(GSW_SIM,"[gsw_sim] mbtk_iccid_get fail [err = %d].", ret);
xy.heb41615b2025-05-28 16:33:20 +0800336 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800337 }
338
339 return GSW_HAL_SUCCESS;
340}
341
342/**
343 * @brief get imsi function
344 * @param [in] len imsi length,max is 20
345 * @param [out] iccid return imsi from this func
346 * @retval 0: success
347 * @retval other: fail
348 */
349int gsw_get_sim_imsi(int len, char *imsi)
350{
351 int ret = -1;
352
q.huang238b22a2025-06-10 14:36:59 +0800353 if(sim_init_flag == 0 || sim_info_handle == NULL)
b.liu68a94c92025-05-24 12:53:41 +0800354 {
q.huang238b22a2025-06-10 14:36:59 +0800355 printf("sim sdk has been deinit\n");
xy.heb41615b2025-05-28 16:33:20 +0800356 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800357 }
358
359 if(imsi == NULL)
360 {
q.huang6e4f4732025-07-22 18:46:32 +0800361 LOGE(GSW_SIM,"imsi is NULL.");
xy.heb41615b2025-05-28 16:33:20 +0800362 return GSW_HAL_ARG_INVALID;
b.liu68a94c92025-05-24 12:53:41 +0800363 }
364
365 if(len < GSW_SIM_IMSI_LENGTH)
366 {
q.huang6e4f4732025-07-22 18:46:32 +0800367 LOGE(GSW_SIM,"imsi len is too short,len = %d\n", len);
xy.heb41615b2025-05-28 16:33:20 +0800368 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800369 }
370
371 ret = mbtk_imsi_get(sim_info_handle, (void *)imsi);
372 if(ret != MBTK_ERR_OK)
373 {
q.huang6e4f4732025-07-22 18:46:32 +0800374 LOGE(GSW_SIM,"[gsw_sim] mbtk_imsi_get fail [err = %d].", ret);
xy.heb41615b2025-05-28 16:33:20 +0800375 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800376 }
377
378 return GSW_HAL_SUCCESS;
379}
380
381/**
382 * @brief get sim msisdn function
383 * @param [in] len msisdn length,max is 20
384 * @param [out] msisdn msisdn length,max is 20
385 * @retval 0: success
386 * @retval other: fail
387 */
388int gsw_get_sim_msisdn(int len, char *msisdn)
389{
390 int ret = -1;
391
q.huang238b22a2025-06-10 14:36:59 +0800392 if(sim_init_flag == 0 || sim_info_handle == NULL)
b.liu68a94c92025-05-24 12:53:41 +0800393 {
394 printf("sim sdk has been deinit\n");
xy.heb41615b2025-05-28 16:33:20 +0800395 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800396 }
397
398 if(msisdn == NULL)
399 {
400 printf("msisdn is NULL.");
xy.heb41615b2025-05-28 16:33:20 +0800401 return GSW_HAL_ARG_INVALID;
b.liu68a94c92025-05-24 12:53:41 +0800402 }
403
404 if(len < GSW_SIM_MSISDN_LENGTH)
405 {
406 printf("msisdn len is too short,len = %d\n", len);
xy.heb41615b2025-05-28 16:33:20 +0800407 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800408 }
409
410 ret = mbtk_phone_number_get(sim_info_handle, (void *)msisdn);
411 if(ret != MBTK_ERR_OK)
412 {
q.huang6e4f4732025-07-22 18:46:32 +0800413 LOGE(GSW_SIM,"[gsw_sim] mbtk_phone_number_get fail [err = %d].", ret);
xy.heb41615b2025-05-28 16:33:20 +0800414 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800415 }
416
417 return GSW_HAL_SUCCESS;
418}
419
420/**
b.liu68a94c92025-05-24 12:53:41 +0800421 * @brief set sim power down
422 * @param
423 * @retval 0: success
424 * @retval other: fail
425 */
426int gsw_set_sim_power_down(void)
427{
428 int ret = -1;
q.huang238b22a2025-06-10 14:36:59 +0800429 if(sim_init_flag == 0 || sim_info_handle == NULL)
b.liu68a94c92025-05-24 12:53:41 +0800430 {
q.huang238b22a2025-06-10 14:36:59 +0800431 printf("sim sdk has been deinit\n");
xy.heb41615b2025-05-28 16:33:20 +0800432 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800433 }
434
yq.wangc81f7332025-06-10 14:10:55 +0800435 mbtk_modem_info_t info;
436 info.fun = MBTK_DEV_MODEM_DISABLE_SIM;
437 info.rst = 0;
438
439 ret = mbtk_set_modem_fun(sim_info_handle, &info);
440 if(ret)
b.liu68a94c92025-05-24 12:53:41 +0800441 {
q.huang6e4f4732025-07-22 18:46:32 +0800442 LOGE(GSW_SIM,"mbtk_set_modem_fun() fail [err = %d].", ret);
xy.heb41615b2025-05-28 16:33:20 +0800443 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800444 }
yq.wangc81f7332025-06-10 14:10:55 +0800445
b.liu68a94c92025-05-24 12:53:41 +0800446 return GSW_HAL_SUCCESS;
447}
448
449
450
451/**
452 * @brief set sim power up
453 * @param
454 * @retval 0: success
455 * @retval other: fail
456 */
457int gsw_set_sim_power_up(void)
458{
459 int ret = -1;
q.huang238b22a2025-06-10 14:36:59 +0800460 if(sim_init_flag == 0 || sim_info_handle == NULL)
b.liu68a94c92025-05-24 12:53:41 +0800461 {
q.huang238b22a2025-06-10 14:36:59 +0800462 printf("sim sdk has been deinit\n");
xy.heb41615b2025-05-28 16:33:20 +0800463 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800464 }
465
yq.wangc81f7332025-06-10 14:10:55 +0800466 mbtk_modem_info_t info;
467 info.fun = MBTK_DEV_MODEM_FULL_FUN;
468 info.rst = 0;
469
470 ret = mbtk_set_modem_fun(sim_info_handle, &info);
471 if(ret)
b.liu68a94c92025-05-24 12:53:41 +0800472 {
q.huang6e4f4732025-07-22 18:46:32 +0800473 LOGE(GSW_SIM,"mbtk_set_modem_fun() fail [err = %d].", ret);
xy.heb41615b2025-05-28 16:33:20 +0800474 return GSW_HAL_NORMAL_FAIL;
b.liu68a94c92025-05-24 12:53:41 +0800475 }
yq.wangc81f7332025-06-10 14:10:55 +0800476
b.liu68a94c92025-05-24 12:53:41 +0800477 return GSW_HAL_SUCCESS;
478}