diff options
18 files changed, 699 insertions, 13 deletions
diff --git a/Android.bp b/Android.bp index 1793dd5c4590..75dfbb5d0fc3 100644 --- a/Android.bp +++ b/Android.bp @@ -523,9 +523,21 @@ java_library { "telephony/java/com/android/internal/telephony/ITelephony.aidl", "telephony/java/com/android/internal/telephony/ITelephonyRegistry.aidl", "telephony/java/com/android/internal/telephony/IWapPushManager.aidl", + "telephony/java/com/android/internal/telephony/euicc/IAuthenticateServerCallback.aidl", + "telephony/java/com/android/internal/telephony/euicc/ICancelSessionCallback.aidl", "telephony/java/com/android/internal/telephony/euicc/IEuiccCardController.aidl", "telephony/java/com/android/internal/telephony/euicc/IEuiccController.aidl", "telephony/java/com/android/internal/telephony/euicc/IGetAllProfilesCallback.aidl", + "telephony/java/com/android/internal/telephony/euicc/IGetEuiccChallengeCallback.aidl", + "telephony/java/com/android/internal/telephony/euicc/IGetEuiccInfo1Callback.aidl", + "telephony/java/com/android/internal/telephony/euicc/IGetEuiccInfo2Callback.aidl", + "telephony/java/com/android/internal/telephony/euicc/IGetRulesAuthTableCallback.aidl", + "telephony/java/com/android/internal/telephony/euicc/IListNotificationsCallback.aidl", + "telephony/java/com/android/internal/telephony/euicc/ILoadBoundProfilePackageCallback.aidl", + "telephony/java/com/android/internal/telephony/euicc/IPrepareDownloadCallback.aidl", + "telephony/java/com/android/internal/telephony/euicc/IRemoveNotificationFromListCallback.aidl", + "telephony/java/com/android/internal/telephony/euicc/IRetrieveNotificationCallback.aidl", + "telephony/java/com/android/internal/telephony/euicc/IRetrieveNotificationListCallback.aidl", "wifi/java/android/net/wifi/IWifiManager.aidl", "wifi/java/android/net/wifi/aware/IWifiAwareDiscoverySessionCallback.aidl", "wifi/java/android/net/wifi/aware/IWifiAwareEventCallback.aidl", diff --git a/telephony/java/android/telephony/euicc/EuiccCardManager.java b/telephony/java/android/telephony/euicc/EuiccCardManager.java index 29849c1f9ccd..6975354c8af1 100644 --- a/telephony/java/android/telephony/euicc/EuiccCardManager.java +++ b/telephony/java/android/telephony/euicc/EuiccCardManager.java @@ -15,14 +15,31 @@ */ package android.telephony.euicc; +import android.annotation.IntDef; +import android.annotation.Nullable; import android.content.Context; import android.os.RemoteException; import android.os.ServiceManager; import android.service.euicc.EuiccProfileInfo; import android.util.Log; +import com.android.internal.telephony.euicc.IAuthenticateServerCallback; +import com.android.internal.telephony.euicc.ICancelSessionCallback; import com.android.internal.telephony.euicc.IEuiccCardController; import com.android.internal.telephony.euicc.IGetAllProfilesCallback; +import com.android.internal.telephony.euicc.IGetEuiccChallengeCallback; +import com.android.internal.telephony.euicc.IGetEuiccInfo1Callback; +import com.android.internal.telephony.euicc.IGetEuiccInfo2Callback; +import com.android.internal.telephony.euicc.IGetRulesAuthTableCallback; +import com.android.internal.telephony.euicc.IListNotificationsCallback; +import com.android.internal.telephony.euicc.ILoadBoundProfilePackageCallback; +import com.android.internal.telephony.euicc.IPrepareDownloadCallback; +import com.android.internal.telephony.euicc.IRemoveNotificationFromListCallback; +import com.android.internal.telephony.euicc.IRetrieveNotificationCallback; +import com.android.internal.telephony.euicc.IRetrieveNotificationListCallback; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; /** * EuiccCardManager is the application interface to an eSIM card. @@ -34,6 +51,35 @@ import com.android.internal.telephony.euicc.IGetAllProfilesCallback; public class EuiccCardManager { private static final String TAG = "EuiccCardManager"; + /** Reason for canceling a profile download session */ + @Retention(RetentionPolicy.SOURCE) + @IntDef(prefix = { "CANCEL_REASON_" }, value = { + CANCEL_REASON_END_USER_REJECTED, + CANCEL_REASON_POSTPONED, + CANCEL_REASON_TIMEOUT, + CANCEL_REASON_PPR_NOT_ALLOWED + }) + public @interface CancelReason {} + + /** + * The end user has rejected the download. The profile will be put into the error state and + * cannot be downloaded again without the operator's change. + */ + public static final int CANCEL_REASON_END_USER_REJECTED = 0; + + /** The download has been postponed and can be restarted later. */ + public static final int CANCEL_REASON_POSTPONED = 1; + + /** The download has been timed out and can be restarted later. */ + public static final int CANCEL_REASON_TIMEOUT = 2; + + /** + * The profile to be downloaded cannot be installed due to its policy rule is not allowed by + * the RAT (Rules Authorisation Table) on the eUICC or by other installed profiles. The + * download can be restarted later. + */ + public static final int CANCEL_REASON_PPR_NOT_ALLOWED = 3; + /** Result code of execution with no error. */ public static final int RESULT_OK = 0; @@ -85,4 +131,298 @@ public class EuiccCardManager { throw e.rethrowFromSystemServer(); } } + + /** + * Gets Rules Authorisation Table. + * + * @param callback the callback to get the result code and the rule authorisation table. + */ + public void getRulesAuthTable(ResultCallback<EuiccRulesAuthTable> callback) { + try { + getIEuiccCardController().getRulesAuthTable(mContext.getOpPackageName(), + new IGetRulesAuthTableCallback.Stub() { + @Override + public void onComplete(int resultCode, EuiccRulesAuthTable rat) { + callback.onComplete(resultCode, rat); + } + }); + } catch (RemoteException e) { + Log.e(TAG, "Error calling getRulesAuthTable", e); + throw e.rethrowFromSystemServer(); + } + } + + /** + * Gets the eUICC challenge for new profile downloading. + * + * @param callback the callback to get the result code and the challenge. + */ + public void getEuiccChallenge(ResultCallback<byte[]> callback) { + try { + getIEuiccCardController().getEuiccChallenge(mContext.getOpPackageName(), + new IGetEuiccChallengeCallback.Stub() { + @Override + public void onComplete(int resultCode, byte[] challenge) { + callback.onComplete(resultCode, challenge); + } + }); + } catch (RemoteException e) { + Log.e(TAG, "Error calling getEuiccChallenge", e); + throw e.rethrowFromSystemServer(); + } + } + + /** + * Gets the eUICC info1 defined in GSMA RSP v2.0+ for new profile downloading. + * + * @param callback the callback to get the result code and the info1. + */ + public void getEuiccInfo1(ResultCallback<byte[]> callback) { + try { + getIEuiccCardController().getEuiccInfo1(mContext.getOpPackageName(), + new IGetEuiccInfo1Callback.Stub() { + @Override + public void onComplete(int resultCode, byte[] info) { + callback.onComplete(resultCode, info); + } + }); + } catch (RemoteException e) { + Log.e(TAG, "Error calling getEuiccInfo1", e); + throw e.rethrowFromSystemServer(); + } + } + + /** + * Gets the eUICC info2 defined in GSMA RSP v2.0+ for new profile downloading. + * + * @param callback the callback to get the result code and the info2. + */ + public void getEuiccInfo2(ResultCallback<byte[]> callback) { + try { + getIEuiccCardController().getEuiccInfo2(mContext.getOpPackageName(), + new IGetEuiccInfo2Callback.Stub() { + @Override + public void onComplete(int resultCode, byte[] info) { + callback.onComplete(resultCode, info); + } + }); + } catch (RemoteException e) { + Log.e(TAG, "Error calling getEuiccInfo2", e); + throw e.rethrowFromSystemServer(); + } + } + + /** + * Authenticates the SM-DP+ server by the eUICC. + * + * @param matchingId the activation code token defined in GSMA RSP v2.0+ or empty when it is not + * required. + * @param serverSigned1 ASN.1 data in byte array signed and returned by the SM-DP+ server. + * @param serverSignature1 ASN.1 data in byte array indicating a SM-DP+ signature which is + * returned by SM-DP+ server. + * @param euiccCiPkIdToBeUsed ASN.1 data in byte array indicating CI Public Key Identifier to be + * used by the eUICC for signature which is returned by SM-DP+ server. This is defined in + * GSMA RSP v2.0+. + * @param serverCertificate ASN.1 data in byte array indicating SM-DP+ Certificate returned by + * SM-DP+ server. + * @param callback the callback to get the result code and a byte array which represents a + * {@code AuthenticateServerResponse} defined in GSMA RSP v2.0+. + */ + public void authenticateServer(String matchingId, byte[] serverSigned1, + byte[] serverSignature1, byte[] euiccCiPkIdToBeUsed, byte[] serverCertificate, + ResultCallback<byte[]> callback) { + try { + getIEuiccCardController().authenticateServer( + mContext.getOpPackageName(), + matchingId, + serverSigned1, + serverSignature1, + euiccCiPkIdToBeUsed, + serverCertificate, + new IAuthenticateServerCallback.Stub() { + @Override + public void onComplete(int resultCode, byte[] response) { + callback.onComplete(resultCode, response); + } + }); + } catch (RemoteException e) { + Log.e(TAG, "Error calling authenticateServer", e); + throw e.rethrowFromSystemServer(); + } + } + + /** + * Prepares the profile download request sent to SM-DP+. + * + * @param hashCc the hash of confirmation code. It can be null if there is no confirmation code + * required. + * @param smdpSigned2 ASN.1 data in byte array indicating the data to be signed by the SM-DP+ + * returned by SM-DP+ server. + * @param smdpSignature2 ASN.1 data in byte array indicating the SM-DP+ signature returned by + * SM-DP+ server. + * @param smdpCertificate ASN.1 data in byte array indicating the SM-DP+ Certificate returned + * by SM-DP+ server. + * @param callback the callback to get the result code and a byte array which represents a + * {@code PrepareDownloadResponse} defined in GSMA RSP v2.0+ + */ + public void prepareDownload(@Nullable byte[] hashCc, byte[] smdpSigned2, + byte[] smdpSignature2, byte[] smdpCertificate, ResultCallback<byte[]> callback) { + try { + getIEuiccCardController().prepareDownload( + mContext.getOpPackageName(), + hashCc, + smdpSigned2, + smdpSignature2, + smdpCertificate, + new IPrepareDownloadCallback.Stub() { + @Override + public void onComplete(int resultCode, byte[] response) { + callback.onComplete(resultCode, response); + } + }); + } catch (RemoteException e) { + Log.e(TAG, "Error calling prepareDownload", e); + throw e.rethrowFromSystemServer(); + } + } + + /** + * Loads a downloaded bound profile package onto the eUICC. + * + * @param boundProfilePackage the Bound Profile Package data returned by SM-DP+ server. + * @param callback the callback to get the result code and a byte array which represents a + * {@code LoadBoundProfilePackageResponse} defined in GSMA RSP v2.0+. + */ + public void loadBoundProfilePackage(byte[] boundProfilePackage, + ResultCallback<byte[]> callback) { + try { + getIEuiccCardController().loadBoundProfilePackage( + mContext.getOpPackageName(), + boundProfilePackage, + new ILoadBoundProfilePackageCallback.Stub() { + @Override + public void onComplete(int resultCode, byte[] response) { + callback.onComplete(resultCode, response); + } + }); + } catch (RemoteException e) { + Log.e(TAG, "Error calling loadBoundProfilePackage", e); + throw e.rethrowFromSystemServer(); + } + } + + /** + * Cancels the current profile download session. + * + * @param transactionId the transaction ID returned by SM-DP+ server. + * @param reason the cancel reason. + * @param callback the callback to get the result code and an byte[] which represents a + * {@code CancelSessionResponse} defined in GSMA RSP v2.0+. + */ + public void cancelSession(byte[] transactionId, @CancelReason int reason, + ResultCallback<byte[]> callback) { + try { + getIEuiccCardController().cancelSession( + mContext.getOpPackageName(), + transactionId, + reason, + new ICancelSessionCallback.Stub() { + @Override + public void onComplete(int resultCode, byte[] response) { + callback.onComplete(resultCode, response); + } + }); + } catch (RemoteException e) { + Log.e(TAG, "Error calling cancelSession", e); + throw e.rethrowFromSystemServer(); + } + } + + /** + * Lists all notifications of the given {@code notificationEvents}. + * + * @param events bits of the event types ({@link EuiccNotification.Event}) to list. + * @param callback the callback to get the result code and the list of notifications. + */ + public void listNotifications(@EuiccNotification.Event int events, + ResultCallback<EuiccNotification[]> callback) { + try { + getIEuiccCardController().listNotifications(mContext.getOpPackageName(), events, + new IListNotificationsCallback.Stub() { + @Override + public void onComplete(int resultCode, EuiccNotification[] notifications) { + callback.onComplete(resultCode, notifications); + } + }); + } catch (RemoteException e) { + Log.e(TAG, "Error calling listNotifications", e); + throw e.rethrowFromSystemServer(); + } + } + + /** + * Retrieves contents of all notification of the given {@code events}. + * + * @param events bits of the event types ({@link EuiccNotification.Event}) to list. + * @param callback the callback to get the result code and the list of notifications. + */ + public void retrieveNotificationList(@EuiccNotification.Event int events, + ResultCallback<EuiccNotification[]> callback) { + try { + getIEuiccCardController().retrieveNotificationList(mContext.getOpPackageName(), events, + new IRetrieveNotificationListCallback.Stub() { + @Override + public void onComplete(int resultCode, EuiccNotification[] notifications) { + callback.onComplete(resultCode, notifications); + } + }); + } catch (RemoteException e) { + Log.e(TAG, "Error calling retrieveNotificationList", e); + throw e.rethrowFromSystemServer(); + } + } + + /** + * Retrieves the content of a notification of the given {@code seqNumber}. + * + * @param seqNumber the sequence number of the notification. + * @param callback the callback to get the result code and the notification. + */ + public void retrieveNotification(int seqNumber, ResultCallback<EuiccNotification> callback) { + try { + getIEuiccCardController().retrieveNotification(mContext.getOpPackageName(), seqNumber, + new IRetrieveNotificationCallback.Stub() { + @Override + public void onComplete(int resultCode, EuiccNotification notification) { + callback.onComplete(resultCode, notification); + } + }); + } catch (RemoteException e) { + Log.e(TAG, "Error calling retrieveNotification", e); + throw e.rethrowFromSystemServer(); + } + } + + /** + * Removes a notification from eUICC. + * + * @param seqNumber the sequence number of the notification. + * @param callback the callback to get the result code. + */ + public void removeNotificationFromList(int seqNumber, ResultCallback<Void> callback) { + try { + getIEuiccCardController().removeNotificationFromList( + mContext.getOpPackageName(), + seqNumber, + new IRemoveNotificationFromListCallback.Stub() { + @Override + public void onComplete(int resultCode) { + callback.onComplete(resultCode, null); + } + }); + } catch (RemoteException e) { + Log.e(TAG, "Error calling removeNotificationFromList", e); + throw e.rethrowFromSystemServer(); + } + } } diff --git a/telephony/java/android/telephony/euicc/EuiccNotification.aidl b/telephony/java/android/telephony/euicc/EuiccNotification.aidl new file mode 100644 index 000000000000..dad770da260d --- /dev/null +++ b/telephony/java/android/telephony/euicc/EuiccNotification.aidl @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2018 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.telephony.euicc; + +parcelable EuiccNotification; diff --git a/telephony/java/android/telephony/euicc/EuiccRulesAuthTable.aidl b/telephony/java/android/telephony/euicc/EuiccRulesAuthTable.aidl new file mode 100644 index 000000000000..9785a4533c5b --- /dev/null +++ b/telephony/java/android/telephony/euicc/EuiccRulesAuthTable.aidl @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2017 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.telephony.euicc; + +parcelable EuiccRulesAuthTable;
\ No newline at end of file diff --git a/telephony/java/android/telephony/euicc/EuiccRat.java b/telephony/java/android/telephony/euicc/EuiccRulesAuthTable.java index 6a56503ac380..7efe04364280 100644 --- a/telephony/java/android/telephony/euicc/EuiccRat.java +++ b/telephony/java/android/telephony/euicc/EuiccRulesAuthTable.java @@ -35,7 +35,7 @@ import java.util.Arrays; * * TODO(b/35851809): Make this a @SystemApi. */ -public final class EuiccRat implements Parcelable { +public final class EuiccRulesAuthTable implements Parcelable { /** Profile policy rule flags */ @Retention(RetentionPolicy.SOURCE) @IntDef(flag = true, prefix = { "POLICY_RULE_FLAG_" }, value = { @@ -50,7 +50,7 @@ public final class EuiccRat implements Parcelable { private final CarrierIdentifier[][] mCarrierIds; private final int[] mPolicyRuleFlags; - /** This is used to build new {@link EuiccRat} instance. */ + /** This is used to build new {@link EuiccRulesAuthTable} instance. */ public static final class Builder { private int[] mPolicyRules; private CarrierIdentifier[][] mCarrierIds; @@ -72,7 +72,7 @@ public final class EuiccRat implements Parcelable { * Builds the RAT instance. This builder should not be used anymore after this method is * called, otherwise {@link NullPointerException} will be thrown. */ - public EuiccRat build() { + public EuiccRulesAuthTable build() { if (mPosition != mPolicyRules.length) { throw new IllegalStateException( "Not enough rules are added, expected: " @@ -80,7 +80,7 @@ public final class EuiccRat implements Parcelable { + ", added: " + mPosition); } - return new EuiccRat(mPolicyRules, mCarrierIds, mPolicyRuleFlags); + return new EuiccRulesAuthTable(mPolicyRules, mCarrierIds, mPolicyRuleFlags); } /** @@ -125,7 +125,8 @@ public final class EuiccRat implements Parcelable { return true; } - private EuiccRat(int[] policyRules, CarrierIdentifier[][] carrierIds, int[] policyRuleFlags) { + private EuiccRulesAuthTable(int[] policyRules, CarrierIdentifier[][] carrierIds, + int[] policyRuleFlags) { mPolicyRules = policyRules; mCarrierIds = carrierIds; mPolicyRuleFlags = policyRuleFlags; @@ -207,7 +208,7 @@ public final class EuiccRat implements Parcelable { return false; } - EuiccRat that = (EuiccRat) obj; + EuiccRulesAuthTable that = (EuiccRulesAuthTable) obj; if (mCarrierIds.length != that.mCarrierIds.length) { return false; } @@ -234,7 +235,7 @@ public final class EuiccRat implements Parcelable { && Arrays.equals(mPolicyRuleFlags, that.mPolicyRuleFlags); } - private EuiccRat(Parcel source) { + private EuiccRulesAuthTable(Parcel source) { mPolicyRules = source.createIntArray(); int len = mPolicyRules.length; mCarrierIds = new CarrierIdentifier[len][]; @@ -244,16 +245,16 @@ public final class EuiccRat implements Parcelable { mPolicyRuleFlags = source.createIntArray(); } - public static final Creator<EuiccRat> CREATOR = - new Creator<EuiccRat>() { + public static final Creator<EuiccRulesAuthTable> CREATOR = + new Creator<EuiccRulesAuthTable>() { @Override - public EuiccRat createFromParcel(Parcel source) { - return new EuiccRat(source); + public EuiccRulesAuthTable createFromParcel(Parcel source) { + return new EuiccRulesAuthTable(source); } @Override - public EuiccRat[] newArray(int size) { - return new EuiccRat[size]; + public EuiccRulesAuthTable[] newArray(int size) { + return new EuiccRulesAuthTable[size]; } }; } diff --git a/telephony/java/com/android/internal/telephony/euicc/IAuthenticateServerCallback.aidl b/telephony/java/com/android/internal/telephony/euicc/IAuthenticateServerCallback.aidl new file mode 100644 index 000000000000..8a77bf127f9e --- /dev/null +++ b/telephony/java/com/android/internal/telephony/euicc/IAuthenticateServerCallback.aidl @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2018 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 com.android.internal.telephony.euicc; + +/** @hide */ +oneway interface IAuthenticateServerCallback { + void onComplete(int resultCode, in byte[] response); +} diff --git a/telephony/java/com/android/internal/telephony/euicc/ICancelSessionCallback.aidl b/telephony/java/com/android/internal/telephony/euicc/ICancelSessionCallback.aidl new file mode 100644 index 000000000000..f6b99e2b9801 --- /dev/null +++ b/telephony/java/com/android/internal/telephony/euicc/ICancelSessionCallback.aidl @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2018 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 com.android.internal.telephony.euicc; + +/** @hide */ +oneway interface ICancelSessionCallback { + void onComplete(int resultCode, in byte[] response); +} diff --git a/telephony/java/com/android/internal/telephony/euicc/IEuiccCardController.aidl b/telephony/java/com/android/internal/telephony/euicc/IEuiccCardController.aidl index 2846a1ad1f9f..ba9b05e2654f 100644 --- a/telephony/java/com/android/internal/telephony/euicc/IEuiccCardController.aidl +++ b/telephony/java/com/android/internal/telephony/euicc/IEuiccCardController.aidl @@ -17,8 +17,41 @@ package com.android.internal.telephony.euicc; import com.android.internal.telephony.euicc.IGetAllProfilesCallback; +import com.android.internal.telephony.euicc.IAuthenticateServerCallback; +import com.android.internal.telephony.euicc.ICancelSessionCallback; +import com.android.internal.telephony.euicc.IGetEuiccChallengeCallback; +import com.android.internal.telephony.euicc.IGetEuiccInfo1Callback; +import com.android.internal.telephony.euicc.IGetEuiccInfo2Callback; +import com.android.internal.telephony.euicc.IGetRulesAuthTableCallback; +import com.android.internal.telephony.euicc.IListNotificationsCallback; +import com.android.internal.telephony.euicc.ILoadBoundProfilePackageCallback; +import com.android.internal.telephony.euicc.IPrepareDownloadCallback; +import com.android.internal.telephony.euicc.IRemoveNotificationFromListCallback; +import com.android.internal.telephony.euicc.IRetrieveNotificationCallback; +import com.android.internal.telephony.euicc.IRetrieveNotificationListCallback; /** @hide */ interface IEuiccCardController { oneway void getAllProfiles(String callingPackage, in IGetAllProfilesCallback callback); + oneway void getRulesAuthTable(String callingPackage, in IGetRulesAuthTableCallback callback); + oneway void getEuiccChallenge(String callingPackage, in IGetEuiccChallengeCallback callback); + oneway void getEuiccInfo1(String callingPackage, in IGetEuiccInfo1Callback callback); + oneway void getEuiccInfo2(String callingPackage, in IGetEuiccInfo2Callback callback); + oneway void authenticateServer(String callingPackage, String matchingId, + in byte[] serverSigned1, in byte[] serverSignature1, in byte[] euiccCiPkIdToBeUsed, + in byte[] serverCertificatein, in IAuthenticateServerCallback callback); + oneway void prepareDownload(String callingPackage, in byte[] hashCc, in byte[] smdpSigned2, + in byte[] smdpSignature2, in byte[] smdpCertificate, in IPrepareDownloadCallback callback); + oneway void loadBoundProfilePackage(String callingPackage, in byte[] boundProfilePackage, + in ILoadBoundProfilePackageCallback callback); + oneway void cancelSession(String callingPackage, in byte[] transactionId, int reason, + in ICancelSessionCallback callback); + oneway void listNotifications(String callingPackage, int events, + in IListNotificationsCallback callback); + oneway void retrieveNotificationList(String callingPackage, int events, + in IRetrieveNotificationListCallback callback); + oneway void retrieveNotification(String callingPackage, int seqNumber, + in IRetrieveNotificationCallback callback); + oneway void removeNotificationFromList(String callingPackage, int seqNumber, + in IRemoveNotificationFromListCallback callback); } diff --git a/telephony/java/com/android/internal/telephony/euicc/IGetEuiccChallengeCallback.aidl b/telephony/java/com/android/internal/telephony/euicc/IGetEuiccChallengeCallback.aidl new file mode 100644 index 000000000000..5ffb3400912a --- /dev/null +++ b/telephony/java/com/android/internal/telephony/euicc/IGetEuiccChallengeCallback.aidl @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2018 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 com.android.internal.telephony.euicc; + +/** @hide */ +oneway interface IGetEuiccChallengeCallback { + void onComplete(int resultCode, in byte[] challenge); +} diff --git a/telephony/java/com/android/internal/telephony/euicc/IGetEuiccInfo1Callback.aidl b/telephony/java/com/android/internal/telephony/euicc/IGetEuiccInfo1Callback.aidl new file mode 100644 index 000000000000..9592acb6d330 --- /dev/null +++ b/telephony/java/com/android/internal/telephony/euicc/IGetEuiccInfo1Callback.aidl @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2018 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 com.android.internal.telephony.euicc; + +/** @hide */ +oneway interface IGetEuiccInfo1Callback { + void onComplete(int resultCode, in byte[] info); +} diff --git a/telephony/java/com/android/internal/telephony/euicc/IGetEuiccInfo2Callback.aidl b/telephony/java/com/android/internal/telephony/euicc/IGetEuiccInfo2Callback.aidl new file mode 100644 index 000000000000..5256b35c7516 --- /dev/null +++ b/telephony/java/com/android/internal/telephony/euicc/IGetEuiccInfo2Callback.aidl @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2018 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 com.android.internal.telephony.euicc; + +/** @hide */ +oneway interface IGetEuiccInfo2Callback { + void onComplete(int resultCode, in byte[] info); +} diff --git a/telephony/java/com/android/internal/telephony/euicc/IGetRulesAuthTableCallback.aidl b/telephony/java/com/android/internal/telephony/euicc/IGetRulesAuthTableCallback.aidl new file mode 100644 index 000000000000..58f0bde65b86 --- /dev/null +++ b/telephony/java/com/android/internal/telephony/euicc/IGetRulesAuthTableCallback.aidl @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2018 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 com.android.internal.telephony.euicc; + +import android.telephony.euicc.EuiccRulesAuthTable; + +/** @hide */ +oneway interface IGetRulesAuthTableCallback { + void onComplete(int resultCode, in EuiccRulesAuthTable rat); +} diff --git a/telephony/java/com/android/internal/telephony/euicc/IListNotificationsCallback.aidl b/telephony/java/com/android/internal/telephony/euicc/IListNotificationsCallback.aidl new file mode 100644 index 000000000000..65aa302a6a64 --- /dev/null +++ b/telephony/java/com/android/internal/telephony/euicc/IListNotificationsCallback.aidl @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2018 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 com.android.internal.telephony.euicc; + +import android.telephony.euicc.EuiccNotification; + +/** @hide */ +oneway interface IListNotificationsCallback { + void onComplete(int resultCode, in EuiccNotification[] notifications); +} diff --git a/telephony/java/com/android/internal/telephony/euicc/ILoadBoundProfilePackageCallback.aidl b/telephony/java/com/android/internal/telephony/euicc/ILoadBoundProfilePackageCallback.aidl new file mode 100644 index 000000000000..4ad7081c2e67 --- /dev/null +++ b/telephony/java/com/android/internal/telephony/euicc/ILoadBoundProfilePackageCallback.aidl @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2018 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 com.android.internal.telephony.euicc; + +/** @hide */ +oneway interface ILoadBoundProfilePackageCallback { + void onComplete(int resultCode, in byte[] response); +} diff --git a/telephony/java/com/android/internal/telephony/euicc/IPrepareDownloadCallback.aidl b/telephony/java/com/android/internal/telephony/euicc/IPrepareDownloadCallback.aidl new file mode 100644 index 000000000000..c0351841084e --- /dev/null +++ b/telephony/java/com/android/internal/telephony/euicc/IPrepareDownloadCallback.aidl @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2018 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 com.android.internal.telephony.euicc; + +/** @hide */ +oneway interface IPrepareDownloadCallback { + void onComplete(int resultCode, in byte[] response); +} diff --git a/telephony/java/com/android/internal/telephony/euicc/IRemoveNotificationFromListCallback.aidl b/telephony/java/com/android/internal/telephony/euicc/IRemoveNotificationFromListCallback.aidl new file mode 100644 index 000000000000..b22d0da5dc5f --- /dev/null +++ b/telephony/java/com/android/internal/telephony/euicc/IRemoveNotificationFromListCallback.aidl @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2018 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 com.android.internal.telephony.euicc; + +import android.telephony.euicc.EuiccNotification; + +/** @hide */ +oneway interface IRemoveNotificationFromListCallback { + void onComplete(int resultCode); +} diff --git a/telephony/java/com/android/internal/telephony/euicc/IRetrieveNotificationCallback.aidl b/telephony/java/com/android/internal/telephony/euicc/IRetrieveNotificationCallback.aidl new file mode 100644 index 000000000000..dd8889a94143 --- /dev/null +++ b/telephony/java/com/android/internal/telephony/euicc/IRetrieveNotificationCallback.aidl @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2018 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 com.android.internal.telephony.euicc; + +import android.telephony.euicc.EuiccNotification; + +/** @hide */ +oneway interface IRetrieveNotificationCallback { + void onComplete(int resultCode, in EuiccNotification notification); +} diff --git a/telephony/java/com/android/internal/telephony/euicc/IRetrieveNotificationListCallback.aidl b/telephony/java/com/android/internal/telephony/euicc/IRetrieveNotificationListCallback.aidl new file mode 100644 index 000000000000..bc4e451329af --- /dev/null +++ b/telephony/java/com/android/internal/telephony/euicc/IRetrieveNotificationListCallback.aidl @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2018 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 com.android.internal.telephony.euicc; + +import android.telephony.euicc.EuiccNotification; + +/** @hide */ +oneway interface IRetrieveNotificationListCallback { + void onComplete(int resultCode, in EuiccNotification[] notifications); +} |