diff --git a/.gitignore b/.gitignore
index f5167b69b3..99cdce7880 100755
--- a/.gitignore
+++ b/.gitignore
@@ -10,5 +10,8 @@
 /u-boot
 /rockdev
 /out
+/hardware/marvell
+/hardware/qcom
+/hardware/realtek
 
 
diff --git a/device/rockchip/common/device.mk b/device/rockchip/common/device.mk
index df530e0c9a..9704a93e47 100755
--- a/device/rockchip/common/device.mk
+++ b/device/rockchip/common/device.mk
@@ -533,16 +533,6 @@ PRODUCT_COPY_FILES += \
     $(call copyNfcFirmware, BCM43341NFCB0_002.001.009.0021.0000_Generic_PreI2C_NCD_Signed_configdata.ncd)
 endif
 
-# for realtek bluetooth
-PRODUCT_PACKAGES += \
-    bluetooth_rtk.default \
-    libbt-vendor.so \
-    libbt-vendor_uart.so \
-    libbt-vendor_usb.so \
-    bt_vendor.conf
-#include hardware/realtek/rtkbt/rtkbt.mk
-$(call inherit-product, hardware/realtek/rtkbt/rtkbt.mk)
-
 ifeq ($(strip $(TARGET_BOARD_PLATFORM_PRODUCT)), box)
 include device/rockchip/common/samba/rk31_samba.mk
 PRODUCT_PROPERTY_OVERRIDES += \
diff --git a/device/rockchip/common/wifi_bt_common.mk b/device/rockchip/common/wifi_bt_common.mk
index dbb3566c1d..f33438dd30 100644
--- a/device/rockchip/common/wifi_bt_common.mk
+++ b/device/rockchip/common/wifi_bt_common.mk
@@ -40,7 +40,6 @@ endif
 BOARD_HAVE_BLUETOOTH_RTK := true
 BOARD_HAVE_BLUETOOTH_RTK_COEX := true
 
-BOARD_HAVE_BLUETOOTH_MRVL := true
 BOARD_WPA_SUPPLICANT_DRIVER := NL80211
 WPA_SUPPLICANT_VERSION      := VER_0_8_X
 BOARD_HOSTAPD_DRIVER        := NL80211
diff --git a/device/rockchip/rk3399/rk3399_rsb4710/BoardConfig.mk b/device/rockchip/rk3399/rk3399_rsb4710/BoardConfig.mk
index 7d6a973539..520e3e586c 100755
--- a/device/rockchip/rk3399/rk3399_rsb4710/BoardConfig.mk
+++ b/device/rockchip/rk3399/rk3399_rsb4710/BoardConfig.mk
@@ -1,5 +1,31 @@
+BOARD_HAVE_BLUETOOTH_BCM := false
+BOARD_HAVE_BLUETOOTH_RTK := false
+BOARD_HAVE_BLUETOOTH_MRVL := false
+BOARD_HAVE_BLUETOOTH_LINUX := true
+#BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := system/bt/vendor_libs/linux
+#BOARD_CONNECTIVITY_VENDOR := RealTek
+#BOARD_CONNECTIVITY_MODULE := rtl8723bu
+BOARD_CONNECTIVITY_VENDOR := 
+BOARD_CONNECTIVITY_MODULE := 
+BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR :=
+
 include device/rockchip/rk3399/BoardConfig.mk
 
+
+BOARD_HAVE_BLUETOOTH_BCM := false
+BOARD_HAVE_BLUETOOTH_RTK := false
+BOARD_HAVE_BLUETOOTH_MRVL := false
+BOARD_HAVE_BLUETOOTH_LINUX := true
+#BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := system/bt/vendor_libs/linux
+#BOARD_CONNECTIVITY_VENDOR := RealTek
+#BOARD_CONNECTIVITY_MODULE := rtl8723bu
+BOARD_CONNECTIVITY_VENDOR := 
+BOARD_CONNECTIVITY_MODULE := 
+BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR :=
+
+PRODUCT_PACKAGES += libbt-vendor.so
+
+
 # Sensors
 BOARD_SENSOR_ST := false
 BOARD_SENSOR_MPU_PAD := false
@@ -7,7 +33,7 @@ BOARD_SENSOR_MPU_VR := false
 
 BOARD_SENSOR_COMPASS_AK8963-64 := false
 
