Loading ril/libril/ril.cpp +22 −16 Original line number Diff line number Diff line Loading @@ -268,8 +268,14 @@ static size_t s_prevEcopsDataSize[SIM_COUNT]; static int pendingUSRcnt = 0; static USRbuffer pendingUSR[MAX_PENDING_USR]; #endif // device identity static char* Device_ID[SIM_COUNT * 4]; typedef struct { char *imei; char *imeisv; char *esnHex; char *meidHex; } RIL_IDENTITY; static RIL_IDENTITY Device_ID[SIM_COUNT]; #if (SIM_COUNT > 3) #define MAX_RIL_CHANNELS 24 #elif (SIM_COUNT > 2) Loading Loading @@ -1282,28 +1288,28 @@ RIL_onRequestComplete(RIL_Token t, RIL_Errno s_e, void *s_response, size_t s_res RLOGD("C[locl]< %s", requestToString(pRI->pCI->requestNumber)); if (pRI->pCI->requestNumber == RIL_REQUEST_GET_IMEI) { int i = (int)socket_id; Device_ID[i*4] = (char*) response; RLOGD("IMEI= %s", Device_ID[i*4]); RLOGD("SOCKET_ID_IMEI= %d", i); Device_ID[i].imei = (char*) response; RLOGD("IMEI=%s", Device_ID[i].imei); } else if (pRI->pCI->requestNumber == RIL_REQUEST_GET_IMEISV) { int i = (int)socket_id; Device_ID[i*4 + 1] = (char*) response; RLOGD("IMEISV= %s", Device_ID[i*4 + 1]); RLOGD("SOCKET_ID_IMEI_SV= %d", i); Device_ID[i].imeisv = (char*) response; RLOGD("IMEISV=%s", Device_ID[i].imeisv); } goto done; } // *** handle unsupport but necessary requests if(e == RIL_E_REQUEST_NOT_SUPPORTED) { // *** handle unsupported but necessary requests if (pRI->pCI->requestNumber == RIL_REQUEST_DEVICE_IDENTITY) { RLOGD("Overriding RIL_REQUEST_DEVICE_IDENTITY"); int i = (int)socket_id; sprintf(Device_ID[i*4 + 2], ""); sprintf(Device_ID[i*4 + 3], ""); response = (void *) &Device_ID[i*4]; responselen = sizeof(char *) * 4; RLOGD("SOCKET_ID_IDENTITY= %d", i); response = &(Device_ID[i]); responselen = 4 * sizeof(char*); e = RIL_E_SUCCESS; } } appendPrintBuf("[%04d]< %s", pRI->token, requestToString(pRI->pCI->requestNumber)); Loading ril/libril/ril_service.cpp +23 −7 Original line number Diff line number Diff line Loading @@ -542,6 +542,15 @@ hidl_string convertCharPtrToHidlString(const char *ptr) { return ret; } hidl_string convertCharPtrToHidlStringWithLength(const char *ptr, size_t size) { hidl_string ret; if (ptr != NULL) { // TODO: replace this with strnlen ret.setToExternal(ptr, size); } return ret; } bool dispatchVoid(int serial, int slotId, int request) { RequestInfo *pRI = android::addRequestToList(serial, slotId, request); if (pRI == NULL) { Loading Loading @@ -5574,12 +5583,17 @@ int radio::deleteSmsOnRuimResponse(int slotId, return 0; } typedef struct { char *imei; char *imeisv; char *esnHex; char *meidHex; } RIL_IDENTITY; int radio::getDeviceIdentityResponse(int slotId, int responseType, int serial, RIL_Errno e, void *response, size_t responseLen) { #if VDBG RLOGD("getDeviceIdentityResponse: serial %d", serial); #endif if (radioService[slotId]->mRadioResponse != NULL) { RadioResponseInfo responseInfo = {}; Loading @@ -5595,13 +5609,15 @@ int radio::getDeviceIdentityResponse(int slotId, emptyString, emptyString, emptyString, emptyString); radioService[slotId]->checkReturnStatus(retStatus); } else { char **resp = (char **) response; RIL_IDENTITY identity = *((RIL_IDENTITY *) response); RLOGD("getDeviceIdentityResponse: IMEI=%s", identity.imei); RLOGD("getDeviceIdentityResponse: IMEISV=%s", identity.imeisv); Return<void> retStatus = radioService[slotId]->mRadioResponse->getDeviceIdentityResponse(responseInfo, convertCharPtrToHidlString(resp[0]), convertCharPtrToHidlString(resp[1]), // IMEISV convertCharPtrToHidlString(resp[2]), convertCharPtrToHidlString(resp[3])); convertCharPtrToHidlString(identity.imei), convertCharPtrToHidlString(identity.imeisv), // IMEISV convertCharPtrToHidlString(identity.esnHex), convertCharPtrToHidlString(identity.meidHex)); radioService[slotId]->checkReturnStatus(retStatus); } } else { Loading Loading
ril/libril/ril.cpp +22 −16 Original line number Diff line number Diff line Loading @@ -268,8 +268,14 @@ static size_t s_prevEcopsDataSize[SIM_COUNT]; static int pendingUSRcnt = 0; static USRbuffer pendingUSR[MAX_PENDING_USR]; #endif // device identity static char* Device_ID[SIM_COUNT * 4]; typedef struct { char *imei; char *imeisv; char *esnHex; char *meidHex; } RIL_IDENTITY; static RIL_IDENTITY Device_ID[SIM_COUNT]; #if (SIM_COUNT > 3) #define MAX_RIL_CHANNELS 24 #elif (SIM_COUNT > 2) Loading Loading @@ -1282,28 +1288,28 @@ RIL_onRequestComplete(RIL_Token t, RIL_Errno s_e, void *s_response, size_t s_res RLOGD("C[locl]< %s", requestToString(pRI->pCI->requestNumber)); if (pRI->pCI->requestNumber == RIL_REQUEST_GET_IMEI) { int i = (int)socket_id; Device_ID[i*4] = (char*) response; RLOGD("IMEI= %s", Device_ID[i*4]); RLOGD("SOCKET_ID_IMEI= %d", i); Device_ID[i].imei = (char*) response; RLOGD("IMEI=%s", Device_ID[i].imei); } else if (pRI->pCI->requestNumber == RIL_REQUEST_GET_IMEISV) { int i = (int)socket_id; Device_ID[i*4 + 1] = (char*) response; RLOGD("IMEISV= %s", Device_ID[i*4 + 1]); RLOGD("SOCKET_ID_IMEI_SV= %d", i); Device_ID[i].imeisv = (char*) response; RLOGD("IMEISV=%s", Device_ID[i].imeisv); } goto done; } // *** handle unsupport but necessary requests if(e == RIL_E_REQUEST_NOT_SUPPORTED) { // *** handle unsupported but necessary requests if (pRI->pCI->requestNumber == RIL_REQUEST_DEVICE_IDENTITY) { RLOGD("Overriding RIL_REQUEST_DEVICE_IDENTITY"); int i = (int)socket_id; sprintf(Device_ID[i*4 + 2], ""); sprintf(Device_ID[i*4 + 3], ""); response = (void *) &Device_ID[i*4]; responselen = sizeof(char *) * 4; RLOGD("SOCKET_ID_IDENTITY= %d", i); response = &(Device_ID[i]); responselen = 4 * sizeof(char*); e = RIL_E_SUCCESS; } } appendPrintBuf("[%04d]< %s", pRI->token, requestToString(pRI->pCI->requestNumber)); Loading
ril/libril/ril_service.cpp +23 −7 Original line number Diff line number Diff line Loading @@ -542,6 +542,15 @@ hidl_string convertCharPtrToHidlString(const char *ptr) { return ret; } hidl_string convertCharPtrToHidlStringWithLength(const char *ptr, size_t size) { hidl_string ret; if (ptr != NULL) { // TODO: replace this with strnlen ret.setToExternal(ptr, size); } return ret; } bool dispatchVoid(int serial, int slotId, int request) { RequestInfo *pRI = android::addRequestToList(serial, slotId, request); if (pRI == NULL) { Loading Loading @@ -5574,12 +5583,17 @@ int radio::deleteSmsOnRuimResponse(int slotId, return 0; } typedef struct { char *imei; char *imeisv; char *esnHex; char *meidHex; } RIL_IDENTITY; int radio::getDeviceIdentityResponse(int slotId, int responseType, int serial, RIL_Errno e, void *response, size_t responseLen) { #if VDBG RLOGD("getDeviceIdentityResponse: serial %d", serial); #endif if (radioService[slotId]->mRadioResponse != NULL) { RadioResponseInfo responseInfo = {}; Loading @@ -5595,13 +5609,15 @@ int radio::getDeviceIdentityResponse(int slotId, emptyString, emptyString, emptyString, emptyString); radioService[slotId]->checkReturnStatus(retStatus); } else { char **resp = (char **) response; RIL_IDENTITY identity = *((RIL_IDENTITY *) response); RLOGD("getDeviceIdentityResponse: IMEI=%s", identity.imei); RLOGD("getDeviceIdentityResponse: IMEISV=%s", identity.imeisv); Return<void> retStatus = radioService[slotId]->mRadioResponse->getDeviceIdentityResponse(responseInfo, convertCharPtrToHidlString(resp[0]), convertCharPtrToHidlString(resp[1]), // IMEISV convertCharPtrToHidlString(resp[2]), convertCharPtrToHidlString(resp[3])); convertCharPtrToHidlString(identity.imei), convertCharPtrToHidlString(identity.imeisv), // IMEISV convertCharPtrToHidlString(identity.esnHex), convertCharPtrToHidlString(identity.meidHex)); radioService[slotId]->checkReturnStatus(retStatus); } } else { Loading