From 5b6498336d74cae64354839ab22d45ae82a74cb8 Mon Sep 17 00:00:00 2001 From: Myles Watson Date: Fri, 4 Nov 2022 09:16:58 -0700 Subject: [PATCH] Radio: hidl2aidl for ISap interface Convert the ISap HIDL interface to AIDL using the script Move ISap into android.hardware.radio.sap Bug: 241969533 Test: new VTS Test Change-Id: Ifee8c16e939f02ee4bbdb2fee23ce78b5e48df50 --- radio/aidl/Android.bp | 17 ++ .../android/hardware/radio/sap/ISap.aidl | 46 ++++++ .../hardware/radio/sap/ISapCallback.aidl | 48 ++++++ .../hardware/radio/sap/SapApduType.aidl | 39 +++++ .../hardware/radio/sap/SapConnectRsp.aidl | 42 +++++ .../hardware/radio/sap/SapDisconnectType.aidl | 39 +++++ .../hardware/radio/sap/SapResultCode.aidl | 45 ++++++ .../android/hardware/radio/sap/SapStatus.aidl | 43 +++++ .../radio/sap/SapTransferProtocol.aidl | 39 +++++ .../aidl/android/hardware/radio/sap/ISap.aidl | 92 +++++++++++ .../hardware/radio/sap/ISapCallback.aidl | 152 ++++++++++++++++++ .../hardware/radio/sap/SapApduType.aidl | 24 +++ .../hardware/radio/sap/SapConnectRsp.aidl | 27 ++++ .../hardware/radio/sap/SapDisconnectType.aidl | 24 +++ .../hardware/radio/sap/SapResultCode.aidl | 30 ++++ .../android/hardware/radio/sap/SapStatus.aidl | 28 ++++ .../radio/sap/SapTransferProtocol.aidl | 24 +++ 17 files changed, 759 insertions(+) create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/ISap.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/ISapCallback.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/SapApduType.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/SapConnectRsp.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/SapDisconnectType.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/SapResultCode.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/SapStatus.aidl create mode 100644 radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/SapTransferProtocol.aidl create mode 100644 radio/aidl/android/hardware/radio/sap/ISap.aidl create mode 100644 radio/aidl/android/hardware/radio/sap/ISapCallback.aidl create mode 100644 radio/aidl/android/hardware/radio/sap/SapApduType.aidl create mode 100644 radio/aidl/android/hardware/radio/sap/SapConnectRsp.aidl create mode 100644 radio/aidl/android/hardware/radio/sap/SapDisconnectType.aidl create mode 100644 radio/aidl/android/hardware/radio/sap/SapResultCode.aidl create mode 100644 radio/aidl/android/hardware/radio/sap/SapStatus.aidl create mode 100644 radio/aidl/android/hardware/radio/sap/SapTransferProtocol.aidl diff --git a/radio/aidl/Android.bp b/radio/aidl/Android.bp index 930b6d4809..9caa97a990 100644 --- a/radio/aidl/Android.bp +++ b/radio/aidl/Android.bp @@ -152,6 +152,23 @@ aidl_interface { } +aidl_interface { + name: "android.hardware.radio.sap", + vendor_available: true, + host_supported: true, + srcs: ["android/hardware/radio/sap/*.aidl"], + stability: "vintf", + backend: { + cpp: { + enabled: true, + }, + java: { + sdk_version: "module_current", + }, + }, + +} + aidl_interface { name: "android.hardware.radio.sim", vendor_available: true, diff --git a/radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/ISap.aidl b/radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/ISap.aidl new file mode 100644 index 0000000000..37391e9804 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/ISap.aidl @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 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 -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.sap; +@VintfStability +interface ISap { + oneway void apduReq(in int serial, in android.hardware.radio.sap.SapApduType type, in byte[] command); + oneway void connectReq(in int serial, in int maxMsgSizeBytes); + oneway void disconnectReq(in int serial); + oneway void powerReq(in int serial, in boolean powerOn); + oneway void resetSimReq(in int serial); + oneway void setCallback(in android.hardware.radio.sap.ISapCallback sapCallback); + oneway void setTransferProtocolReq(in int serial, in android.hardware.radio.sap.SapTransferProtocol transferProtocol); + oneway void transferAtrReq(in int serial); + oneway void transferCardReaderStatusReq(in int serial); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/ISapCallback.aidl b/radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/ISapCallback.aidl new file mode 100644 index 0000000000..d507709a6d --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/ISapCallback.aidl @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2022 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 -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.sap; +@VintfStability +interface ISapCallback { + oneway void apduResponse(in int serial, in android.hardware.radio.sap.SapResultCode resultCode, in byte[] apduRsp); + oneway void connectResponse(in int serial, in android.hardware.radio.sap.SapConnectRsp sapConnectRsp, in int maxMsgSizeBytes); + oneway void disconnectIndication(in int serial, in android.hardware.radio.sap.SapDisconnectType disconnectType); + oneway void disconnectResponse(in int serial); + oneway void errorResponse(in int serial); + oneway void powerResponse(in int serial, in android.hardware.radio.sap.SapResultCode resultCode); + oneway void resetSimResponse(in int serial, in android.hardware.radio.sap.SapResultCode resultCode); + oneway void statusIndication(in int serial, in android.hardware.radio.sap.SapStatus status); + oneway void transferAtrResponse(in int serial, in android.hardware.radio.sap.SapResultCode resultCode, in byte[] atr); + oneway void transferCardReaderStatusResponse(in int serial, in android.hardware.radio.sap.SapResultCode resultCode, in int cardReaderStatus); + oneway void transferProtocolResponse(in int serial, in android.hardware.radio.sap.SapResultCode resultCode); +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/SapApduType.aidl b/radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/SapApduType.aidl new file mode 100644 index 0000000000..e0e2a03956 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/SapApduType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 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 -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.sap; +@Backing(type="int") @VintfStability +enum SapApduType { + APDU = 0, + APDU7816 = 1, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/SapConnectRsp.aidl b/radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/SapConnectRsp.aidl new file mode 100644 index 0000000000..aceac3789c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/SapConnectRsp.aidl @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2022 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 -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.sap; +@Backing(type="int") @VintfStability +enum SapConnectRsp { + SUCCESS = 0, + CONNECT_FAILURE = 1, + MSG_SIZE_TOO_LARGE = 2, + MSG_SIZE_TOO_SMALL = 3, + CONNECT_OK_CALL_ONGOING = 4, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/SapDisconnectType.aidl b/radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/SapDisconnectType.aidl new file mode 100644 index 0000000000..0447f9b083 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/SapDisconnectType.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 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 -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.sap; +@Backing(type="int") @VintfStability +enum SapDisconnectType { + GRACEFUL = 0, + IMMEDIATE = 1, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/SapResultCode.aidl b/radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/SapResultCode.aidl new file mode 100644 index 0000000000..1db226b43c --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/SapResultCode.aidl @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2022 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 -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.sap; +@Backing(type="int") @VintfStability +enum SapResultCode { + SUCCESS = 0, + GENERIC_FAILURE = 1, + CARD_NOT_ACCESSSIBLE = 2, + CARD_ALREADY_POWERED_OFF = 3, + CARD_REMOVED = 4, + CARD_ALREADY_POWERED_ON = 5, + DATA_NOT_AVAILABLE = 6, + NOT_SUPPORTED = 7, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/SapStatus.aidl b/radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/SapStatus.aidl new file mode 100644 index 0000000000..32f71c218a --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/SapStatus.aidl @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2022 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 -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.sap; +@Backing(type="int") @VintfStability +enum SapStatus { + UNKNOWN_ERROR = 0, + CARD_RESET = 1, + CARD_NOT_ACCESSIBLE = 2, + CARD_REMOVED = 3, + CARD_INSERTED = 4, + RECOVERED = 5, +} diff --git a/radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/SapTransferProtocol.aidl b/radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/SapTransferProtocol.aidl new file mode 100644 index 0000000000..e3ffdb0702 --- /dev/null +++ b/radio/aidl/aidl_api/android.hardware.radio.sap/current/android/hardware/radio/sap/SapTransferProtocol.aidl @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 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 -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.sap; +@Backing(type="int") @VintfStability +enum SapTransferProtocol { + T0 = 0, + T1 = 1, +} diff --git a/radio/aidl/android/hardware/radio/sap/ISap.aidl b/radio/aidl/android/hardware/radio/sap/ISap.aidl new file mode 100644 index 0000000000..552e602b75 --- /dev/null +++ b/radio/aidl/android/hardware/radio/sap/ISap.aidl @@ -0,0 +1,92 @@ +/* + * Copyright (C) 2022 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.sap; + +import android.hardware.radio.sap.ISapCallback; +import android.hardware.radio.sap.SapApduType; +import android.hardware.radio.sap.SapTransferProtocol; + +@VintfStability +oneway interface ISap { + /** + * TRANSFER_APDU_REQ from SAP 1.1 spec 5.1.6 + * + * @param serial Id to match req-resp. Resp must include same serial. + * @param type APDU command type + * @param command CommandAPDU/CommandAPDU7816 parameter depending on type + */ + void apduReq(in int serial, in SapApduType type, in byte[] command); + + /** + * CONNECT_REQ from SAP 1.1 spec 5.1.1 + * + * @param serial Id to match req-resp. Resp must include same serial. + * @param maxMsgSizeBytes MaxMsgSize to be used for SIM Access Profile connection + */ + void connectReq(in int serial, in int maxMsgSizeBytes); + + /** + * DISCONNECT_REQ from SAP 1.1 spec 5.1.3 + * + * @param serial Id to match req-resp. Resp must include same serial. + */ + void disconnectReq(in int serial); + + /** + * POWER_SIM_OFF_REQ and POWER_SIM_ON_REQ from SAP 1.1 spec 5.1.10 + 5.1.12 + * + * @param serial Id to match req-resp. Resp must include same serial. + * @param powerOn true for on, false for off + */ + void powerReq(in int serial, in boolean powerOn); + + /** + * RESET_SIM_REQ from SAP 1.1 spec 5.1.14 + * + * @param serial Id to match req-resp. Resp must include same serial. + */ + void resetSimReq(in int serial); + + /** + * Set callback that has response and unsolicited indication functions + * + * @param sapCallback Object containing response and unosolicited indication callbacks + */ + void setCallback(in ISapCallback sapCallback); + + /** + * SET_TRANSPORT_PROTOCOL_REQ from SAP 1.1 spec 5.1.20 + * + * @param serial Id to match req-resp. Resp must include same serial. + * @param transferProtocol Transport Protocol + */ + void setTransferProtocolReq(in int serial, in SapTransferProtocol transferProtocol); + + /** + * TRANSFER_ATR_REQ from SAP 1.1 spec 5.1.8 + * + * @param serial Id to match req-resp. Resp must include same serial. + */ + void transferAtrReq(in int serial); + + /** + * TRANSFER_CARD_READER_STATUS_REQ from SAP 1.1 spec 5.1.17 + * + * @param serial Id to match req-resp. Resp must include same serial. + */ + void transferCardReaderStatusReq(in int serial); +} diff --git a/radio/aidl/android/hardware/radio/sap/ISapCallback.aidl b/radio/aidl/android/hardware/radio/sap/ISapCallback.aidl new file mode 100644 index 0000000000..34111eb7ff --- /dev/null +++ b/radio/aidl/android/hardware/radio/sap/ISapCallback.aidl @@ -0,0 +1,152 @@ +/* + * Copyright (C) 2022 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.sap; + +import android.hardware.radio.sap.SapConnectRsp; +import android.hardware.radio.sap.SapDisconnectType; +import android.hardware.radio.sap.SapResultCode; +import android.hardware.radio.sap.SapStatus; + +@VintfStability +oneway interface ISapCallback { + /** + * TRANSFER_APDU_RESP from SAP 1.1 spec 5.1.7 + * + * @param serial Id to match req-resp. Value must match the one in req. + * @param resultCode ResultCode to indicate if command was processed correctly + * Possible values: + * SapResultCode:SUCCESS, + * SapResultCode:GENERIC_FAILURE, + * SapResultCode:CARD_NOT_ACCESSSIBLE, + * SapResultCode:CARD_ALREADY_POWERED_OFF, + * SapResultCode:CARD_REMOVED + * @param apduRsp APDU Response. Valid only if command was processed correctly and no error + * occurred. + */ + void apduResponse(in int serial, in SapResultCode resultCode, in byte[] apduRsp); + + /** + * CONNECT_RESP from SAP 1.1 spec 5.1.2 + * + * @param serial Id to match req-resp. Value must match the one in req. + * @param sapConnectRsp Connection Status + * @param maxMsgSizeBytes MaxMsgSize supported by server if request cannot be fulfilled. + * Valid only if connectResponse is SapConnectResponse:MSG_SIZE_TOO_LARGE. + */ + void connectResponse(in int serial, in SapConnectRsp sapConnectRsp, in int maxMsgSizeBytes); + + /** + * DISCONNECT_IND from SAP 1.1 spec 5.1.5 + * + * @param serial Id to match req-resp. Value must match the one in req. + * @param disconnectType Disconnect Type to indicate if shutdown is graceful or immediate + */ + void disconnectIndication(in int serial, in SapDisconnectType disconnectType); + + /** + * DISCONNECT_RESP from SAP 1.1 spec 5.1.4 + * + * @param serial Id to match req-resp. Value must match the one in req. + */ + void disconnectResponse(in int serial); + + /** + * ERROR_RESP from SAP 1.1 spec 5.1.19 + * + * @param serial Id to match req-resp. Value must match the one in req. + */ + void errorResponse(in int serial); + + /** + * POWER_SIM_OFF_RESP and POWER_SIM_ON_RESP from SAP 1.1 spec 5.1.11 + 5.1.13 + * + * @param serial Id to match req-resp. Value must match the one in req. + * @param resultCode ResultCode to indicate if command was processed correctly + * Possible values: + * SapResultCode:SUCCESS, + * SapResultCode:GENERIC_FAILURE, + * SapResultCode:CARD_NOT_ACCESSSIBLE, (possible only for power on req) + * SapResultCode:CARD_ALREADY_POWERED_OFF, (possible only for power off req) + * SapResultCode:CARD_REMOVED, + * SapResultCode:CARD_ALREADY_POWERED_ON (possible only for power on req) + */ + void powerResponse(in int serial, in SapResultCode resultCode); + + /** + * RESET_SIM_RESP from SAP 1.1 spec 5.1.15 + * + * @param serial Id to match req-resp. Value must match the one in req. + * @param resultCode ResultCode to indicate if command was processed correctly + * Possible values: + * SapResultCode:SUCCESS, + * SapResultCode:GENERIC_FAILURE, + * SapResultCode:CARD_NOT_ACCESSSIBLE, + * SapResultCode:CARD_ALREADY_POWERED_OFF, + * SapResultCode:CARD_REMOVED + */ + void resetSimResponse(in int serial, in SapResultCode resultCode); + + /** + * STATUS_IND from SAP 1.1 spec 5.1.16 + * + * @param serial Id to match req-resp. Value must match the one in req. + * @param status Parameter to indicate reason for the status change. + */ + void statusIndication(in int serial, in SapStatus status); + + /** + * TRANSFER_ATR_RESP from SAP 1.1 spec 5.1.9 + * + * @param serial Id to match req-resp. Value must match the one in req. + * @param resultCode ResultCode to indicate if command was processed correctly + * Possible values: + * SapResultCode:SUCCESS, + * SapResultCode:GENERIC_FAILURE, + * SapResultCode:CARD_ALREADY_POWERED_OFF, + * SapResultCode:CARD_REMOVED, + * SapResultCode:DATA_NOT_AVAILABLE + * @param atr Answer to Reset from the subscription module. Included only if no error occurred, + * otherwise empty. + */ + void transferAtrResponse(in int serial, in SapResultCode resultCode, in byte[] atr); + + /** + * TRANSFER_CARD_READER_STATUS_REQ from SAP 1.1 spec 5.1.18 + * + * @param serial Id to match req-resp. Value must match the one in req. + * @param resultCode ResultCode to indicate if command was processed correctly + * Possible values: + * SapResultCode:SUCCESS, + * SapResultCode:GENERIC_FAILURE + * SapResultCode:DATA_NOT_AVAILABLE + * @param cardReaderStatus Card Reader Status coded as described in 3GPP TS 11.14 Section 12.33 + * and TS 31.111 Section 8.33 + */ + void transferCardReaderStatusResponse( + in int serial, in SapResultCode resultCode, in int cardReaderStatus); + + /** + * SET_TRANSPORT_PROTOCOL_RESP from SAP 1.1 spec 5.1.21 + * + * @param serial Id to match req-resp. Value must match the one in req. + * @param resultCode ResultCode to indicate if command was processed correctly + * Possible values: + * SapResultCode:SUCCESS + * SapResultCode:NOT_SUPPORTED + */ + void transferProtocolResponse(in int serial, in SapResultCode resultCode); +} diff --git a/radio/aidl/android/hardware/radio/sap/SapApduType.aidl b/radio/aidl/android/hardware/radio/sap/SapApduType.aidl new file mode 100644 index 0000000000..ab8ffb9f72 --- /dev/null +++ b/radio/aidl/android/hardware/radio/sap/SapApduType.aidl @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2022 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.sap; + +@VintfStability +@Backing(type="int") +enum SapApduType { + APDU, + APDU7816, +} diff --git a/radio/aidl/android/hardware/radio/sap/SapConnectRsp.aidl b/radio/aidl/android/hardware/radio/sap/SapConnectRsp.aidl new file mode 100644 index 0000000000..0e1d528c1c --- /dev/null +++ b/radio/aidl/android/hardware/radio/sap/SapConnectRsp.aidl @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2022 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.sap; + +@VintfStability +@Backing(type="int") +enum SapConnectRsp { + SUCCESS, + CONNECT_FAILURE, + MSG_SIZE_TOO_LARGE, + MSG_SIZE_TOO_SMALL, + CONNECT_OK_CALL_ONGOING, +} diff --git a/radio/aidl/android/hardware/radio/sap/SapDisconnectType.aidl b/radio/aidl/android/hardware/radio/sap/SapDisconnectType.aidl new file mode 100644 index 0000000000..16d7cc6d83 --- /dev/null +++ b/radio/aidl/android/hardware/radio/sap/SapDisconnectType.aidl @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2022 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.sap; + +@VintfStability +@Backing(type="int") +enum SapDisconnectType { + GRACEFUL, + IMMEDIATE, +} diff --git a/radio/aidl/android/hardware/radio/sap/SapResultCode.aidl b/radio/aidl/android/hardware/radio/sap/SapResultCode.aidl new file mode 100644 index 0000000000..4728ebe69a --- /dev/null +++ b/radio/aidl/android/hardware/radio/sap/SapResultCode.aidl @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2022 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.sap; + +@VintfStability +@Backing(type="int") +enum SapResultCode { + SUCCESS, + GENERIC_FAILURE, + CARD_NOT_ACCESSSIBLE, + CARD_ALREADY_POWERED_OFF, + CARD_REMOVED, + CARD_ALREADY_POWERED_ON, + DATA_NOT_AVAILABLE, + NOT_SUPPORTED, +} diff --git a/radio/aidl/android/hardware/radio/sap/SapStatus.aidl b/radio/aidl/android/hardware/radio/sap/SapStatus.aidl new file mode 100644 index 0000000000..309352de68 --- /dev/null +++ b/radio/aidl/android/hardware/radio/sap/SapStatus.aidl @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2022 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.sap; + +@VintfStability +@Backing(type="int") +enum SapStatus { + UNKNOWN_ERROR, + CARD_RESET, + CARD_NOT_ACCESSIBLE, + CARD_REMOVED, + CARD_INSERTED, + RECOVERED, +} diff --git a/radio/aidl/android/hardware/radio/sap/SapTransferProtocol.aidl b/radio/aidl/android/hardware/radio/sap/SapTransferProtocol.aidl new file mode 100644 index 0000000000..823c5f2830 --- /dev/null +++ b/radio/aidl/android/hardware/radio/sap/SapTransferProtocol.aidl @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2022 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.sap; + +@VintfStability +@Backing(type="int") +enum SapTransferProtocol { + T0, + T1, +}