-WITH_DEXPREOPT := true
+WITH_DEXPREOPT := false
 
 TARGET_BOARD_PLATFORM_PRODUCT := tablet
 
@@ -20,3 +46,14 @@ endif
 else
 BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1610612736
 endif
+
+
+$(warning sven BOARD_HAVE_BLUETOOTH=$(BOARD_HAVE_BLUETOOTH))
+$(warning sven BOARD_HAVE_BLUETOOTH_RTK=$(BOARD_HAVE_BLUETOOTH_RTK))
+$(warning sven BOARD_HAVE_BLUETOOTH_LINUX=$(BOARD_HAVE_BLUETOOTH_LINUX))
+$(warning sven BOARD_HAVE_BLUETOOTH_MRVL=$(BOARD_HAVE_BLUETOOTH_MRVL))
+$(warning sven BOARD_HAVE_BLUETOOTH_BCM=$(BOARD_HAVE_BLUETOOTH_BCM))
+$(warning sven BOARD_CONNECTIVITY_VENDOR=$(BOARD_CONNECTIVITY_VENDOR))
+$(warning sven BOARD_CONNECTIVITY_MODULE=$(BOARD_CONNECTIVITY_MODULE))
+$(warning sven TARGET_BOARD_PLATFORM=$(TARGET_BOARD_PLATFORM))
+$(warning sven BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR=$(BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR))
diff --git a/device/rockchip/rk3399/rk3399_rsb4710/preinstall/Android.mk b/device/rockchip/rk3399/rk3399_rsb4710/preinstall/Android.mk
index c2374ee42c..8338432200 100644
--- a/device/rockchip/rk3399/rk3399_rsb4710/preinstall/Android.mk
+++ b/device/rockchip/rk3399/rk3399_rsb4710/preinstall/Android.mk
@@ -1,3 +1,2 @@
-ifeq ($(PRODUCT_NAME),rk3399_rsb4710)
 include $(call all-subdir-makefiles)
-endif
+
diff --git a/device/rockchip/rk3399/rk3399_rsb4710/preinstall_del/Android.mk b/device/rockchip/rk3399/rk3399_rsb4710/preinstall_del/Android.mk
index c2374ee42c..8338432200 100644
--- a/device/rockchip/rk3399/rk3399_rsb4710/preinstall_del/Android.mk
+++ b/device/rockchip/rk3399/rk3399_rsb4710/preinstall_del/Android.mk
@@ -1,3 +1,2 @@
-ifeq ($(PRODUCT_NAME),rk3399_rsb4710)
 include $(call all-subdir-makefiles)
-endif
+
diff --git a/device/rockchip/rk3399/rk3399_rsb4710/preinstall_del_forever/Android.mk b/device/rockchip/rk3399/rk3399_rsb4710/preinstall_del_forever/Android.mk
index c2374ee42c..8338432200 100644
--- a/device/rockchip/rk3399/rk3399_rsb4710/preinstall_del_forever/Android.mk
+++ b/device/rockchip/rk3399/rk3399_rsb4710/preinstall_del_forever/Android.mk
@@ -1,3 +1,2 @@
-ifeq ($(PRODUCT_NAME),rk3399_rsb4710)
 include $(call all-subdir-makefiles)
-endif
+
diff --git a/device/rockchip/rk3399/vendorsetup.sh b/device/rockchip/rk3399/vendorsetup.sh
index 394ec3ce93..6e8c23e4c3 100644
--- a/device/rockchip/rk3399/vendorsetup.sh
+++ b/device/rockchip/rk3399/vendorsetup.sh
@@ -2,6 +2,7 @@ add_lunch_combo rk3399_all-userdebug
 add_lunch_combo rk3399_all-user
 add_lunch_combo rk3399_rsb4710-userdebug
 add_lunch_combo rk3399_rsb4710-user
+add_lunch_combo rk3399_rsb4710-eng
 add_lunch_combo rk3399_rsb3710-userdebug
 add_lunch_combo rk3399_rsb3710-user
 add_lunch_combo rk3399_rom5780-userdebug
