libril: Add DISABLE_RILD_OEM_HOOK.
OEM hook is deprecated, so adding a way to disable it to
this radio implementation.
Bug: 75322118
Test: boot device w/ DISABLE_RILD_OEM_HOOK works, lshal
Change-Id: Ie7ade48476d2c330df608e9cc8dab805f84dd81d
diff --git a/ril/libril/Android.mk b/ril/libril/Android.mk
index ed57b2e..6479eee 100644
--- a/ril/libril/Android.mk
+++ b/ril/libril/Android.mk
@@ -58,6 +58,10 @@
LOCAL_CFLAGS += -DNEEDS_IMS_TYPE_FIELD
endif
+ifneq ($(DISABLE_RILD_OEM_HOOK),)
+ LOCAL_CFLAGS += -DOEM_HOOK_DISABLED
+endif
+
LOCAL_C_INCLUDES += $(LOCAL_PATH)/include
LOCAL_C_INCLUDES += external/nanopb-c
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../include
diff --git a/ril/libril/ril_service.cpp b/ril/libril/ril_service.cpp
index dd4b364..ab5d8d4 100644
--- a/ril/libril/ril_service.cpp
+++ b/ril/libril/ril_service.cpp
@@ -59,6 +59,12 @@
#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;
@@ -6413,6 +6419,8 @@
RLOGD("sendRequestRawResponse: serial %d", serial);
#endif
+ if (!kOemHookEnabled) return 0;
+
if (oemHookService[slotId]->mOemHookResponse != NULL) {
RadioResponseInfo responseInfo = {};
populateResponseInfo(responseInfo, serial, responseType, e);
@@ -6442,6 +6450,8 @@
RLOGD("sendRequestStringsResponse: serial %d", serial);
#endif
+ if (!kOemHookEnabled) return 0;
+
if (oemHookService[slotId]->mOemHookResponse != NULL) {
RadioResponseInfo responseInfo = {};
populateResponseInfo(responseInfo, serial, responseType, e);
@@ -8422,6 +8432,8 @@
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");
@@ -8471,11 +8483,14 @@
radioService[i] = new RadioImpl;
radioService[i]->mSlotId = i;
- oemHookService[i] = new OemHookImpl;
- oemHookService[i]->mSlotId = i;
RLOGD("registerService: starting 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);