1 /* 2 * Copyright (C) 2025 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 #include "usim_file_controller.h" 17 18 namespace OHOS { 19 namespace Telephony { UsimFileController(int slotId)20UsimFileController::UsimFileController(int slotId) : IccFileController("UsimFileController", slotId) {} 21 22 const std::string DEDICATED_FILE_TELE = "7F10"; 23 ObtainElementFilePath(int efId)24std::string UsimFileController::ObtainElementFilePath(int efId) 25 { 26 std::string path = ObtainUsimElementFilePath(efId); 27 if (!path.empty()) { 28 return path; 29 } 30 std::string mf = MASTER_FILE_SIM; 31 path = ObtainElementFileForPublic(efId); 32 if (path.empty()) { 33 mf.append(DEDICATED_FILE_TELECOM); 34 mf.append(DEDICATED_FILE_DIALLING_NUMBERS); 35 return mf; 36 } 37 return path; 38 } 39 ObtainUsimElementFilePathExt(int efId)40static std::string ObtainUsimElementFilePathExt(int efId) 41 { 42 std::string mf = MASTER_FILE_SIM; 43 switch (efId) { 44 case ELEMENTARY_FILE_PBR: 45 mf.append(DEDICATED_FILE_TELE); 46 mf.append(DEDICATED_FILE_DIALLING_NUMBERS); 47 return mf; 48 case ELEMENTARY_FILE_OPL5G: 49 mf.append(DEDICATED_FILE_ADF); 50 mf.append(DEDICATED_FILE_DF5GS); 51 return mf; 52 default: 53 return ""; 54 } 55 } 56 ObtainUsimElementFilePath(int efId)57std::string UsimFileController::ObtainUsimElementFilePath(int efId) 58 { 59 std::string mf = MASTER_FILE_SIM; 60 switch (efId) { 61 case ELEMENTARY_FILE_SMS: 62 case ELEMENTARY_FILE_EXT5: 63 case ELEMENTARY_FILE_EXT6: 64 case ELEMENTARY_FILE_MWIS: 65 case ELEMENTARY_FILE_MBI: 66 case ELEMENTARY_FILE_SPN: 67 case ELEMENTARY_FILE_AD: 68 case ELEMENTARY_FILE_MBDN: 69 case ELEMENTARY_FILE_PNN: 70 case ELEMENTARY_FILE_OPL: 71 case ELEMENTARY_FILE_SPDI: 72 case ELEMENTARY_FILE_SST: 73 case ELEMENTARY_FILE_CFIS: 74 case ELEMENTARY_FILE_MAILBOX_CPHS: 75 case ELEMENTARY_FILE_VOICE_MAIL_INDICATOR_CPHS: 76 case ELEMENTARY_FILE_CFF_CPHS: 77 case ELEMENTARY_FILE_SPN_CPHS: 78 case ELEMENTARY_FILE_SPN_SHORT_CPHS: 79 case ELEMENTARY_FILE_FDN: 80 case ELEMENTARY_FILE_SDN: 81 case ELEMENTARY_FILE_EXT3: 82 case ELEMENTARY_FILE_MSISDN: 83 case ELEMENTARY_FILE_EXT2: 84 case ELEMENTARY_FILE_INFO_CPHS: 85 case ELEMENTARY_FILE_CSP_CPHS: 86 case ELEMENTARY_FILE_GID1: 87 case ELEMENTARY_FILE_GID2: 88 case ELEMENTARY_FILE_LI: 89 case ELEMENTARY_FILE_PLMN_W_ACT: 90 case ELEMENTARY_FILE_OPLMN_W_ACT: 91 case ELEMENTARY_FILE_HPLMN_W_ACT: 92 case ELEMENTARY_FILE_EHPLMN: 93 case ELEMENTARY_FILE_FPLMN: 94 case ELEMENTARY_FILE_LRPLMNSI: 95 case ELEMENTARY_FILE_HPPLMN: 96 mf.append(DEDICATED_FILE_ADF); 97 return mf; 98 default: 99 return ObtainUsimElementFilePathExt(efId); 100 } 101 } 102 ~UsimFileController()103UsimFileController::~UsimFileController() {} 104 } // namespace Telephony 105 } // namespace OHOS 106