Merge "[Android T][MEP]: HAL changes for MEP feature"
This commit is contained in:
commit
d45fd704fe
11 changed files with 230 additions and 36 deletions
|
@ -137,7 +137,10 @@ aidl_interface {
|
|||
vendor_available: true,
|
||||
srcs: ["android/hardware/radio/sim/*.aidl"],
|
||||
stability: "vintf",
|
||||
imports: ["android.hardware.radio"],
|
||||
imports: [
|
||||
"android.hardware.radio",
|
||||
"android.hardware.radio.config",
|
||||
],
|
||||
backend: {
|
||||
cpp: {
|
||||
enabled: false,
|
||||
|
|
|
@ -49,5 +49,5 @@ interface IRadioConfig {
|
|||
oneway void setNumOfLiveModems(in int serial, in byte numOfLiveModems);
|
||||
oneway void setPreferredDataModem(in int serial, in byte modemId);
|
||||
oneway void setResponseFunctions(in android.hardware.radio.config.IRadioConfigResponse radioConfigResponse, in android.hardware.radio.config.IRadioConfigIndication radioConfigIndication);
|
||||
oneway void setSimSlotsMapping(in int serial, in int[] slotMap);
|
||||
oneway void setSimSlotsMapping(in int serial, in android.hardware.radio.config.SlotPortMapping[] slotMap);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
/*
|
||||
* Copyright (C) 2021 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.config;
|
||||
@VintfStability
|
||||
parcelable SimPortInfo {
|
||||
String iccId;
|
||||
int logicalSlotId;
|
||||
int portState;
|
||||
const int PORT_STATE_INACTIVE = 0;
|
||||
const int PORT_STATE_ACTIVE = 1;
|
||||
}
|
|
@ -36,9 +36,7 @@ package android.hardware.radio.config;
|
|||
parcelable SimSlotStatus {
|
||||
boolean cardActive;
|
||||
int cardState;
|
||||
int slotState;
|
||||
String atr;
|
||||
int logicalSlotId;
|
||||
String iccid;
|
||||
String eid;
|
||||
android.hardware.radio.config.SimPortInfo[] portInfo;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
/*
|
||||
* Copyright (C) 2021 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.config;
|
||||
@VintfStability
|
||||
parcelable SlotPortMapping {
|
||||
int physicalSlotId;
|
||||
int portId;
|
||||
}
|
|
@ -40,10 +40,10 @@ parcelable CardStatus {
|
|||
int cdmaSubscriptionAppIndex;
|
||||
int imsSubscriptionAppIndex;
|
||||
android.hardware.radio.sim.AppStatus[] applications;
|
||||
int physicalSlotId;
|
||||
String atr;
|
||||
String iccid;
|
||||
String eid;
|
||||
android.hardware.radio.config.SlotPortMapping slotMap;
|
||||
const int STATE_ABSENT = 0;
|
||||
const int STATE_PRESENT = 1;
|
||||
const int STATE_ERROR = 2;
|
||||
|
|
|
@ -26,6 +26,7 @@ package android.hardware.radio.config;
|
|||
|
||||
import android.hardware.radio.config.IRadioConfigIndication;
|
||||
import android.hardware.radio.config.IRadioConfigResponse;
|
||||
import android.hardware.radio.config.SlotPortMapping;
|
||||
|
||||
@VintfStability
|
||||
oneway interface IRadioConfig {
|
||||
|
@ -120,30 +121,57 @@ oneway interface IRadioConfig {
|
|||
/**
|
||||
* Set SIM Slot mapping.
|
||||
*
|
||||
* Maps the logical slots to the physical slots. Logical slot is the slot that is seen by modem.
|
||||
* Physical slot is the actual physical slot. Request maps the physical slot to logical slot.
|
||||
* Logical slots that are already mapped to the requested physical slot are not impacted.
|
||||
* Maps the logical slots to the SlotPortMapping which consist of both physical slot id and port
|
||||
* id. Logical slot is the slot that is seen by modem. Physical slot is the actual physical
|
||||
* slot. PortId is the id (enumerated value) for the associated port available on the SIM. Each
|
||||
* physical slot can have multiple ports which enables multi-enabled profile(MEP). If eUICC
|
||||
* physical slot supports 2 ports, then the portId is numbered 0,1 and if eUICC2 supports 4
|
||||
* ports then the portID is numbered 0,1,2,3. Each portId is unique within a UICC physical slot
|
||||
* but not necessarily unique across UICC’s. SEP(Single enabled profile) eUICC and non-eUICC
|
||||
* will only have portId 0.
|
||||
*
|
||||
* Example no. of logical slots 1 and physical slots 2:
|
||||
* The only logical slot (index 0) can be mapped to first physical slot (value 0) or second
|
||||
* physical slot(value 1), while the other physical slot remains unmapped and inactive.
|
||||
* slotMap[0] = 1 or slotMap[0] = 0
|
||||
* Logical slots that are already mapped to the requested SlotPortMapping are not impacted.
|
||||
*
|
||||
* Example no. of logical slots 2 and physical slots 2:
|
||||
* First logical slot (index 0) can be mapped to physical slot 1 or 2 and other logical slot
|
||||
* can be mapped to other physical slot. Each logical slot must be mapped to a physical slot.
|
||||
* slotMap[0] = 0 and slotMap[1] = 1 or slotMap[0] = 1 and slotMap[1] = 0
|
||||
* Example no. of logical slots 1 and physical slots 2 do not support MEP, each physical slot
|
||||
* has one port:
|
||||
* The only logical slot (index 0) can be mapped to first physical slot (value 0), port(index
|
||||
* 0). or second
|
||||
* physical slot(value 1), port (index 0), while the other physical slot remains unmapped and
|
||||
* inactive.
|
||||
* slotMap[0] = SlotPortMapping{0 //physical slot//, 0 //port//}
|
||||
* slotMap[0] = SlotPortMapping{1 //physical slot//, 0 //port//}
|
||||
*
|
||||
* Example no. of logical slots 2 and physical slots 2 supports MEP with 2 ports available:
|
||||
* Each logical slot must be mapped to a port (physical slot and port combination).
|
||||
* First logical slot (index 0) can be mapped to physical slot 1 and the second logical slot
|
||||
* can be mapped to either port from physical slot 2.
|
||||
*
|
||||
* slotMap[0] = SlotPortMapping{0, 0} and slotMap[1] = SlotPortMapping{1, 0} or
|
||||
* slotMap[0] = SlotPortMapping{0, 0} and slotMap[1] = SlotPortMapping{1, 1}
|
||||
*
|
||||
* or the other way around, the second logical slot(index 1) can be mapped to physical slot 1
|
||||
* and the first logical slot can be mapped to either port from physical slot 2.
|
||||
*
|
||||
* slotMap[1] = SlotPortMapping{0, 0} and slotMap[0] = SlotPortMapping{1, 0} or
|
||||
* slotMap[1] = SlotPortMapping{0, 0} and slotMap[0] = SlotPortMapping{1, 1}
|
||||
*
|
||||
* another possible mapping is each logical slot maps to each port of physical slot 2 and there
|
||||
* is no active logical modem mapped to physical slot 1.
|
||||
*
|
||||
* slotMap[0] = SlotPortMapping{1, 0} and slotMap[1] = SlotPortMapping{1, 1} or
|
||||
* slotMap[0] = SlotPortMapping{1, 1} and slotMap[1] = SlotPortMapping{1, 0}
|
||||
*
|
||||
* @param serial Serial number of request
|
||||
* @param slotMap Logical to physical slot mapping, size == no. of radio instances. Index is
|
||||
* mapping to logical slot and value to physical slot, need to provide all the slots
|
||||
* mapping when sending request in case of multi slot device.
|
||||
* EX: uint32_t slotMap[logical slot] = physical slot
|
||||
* @param slotMap Logical to physical slot and port mapping.
|
||||
* Index is mapping to logical slot and value to physical slot and port id, need to
|
||||
* provide all the slots mapping when sending request in case of multi slot device.
|
||||
*
|
||||
* EX: SlotPortMapping(physical slot, port id)
|
||||
* index 0 is the first logical_slot number of logical slots is equal to number of Radio
|
||||
* instances and number of physical slots is equal to size of slotStatus in
|
||||
* getSimSlotsStatusResponse
|
||||
*
|
||||
* Response callback is IRadioConfigResponse.setSimSlotsMappingResponse()
|
||||
*/
|
||||
void setSimSlotsMapping(in int serial, in int[] slotMap);
|
||||
void setSimSlotsMapping(in int serial, in SlotPortMapping[] slotMap);
|
||||
}
|
||||
|
|
51
radio/aidl/android/hardware/radio/config/SimPortInfo.aidl
Normal file
51
radio/aidl/android/hardware/radio/config/SimPortInfo.aidl
Normal file
|
@ -0,0 +1,51 @@
|
|||
/*
|
||||
* Copyright (C) 2021 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.
|
||||
*/
|
||||
|
||||
package android.hardware.radio.config;
|
||||
|
||||
@VintfStability
|
||||
parcelable SimPortInfo {
|
||||
/**
|
||||
* Integrated Circuit Card IDentifier (ICCID) is unique identifier of the SIM card. File is
|
||||
* located in the SIM card at EFiccid (0x2FE2) as per ETSI 102.221. The ICCID is defined by
|
||||
* the ITU-T recommendation E.118 ISO/IEC 7816.
|
||||
*
|
||||
* This data is applicable only when cardState is CardStatus.STATE_PRESENT.
|
||||
*
|
||||
* This is the ICCID of the currently enabled profile. If no profile is enabled,
|
||||
* then it will contain the default boot profile’s ICCID.
|
||||
* If the EFiccid does not exist in the default boot profile, it will be null.
|
||||
*/
|
||||
String iccId;
|
||||
/**
|
||||
* Logical slot id is identifier of the active slot
|
||||
*/
|
||||
int logicalSlotId;
|
||||
/*
|
||||
* Port is Inactive
|
||||
* Inactive means logical modem is no longer associated to the port
|
||||
*/
|
||||
const int PORT_STATE_INACTIVE = 0;
|
||||
/*
|
||||
* Port is Active
|
||||
* Active means logical modem is associated to the port
|
||||
*/
|
||||
const int PORT_STATE_ACTIVE = 1;
|
||||
/**
|
||||
* Port state in the slot. Values are portState.[PORT_STATE_INACTIVE, PORT_STATE_ACTIVE].
|
||||
*/
|
||||
int portState;
|
||||
}
|
|
@ -16,6 +16,8 @@
|
|||
|
||||
package android.hardware.radio.config;
|
||||
|
||||
import android.hardware.radio.config.SimPortInfo;
|
||||
|
||||
@VintfStability
|
||||
parcelable SimSlotStatus {
|
||||
boolean cardActive;
|
||||
|
@ -24,10 +26,6 @@ parcelable SimSlotStatus {
|
|||
* STATE_ERROR, STATE_RESTRICTED].
|
||||
*/
|
||||
int cardState;
|
||||
/**
|
||||
* Slot state Active/Inactive
|
||||
*/
|
||||
int slotState;
|
||||
/**
|
||||
* An Answer To Reset (ATR) is a message output by a Smart Card conforming to ISO/IEC 7816
|
||||
* standards, following electrical reset of the card's chip. The ATR conveys information about
|
||||
|
@ -36,15 +34,6 @@ parcelable SimSlotStatus {
|
|||
* This data is applicable only when cardState is CardStatus.STATE_PRESENT.
|
||||
*/
|
||||
String atr;
|
||||
int logicalSlotId;
|
||||
/**
|
||||
* Integrated Circuit Card IDentifier (ICCID) is Unique Identifier of the SIM CARD. File is
|
||||
* located in the SIM card at EFiccid (0x2FE2) as per ETSI 102.221. The ICCID is defined by
|
||||
* the ITU-T recommendation E.118 ISO/IEC 7816.
|
||||
*
|
||||
* This data is applicable only when cardState is CardStatus.STATE_PRESENT.
|
||||
*/
|
||||
String iccid;
|
||||
/**
|
||||
* The EID is the eUICC identifier. The EID shall be stored within the ECASD and can be
|
||||
* retrieved by the Device at any time using the standard GlobalPlatform GET DATA command.
|
||||
|
@ -53,4 +42,8 @@ parcelable SimSlotStatus {
|
|||
* card supports eUICC.
|
||||
*/
|
||||
String eid;
|
||||
/**
|
||||
* PortInfo contains the ICCID, logical slot ID, and port state
|
||||
*/
|
||||
SimPortInfo[] portInfo;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
* Copyright (C) 2021 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.
|
||||
*/
|
||||
|
||||
package android.hardware.radio.config;
|
||||
|
||||
@VintfStability
|
||||
parcelable SlotPortMapping {
|
||||
/**
|
||||
* Physical slot id is the index of the slots
|
||||
**/
|
||||
int physicalSlotId;
|
||||
/**
|
||||
* PortId is the id (enumerated value) for the associated port available on the SIM.
|
||||
* Example:
|
||||
* if eUICC1 supports 2 ports, then the portId is numbered 0,1.
|
||||
* if eUICC2 supports 4 ports, then the portId is numbered: 0,1,2,3.
|
||||
* Each portId is unique within a UICC, but not necessarily unique across UICC’s.
|
||||
* SEP(Single enabled profile) eUICC and non-eUICC will only have portId 0.
|
||||
**/
|
||||
int portId;
|
||||
}
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
package android.hardware.radio.sim;
|
||||
|
||||
import android.hardware.radio.config.SlotPortMapping;
|
||||
import android.hardware.radio.sim.AppStatus;
|
||||
import android.hardware.radio.sim.PinState;
|
||||
|
||||
|
@ -61,7 +62,6 @@ parcelable CardStatus {
|
|||
* size <= RadioConst::CARD_MAX_APPS
|
||||
*/
|
||||
AppStatus[] applications;
|
||||
int physicalSlotId;
|
||||
/**
|
||||
* An Answer To Reset (ATR) is a message output by a Smart Card conforming to ISO/IEC 7816
|
||||
* standards, following electrical reset of the card's chip. The ATR conveys information about
|
||||
|
@ -86,4 +86,10 @@ parcelable CardStatus {
|
|||
* supports eUICC.
|
||||
*/
|
||||
String eid;
|
||||
/* SlotPortMapping:
|
||||
* SlotPortMapping consists of physical slot id and port id.
|
||||
* Physical slot is the actual physical slot.
|
||||
* PortId is the id (enumerated value) for the associated port available on the SIM.
|
||||
*/
|
||||
SlotPortMapping slotMap;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue