From 33146d4bc84df1c1e493ef165da7a9ae77dfd3ae Mon Sep 17 00:00:00 2001 From: Sungjun Park Date: Wed, 10 Jun 2015 15:55:37 -0700 Subject: Bluetooth: Add system permission for wcnss_filter Once build is complied as user-debug, system permission will be given to wcnss_filter service to support kernel panic. Change-Id: I2a92bde829a60bbf2dc7babfced89ce8addeb7e8 --- libbt-vendor/Android.mk | 4 ++++ libbt-vendor/src/bt_vendor_qcom.c | 17 ++++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/libbt-vendor/Android.mk b/libbt-vendor/Android.mk index 3414909..c959b9f 100644 --- a/libbt-vendor/Android.mk +++ b/libbt-vendor/Android.mk @@ -39,6 +39,10 @@ ifeq ($(BOARD_HAS_QCA_BT_ROME),true) LOCAL_CFLAGS += -DBT_SOC_TYPE_ROME endif +ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT))) +LOCAL_CFLAGS += -DPANIC_ON_SOC_CRASH +endif + LOCAL_C_INCLUDES += \ $(LOCAL_PATH)/include \ $(BDROID_DIR)/hci/include \ diff --git a/libbt-vendor/src/bt_vendor_qcom.c b/libbt-vendor/src/bt_vendor_qcom.c index e52312d..b8b66ae 100644 --- a/libbt-vendor/src/bt_vendor_qcom.c +++ b/libbt-vendor/src/bt_vendor_qcom.c @@ -42,6 +42,12 @@ #define WAIT_TIMEOUT 200000 +#ifdef PANIC_ON_SOC_CRASH +#define BT_VND_FILTER_START "wc_transport.start_root" +#else +#define BT_VND_FILTER_START "wc_transport.start_hci" +#endif + /****************************************************************************** ** Externs ******************************************************************************/ @@ -258,14 +264,14 @@ void stop_hci_filter() { char value[PROPERTY_VALUE_MAX] = {'\0'}; ALOGV("%s: Entry ", __func__); - property_get("wc_transport.start_hci", value, "false"); + property_get(BT_VND_FILTER_START, value, "false"); if (strcmp(value, "false") == 0) { ALOGI("%s: hci_filter has been stopped already", __func__); // return; } - property_set("wc_transport.start_hci", "false"); + property_set(BT_VND_FILTER_START, "false"); property_set("wc_transport.hci_filter_status", "0"); ALOGV("%s: Exit ", __func__); } @@ -275,8 +281,7 @@ void start_hci_filter() { int i, init_success = 0; char value[PROPERTY_VALUE_MAX] = {'\0'}; - - property_get("wc_transport.start_hci", value, false); + property_get(BT_VND_FILTER_START, value, false); if (strcmp(value, "true") == 0) { ALOGI("%s: hci_filter has been started already", __func__); @@ -284,8 +289,10 @@ void start_hci_filter() { } property_set("wc_transport.hci_filter_status", "0"); + property_set(BT_VND_FILTER_START, "true"); + + ALOGV("%s: %s set to true ", __func__, BT_VND_FILTER_START ); - property_set("wc_transport.start_hci", "true"); //sched_yield(); for(i=0; i<45; i++) { property_get("wc_transport.hci_filter_status", value, "0"); -- cgit v1.2.3