diff options
author | Sungjun Park <sjpark@codeaurora.org> | 2015-06-10 15:55:37 -0700 |
---|---|---|
committer | Sungjun Park <sjpark@codeaurora.org> | 2015-07-14 16:28:40 -0700 |
commit | 33146d4bc84df1c1e493ef165da7a9ae77dfd3ae (patch) | |
tree | d7cce8aa91078c0814a936e09a60e54153972688 | |
parent | e8a5ed9e98ee50c629462d640412148812ce6d9a (diff) | |
download | android_hardware_qcom_bt-33146d4bc84df1c1e493ef165da7a9ae77dfd3ae.tar.gz android_hardware_qcom_bt-33146d4bc84df1c1e493ef165da7a9ae77dfd3ae.tar.bz2 android_hardware_qcom_bt-33146d4bc84df1c1e493ef165da7a9ae77dfd3ae.zip |
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
-rw-r--r-- | libbt-vendor/Android.mk | 4 | ||||
-rw-r--r-- | 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"); |