blob: 14aca4c80db6dfaeae0f9ba01c805df1bf98d34d [file] [log] [blame]
xjb04a4022021-11-25 15:01:52 +08001/* Copyright Statement:
2 *
3 * This software/firmware and related documentation ("MediaTek Software") are
4 * protected under relevant copyright laws. The information contained herein
5 * is confidential and proprietary to MediaTek Inc. and/or its licensors.
6 * Without the prior written permission of MediaTek inc. and/or its licensors,
7 * any reproduction, modification, use or disclosure of MediaTek Software,
8 * and information contained herein, in whole or in part, shall be strictly prohibited.
9 */
10/* MediaTek Inc. (C) 2018. All rights reserved.
11 *
12 * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
13 * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
14 * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER ON
15 * AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
18 * NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
19 * SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
20 * SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES TO LOOK ONLY TO SUCH
21 * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
22 * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
23 * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
24 * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
25 * STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND
26 * CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
27 * AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
28 * OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY RECEIVER TO
29 * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
30 *
31 * The following software/firmware and/or related documentation ("MediaTek Software")
32 * have been modified by MediaTek Inc. All revisions are subject to any receiver's
33 * applicable license agreements with MediaTek Inc.
34 */
35
36#undef LOG_TAG
37#define LOG_TAG "CarrierCfg"
38
39#include <stdio.h>
40#include <stdlib.h>
41#include <string.h>
42#include <RfxStatusDefs.h>
43
44#include "carrierconfig.h"
45
46const static CarrierConfigValue carierConfigData[] = {
47 { MCC_MNC_SEPARATOR, "00101" }, /* TEST SIM */
48 #include <config_data/carrier_config_001_01.h>
49 {MCC_MNC_SEPARATOR, "20201" },
50 #include <config_data/carrier_config_202_01.h>
51 {MCC_MNC_SEPARATOR, "20202" },
52 #include <config_data/carrier_config_202_02.h>
53 {MCC_MNC_SEPARATOR, "20402" },
54 #include <config_data/carrier_config_204_02.h>
55 {MCC_MNC_SEPARATOR, "20404" },
56 #include <config_data/carrier_config_204_04.h>
57 {MCC_MNC_SEPARATOR, "20416" },
58 #include <config_data/carrier_config_204_16.h>
59 {MCC_MNC_SEPARATOR, "20420" },
60 #include <config_data/carrier_config_204_20.h>
61 {MCC_MNC_SEPARATOR, "20610" },
62 #include <config_data/carrier_config_206_10.h>
63 {MCC_MNC_SEPARATOR, "20801" },
64 #include <config_data/carrier_config_208_01.h>
65 {MCC_MNC_SEPARATOR, "20802" },
66 #include <config_data/carrier_config_208_02.h>
67 {MCC_MNC_SEPARATOR, "20809" },
68 #include <config_data/carrier_config_208_09.h>
69 {MCC_MNC_SEPARATOR, "20810" },
70 #include <config_data/carrier_config_208_10.h>
71 {MCC_MNC_SEPARATOR, "20811" },
72 #include <config_data/carrier_config_208_11.h>
73 {MCC_MNC_SEPARATOR, "20813" },
74 #include <config_data/carrier_config_208_13.h>
75 {MCC_MNC_SEPARATOR, "20820" },
76 #include <config_data/carrier_config_208_20.h>
77 {MCC_MNC_SEPARATOR, "20888" },
78 #include <config_data/carrier_config_208_88.h>
79 {MCC_MNC_SEPARATOR, "21401" },
80 #include <config_data/carrier_config_214_01.h>
81 {MCC_MNC_SEPARATOR, "21403" },
82 #include <config_data/carrier_config_214_03.h>
83 {MCC_MNC_SEPARATOR, "21406" },
84 #include <config_data/carrier_config_214_06.h>
85 {MCC_MNC_SEPARATOR, "21603" },
86 #include <config_data/carrier_config_216_03.h>
87 {MCC_MNC_SEPARATOR, "21630" },
88 #include <config_data/carrier_config_216_30.h>
89 { MCC_MNC_SEPARATOR, "21901" }, /* TMO Croatia */
90 #include <config_data/carrier_config_219_01.h>
91 {MCC_MNC_SEPARATOR, "22201" },
92 #include <config_data/carrier_config_222_01.h>
93 {MCC_MNC_SEPARATOR, "22206" },
94 #include <config_data/carrier_config_222_06.h>
95 {MCC_MNC_SEPARATOR, "22210" },
96 #include <config_data/carrier_config_222_10.h>
97 {MCC_MNC_SEPARATOR, "22605" },
98 #include <config_data/carrier_config_226_05.h>
99 {MCC_MNC_SEPARATOR, "22610" },
100 #include <config_data/carrier_config_226_10.h>
101 {MCC_MNC_SEPARATOR, "22801" },
102 #include <config_data/carrier_config_228_01.h>
103 {MCC_MNC_SEPARATOR, "23001" },
104 #include <config_data/carrier_config_230_01.h>
105 {MCC_MNC_SEPARATOR, "23002" },
106 #include <config_data/carrier_config_230_02.h>
107 {MCC_MNC_SEPARATOR, "23003" },
108 #include <config_data/carrier_config_230_03.h>
109 {MCC_MNC_SEPARATOR, "23099" },
110 #include <config_data/carrier_config_230_99.h>
111 { MCC_MNC_SEPARATOR, "23101" },
112 #include <config_data/carrier_config_231_01.h>
113 {MCC_MNC_SEPARATOR, "23102" },
114 #include <config_data/carrier_config_231_02.h>
115 {MCC_MNC_SEPARATOR, "23104" },
116 #include <config_data/carrier_config_231_04.h>
117 {MCC_MNC_SEPARATOR, "23112" },
118 #include <config_data/carrier_config_231_12.h>
119 {MCC_MNC_SEPARATOR, "23201" },
120 #include <config_data/carrier_config_232_01.h>
121 {MCC_MNC_SEPARATOR, "23410" },
122 #include <config_data/carrier_config_234_10.h>
123 {MCC_MNC_SEPARATOR, "23415" },
124 #include <config_data/carrier_config_234_15.h>
125 {MCC_MNC_SEPARATOR, "23420" },
126 #include <config_data/carrier_config_234_20.h>
127 {MCC_MNC_SEPARATOR, "23430" },
128 #include <config_data/carrier_config_234_30.h>
129 {MCC_MNC_SEPARATOR, "23433" },
130 #include <config_data/carrier_config_234_33.h>
131 {MCC_MNC_SEPARATOR, "23434" },
132 #include <config_data/carrier_config_234_34.h>
133 {MCC_MNC_SEPARATOR, "23470" },
134 #include <config_data/carrier_config_234_70.h>
135 {MCC_MNC_SEPARATOR, "23486" },
136 #include <config_data/carrier_config_234_86.h>
137 {MCC_MNC_SEPARATOR, "23502" },
138 #include <config_data/carrier_config_235_02.h>
139 {MCC_MNC_SEPARATOR, "23591" },
140 #include <config_data/carrier_config_235_91.h>
141 {MCC_MNC_SEPARATOR, "23594" },
142 #include <config_data/carrier_config_235_94.h>
143 {MCC_MNC_SEPARATOR, "23802" },
144 #include <config_data/carrier_config_238_02.h>
145 {MCC_MNC_SEPARATOR, "23806" },
146 #include <config_data/carrier_config_238_06.h>
147 {MCC_MNC_SEPARATOR, "23877" },
148 #include <config_data/carrier_config_238_77.h>
149 {MCC_MNC_SEPARATOR, "24001" },
150 #include <config_data/carrier_config_240_01.h>
151 {MCC_MNC_SEPARATOR, "24002" },
152 #include <config_data/carrier_config_240_02.h>
153 {MCC_MNC_SEPARATOR, "24005" },
154 #include <config_data/carrier_config_240_05.h>
155 {MCC_MNC_SEPARATOR, "24099" },
156 #include <config_data/carrier_config_240_99.h>
157 {MCC_MNC_SEPARATOR, "24201" },
158 #include <config_data/carrier_config_242_01.h>
159 {MCC_MNC_SEPARATOR, "24202" },
160 #include <config_data/carrier_config_242_02.h>
161 {MCC_MNC_SEPARATOR, "24205" },
162 #include <config_data/carrier_config_242_05.h>
163 {MCC_MNC_SEPARATOR, "24405" },
164 #include <config_data/carrier_config_244_05.h>
165 {MCC_MNC_SEPARATOR, "24407" },
166 #include <config_data/carrier_config_244_07.h>
167 {MCC_MNC_SEPARATOR, "24408" },
168 #include <config_data/carrier_config_244_08.h>
169 {MCC_MNC_SEPARATOR, "24409" },
170 #include <config_data/carrier_config_244_09.h>
171 {MCC_MNC_SEPARATOR, "24412" },
172 #include <config_data/carrier_config_244_12.h>
173 {MCC_MNC_SEPARATOR, "24421" },
174 #include <config_data/carrier_config_244_21.h>
175 {MCC_MNC_SEPARATOR, "24427" },
176 #include <config_data/carrier_config_244_27.h>
177 {MCC_MNC_SEPARATOR, "24436" },
178 #include <config_data/carrier_config_244_36.h>
179 {MCC_MNC_SEPARATOR, "24491" },
180 #include <config_data/carrier_config_244_91.h>
181 {MCC_MNC_SEPARATOR, "24681" },
182 #include <config_data/carrier_config_246_81.h>
183 {MCC_MNC_SEPARATOR, "25001" },
184 #include <config_data/carrier_config_250_01.h>
185 {MCC_MNC_SEPARATOR, "25002" },
186 #include <config_data/carrier_config_250_02.h>
187 {MCC_MNC_SEPARATOR, "25004" },
188 #include <config_data/carrier_config_250_04.h>
189 {MCC_MNC_SEPARATOR, "25005" },
190 #include <config_data/carrier_config_250_05.h>
191 {MCC_MNC_SEPARATOR, "25010" },
192 #include <config_data/carrier_config_250_10.h>
193 {MCC_MNC_SEPARATOR, "25011" },
194 #include <config_data/carrier_config_250_11.h>
195 {MCC_MNC_SEPARATOR, "25013" },
196 #include <config_data/carrier_config_250_13.h>
197 {MCC_MNC_SEPARATOR, "25020" },
198 #include <config_data/carrier_config_250_20.h>
199 {MCC_MNC_SEPARATOR, "25039" },
200 #include <config_data/carrier_config_250_39.h>
201 {MCC_MNC_SEPARATOR, "25092" },
202 #include <config_data/carrier_config_250_92.h>
203 {MCC_MNC_SEPARATOR, "25093" },
204 #include <config_data/carrier_config_250_93.h>
205 { MCC_MNC_SEPARATOR, "25099" },
206 #include <config_data/carrier_config_250_99.h>
207 {MCC_MNC_SEPARATOR, "26002" },
208 #include <config_data/carrier_config_260_02.h>
209 {MCC_MNC_SEPARATOR, "26003" },
210 #include <config_data/carrier_config_260_03.h>
211 {MCC_MNC_SEPARATOR, "26006" },
212 #include <config_data/carrier_config_260_06.h>
213 {MCC_MNC_SEPARATOR, "26034" },
214 #include <config_data/carrier_config_260_34.h>
215 {MCC_MNC_SEPARATOR, "26201" },
216 #include <config_data/carrier_config_262_01.h>
217 {MCC_MNC_SEPARATOR, "26202" },
218 #include <config_data/carrier_config_262_02.h>
219 {MCC_MNC_SEPARATOR, "26203" },
220 #include <config_data/carrier_config_262_03.h>
221 {MCC_MNC_SEPARATOR, "26204" },
222 #include <config_data/carrier_config_262_04.h>
223 {MCC_MNC_SEPARATOR, "26206" },
224 #include <config_data/carrier_config_262_06.h>
225 {MCC_MNC_SEPARATOR, "26207" },
226 #include <config_data/carrier_config_262_07.h>
227 {MCC_MNC_SEPARATOR, "26208" },
228 #include <config_data/carrier_config_262_08.h>
229 {MCC_MNC_SEPARATOR, "26209" },
230 #include <config_data/carrier_config_262_09.h>
231 {MCC_MNC_SEPARATOR, "26277" },
232 #include <config_data/carrier_config_262_77.h>
233 {MCC_MNC_SEPARATOR, "26801" },
234 #include <config_data/carrier_config_268_01.h>
235 {MCC_MNC_SEPARATOR, "28405" },
236 #include <config_data/carrier_config_284_05.h>
237 {MCC_MNC_SEPARATOR, "28601" },
238 #include <config_data/carrier_config_286_01.h>
239 {MCC_MNC_SEPARATOR, "28602" },
240 #include <config_data/carrier_config_286_02.h>
241 {MCC_MNC_SEPARATOR, "28603" },
242 #include <config_data/carrier_config_286_03.h>
243 {MCC_MNC_SEPARATOR, "29501" },
244 #include <config_data/carrier_config_295_01.h>
245 {MCC_MNC_SEPARATOR, "302220" },
246 #include <config_data/carrier_config_302_220.h>
247 {MCC_MNC_SEPARATOR, "302221" },
248 #include <config_data/carrier_config_302_221.h>
249 {MCC_MNC_SEPARATOR, "302490" },
250 #include <config_data/carrier_config_302_490.h>
251 {MCC_MNC_SEPARATOR, "31000" },
252 #include <config_data/carrier_config_310_00.h>
253 {MCC_MNC_SEPARATOR, "310004" },
254 #include <config_data/carrier_config_310_004.h>
255 {MCC_MNC_SEPARATOR, "310005" },
256 #include <config_data/carrier_config_310_005.h>
257 {MCC_MNC_SEPARATOR, "310006" },
258 #include <config_data/carrier_config_310_006.h>
259 {MCC_MNC_SEPARATOR, "310010" },
260 #include <config_data/carrier_config_310_010.h>
261 {MCC_MNC_SEPARATOR, "310012" },
262 #include <config_data/carrier_config_310_012.h>
263 {MCC_MNC_SEPARATOR, "310013" },
264 #include <config_data/carrier_config_310_013.h>
265 {MCC_MNC_SEPARATOR, "310030" },
266 #include <config_data/carrier_config_310_030.h>
267 {MCC_MNC_SEPARATOR, "310070" },
268 #include <config_data/carrier_config_310_070.h>
269 {MCC_MNC_SEPARATOR, "310090" },
270 #include <config_data/carrier_config_310_090.h>
271 {MCC_MNC_SEPARATOR, "310120" },
272 #include <config_data/carrier_config_310_120.h>
273 {MCC_MNC_SEPARATOR, "310150" },
274 #include <config_data/carrier_config_310_150.h>
275 { MCC_MNC_SEPARATOR, "310160" }, /* TMO US */
276 #include <config_data/carrier_config_310_160.h>
277 {MCC_MNC_SEPARATOR, "310170" },
278 #include <config_data/carrier_config_310_170.h>
279 { MCC_MNC_SEPARATOR, "310200" }, /* TMO US */
280 #include <config_data/carrier_config_310_200.h>
281 { MCC_MNC_SEPARATOR, "310210" }, /* TMO US */
282 #include <config_data/carrier_config_310_210.h>
283 { MCC_MNC_SEPARATOR, "310220" }, /* TMO US */
284 #include <config_data/carrier_config_310_220.h>
285 { MCC_MNC_SEPARATOR, "310230" }, /* TMO US */
286 #include <config_data/carrier_config_310_230.h>
287 { MCC_MNC_SEPARATOR, "310240" }, /* TMO US */
288 #include <config_data/carrier_config_310_240.h>
289 { MCC_MNC_SEPARATOR, "310250" }, /* TMO US */
290 #include <config_data/carrier_config_310_250.h>
291 { MCC_MNC_SEPARATOR, "310260" }, /* TMO US */
292 #include <config_data/carrier_config_310_260.h>
293 { MCC_MNC_SEPARATOR, "310270" }, /* TMO US */
294 #include <config_data/carrier_config_310_270.h>
295 {MCC_MNC_SEPARATOR, "310280" },
296 #include <config_data/carrier_config_310_280.h>
297 {MCC_MNC_SEPARATOR, "310300" },
298 #include <config_data/carrier_config_310_300.h>
299 { MCC_MNC_SEPARATOR, "310310" }, /* TMO US */
300 #include <config_data/carrier_config_310_310.h>
301 { MCC_MNC_SEPARATOR, "310490" }, /* TMO US */
302 #include <config_data/carrier_config_310_490.h>
303 {MCC_MNC_SEPARATOR, "310350" },
304 #include <config_data/carrier_config_310_350.h>
305 {MCC_MNC_SEPARATOR, "310380" },
306 #include <config_data/carrier_config_310_380.h>
307 {MCC_MNC_SEPARATOR, "310410" },
308 #include <config_data/carrier_config_310_410.h>
309 {MCC_MNC_SEPARATOR, "310530" },
310 #include <config_data/carrier_config_310_530.h>
311 {MCC_MNC_SEPARATOR, "310560" },
312 #include <config_data/carrier_config_310_560.h>
313 { MCC_MNC_SEPARATOR, "310580" }, /* TMO US */
314 #include <config_data/carrier_config_310_580.h>
315 {MCC_MNC_SEPARATOR, "310590" },
316 #include <config_data/carrier_config_310_590.h>
317 { MCC_MNC_SEPARATOR, "310660" }, /* TMO US */
318 #include <config_data/carrier_config_310_660.h>
319 {MCC_MNC_SEPARATOR, "310640" },
320 #include <config_data/carrier_config_310_640.h>
321 {MCC_MNC_SEPARATOR, "310680" },
322 #include <config_data/carrier_config_310_680.h>
323 {MCC_MNC_SEPARATOR, "310820" },
324 #include <config_data/carrier_config_310_820.h>
325 {MCC_MNC_SEPARATOR, "310890" },
326 #include <config_data/carrier_config_310_890.h>
327 {MCC_MNC_SEPARATOR, "310910" },
328 #include <config_data/carrier_config_310_910.h>
329 { MCC_MNC_SEPARATOR, "310800" }, /* TMO US */
330 #include <config_data/carrier_config_310_800.h>
331 { MCC_MNC_SEPARATOR, "311480" },
332 #include <config_data/carrier_config_311_480.h>
333 { MCC_MNC_SEPARATOR, "46001" }, /*CMCC*/
334 #include <config_data/carrier_config_460_01.h>
335 { MCC_MNC_SEPARATOR, "46002" }, /*CU*/
336 #include <config_data/carrier_config_460_02.h>
337 { MCC_MNC_SEPARATOR, "46601" }, /*FET*/
338 #include <config_data/carrier_config_466_01.h>
339 { MCC_MNC_SEPARATOR, "46692" }, /* CHT */
340 #include <config_data/carrier_config_466_92.h>
341 {MCC_MNC_SEPARATOR, "311012" },
342 #include <config_data/carrier_config_311_012.h>
343 {MCC_MNC_SEPARATOR, "311180" },
344 #include <config_data/carrier_config_311_180.h>
345 {MCC_MNC_SEPARATOR, "311481" },
346 #include <config_data/carrier_config_311_481.h>
347 {MCC_MNC_SEPARATOR, "311482" },
348 #include <config_data/carrier_config_311_482.h>
349 {MCC_MNC_SEPARATOR, "311483" },
350 #include <config_data/carrier_config_311_483.h>
351 {MCC_MNC_SEPARATOR, "311484" },
352 #include <config_data/carrier_config_311_484.h>
353 {MCC_MNC_SEPARATOR, "311485" },
354 #include <config_data/carrier_config_311_485.h>
355 {MCC_MNC_SEPARATOR, "311486" },
356 #include <config_data/carrier_config_311_486.h>
357 {MCC_MNC_SEPARATOR, "311487" },
358 #include <config_data/carrier_config_311_487.h>
359 {MCC_MNC_SEPARATOR, "311488" },
360 #include <config_data/carrier_config_311_488.h>
361 {MCC_MNC_SEPARATOR, "311489" },
362 #include <config_data/carrier_config_311_489.h>
363 {MCC_MNC_SEPARATOR, "311870" },
364 #include <config_data/carrier_config_311_870.h>
365 {MCC_MNC_SEPARATOR, "311880" },
366 #include <config_data/carrier_config_311_880.h>
367 {MCC_MNC_SEPARATOR, "311940" },
368 #include <config_data/carrier_config_311_940.h>
369 {MCC_MNC_SEPARATOR, "312010" },
370 #include <config_data/carrier_config_312_010.h>
371 {MCC_MNC_SEPARATOR, "312190" },
372 #include <config_data/carrier_config_312_190.h>
373 {MCC_MNC_SEPARATOR, "312530" },
374 #include <config_data/carrier_config_312_530.h>
375 {MCC_MNC_SEPARATOR, "312670" },
376 #include <config_data/carrier_config_312_670.h>
377 {MCC_MNC_SEPARATOR, "313100" },
378 #include <config_data/carrier_config_313_100.h>
379 {MCC_MNC_SEPARATOR, "334020" },
380 #include <config_data/carrier_config_334_020.h>
381 {MCC_MNC_SEPARATOR, "33403" },
382 #include <config_data/carrier_config_334_03.h>
383 {MCC_MNC_SEPARATOR, "334030" },
384 #include <config_data/carrier_config_334_030.h>
385 {MCC_MNC_SEPARATOR, "334050" },
386 #include <config_data/carrier_config_334_050.h>
387 {MCC_MNC_SEPARATOR, "334090" },
388 #include <config_data/carrier_config_334_090.h>
389 {MCC_MNC_SEPARATOR, "34001" },
390 #include <config_data/carrier_config_340_01.h>
391 {MCC_MNC_SEPARATOR, "34420" },
392 #include <config_data/carrier_config_344_20.h>
393 {MCC_MNC_SEPARATOR, "40401" },
394 #include <config_data/carrier_config_404_01.h>
395 {MCC_MNC_SEPARATOR, "40402" },
396 #include <config_data/carrier_config_404_02.h>
397 {MCC_MNC_SEPARATOR, "40403" },
398 #include <config_data/carrier_config_404_03.h>
399 {MCC_MNC_SEPARATOR, "40404" },
400 #include <config_data/carrier_config_404_04.h>
401 {MCC_MNC_SEPARATOR, "40405" },
402 #include <config_data/carrier_config_404_05.h>
403 {MCC_MNC_SEPARATOR, "40407" },
404 #include <config_data/carrier_config_404_07.h>
405 {MCC_MNC_SEPARATOR, "40410" },
406 #include <config_data/carrier_config_404_10.h>
407 {MCC_MNC_SEPARATOR, "40411" },
408 #include <config_data/carrier_config_404_11.h>
409 {MCC_MNC_SEPARATOR, "40412" },
410 #include <config_data/carrier_config_404_12.h>
411 {MCC_MNC_SEPARATOR, "40413" },
412 #include <config_data/carrier_config_404_13.h>
413 {MCC_MNC_SEPARATOR, "40414" },
414 #include <config_data/carrier_config_404_14.h>
415 {MCC_MNC_SEPARATOR, "40415" },
416 #include <config_data/carrier_config_404_15.h>
417 {MCC_MNC_SEPARATOR, "40416" },
418 #include <config_data/carrier_config_404_16.h>
419 {MCC_MNC_SEPARATOR, "40419" },
420 #include <config_data/carrier_config_404_19.h>
421 {MCC_MNC_SEPARATOR, "40420" },
422 #include <config_data/carrier_config_404_20.h>
423 {MCC_MNC_SEPARATOR, "40422" },
424 #include <config_data/carrier_config_404_22.h>
425 {MCC_MNC_SEPARATOR, "40424" },
426 #include <config_data/carrier_config_404_24.h>
427 {MCC_MNC_SEPARATOR, "40427" },
428 #include <config_data/carrier_config_404_27.h>
429 {MCC_MNC_SEPARATOR, "40430" },
430 #include <config_data/carrier_config_404_30.h>
431 {MCC_MNC_SEPARATOR, "40431" },
432 #include <config_data/carrier_config_404_31.h>
433 {MCC_MNC_SEPARATOR, "40440" },
434 #include <config_data/carrier_config_404_40.h>
435 {MCC_MNC_SEPARATOR, "40443" },
436 #include <config_data/carrier_config_404_43.h>
437 {MCC_MNC_SEPARATOR, "40444" },
438 #include <config_data/carrier_config_404_44.h>
439 {MCC_MNC_SEPARATOR, "40445" },
440 #include <config_data/carrier_config_404_45.h>
441 {MCC_MNC_SEPARATOR, "40446" },
442 #include <config_data/carrier_config_404_46.h>
443 {MCC_MNC_SEPARATOR, "40449" },
444 #include <config_data/carrier_config_404_49.h>
445 {MCC_MNC_SEPARATOR, "40456" },
446 #include <config_data/carrier_config_404_56.h>
447 {MCC_MNC_SEPARATOR, "40460" },
448 #include <config_data/carrier_config_404_60.h>
449 {MCC_MNC_SEPARATOR, "40470" },
450 #include <config_data/carrier_config_404_70.h>
451 {MCC_MNC_SEPARATOR, "40478" },
452 #include <config_data/carrier_config_404_78.h>
453 {MCC_MNC_SEPARATOR, "40482" },
454 #include <config_data/carrier_config_404_82.h>
455 {MCC_MNC_SEPARATOR, "40484" },
456 #include <config_data/carrier_config_404_84.h>
457 {MCC_MNC_SEPARATOR, "40486" },
458 #include <config_data/carrier_config_404_86.h>
459 {MCC_MNC_SEPARATOR, "40487" },
460 #include <config_data/carrier_config_404_87.h>
461 {MCC_MNC_SEPARATOR, "40488" },
462 #include <config_data/carrier_config_404_88.h>
463 {MCC_MNC_SEPARATOR, "40489" },
464 #include <config_data/carrier_config_404_89.h>
465 {MCC_MNC_SEPARATOR, "40490" },
466 #include <config_data/carrier_config_404_90.h>
467 {MCC_MNC_SEPARATOR, "40492" },
468 #include <config_data/carrier_config_404_92.h>
469 {MCC_MNC_SEPARATOR, "40493" },
470 #include <config_data/carrier_config_404_93.h>
471 {MCC_MNC_SEPARATOR, "40494" },
472 #include <config_data/carrier_config_404_94.h>
473 {MCC_MNC_SEPARATOR, "40495" },
474 #include <config_data/carrier_config_404_95.h>
475 {MCC_MNC_SEPARATOR, "40496" },
476 #include <config_data/carrier_config_404_96.h>
477 {MCC_MNC_SEPARATOR, "40497" },
478 #include <config_data/carrier_config_404_97.h>
479 {MCC_MNC_SEPARATOR, "40498" },
480 #include <config_data/carrier_config_404_98.h>
481 {MCC_MNC_SEPARATOR, "40551" },
482 #include <config_data/carrier_config_405_51.h>
483 {MCC_MNC_SEPARATOR, "40552" },
484 #include <config_data/carrier_config_405_52.h>
485 {MCC_MNC_SEPARATOR, "40553" },
486 #include <config_data/carrier_config_405_53.h>
487 {MCC_MNC_SEPARATOR, "40554" },
488 #include <config_data/carrier_config_405_54.h>
489 {MCC_MNC_SEPARATOR, "40555" },
490 #include <config_data/carrier_config_405_55.h>
491 {MCC_MNC_SEPARATOR, "40556" },
492 #include <config_data/carrier_config_405_56.h>
493 {MCC_MNC_SEPARATOR, "40566" },
494 #include <config_data/carrier_config_405_66.h>
495 {MCC_MNC_SEPARATOR, "40567" },
496 #include <config_data/carrier_config_405_67.h>
497 {MCC_MNC_SEPARATOR, "40570" },
498 #include <config_data/carrier_config_405_70.h>
499 {MCC_MNC_SEPARATOR, "405750" },
500 #include <config_data/carrier_config_405_750.h>
501 {MCC_MNC_SEPARATOR, "405751" },
502 #include <config_data/carrier_config_405_751.h>
503 {MCC_MNC_SEPARATOR, "405752" },
504 #include <config_data/carrier_config_405_752.h>
505 {MCC_MNC_SEPARATOR, "405753" },
506 #include <config_data/carrier_config_405_753.h>
507 {MCC_MNC_SEPARATOR, "405754" },
508 #include <config_data/carrier_config_405_754.h>
509 {MCC_MNC_SEPARATOR, "405755" },
510 #include <config_data/carrier_config_405_755.h>
511 {MCC_MNC_SEPARATOR, "405756" },
512 #include <config_data/carrier_config_405_756.h>
513 {MCC_MNC_SEPARATOR, "405799" },
514 #include <config_data/carrier_config_405_799.h>
515 {MCC_MNC_SEPARATOR, "405840" },
516 #include <config_data/carrier_config_405_840.h>
517 {MCC_MNC_SEPARATOR, "405845" },
518 #include <config_data/carrier_config_405_845.h>
519 {MCC_MNC_SEPARATOR, "405846" },
520 #include <config_data/carrier_config_405_846.h>
521 {MCC_MNC_SEPARATOR, "405848" },
522 #include <config_data/carrier_config_405_848.h>
523 {MCC_MNC_SEPARATOR, "405849" },
524 #include <config_data/carrier_config_405_849.h>
525 {MCC_MNC_SEPARATOR, "405850" },
526 #include <config_data/carrier_config_405_850.h>
527 {MCC_MNC_SEPARATOR, "405852" },
528 #include <config_data/carrier_config_405_852.h>
529 {MCC_MNC_SEPARATOR, "405853" },
530 #include <config_data/carrier_config_405_853.h>
531 {MCC_MNC_SEPARATOR, "405854" },
532 #include <config_data/carrier_config_405_854.h>
533 {MCC_MNC_SEPARATOR, "405855" },
534 #include <config_data/carrier_config_405_855.h>
535 {MCC_MNC_SEPARATOR, "405856" },
536 #include <config_data/carrier_config_405_856.h>
537 {MCC_MNC_SEPARATOR, "405857" },
538 #include <config_data/carrier_config_405_857.h>
539 {MCC_MNC_SEPARATOR, "405858" },
540 #include <config_data/carrier_config_405_858.h>
541 {MCC_MNC_SEPARATOR, "405859" },
542 #include <config_data/carrier_config_405_859.h>
543 {MCC_MNC_SEPARATOR, "405860" },
544 #include <config_data/carrier_config_405_860.h>
545 {MCC_MNC_SEPARATOR, "405861" },
546 #include <config_data/carrier_config_405_861.h>
547 {MCC_MNC_SEPARATOR, "405862" },
548 #include <config_data/carrier_config_405_862.h>
549 {MCC_MNC_SEPARATOR, "405863" },
550 #include <config_data/carrier_config_405_863.h>
551 {MCC_MNC_SEPARATOR, "405864" },
552 #include <config_data/carrier_config_405_864.h>
553 {MCC_MNC_SEPARATOR, "405865" },
554 #include <config_data/carrier_config_405_865.h>
555 {MCC_MNC_SEPARATOR, "405866" },
556 #include <config_data/carrier_config_405_866.h>
557 {MCC_MNC_SEPARATOR, "405867" },
558 #include <config_data/carrier_config_405_867.h>
559 {MCC_MNC_SEPARATOR, "405868" },
560 #include <config_data/carrier_config_405_868.h>
561 {MCC_MNC_SEPARATOR, "405869" },
562 #include <config_data/carrier_config_405_869.h>
563 {MCC_MNC_SEPARATOR, "405870" },
564 #include <config_data/carrier_config_405_870.h>
565 {MCC_MNC_SEPARATOR, "405871" },
566 #include <config_data/carrier_config_405_871.h>
567 {MCC_MNC_SEPARATOR, "405872" },
568 #include <config_data/carrier_config_405_872.h>
569 {MCC_MNC_SEPARATOR, "405873" },
570 #include <config_data/carrier_config_405_873.h>
571 {MCC_MNC_SEPARATOR, "405874" },
572 #include <config_data/carrier_config_405_874.h>
573 {MCC_MNC_SEPARATOR, "41866" },
574 #include <config_data/carrier_config_418_66.h>
575 {MCC_MNC_SEPARATOR, "42001" },
576 #include <config_data/carrier_config_420_01.h>
577 {MCC_MNC_SEPARATOR, "42004" },
578 #include <config_data/carrier_config_420_04.h>
579 {MCC_MNC_SEPARATOR, "42402" },
580 #include <config_data/carrier_config_424_02.h>
581 {MCC_MNC_SEPARATOR, "42403" },
582 #include <config_data/carrier_config_424_03.h>
583 {MCC_MNC_SEPARATOR, "44007" },
584 #include <config_data/carrier_config_440_07.h>
585 {MCC_MNC_SEPARATOR, "44008" },
586 #include <config_data/carrier_config_440_08.h>
587 {MCC_MNC_SEPARATOR, "44010" },
588 #include <config_data/carrier_config_440_10.h>
589 {MCC_MNC_SEPARATOR, "44020" },
590 #include <config_data/carrier_config_440_20.h>
591 {MCC_MNC_SEPARATOR, "44050" },
592 #include <config_data/carrier_config_440_50.h>
593 {MCC_MNC_SEPARATOR, "44051" },
594 #include <config_data/carrier_config_440_51.h>
595 {MCC_MNC_SEPARATOR, "44052" },
596 #include <config_data/carrier_config_440_52.h>
597 {MCC_MNC_SEPARATOR, "44053" },
598 #include <config_data/carrier_config_440_53.h>
599 {MCC_MNC_SEPARATOR, "44054" },
600 #include <config_data/carrier_config_440_54.h>
601 {MCC_MNC_SEPARATOR, "44055" },
602 #include <config_data/carrier_config_440_55.h>
603 {MCC_MNC_SEPARATOR, "44056" },
604 #include <config_data/carrier_config_440_56.h>
605 {MCC_MNC_SEPARATOR, "44070" },
606 #include <config_data/carrier_config_440_70.h>
607 {MCC_MNC_SEPARATOR, "44071" },
608 #include <config_data/carrier_config_440_71.h>
609 {MCC_MNC_SEPARATOR, "44072" },
610 #include <config_data/carrier_config_440_72.h>
611 {MCC_MNC_SEPARATOR, "44073" },
612 #include <config_data/carrier_config_440_73.h>
613 {MCC_MNC_SEPARATOR, "44074" },
614 #include <config_data/carrier_config_440_74.h>
615 {MCC_MNC_SEPARATOR, "44075" },
616 #include <config_data/carrier_config_440_75.h>
617 {MCC_MNC_SEPARATOR, "44076" },
618 #include <config_data/carrier_config_440_76.h>
619 {MCC_MNC_SEPARATOR, "44077" },
620 #include <config_data/carrier_config_440_77.h>
621 {MCC_MNC_SEPARATOR, "44078" },
622 #include <config_data/carrier_config_440_78.h>
623 {MCC_MNC_SEPARATOR, "44079" },
624 #include <config_data/carrier_config_440_79.h>
625 {MCC_MNC_SEPARATOR, "44088" },
626 #include <config_data/carrier_config_440_88.h>
627 {MCC_MNC_SEPARATOR, "44089" },
628 #include <config_data/carrier_config_440_89.h>
629 {MCC_MNC_SEPARATOR, "44110" },
630 #include <config_data/carrier_config_441_10.h>
631 {MCC_MNC_SEPARATOR, "44170" },
632 #include <config_data/carrier_config_441_70.h>
633 {MCC_MNC_SEPARATOR, "45204" },
634 #include <config_data/carrier_config_452_04.h>
635 {MCC_MNC_SEPARATOR, "45400" },
636 #include <config_data/carrier_config_454_00.h>
637 {MCC_MNC_SEPARATOR, "45402" },
638 #include <config_data/carrier_config_454_02.h>
639 {MCC_MNC_SEPARATOR, "45403" },
640 #include <config_data/carrier_config_454_03.h>
641 {MCC_MNC_SEPARATOR, "45404" },
642 #include <config_data/carrier_config_454_04.h>
643 {MCC_MNC_SEPARATOR, "45406" },
644 #include <config_data/carrier_config_454_06.h>
645 {MCC_MNC_SEPARATOR, "45410" },
646 #include <config_data/carrier_config_454_10.h>
647 {MCC_MNC_SEPARATOR, "45412" },
648 #include <config_data/carrier_config_454_12.h>
649 {MCC_MNC_SEPARATOR, "45413" },
650 #include <config_data/carrier_config_454_13.h>
651 {MCC_MNC_SEPARATOR, "45415" },
652 #include <config_data/carrier_config_454_15.h>
653 {MCC_MNC_SEPARATOR, "45416" },
654 #include <config_data/carrier_config_454_16.h>
655 {MCC_MNC_SEPARATOR, "45417" },
656 #include <config_data/carrier_config_454_17.h>
657 {MCC_MNC_SEPARATOR, "45418" },
658 #include <config_data/carrier_config_454_18.h>
659 {MCC_MNC_SEPARATOR, "45419" },
660 #include <config_data/carrier_config_454_19.h>
661 {MCC_MNC_SEPARATOR, "45420" },
662 #include <config_data/carrier_config_454_20.h>
663 {MCC_MNC_SEPARATOR, "45502" },
664 #include <config_data/carrier_config_455_02.h>
665 {MCC_MNC_SEPARATOR, "45507" },
666 #include <config_data/carrier_config_455_07.h>
667 {MCC_MNC_SEPARATOR, "45606" },
668 #include <config_data/carrier_config_456_06.h>
669 {MCC_MNC_SEPARATOR, "45611" },
670 #include <config_data/carrier_config_456_11.h>
671 {MCC_MNC_SEPARATOR, "46000" },
672 #include <config_data/carrier_config_460_00.h>
673 {MCC_MNC_SEPARATOR, "46003" },
674 #include <config_data/carrier_config_460_03.h>
675 {MCC_MNC_SEPARATOR, "46004" },
676 #include <config_data/carrier_config_460_04.h>
677 {MCC_MNC_SEPARATOR, "46006" },
678 #include <config_data/carrier_config_460_06.h>
679 {MCC_MNC_SEPARATOR, "46007" },
680 #include <config_data/carrier_config_460_07.h>
681 {MCC_MNC_SEPARATOR, "46008" },
682 #include <config_data/carrier_config_460_08.h>
683 {MCC_MNC_SEPARATOR, "46011" },
684 #include <config_data/carrier_config_460_11.h>
685 {MCC_MNC_SEPARATOR, "46012" },
686 #include <config_data/carrier_config_460_12.h>
687 {MCC_MNC_SEPARATOR, "46605" },
688 #include <config_data/carrier_config_466_05.h>
689 {MCC_MNC_SEPARATOR, "46611" },
690 #include <config_data/carrier_config_466_11.h>
691 {MCC_MNC_SEPARATOR, "46688" },
692 #include <config_data/carrier_config_466_88.h>
693 {MCC_MNC_SEPARATOR, "46689" },
694 #include <config_data/carrier_config_466_89.h>
695 {MCC_MNC_SEPARATOR, "46697" },
696 #include <config_data/carrier_config_466_97.h>
697 {MCC_MNC_SEPARATOR, "50208" },
698 #include <config_data/carrier_config_502_08.h>
699 {MCC_MNC_SEPARATOR, "502152" },
700 #include <config_data/carrier_config_502_152.h>
701 {MCC_MNC_SEPARATOR, "502153" },
702 #include <config_data/carrier_config_502_153.h>
703 {MCC_MNC_SEPARATOR, "50216" },
704 #include <config_data/carrier_config_502_16.h>
705 {MCC_MNC_SEPARATOR, "50218" },
706 #include <config_data/carrier_config_502_18.h>
707 {MCC_MNC_SEPARATOR, "50501" },
708 #include <config_data/carrier_config_505_01.h>
709 {MCC_MNC_SEPARATOR, "50502" },
710 #include <config_data/carrier_config_505_02.h>
711 {MCC_MNC_SEPARATOR, "50503" },
712 #include <config_data/carrier_config_505_03.h>
713 {MCC_MNC_SEPARATOR, "50506" },
714 #include <config_data/carrier_config_505_06.h>
715 {MCC_MNC_SEPARATOR, "50571" },
716 #include <config_data/carrier_config_505_71.h>
717 {MCC_MNC_SEPARATOR, "50572" },
718 #include <config_data/carrier_config_505_72.h>
719 {MCC_MNC_SEPARATOR, "51009" },
720 #include <config_data/carrier_config_510_09.h>
721 {MCC_MNC_SEPARATOR, "51028" },
722 #include <config_data/carrier_config_510_28.h>
723 {MCC_MNC_SEPARATOR, "52000" },
724 #include <config_data/carrier_config_520_00.h>
725 {MCC_MNC_SEPARATOR, "52003" },
726 #include <config_data/carrier_config_520_03.h>
727 {MCC_MNC_SEPARATOR, "52004" },
728 #include <config_data/carrier_config_520_04.h>
729 {MCC_MNC_SEPARATOR, "52005" },
730 #include <config_data/carrier_config_520_05.h>
731 {MCC_MNC_SEPARATOR, "52501" },
732 #include <config_data/carrier_config_525_01.h>
733 {MCC_MNC_SEPARATOR, "52503" },
734 #include <config_data/carrier_config_525_03.h>
735 {MCC_MNC_SEPARATOR, "52505" },
736 #include <config_data/carrier_config_525_05.h>
737 {MCC_MNC_SEPARATOR, "53024" },
738 #include <config_data/carrier_config_530_24.h>
739 {MCC_MNC_SEPARATOR, "60201" },
740 #include <config_data/carrier_config_602_01.h>
741 {MCC_MNC_SEPARATOR, "60203" },
742 #include <config_data/carrier_config_602_03.h>
743 {MCC_MNC_SEPARATOR, "62127" },
744 #include <config_data/carrier_config_621_27.h>
745 {MCC_MNC_SEPARATOR, "62140" },
746 #include <config_data/carrier_config_621_40.h>
747 {MCC_MNC_SEPARATOR, "64011" },
748 #include <config_data/carrier_config_640_11.h>
749 {MCC_MNC_SEPARATOR, "64133" },
750 #include <config_data/carrier_config_641_33.h>
751 {MCC_MNC_SEPARATOR, "64505" },
752 #include <config_data/carrier_config_645_05.h>
753 {MCC_MNC_SEPARATOR, "65302" },
754 #include <config_data/carrier_config_653_02.h>
755 {MCC_MNC_SEPARATOR, "65501" },
756 #include <config_data/carrier_config_655_01.h>
757 {MCC_MNC_SEPARATOR, "65507" },
758 #include <config_data/carrier_config_655_07.h>
759 {MCC_MNC_SEPARATOR, "65510" },
760 #include <config_data/carrier_config_655_10.h>
761 {MCC_MNC_SEPARATOR, "71606" },
762 #include <config_data/carrier_config_716_06.h>
763 {MCC_MNC_SEPARATOR, "71610" },
764 #include <config_data/carrier_config_716_10.h>
765 {MCC_MNC_SEPARATOR, "71617" },
766 #include <config_data/carrier_config_716_17.h>
767 {MCC_MNC_SEPARATOR, "72207" },
768 #include <config_data/carrier_config_722_07.h>
769 {MCC_MNC_SEPARATOR, "722310" },
770 #include <config_data/carrier_config_722_310.h>
771 {MCC_MNC_SEPARATOR, "72234" },
772 #include <config_data/carrier_config_722_34.h>
773 {MCC_MNC_SEPARATOR, "72402" },
774 #include <config_data/carrier_config_724_02.h>
775 {MCC_MNC_SEPARATOR, "72403" },
776 #include <config_data/carrier_config_724_03.h>
777 {MCC_MNC_SEPARATOR, "72404" },
778 #include <config_data/carrier_config_724_04.h>
779 {MCC_MNC_SEPARATOR, "72405" },
780 #include <config_data/carrier_config_724_05.h>
781 {MCC_MNC_SEPARATOR, "72406" },
782 #include <config_data/carrier_config_724_06.h>
783 {MCC_MNC_SEPARATOR, "72410" },
784 #include <config_data/carrier_config_724_10.h>
785 {MCC_MNC_SEPARATOR, "72411" },
786 #include <config_data/carrier_config_724_11.h>
787 {MCC_MNC_SEPARATOR, "72423" },
788 #include <config_data/carrier_config_724_23.h>
789 {MCC_MNC_SEPARATOR, "73002" },
790 #include <config_data/carrier_config_730_02.h>
791 {MCC_MNC_SEPARATOR, "732101" },
792 #include <config_data/carrier_config_732_101.h>
793 {MCC_MNC_SEPARATOR, "732123" },
794 #include <config_data/carrier_config_732_123.h>
795 {MCC_MNC_SEPARATOR, "74000" },
796 #include <config_data/carrier_config_740_00.h>
797 {MCC_MNC_SEPARATOR, "74807" },
798 #include <config_data/carrier_config_748_07.h>
799
800 /* End indication */
801 { MCC_MNC_END_TAG, NULL },
802};
803
804/**
805 * Return the start index of CarrierConfigValue array for specific MCC/MNC
806 * @param mccmnc mobile country code and mobile network code string
807 * @retrun the start index if found else return -1
808 */
809int getStartIndex(const char* mccmnc) {
810 int i = 0, found = 0;
811
812 while (carierConfigData[i].key != MCC_MNC_END_TAG) {
813 if ((carierConfigData[i].key == MCC_MNC_SEPARATOR) &&
814 (!strcmp(carierConfigData[i].value, mccmnc))) {
815 found = 1;
816 break;
817 }
818 i++;
819 }
820
821 return (found == 1) ? i : -1;
822}
823
824
825/**
826 * Retrieve the count of keys for specific MCC/MNC
827 * @param mccmnc mobile country code and mobile network code string
828 * @retrun the count of keys
829 */
830unsigned int getKeyCount(const char* mccmnc) {
831 int i = 0, count = 0;
832
833 i = getStartIndex(mccmnc);
834
835 if (i >= 0) {
836 while ((carierConfigData[++i].key != MCC_MNC_SEPARATOR) &&
837 (carierConfigData[i].key != MCC_MNC_END_TAG)) {
838 count++;
839 }
840 }
841
842 return count;
843}
844
845/**
846 * Retrieve all the values of corresponding MCC/MNC
847 * @param mccmnc mobile country code and mobile network code string
848 * @retrun the array of values and the count of values if MCC/MNC can be found, else return 0
849 */
850int getValuesByMccMnc(const char* mccmnc, CarrierConfigValue *data) {
851 int i = 0, count = 0, len;
852
853 i = getStartIndex(mccmnc);
854 if (i >= 0) {
855 while ((carierConfigData[++i].key != MCC_MNC_SEPARATOR) &&
856 (carierConfigData[i].key != MCC_MNC_END_TAG)) {
857 len = strlen(carierConfigData[i].value);
858 data[count].key = carierConfigData[i].key;
859 data[count].value = (char*)calloc(len + 1, sizeof(char));
860 strncpy(data[count].value, carierConfigData[i].value, len);
861 count++;
862 }
863 }
864
865 return count;
866}
867