* Copyright (C) 2025-2025 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "esim_manager.h"
#include "string_ex.h"
#include "telephony_errors.h"
#include "core_manager_inner.h"
#ifdef CORE_SERVICE_SUPPORT_ESIM
#include "esim_service_client.h"
#include "esim_controller.h"
namespace OHOS {
namespace Telephony {
static constexpr const char* LAST_DEACTIVE_PROFILE = "persist.telephony.last_deactive_profile";
EsimManager::EsimManager(std::shared_ptr<ITelRilManager> telRilManager) : telRilManager_(telRilManager)
{
TELEPHONY_LOGI("EsimManager::EsimManager()");
}
EsimManager::~EsimManager() {}
bool EsimManager::OnInit(int32_t slotCount)
{
TELEPHONY_LOGI("EsimManager OnInit, slotCount = %{public}d", slotCount);
if (slotCount < ESIM_SLOT_ID_ZERO || slotCount > ESIM_MAX_SLOT_COUNT) {
TELEPHONY_LOGI("EsimManager, slotCount is out of range");
return false;
}
slotCount_ = slotCount;
esimFiles_.resize(slotCount_);
esimFilesLowPriority_.resize(slotCount_);
for (int32_t slotId = 0; slotId < slotCount_; slotId++) {
if (DelayedRefSingleton<EsimServiceClient>::GetInstance().IsSupported(slotId) == TELEPHONY_ERR_SUCCESS) {
TELEPHONY_LOGI("esimFiles_[%{public}d] to be init", slotId);
esimFiles_[slotId] = std::make_shared<EsimFile>(telRilManager_, slotId);
esimFilesLowPriority_[slotId] = std::make_shared<EsimFile>(telRilManager_, slotId);
}
}
return true;
}
template<class N>
bool EsimManager::IsValidSlotId(int32_t slotId, std::vector<N> vec)
{
if ((slotId < ESIM_SLOT_ID_ZERO) || (slotId >= static_cast<int32_t>(vec.size()))) {
TELEPHONY_LOGE("slotId is invalid by vec.size(), slotId = %{public}d", slotId);
return false;
}
return true;
}
int32_t EsimManager::GetEid(int32_t slotId, std::u16string &eId)
{
if ((!IsValidSlotId(slotId, esimFiles_)) || (esimFiles_[slotId] == nullptr)) {
TELEPHONY_LOGE("slotId is invalid or esimFiles_ is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
eId = Str8ToStr16(esimFiles_[slotId]->ObtainEid());
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::GetEuiccProfileInfoList(int32_t slotId, GetEuiccProfileInfoListInnerResult &euiccProfileInfoList)
{
if ((!IsValidSlotId(slotId, esimFiles_)) || (esimFiles_[slotId] == nullptr)) {
TELEPHONY_LOGE("slotId is invalid or esimFiles_ is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
euiccProfileInfoList = esimFiles_[slotId]->GetEuiccProfileInfoList();
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::GetEuiccInfo(int32_t slotId, EuiccInfo &eUiccInfo)
{
if ((!IsValidSlotId(slotId, esimFiles_)) || (esimFiles_[slotId] == nullptr)) {
TELEPHONY_LOGE("slotId is invalid or esimFiles_ is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
eUiccInfo = esimFiles_[slotId]->GetEuiccInfo();
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::DisableProfile(
int32_t slotId, int32_t portIndex, const std::u16string &iccId, bool refresh, int32_t &enumResult)
{
if ((!IsValidSlotId(slotId, esimFiles_)) || (esimFiles_[slotId] == nullptr)) {
TELEPHONY_LOGE("slotId is invalid or esimFiles_ is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
enumResult = esimFiles_[slotId]->DisableProfile(portIndex, iccId);
int32_t simId = CoreManagerInner::GetInstance().GetSimId(slotId);
SetParameter(LAST_DEACTIVE_PROFILE, std::to_string(simId).c_str());
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::GetSmdsAddress(int32_t slotId, int32_t portIndex, std::u16string &smdsAddress)
{
if ((!IsValidSlotId(slotId, esimFiles_)) || (esimFiles_[slotId] == nullptr)) {
TELEPHONY_LOGE("slotId is invalid or esimFiles_ is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
smdsAddress = Str8ToStr16(esimFiles_[slotId]->ObtainSmdsAddress(portIndex));
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::GetRulesAuthTable(
int32_t slotId, int32_t portIndex, EuiccRulesAuthTable &eUiccRulesAuthTable)
{
if ((!IsValidSlotId(slotId, esimFiles_)) || (esimFiles_[slotId] == nullptr)) {
TELEPHONY_LOGE("slotId is invalid or esimFiles_ is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
eUiccRulesAuthTable = esimFiles_[slotId]->ObtainRulesAuthTable(portIndex);
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::GetEuiccChallenge(int32_t slotId, int32_t portIndex, ResponseEsimInnerResult &responseResult)
{
if ((!IsValidSlotId(slotId, esimFiles_)) || (esimFiles_[slotId] == nullptr)) {
TELEPHONY_LOGE("slotId is invalid or esimFiles_ is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
responseResult = esimFiles_[slotId]->ObtainEuiccChallenge(portIndex);
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::GetDefaultSmdpAddress(int32_t slotId, std::u16string &defaultSmdpAddress)
{
if ((!IsValidSlotId(slotId, esimFiles_)) || (esimFiles_[slotId] == nullptr)) {
TELEPHONY_LOGE("slotId is invalid or esimFiles_ is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
defaultSmdpAddress = Str8ToStr16(esimFiles_[slotId]->ObtainDefaultSmdpAddress());
if (defaultSmdpAddress == Str8ToStr16("")) {
return TELEPHONY_ERR_FAIL;
}
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::CancelSession(int32_t slotId, const std::u16string &transactionId,
CancelReason cancelReason, ResponseEsimInnerResult &responseResult)
{
if ((!IsValidSlotId(slotId, esimFiles_)) || (esimFiles_[slotId] == nullptr)) {
TELEPHONY_LOGE("slotId is invalid or esimFiles_ is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
responseResult = esimFiles_[slotId]->CancelSession(transactionId, cancelReason);
if (responseResult.resultCode_ != static_cast<int32_t>(EsimResultCode::RESULT_OK)) {
return TELEPHONY_ERR_FAIL;
}
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::GetProfile(
int32_t slotId, int32_t portIndex, const std::u16string &iccId, EuiccProfile &eUiccProfile)
{
if ((!IsValidSlotId(slotId, esimFiles_)) || (esimFiles_[slotId] == nullptr)) {
TELEPHONY_LOGE("slotId is invalid or esimFiles_ is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
eUiccProfile = esimFiles_[slotId]->ObtainProfile(portIndex, iccId);
if (eUiccProfile.state_ != ProfileState::PROFILE_STATE_DISABLED) {
return TELEPHONY_ERR_FAIL;
}
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::ResetMemory(int32_t slotId, ResetOption resetOption, int32_t &enumResult)
{
if ((!IsValidSlotId(slotId, esimFiles_)) || (esimFiles_[slotId] == nullptr)) {
TELEPHONY_LOGE("slotId is invalid or esimFiles_ is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
enumResult = esimFiles_[slotId]->ResetMemory(resetOption);
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::SetDefaultSmdpAddress(
int32_t slotId, const std::u16string &defaultSmdpAddress, int32_t &enumResult)
{
if ((!IsValidSlotId(slotId, esimFiles_)) || (esimFiles_[slotId] == nullptr)) {
TELEPHONY_LOGE("slotId is invalid or esimFiles_ is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
enumResult = esimFiles_[slotId]->SetDefaultSmdpAddress(defaultSmdpAddress);
return TELEPHONY_ERR_SUCCESS;
}
bool EsimManager::IsSupported(int32_t slotId)
{
if ((!IsValidSlotId(slotId, esimFiles_)) || (esimFiles_[slotId] == nullptr)) {
TELEPHONY_LOGE("slotId is invalid or esimFiles_ is null!");
return false;
}
return esimFiles_[slotId]->IsSupported();
}
int32_t EsimManager::SendApduData(
int32_t slotId, const std::u16string &aid, const EsimApduData &apduData, ResponseEsimInnerResult &responseResult)
{
if ((!IsValidSlotId(slotId, esimFiles_)) || (esimFiles_[slotId] == nullptr)) {
TELEPHONY_LOGE("slotId is invalid or esimFiles_ is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
responseResult = esimFiles_[slotId]->SendApduData(aid, apduData);
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::PrepareDownload(int32_t slotId, const DownLoadConfigInfo &downLoadConfigInfo,
ResponseEsimInnerResult &responseResult)
{
if ((!IsValidSlotId(slotId, esimFiles_)) || (esimFiles_[slotId] == nullptr)) {
TELEPHONY_LOGE("slotId is invalid or esimFiles_ is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
responseResult = esimFiles_[slotId]->ObtainPrepareDownload(downLoadConfigInfo);
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::LoadBoundProfilePackage(int32_t slotId, int32_t portIndex,
const std::u16string &boundProfilePackage, ResponseEsimBppResult &responseResult)
{
if ((!IsValidSlotId(slotId, esimFiles_)) || (esimFiles_[slotId] == nullptr)) {
TELEPHONY_LOGE("slotId is invalid or esimFiles_ is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
responseResult = esimFiles_[slotId]->ObtainLoadBoundProfilePackage(portIndex, boundProfilePackage);
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::ListNotifications(
int32_t slotId, int32_t portIndex, EsimEvent events, EuiccNotificationList ¬ificationList)
{
if ((!IsValidSlotId(slotId, esimFilesLowPriority_)) || (esimFilesLowPriority_[slotId] == nullptr)) {
TELEPHONY_LOGE("slotId is invalid or esimFiles_ is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
notificationList = esimFilesLowPriority_[slotId]->ListNotifications(portIndex, events);
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::RetrieveNotificationList(
int32_t slotId, int32_t portIndex, EsimEvent events, EuiccNotificationList ¬ificationList)
{
if ((!IsValidSlotId(slotId, esimFilesLowPriority_)) || (esimFilesLowPriority_[slotId] == nullptr)) {
TELEPHONY_LOGE("RetrieveNotificationList simFileManager is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
notificationList = esimFilesLowPriority_[slotId]->RetrieveNotificationList(portIndex, events);
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::RetrieveNotification(
int32_t slotId, int32_t portIndex, int32_t seqNumber, EuiccNotification ¬ification)
{
if ((!IsValidSlotId(slotId, esimFilesLowPriority_)) || (esimFilesLowPriority_[slotId] == nullptr)) {
TELEPHONY_LOGE("RetrieveNotification simFileManager is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
notification = esimFilesLowPriority_[slotId]->ObtainRetrieveNotification(portIndex, seqNumber);
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::RemoveNotificationFromList(
int32_t slotId, int32_t portIndex, int32_t seqNumber, int32_t &enumResult)
{
if ((!IsValidSlotId(slotId, esimFilesLowPriority_)) || (esimFilesLowPriority_[slotId] == nullptr)) {
TELEPHONY_LOGE("RemoveNotificationFromList simFileManager is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
enumResult = esimFilesLowPriority_[slotId]->RemoveNotificationFromList(portIndex, seqNumber);
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::DeleteProfile(int32_t slotId, const std::u16string &iccId, int32_t &enumResult)
{
if ((!IsValidSlotId(slotId, esimFiles_)) || (esimFiles_[slotId] == nullptr)) {
TELEPHONY_LOGE("slotId is invalid or esimFiles_ is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
enumResult = esimFiles_[slotId]->DeleteProfile(iccId);
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::SwitchToProfile(
int32_t slotId, int32_t portIndex, const std::u16string &iccId, bool forceDisableProfile, int32_t &enumResult)
{
if ((!IsValidSlotId(slotId, esimFiles_)) || (esimFiles_[slotId] == nullptr)) {
TELEPHONY_LOGE("slotId is invalid or esimFiles_ is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
enumResult = esimFiles_[slotId]->SwitchToProfile(portIndex, iccId, forceDisableProfile);
SetParameter(USER_PREFER_PRIMARY_SLOT.c_str(), "true");
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::SetProfileNickname(
int32_t slotId, const std::u16string &iccId, const std::u16string &nickname, int32_t &enumResult)
{
if ((!IsValidSlotId(slotId, esimFiles_)) || (esimFiles_[slotId] == nullptr)) {
TELEPHONY_LOGE("slotId is invalid or esimFiles_ is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
enumResult = esimFiles_[slotId]->SetProfileNickname(iccId, nickname);
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::GetEuiccInfo2(int32_t slotId, int32_t portIndex, EuiccInfo2 &euiccInfo2)
{
if ((!IsValidSlotId(slotId, esimFiles_)) || (esimFiles_[slotId] == nullptr)) {
TELEPHONY_LOGE("slotId is invalid or esimFiles_ is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
euiccInfo2 = esimFiles_[slotId]->ObtainEuiccInfo2(portIndex);
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::AuthenticateServer(
int32_t slotId, const AuthenticateConfigInfo &authenticateConfigInfo, ResponseEsimInnerResult &responseResult)
{
if ((!IsValidSlotId(slotId, esimFiles_)) || (esimFiles_[slotId] == nullptr)) {
TELEPHONY_LOGE("slotId is invalid or esimFiles_ is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
responseResult = esimFiles_[slotId]->AuthenticateServer(authenticateConfigInfo);
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::GetContractInfo(
int32_t slotId, const GetContractInfoRequest &getContractInfoRequest, std::string& response)
{
if ((!IsValidSlotId(slotId, esimFiles_)) || (esimFiles_[slotId] == nullptr)) {
TELEPHONY_LOGE("slotId is invalid or esimFiles_ is null!");
return TELEPHONY_ERR_LOCAL_PTR_NULL;
}
response = esimFiles_[slotId]->GetContractInfo(getContractInfoRequest);
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::GetEsimCaVerifyResult(int32_t slotId, bool &verifyResult)
{
if (slotId < ESIM_SLOT_ID_ZERO || slotId >= ESIM_MAX_SLOT_COUNT) {
TELEPHONY_LOGE("bad slotId: %{public}d", slotId);
return TELEPHONY_ERR_SLOTID_INVALID;
}
verifyResult = EsimController::GetInstance().GetVerifyResult(slotId);
return TELEPHONY_ERR_SUCCESS;
}
int32_t EsimManager::SetEsimCaVerifyResult(int32_t slotId, bool verifyResult)
{
if (slotId < ESIM_SLOT_ID_ZERO || slotId >= ESIM_MAX_SLOT_COUNT) {
TELEPHONY_LOGE("bad slotId: %{public}d", slotId);
return TELEPHONY_ERR_SLOTID_INVALID;
}
EsimController::GetInstance().SetVerifyResult(slotId, verifyResult);
return TELEPHONY_ERR_SUCCESS;
}
}
}
#else
namespace OHOS {
namespace Telephony {
EsimManager::EsimManager(std::shared_ptr<ITelRilManager> telRilManager) : telRilManager_(telRilManager)
{
TELEPHONY_LOGI("EsimManager, unsupport esim, not init");
}
EsimManager::~EsimManager() {}
bool EsimManager::OnInit(int32_t slotCount)
{
return false;
}
template<class N>
bool EsimManager::IsValidSlotId(int32_t slotId, std::vector<N> vec)
{
return false;
}
int32_t EsimManager::GetEid(int32_t slotId, std::u16string &eId)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::GetEuiccProfileInfoList(int32_t slotId, GetEuiccProfileInfoListInnerResult &euiccProfileInfoList)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::GetEuiccInfo(int32_t slotId, EuiccInfo &eUiccInfo)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::DisableProfile(
int32_t slotId, int32_t portIndex, const std::u16string &iccId, bool refresh, int32_t &enumResult)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::GetSmdsAddress(int32_t slotId, int32_t portIndex, std::u16string &smdsAddress)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::GetRulesAuthTable(
int32_t slotId, int32_t portIndex, EuiccRulesAuthTable &eUiccRulesAuthTable)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::GetEuiccChallenge(int32_t slotId, int32_t portIndex, ResponseEsimInnerResult &responseResult)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::GetDefaultSmdpAddress(int32_t slotId, std::u16string &defaultSmdpAddress)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::CancelSession(int32_t slotId, const std::u16string &transactionId,
CancelReason cancelReason, ResponseEsimInnerResult &responseResult)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::GetProfile(
int32_t slotId, int32_t portIndex, const std::u16string &iccId, EuiccProfile &eUiccProfile)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::ResetMemory(int32_t slotId, ResetOption resetOption, int32_t &enumResult)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::SetDefaultSmdpAddress(
int32_t slotId, const std::u16string &defaultSmdpAddress, int32_t &enumResult)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
bool EsimManager::IsSupported(int32_t slotId)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::SendApduData(
int32_t slotId, const std::u16string &aid, const EsimApduData &apduData, ResponseEsimInnerResult &responseResult)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::PrepareDownload(int32_t slotId, const DownLoadConfigInfo &downLoadConfigInfo,
ResponseEsimInnerResult &responseResult)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::LoadBoundProfilePackage(int32_t slotId, int32_t portIndex,
const std::u16string &boundProfilePackage, ResponseEsimBppResult &responseResult)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::ListNotifications(
int32_t slotId, int32_t portIndex, EsimEvent events, EuiccNotificationList ¬ificationList)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::RetrieveNotificationList(
int32_t slotId, int32_t portIndex, EsimEvent events, EuiccNotificationList ¬ificationList)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::RetrieveNotification(
int32_t slotId, int32_t portIndex, int32_t seqNumber, EuiccNotification ¬ification)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::RemoveNotificationFromList(
int32_t slotId, int32_t portIndex, int32_t seqNumber, int32_t &enumResult)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::DeleteProfile(int32_t slotId, const std::u16string &iccId, int32_t &enumResult)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::SwitchToProfile(
int32_t slotId, int32_t portIndex, const std::u16string &iccId, bool forceDisableProfile, int32_t &enumResult)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::SetProfileNickname(
int32_t slotId, const std::u16string &iccId, const std::u16string &nickname, int32_t &enumResult)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::GetEuiccInfo2(int32_t slotId, int32_t portIndex, EuiccInfo2 &euiccInfo2)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::AuthenticateServer(
int32_t slotId, const AuthenticateConfigInfo &authenticateConfigInfo, ResponseEsimInnerResult &responseResult)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::GetContractInfo(
int32_t slotId, const GetContractInfoRequest &getContractInfoRequest, std::string& response)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::GetEsimCaVerifyResult(int32_t slotId, bool &verifyResult)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
int32_t EsimManager::SetEsimCaVerifyResult(int32_t slotId, bool verifyResult)
{
return TELEPHONY_ERR_CORE_SERVICE_NOT_SUPPORTED_ESIM;
}
}
}
#endif