1 /*
2 * Copyright (C) 2021 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 #include "radio_sim_utils.h"
18
RadioSimResponse(RadioServiceTest & parent)19 RadioSimResponse::RadioSimResponse(RadioServiceTest& parent) : parent_sim(parent) {}
20
acknowledgeRequest(int32_t)21 ndk::ScopedAStatus RadioSimResponse::acknowledgeRequest(int32_t /*serial*/) {
22 return ndk::ScopedAStatus::ok();
23 }
24
areUiccApplicationsEnabledResponse(const RadioResponseInfo & info,bool enabled)25 ndk::ScopedAStatus RadioSimResponse::areUiccApplicationsEnabledResponse(
26 const RadioResponseInfo& info, bool enabled) {
27 rspInfo = info;
28 areUiccApplicationsEnabled = enabled;
29 parent_sim.notify(info.serial);
30 return ndk::ScopedAStatus::ok();
31 }
32
changeIccPin2ForAppResponse(const RadioResponseInfo & info,int32_t)33 ndk::ScopedAStatus RadioSimResponse::changeIccPin2ForAppResponse(const RadioResponseInfo& info,
34 int32_t /*remainingRetries*/) {
35 rspInfo = info;
36 parent_sim.notify(info.serial);
37 return ndk::ScopedAStatus::ok();
38 }
39
changeIccPinForAppResponse(const RadioResponseInfo & info,int32_t)40 ndk::ScopedAStatus RadioSimResponse::changeIccPinForAppResponse(const RadioResponseInfo& info,
41 int32_t /*remainingRetries*/) {
42 rspInfo = info;
43 parent_sim.notify(info.serial);
44 return ndk::ScopedAStatus::ok();
45 }
46
enableUiccApplicationsResponse(const RadioResponseInfo & info)47 ndk::ScopedAStatus RadioSimResponse::enableUiccApplicationsResponse(const RadioResponseInfo& info) {
48 rspInfo = info;
49 parent_sim.notify(info.serial);
50 return ndk::ScopedAStatus::ok();
51 }
52
getAllowedCarriersResponse(const RadioResponseInfo & info,const CarrierRestrictions & carriers,SimLockMultiSimPolicy multiSimPolicy)53 ndk::ScopedAStatus RadioSimResponse::getAllowedCarriersResponse(
54 const RadioResponseInfo& info, const CarrierRestrictions& carriers,
55 SimLockMultiSimPolicy multiSimPolicy) {
56 rspInfo = info;
57 carrierRestrictionsResp = carriers;
58 multiSimPolicyResp = multiSimPolicy;
59 parent_sim.notify(info.serial);
60 return ndk::ScopedAStatus::ok();
61 }
62
getCdmaSubscriptionResponse(const RadioResponseInfo & info,const std::string &,const std::string &,const std::string &,const std::string &,const std::string &)63 ndk::ScopedAStatus RadioSimResponse::getCdmaSubscriptionResponse(
64 const RadioResponseInfo& info, const std::string& /*mdn*/, const std::string& /*hSid*/,
65 const std::string& /*hNid*/, const std::string& /*min*/, const std::string& /*prl*/) {
66 rspInfo = info;
67 parent_sim.notify(info.serial);
68 return ndk::ScopedAStatus::ok();
69 }
70
getCdmaSubscriptionSourceResponse(const RadioResponseInfo & info,CdmaSubscriptionSource)71 ndk::ScopedAStatus RadioSimResponse::getCdmaSubscriptionSourceResponse(
72 const RadioResponseInfo& info, CdmaSubscriptionSource /*source*/) {
73 rspInfo = info;
74 parent_sim.notify(info.serial);
75 return ndk::ScopedAStatus::ok();
76 }
77
getFacilityLockForAppResponse(const RadioResponseInfo & info,int32_t)78 ndk::ScopedAStatus RadioSimResponse::getFacilityLockForAppResponse(const RadioResponseInfo& info,
79 int32_t /*response*/) {
80 rspInfo = info;
81 parent_sim.notify(info.serial);
82 return ndk::ScopedAStatus::ok();
83 }
84
getIccCardStatusResponse(const RadioResponseInfo & info,const CardStatus & card_status)85 ndk::ScopedAStatus RadioSimResponse::getIccCardStatusResponse(const RadioResponseInfo& info,
86 const CardStatus& card_status) {
87 rspInfo = info;
88 cardStatus = card_status;
89 parent_sim.notify(info.serial);
90 return ndk::ScopedAStatus::ok();
91 }
92
getImsiForAppResponse(const RadioResponseInfo & info,const std::string & imsi_str)93 ndk::ScopedAStatus RadioSimResponse::getImsiForAppResponse(const RadioResponseInfo& info,
94 const std::string& imsi_str) {
95 rspInfo = info;
96 imsi = imsi_str;
97 parent_sim.notify(info.serial);
98 return ndk::ScopedAStatus::ok();
99 }
100
getSimPhonebookCapacityResponse(const RadioResponseInfo & info,const PhonebookCapacity & pbCapacity)101 ndk::ScopedAStatus RadioSimResponse::getSimPhonebookCapacityResponse(
102 const RadioResponseInfo& info, const PhonebookCapacity& pbCapacity) {
103 rspInfo = info;
104 capacity = pbCapacity;
105 parent_sim.notify(info.serial);
106 return ndk::ScopedAStatus::ok();
107 }
108
getSimPhonebookRecordsResponse(const RadioResponseInfo & info)109 ndk::ScopedAStatus RadioSimResponse::getSimPhonebookRecordsResponse(const RadioResponseInfo& info) {
110 rspInfo = info;
111 parent_sim.notify(info.serial);
112 return ndk::ScopedAStatus::ok();
113 }
114
iccCloseLogicalChannelResponse(const RadioResponseInfo & info)115 ndk::ScopedAStatus RadioSimResponse::iccCloseLogicalChannelResponse(const RadioResponseInfo& info) {
116 rspInfo = info;
117 parent_sim.notify(info.serial);
118 return ndk::ScopedAStatus::ok();
119 }
120
iccIoForAppResponse(const RadioResponseInfo & info,const IccIoResult &)121 ndk::ScopedAStatus RadioSimResponse::iccIoForAppResponse(const RadioResponseInfo& info,
122 const IccIoResult& /*iccIo*/) {
123 rspInfo = info;
124 parent_sim.notify(info.serial);
125 return ndk::ScopedAStatus::ok();
126 }
127
iccOpenLogicalChannelResponse(const RadioResponseInfo & info,int32_t,const std::vector<uint8_t> &)128 ndk::ScopedAStatus RadioSimResponse::iccOpenLogicalChannelResponse(
129 const RadioResponseInfo& info, int32_t /*channelId*/,
130 const std::vector<uint8_t>& /*selectResponse*/) {
131 rspInfo = info;
132 parent_sim.notify(info.serial);
133 return ndk::ScopedAStatus::ok();
134 }
135
iccTransmitApduBasicChannelResponse(const RadioResponseInfo & info,const IccIoResult &)136 ndk::ScopedAStatus RadioSimResponse::iccTransmitApduBasicChannelResponse(
137 const RadioResponseInfo& info, const IccIoResult& /*result*/) {
138 rspInfo = info;
139 parent_sim.notify(info.serial);
140 return ndk::ScopedAStatus::ok();
141 }
142
iccTransmitApduLogicalChannelResponse(const RadioResponseInfo & info,const IccIoResult &)143 ndk::ScopedAStatus RadioSimResponse::iccTransmitApduLogicalChannelResponse(
144 const RadioResponseInfo& info, const IccIoResult& /*result*/) {
145 rspInfo = info;
146 parent_sim.notify(info.serial);
147 return ndk::ScopedAStatus::ok();
148 }
149
reportStkServiceIsRunningResponse(const RadioResponseInfo & info)150 ndk::ScopedAStatus RadioSimResponse::reportStkServiceIsRunningResponse(
151 const RadioResponseInfo& info) {
152 rspInfo = info;
153 parent_sim.notify(info.serial);
154 return ndk::ScopedAStatus::ok();
155 }
156
requestIccSimAuthenticationResponse(const RadioResponseInfo & info,const IccIoResult &)157 ndk::ScopedAStatus RadioSimResponse::requestIccSimAuthenticationResponse(
158 const RadioResponseInfo& info, const IccIoResult& /*result*/) {
159 rspInfo = info;
160 parent_sim.notify(info.serial);
161 return ndk::ScopedAStatus::ok();
162 }
163
sendEnvelopeResponse(const RadioResponseInfo & info,const std::string &)164 ndk::ScopedAStatus RadioSimResponse::sendEnvelopeResponse(const RadioResponseInfo& info,
165 const std::string& /*commandResponse*/) {
166 rspInfo = info;
167 parent_sim.notify(info.serial);
168 return ndk::ScopedAStatus::ok();
169 }
170
sendEnvelopeWithStatusResponse(const RadioResponseInfo & info,const IccIoResult &)171 ndk::ScopedAStatus RadioSimResponse::sendEnvelopeWithStatusResponse(const RadioResponseInfo& info,
172 const IccIoResult& /*iccIo*/) {
173 rspInfo = info;
174 parent_sim.notify(info.serial);
175 return ndk::ScopedAStatus::ok();
176 }
177
sendTerminalResponseToSimResponse(const RadioResponseInfo & info)178 ndk::ScopedAStatus RadioSimResponse::sendTerminalResponseToSimResponse(
179 const RadioResponseInfo& info) {
180 rspInfo = info;
181 parent_sim.notify(info.serial);
182 return ndk::ScopedAStatus::ok();
183 }
184
setAllowedCarriersResponse(const RadioResponseInfo & info)185 ndk::ScopedAStatus RadioSimResponse::setAllowedCarriersResponse(const RadioResponseInfo& info) {
186 rspInfo = info;
187 parent_sim.notify(info.serial);
188 return ndk::ScopedAStatus::ok();
189 }
190
setCarrierInfoForImsiEncryptionResponse(const RadioResponseInfo & info)191 ndk::ScopedAStatus RadioSimResponse::setCarrierInfoForImsiEncryptionResponse(
192 const RadioResponseInfo& info) {
193 rspInfo = info;
194 parent_sim.notify(info.serial);
195 return ndk::ScopedAStatus::ok();
196 }
197
setCdmaSubscriptionSourceResponse(const RadioResponseInfo & info)198 ndk::ScopedAStatus RadioSimResponse::setCdmaSubscriptionSourceResponse(
199 const RadioResponseInfo& info) {
200 rspInfo = info;
201 parent_sim.notify(info.serial);
202 return ndk::ScopedAStatus::ok();
203 }
204
setFacilityLockForAppResponse(const RadioResponseInfo & info,int32_t)205 ndk::ScopedAStatus RadioSimResponse::setFacilityLockForAppResponse(const RadioResponseInfo& info,
206 int32_t /*retry*/) {
207 rspInfo = info;
208 parent_sim.notify(info.serial);
209 return ndk::ScopedAStatus::ok();
210 }
211
setSimCardPowerResponse(const RadioResponseInfo & info)212 ndk::ScopedAStatus RadioSimResponse::setSimCardPowerResponse(const RadioResponseInfo& info) {
213 rspInfo = info;
214 parent_sim.notify(info.serial);
215 return ndk::ScopedAStatus::ok();
216 }
217
setUiccSubscriptionResponse(const RadioResponseInfo & info)218 ndk::ScopedAStatus RadioSimResponse::setUiccSubscriptionResponse(const RadioResponseInfo& info) {
219 rspInfo = info;
220 parent_sim.notify(info.serial);
221 return ndk::ScopedAStatus::ok();
222 }
223
supplyIccPin2ForAppResponse(const RadioResponseInfo & info,int32_t)224 ndk::ScopedAStatus RadioSimResponse::supplyIccPin2ForAppResponse(const RadioResponseInfo& info,
225 int32_t /*remainingRetries*/) {
226 rspInfo = info;
227 parent_sim.notify(info.serial);
228 return ndk::ScopedAStatus::ok();
229 }
230
supplyIccPinForAppResponse(const RadioResponseInfo & info,int32_t)231 ndk::ScopedAStatus RadioSimResponse::supplyIccPinForAppResponse(const RadioResponseInfo& info,
232 int32_t /*remainingRetries*/) {
233 rspInfo = info;
234 parent_sim.notify(info.serial);
235 return ndk::ScopedAStatus::ok();
236 }
237
supplyIccPuk2ForAppResponse(const RadioResponseInfo & info,int32_t)238 ndk::ScopedAStatus RadioSimResponse::supplyIccPuk2ForAppResponse(const RadioResponseInfo& info,
239 int32_t /*remainingRetries*/) {
240 rspInfo = info;
241 parent_sim.notify(info.serial);
242 return ndk::ScopedAStatus::ok();
243 }
244
supplyIccPukForAppResponse(const RadioResponseInfo & info,int32_t)245 ndk::ScopedAStatus RadioSimResponse::supplyIccPukForAppResponse(const RadioResponseInfo& info,
246 int32_t /*remainingRetries*/) {
247 rspInfo = info;
248 parent_sim.notify(info.serial);
249 return ndk::ScopedAStatus::ok();
250 }
251
supplySimDepersonalizationResponse(const RadioResponseInfo & info,PersoSubstate,int32_t)252 ndk::ScopedAStatus RadioSimResponse::supplySimDepersonalizationResponse(
253 const RadioResponseInfo& info, PersoSubstate /*persoType*/, int32_t /*remainingRetries*/) {
254 rspInfo = info;
255 parent_sim.notify(info.serial);
256 return ndk::ScopedAStatus::ok();
257 }
258
updateSimPhonebookRecordsResponse(const RadioResponseInfo & info,int32_t recordIndex)259 ndk::ScopedAStatus RadioSimResponse::updateSimPhonebookRecordsResponse(
260 const RadioResponseInfo& info, int32_t recordIndex) {
261 rspInfo = info;
262 updatedRecordIndex = recordIndex;
263 parent_sim.notify(info.serial);
264 return ndk::ScopedAStatus::ok();
265 }
266