24using namespace tinyxml2;
47 const std::string& command);
49 const std::string& command);
51 const std::string& command);
55 const std::string& command);
57 const std::string& command);
59 const std::string& command);
61 const std::string& command);
179 const std::string& attr_name,
180 const std::string& attr_value);
203 bool VerifyPIN(
const std::string_view pin);
204 bool VerifyPUK(
const std::string_view puk);
206 const std::string_view new_pin);
207 bool ChangePUK(
const std::string_view puk,
const std::string_view new_puk);
214 std::string_view pin,
215 std::string_view new_pin);
Definition: channel_monitor.h:35
Definition: modem_service.h:63
Definition: network_service.h:30
Definition: sim_service.h:28
std::map< std::string, FacilityLock > facility_lock_
Definition: sim_service.h:255
void HandleQueryRemainTimes(const Client &client, const std::string &command)
Definition: sim_service.cpp:1667
SimService(int32_t service_id, ChannelMonitor *channel_monitor, ThreadLooper *thread_looper)
Definition: sim_service.cpp:286
PinStatus pin1_status_
Definition: sim_service.h:209
NetworkService * network_service_
Definition: sim_service.h:88
void InitializeSimFileSystemAndSimState()
Definition: sim_service.cpp:371
std::string GetSimOperator()
Definition: sim_service.cpp:801
void InitializeServiceState()
Definition: sim_service.cpp:360
void OnSimStatusChanged()
Definition: sim_service.cpp:1034
void SaveFacilityLockToIccProfile()
Definition: sim_service.cpp:643
bool ChangePin1AndAdjustSimStatus(PinStatus::ChangeMode mode, std::string_view pin, std::string_view new_pin)
Definition: sim_service.cpp:1143
SimStatus sim_status_
Definition: sim_service.h:91
bool SetPhoneNumber(std::string_view number)
Definition: sim_service.cpp:768
bool IsFDNEnabled()
Definition: sim_service.cpp:679
bool IsFixedDialNumber(std::string_view number)
Definition: sim_service.cpp:688
SimFileSystem sim_file_system_
Definition: sim_service.h:189
void HandleChangePassword(const Client &client, const std::string &command)
Definition: sim_service.cpp:1625
void HandleSimAuthentication(const Client &client, const std::string &command)
Definition: sim_service.cpp:1741
void HandleCdmaSubscriptionSource(const Client &client, const std::string &command)
Definition: sim_service.cpp:1704
SimStatus GetSimStatus() const
Definition: sim_service.cpp:797
void HandleChangeOrEnterPIN(const Client &client, const std::string &command)
Definition: sim_service.cpp:1161
SimService(const SimService &)=delete
void HandleTransmitLogicalChannel(const Client &client, const std::string &command)
Definition: sim_service.cpp:1541
bool checkPin1AndAdjustSimStatus(std::string_view password)
Definition: sim_service.cpp:1069
void HandleGetIccId(const Client &client)
Definition: sim_service.cpp:1294
void HandleCSIM_IO(const Client &client, const std::string &command)
Definition: sim_service.cpp:1085
SimStatus
Definition: sim_service.h:70
@ SIM_STATUS_ABSENT
Definition: sim_service.h:71
@ SIM_STATUS_READY
Definition: sim_service.h:73
@ SIM_STATUS_PUK
Definition: sim_service.h:75
@ SIM_STATUS_NOT_READY
Definition: sim_service.h:72
@ SIM_STATUS_PIN
Definition: sim_service.h:74
std::vector< CommandHandler > InitializeCommandHandlers()
Definition: sim_service.cpp:293
XMLElement * GetIccProfile()
Definition: sim_service.cpp:741
void HandleCdmaRoamingPreference(const Client &client, const std::string &command)
Definition: sim_service.cpp:1725
int cdma_roaming_preference_
Definition: sim_service.h:270
std::string GetPhoneNumber()
Definition: sim_service.cpp:745
std::vector< LogicalChannel > logical_channels_
Definition: sim_service.h:266
SimService & operator=(const SimService &)=delete
void HandlePhoneNumberUpdate(const Client &client, const std::string &command)
Definition: sim_service.cpp:1775
PinStatus pin2_status_
Definition: sim_service.h:210
void HandleCloseLogicalChannel(const Client &client, const std::string &command)
Definition: sim_service.cpp:1495
std::string last_file_id_
Definition: sim_service.h:267
void HandleSIM_IO(const Client &client, const std::string &command)
Definition: sim_service.cpp:928
int cdma_subscription_source_
Definition: sim_service.h:269
void HandleFacilityLock(const Client &client, const std::string &command)
Definition: sim_service.cpp:1366
XMLElement * GetPhoneNumberElement()
Definition: sim_service.cpp:1041
void HandleSIMStatusReq(const Client &client)
Definition: sim_service.cpp:878
void SavePinStateToIccProfile()
Definition: sim_service.cpp:527
void HandleOpenLogicalChannel(const Client &client, const std::string &command)
Definition: sim_service.cpp:1437
void InitializeFacilityLock()
Definition: sim_service.cpp:488
void SetupDependency(NetworkService *net)
Definition: sim_service.cpp:855
void HandleGetIMSI(const Client &client)
Definition: sim_service.cpp:1249
Definition: thread_looper.h:51
static const char *const text[]
Definition: ext2_err.c:10
int status()
Definition: health.cpp:42
Definition: alloc_utils.cpp:23
Definition: sim_service.h:218
FacilityLock(LockStatus status)
Definition: sim_service.h:253
LockStatus
Definition: sim_service.h:246
@ ENABLE
Definition: sim_service.h:248
@ DISABLE
Definition: sim_service.h:247
LockType
Definition: sim_service.h:219
@ AB
Definition: sim_service.h:225
@ AG
Definition: sim_service.h:226
@ FD
Definition: sim_service.h:229
@ AC
Definition: sim_service.h:227
@ SC
Definition: sim_service.h:228
@ IR
Definition: sim_service.h:224
@ OI
Definition: sim_service.h:221
@ AO
Definition: sim_service.h:220
@ OX
Definition: sim_service.h:222
@ AI
Definition: sim_service.h:223
Mode
Definition: sim_service.h:232
@ QUERY
Definition: sim_service.h:235
@ LOCK
Definition: sim_service.h:234
@ UNLOCK
Definition: sim_service.h:233
LockStatus lock_status
Definition: sim_service.h:251
Class
Definition: sim_service.h:238
@ DATA
Definition: sim_service.h:241
@ DEFAULT
Definition: sim_service.h:239
@ FAX
Definition: sim_service.h:242
@ SMS
Definition: sim_service.h:243
@ VOICE
Definition: sim_service.h:240
Definition: sim_service.h:258
bool is_open
Definition: sim_service.h:260
int session_id
Definition: sim_service.h:261
LogicalChannel(int session_id)
Definition: sim_service.h:263
std::string df_name
Definition: sim_service.h:259
Definition: sim_service.h:193
bool VerifyPIN(const std::string_view pin)
Definition: sim_service.cpp:191
std::string puk_
Definition: sim_service.h:197
ChangeMode
Definition: sim_service.h:194
@ WITH_PIN
Definition: sim_service.h:194
@ WITH_PUK
Definition: sim_service.h:194
bool VerifyPUK(const std::string_view puk)
Definition: sim_service.cpp:214
std::string pin_
Definition: sim_service.h:196
int puk_remaining_times_
Definition: sim_service.h:199
bool CheckPasswordValid(std::string_view password)
Definition: sim_service.cpp:179
bool ChangePIN(ChangeMode mode, const std::string_view pin_or_puk, const std::string_view new_pin)
Definition: sim_service.cpp:238
bool ChangePUK(const std::string_view puk, const std::string_view new_puk)
Definition: sim_service.cpp:268
int pin_remaining_times_
Definition: sim_service.h:198
Definition: sim_service.h:94
XMLElement * AppendNewElementWithText(XMLElement *parent, const char *name, const char *text)
Definition: sim_service.cpp:169
XMLElement * AppendNewElement(XMLElement *parent, const char *name)
Definition: sim_service.cpp:162
static std::string GetCommonIccEFPath(EFId efid)
Definition: sim_service.cpp:65
static std::string GetUsimEFPath(EFId efid)
Definition: sim_service.cpp:90
XMLElement * GetRootElement()
Definition: sim_service.cpp:61
std::string file_path
Definition: sim_service.h:187
EFId
Definition: sim_service.h:95
@ EF_LI
Definition: sim_service.h:123
@ EF_CSIM_MIPUPP
Definition: sim_service.h:147
@ EF_OPL
Definition: sim_service.h:109
@ EF_MSISDN
Definition: sim_service.h:115
@ EF_PCSCF
Definition: sim_service.h:154
@ EF_SMS
Definition: sim_service.h:111
@ EF_CSIM_CDMAHOME
Definition: sim_service.h:145
@ EF_OPLMN_W_ACT
Definition: sim_service.h:159
@ EF_SPN
Definition: sim_service.h:110
@ EF_SPN_SHORT_CPHS
Definition: sim_service.h:130
@ EF_LRPLMNSI
Definition: sim_service.h:167
@ EF_EXT5
Definition: sim_service.h:104
@ EF_SST
Definition: sim_service.h:117
@ EF_SPN_CPHS
Definition: sim_service.h:129
@ EF_CSIM_EPRL
Definition: sim_service.h:146
@ EF_CFF_CPHS
Definition: sim_service.h:128
@ EF_GID2
Definition: sim_service.h:99
@ EF_ADN
Definition: sim_service.h:96
@ EF_IST
Definition: sim_service.h:153
@ EF_CSP_CPHS
Definition: sim_service.h:132
@ EF_CSIM_IMSIM
Definition: sim_service.h:144
@ EF_MBDN
Definition: sim_service.h:107
@ EF_CST
Definition: sim_service.h:135
@ EF_VOICE_MAIL_INDICATOR_CPHS
Definition: sim_service.h:127
@ EF_RUIM_SPN
Definition: sim_service.h:136
@ EF_GID1
Definition: sim_service.h:98
@ EF_EHPLMN
Definition: sim_service.h:163
@ EF_SDN
Definition: sim_service.h:100
@ EF_HPLMN_W_ACT
Definition: sim_service.h:160
@ EF_FDN
Definition: sim_service.h:97
@ EF_MWIS
Definition: sim_service.h:106
@ EF_EXT3
Definition: sim_service.h:103
@ EF_CFIS
Definition: sim_service.h:118
@ EF_DOMAIN
Definition: sim_service.h:152
@ EF_EXT6
Definition: sim_service.h:105
@ EF_CSIM_MDN
Definition: sim_service.h:143
@ EF_ICCID
Definition: sim_service.h:112
@ EF_MBI
Definition: sim_service.h:114
@ EF_PLMN_W_ACT
Definition: sim_service.h:158
@ EF_EXT2
Definition: sim_service.h:102
@ EF_INFO_CPHS
Definition: sim_service.h:131
@ EF_IMG
Definition: sim_service.h:119
@ EF_PSI
Definition: sim_service.h:155
@ EF_IMPI
Definition: sim_service.h:151
@ EF_CSIM_LI
Definition: sim_service.h:141
@ EF_PBR
Definition: sim_service.h:122
@ EF_IMPU
Definition: sim_service.h:150
@ EF_MAILBOX_CPHS
Definition: sim_service.h:126
@ EF_FPLMN
Definition: sim_service.h:164
@ EF_AD
Definition: sim_service.h:113
@ EF_PL
Definition: sim_service.h:139
@ EF_PNN
Definition: sim_service.h:108
@ EF_EXT1
Definition: sim_service.h:101
@ EF_SPDI
Definition: sim_service.h:116
@ EF_HPPLMN
Definition: sim_service.h:170
@ EF_CSIM_SPN
Definition: sim_service.h:142
XMLDocument doc
Definition: sim_service.h:186
static XMLElement * FindAttribute(XMLElement *parent, const std::string &attr_name, const std::string &attr_value)
Definition: sim_service.cpp:144