diff --git a/current.txt b/current.txt index 89a0cbc390..f33d0f4999 100644 --- a/current.txt +++ b/current.txt @@ -635,10 +635,10 @@ c9273429fcf98d797d3bb07fdba6f1be95bf960f9255cde169fd1ca4db85f856 android.hardwar ## # BEGIN Radio HAL Merge Conflict Avoidance Buffer - STOPSHIP if present ## -73b5418353fe52721267d64592d4d4c1b77fbd1ef4261d964865de88e62ee0be android.hardware.radio@1.5::types -996f98ffe508a2f6f1755c1511b50067f7883f7c445dea9f3e931385f020b7ab android.hardware.radio@1.5::IRadio +275a01e456f3c988ac9736d26ceaf3e95fb7b3c333a8a7fe983de6bae39df58a android.hardware.radio@1.5::types +c1f45964562445008d3c5b4a6c1694cfe5d14a453ad00d9157cc82585979ac0c android.hardware.radio@1.5::IRadio 20d52e66fd548f89bcb98cda42749a591ce8f439a2a7148617adac0c967ad937 android.hardware.radio@1.5::IRadioIndication -1512f6e1198e1aa0ebcbdb1694d0ed500a3e7791d6f305327866112331d82b66 android.hardware.radio@1.5::IRadioResponse +838c7b1420874a1a7d0bb3568fef9c8347d11ac8fd439ca2b5c50720cfa8c195 android.hardware.radio@1.5::IRadioResponse 55f0a15642869ec98a55ea0a5ac049d3e1a6245ff7750deb6bcb7182057eee83 android.hardware.radio.config@1.3::types b27ab0cd40b0b078cdcd024bfe1061c4c4c065f3519eeb9347fa359a3268a5ae android.hardware.radio.config@1.3::IRadioConfig 742360c775313438b0f82256eac62fb5bbc76a6ae6f388573f3aa142fb2c1eea android.hardware.radio.config@1.3::IRadioConfigIndication diff --git a/radio/1.5/IRadio.hal b/radio/1.5/IRadio.hal index e41989c90c..1f9877539e 100644 --- a/radio/1.5/IRadio.hal +++ b/radio/1.5/IRadio.hal @@ -25,6 +25,7 @@ import @1.5::DataProfileInfo; import @1.5::IndicationFilter; import @1.5::LinkAddress; import @1.5::NetworkScanRequest; +import @1.5::PersoSubstate; import @1.5::RadioAccessSpecifier; import @1.5::SignalThresholdInfo; @@ -245,4 +246,15 @@ interface IRadio extends @1.4::IRadio { * Response callback is IRadioResponse.getBarringInfoResponse() */ oneway getBarringInfo(int32_t serial); + + /** + * Requests that deactivates one category of the device personalization. + * + * @param serial Serial number of request. + * @param persoType SIM personalization type. + * @param controlKey depersonalization code corresponding to persoType + * + * Response function is IRadioResponse.supplySimDepersonalizationResponse() + */ + oneway supplySimDepersonalization(int32_t serial, PersoSubstate persoType, string controlKey); }; diff --git a/radio/1.5/IRadioResponse.hal b/radio/1.5/IRadioResponse.hal index 2ed789a7ab..aeb7b840f4 100644 --- a/radio/1.5/IRadioResponse.hal +++ b/radio/1.5/IRadioResponse.hal @@ -20,6 +20,8 @@ import @1.0::RadioResponseInfo; import @1.4::IRadioResponse; import @1.5::BarringInfo; import @1.5::SetupDataCallResult; +import @1.4::SetupDataCallResult; +import @1.5::PersoSubstate; /** * Interface declaring response functions to solicited radio requests. @@ -170,4 +172,26 @@ interface IRadioResponse extends @1.4::IRadioResponse { * RadioError:MODEM_ERR */ oneway getBarringInfoResponse(RadioResponseInfo info, vec barringInfos); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param persoType SIM Personalisation type + * @param remainingRetries Positive values indicates number of retries remaining, + * must be equal to -1 if number of retries are infinite. + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:PASSWORD_INCORRECT (code is invalid) + * RadioError:NO_MEMORY + * RadioError:INVALID_SIM_STATE + * RadioError:INTERNAL_ERR + * RadioError:SYSTEM_ERR + * RadioError:MODEM_ERR + * RadioError:INVALID_ARGUMENTS + * RadioError:NO_RESOURCES + * RadioError:REQUEST_NOT_SUPPORTED + */ + oneway supplySimDepersonalizationResponse(RadioResponseInfo info, + PersoSubstate persoType, int32_t remainingRetries); }; diff --git a/radio/1.5/types.hal b/radio/1.5/types.hal index 724d014fb3..b056408c8e 100644 --- a/radio/1.5/types.hal +++ b/radio/1.5/types.hal @@ -16,6 +16,7 @@ package android.hardware.radio@1.5; +import @1.0::PersoSubstate; import @1.1::EutranBands; import @1.1::GeranBands; import @1.1::RadioAccessNetworks; @@ -553,3 +554,19 @@ enum IndicationFilter : @1.2::IndicationFilter { /** Control the unsolicited sending of barring info updates via onBarringInfo */ BARRING_INFO = 1 << 6, }; + +/** + * Additional personalization categories in addition to those specified in 3GPP TS 22.022 and 3GPP2 C.S0068-0. + */ +enum PersoSubstate : @1.0::PersoSubstate { + SIM_SPN, + SIM_SPN_PUK, + SIM_SP_EHPLMN, // Equivalent Home PLMN + SIM_SP_EHPLMN_PUK, + SIM_ICCID, + SIM_ICCID_PUK, + SIM_IMPI, + SIM_IMPI_PUK, + SIM_NS_SP, // Network subset service provider + SIM_NS_SP_PUK, +}; diff --git a/radio/1.5/vts/functional/radio_hidl_hal_utils_v1_5.h b/radio/1.5/vts/functional/radio_hidl_hal_utils_v1_5.h index 217caf5692..b00126e15b 100644 --- a/radio/1.5/vts/functional/radio_hidl_hal_utils_v1_5.h +++ b/radio/1.5/vts/functional/radio_hidl_hal_utils_v1_5.h @@ -114,6 +114,9 @@ class RadioResponse_v1_5 : public ::android::hardware::radio::V1_5::IRadioRespon Return supplyNetworkDepersonalizationResponse(const RadioResponseInfo& info, int32_t remainingRetries); + Return supplySimDepersonalizationResponse(const RadioResponseInfo& info, + ::android::hardware::radio::V1_5::PersoSubstate persoType, int32_t remainingRetries); + Return getCurrentCallsResponse( const RadioResponseInfo& info, const ::android::hardware::hidl_vec<::android::hardware::radio::V1_0::Call>& calls); diff --git a/radio/1.5/vts/functional/radio_response.cpp b/radio/1.5/vts/functional/radio_response.cpp index 644a26298c..e6f0630d89 100644 --- a/radio/1.5/vts/functional/radio_response.cpp +++ b/radio/1.5/vts/functional/radio_response.cpp @@ -62,6 +62,13 @@ Return RadioResponse_v1_5::supplyNetworkDepersonalizationResponse( return Void(); } +Return RadioResponse_v1_5::supplySimDepersonalizationResponse( + const RadioResponseInfo& /*info*/, + ::android::hardware::radio::V1_5::PersoSubstate /*persoType*/, + int32_t /*remainingRetries*/) { + return Void(); +} + Return RadioResponse_v1_5::getCurrentCallsResponse( const RadioResponseInfo& /*info*/, const ::android::hardware::hidl_vec<::android::hardware::radio::V1_0::Call>& /*calls*/) {