Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c13d0d61 authored by Muralidhar Reddy's avatar Muralidhar Reddy Committed by Muralidhar Reddy Mule
Browse files

Add new API for iccCloseLogicalChannel to pass isEs10 information.

When a common logical channel ID is opened over 2 or more LSIs(including command port LSI), there is an ambiguity in closing the logical channel.
To resolve the ambiguity, pass isEs10 information about whether the logical channel was opened to send ES10 commands or not.

Test: Build
Bug: 268496310
Change-Id: I3e4f386b2a4f88d6e8bcc552d5ef1f404a8f9127
parent 983fad40
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -46,6 +46,9 @@ interface IRadioSim {
  oneway void getImsiForApp(in int serial, in String aid);
  oneway void getSimPhonebookCapacity(in int serial);
  oneway void getSimPhonebookRecords(in int serial);
  /**
   * @deprecated use iccCloseLogicalChannelWithSessionInfo instead.
   */
  oneway void iccCloseLogicalChannel(in int serial, in int channelId);
  oneway void iccIoForApp(in int serial, in android.hardware.radio.sim.IccIo iccIo);
  oneway void iccOpenLogicalChannel(in int serial, in String aid, in int p2);
@@ -70,4 +73,5 @@ interface IRadioSim {
  oneway void supplyIccPukForApp(in int serial, in String puk, in String pin, in String aid);
  oneway void supplySimDepersonalization(in int serial, in android.hardware.radio.sim.PersoSubstate persoType, in String controlKey);
  oneway void updateSimPhonebookRecords(in int serial, in android.hardware.radio.sim.PhonebookRecordInfo recordInfo);
  oneway void iccCloseLogicalChannelWithSessionInfo(in int serial, in android.hardware.radio.sim.SessionInfo sessionInfo);
}
+4 −0
Original line number Diff line number Diff line
@@ -47,6 +47,9 @@ interface IRadioSimResponse {
  oneway void getImsiForAppResponse(in android.hardware.radio.RadioResponseInfo info, in String imsi);
  oneway void getSimPhonebookCapacityResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.PhonebookCapacity capacity);
  oneway void getSimPhonebookRecordsResponse(in android.hardware.radio.RadioResponseInfo info);
  /**
   * @deprecated use iccCloseLogicalChannelWithSessionInfoResponse instead.
   */
  oneway void iccCloseLogicalChannelResponse(in android.hardware.radio.RadioResponseInfo info);
  oneway void iccIoForAppResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.IccIoResult iccIo);
  oneway void iccOpenLogicalChannelResponse(in android.hardware.radio.RadioResponseInfo info, in int channelId, in byte[] selectResponse);
@@ -69,4 +72,5 @@ interface IRadioSimResponse {
  oneway void supplyIccPukForAppResponse(in android.hardware.radio.RadioResponseInfo info, in int remainingRetries);
  oneway void supplySimDepersonalizationResponse(in android.hardware.radio.RadioResponseInfo info, in android.hardware.radio.sim.PersoSubstate persoType, in int remainingRetries);
  oneway void updateSimPhonebookRecordsResponse(in android.hardware.radio.RadioResponseInfo info, in int updatedRecordIndex);
  oneway void iccCloseLogicalChannelWithSessionInfoResponse(in android.hardware.radio.RadioResponseInfo info);
}
+39 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2023 The Android Open Source Project
 *
 * 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.
 */
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
///////////////////////////////////////////////////////////////////////////////

// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
//     the interface (from the latest frozen version), the build system will
//     prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.

package android.hardware.radio.sim;
@JavaDerive(toString=true) @VintfStability
parcelable SessionInfo {
  int sessionId;
  boolean isEs10 = false;
}
+18 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.hardware.radio.sim.ImsiEncryptionInfo;
import android.hardware.radio.sim.PersoSubstate;
import android.hardware.radio.sim.PhonebookRecordInfo;
import android.hardware.radio.sim.SelectUiccSub;
import android.hardware.radio.sim.SessionInfo;
import android.hardware.radio.sim.SimApdu;
import android.hardware.radio.sim.SimLockMultiSimPolicy;

@@ -184,6 +185,8 @@ oneway interface IRadioSim {
     * @param channelId session id of the logical channel (+CCHC).
     *
     * Response function is IRadioSimResponse.iccCloseLogicalChannelResponse()
     *
     * @deprecated use iccCloseLogicalChannelWithSessionInfo instead.
     */
    void iccCloseLogicalChannel(in int serial, in int channelId);

@@ -494,4 +497,19 @@ oneway interface IRadioSim {
     * Response function is IRadioSimResponse.updateSimPhonebookRecordsResponse()
     */
    void updateSimPhonebookRecords(in int serial, in PhonebookRecordInfo recordInfo);

    /**
     * Close a previously opened logical channel. This command reflects TS 27.007
     * "close logical channel" operation (+CCHC).
     *
     * Per spec SGP.22 V3.0, ES10 commands needs to be sent over command port of MEP-A. In order
     * to close proper logical channel, should pass information about whether the logical channel
     * was opened for sending ES10 commands or not.
     *
     * @param serial Serial number of request.
     * @param sessionInfo Details of the opened logical channel info like sessionId and isEs10.
     *
     * Response function is IRadioSimResponse.iccCloseLogicalChannelWithSessionInfoResponse()
     */
    void iccCloseLogicalChannelWithSessionInfo(in int serial, in SessionInfo sessionInfo);
}
+15 −0
Original line number Diff line number Diff line
@@ -241,6 +241,8 @@ oneway interface IRadioSimResponse {
     *   RadioError:NO_MEMORY
     *   RadioError:NO_RESOURCES
     *   RadioError:CANCELLED
     *
     * @deprecated use iccCloseLogicalChannelWithSessionInfoResponse instead.
     */
    void iccCloseLogicalChannelResponse(in RadioResponseInfo info);

@@ -591,4 +593,17 @@ oneway interface IRadioSimResponse {
     *   RadioError:NO_RESOURCES
     */
    void updateSimPhonebookRecordsResponse(in RadioResponseInfo info, in int updatedRecordIndex);

    /**
     * @param info Response info struct containing response type, serial no. and error
     *
     * Valid errors returned:
     *   RadioError:NONE
     *   RadioError:RADIO_NOT_AVAILABLE
     *   RadioError:INTERNAL_ERR
     *   RadioError:NO_MEMORY
     *   RadioError:NO_RESOURCES
     *   RadioError:CANCELLED
     */
    void iccCloseLogicalChannelWithSessionInfoResponse(in RadioResponseInfo info);
}
Loading