diff --git a/current.txt b/current.txt index 81ecebfabd..ebcecaad0a 100644 --- a/current.txt +++ b/current.txt @@ -640,17 +640,11 @@ a64467bae843569f0d465c5be7f0c7a5b987985b55a3ef4794dd5afc68538650 android.hardwar 619fc9839ec6e369cfa9b28e3e9412e6885720ff8f9b5750c1b6ffb905120391 android.hardware.wifi.supplicant@1.3::ISupplicantStaIfaceCallback c9273429fcf98d797d3bb07fdba6f1be95bf960f9255cde169fd1ca4db85f856 android.hardware.wifi.supplicant@1.3::ISupplicantStaNetwork 9b0a3ab6f4f74b971ed094426d8a443e29b512ff03e1ab50c07156396cdb2483 android.hardware.wifi.supplicant@1.3::types -## -# BEGIN Radio HAL Merge Conflict Avoidance Buffer - STOPSHIP if present -## -2fc83babe7cd7c6d5f1013f84019d761d2ac0eb38bdade7f9b01f5dc577de8f8 android.hardware.radio@1.5::types -603851ca0f5360778049902fc7486d0ff60065b16e83b99f076487667aba1928 android.hardware.radio@1.5::IRadio +50e22cd55ad5499e68e81541bbc67bd10e59c1b9f3ff8cc7ba70dcb0d2918381 android.hardware.radio@1.5::types +8cc3306e8cd755d04521d1611b217b9d13a2a76d2af57cbea8f875333b3363f7 android.hardware.radio@1.5::IRadio e96ae1c3a9c0689002ec2318e9c587f4f607c16a75a3cd38788b77eb91072021 android.hardware.radio@1.5::IRadioIndication -04cce8fdae2b03becda4ee6fe17cb032fd7d30152f8ab36f642d794e4f5f6999 android.hardware.radio@1.5::IRadioResponse +7b77721a7716e163f5cc5f2830ed5616b953fcf0e5406f69de0fde5ce95e4184 android.hardware.radio@1.5::IRadioResponse 2fd107f3de1b7e36825e241a88dfae8edf3a77c166cb746f00ddf6440ab78db1 android.hardware.radio.config@1.3::types a2977755bc5f1ef47f04b7f2400632efda6218e1515dba847da487145cfabc4f android.hardware.radio.config@1.3::IRadioConfig 742360c775313438b0f82256eac62fb5bbc76a6ae6f388573f3aa142fb2c1eea android.hardware.radio.config@1.3::IRadioConfigIndication -0006ab8e8b0910cbd3bbb08d5f17d5fac7d65a2bdad5f2334e4851db9d1e6fa8 android.hardware.radio.config@1.3::IRadioConfigResponse -## -# END Radio HAL Merge Conflict Avoidance Buffer - STOPSHIP if present -## +0006ab8e8b0910cbd3bbb08d5f17d5fac7d65a2bdad5f2334e4851db9d1e6fa8 android.hardware.radio.config@1.3::IRadioConfigResponse \ No newline at end of file diff --git a/radio/1.5/IRadio.hal b/radio/1.5/IRadio.hal index be6a727972..bc405008a0 100644 --- a/radio/1.5/IRadio.hal +++ b/radio/1.5/IRadio.hal @@ -16,10 +16,10 @@ package android.hardware.radio@1.5; -import @1.2::DataRequestReason; import @1.0::CdmaSmsMessage; -import @1.4::IRadio; +import @1.2::DataRequestReason; import @1.4::DataProfileInfo; +import @1.4::IRadio; import @1.5::AccessNetwork; import @1.5::BarringInfo; import @1.5::DataProfileInfo; @@ -27,6 +27,7 @@ import @1.5::IndicationFilter; import @1.5::LinkAddress; import @1.5::NetworkScanRequest; import @1.5::PersoSubstate; +import @1.5::RadioAccessNetworks; import @1.5::RadioAccessSpecifier; import @1.5::SignalThresholdInfo; @@ -266,16 +267,23 @@ interface IRadio extends @1.4::IRadio { */ oneway getDataRegistrationState_1_5(int32_t serial); - /** - * Requests that deactivates one category of the device personalization. + /* + * Manually select a specified network. + * This request must not respond until the new operator is selected and registered. + * Per TS 23.122, the RAN is just the initial suggested value. + * If registration fails, the RAN is not available afterwards, or the RAN is not within + * the network types specified by IRadio::setPreferredNetworkTypeBitmap, then the modem + * will need to select the next best RAN for network registration. * * @param serial Serial number of request. - * @param persoType SIM personalization type. - * @param controlKey depersonalization code corresponding to persoType + * @param operatorNumeric String specifying MCCMNC of network to select (eg "310170"). + * @param ran Initial suggested radio access network type. If value is UNKNOWN, the modem + * will select the next best RAN for network registration. * - * Response function is IRadioResponse.supplySimDepersonalizationResponse() + * Response function is IRadioResponse.setNetworkSelectionModeManualResponse_1_5() */ - oneway supplySimDepersonalization(int32_t serial, PersoSubstate persoType, string controlKey); + oneway setNetworkSelectionModeManual_1_5(int32_t serial, string operatorNumeric, + RadioAccessNetworks ran); /** * Send an SMS message. Identical to sendCdmaSms, @@ -287,4 +295,15 @@ interface IRadio extends @1.4::IRadio { * Response callback is IRadioResponse.sendCdmaSMSExpectMoreResponse() */ oneway sendCdmaSmsExpectMore(int32_t serial, CdmaSmsMessage sms); + + /** + * 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 8186ad7e61..6a2187f69d 100644 --- a/radio/1.5/IRadioResponse.hal +++ b/radio/1.5/IRadioResponse.hal @@ -21,9 +21,10 @@ import @1.0::SendSmsResult; import @1.4::IRadioResponse; import @1.5::BarringInfo; import @1.5::CellInfo; -import @1.5::PersoSubstate; import @1.5::RegStateResult; import @1.5::SetupDataCallResult; +import @1.4::SetupDataCallResult; +import @1.5::PersoSubstate; /** * Interface declaring response functions to solicited radio requests. @@ -176,7 +177,6 @@ interface IRadioResponse extends @1.4::IRadioResponse { oneway getBarringInfoResponse(RadioResponseInfo info, vec barringInfos); /** - * @param info Response info struct containing response type, serial no. and error * @param voiceRegResponse Current Voice registration response as defined by RegStateResult * in types.hal * @@ -215,27 +215,29 @@ interface IRadioResponse extends @1.4::IRadioResponse { */ oneway getCellInfoListResponse_1_5(RadioResponseInfo info, vec cellInfo); + /** * @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:ILLEGAL_SIM_OR_ME + * RadioError:OPERATION_NOT_ALLOWED + * RadioError:INVALID_STATE * RadioError:NO_MEMORY - * RadioError:INVALID_SIM_STATE * RadioError:INTERNAL_ERR * RadioError:SYSTEM_ERR - * RadioError:MODEM_ERR * RadioError:INVALID_ARGUMENTS - * RadioError:NO_RESOURCES + * RadioError:MODEM_ERR * RadioError:REQUEST_NOT_SUPPORTED + * RadioError:NO_RESOURCES + * RadioError:CANCELLED + * + * Returns RadioError:ILLEGAL_SIM_OR_ME when the failure is permanent and + * no retries needed, such as illegal SIM or ME. */ - oneway supplySimDepersonalizationResponse(RadioResponseInfo info, - PersoSubstate persoType, int32_t remainingRetries); + oneway setNetworkSelectionModeManualResponse_1_5(RadioResponseInfo info); /** * @param info Response info struct containing response type, serial no. and error @@ -267,4 +269,26 @@ interface IRadioResponse extends @1.4::IRadioResponse { * RadioError:SIM_ABSENT */ oneway sendCdmaSmsExpectMoreResponse(RadioResponseInfo info, SendSmsResult sms); + + /** + * @param info Response info struct contatining response type, serial no. and error + * @param persoType SIM Personalisation type + * @param remainingRetries postiive values indicates number of retries remaining, + * must be equal to -1 if number of retries is 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 0cb753d2c0..cf195ccb0a 100644 --- a/radio/1.5/types.hal +++ b/radio/1.5/types.hal @@ -17,9 +17,9 @@ package android.hardware.radio@1.5; import @1.0::ApnAuthType; -import @1.0::CdmaSignalStrength; import @1.0::DataProfileId; import @1.0::DataProfileInfoType; +import @1.0::CdmaSignalStrength; import @1.0::EvdoSignalStrength; import @1.0::GsmSignalStrength; import @1.0::LteSignalStrength; @@ -167,7 +167,11 @@ enum AccessNetwork : @1.4::AccessNetwork { }; enum RadioAccessNetworks : @1.1::RadioAccessNetworks { + UNKNOWN = 0, + /** Next Generation Radio Access Network */ NGRAN = 4, + /** CDMA 2000 Network */ + CDMA2000 = 5, }; /** diff --git a/radio/1.5/vts/functional/radio_hidl_hal_api.cpp b/radio/1.5/vts/functional/radio_hidl_hal_api.cpp index 100f211488..39133179e1 100644 --- a/radio/1.5/vts/functional/radio_hidl_hal_api.cpp +++ b/radio/1.5/vts/functional/radio_hidl_hal_api.cpp @@ -879,6 +879,9 @@ TEST_F(RadioHidlTest_v1_5, setupDataCall_1_5) { } } +/* + * Test IRadio.setInitialAttachApn_1_5() for the response returned. + */ TEST_F(RadioHidlTest_v1_5, setInitialAttachApn_1_5) { serial = GetRandomSerialNumber(); @@ -919,6 +922,9 @@ TEST_F(RadioHidlTest_v1_5, setInitialAttachApn_1_5) { } } +/* + * Test IRadio.setDataProfile_1_5() for the response returned. + */ TEST_F(RadioHidlTest_v1_5, setDataProfile_1_5) { serial = GetRandomSerialNumber(); @@ -991,6 +997,32 @@ TEST_F(RadioHidlTest_v1_5, setRadioPower_1_5_emergencyCall_cancalled) { EXPECT_EQ(RadioError::NONE, radioRsp_v1_5->rspInfo.error); } +/* + * Test IRadio.setNetworkSelectionModeManual_1_5() for the response returned. + */ +TEST_F(RadioHidlTest_v1_5, setNetworkSelectionModeManual_1_5) { + serial = GetRandomSerialNumber(); + + // can't camp on nonexistent MCCMNC, so we expect this to fail. + Return res = radio_v1_5->setNetworkSelectionModeManual_1_5( + serial, "123456", android::hardware::radio::V1_5::RadioAccessNetworks::GERAN); + EXPECT_EQ(std::cv_status::no_timeout, wait()); + EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_5->rspInfo.type); + EXPECT_EQ(serial, radioRsp_v1_5->rspInfo.serial); + + if (cardStatus.base.base.cardState == CardState::ABSENT) { + ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_5->rspInfo.error, + {RadioError::NONE, RadioError::ILLEGAL_SIM_OR_ME, + RadioError::INVALID_ARGUMENTS, RadioError::INVALID_STATE}, + CHECK_GENERAL_ERROR)); + } else if (cardStatus.base.base.cardState == CardState::PRESENT) { + ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_5->rspInfo.error, + {RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, + RadioError::INVALID_ARGUMENTS, RadioError::INVALID_STATE}, + CHECK_GENERAL_ERROR)); + } +} + /* * Test IRadio.sendCdmaSmsExpectMore() for the response returned. */ @@ -1033,4 +1065,4 @@ TEST_F(RadioHidlTest_v1_5, sendCdmaSmsExpectMore) { {RadioError::INVALID_ARGUMENTS, RadioError::INVALID_STATE, RadioError::SIM_ABSENT}, CHECK_GENERAL_ERROR)); } -} \ No newline at end of file +} 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 6432553d06..d1c17e6fab 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 @@ -293,8 +293,6 @@ class RadioResponse_v1_5 : public ::android::hardware::radio::V1_5::IRadioRespon Return sendCdmaSmsResponse(const RadioResponseInfo& info, const SendSmsResult& sms); - Return sendCdmaSmsExpectMoreResponse(const RadioResponseInfo& info, const SendSmsResult& sms); - Return acknowledgeLastIncomingCdmaSmsResponse(const RadioResponseInfo& info); Return getGsmBroadcastConfigResponse( @@ -576,6 +574,11 @@ class RadioResponse_v1_5 : public ::android::hardware::radio::V1_5::IRadioRespon const RadioResponseInfo& info, const ::android::hardware::hidl_vec<::android::hardware::radio::V1_5::CellInfo>& cellInfo); + + Return setNetworkSelectionModeManualResponse_1_5(const RadioResponseInfo& info); + + Return sendCdmaSmsExpectMoreResponse(const RadioResponseInfo& info, + const SendSmsResult& sms); }; /* Callback class for radio indication */ diff --git a/radio/1.5/vts/functional/radio_response.cpp b/radio/1.5/vts/functional/radio_response.cpp index b4343a7930..a62d086d80 100644 --- a/radio/1.5/vts/functional/radio_response.cpp +++ b/radio/1.5/vts/functional/radio_response.cpp @@ -421,11 +421,6 @@ Return RadioResponse_v1_5::sendCdmaSmsResponse(const RadioResponseInfo& /* return Void(); } -Return RadioResponse_v1_5::sendCdmaSmsExpectMoreResponse(const RadioResponseInfo& /*info*/, - const SendSmsResult& /*sms*/) { - return Void(); -} - Return RadioResponse_v1_5::acknowledgeLastIncomingCdmaSmsResponse( const RadioResponseInfo& /*info*/) { return Void(); @@ -1004,3 +999,15 @@ Return RadioResponse_v1_5::getCellInfoListResponse_1_5( ::android::hardware::radio::V1_5::CellInfo>& /*cellInfo*/) { return Void(); } + +Return RadioResponse_v1_5::setNetworkSelectionModeManualResponse_1_5( + const RadioResponseInfo& info) { + rspInfo = info; + parent_v1_5.notify(info.serial); + return Void(); +} + +Return RadioResponse_v1_5::sendCdmaSmsExpectMoreResponse(const RadioResponseInfo& /*info*/, + const SendSmsResult& /*sms*/) { + return Void(); +}