diff options
author | Bo Hu <bohu@google.com> | 2018-03-16 19:30:21 +0000 |
---|---|---|
committer | Bo Hu <bohu@google.com> | 2018-03-16 19:30:21 +0000 |
commit | 0c6d7438566d42bf07d1fcf7bf3460ce406f0ac2 (patch) | |
tree | 90d7a0593768c484e85bc29300f4a6a00820a000 /reference-ril | |
parent | 1a0999f5359912a5f8b43ecb242b6fcb1de6c769 (diff) | |
download | android_hardware_ril-0c6d7438566d42bf07d1fcf7bf3460ce406f0ac2.tar.gz android_hardware_ril-0c6d7438566d42bf07d1fcf7bf3460ce406f0ac2.tar.bz2 android_hardware_ril-0c6d7438566d42bf07d1fcf7bf3460ce406f0ac2.zip |
Revert "Emulator: add CSIM authentication support"
This reverts commit 1a0999f5359912a5f8b43ecb242b6fcb1de6c769.
Reason for revert: regression
Change-Id: Iaccff16f66132418e744531db117c7d6af21a90a
BUG: 75284151
Diffstat (limited to 'reference-ril')
-rw-r--r-- | reference-ril/reference-ril.c | 95 |
1 files changed, 14 insertions, 81 deletions
diff --git a/reference-ril/reference-ril.c b/reference-ril/reference-ril.c index f512469..81bf8d5 100644 --- a/reference-ril/reference-ril.c +++ b/reference-ril/reference-ril.c @@ -410,22 +410,6 @@ static RIL_Errno setInterfaceState(const char* interfaceName, return RIL_E_SUCCESS; } -static void parseAuthResponse(char* line, RIL_SIM_IO_Response* response) { - // example string +CSIM=number, "<base64string>9000" - // get the status first - int len = strlen(line); - char* first_double_quote = strchr(line, '"'); - if (first_double_quote == NULL) { - RLOGE("%s bad response %s", __func__, line); - return; - } - char* data_ptr = first_double_quote + 1; - sscanf(line + (len -5), "%2x%2x", &(response->sw1), &(response->sw2)); - line[len-5] = '\0'; - response->simResponse = strdup(data_ptr); -} - - /** do post-AT+CFUN=1 initialization */ static void onRadioPowerOn() { @@ -2343,52 +2327,6 @@ static void requestGetMute(void *data, size_t datalen, RIL_Token t) RIL_onRequestComplete(t, RIL_E_SUCCESS, &muteResponse, sizeof(muteResponse)); } -static void requestGetSimAuthentication(void *data, size_t datalen __unused, RIL_Token t) -{ - // TODO - hook this up with real query/info from radio. - RIL_SimAuthentication* auth = (RIL_SimAuthentication*)data; - - RIL_SIM_IO_Response auth_response = { - 0x90, - 0x00, - "" - }; - - // special case: empty authData, should return empty response - if (auth->authData == NULL || strlen(auth->authData) == 0) { - char reply[] = ""; - RIL_onRequestComplete(t, RIL_E_SUCCESS, &auth_response, sizeof(auth_response)); - RLOGD("%s empty data in", __func__); - return; - } - - //talk to modem - ATResponse *p_response = NULL; - memset(&auth_response, 0, sizeof(auth_response)); - int err; - char *cmd = NULL; - int auth_len = strlen(auth->authData); - int total_len = auth_len + 12; - asprintf(&cmd, "AT+CSIM=%d, \"008800%02x%02x%s00\"", total_len, auth->authContext, - auth_len, auth->authData); - - err = at_send_command_singleline(cmd, "+CSIM:", &p_response); - if (err < 0 || p_response == NULL || p_response->success == 0) { - ALOGE("%s Error %d transmitting CSIM: %d", __func__, - err, p_response ? p_response->success : 0); - RIL_onRequestComplete(t, RIL_E_GENERIC_FAILURE, NULL, 0); - at_response_free(p_response); - return; - } - - char* line = p_response->p_intermediates->line; - - parseAuthResponse(line, &auth_response); - RIL_onRequestComplete(t, RIL_E_SUCCESS, &auth_response, sizeof(auth_response)); - free(auth_response.simResponse); - free(p_response); -} - /*** Callback methods from the RIL library to us ***/ /** @@ -2788,36 +2726,31 @@ onRequest (int request, void *data, size_t datalen, RIL_Token t) RIL_onRequestComplete(t, RIL_E_SUCCESS, NULL, 0); break; - case RIL_REQUEST_SIM_AUTHENTICATION: - requestGetSimAuthentication(data, datalen, t); - break; - - /* CDMA Specific Requests */ case RIL_REQUEST_BASEBAND_VERSION: - if (TECH_BIT(sMdmInfo) == MDM_CDMA) { - requestCdmaBaseBandVersion(request, data, datalen, t); - break; - } // Fall-through if tech is not cdma + requestCdmaBaseBandVersion(request, data, datalen, t); + break; case RIL_REQUEST_DEVICE_IDENTITY: requestDeviceIdentity(request, data, datalen, t); break; case RIL_REQUEST_CDMA_SUBSCRIPTION: - if (TECH_BIT(sMdmInfo) == MDM_CDMA) { - requestCdmaSubscription(request, data, datalen, t); - break; - } else { - RIL_onRequestComplete(t, RIL_E_REQUEST_NOT_SUPPORTED, NULL, 0); - } + requestCdmaSubscription(request, data, datalen, t); + break; case RIL_REQUEST_CDMA_GET_SUBSCRIPTION_SOURCE: - if (TECH_BIT(sMdmInfo) == MDM_CDMA) { - requestCdmaGetSubscriptionSource(request, data, datalen, t); - break; + requestCdmaGetSubscriptionSource(request, data, datalen, t); + break; + + case RIL_REQUEST_START_LCE: + case RIL_REQUEST_STOP_LCE: + case RIL_REQUEST_PULL_LCEDATA: + if (getSIMStatus() == SIM_ABSENT) { + RIL_onRequestComplete(t, RIL_E_SIM_ABSENT, NULL, 0); } else { - RIL_onRequestComplete(t, RIL_E_REQUEST_NOT_SUPPORTED, NULL, 0); + RIL_onRequestComplete(t, RIL_E_LCE_NOT_SUPPORTED, NULL, 0); } + break; case RIL_REQUEST_CDMA_QUERY_ROAMING_PREFERENCE: if (TECH_BIT(sMdmInfo) == MDM_CDMA) { |