Emulator: support querying device identity
Current reference-ril only support CDMA type;
Changed it to support Non-CDMS type (such as GSM) as well.
BUG: 72886046
Test: run cts -m CtsTelephonyTestCases -t
android.telephony.cts.TelephonyManagerTest#testGetImei
Change-Id: I8a5f61d96568b22f990da2004248436fcef7a51a
Signed-off-by: Roman Kiryanov <rkir@google.com>
diff --git a/reference-ril/reference-ril.c b/reference-ril/reference-ril.c
index b04db97..4697f90 100644
--- a/reference-ril/reference-ril.c
+++ b/reference-ril/reference-ril.c
@@ -1200,7 +1200,7 @@
free(responseStr);
}
-static void requestCdmaDeviceIdentity(int request __unused, void *data __unused,
+static void requestDeviceIdentity(int request __unused, void *data __unused,
size_t datalen __unused, RIL_Token t)
{
int err;
@@ -1224,7 +1224,11 @@
RIL_onRequestComplete(t, RIL_E_GENERIC_FAILURE, NULL, 0);
return;
} else {
- responseStr[3] = p_response->p_intermediates->line;
+ if (TECH_BIT(sMdmInfo) == MDM_CDMA) {
+ responseStr[3] = p_response->p_intermediates->line;
+ } else {
+ responseStr[0] = p_response->p_intermediates->line;
+ }
}
RIL_onRequestComplete(t, RIL_E_SUCCESS, responseStr, count*sizeof(char*));
@@ -2723,7 +2727,7 @@
break;
case RIL_REQUEST_DEVICE_IDENTITY:
- requestCdmaDeviceIdentity(request, data, datalen, t);
+ requestDeviceIdentity(request, data, datalen, t);
break;
case RIL_REQUEST_CDMA_SUBSCRIPTION: