1 /*
2 * Copyright (C) 2021-2022 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 "core_service.h"
17
18 #include "core_manager_inner.h"
19 #include "core_service_dump_helper.h"
20 #include "ffrt_inner.h"
21 #include "ims_core_service_client.h"
22 #include "ipc_skeleton.h"
23 #include "network_search_manager.h"
24 #include "network_search_types.h"
25 #include "parameter.h"
26 #include "sim_manager.h"
27 #include "string_ex.h"
28 #include "system_ability_definition.h"
29 #include "telephony_common_utils.h"
30 #include "telephony_errors.h"
31 #include "telephony_ext_wrapper.h"
32 #include "telephony_log_wrapper.h"
33 #include "telephony_permission.h"
34
35 namespace OHOS {
36 namespace Telephony {
37 namespace {
38 const int32_t MAX_IPC_THREAD_NUM = 6;
39 const int32_t MAX_FFRT_THREAD_NUM = 32;
40 }
41 const bool G_REGISTER_RESULT =
42 SystemAbility::MakeAndRegisterAbility(DelayedSingleton<CoreService>::GetInstance().get());
43
CoreService()44 CoreService::CoreService() : SystemAbility(TELEPHONY_CORE_SERVICE_SYS_ABILITY_ID, true) {}
45
~CoreService()46 CoreService::~CoreService() {}
47
OnStart()48 void CoreService::OnStart()
49 {
50 bindTime_ =
51 std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch())
52 .count();
53 if (state_ == ServiceRunningState::STATE_RUNNING) {
54 TELEPHONY_LOGE("CoreService has already started.");
55 return;
56 }
57
58 if (!registerToService_) {
59 bool ret = Publish(DelayedSingleton<CoreService>::GetInstance().get());
60 if (!ret) {
61 TELEPHONY_LOGE("CoreService::Init Publish failed!");
62 return;
63 }
64 registerToService_ = true;
65 }
66 IPCSkeleton::SetMaxWorkThreadNum(MAX_IPC_THREAD_NUM);
67 int ffrtRet = ffrt_set_cpu_worker_max_num(ffrt::qos_default, MAX_FFRT_THREAD_NUM);
68 if (ffrtRet == -1) {
69 TELEPHONY_LOGE("ffrt_set_cpu_worker_max_num fail");
70 }
71 if (!Init()) {
72 TELEPHONY_LOGE("failed to init CoreService");
73 return;
74 }
75 state_ = ServiceRunningState::STATE_RUNNING;
76 endTime_ =
77 std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch())
78 .count();
79 TELEPHONY_LOGI("CoreService start success");
80 }
81
Init()82 bool CoreService::Init()
83 {
84 TELEPHONY_LOGI("CoreService::Init");
85 #ifdef OHOS_BUILD_ENABLE_TELEPHONY_EXT
86 TELEPHONY_EXT_WRAPPER.InitTelephonyExtWrapper();
87 #endif
88 telRilManager_ = std::make_shared<TelRilManager>();
89 if (telRilManager_ != nullptr) {
90 if (!telRilManager_->OnInit()) {
91 TELEPHONY_LOGE("TelRilManager init is failed!");
92 return false;
93 }
94 }
95 CoreManagerInner::GetInstance().SetTelRilMangerObj(telRilManager_);
96 int32_t slotCount = GetMaxSimCount();
97 simManager_ = std::make_shared<SimManager>(telRilManager_);
98 if (simManager_ != nullptr) {
99 simManager_->OnInit(slotCount);
100 } else {
101 TELEPHONY_LOGE("SimManager init is failed!");
102 return false;
103 }
104 // connect ims_service
105 DelayedSingleton<ImsCoreServiceClient>::GetInstance()->Init();
106 networkSearchManager_ = std::make_shared<NetworkSearchManager>(telRilManager_, simManager_);
107 if (networkSearchManager_ != nullptr) {
108 if (!networkSearchManager_->OnInit()) {
109 TELEPHONY_LOGE("NetworkSearchManager init is failed!");
110 return false;
111 }
112 }
113 CoreManagerInner::GetInstance().OnInit(networkSearchManager_, simManager_, telRilManager_);
114 for (int32_t slotId = 0; slotId < SIM_SLOT_COUNT; slotId++) {
115 networkSearchManager_->InitAirplaneMode(slotId);
116 }
117 TELEPHONY_LOGI("CoreService::Init success");
118 return true;
119 }
120
OnStop()121 void CoreService::OnStop()
122 {
123 state_ = ServiceRunningState::STATE_NOT_START;
124 registerToService_ = false;
125 DelayedSingleton<ImsCoreServiceClient>::GetInstance()->UnInit();
126 telRilManager_->DeInit();
127 TELEPHONY_LOGI("CoreService Stop success");
128 }
129
GetServiceRunningState()130 int32_t CoreService::GetServiceRunningState()
131 {
132 return static_cast<int32_t>(state_);
133 }
134
GetPsRadioTech(int32_t slotId,int32_t & psRadioTech)135 int32_t CoreService::GetPsRadioTech(int32_t slotId, int32_t &psRadioTech)
136 {
137 if (!TelephonyPermission::CheckPermission(Permission::GET_NETWORK_INFO)) {
138 TELEPHONY_LOGE("permission denied!");
139 return TELEPHONY_ERR_PERMISSION_ERR;
140 }
141 if (networkSearchManager_ == nullptr) {
142 TELEPHONY_LOGE("networkSearchManager_ is null");
143 return TELEPHONY_ERR_LOCAL_PTR_NULL;
144 }
145 return networkSearchManager_->GetPsRadioTech(slotId, psRadioTech);
146 }
147
GetCsRadioTech(int32_t slotId,int32_t & csRadioTech)148 int32_t CoreService::GetCsRadioTech(int32_t slotId, int32_t &csRadioTech)
149 {
150 if (!TelephonyPermission::CheckPermission(Permission::GET_NETWORK_INFO)) {
151 TELEPHONY_LOGE("permission denied!");
152 return TELEPHONY_ERR_PERMISSION_ERR;
153 }
154 if (networkSearchManager_ == nullptr) {
155 TELEPHONY_LOGE("networkSearchManager_ is null");
156 return TELEPHONY_ERR_LOCAL_PTR_NULL;
157 }
158 return networkSearchManager_->GetCsRadioTech(slotId, csRadioTech);
159 }
160
SetNetworkSelectionMode(int32_t slotId,int32_t selectMode,const sptr<NetworkInformation> & networkInformation,bool resumeSelection,const sptr<INetworkSearchCallback> & callback)161 int32_t CoreService::SetNetworkSelectionMode(int32_t slotId, int32_t selectMode,
162 const sptr<NetworkInformation> &networkInformation, bool resumeSelection,
163 const sptr<INetworkSearchCallback> &callback)
164 {
165 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
166 TELEPHONY_LOGE("Non-system applications use system APIs!");
167 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
168 }
169 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
170 TELEPHONY_LOGE("permission denied!");
171 return TELEPHONY_ERR_PERMISSION_ERR;
172 }
173 if (networkSearchManager_ == nullptr) {
174 TELEPHONY_LOGE("networkSearchManager_ is null");
175 return TELEPHONY_ERR_LOCAL_PTR_NULL;
176 }
177 TELEPHONY_LOGI("CoreService::SetNetworkSelectionMode selectMode:%{public}d", selectMode);
178 return networkSearchManager_->SetNetworkSelectionMode(
179 slotId, selectMode, networkInformation, resumeSelection, callback);
180 }
181
GetSignalInfoList(int32_t slotId,std::vector<sptr<SignalInformation>> & signals)182 int32_t CoreService::GetSignalInfoList(int32_t slotId, std::vector<sptr<SignalInformation>> &signals)
183 {
184 if (networkSearchManager_ == nullptr) {
185 TELEPHONY_LOGE("networkSearchManager_ is null");
186 return TELEPHONY_ERR_LOCAL_PTR_NULL;
187 }
188 return networkSearchManager_->GetSignalInfoList(slotId, signals);
189 }
190
GetOperatorNumeric(int32_t slotId)191 std::u16string CoreService::GetOperatorNumeric(int32_t slotId)
192 {
193 if (networkSearchManager_ == nullptr) {
194 TELEPHONY_LOGE("networkSearchManager_ is null");
195 return std::u16string();
196 }
197 return networkSearchManager_->GetOperatorNumeric(slotId);
198 }
199
GetResidentNetworkNumeric(int32_t slotId)200 std::string CoreService::GetResidentNetworkNumeric(int32_t slotId)
201 {
202 if (networkSearchManager_ == nullptr) {
203 TELEPHONY_LOGE("networkSearchManager_ is null");
204 return "";
205 }
206 return networkSearchManager_->GetResidentNetworkNumeric(slotId);
207 }
208
GetOperatorName(int32_t slotId,std::u16string & operatorName)209 int32_t CoreService::GetOperatorName(int32_t slotId, std::u16string &operatorName)
210 {
211 if (networkSearchManager_ == nullptr) {
212 TELEPHONY_LOGE("networkSearchManager_ is null");
213 return TELEPHONY_ERR_LOCAL_PTR_NULL;
214 }
215 return networkSearchManager_->GetOperatorName(slotId, operatorName);
216 }
217
GetNetworkState(int32_t slotId,sptr<NetworkState> & networkState)218 int32_t CoreService::GetNetworkState(int32_t slotId, sptr<NetworkState> &networkState)
219 {
220 if (!TelephonyPermission::CheckPermission(Permission::GET_NETWORK_INFO)) {
221 TELEPHONY_LOGE("permission denied!");
222 return TELEPHONY_ERR_PERMISSION_ERR;
223 }
224 if (networkSearchManager_ == nullptr) {
225 TELEPHONY_LOGE("networkSearchManager_ is null");
226 return TELEPHONY_ERR_LOCAL_PTR_NULL;
227 }
228 return networkSearchManager_->GetNetworkStatus(slotId, networkState);
229 }
230
SetRadioState(int32_t slotId,bool isOn,const sptr<INetworkSearchCallback> & callback)231 int32_t CoreService::SetRadioState(int32_t slotId, bool isOn, const sptr<INetworkSearchCallback> &callback)
232 {
233 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
234 TELEPHONY_LOGE("Non-system applications use system APIs!");
235 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
236 }
237 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
238 TELEPHONY_LOGE("permission denied!");
239 return TELEPHONY_ERR_PERMISSION_ERR;
240 }
241 if (networkSearchManager_ == nullptr) {
242 TELEPHONY_LOGE("networkSearchManager_ is null");
243 return TELEPHONY_ERR_LOCAL_PTR_NULL;
244 }
245 TELEPHONY_LOGI("CoreService::SetRadioState --> slotId:%{public}d, isOn:%{public}d", slotId, isOn);
246 return networkSearchManager_->SetRadioState(slotId, isOn, 0, callback);
247 }
248
GetRadioState(int32_t slotId,const sptr<INetworkSearchCallback> & callback)249 int32_t CoreService::GetRadioState(int32_t slotId, const sptr<INetworkSearchCallback> &callback)
250 {
251 if (!TelephonyPermission::CheckPermission(Permission::GET_NETWORK_INFO)) {
252 TELEPHONY_LOGE("permission denied!");
253 return TELEPHONY_ERR_PERMISSION_ERR;
254 }
255 if (networkSearchManager_ == nullptr) {
256 TELEPHONY_LOGE("networkSearchManager_ is null");
257 return TELEPHONY_ERR_LOCAL_PTR_NULL;
258 }
259 return networkSearchManager_->GetRadioState(slotId, callback);
260 }
261
GetIsoCountryCodeForNetwork(int32_t slotId,std::u16string & countryCode)262 int32_t CoreService::GetIsoCountryCodeForNetwork(int32_t slotId, std::u16string &countryCode)
263 {
264 if (networkSearchManager_ == nullptr) {
265 TELEPHONY_LOGE("networkSearchManager_ is null");
266 return TELEPHONY_ERR_LOCAL_PTR_NULL;
267 }
268 return networkSearchManager_->GetIsoCountryCodeForNetwork(slotId, countryCode);
269 }
270
GetImei(int32_t slotId,std::u16string & imei)271 int32_t CoreService::GetImei(int32_t slotId, std::u16string &imei)
272 {
273 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
274 TELEPHONY_LOGE("Non-system applications use system APIs!");
275 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
276 }
277 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
278 TELEPHONY_LOGE("permission denied!");
279 return TELEPHONY_ERR_PERMISSION_ERR;
280 }
281 if (networkSearchManager_ == nullptr) {
282 TELEPHONY_LOGE("networkSearchManager_ is null");
283 return TELEPHONY_ERR_LOCAL_PTR_NULL;
284 }
285 return networkSearchManager_->GetImei(slotId, imei);
286 }
287
GetImeiSv(int32_t slotId,std::u16string & imeiSv)288 int32_t CoreService::GetImeiSv(int32_t slotId, std::u16string &imeiSv)
289 {
290 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
291 TELEPHONY_LOGE("Non-system applications use system APIs!");
292 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
293 }
294 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
295 TELEPHONY_LOGE("permission denied!");
296 return TELEPHONY_ERR_PERMISSION_ERR;
297 }
298 if (networkSearchManager_ == nullptr) {
299 TELEPHONY_LOGE("networkSearchManager_ is null");
300 return TELEPHONY_ERR_LOCAL_PTR_NULL;
301 }
302 return networkSearchManager_->GetImeiSv(slotId, imeiSv);
303 }
304
GetMeid(int32_t slotId,std::u16string & meid)305 int32_t CoreService::GetMeid(int32_t slotId, std::u16string &meid)
306 {
307 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
308 TELEPHONY_LOGE("Non-system applications use system APIs!");
309 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
310 }
311 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
312 TELEPHONY_LOGE("permission denied!");
313 return TELEPHONY_ERR_PERMISSION_ERR;
314 }
315 if (networkSearchManager_ == nullptr) {
316 TELEPHONY_LOGE("networkSearchManager_ is null");
317 return TELEPHONY_ERR_LOCAL_PTR_NULL;
318 }
319 return networkSearchManager_->GetMeid(slotId, meid);
320 }
321
GetUniqueDeviceId(int32_t slotId,std::u16string & deviceId)322 int32_t CoreService::GetUniqueDeviceId(int32_t slotId, std::u16string &deviceId)
323 {
324 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
325 TELEPHONY_LOGE("Non-system applications use system APIs!");
326 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
327 }
328 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
329 TELEPHONY_LOGE("permission denied!");
330 return TELEPHONY_ERR_PERMISSION_ERR;
331 }
332 if (networkSearchManager_ == nullptr) {
333 TELEPHONY_LOGE("networkSearchManager_ is null");
334 return TELEPHONY_ERR_LOCAL_PTR_NULL;
335 }
336 return networkSearchManager_->GetUniqueDeviceId(slotId, deviceId);
337 }
338
IsNrSupported(int32_t slotId)339 bool CoreService::IsNrSupported(int32_t slotId)
340 {
341 if (networkSearchManager_ == nullptr) {
342 TELEPHONY_LOGE("networkSearchManager_ is null");
343 return false;
344 }
345 return networkSearchManager_->IsNrSupported(slotId);
346 }
347
SetNrOptionMode(int32_t slotId,int32_t mode,const sptr<INetworkSearchCallback> & callback)348 int32_t CoreService::SetNrOptionMode(int32_t slotId, int32_t mode, const sptr<INetworkSearchCallback> &callback)
349 {
350 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
351 TELEPHONY_LOGE("Non-system applications use system APIs!");
352 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
353 }
354 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
355 TELEPHONY_LOGE("permission denied!");
356 return TELEPHONY_ERR_PERMISSION_ERR;
357 }
358 if (networkSearchManager_ == nullptr) {
359 TELEPHONY_LOGE("networkSearchManager_ is null");
360 return TELEPHONY_ERR_LOCAL_PTR_NULL;
361 }
362 return networkSearchManager_->SetNrOptionMode(slotId, mode, callback);
363 }
364
GetNrOptionMode(int32_t slotId,const sptr<INetworkSearchCallback> & callback)365 int32_t CoreService::GetNrOptionMode(int32_t slotId, const sptr<INetworkSearchCallback> &callback)
366 {
367 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
368 TELEPHONY_LOGE("Non-system applications use system APIs!");
369 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
370 }
371 if (networkSearchManager_ == nullptr) {
372 TELEPHONY_LOGE("networkSearchManager_ is null");
373 return TELEPHONY_ERR_LOCAL_PTR_NULL;
374 }
375 return networkSearchManager_->GetNrOptionMode(slotId, callback);
376 }
377
HasSimCard(int32_t slotId,bool & hasSimCard)378 int32_t CoreService::HasSimCard(int32_t slotId, bool &hasSimCard)
379 {
380 TELEPHONY_LOGD("CoreService::HasSimCard(), slotId = %{public}d", slotId);
381 if (simManager_ == nullptr) {
382 TELEPHONY_LOGE("simManager_ is null");
383 return TELEPHONY_ERR_LOCAL_PTR_NULL;
384 }
385 return simManager_->HasSimCard(slotId, hasSimCard);
386 }
387
GetSimState(int32_t slotId,SimState & simState)388 int32_t CoreService::GetSimState(int32_t slotId, SimState &simState)
389 {
390 TELEPHONY_LOGD("CoreService::GetSimState(), slotId = %{public}d", slotId);
391 if (simManager_ == nullptr) {
392 TELEPHONY_LOGE("simManager_ is null");
393 return TELEPHONY_ERR_LOCAL_PTR_NULL;
394 }
395
396 return simManager_->GetSimState(slotId, simState);
397 }
398
GetDsdsMode(int32_t & dsdsMode)399 int32_t CoreService::GetDsdsMode(int32_t &dsdsMode)
400 {
401 TELEPHONY_LOGI("CoreService::GetDsdsMode()");
402 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
403 TELEPHONY_LOGE("Non-system applications use system APIs!");
404 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
405 }
406 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
407 TELEPHONY_LOGE("permission denied!");
408 return TELEPHONY_ERR_PERMISSION_ERR;
409 }
410 if (simManager_ == nullptr) {
411 TELEPHONY_LOGE("simManager_ is null");
412 return TELEPHONY_ERR_LOCAL_PTR_NULL;
413 }
414
415 return simManager_->GetDsdsMode(dsdsMode);
416 }
417
GetCardType(int32_t slotId,CardType & cardType)418 int32_t CoreService::GetCardType(int32_t slotId, CardType &cardType)
419 {
420 TELEPHONY_LOGD("CoreService::GetCardType(), slotId = %{public}d", slotId);
421 if (simManager_ == nullptr) {
422 TELEPHONY_LOGE("simManager_ is null");
423 return TELEPHONY_ERR_LOCAL_PTR_NULL;
424 }
425
426 return simManager_->GetCardType(slotId, cardType);
427 }
428
GetISOCountryCodeForSim(int32_t slotId,std::u16string & countryCode)429 int32_t CoreService::GetISOCountryCodeForSim(int32_t slotId, std::u16string &countryCode)
430 {
431 TELEPHONY_LOGD("CoreService::GetISOCountryCodeForSim(), slotId = %{public}d", slotId);
432 if (simManager_ == nullptr) {
433 TELEPHONY_LOGE("simManager_ is null");
434 return TELEPHONY_ERR_LOCAL_PTR_NULL;
435 }
436
437 return simManager_->GetISOCountryCodeForSim(slotId, countryCode);
438 }
439
GetSimSpn(int32_t slotId,std::u16string & spn)440 int32_t CoreService::GetSimSpn(int32_t slotId, std::u16string &spn)
441 {
442 TELEPHONY_LOGD("CoreService::GetSimSpn(), slotId = %{public}d", slotId);
443 if (simManager_ == nullptr) {
444 TELEPHONY_LOGE("simManager_ is null");
445 return TELEPHONY_ERR_LOCAL_PTR_NULL;
446 }
447 return simManager_->GetSimSpn(slotId, spn);
448 }
449
GetSimIccId(int32_t slotId,std::u16string & iccId)450 int32_t CoreService::GetSimIccId(int32_t slotId, std::u16string &iccId)
451 {
452 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
453 TELEPHONY_LOGE("Non-system applications use system APIs!");
454 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
455 }
456 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
457 TELEPHONY_LOGE("permission denied!");
458 return TELEPHONY_ERR_PERMISSION_ERR;
459 }
460 TELEPHONY_LOGD("CoreService::GetSimIccId(), slotId = %{public}d", slotId);
461 if (simManager_ == nullptr) {
462 TELEPHONY_LOGE("simManager_ is null");
463 return TELEPHONY_ERR_LOCAL_PTR_NULL;
464 }
465 return simManager_->GetSimIccId(slotId, iccId);
466 }
467
GetSimOperatorNumeric(int32_t slotId,std::u16string & operatorNumeric)468 int32_t CoreService::GetSimOperatorNumeric(int32_t slotId, std::u16string &operatorNumeric)
469 {
470 TELEPHONY_LOGD("CoreService::GetSimOperatorNumeric(), slotId = %{public}d", slotId);
471 if (simManager_ == nullptr) {
472 TELEPHONY_LOGE("simManager_ is null");
473 return TELEPHONY_ERR_LOCAL_PTR_NULL;
474 }
475 return simManager_->GetSimOperatorNumeric(slotId, operatorNumeric);
476 }
477
GetIMSI(int32_t slotId,std::u16string & imsi)478 int32_t CoreService::GetIMSI(int32_t slotId, std::u16string &imsi)
479 {
480 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
481 TELEPHONY_LOGE("Non-system applications use system APIs!");
482 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
483 }
484 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
485 TELEPHONY_LOGE("permission denied!");
486 return TELEPHONY_ERR_PERMISSION_ERR;
487 }
488 TELEPHONY_LOGD("CoreService::GetIMSI(), slotId = %{public}d", slotId);
489 if (simManager_ == nullptr) {
490 TELEPHONY_LOGE("simManager_ is null");
491 return TELEPHONY_ERR_LOCAL_PTR_NULL;
492 }
493 return simManager_->GetIMSI(slotId, imsi);
494 }
495
IsCTSimCard(int32_t slotId,bool & isCTSimCard)496 int32_t CoreService::IsCTSimCard(int32_t slotId, bool &isCTSimCard)
497 {
498 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
499 TELEPHONY_LOGE("Non-system applications use system APIs!");
500 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
501 }
502 TELEPHONY_LOGD("CoreService::IsCTSimCard(), slotId = %{public}d", slotId);
503 if (simManager_ == nullptr) {
504 TELEPHONY_LOGE("simManager_ is null");
505 return TELEPHONY_ERR_LOCAL_PTR_NULL;
506 }
507 return simManager_->IsCTSimCard(slotId, isCTSimCard);
508 }
509
IsSimActive(int32_t slotId)510 bool CoreService::IsSimActive(int32_t slotId)
511 {
512 TELEPHONY_LOGD("CoreService::IsSimActive(), slotId = %{public}d", slotId);
513 if (simManager_ == nullptr) {
514 TELEPHONY_LOGE("simManager_ is null");
515 return false;
516 }
517 return simManager_->IsSimActive(slotId);
518 }
519
GetSlotId(int32_t simId)520 int32_t CoreService::GetSlotId(int32_t simId)
521 {
522 TELEPHONY_LOGD("CoreService::GetSlotId(), simId = %{public}d", simId);
523 if (simManager_ == nullptr) {
524 TELEPHONY_LOGE("CoreService::GetSlotId(), simManager_ is nullptr!");
525 return TELEPHONY_ERR_LOCAL_PTR_NULL;
526 }
527 return simManager_->GetSlotId(simId);
528 }
529
GetSimId(int32_t slotId)530 int32_t CoreService::GetSimId(int32_t slotId)
531 {
532 TELEPHONY_LOGD("CoreService::GetSimId(), slotId = %{public}d", slotId);
533 if (simManager_ == nullptr) {
534 TELEPHONY_LOGE("CoreService::GetSimId(), simManager_ is nullptr!");
535 return TELEPHONY_ERROR;
536 }
537 return simManager_->GetSimId(slotId);
538 }
539
GetNetworkSearchInformation(int32_t slotId,const sptr<INetworkSearchCallback> & callback)540 int32_t CoreService::GetNetworkSearchInformation(int32_t slotId, const sptr<INetworkSearchCallback> &callback)
541 {
542 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
543 TELEPHONY_LOGE("Non-system applications use system APIs!");
544 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
545 }
546 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
547 TELEPHONY_LOGE("permission denied!");
548 return TELEPHONY_ERR_PERMISSION_ERR;
549 }
550 if (networkSearchManager_ == nullptr) {
551 TELEPHONY_LOGE("networkSearchManager_ is null");
552 return TELEPHONY_ERR_LOCAL_PTR_NULL;
553 }
554 return networkSearchManager_->GetNetworkSearchInformation(slotId, callback);
555 }
556
GetNetworkSelectionMode(int32_t slotId,const sptr<INetworkSearchCallback> & callback)557 int32_t CoreService::GetNetworkSelectionMode(int32_t slotId, const sptr<INetworkSearchCallback> &callback)
558 {
559 if (networkSearchManager_ == nullptr) {
560 TELEPHONY_LOGE("networkSearchManager_ is null");
561 return TELEPHONY_ERR_LOCAL_PTR_NULL;
562 }
563 return networkSearchManager_->GetNetworkSelectionMode(slotId, callback);
564 }
565
GetLocaleFromDefaultSim()566 std::u16string CoreService::GetLocaleFromDefaultSim()
567 {
568 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
569 TELEPHONY_LOGE("CoreService::GetLocaleFromDefaultSim, Permission denied!");
570 return std::u16string();
571 }
572 TELEPHONY_LOGD("CoreService::GetLocaleFromDefaultSim()");
573 if (simManager_ == nullptr) {
574 TELEPHONY_LOGE("simManager_ is null");
575 return std::u16string();
576 }
577 int32_t slotId = INVALID_VALUE;
578 simManager_->GetPrimarySlotId(slotId);
579 if (slotId < DEFAULT_SIM_SLOT_ID) {
580 slotId = DEFAULT_SIM_SLOT_ID;
581 }
582 return simManager_->GetLocaleFromDefaultSim(slotId);
583 }
584
GetSimGid1(int32_t slotId,std::u16string & gid1)585 int32_t CoreService::GetSimGid1(int32_t slotId, std::u16string &gid1)
586 {
587 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
588 TELEPHONY_LOGE("Non-system applications use system APIs!");
589 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
590 }
591 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
592 TELEPHONY_LOGE("CoreService::GetSimGid1, Permission denied!");
593 return TELEPHONY_ERR_PERMISSION_ERR;
594 }
595 TELEPHONY_LOGD("CoreService::GetSimGid1(), slotId = %{public}d", slotId);
596 if (simManager_ == nullptr) {
597 TELEPHONY_LOGE("simManager_ is null");
598 return TELEPHONY_ERR_LOCAL_PTR_NULL;
599 }
600 return simManager_->GetSimGid1(slotId, gid1);
601 }
602
GetSimGid2(int32_t slotId)603 std::u16string CoreService::GetSimGid2(int32_t slotId)
604 {
605 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
606 TELEPHONY_LOGE("CoreService::GetSimGid2, Permission denied!");
607 return std::u16string();
608 }
609 TELEPHONY_LOGD("CoreService::GetSimGid2(), slotId = %{public}d", slotId);
610 if (simManager_ == nullptr) {
611 TELEPHONY_LOGE("simManager_ is null");
612 return std::u16string();
613 }
614 return simManager_->GetSimGid2(slotId);
615 }
616
GetSimEons(int32_t slotId,const std::string & plmn,int32_t lac,bool longNameRequired)617 std::u16string CoreService::GetSimEons(int32_t slotId, const std::string &plmn, int32_t lac, bool longNameRequired)
618 {
619 TELEPHONY_LOGD("CoreService::GetSimEons(), slotId = %{public}d", slotId);
620 if (simManager_ == nullptr) {
621 TELEPHONY_LOGE("CoreService::GetSimEons, Permission denied!");
622 return std::u16string();
623 }
624 return simManager_->GetSimEons(slotId, plmn, lac, longNameRequired);
625 }
626
GetSimAccountInfo(int32_t slotId,IccAccountInfo & info)627 int32_t CoreService::GetSimAccountInfo(int32_t slotId, IccAccountInfo &info)
628 {
629 bool denied = false;
630 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
631 TELEPHONY_LOGE("permission denied!");
632 denied = true;
633 }
634 TELEPHONY_LOGD("CoreService::GetSimAccountInfo(), slotId = %{public}d", slotId);
635 if (simManager_ == nullptr) {
636 TELEPHONY_LOGE("simManager_ is null");
637 return TELEPHONY_ERR_LOCAL_PTR_NULL;
638 }
639 return simManager_->GetSimAccountInfo(slotId, denied, info);
640 }
641
SetDefaultVoiceSlotId(int32_t slotId)642 int32_t CoreService::SetDefaultVoiceSlotId(int32_t slotId)
643 {
644 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
645 TELEPHONY_LOGE("Non-system applications use system APIs!");
646 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
647 }
648 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
649 TELEPHONY_LOGE("permission denied!");
650 return TELEPHONY_ERR_PERMISSION_ERR;
651 }
652 TELEPHONY_LOGD("CoreService::SetDefaultVoiceSlotId(), slotId = %{public}d", slotId);
653 if (simManager_ == nullptr) {
654 TELEPHONY_LOGE("simManager_ is null");
655 return TELEPHONY_ERR_LOCAL_PTR_NULL;
656 }
657 return simManager_->SetDefaultVoiceSlotId(slotId);
658 }
659
GetDefaultVoiceSlotId()660 int32_t CoreService::GetDefaultVoiceSlotId()
661 {
662 TELEPHONY_LOGD("CoreService::GetDefaultVoiceSlotId()");
663 if (simManager_ == nullptr) {
664 TELEPHONY_LOGE("simManager_ is null");
665 return TELEPHONY_ERROR;
666 }
667 return simManager_->GetDefaultVoiceSlotId();
668 }
669
GetDefaultVoiceSimId(int32_t & simId)670 int32_t CoreService::GetDefaultVoiceSimId(int32_t &simId)
671 {
672 TELEPHONY_LOGD("start");
673 if (simManager_ == nullptr) {
674 TELEPHONY_LOGE("simManager_ is null");
675 return TELEPHONY_ERR_LOCAL_PTR_NULL;
676 }
677 return simManager_->GetDefaultVoiceSimId(simId);
678 }
679
SetPrimarySlotId(int32_t slotId)680 int32_t CoreService::SetPrimarySlotId(int32_t slotId)
681 {
682 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
683 TELEPHONY_LOGE("Non-system applications use system APIs!");
684 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
685 }
686 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
687 TELEPHONY_LOGE("permission denied!");
688 return TELEPHONY_ERR_PERMISSION_ERR;
689 }
690 TELEPHONY_LOGD("CoreService::SetPrimarySlotId(), slotId = %{public}d", slotId);
691 if (simManager_ == nullptr) {
692 TELEPHONY_LOGE("simManager_ is null");
693 return TELEPHONY_ERR_LOCAL_PTR_NULL;
694 }
695 bool hasSim = false;
696 simManager_->HasSimCard(slotId, hasSim);
697 if (!hasSim) {
698 TELEPHONY_LOGE("has no sim");
699 return TELEPHONY_ERR_NO_SIM_CARD;
700 }
701 if (!simManager_->IsSimActive(slotId)) {
702 TELEPHONY_LOGE("sim is not active");
703 return TELEPHONY_ERR_SLOTID_INVALID;
704 }
705 return simManager_->SetPrimarySlotId(slotId);
706 }
707
GetPrimarySlotId(int32_t & slotId)708 int32_t CoreService::GetPrimarySlotId(int32_t &slotId)
709 {
710 TELEPHONY_LOGD("CoreService::GetPrimarySlotId()");
711 if (simManager_ == nullptr) {
712 TELEPHONY_LOGE("simManager_ is null");
713 return TELEPHONY_ERR_LOCAL_PTR_NULL;
714 }
715 return simManager_->GetPrimarySlotId(slotId);
716 }
717
SetShowNumber(int32_t slotId,const std::u16string & number)718 int32_t CoreService::SetShowNumber(int32_t slotId, const std::u16string &number)
719 {
720 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
721 TELEPHONY_LOGE("Non-system applications use system APIs!");
722 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
723 }
724 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
725 TELEPHONY_LOGE("permission denied!");
726 return TELEPHONY_ERR_PERMISSION_ERR;
727 }
728 TELEPHONY_LOGD("CoreService::SetShowNumber(), slotId = %{public}d", slotId);
729 if (simManager_ == nullptr) {
730 TELEPHONY_LOGE("simManager_ is null");
731 return TELEPHONY_ERR_LOCAL_PTR_NULL;
732 }
733 return simManager_->SetShowNumber(slotId, number);
734 }
735
GetShowNumber(int32_t slotId,std::u16string & showNumber)736 int32_t CoreService::GetShowNumber(int32_t slotId, std::u16string &showNumber)
737 {
738 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
739 TELEPHONY_LOGE("Non-system applications use system APIs!");
740 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
741 }
742 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
743 TELEPHONY_LOGE("permission denied!");
744 return TELEPHONY_ERR_PERMISSION_ERR;
745 }
746 TELEPHONY_LOGD("CoreService::GetShowNumber(), slotId = %{public}d", slotId);
747 if (simManager_ == nullptr) {
748 TELEPHONY_LOGE("simManager_ is null");
749 return TELEPHONY_ERR_LOCAL_PTR_NULL;
750 }
751 return simManager_->GetShowNumber(slotId, showNumber);
752 }
753
SetShowName(int32_t slotId,const std::u16string & name)754 int32_t CoreService::SetShowName(int32_t slotId, const std::u16string &name)
755 {
756 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
757 TELEPHONY_LOGE("Non-system applications use system APIs!");
758 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
759 }
760 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
761 TELEPHONY_LOGE("permission denied!");
762 return TELEPHONY_ERR_PERMISSION_ERR;
763 }
764 TELEPHONY_LOGD("CoreService::SetShowName(), slotId = %{public}d", slotId);
765 if (simManager_ == nullptr) {
766 TELEPHONY_LOGE("simManager_ is null");
767 return TELEPHONY_ERR_LOCAL_PTR_NULL;
768 }
769 return simManager_->SetShowName(slotId, name);
770 }
771
GetShowName(int32_t slotId,std::u16string & showName)772 int32_t CoreService::GetShowName(int32_t slotId, std::u16string &showName)
773 {
774 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
775 TELEPHONY_LOGE("Non-system applications use system APIs!");
776 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
777 }
778 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
779 TELEPHONY_LOGE("permission denied!");
780 return TELEPHONY_ERR_PERMISSION_ERR;
781 }
782 TELEPHONY_LOGD("CoreService::GetShowName(), slotId = %{public}d", slotId);
783 if (simManager_ == nullptr) {
784 TELEPHONY_LOGE("simManager_ is null");
785 return TELEPHONY_ERR_LOCAL_PTR_NULL;
786 }
787 return simManager_->GetShowName(slotId, showName);
788 }
789
GetActiveSimAccountInfoList(std::vector<IccAccountInfo> & iccAccountInfoList)790 int32_t CoreService::GetActiveSimAccountInfoList(std::vector<IccAccountInfo> &iccAccountInfoList)
791 {
792 bool denied = false;
793 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
794 TELEPHONY_LOGE("permission denied!");
795 denied = true;
796 }
797 TELEPHONY_LOGD("CoreService::GetActiveSimAccountInfoList");
798 if (simManager_ == nullptr) {
799 TELEPHONY_LOGE("simManager_ is null");
800 return TELEPHONY_ERR_LOCAL_PTR_NULL;
801 }
802 return simManager_->GetActiveSimAccountInfoList(denied, iccAccountInfoList);
803 }
804
GetOperatorConfigs(int32_t slotId,OperatorConfig & poc)805 int32_t CoreService::GetOperatorConfigs(int32_t slotId, OperatorConfig &poc)
806 {
807 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
808 TELEPHONY_LOGE("Non-system applications use system APIs!");
809 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
810 }
811 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
812 TELEPHONY_LOGE("permission denied!");
813 return TELEPHONY_ERR_PERMISSION_ERR;
814 }
815 TELEPHONY_LOGD("CoreService::GetOperatorConfigs");
816 if (simManager_ == nullptr) {
817 TELEPHONY_LOGE("simManager_ is null");
818 return TELEPHONY_ERR_LOCAL_PTR_NULL;
819 }
820 return simManager_->GetOperatorConfigs(slotId, poc);
821 }
822
UnlockPin(const int32_t slotId,const std::u16string & pin,LockStatusResponse & response)823 int32_t CoreService::UnlockPin(const int32_t slotId, const std::u16string &pin, LockStatusResponse &response)
824 {
825 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
826 TELEPHONY_LOGE("Non-system applications use system APIs!");
827 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
828 }
829 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
830 TELEPHONY_LOGE("permission denied!");
831 return TELEPHONY_ERR_PERMISSION_ERR;
832 }
833 TELEPHONY_LOGD("CoreService::UnlockPin(), pinLen = %{public}lu, slotId = %{public}d",
834 static_cast<unsigned long>(pin.length()), slotId);
835 if (simManager_ == nullptr) {
836 TELEPHONY_LOGE("simManager_ is null");
837 return TELEPHONY_ERR_LOCAL_PTR_NULL;
838 }
839 return simManager_->UnlockPin(slotId, Str16ToStr8(pin), response);
840 }
841
UnlockPuk(const int slotId,const std::u16string & newPin,const std::u16string & puk,LockStatusResponse & response)842 int32_t CoreService::UnlockPuk(
843 const int slotId, const std::u16string &newPin, const std::u16string &puk, LockStatusResponse &response)
844 {
845 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
846 TELEPHONY_LOGE("Non-system applications use system APIs!");
847 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
848 }
849 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
850 TELEPHONY_LOGE("permission denied!");
851 return TELEPHONY_ERR_PERMISSION_ERR;
852 }
853 TELEPHONY_LOGI("CoreService::UnlockPuk(), newPinLen = %{public}lu, pukLen = %{public}lu, slotId = %{public}d",
854 static_cast<unsigned long>(newPin.length()), static_cast<unsigned long>(puk.length()), slotId);
855 if (simManager_ == nullptr) {
856 TELEPHONY_LOGE("simManager_ is null");
857 return TELEPHONY_ERR_LOCAL_PTR_NULL;
858 }
859 return simManager_->UnlockPuk(slotId, Str16ToStr8(newPin), Str16ToStr8(puk), response);
860 }
861
AlterPin(const int slotId,const std::u16string & newPin,const std::u16string & oldPin,LockStatusResponse & response)862 int32_t CoreService::AlterPin(
863 const int slotId, const std::u16string &newPin, const std::u16string &oldPin, LockStatusResponse &response)
864 {
865 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
866 TELEPHONY_LOGE("Non-system applications use system APIs!");
867 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
868 }
869 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
870 TELEPHONY_LOGE("permission denied!");
871 return TELEPHONY_ERR_PERMISSION_ERR;
872 }
873 TELEPHONY_LOGI("CoreService::AlterPin(), newPinLen = %{public}lu, oldPinLen = %{public}lu, slotId = %{public}d",
874 static_cast<unsigned long>(newPin.length()), static_cast<unsigned long>(oldPin.length()), slotId);
875 if (simManager_ == nullptr) {
876 TELEPHONY_LOGE("simManager_ is null");
877 return TELEPHONY_ERR_LOCAL_PTR_NULL;
878 }
879 return simManager_->AlterPin(slotId, Str16ToStr8(newPin), Str16ToStr8(oldPin), response);
880 }
881
UnlockPin2(const int32_t slotId,const std::u16string & pin2,LockStatusResponse & response)882 int32_t CoreService::UnlockPin2(const int32_t slotId, const std::u16string &pin2, LockStatusResponse &response)
883 {
884 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
885 TELEPHONY_LOGE("Non-system applications use system APIs!");
886 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
887 }
888 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
889 TELEPHONY_LOGE("permission denied!");
890 return TELEPHONY_ERR_PERMISSION_ERR;
891 }
892 TELEPHONY_LOGI("CoreService::UnlockPin2(), pin2Len = %{public}lu, slotId = %{public}d",
893 static_cast<unsigned long>(pin2.length()), slotId);
894 if (simManager_ == nullptr) {
895 TELEPHONY_LOGE("simManager_ is null");
896 return TELEPHONY_ERR_LOCAL_PTR_NULL;
897 }
898 return simManager_->UnlockPin2(slotId, Str16ToStr8(pin2), response);
899 }
900
UnlockPuk2(const int slotId,const std::u16string & newPin2,const std::u16string & puk2,LockStatusResponse & response)901 int32_t CoreService::UnlockPuk2(
902 const int slotId, const std::u16string &newPin2, const std::u16string &puk2, LockStatusResponse &response)
903 {
904 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
905 TELEPHONY_LOGE("Non-system applications use system APIs!");
906 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
907 }
908 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
909 TELEPHONY_LOGE("permission denied!");
910 return TELEPHONY_ERR_PERMISSION_ERR;
911 }
912 TELEPHONY_LOGI("CoreService::UnlockPuk2(), newPin2Len = %{public}lu, puk2Len = %{public}lu, slotId = %{public}d",
913 static_cast<unsigned long>(newPin2.length()), static_cast<unsigned long>(puk2.length()), slotId);
914 if (simManager_ == nullptr) {
915 TELEPHONY_LOGE("simManager_ is null");
916 return TELEPHONY_ERR_LOCAL_PTR_NULL;
917 }
918 return simManager_->UnlockPuk2(slotId, Str16ToStr8(newPin2), Str16ToStr8(puk2), response);
919 }
920
AlterPin2(const int slotId,const std::u16string & newPin2,const std::u16string & oldPin2,LockStatusResponse & response)921 int32_t CoreService::AlterPin2(
922 const int slotId, const std::u16string &newPin2, const std::u16string &oldPin2, LockStatusResponse &response)
923 {
924 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
925 TELEPHONY_LOGE("Non-system applications use system APIs!");
926 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
927 }
928 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
929 TELEPHONY_LOGE("permission denied!");
930 return TELEPHONY_ERR_PERMISSION_ERR;
931 }
932 TELEPHONY_LOGI("CoreService::AlterPin2(), newPin2Len = %{public}lu, oldPin2Len = %{public}lu, slotId = %{public}d",
933 static_cast<unsigned long>(newPin2.length()), static_cast<unsigned long>(oldPin2.length()), slotId);
934 if (simManager_ == nullptr) {
935 TELEPHONY_LOGE("simManager_ is null");
936 return TELEPHONY_ERR_LOCAL_PTR_NULL;
937 }
938 return simManager_->AlterPin2(slotId, Str16ToStr8(newPin2), Str16ToStr8(oldPin2), response);
939 }
940
SetLockState(int32_t slotId,const LockInfo & options,LockStatusResponse & response)941 int32_t CoreService::SetLockState(int32_t slotId, const LockInfo &options, LockStatusResponse &response)
942 {
943 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
944 TELEPHONY_LOGE("Non-system applications use system APIs!");
945 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
946 }
947 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
948 TELEPHONY_LOGE("permission denied!");
949 return TELEPHONY_ERR_PERMISSION_ERR;
950 }
951 std::u16string strPin = options.password;
952 TELEPHONY_LOGI(
953 "CoreService::SetLockState(),lockType = %{public}d, pinLen = %{public}lu, lockState = %{public}d, slotId "
954 "= "
955 "%{public}d",
956 options.lockType, static_cast<unsigned long>(strPin.length()), options.lockState, slotId);
957 if (simManager_ == nullptr) {
958 TELEPHONY_LOGE("simManager_ is null");
959 return TELEPHONY_ERR_LOCAL_PTR_NULL;
960 }
961 return simManager_->SetLockState(slotId, options, response);
962 }
963
GetLockState(int32_t slotId,LockType lockType,LockState & lockState)964 int32_t CoreService::GetLockState(int32_t slotId, LockType lockType, LockState &lockState)
965 {
966 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
967 TELEPHONY_LOGE("Non-system applications use system APIs!");
968 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
969 }
970 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
971 TELEPHONY_LOGE("CoreService::GetLockState, Permission denied!");
972 return TELEPHONY_ERR_PERMISSION_ERR;
973 }
974 TELEPHONY_LOGI("CoreService::GetLockState(), lockType = %{public}d, slotId = %{public}d", lockType, slotId);
975 if (simManager_ == nullptr) {
976 TELEPHONY_LOGE("simManager_ is null");
977 return TELEPHONY_ERR_LOCAL_PTR_NULL;
978 }
979 return simManager_->GetLockState(slotId, lockType, lockState);
980 }
981
RefreshSimState(int32_t slotId)982 int32_t CoreService::RefreshSimState(int32_t slotId)
983 {
984 TELEPHONY_LOGD("CoreService::RefreshSimState(), slotId = %{public}d", slotId);
985 if (simManager_ == nullptr) {
986 TELEPHONY_LOGE("simManager_ is null");
987 return TELEPHONY_ERROR;
988 }
989 return simManager_->RefreshSimState(slotId);
990 }
991
SetActiveSim(int32_t slotId,int32_t enable)992 int32_t CoreService::SetActiveSim(int32_t slotId, int32_t enable)
993 {
994 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
995 TELEPHONY_LOGE("Non-system applications use system APIs!");
996 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
997 }
998 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
999 TELEPHONY_LOGE("permission denied!");
1000 return TELEPHONY_ERR_PERMISSION_ERR;
1001 }
1002 TELEPHONY_LOGD("CoreService::SetActiveSim(), slotId = %{public}d", slotId);
1003 if (simManager_ == nullptr) {
1004 TELEPHONY_LOGE("simManager_ is null");
1005 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1006 }
1007 return simManager_->SetActiveSim(slotId, enable);
1008 }
1009
GetPreferredNetwork(int32_t slotId,const sptr<INetworkSearchCallback> & callback)1010 int32_t CoreService::GetPreferredNetwork(int32_t slotId, const sptr<INetworkSearchCallback> &callback)
1011 {
1012 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1013 TELEPHONY_LOGE("Non-system applications use system APIs!");
1014 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1015 }
1016 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
1017 TELEPHONY_LOGE("permission denied!");
1018 return TELEPHONY_ERR_PERMISSION_ERR;
1019 }
1020 if (networkSearchManager_ == nullptr) {
1021 TELEPHONY_LOGE("networkSearchManager_ is null");
1022 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1023 }
1024 return networkSearchManager_->GetPreferredNetwork(slotId, callback);
1025 }
1026
SetPreferredNetwork(int32_t slotId,int32_t networkMode,const sptr<INetworkSearchCallback> & callback)1027 int32_t CoreService::SetPreferredNetwork(
1028 int32_t slotId, int32_t networkMode, const sptr<INetworkSearchCallback> &callback)
1029 {
1030 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1031 TELEPHONY_LOGE("Non-system applications use system APIs!");
1032 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1033 }
1034 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
1035 TELEPHONY_LOGE("permission denied!");
1036 return TELEPHONY_ERR_PERMISSION_ERR;
1037 }
1038 if (networkSearchManager_ == nullptr) {
1039 TELEPHONY_LOGE("networkSearchManager_ is null");
1040 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1041 }
1042 return networkSearchManager_->SetPreferredNetwork(slotId, networkMode, callback);
1043 }
1044
GetNetworkCapability(int32_t slotId,int32_t networkCapabilityType,int32_t & networkCapabilityState)1045 int32_t CoreService::GetNetworkCapability(
1046 int32_t slotId, int32_t networkCapabilityType, int32_t &networkCapabilityState)
1047 {
1048 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1049 TELEPHONY_LOGE("Non-system applications use system APIs!");
1050 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1051 }
1052 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
1053 TELEPHONY_LOGE("permission denied!");
1054 return TELEPHONY_ERR_PERMISSION_ERR;
1055 }
1056 if (networkSearchManager_ == nullptr) {
1057 TELEPHONY_LOGE("networkSearchManager_ is null");
1058 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1059 }
1060 return networkSearchManager_->GetNetworkCapability(slotId, networkCapabilityType, networkCapabilityState);
1061 }
1062
SetNetworkCapability(int32_t slotId,int32_t networkCapabilityType,int32_t networkCapabilityState)1063 int32_t CoreService::SetNetworkCapability(int32_t slotId, int32_t networkCapabilityType, int32_t networkCapabilityState)
1064 {
1065 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1066 TELEPHONY_LOGE("Non-system applications use system APIs!");
1067 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1068 }
1069 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
1070 TELEPHONY_LOGE("permission denied!");
1071 return TELEPHONY_ERR_PERMISSION_ERR;
1072 }
1073 if (networkSearchManager_ == nullptr) {
1074 TELEPHONY_LOGE("networkSearchManager_ is null");
1075 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1076 }
1077 return networkSearchManager_->SetNetworkCapability(slotId, networkCapabilityType, networkCapabilityState);
1078 }
1079
GetSimTelephoneNumber(int32_t slotId,std::u16string & telephoneNumber)1080 int32_t CoreService::GetSimTelephoneNumber(int32_t slotId, std::u16string &telephoneNumber)
1081 {
1082 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1083 TELEPHONY_LOGE("Non-system applications use system APIs!");
1084 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1085 }
1086 if ((!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) &&
1087 (!TelephonyPermission::CheckPermission(Permission::GET_PHONE_NUMBERS))) {
1088 TELEPHONY_LOGE("permission denied!");
1089 return TELEPHONY_ERR_PERMISSION_ERR;
1090 }
1091 TELEPHONY_LOGD("CoreService::GetSimTelephoneNumber(), slotId = %{public}d", slotId);
1092 if (simManager_ == nullptr) {
1093 TELEPHONY_LOGE("simManager_ is null");
1094 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1095 }
1096 return simManager_->GetSimTelephoneNumber(slotId, telephoneNumber);
1097 }
1098
GetSimTeleNumberIdentifier(const int32_t slotId)1099 std::u16string CoreService::GetSimTeleNumberIdentifier(const int32_t slotId)
1100 {
1101 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
1102 TELEPHONY_LOGE("CoreService::GetSimTeleNumberIdentifier, Permission denied!");
1103 return std::u16string();
1104 }
1105 TELEPHONY_LOGD("CoreService::GetSimTeleNumberIdentifier(), slotId = %{public}d", slotId);
1106 if (simManager_ == nullptr) {
1107 TELEPHONY_LOGE("simManager_ is null");
1108 return std::u16string();
1109 }
1110 return simManager_->GetSimTeleNumberIdentifier(slotId);
1111 }
1112
GetVoiceMailIdentifier(int32_t slotId,std::u16string & voiceMailIdentifier)1113 int32_t CoreService::GetVoiceMailIdentifier(int32_t slotId, std::u16string &voiceMailIdentifier)
1114 {
1115 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1116 TELEPHONY_LOGE("Non-system applications use system APIs!");
1117 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1118 }
1119 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
1120 TELEPHONY_LOGE("permission denied!");
1121 return TELEPHONY_ERR_PERMISSION_ERR;
1122 }
1123 TELEPHONY_LOGD("CoreService::GetVoiceMailIdentifier(), slotId = %{public}d", slotId);
1124 if (simManager_ == nullptr) {
1125 TELEPHONY_LOGE("simManager_ is null");
1126 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1127 }
1128 return simManager_->GetVoiceMailIdentifier(slotId, voiceMailIdentifier);
1129 }
1130
GetVoiceMailNumber(int32_t slotId,std::u16string & voiceMailNumber)1131 int32_t CoreService::GetVoiceMailNumber(int32_t slotId, std::u16string &voiceMailNumber)
1132 {
1133 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1134 TELEPHONY_LOGE("Non-system applications use system APIs!");
1135 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1136 }
1137 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
1138 TELEPHONY_LOGE("permission denied!");
1139 return TELEPHONY_ERR_PERMISSION_ERR;
1140 }
1141 TELEPHONY_LOGD("CoreService::GetVoiceMailNumber(), slotId = %{public}d", slotId);
1142 if (simManager_ == nullptr) {
1143 TELEPHONY_LOGE("simManager_ is null");
1144 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1145 }
1146 return simManager_->GetVoiceMailNumber(slotId, voiceMailNumber);
1147 }
1148
GetVoiceMailCount(int32_t slotId,int32_t & voiceMailCount)1149 int32_t CoreService::GetVoiceMailCount(int32_t slotId, int32_t &voiceMailCount)
1150 {
1151 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1152 TELEPHONY_LOGE("Non-system applications use system APIs!");
1153 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1154 }
1155 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
1156 TELEPHONY_LOGE("permission denied!");
1157 return TELEPHONY_ERR_PERMISSION_ERR;
1158 }
1159 TELEPHONY_LOGI("CoreService::GetVoiceMailCount(), slotId = %{public}d", slotId);
1160 if (simManager_ == nullptr) {
1161 TELEPHONY_LOGE("simManager_ is null");
1162 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1163 }
1164 return simManager_->GetVoiceMailCount(slotId, voiceMailCount);
1165 }
1166
SetVoiceMailCount(int32_t slotId,int32_t voiceMailCount)1167 int32_t CoreService::SetVoiceMailCount(int32_t slotId, int32_t voiceMailCount)
1168 {
1169 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
1170 TELEPHONY_LOGE("permission denied!");
1171 return TELEPHONY_ERR_PERMISSION_ERR;
1172 }
1173 TELEPHONY_LOGI("CoreService::SetVoiceMailCount(), slotId = %{public}d", slotId);
1174 if (simManager_ == nullptr) {
1175 TELEPHONY_LOGE("simManager_ is null");
1176 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1177 }
1178 return simManager_->SetVoiceMailCount(slotId, voiceMailCount);
1179 }
1180
SetVoiceCallForwarding(int32_t slotId,bool enable,const std::string & number)1181 int32_t CoreService::SetVoiceCallForwarding(int32_t slotId, bool enable, const std::string &number)
1182 {
1183 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
1184 TELEPHONY_LOGE("permission denied!");
1185 return TELEPHONY_ERR_PERMISSION_ERR;
1186 }
1187 TELEPHONY_LOGI("CoreService::SetVoiceCallForwarding(), slotId = %{public}d", slotId);
1188 if (simManager_ == nullptr) {
1189 TELEPHONY_LOGE("simManager_ is null");
1190 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1191 }
1192 return simManager_->SetVoiceCallForwarding(slotId, enable, number);
1193 }
1194
QueryIccDiallingNumbers(int slotId,int type,std::vector<std::shared_ptr<DiallingNumbersInfo>> & reslut)1195 int32_t CoreService::QueryIccDiallingNumbers(
1196 int slotId, int type, std::vector<std::shared_ptr<DiallingNumbersInfo>> &reslut)
1197 {
1198 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1199 TELEPHONY_LOGE("Non-system applications use system APIs!");
1200 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1201 }
1202 if (!TelephonyPermission::CheckPermission(Permission::READ_CONTACTS)) {
1203 TELEPHONY_LOGE("permission denied!");
1204 return TELEPHONY_ERR_PERMISSION_ERR;
1205 }
1206 TELEPHONY_LOGD("CoreService::QueryIccDiallingNumbers");
1207 if (simManager_ == nullptr) {
1208 TELEPHONY_LOGE("simManager_ is null");
1209 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1210 }
1211 return simManager_->QueryIccDiallingNumbers(slotId, type, reslut);
1212 }
1213
AddIccDiallingNumbers(int slotId,int type,const std::shared_ptr<DiallingNumbersInfo> & diallingNumber)1214 int32_t CoreService::AddIccDiallingNumbers(
1215 int slotId, int type, const std::shared_ptr<DiallingNumbersInfo> &diallingNumber)
1216 {
1217 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1218 TELEPHONY_LOGE("Non-system applications use system APIs!");
1219 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1220 }
1221 if (!TelephonyPermission::CheckPermission(Permission::WRITE_CONTACTS)) {
1222 TELEPHONY_LOGE("permission denied!");
1223 return TELEPHONY_ERR_PERMISSION_ERR;
1224 }
1225 TELEPHONY_LOGD("CoreService::AddIccDiallingNumbers");
1226 if (simManager_ == nullptr) {
1227 TELEPHONY_LOGE("simManager_ is null");
1228 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1229 }
1230 return simManager_->AddIccDiallingNumbers(slotId, type, diallingNumber);
1231 }
1232
DelIccDiallingNumbers(int slotId,int type,const std::shared_ptr<DiallingNumbersInfo> & diallingNumber)1233 int32_t CoreService::DelIccDiallingNumbers(
1234 int slotId, int type, const std::shared_ptr<DiallingNumbersInfo> &diallingNumber)
1235 {
1236 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1237 TELEPHONY_LOGE("Non-system applications use system APIs!");
1238 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1239 }
1240 if (!TelephonyPermission::CheckPermission(Permission::WRITE_CONTACTS)) {
1241 TELEPHONY_LOGE("permission denied!");
1242 return TELEPHONY_ERR_PERMISSION_ERR;
1243 }
1244 TELEPHONY_LOGD("CoreService::DelIccDiallingNumbers");
1245 if (simManager_ == nullptr) {
1246 TELEPHONY_LOGE("simManager_ is null");
1247 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1248 }
1249 return simManager_->DelIccDiallingNumbers(slotId, type, diallingNumber);
1250 }
1251
UpdateIccDiallingNumbers(int slotId,int type,const std::shared_ptr<DiallingNumbersInfo> & diallingNumber)1252 int32_t CoreService::UpdateIccDiallingNumbers(
1253 int slotId, int type, const std::shared_ptr<DiallingNumbersInfo> &diallingNumber)
1254 {
1255 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1256 TELEPHONY_LOGE("Non-system applications use system APIs!");
1257 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1258 }
1259 if (!TelephonyPermission::CheckPermission(Permission::WRITE_CONTACTS)) {
1260 TELEPHONY_LOGE("permission denied!");
1261 return TELEPHONY_ERR_PERMISSION_ERR;
1262 }
1263 TELEPHONY_LOGD("CoreService::UpdateIccDiallingNumbers");
1264 if (simManager_ == nullptr) {
1265 TELEPHONY_LOGE("simManager_ is null");
1266 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1267 }
1268 return simManager_->UpdateIccDiallingNumbers(slotId, type, diallingNumber);
1269 }
1270
SetVoiceMailInfo(const int32_t slotId,const std::u16string & mailName,const std::u16string & mailNumber)1271 int32_t CoreService::SetVoiceMailInfo(
1272 const int32_t slotId, const std::u16string &mailName, const std::u16string &mailNumber)
1273 {
1274 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1275 TELEPHONY_LOGE("Non-system applications use system APIs!");
1276 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1277 }
1278 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
1279 TELEPHONY_LOGE("permission denied!");
1280 return TELEPHONY_ERR_PERMISSION_ERR;
1281 }
1282 TELEPHONY_LOGD("CoreService::SetVoiceMailInfo(), slotId = %{public}d", slotId);
1283 if (simManager_ == nullptr) {
1284 TELEPHONY_LOGE("simManager_ is null");
1285 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1286 }
1287 return simManager_->SetVoiceMailInfo(slotId, mailName, mailNumber);
1288 }
1289
GetMaxSimCount()1290 int32_t CoreService::GetMaxSimCount()
1291 {
1292 return SIM_SLOT_COUNT;
1293 }
1294
GetOpKey(int32_t slotId,std::u16string & opkey)1295 int32_t CoreService::GetOpKey(int32_t slotId, std::u16string &opkey)
1296 {
1297 TELEPHONY_LOGD("CoreService::GetOpKey(), slotId = %{public}d", slotId);
1298 if (simManager_ == nullptr) {
1299 TELEPHONY_LOGE("simManager_ is null");
1300 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1301 }
1302 return simManager_->GetOpKey(slotId, opkey);
1303 }
1304
GetOpKeyExt(int32_t slotId,std::u16string & opkeyExt)1305 int32_t CoreService::GetOpKeyExt(int32_t slotId, std::u16string &opkeyExt)
1306 {
1307 TELEPHONY_LOGD("CoreService::GetOpKeyExt(), slotId = %{public}d", slotId);
1308 if (simManager_ == nullptr) {
1309 TELEPHONY_LOGE("simManager_ is null");
1310 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1311 }
1312 return simManager_->GetOpKeyExt(slotId, opkeyExt);
1313 }
1314
GetOpName(int32_t slotId,std::u16string & opname)1315 int32_t CoreService::GetOpName(int32_t slotId, std::u16string &opname)
1316 {
1317 TELEPHONY_LOGD("CoreService::GetOpName(), slotId = %{public}d", slotId);
1318 if (simManager_ == nullptr) {
1319 TELEPHONY_LOGE("simManager_ is null");
1320 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1321 }
1322 return simManager_->GetOpName(slotId, opname);
1323 }
1324
SendEnvelopeCmd(int32_t slotId,const std::string & cmd)1325 int32_t CoreService::SendEnvelopeCmd(int32_t slotId, const std::string &cmd)
1326 {
1327 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1328 TELEPHONY_LOGE("Non-system applications use system APIs!");
1329 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1330 }
1331 if (simManager_ == nullptr) {
1332 TELEPHONY_LOGE("CoreService::SendEnvelopeCmd simManager_ is nullptr");
1333 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1334 }
1335 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
1336 TELEPHONY_LOGE("CoreService::SendEnvelopeCmd, Permission denied!");
1337 return TELEPHONY_ERR_PERMISSION_ERR;
1338 }
1339 TELEPHONY_LOGD("CoreService::SendEnvelopeCmd(), slotId = %{public}d", slotId);
1340 return simManager_->SendEnvelopeCmd(slotId, cmd);
1341 }
1342
SendTerminalResponseCmd(int32_t slotId,const std::string & cmd)1343 int32_t CoreService::SendTerminalResponseCmd(int32_t slotId, const std::string &cmd)
1344 {
1345 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1346 TELEPHONY_LOGE("Non-system applications use system APIs!");
1347 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1348 }
1349 if (simManager_ == nullptr) {
1350 TELEPHONY_LOGE("CoreService::SendEnvelopeCmd simManager_ is nullptr");
1351 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1352 }
1353 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
1354 TELEPHONY_LOGE("CoreService::SendTerminalResponseCmd, Permission denied!");
1355 return TELEPHONY_ERR_PERMISSION_ERR;
1356 }
1357 TELEPHONY_LOGD("CoreService::SendTerminalResponseCmd(), slotId = %{public}d", slotId);
1358 return simManager_->SendTerminalResponseCmd(slotId, cmd);
1359 }
1360
SendCallSetupRequestResult(int32_t slotId,bool accept)1361 int32_t CoreService::SendCallSetupRequestResult(int32_t slotId, bool accept)
1362 {
1363 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1364 TELEPHONY_LOGE("Non-system applications use system APIs!");
1365 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1366 }
1367 if (simManager_ == nullptr) {
1368 TELEPHONY_LOGE("CoreService::SendEnvelopeCmd simManager_ is nullptr");
1369 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1370 }
1371 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
1372 TELEPHONY_LOGE("CoreService::SendCallSetupRequestResult, Permission denied!");
1373 return TELEPHONY_ERR_PERMISSION_ERR;
1374 }
1375 TELEPHONY_LOGD("CoreService::SendCallSetupRequestResult(), slotId = %{public}d", slotId);
1376 return simManager_->SendCallSetupRequestResult(slotId, accept);
1377 }
1378
UnlockSimLock(int32_t slotId,const PersoLockInfo & lockInfo,LockStatusResponse & response)1379 int32_t CoreService::UnlockSimLock(int32_t slotId, const PersoLockInfo &lockInfo, LockStatusResponse &response)
1380 {
1381 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1382 TELEPHONY_LOGE("Non-system applications use system APIs!");
1383 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1384 }
1385 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
1386 TELEPHONY_LOGE("permission denied!");
1387 return TELEPHONY_ERR_PERMISSION_ERR;
1388 }
1389 TELEPHONY_LOGI(
1390 "CoreService::UnlockSimLock(), lockType = %{public}d, slotId = %{public}d", lockInfo.lockType, slotId);
1391 if (simManager_ == nullptr) {
1392 TELEPHONY_LOGE("simManager_ is null");
1393 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1394 }
1395 return simManager_->UnlockSimLock(slotId, lockInfo, response);
1396 }
1397
GetImsRegStatus(int32_t slotId,ImsServiceType imsSrvType,ImsRegInfo & info)1398 int32_t CoreService::GetImsRegStatus(int32_t slotId, ImsServiceType imsSrvType, ImsRegInfo &info)
1399 {
1400 TELEPHONY_LOGI("CoreService::GetImsRegStatus --> slotId:%{public}d, imsSrvType:%{public}d", slotId, imsSrvType);
1401 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1402 TELEPHONY_LOGE("Non-system applications use system APIs!");
1403 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1404 }
1405 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
1406 TELEPHONY_LOGE("Failed because no permission:GET_TELEPHONY_STATE");
1407 return TELEPHONY_ERR_PERMISSION_ERR;
1408 }
1409 if (networkSearchManager_ == nullptr) {
1410 TELEPHONY_LOGE("failed! network search manager is nullptr!");
1411 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1412 }
1413 return networkSearchManager_->GetImsRegStatus(slotId, imsSrvType, info);
1414 }
1415
GetCellInfoList(int32_t slotId,std::vector<sptr<CellInformation>> & cellInfo)1416 int32_t CoreService::GetCellInfoList(int32_t slotId, std::vector<sptr<CellInformation>> &cellInfo)
1417 {
1418 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1419 TELEPHONY_LOGE("Non-system applications use system APIs!");
1420 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1421 }
1422 if (!TelephonyPermission::CheckPermission(Permission::CELL_LOCATION)) {
1423 return TELEPHONY_ERR_PERMISSION_ERR;
1424 }
1425 if (networkSearchManager_ == nullptr) {
1426 TELEPHONY_LOGE("networkSearchManager_ is null");
1427 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1428 }
1429 return networkSearchManager_->GetCellInfoList(slotId, cellInfo);
1430 }
1431
SendUpdateCellLocationRequest(int32_t slotId)1432 int32_t CoreService::SendUpdateCellLocationRequest(int32_t slotId)
1433 {
1434 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1435 TELEPHONY_LOGE("Non-system applications use system APIs!");
1436 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1437 }
1438 if (!TelephonyPermission::CheckPermission(Permission::CELL_LOCATION)) {
1439 TELEPHONY_LOGE("CoreService::SendUpdateCellLocationRequest, Permission denied!");
1440 return TELEPHONY_ERR_PERMISSION_ERR;
1441 }
1442 if (networkSearchManager_ == nullptr) {
1443 TELEPHONY_LOGE("networkSearchManager_ is null");
1444 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1445 }
1446 return networkSearchManager_->SendUpdateCellLocationRequest(slotId);
1447 }
1448
HasOperatorPrivileges(const int32_t slotId,bool & hasOperatorPrivileges)1449 int32_t CoreService::HasOperatorPrivileges(const int32_t slotId, bool &hasOperatorPrivileges)
1450 {
1451 TELEPHONY_LOGD("CoreService::HasOperatorPrivileges(), slotId = %{public}d", slotId);
1452 if (simManager_ == nullptr) {
1453 TELEPHONY_LOGE("simManager_ is null");
1454 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1455 }
1456 return simManager_->HasOperatorPrivileges(slotId, hasOperatorPrivileges);
1457 }
1458
SimAuthentication(int32_t slotId,AuthType authType,const std::string & authData,SimAuthenticationResponse & response)1459 int32_t CoreService::SimAuthentication(
1460 int32_t slotId, AuthType authType, const std::string &authData, SimAuthenticationResponse &response)
1461 {
1462 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
1463 TELEPHONY_LOGE("Failed because no permission:GET_TELEPHONY_STATE");
1464 return TELEPHONY_ERR_PERMISSION_ERR;
1465 }
1466 TELEPHONY_LOGD("CoreService::SimAuthentication(), slotId = %{public}d", slotId);
1467 if (simManager_ == nullptr) {
1468 TELEPHONY_LOGE("simManager_ is null");
1469 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1470 }
1471 return simManager_->SimAuthentication(slotId, authType, authData, response);
1472 }
1473
RegisterImsRegInfoCallback(int32_t slotId,ImsServiceType imsSrvType,const sptr<ImsRegInfoCallback> & callback)1474 int32_t CoreService::RegisterImsRegInfoCallback(
1475 int32_t slotId, ImsServiceType imsSrvType, const sptr<ImsRegInfoCallback> &callback)
1476 {
1477 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1478 TELEPHONY_LOGE("Non-system applications use system APIs!");
1479 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1480 }
1481 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
1482 TELEPHONY_LOGE("Failed because no permission:GET_TELEPHONY_STATE");
1483 return TELEPHONY_ERR_PERMISSION_ERR;
1484 }
1485 if (networkSearchManager_ == nullptr) {
1486 TELEPHONY_LOGE("failed! network search manager is nullptr!");
1487 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1488 }
1489 return networkSearchManager_->RegisterImsRegInfoCallback(slotId, imsSrvType, GetTokenID(), callback);
1490 }
1491
UnregisterImsRegInfoCallback(int32_t slotId,ImsServiceType imsSrvType)1492 int32_t CoreService::UnregisterImsRegInfoCallback(int32_t slotId, ImsServiceType imsSrvType)
1493 {
1494 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1495 TELEPHONY_LOGE("Non-system applications use system APIs!");
1496 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1497 }
1498 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
1499 TELEPHONY_LOGE("Failed because no permission:GET_TELEPHONY_STATE");
1500 return TELEPHONY_ERR_PERMISSION_ERR;
1501 }
1502 if (networkSearchManager_ == nullptr) {
1503 TELEPHONY_LOGE("failed! network search manager is nullptr!");
1504 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1505 }
1506 return networkSearchManager_->UnregisterImsRegInfoCallback(slotId, imsSrvType, GetTokenID());
1507 }
1508
GetBasebandVersion(int32_t slotId,std::string & version)1509 int32_t CoreService::GetBasebandVersion(int32_t slotId, std::string &version)
1510 {
1511 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1512 TELEPHONY_LOGE("Non-system applications use system APIs!");
1513 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1514 }
1515 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
1516 TELEPHONY_LOGE("Failed because no permission:GET_TELEPHONY_STATE");
1517 return TELEPHONY_ERR_PERMISSION_ERR;
1518 }
1519 if (networkSearchManager_ == nullptr) {
1520 TELEPHONY_LOGE("networkSearchManager_ is null");
1521 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1522 }
1523 return networkSearchManager_->GetBasebandVersion(slotId, version);
1524 }
1525
FactoryReset(int32_t slotId)1526 int32_t CoreService::FactoryReset(int32_t slotId)
1527 {
1528 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1529 TELEPHONY_LOGE("Non-system applications use system APIs!");
1530 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1531 }
1532 if (!TelephonyPermission::CheckPermission(Permission::SET_TELEPHONY_STATE)) {
1533 TELEPHONY_LOGE("Permission denied!");
1534 return TELEPHONY_ERR_PERMISSION_ERR;
1535 }
1536 if (networkSearchManager_ == nullptr) {
1537 TELEPHONY_LOGE("networkSearchManager_ is null");
1538 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1539 }
1540 return networkSearchManager_->FactoryReset(slotId);
1541 }
1542
InitExtraModule(int32_t slotId)1543 int32_t CoreService::InitExtraModule(int32_t slotId)
1544 {
1545 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1546 TELEPHONY_LOGE("Non-system applications use system APIs!");
1547 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1548 }
1549 return CoreManagerInner::GetInstance().InitExtraModule(slotId);
1550 }
1551
Dump(std::int32_t fd,const std::vector<std::u16string> & args)1552 int32_t CoreService::Dump(std::int32_t fd, const std::vector<std::u16string> &args)
1553 {
1554 if (fd < 0) {
1555 TELEPHONY_LOGE("dump fd invalid");
1556 return TELEPHONY_ERR_ARGUMENT_INVALID;
1557 }
1558 std::vector<std::string> argsInStr;
1559 for (const auto &arg : args) {
1560 TELEPHONY_LOGI("Dump args: %s", Str16ToStr8(arg).c_str());
1561 argsInStr.emplace_back(Str16ToStr8(arg));
1562 }
1563 std::string result;
1564 CoreServiceDumpHelper dumpHelper;
1565 if (dumpHelper.Dump(argsInStr, result)) {
1566 TELEPHONY_LOGI("%s", result.c_str());
1567 std::int32_t ret = dprintf(fd, "%s", result.c_str());
1568 if (ret < 0) {
1569 TELEPHONY_LOGE("dprintf to dump fd failed");
1570 return TELEPHONY_ERROR;
1571 }
1572 return 0;
1573 }
1574 TELEPHONY_LOGW("dumpHelper failed");
1575 return TELEPHONY_ERROR;
1576 }
1577
GetBindTime()1578 int64_t CoreService::GetBindTime()
1579 {
1580 return bindTime_;
1581 }
1582
GetEndTime()1583 int64_t CoreService::GetEndTime()
1584 {
1585 return endTime_;
1586 }
1587
GetSpendTime()1588 int64_t CoreService::GetSpendTime()
1589 {
1590 return endTime_ - bindTime_;
1591 }
1592
GetNrSsbIdInfo(int32_t slotId,const std::shared_ptr<NrSsbInformation> & nrSsbInformation)1593 int32_t CoreService::GetNrSsbIdInfo(int32_t slotId, const std::shared_ptr<NrSsbInformation> &nrSsbInformation)
1594 {
1595 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1596 TELEPHONY_LOGE("Non-system applications use system APIs!");
1597 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1598 }
1599 if (!TelephonyPermission::CheckPermission(Permission::CELL_LOCATION)) {
1600 TELEPHONY_LOGE("Do not support Permission::CELL_LOCATION");
1601 return TELEPHONY_ERR_PERMISSION_ERR;
1602 }
1603 if (networkSearchManager_ == nullptr) {
1604 TELEPHONY_LOGE("networkSearchManager_ is null");
1605 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1606 }
1607 return networkSearchManager_->GetNrSsbId(slotId, nrSsbInformation);
1608 }
1609
IsAllowedInsertApn(std::string & value)1610 bool CoreService::IsAllowedInsertApn(std::string &value)
1611 {
1612 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1613 TELEPHONY_LOGE("Non-system applications use system APIs!");
1614 return true;
1615 }
1616 if (TELEPHONY_EXT_WRAPPER.isAllowedInsertApn_ != nullptr) {
1617 return TELEPHONY_EXT_WRAPPER.isAllowedInsertApn_(value);
1618 }
1619 return true;
1620 }
1621
GetTargetOpkey(int32_t slotId,std::u16string & opkey)1622 int32_t CoreService::GetTargetOpkey(int32_t slotId, std::u16string &opkey)
1623 {
1624 if (!TelephonyPermission::CheckCallerIsSystemApp()) {
1625 TELEPHONY_LOGE("Non-system applications use system APIs!");
1626 return TELEPHONY_ERR_ILLEGAL_USE_OF_SYSTEM_API;
1627 }
1628 if (TELEPHONY_EXT_WRAPPER.getTargetOpkey_ != nullptr) {
1629 TELEPHONY_EXT_WRAPPER.getTargetOpkey_(slotId, opkey);
1630 }
1631 return TELEPHONY_ERR_SUCCESS;
1632 }
1633
GetOpkeyVersion(std::string & versionInfo)1634 int32_t CoreService::GetOpkeyVersion(std::string &versionInfo)
1635 {
1636 if (TELEPHONY_EXT_WRAPPER.getOpkeyVersion_ != nullptr) {
1637 TELEPHONY_EXT_WRAPPER.getOpkeyVersion_(versionInfo);
1638 return TELEPHONY_ERR_SUCCESS;
1639 }
1640 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1641 }
1642
GetSimIO(int32_t slotId,int32_t command,int32_t fileId,const std::string & data,const std::string & path,SimAuthenticationResponse & response)1643 int32_t CoreService::GetSimIO(int32_t slotId, int32_t command,
1644 int32_t fileId, const std::string &data, const std::string &path, SimAuthenticationResponse &response)
1645 {
1646 if (!TelephonyPermission::CheckPermission(Permission::GET_TELEPHONY_STATE)) {
1647 TELEPHONY_LOGE("Failed because no permission:GET_TELEPHONY_STATE");
1648 return TELEPHONY_ERR_PERMISSION_ERR;
1649 }
1650 TELEPHONY_LOGD("CoreService::GetSimIO(), slotId = %{public}d", slotId);
1651 if (simManager_ == nullptr) {
1652 TELEPHONY_LOGE("simManager_ is null");
1653 return TELEPHONY_ERR_LOCAL_PTR_NULL;
1654 }
1655 return simManager_->GetSimIO(slotId, command, fileId, data, path, response);
1656 }
1657
1658 } // namespace Telephony
1659 } // namespace OHOS
1660