diff options
-rw-r--r-- | libril/Android.mk | 4 | ||||
-rw-r--r-- | libril/ril_service.cpp | 21 |
2 files changed, 22 insertions, 3 deletions
diff --git a/libril/Android.mk b/libril/Android.mk index 681e3c4..ee0530f 100644 --- a/libril/Android.mk +++ b/libril/Android.mk @@ -35,6 +35,10 @@ ifeq ($(SIM_COUNT), 2) LOCAL_CFLAGS += -DANDROID_SIM_COUNT_2 endif +ifneq ($(DISABLE_RILD_OEM_HOOK),) + LOCAL_CFLAGS += -DOEM_HOOK_DISABLED +endif + LOCAL_C_INCLUDES += external/nanopb-c LOCAL_C_INCLUDES += $(LOCAL_PATH)/../include LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/../include diff --git a/libril/ril_service.cpp b/libril/ril_service.cpp index d90ba9c..47b0b9c 100644 --- a/libril/ril_service.cpp +++ b/libril/ril_service.cpp @@ -60,6 +60,12 @@ using android::sp; #define CALL_ONSTATEREQUEST(a) s_vendorFunctions->onStateRequest() #endif +#ifdef OEM_HOOK_DISABLED +constexpr bool kOemHookEnabled = false; +#else +constexpr bool kOemHookEnabled = true; +#endif + RIL_RadioFunctions *s_vendorFunctions = NULL; static CommandInfo *s_commands; @@ -6708,6 +6714,8 @@ int radio::sendRequestRawResponse(int slotId, RLOGD("sendRequestRawResponse: serial %d", serial); #endif + if (!kOemHookEnabled) return 0; + if (oemHookService[slotId]->mOemHookResponse != NULL) { RadioResponseInfo responseInfo = {}; populateResponseInfo(responseInfo, serial, responseType, e); @@ -6737,6 +6745,8 @@ int radio::sendRequestStringsResponse(int slotId, RLOGD("sendRequestStringsResponse: serial %d", serial); #endif + if (!kOemHookEnabled) return 0; + if (oemHookService[slotId]->mOemHookResponse != NULL) { RadioResponseInfo responseInfo = {}; populateResponseInfo(responseInfo, serial, responseType, e); @@ -8447,6 +8457,8 @@ int radio::keepaliveStatusInd(int slotId, int radio::oemHookRawInd(int slotId, int indicationType, int token, RIL_Errno e, void *response, size_t responseLen) { + if (!kOemHookEnabled) return 0; + if (oemHookService[slotId] != NULL && oemHookService[slotId]->mOemHookIndication != NULL) { if (response == NULL || responseLen == 0) { RLOGE("oemHookRawInd: invalid response"); @@ -8496,12 +8508,15 @@ void radio::registerService(RIL_RadioFunctions *callbacks, CommandInfo *commands radioService[i] = new RadioImpl; radioService[i]->mSlotId = i; - oemHookService[i] = new OemHookImpl; - oemHookService[i]->mSlotId = i; RLOGD("registerService: starting android::hardware::radio::V1_1::IRadio %s", serviceNames[i]); android::status_t status = radioService[i]->registerAsService(serviceNames[i]); - status = oemHookService[i]->registerAsService(serviceNames[i]); + + if (kOemHookEnabled) { + oemHookService[i] = new OemHookImpl; + oemHookService[i]->mSlotId = i; + status = oemHookService[i]->registerAsService(serviceNames[i]); + } ret = pthread_rwlock_unlock(radioServiceRwlockPtr); assert(ret == 0); |