diff options
author | Sarah Chin <sarahchin@google.com> | 2022-05-09 16:57:03 -0700 |
---|---|---|
committer | Sarah Chin <sarahchin@google.com> | 2022-05-09 22:40:45 -0700 |
commit | d4ab58754bd0f72ffbd8a5af1335ad10de5e6c56 (patch) | |
tree | 3d24eedf2d74d9df1d78cebf520525b2326bdbd0 | |
parent | 828719dd9f07d718bdfed8997d8d0773e2aa194b (diff) | |
download | cuttlefish-d4ab58754bd0f72ffbd8a5af1335ad10de5e6c56.tar.gz |
Fix CF implementation errors for CTS
Test: atest CtsTelephonyTestCases, RilE2eTests
Bug: 230492240
Change-Id: Ide22242bac039e64e2771d596ffcd32ec9005cf3
5 files changed, 51 insertions, 30 deletions
diff --git a/guest/hals/ril/reference-libril/ril_config.cpp b/guest/hals/ril/reference-libril/ril_config.cpp index 28e214007..80c8aa0f9 100644 --- a/guest/hals/ril/reference-libril/ril_config.cpp +++ b/guest/hals/ril/reference-libril/ril_config.cpp @@ -167,14 +167,14 @@ Return<void> RadioConfigImpl::setSimSlotsMapping(int32_t serial, const hidl_vec< } size_t slotNum = slotMap.size(); - if (slotNum > RIL_SOCKET_NUM) { + if (slotNum > MAX_LOGICAL_MODEM_NUM) { RLOGE("setSimSlotsMapping: invalid parameter"); sendErrorResponse(pRI, RIL_E_INVALID_ARGUMENTS); return Void(); } for (size_t socket_id = 0; socket_id < slotNum; socket_id++) { - if (slotMap[socket_id] >= RIL_SOCKET_NUM) { + if (slotMap[socket_id] >= MAX_LOGICAL_MODEM_NUM) { RLOGE("setSimSlotsMapping: invalid parameter[%zu]", socket_id); sendErrorResponse(pRI, RIL_E_INVALID_ARGUMENTS); return Void(); diff --git a/guest/hals/ril/reference-libril/ril_service.cpp b/guest/hals/ril/reference-libril/ril_service.cpp index 2bee0572f..5fdc3dcbd 100644 --- a/guest/hals/ril/reference-libril/ril_service.cpp +++ b/guest/hals/ril/reference-libril/ril_service.cpp @@ -12652,6 +12652,11 @@ void convertRilCellInfoListToHal_1_6(void* response, size_t responseLen, rillCellInfo->CellInfo.lte.cellIdentityLte.tac; cellInfoLte.cellIdentityLte.base.base.earfcn = rillCellInfo->CellInfo.lte.cellIdentityLte.earfcn; + cellInfoLte.cellIdentityLte.base.bandwidth = INT_MAX; + hidl_vec<V1_5::EutranBands> bands; + bands.resize(1); + bands[0] = V1_5::EutranBands::BAND_1; + cellInfoLte.cellIdentityLte.bands = bands; cellInfoLte.signalStrengthLte.base.signalStrength = rillCellInfo->CellInfo.lte.signalStrengthLte.signalStrength; cellInfoLte.signalStrengthLte.base.rsrp = diff --git a/guest/hals/ril/reference-ril/reference-ril.c b/guest/hals/ril/reference-ril/reference-ril.c index 055108559..5d39ff1bc 100644 --- a/guest/hals/ril/reference-ril/reference-ril.c +++ b/guest/hals/ril/reference-ril/reference-ril.c @@ -715,6 +715,18 @@ static void requestShutdown(RIL_Token t) return; } +static void requestNvResetConfig(void* data, size_t datalen __unused, RIL_Token t) { + assert(datalen >= sizeof(int*)); + int nvConfig = ((int*)data)[0]; + if (nvConfig == 1 /* ResetNvType::RELOAD */) { + setRadioState(RADIO_STATE_OFF); + // Wait for FW to process radio off before sending radio on for reboot + sleep(5); + setRadioState(RADIO_STATE_ON); + } + RIL_onRequestComplete(t, RIL_E_SUCCESS, NULL, 0); +} + static void requestOrSendDataCallList(int cid, RIL_Token *t); static void onDataCallListChanged(void *param __unused) @@ -3329,29 +3341,32 @@ static void requestGetCellInfoList(void *data __unused, size_t datalen __unused, } static void requestGetCellInfoList_1_6(void* data __unused, size_t datalen __unused, RIL_Token t) { - uint64_t curTime = ril_nano_time(); RIL_CellInfo_v16 ci[1] = {{ // ci[0] - 1, // cellInfoType + 3, // cellInfoType 1, // registered CELL_CONNECTION_PRIMARY_SERVING, - { // union CellInfo - {// RIL_CellInfoGsm gsm - { - // gsm.cellIdneityGsm - s_mcc, // mcc - s_mnc, // mnc - s_lac, // lac - s_cid, // cid - 0, // arfcn unknown - 0x1, // Base Station Identity Code set to arbitrarily 1 - }, - { - // gsm.signalStrengthGsm - 10, // signalStrength - 0 // bitErrorRate - , - INT_MAX // timingAdvance invalid value - }}}}}; + { // union CellInfo + .lte = {// RIL_CellInfoLte_v12 lte + { + // RIL_CellIdentityLte_v12 + // lte.cellIdentityLte + s_mcc, // mcc + s_mnc, // mnc + s_cid, // ci + 0, // pci + s_lac, // tac + 7, // earfcn + }, + { + // RIL_LTE_SignalStrength_v8 + // lte.signalStrengthLte + 10, // signalStrength + 44, // rsrp + 3, // rsrq + 30, // rssnr + 0, // cqi + INT_MAX // timingAdvance invalid value + }}}}}; RIL_onRequestComplete(t, RIL_E_SUCCESS, ci, sizeof(ci)); } @@ -4819,6 +4834,10 @@ onRequest (int request, void *data, size_t datalen, RIL_Token t) RIL_onRequestComplete(t, RIL_E_SUCCESS, NULL, 0); break; + case RIL_REQUEST_NV_RESET_CONFIG: + requestNvResetConfig(data, datalen, t); + break; + case RIL_REQUEST_BASEBAND_VERSION: requestCdmaBaseBandVersion(request, data, datalen, t); break; diff --git a/shared/permissions/cuttlefish_excluded_hardware.xml b/shared/permissions/cuttlefish_excluded_hardware.xml index 11e9c429b..c3d03d597 100644 --- a/shared/permissions/cuttlefish_excluded_hardware.xml +++ b/shared/permissions/cuttlefish_excluded_hardware.xml @@ -16,7 +16,4 @@ <permissions> <unavailable-feature name="android.software.print" /> <unavailable-feature name="android.software.voice_recognizers" /> -<!-- b/208794808 Exclude this feature to skip the CTS test - android.telephony.cts.TelephonyManagerTest#testSimSlotMapping --> - <unavailable-feature name="android.hardware.telephony.subscription" /> </permissions> diff --git a/tests/ril/src/com/android/cuttlefish/ril/tests/RilE2eTests.java b/tests/ril/src/com/android/cuttlefish/ril/tests/RilE2eTests.java index 534f676bc..d63399169 100644 --- a/tests/ril/src/com/android/cuttlefish/ril/tests/RilE2eTests.java +++ b/tests/ril/src/com/android/cuttlefish/ril/tests/RilE2eTests.java @@ -23,8 +23,8 @@ import android.net.Network; import android.net.NetworkInfo; import android.net.wifi.WifiManager; import android.os.Build; -import android.telephony.CellInfoGsm; -import android.telephony.CellSignalStrengthGsm; +import android.telephony.CellInfoLte; +import android.telephony.CellSignalStrengthLte; import android.telephony.TelephonyManager; import android.util.Log; @@ -142,9 +142,9 @@ public class RilE2eTests { @Test public void testSignalLevels() throws Exception { - CellInfoGsm cellinfogsm = (CellInfoGsm)mTeleManager.getAllCellInfo().get(0); - CellSignalStrengthGsm cellSignalStrengthGsm = cellinfogsm.getCellSignalStrength(); - int bars = cellSignalStrengthGsm.getLevel(); + CellInfoLte cellInfo = (CellInfoLte) mTeleManager.getAllCellInfo().get(0); + CellSignalStrengthLte signalStrength = cellInfo.getCellSignalStrength(); + int bars = signalStrength.getLevel(); Assert.assertThat("Signal Bars", bars, greaterThan(1)); } } |