diff --git a/device/rockchip/rk3399/wifi_bt.mk b/device/rockchip/rk3399/wifi_bt.mk
index 6d53792560..7f0d3c0bb5 100644
--- a/device/rockchip/rk3399/wifi_bt.mk
+++ b/device/rockchip/rk3399/wifi_bt.mk
@@ -39,5 +39,5 @@
 #           rda587x,         #like  rtl8188+rda587x
 #           mt6622,          #like  rtl8188+mt6622 
 #
-BOARD_CONNECTIVITY_VENDOR := Broadcom
-BOARD_CONNECTIVITY_MODULE := ap6xxx
+BOARD_CONNECTIVITY_VENDOR := RealTek
+BOARD_CONNECTIVITY_MODULE := rtl8723bu
diff --git a/packages/apps/Bluetooth/jni/com_android_bluetooth_btservice_AdapterService.cpp b/packages/apps/Bluetooth/jni/com_android_bluetooth_btservice_AdapterService.cpp
index cff38a4541..c4622317fe 100755
--- a/packages/apps/Bluetooth/jni/com_android_bluetooth_btservice_AdapterService.cpp
+++ b/packages/apps/Bluetooth/jni/com_android_bluetooth_btservice_AdapterService.cpp
@@ -690,7 +690,7 @@ static void classInitNative(JNIEnv* env, jclass clazz) {
 
     char type[64];
     check_wifi_chip_type_string(type);
-    if (!strncmp(type, "RTL", 3)) {
+    if (!strncmp(type, "RTL", 3) /*|| 1*/) {
         ALOGD("%s, load %s.default.so", __func__, BT_STACK_RTK_MODULE_ID);
         err = hw_get_module(BT_STACK_RTK_MODULE_ID, (hw_module_t const**)&module);
     } else {
diff --git a/packages/apps/Gallery2/AndroidManifest.xml b/packages/apps/Gallery2/AndroidManifest.xml
index 2be8e6825a..064c5b9dc8 100644
--- a/packages/apps/Gallery2/AndroidManifest.xml
+++ b/packages/apps/Gallery2/AndroidManifest.xml
@@ -4,7 +4,7 @@
         android:versionName="1.1.40032-20140424"
         xmlns:android="http://schemas.android.com/apk/res/android"
         package="com.android.gallery3d"
-        android:sharedUserId="android.uid.system">
+        >
         
 
     <original-package android:name="com.android.gallery3d" />
diff --git a/packages/apps/Launcher3/Android.mk b/packages/apps/Launcher3/Android.mk
index 8833b01198..b0a357d3ea 100644
--- a/packages/apps/Launcher3/Android.mk
+++ b/packages/apps/Launcher3/Android.mk
@@ -54,6 +54,8 @@ LOCAL_FULL_LIBS_MANIFEST_FILES := $(LOCAL_PATH)/AndroidManifest-common.xml
 
 LOCAL_JACK_COVERAGE_INCLUDE_FILTER := com.android.launcher3.*
 
+LOCAL_DEX_PREOPT := nostripping
+
 include $(BUILD_PACKAGE)
 
 #
diff --git a/packages/apps/Terminal/AndroidManifest.xml b/packages/apps/Terminal/AndroidManifest.xml
index 6e2c3e1556..f53d4295dd 100644
--- a/packages/apps/Terminal/AndroidManifest.xml
+++ b/packages/apps/Terminal/AndroidManifest.xml
@@ -18,7 +18,7 @@
 
     <application
         android:label="@string/app_label"
-        android:enabled="false">
+        android:enabled="true">
 
         <activity
             android:name=".TerminalActivity"
diff --git a/prebuilts/misc/linux-x86/flex/flex-2.5.39 b/prebuilts/misc/linux-x86/flex/flex-2.5.39
index 7488e09e09..4e5fdfb436 100755
Binary files a/prebuilts/misc/linux-x86/flex/flex-2.5.39 and b/prebuilts/misc/linux-x86/flex/flex-2.5.39 differ
diff --git a/prebuilts/misc/linux-x86/flex/flex-2.5.39.tar.gz b/prebuilts/misc/linux-x86/flex/flex-2.5.39.tar.gz
deleted file mode 100644
index 35e1617d8f..0000000000
Binary files a/prebuilts/misc/linux-x86/flex/flex-2.5.39.tar.gz and /dev/null differ
diff --git a/system/bt/Android.mk b/system/bt/Android.mk
index 29760e4e0b..fad2c5b9d5 100644
--- a/system/bt/Android.mk
+++ b/system/bt/Android.mk
@@ -45,6 +45,7 @@ bluetooth_CONLYFLAGS += -std=c99
 bluetooth_CPPFLAGS :=
 
 include $(call all-subdir-makefiles)
+include system/bt/vendor_libs/linux/Android.mk
 
 # Cleanup our locals
 bluetooth_C_INCLUDES :=
diff --git a/system/bt/vendor_libs/linux/Android.mk b/system/bt/vendor_libs/linux/Android.mk
index c5b120d426..4252c8eeed 100644
--- a/system/bt/vendor_libs/linux/Android.mk
+++ b/system/bt/vendor_libs/linux/Android.mk
@@ -17,7 +17,6 @@
 LOCAL_PATH := $(call my-dir)
 
 ifeq ($(BOARD_HAVE_BLUETOOTH_LINUX), true)
-
 # libbt-vendor shared library for target
 # ========================================================
 include $(CLEAR_VARS)
diff --git a/system/bt/vendor_libs/linux/bt_vendor_linux.c b/system/bt/vendor_libs/linux/bt_vendor_linux.c
index 41abc8a934..bd9e7b3c49 100644
--- a/system/bt/vendor_libs/linux/bt_vendor_linux.c
+++ b/system/bt/vendor_libs/linux/bt_vendor_linux.c
@@ -31,7 +31,7 @@
 
 #include "hci/include/bt_vendor_lib.h"
 #include "osi/include/log.h"
-#include "osi/include/properties.h"
+//#include "osi/include/properties.h"
 
 #define BTPROTO_HCI     1
 #define HCI_CHANNEL_USER        1
@@ -49,6 +49,32 @@
 
 #define IOCTL_HCIDEVDOWN        _IOW('H', 202, int)
 
+
+#define OSI_NO_INTR(fn) \
+  do {                  \
+  } while ((fn) == -1 && errno == EINTR)
+
+#define PROPERTY_VALUE_MAX 92
+int osi_property_get(const char *key, char *value, const char *default_value) {
+    /* For linux right now just return default value, if present */
+    int len = -1;
+    if (!default_value)
+      return len;
+
+    len = strlen(default_value);
+    if (len >= PROPERTY_VALUE_MAX)
+      len = PROPERTY_VALUE_MAX - 1;
+
+    memcpy(value, default_value, len);
+    value[len] = '\0';
+    return len;
+}
+
+int osi_property_set(const char *key, const char *value) {
+    return -1;
+}
+
+
 struct sockaddr_hci {
   sa_family_t    hci_family;
   unsigned short hci_dev;
@@ -348,6 +374,7 @@ static int bt_vendor_op(bt_vendor_opcode_t opcode, void *param)
   int retval = 0;
 
   LOG_INFO(LOG_TAG, "%s op %d", __func__, opcode);
+  LOG_INFO(LOG_TAG, "%s BT_VND_OP_LPM_WAKE_SET_STATE=%i", __func__, BT_VND_OP_LPM_WAKE_SET_STATE);
 
   switch (opcode) {
   case BT_VND_OP_POWER_CTRL:
@@ -392,6 +419,7 @@ static int bt_vendor_op(bt_vendor_opcode_t opcode, void *param)
     break;
 
   case BT_VND_OP_LPM_WAKE_SET_STATE:
+  LOG_INFO(LOG_TAG, "%s BT_VND_OP_LPM_WAKE_SET_STATE(%i", __func__, (uint8_t)param);
     break;
 
   case BT_VND_OP_SET_AUDIO_STATE:
@@ -401,6 +429,10 @@ static int bt_vendor_op(bt_vendor_opcode_t opcode, void *param)
   case BT_VND_OP_EPILOG:
     bt_vendor_callbacks->epilog_cb(BT_VND_OP_RESULT_SUCCESS);
     break;
+
+
+  default:
+    ;
   }
 
   LOG_INFO(LOG_TAG, "%s op %d retval %d", __func__, opcode, retval);
diff --git a/vendor/rockchip/common/bluetooth/mt6622/libbt-vendor.so b/vendor/rockchip/common/bluetooth/mt6622/libbt-vendor.so
deleted file mode 100755
index 9bb09e4ead..0000000000
Binary files a/vendor/rockchip/common/bluetooth/mt6622/libbt-vendor.so and /dev/null differ
