Loading src/java/com/android/internal/telephony/CommandsInterface.java +3 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import android.telephony.emergency.EmergencyNumber; import com.android.internal.telephony.cdma.CdmaSmsBroadcastConfigInfo; import com.android.internal.telephony.gsm.SmsBroadcastConfigInfo; import com.android.internal.telephony.uicc.IccCardStatus; import com.android.internal.telephony.uicc.IccCardApplicationStatus.PersoSubState; import java.util.List; Loading Loading @@ -851,6 +852,8 @@ public interface CommandsInterface { void supplyNetworkDepersonalization(String netpin, Message result); void supplySimDepersonalization(PersoSubState persoType, String controlKey, Message result); /** * returned message * retMsg.obj = AsyncResult ar Loading src/java/com/android/internal/telephony/IccCard.java +9 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.os.Message; import com.android.internal.telephony.IccCardConstants.State; import com.android.internal.telephony.uicc.IccCardApplicationStatus; import com.android.internal.telephony.uicc.IccCardApplicationStatus.PersoSubState; import com.android.internal.telephony.uicc.IccRecords; /** Loading Loading @@ -137,6 +138,14 @@ public class IccCard { sendMessageWithCardAbsentException(onComplete); } /** * Supply Sim depersonalization code to the RIL */ public void supplySimDepersonalization(PersoSubState persoType, String controlKey, Message onComplete) { sendMessageWithCardAbsentException(onComplete); } /** * Check whether ICC pin lock is enabled * This is a sync call which returns the cached pin enabled state Loading src/java/com/android/internal/telephony/RIL.java +108 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ import android.hardware.radio.V1_4.CarrierRestrictionsWithPriority; import android.hardware.radio.V1_4.SimLockMultiSimPolicy; import android.hardware.radio.V1_5.AccessNetwork; import android.hardware.radio.V1_5.IndicationFilter; import android.hardware.radio.V1_5.PersoSubstate; import android.hardware.radio.V1_5.RadioAccessNetworks; import android.hardware.radio.deprecated.V1_0.IOemHook; import android.net.InetAddresses; Loading Loading @@ -112,6 +113,7 @@ import com.android.internal.telephony.cdma.CdmaSmsBroadcastConfigInfo; import com.android.internal.telephony.gsm.SmsBroadcastConfigInfo; import com.android.internal.telephony.metrics.TelephonyMetrics; import com.android.internal.telephony.nano.TelephonyProto.SmsSession; import com.android.internal.telephony.uicc.IccCardApplicationStatus.PersoSubState; import com.android.internal.telephony.uicc.IccUtils; import com.android.internal.telephony.util.TelephonyUtils; import com.android.telephony.Rlog; Loading Loading @@ -924,6 +926,109 @@ public class RIL extends BaseCommands implements CommandsInterface { } } @Override public void supplySimDepersonalization(PersoSubState persoType, String controlKey, Message result) { IRadio radioProxy = getRadioProxy(result); // IRadio V1.5 if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_5)) { android.hardware.radio.V1_5.IRadio radioProxy15 = (android.hardware.radio.V1_5.IRadio) radioProxy; if (radioProxy15 != null) { RILRequest rr = obtainRequest(RIL_REQUEST_ENTER_SIM_DEPERSONALIZATION, result, mRILDefaultWorkSource); if (RILJ_LOGD) { riljLog(rr.serialString() + "> " + requestToString(rr.mRequest) + " controlKey = " + controlKey + " persoType" + persoType); } try { radioProxy15.supplySimDepersonalization(rr.mSerial, convertPersoTypeToHalPersoType(persoType), convertNullToEmptyString(controlKey)); } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(rr, "supplySimDepersonalization", e); } } } } private static int convertPersoTypeToHalPersoType(PersoSubState persoType) { switch(persoType) { case PERSOSUBSTATE_IN_PROGRESS: return PersoSubstate.IN_PROGRESS; case PERSOSUBSTATE_READY: return PersoSubstate.READY; case PERSOSUBSTATE_SIM_NETWORK: return PersoSubstate.SIM_NETWORK; case PERSOSUBSTATE_SIM_NETWORK_SUBSET: return PersoSubstate.SIM_NETWORK_SUBSET; case PERSOSUBSTATE_SIM_CORPORATE: return PersoSubstate.SIM_CORPORATE; case PERSOSUBSTATE_SIM_SERVICE_PROVIDER: return PersoSubstate.SIM_SERVICE_PROVIDER; case PERSOSUBSTATE_SIM_SIM: return PersoSubstate.SIM_SIM; case PERSOSUBSTATE_SIM_NETWORK_PUK: return PersoSubstate.SIM_NETWORK_PUK; case PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK: return PersoSubstate.SIM_NETWORK_SUBSET_PUK; case PERSOSUBSTATE_SIM_CORPORATE_PUK: return PersoSubstate.SIM_CORPORATE_PUK; case PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK: return PersoSubstate.SIM_SERVICE_PROVIDER_PUK; case PERSOSUBSTATE_SIM_SIM_PUK: return PersoSubstate.SIM_SIM_PUK; case PERSOSUBSTATE_RUIM_NETWORK1: return PersoSubstate.RUIM_NETWORK1; case PERSOSUBSTATE_RUIM_NETWORK2: return PersoSubstate.RUIM_NETWORK2; case PERSOSUBSTATE_RUIM_HRPD: return PersoSubstate.RUIM_HRPD; case PERSOSUBSTATE_RUIM_CORPORATE: return PersoSubstate.RUIM_CORPORATE; case PERSOSUBSTATE_RUIM_SERVICE_PROVIDER: return PersoSubstate.RUIM_SERVICE_PROVIDER; case PERSOSUBSTATE_RUIM_RUIM: return PersoSubstate.RUIM_RUIM; case PERSOSUBSTATE_RUIM_NETWORK1_PUK: return PersoSubstate.RUIM_NETWORK1_PUK; case PERSOSUBSTATE_RUIM_NETWORK2_PUK: return PersoSubstate.RUIM_NETWORK2_PUK; case PERSOSUBSTATE_RUIM_HRPD_PUK: return PersoSubstate.RUIM_HRPD_PUK; case PERSOSUBSTATE_RUIM_CORPORATE_PUK: return PersoSubstate.RUIM_CORPORATE_PUK; case PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK: return PersoSubstate.RUIM_SERVICE_PROVIDER_PUK; case PERSOSUBSTATE_RUIM_RUIM_PUK: return PersoSubstate.RUIM_RUIM_PUK; case PERSOSUBSTATE_SIM_SPN: return PersoSubstate.SIM_SPN; case PERSOSUBSTATE_SIM_SPN_PUK: return PersoSubstate.SIM_SPN_PUK; case PERSOSUBSTATE_SIM_SP_EHPLMN: return PersoSubstate.SIM_SP_EHPLMN; case PERSOSUBSTATE_SIM_SP_EHPLMN_PUK: return PersoSubstate.SIM_SP_EHPLMN_PUK; case PERSOSUBSTATE_SIM_ICCID: return PersoSubstate.SIM_ICCID; case PERSOSUBSTATE_SIM_ICCID_PUK: return PersoSubstate.SIM_ICCID_PUK; case PERSOSUBSTATE_SIM_IMPI: return PersoSubstate.SIM_IMPI; case PERSOSUBSTATE_SIM_IMPI_PUK: return PersoSubstate.SIM_IMPI_PUK; case PERSOSUBSTATE_SIM_NS_SP: return PersoSubstate.SIM_NS_SP; case PERSOSUBSTATE_SIM_NS_SP_PUK: return PersoSubstate.SIM_NS_SP_PUK; default: return PersoSubstate.UNKNOWN; } } @Override public void getCurrentCalls(Message result) { IRadio radioProxy = getRadioProxy(result); Loading Loading @@ -6128,6 +6233,9 @@ public class RIL extends BaseCommands implements CommandsInterface { return "RIL_REQUEST_CDMA_SEND_SMS_EXPECT_MORE"; case RIL_REQUEST_GET_BARRING_INFO: return "RIL_REQUEST_GET_BARRING_INFO"; case RIL_REQUEST_ENTER_SIM_DEPERSONALIZATION: return "RIL_REQUEST_ENTER_SIM_DEPERSONALIZATION"; default: return "<unknown request>"; } } Loading src/java/com/android/internal/telephony/RadioResponse.java +1 −1 Original line number Diff line number Diff line Loading @@ -201,7 +201,7 @@ public class RadioResponse extends IRadioResponse.Stub { */ public void supplySimDepersonalizationResponse(RadioResponseInfo info, int persoType, int remainingRetries) { //short-term stub method responseInts(info, persoType, remainingRetries); } /** Loading src/java/com/android/internal/telephony/SubscriptionController.java +1 −1 Original line number Diff line number Diff line Loading @@ -3376,7 +3376,7 @@ public class SubscriptionController extends ISub.Stub { * Helper function to create selection argument of a list of subId. * The result should be: "in (subId1, subId2, ...)". */ private String getSelectionForSubIdList(int[] subId) { public static String getSelectionForSubIdList(int[] subId) { StringBuilder selection = new StringBuilder(); selection.append(SubscriptionManager.UNIQUE_KEY_SUBSCRIPTION_ID); selection.append(" IN ("); Loading Loading
src/java/com/android/internal/telephony/CommandsInterface.java +3 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import android.telephony.emergency.EmergencyNumber; import com.android.internal.telephony.cdma.CdmaSmsBroadcastConfigInfo; import com.android.internal.telephony.gsm.SmsBroadcastConfigInfo; import com.android.internal.telephony.uicc.IccCardStatus; import com.android.internal.telephony.uicc.IccCardApplicationStatus.PersoSubState; import java.util.List; Loading Loading @@ -851,6 +852,8 @@ public interface CommandsInterface { void supplyNetworkDepersonalization(String netpin, Message result); void supplySimDepersonalization(PersoSubState persoType, String controlKey, Message result); /** * returned message * retMsg.obj = AsyncResult ar Loading
src/java/com/android/internal/telephony/IccCard.java +9 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.os.Message; import com.android.internal.telephony.IccCardConstants.State; import com.android.internal.telephony.uicc.IccCardApplicationStatus; import com.android.internal.telephony.uicc.IccCardApplicationStatus.PersoSubState; import com.android.internal.telephony.uicc.IccRecords; /** Loading Loading @@ -137,6 +138,14 @@ public class IccCard { sendMessageWithCardAbsentException(onComplete); } /** * Supply Sim depersonalization code to the RIL */ public void supplySimDepersonalization(PersoSubState persoType, String controlKey, Message onComplete) { sendMessageWithCardAbsentException(onComplete); } /** * Check whether ICC pin lock is enabled * This is a sync call which returns the cached pin enabled state Loading
src/java/com/android/internal/telephony/RIL.java +108 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ import android.hardware.radio.V1_4.CarrierRestrictionsWithPriority; import android.hardware.radio.V1_4.SimLockMultiSimPolicy; import android.hardware.radio.V1_5.AccessNetwork; import android.hardware.radio.V1_5.IndicationFilter; import android.hardware.radio.V1_5.PersoSubstate; import android.hardware.radio.V1_5.RadioAccessNetworks; import android.hardware.radio.deprecated.V1_0.IOemHook; import android.net.InetAddresses; Loading Loading @@ -112,6 +113,7 @@ import com.android.internal.telephony.cdma.CdmaSmsBroadcastConfigInfo; import com.android.internal.telephony.gsm.SmsBroadcastConfigInfo; import com.android.internal.telephony.metrics.TelephonyMetrics; import com.android.internal.telephony.nano.TelephonyProto.SmsSession; import com.android.internal.telephony.uicc.IccCardApplicationStatus.PersoSubState; import com.android.internal.telephony.uicc.IccUtils; import com.android.internal.telephony.util.TelephonyUtils; import com.android.telephony.Rlog; Loading Loading @@ -924,6 +926,109 @@ public class RIL extends BaseCommands implements CommandsInterface { } } @Override public void supplySimDepersonalization(PersoSubState persoType, String controlKey, Message result) { IRadio radioProxy = getRadioProxy(result); // IRadio V1.5 if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_5)) { android.hardware.radio.V1_5.IRadio radioProxy15 = (android.hardware.radio.V1_5.IRadio) radioProxy; if (radioProxy15 != null) { RILRequest rr = obtainRequest(RIL_REQUEST_ENTER_SIM_DEPERSONALIZATION, result, mRILDefaultWorkSource); if (RILJ_LOGD) { riljLog(rr.serialString() + "> " + requestToString(rr.mRequest) + " controlKey = " + controlKey + " persoType" + persoType); } try { radioProxy15.supplySimDepersonalization(rr.mSerial, convertPersoTypeToHalPersoType(persoType), convertNullToEmptyString(controlKey)); } catch (RemoteException | RuntimeException e) { handleRadioProxyExceptionForRR(rr, "supplySimDepersonalization", e); } } } } private static int convertPersoTypeToHalPersoType(PersoSubState persoType) { switch(persoType) { case PERSOSUBSTATE_IN_PROGRESS: return PersoSubstate.IN_PROGRESS; case PERSOSUBSTATE_READY: return PersoSubstate.READY; case PERSOSUBSTATE_SIM_NETWORK: return PersoSubstate.SIM_NETWORK; case PERSOSUBSTATE_SIM_NETWORK_SUBSET: return PersoSubstate.SIM_NETWORK_SUBSET; case PERSOSUBSTATE_SIM_CORPORATE: return PersoSubstate.SIM_CORPORATE; case PERSOSUBSTATE_SIM_SERVICE_PROVIDER: return PersoSubstate.SIM_SERVICE_PROVIDER; case PERSOSUBSTATE_SIM_SIM: return PersoSubstate.SIM_SIM; case PERSOSUBSTATE_SIM_NETWORK_PUK: return PersoSubstate.SIM_NETWORK_PUK; case PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK: return PersoSubstate.SIM_NETWORK_SUBSET_PUK; case PERSOSUBSTATE_SIM_CORPORATE_PUK: return PersoSubstate.SIM_CORPORATE_PUK; case PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK: return PersoSubstate.SIM_SERVICE_PROVIDER_PUK; case PERSOSUBSTATE_SIM_SIM_PUK: return PersoSubstate.SIM_SIM_PUK; case PERSOSUBSTATE_RUIM_NETWORK1: return PersoSubstate.RUIM_NETWORK1; case PERSOSUBSTATE_RUIM_NETWORK2: return PersoSubstate.RUIM_NETWORK2; case PERSOSUBSTATE_RUIM_HRPD: return PersoSubstate.RUIM_HRPD; case PERSOSUBSTATE_RUIM_CORPORATE: return PersoSubstate.RUIM_CORPORATE; case PERSOSUBSTATE_RUIM_SERVICE_PROVIDER: return PersoSubstate.RUIM_SERVICE_PROVIDER; case PERSOSUBSTATE_RUIM_RUIM: return PersoSubstate.RUIM_RUIM; case PERSOSUBSTATE_RUIM_NETWORK1_PUK: return PersoSubstate.RUIM_NETWORK1_PUK; case PERSOSUBSTATE_RUIM_NETWORK2_PUK: return PersoSubstate.RUIM_NETWORK2_PUK; case PERSOSUBSTATE_RUIM_HRPD_PUK: return PersoSubstate.RUIM_HRPD_PUK; case PERSOSUBSTATE_RUIM_CORPORATE_PUK: return PersoSubstate.RUIM_CORPORATE_PUK; case PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK: return PersoSubstate.RUIM_SERVICE_PROVIDER_PUK; case PERSOSUBSTATE_RUIM_RUIM_PUK: return PersoSubstate.RUIM_RUIM_PUK; case PERSOSUBSTATE_SIM_SPN: return PersoSubstate.SIM_SPN; case PERSOSUBSTATE_SIM_SPN_PUK: return PersoSubstate.SIM_SPN_PUK; case PERSOSUBSTATE_SIM_SP_EHPLMN: return PersoSubstate.SIM_SP_EHPLMN; case PERSOSUBSTATE_SIM_SP_EHPLMN_PUK: return PersoSubstate.SIM_SP_EHPLMN_PUK; case PERSOSUBSTATE_SIM_ICCID: return PersoSubstate.SIM_ICCID; case PERSOSUBSTATE_SIM_ICCID_PUK: return PersoSubstate.SIM_ICCID_PUK; case PERSOSUBSTATE_SIM_IMPI: return PersoSubstate.SIM_IMPI; case PERSOSUBSTATE_SIM_IMPI_PUK: return PersoSubstate.SIM_IMPI_PUK; case PERSOSUBSTATE_SIM_NS_SP: return PersoSubstate.SIM_NS_SP; case PERSOSUBSTATE_SIM_NS_SP_PUK: return PersoSubstate.SIM_NS_SP_PUK; default: return PersoSubstate.UNKNOWN; } } @Override public void getCurrentCalls(Message result) { IRadio radioProxy = getRadioProxy(result); Loading Loading @@ -6128,6 +6233,9 @@ public class RIL extends BaseCommands implements CommandsInterface { return "RIL_REQUEST_CDMA_SEND_SMS_EXPECT_MORE"; case RIL_REQUEST_GET_BARRING_INFO: return "RIL_REQUEST_GET_BARRING_INFO"; case RIL_REQUEST_ENTER_SIM_DEPERSONALIZATION: return "RIL_REQUEST_ENTER_SIM_DEPERSONALIZATION"; default: return "<unknown request>"; } } Loading
src/java/com/android/internal/telephony/RadioResponse.java +1 −1 Original line number Diff line number Diff line Loading @@ -201,7 +201,7 @@ public class RadioResponse extends IRadioResponse.Stub { */ public void supplySimDepersonalizationResponse(RadioResponseInfo info, int persoType, int remainingRetries) { //short-term stub method responseInts(info, persoType, remainingRetries); } /** Loading
src/java/com/android/internal/telephony/SubscriptionController.java +1 −1 Original line number Diff line number Diff line Loading @@ -3376,7 +3376,7 @@ public class SubscriptionController extends ISub.Stub { * Helper function to create selection argument of a list of subId. * The result should be: "in (subId1, subId2, ...)". */ private String getSelectionForSubIdList(int[] subId) { public static String getSelectionForSubIdList(int[] subId) { StringBuilder selection = new StringBuilder(); selection.append(SubscriptionManager.UNIQUE_KEY_SUBSCRIPTION_ID); selection.append(" IN ("); Loading