24using namespace tinyxml2;
49 const std::string& command);
51 const std::string& command);
53 const std::string& command);
57 const std::string& command);
59 const std::string& command);
61 const std::string& command);
63 const std::string& command);
181 const std::string& attr_name,
182 const std::string& attr_value);
208 std::string_view new_pin);
209 bool ChangePUK(std::string_view puk, std::string_view new_puk);
216 std::string_view pin,
217 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:257
void HandleQueryRemainTimes(const Client &client, const std::string &command)
Definition: sim_service.cpp:1726
SimService(int32_t service_id, ChannelMonitor *channel_monitor, ThreadLooper *thread_looper)
Definition: sim_service.cpp:287
PinStatus pin1_status_
Definition: sim_service.h:211
NetworkService * network_service_
Definition: sim_service.h:90
void HandleGetEid(const Client &client)
Definition: sim_service.cpp:1333
void InitializeSimFileSystemAndSimState()
Definition: sim_service.cpp:378
std::string GetSimOperator()
Definition: sim_service.cpp:808
void InitializeServiceState()
Definition: sim_service.cpp:367
void OnSimStatusChanged()
Definition: sim_service.cpp:1041
void SaveFacilityLockToIccProfile()
Definition: sim_service.cpp:650
bool ChangePin1AndAdjustSimStatus(PinStatus::ChangeMode mode, std::string_view pin, std::string_view new_pin)
Definition: sim_service.cpp:1150
SimStatus sim_status_
Definition: sim_service.h:93
bool SetPhoneNumber(std::string_view number)
Definition: sim_service.cpp:775
bool IsFDNEnabled()
Definition: sim_service.cpp:686
bool IsFixedDialNumber(std::string_view number)
Definition: sim_service.cpp:695
SimFileSystem sim_file_system_
Definition: sim_service.h:191
void HandleChangePassword(const Client &client, const std::string &command)
Definition: sim_service.cpp:1684
void HandleSimAuthentication(const Client &client, const std::string &command)
Definition: sim_service.cpp:1800
void HandleCdmaSubscriptionSource(const Client &client, const std::string &command)
Definition: sim_service.cpp:1763
SimStatus GetSimStatus() const
Definition: sim_service.cpp:804
void HandleChangeOrEnterPIN(const Client &client, const std::string &command)
Definition: sim_service.cpp:1168
SimService(const SimService &)=delete
void HandleTransmitLogicalChannel(const Client &client, const std::string &command)
Definition: sim_service.cpp:1600
bool checkPin1AndAdjustSimStatus(std::string_view password)
Definition: sim_service.cpp:1076
void HandleGetIccId(const Client &client)
Definition: sim_service.cpp:1301
void HandleCSIM_IO(const Client &client, const std::string &command)
Definition: sim_service.cpp:1092
SimStatus
Definition: sim_service.h:72
@ SIM_STATUS_ABSENT
Definition: sim_service.h:73
@ SIM_STATUS_READY
Definition: sim_service.h:75
@ SIM_STATUS_PUK
Definition: sim_service.h:77
@ SIM_STATUS_NOT_READY
Definition: sim_service.h:74
@ SIM_STATUS_PIN
Definition: sim_service.h:76
void HandleGetAtr(const Client &client)
Definition: sim_service.cpp:1359
std::vector< CommandHandler > InitializeCommandHandlers()
Definition: sim_service.cpp:294
XMLElement * GetIccProfile()
Definition: sim_service.cpp:748
void HandleCdmaRoamingPreference(const Client &client, const std::string &command)
Definition: sim_service.cpp:1784
int cdma_roaming_preference_
Definition: sim_service.h:272
std::string GetPhoneNumber()
Definition: sim_service.cpp:752
std::vector< LogicalChannel > logical_channels_
Definition: sim_service.h:268
SimService & operator=(const SimService &)=delete
void HandlePhoneNumberUpdate(const Client &client, const std::string &command)
Definition: sim_service.cpp:1834
PinStatus pin2_status_
Definition: sim_service.h:212
void HandleCloseLogicalChannel(const Client &client, const std::string &command)
Definition: sim_service.cpp:1554
std::string last_file_id_
Definition: sim_service.h:269
void HandleSIM_IO(const Client &client, const std::string &command)
Definition: sim_service.cpp:935
int cdma_subscription_source_
Definition: sim_service.h:271
void HandleFacilityLock(const Client &client, const std::string &command)
Definition: sim_service.cpp:1425
XMLElement * GetPhoneNumberElement()
Definition: sim_service.cpp:1048
void HandleSIMStatusReq(const Client &client)
Definition: sim_service.cpp:885
void SavePinStateToIccProfile()
Definition: sim_service.cpp:534
void HandleOpenLogicalChannel(const Client &client, const std::string &command)
Definition: sim_service.cpp:1496
void InitializeFacilityLock()
Definition: sim_service.cpp:495
void SetupDependency(NetworkService *net)
Definition: sim_service.cpp:862
void HandleGetIMSI(const Client &client)
Definition: sim_service.cpp:1256
Definition: thread_looper.h:51
#define parent
Definition: dict.c:53
static const char *const text[]
Definition: ext2_err.c:10
int status()
Definition: health.cpp:44
char * name
Definition: libf2fs.c:1403
Definition: alloc_driver.h:20
Definition: sim_service.h:220
FacilityLock(LockStatus status)
Definition: sim_service.h:255
LockStatus
Definition: sim_service.h:248
@ ENABLE
Definition: sim_service.h:250
@ DISABLE
Definition: sim_service.h:249
LockType
Definition: sim_service.h:221
@ AB
Definition: sim_service.h:227
@ AG
Definition: sim_service.h:228
@ FD
Definition: sim_service.h:231
@ AC
Definition: sim_service.h:229
@ SC
Definition: sim_service.h:230
@ IR
Definition: sim_service.h:226
@ OI
Definition: sim_service.h:223
@ AO
Definition: sim_service.h:222
@ OX
Definition: sim_service.h:224
@ AI
Definition: sim_service.h:225
Mode
Definition: sim_service.h:234
@ QUERY
Definition: sim_service.h:237
@ LOCK
Definition: sim_service.h:236
@ UNLOCK
Definition: sim_service.h:235
LockStatus lock_status
Definition: sim_service.h:253
Class
Definition: sim_service.h:240
@ DATA
Definition: sim_service.h:243
@ DEFAULT
Definition: sim_service.h:241
@ FAX
Definition: sim_service.h:244
@ SMS
Definition: sim_service.h:245
@ VOICE
Definition: sim_service.h:242
Definition: sim_service.h:260
bool is_open
Definition: sim_service.h:262
int session_id
Definition: sim_service.h:263
LogicalChannel(int session_id)
Definition: sim_service.h:265
std::string df_name
Definition: sim_service.h:261
Definition: sim_service.h:195
bool VerifyPUK(std::string_view puk)
Definition: sim_service.cpp:215
std::string puk_
Definition: sim_service.h:199
ChangeMode
Definition: sim_service.h:196
@ WITH_PIN
Definition: sim_service.h:196
@ WITH_PUK
Definition: sim_service.h:196
std::string pin_
Definition: sim_service.h:198
int puk_remaining_times_
Definition: sim_service.h:201
bool CheckPasswordValid(std::string_view password)
Definition: sim_service.cpp:180
bool ChangePIN(ChangeMode mode, std::string_view pin_or_puk, std::string_view new_pin)
Definition: sim_service.cpp:239
bool VerifyPIN(std::string_view pin)
Definition: sim_service.cpp:192
bool ChangePUK(std::string_view puk, std::string_view new_puk)
Definition: sim_service.cpp:269
int pin_remaining_times_
Definition: sim_service.h:200
Definition: sim_service.h:96
XMLElement * AppendNewElementWithText(XMLElement *parent, const char *name, const char *text)
Definition: sim_service.cpp:170
XMLElement * AppendNewElement(XMLElement *parent, const char *name)
Definition: sim_service.cpp:163
static std::string GetCommonIccEFPath(EFId efid)
Definition: sim_service.cpp:66
static std::string GetUsimEFPath(EFId efid)
Definition: sim_service.cpp:91
XMLElement * GetRootElement()
Definition: sim_service.cpp:62
std::string file_path
Definition: sim_service.h:189
EFId
Definition: sim_service.h:97
@ EF_LI
Definition: sim_service.h:125
@ EF_CSIM_MIPUPP
Definition: sim_service.h:149
@ EF_OPL
Definition: sim_service.h:111
@ EF_MSISDN
Definition: sim_service.h:117
@ EF_PCSCF
Definition: sim_service.h:156
@ EF_SMS
Definition: sim_service.h:113
@ EF_CSIM_CDMAHOME
Definition: sim_service.h:147
@ EF_OPLMN_W_ACT
Definition: sim_service.h:161
@ EF_SPN
Definition: sim_service.h:112
@ EF_SPN_SHORT_CPHS
Definition: sim_service.h:132
@ EF_LRPLMNSI
Definition: sim_service.h:169
@ EF_EXT5
Definition: sim_service.h:106
@ EF_SST
Definition: sim_service.h:119
@ EF_SPN_CPHS
Definition: sim_service.h:131
@ EF_CSIM_EPRL
Definition: sim_service.h:148
@ EF_CFF_CPHS
Definition: sim_service.h:130
@ EF_GID2
Definition: sim_service.h:101
@ EF_ADN
Definition: sim_service.h:98
@ EF_IST
Definition: sim_service.h:155
@ EF_CSP_CPHS
Definition: sim_service.h:134
@ EF_CSIM_IMSIM
Definition: sim_service.h:146
@ EF_MBDN
Definition: sim_service.h:109
@ EF_CST
Definition: sim_service.h:137
@ EF_VOICE_MAIL_INDICATOR_CPHS
Definition: sim_service.h:129
@ EF_RUIM_SPN
Definition: sim_service.h:138
@ EF_GID1
Definition: sim_service.h:100
@ EF_EHPLMN
Definition: sim_service.h:165
@ EF_SDN
Definition: sim_service.h:102
@ EF_HPLMN_W_ACT
Definition: sim_service.h:162
@ EF_FDN
Definition: sim_service.h:99
@ EF_MWIS
Definition: sim_service.h:108
@ EF_EXT3
Definition: sim_service.h:105
@ EF_CFIS
Definition: sim_service.h:120
@ EF_DOMAIN
Definition: sim_service.h:154
@ EF_EXT6
Definition: sim_service.h:107
@ EF_CSIM_MDN
Definition: sim_service.h:145
@ EF_ICCID
Definition: sim_service.h:114
@ EF_MBI
Definition: sim_service.h:116
@ EF_PLMN_W_ACT
Definition: sim_service.h:160
@ EF_EXT2
Definition: sim_service.h:104
@ EF_INFO_CPHS
Definition: sim_service.h:133
@ EF_IMG
Definition: sim_service.h:121
@ EF_PSI
Definition: sim_service.h:157
@ EF_IMPI
Definition: sim_service.h:153
@ EF_CSIM_LI
Definition: sim_service.h:143
@ EF_PBR
Definition: sim_service.h:124
@ EF_IMPU
Definition: sim_service.h:152
@ EF_MAILBOX_CPHS
Definition: sim_service.h:128
@ EF_FPLMN
Definition: sim_service.h:166
@ EF_AD
Definition: sim_service.h:115
@ EF_PL
Definition: sim_service.h:141
@ EF_PNN
Definition: sim_service.h:110
@ EF_EXT1
Definition: sim_service.h:103
@ EF_SPDI
Definition: sim_service.h:118
@ EF_HPPLMN
Definition: sim_service.h:172
@ EF_CSIM_SPN
Definition: sim_service.h:144
XMLDocument doc
Definition: sim_service.h:188
static XMLElement * FindAttribute(XMLElement *parent, const std::string &attr_name, const std::string &attr_value)
Definition: sim_service.cpp:145