mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 22:04:26 +00:00
Merge "[Android T][MEP]: HAL changes for MEP feature" am: d45fd704fe am: 7ab5066b55
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1839796 Change-Id: I4e072734ed53c886dbdce260b8828f97128bd004
This commit is contained in:
@@ -137,7 +137,10 @@ aidl_interface {
|
|||||||
vendor_available: true,
|
vendor_available: true,
|
||||||
srcs: ["android/hardware/radio/sim/*.aidl"],
|
srcs: ["android/hardware/radio/sim/*.aidl"],
|
||||||
stability: "vintf",
|
stability: "vintf",
|
||||||
imports: ["android.hardware.radio"],
|
imports: [
|
||||||
|
"android.hardware.radio",
|
||||||
|
"android.hardware.radio.config",
|
||||||
|
],
|
||||||
backend: {
|
backend: {
|
||||||
cpp: {
|
cpp: {
|
||||||
enabled: false,
|
enabled: false,
|
||||||
|
|||||||
@@ -49,5 +49,5 @@ interface IRadioConfig {
|
|||||||
oneway void setNumOfLiveModems(in int serial, in byte numOfLiveModems);
|
oneway void setNumOfLiveModems(in int serial, in byte numOfLiveModems);
|
||||||
oneway void setPreferredDataModem(in int serial, in byte modemId);
|
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 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 {
|
parcelable SimSlotStatus {
|
||||||
boolean cardActive;
|
boolean cardActive;
|
||||||
int cardState;
|
int cardState;
|
||||||
int slotState;
|
|
||||||
String atr;
|
String atr;
|
||||||
int logicalSlotId;
|
|
||||||
String iccid;
|
|
||||||
String eid;
|
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 cdmaSubscriptionAppIndex;
|
||||||
int imsSubscriptionAppIndex;
|
int imsSubscriptionAppIndex;
|
||||||
android.hardware.radio.sim.AppStatus[] applications;
|
android.hardware.radio.sim.AppStatus[] applications;
|
||||||
int physicalSlotId;
|
|
||||||
String atr;
|
String atr;
|
||||||
String iccid;
|
String iccid;
|
||||||
String eid;
|
String eid;
|
||||||
|
android.hardware.radio.config.SlotPortMapping slotMap;
|
||||||
const int STATE_ABSENT = 0;
|
const int STATE_ABSENT = 0;
|
||||||
const int STATE_PRESENT = 1;
|
const int STATE_PRESENT = 1;
|
||||||
const int STATE_ERROR = 2;
|
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.IRadioConfigIndication;
|
||||||
import android.hardware.radio.config.IRadioConfigResponse;
|
import android.hardware.radio.config.IRadioConfigResponse;
|
||||||
|
import android.hardware.radio.config.SlotPortMapping;
|
||||||
|
|
||||||
@VintfStability
|
@VintfStability
|
||||||
oneway interface IRadioConfig {
|
oneway interface IRadioConfig {
|
||||||
@@ -120,30 +121,57 @@ oneway interface IRadioConfig {
|
|||||||
/**
|
/**
|
||||||
* Set SIM Slot mapping.
|
* Set SIM Slot mapping.
|
||||||
*
|
*
|
||||||
* Maps the logical slots to the physical slots. Logical slot is the slot that is seen by modem.
|
* Maps the logical slots to the SlotPortMapping which consist of both physical slot id and port
|
||||||
* Physical slot is the actual physical slot. Request maps the physical slot to logical slot.
|
* id. Logical slot is the slot that is seen by modem. Physical slot is the actual physical
|
||||||
* Logical slots that are already mapped to the requested physical slot are not impacted.
|
* 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:
|
* Logical slots that are already mapped to the requested SlotPortMapping are not impacted.
|
||||||
* 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
|
|
||||||
*
|
*
|
||||||
* Example no. of logical slots 2 and physical slots 2:
|
* Example no. of logical slots 1 and physical slots 2 do not support MEP, each physical slot
|
||||||
* First logical slot (index 0) can be mapped to physical slot 1 or 2 and other logical slot
|
* has one port:
|
||||||
* can be mapped to other physical slot. Each logical slot must be mapped to a physical slot.
|
* The only logical slot (index 0) can be mapped to first physical slot (value 0), port(index
|
||||||
* slotMap[0] = 0 and slotMap[1] = 1 or slotMap[0] = 1 and slotMap[1] = 0
|
* 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 serial Serial number of request
|
||||||
* @param slotMap Logical to physical slot mapping, size == no. of radio instances. Index is
|
* @param slotMap Logical to physical slot and port mapping.
|
||||||
* mapping to logical slot and value to physical slot, need to provide all the slots
|
* Index is mapping to logical slot and value to physical slot and port id, need to
|
||||||
* mapping when sending request in case of multi slot device.
|
* provide all the slots mapping when sending request in case of multi slot device.
|
||||||
* EX: uint32_t slotMap[logical slot] = physical slot
|
*
|
||||||
|
* EX: SlotPortMapping(physical slot, port id)
|
||||||
* index 0 is the first logical_slot number of logical slots is equal to number of Radio
|
* 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
|
* instances and number of physical slots is equal to size of slotStatus in
|
||||||
* getSimSlotsStatusResponse
|
* getSimSlotsStatusResponse
|
||||||
*
|
*
|
||||||
* Response callback is IRadioConfigResponse.setSimSlotsMappingResponse()
|
* 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;
|
package android.hardware.radio.config;
|
||||||
|
|
||||||
|
import android.hardware.radio.config.SimPortInfo;
|
||||||
|
|
||||||
@VintfStability
|
@VintfStability
|
||||||
parcelable SimSlotStatus {
|
parcelable SimSlotStatus {
|
||||||
boolean cardActive;
|
boolean cardActive;
|
||||||
@@ -24,10 +26,6 @@ parcelable SimSlotStatus {
|
|||||||
* STATE_ERROR, STATE_RESTRICTED].
|
* STATE_ERROR, STATE_RESTRICTED].
|
||||||
*/
|
*/
|
||||||
int cardState;
|
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
|
* 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
|
* 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.
|
* This data is applicable only when cardState is CardStatus.STATE_PRESENT.
|
||||||
*/
|
*/
|
||||||
String atr;
|
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
|
* 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.
|
* retrieved by the Device at any time using the standard GlobalPlatform GET DATA command.
|
||||||
@@ -53,4 +42,8 @@ parcelable SimSlotStatus {
|
|||||||
* card supports eUICC.
|
* card supports eUICC.
|
||||||
*/
|
*/
|
||||||
String eid;
|
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;
|
package android.hardware.radio.sim;
|
||||||
|
|
||||||
|
import android.hardware.radio.config.SlotPortMapping;
|
||||||
import android.hardware.radio.sim.AppStatus;
|
import android.hardware.radio.sim.AppStatus;
|
||||||
import android.hardware.radio.sim.PinState;
|
import android.hardware.radio.sim.PinState;
|
||||||
|
|
||||||
@@ -61,7 +62,6 @@ parcelable CardStatus {
|
|||||||
* size <= RadioConst::CARD_MAX_APPS
|
* size <= RadioConst::CARD_MAX_APPS
|
||||||
*/
|
*/
|
||||||
AppStatus[] applications;
|
AppStatus[] applications;
|
||||||
int physicalSlotId;
|
|
||||||
/**
|
/**
|
||||||
* An Answer To Reset (ATR) is a message output by a Smart Card conforming to ISO/IEC 7816
|
* 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
|
* standards, following electrical reset of the card's chip. The ATR conveys information about
|
||||||
@@ -86,4 +86,10 @@ parcelable CardStatus {
|
|||||||
* supports eUICC.
|
* supports eUICC.
|
||||||
*/
|
*/
|
||||||
String eid;
|
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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user