Not enable BT on booting time in factory mode 35/223935/3
authorDeokhyun Kim <dukan.kim@samsung.com>
Wed, 5 Feb 2020 06:12:15 +0000 (15:12 +0900)
committerDoHyun Pyun <dh79.pyun@samsung.com>
Wed, 5 Feb 2020 07:31:20 +0000 (16:31 +0900)
Change-Id: Iae2ea70769807e527d55175aff808d033f2833b4
Signed-off-by: Deokhyun Kim <dukan.kim@samsung.com>
bt-service-adaptation/CMakeLists.txt
bt-service-adaptation/services/bt-service-main.c
packaging/bluetooth-frwk.spec

index d3477fd..73c5603 100644 (file)
@@ -73,8 +73,24 @@ ENDIF()
 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../bt-oal/include)
 LINK_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../bt-oal)
 
+IF("$ENV{CFLAGS}" MATCHES "-DTIZEN_FEATURE_BT_FACTORY_MODE")
 SET(PKG_MODULES
         vconf
+        dbus-1
+        gio-2.0
+        gio-unix-2.0
+        alarm-service
+        capi-network-connection
+        cynara-client
+        cynara-creds-gdbus
+        eventsystem
+        storage
+        capi-system-info
+        libsystemd-daemon
+        bincfg
+)
+ELSE()
+SET(PKG_MODULES
         vconf
         dbus-1
         gio-2.0
@@ -88,6 +104,7 @@ SET(PKG_MODULES
         capi-system-info
         libsystemd-daemon
 )
+ENDIF()
 
 INCLUDE(FindPkgConfig)
 pkg_check_modules(service_pkgs REQUIRED ${PKG_MODULES})
index c941296..34394c1 100644 (file)
@@ -19,6 +19,9 @@
 #include <dlog.h>
 #include <string.h>
 #include <vconf.h>
+#ifdef TIZEN_FEATURE_BT_FACTORY_MODE
+#include <bincfg.h>
+#endif
 
 #include <bundle.h>
 #include <eventsystem.h>
@@ -139,6 +142,23 @@ gboolean _bt_reliable_terminate_service(gpointer user_data)
        return FALSE;
 }
 
+static void __bt_check_factory_mode(void)
+{
+#ifdef TIZEN_FEATURE_BT_FACTORY_MODE
+       int factorymode_status = 0;
+       /* BT should not be activated automatically in factory binary */
+       /* factorymode_status :: 0 - normal binary, 1 - factory binary */
+       factorymode_status = bincfg_is_factory_binary();
+       if (factorymode_status != 0) {
+               BT_INFO("factory mode [%d]", factorymode_status);
+               if(vconf_set_int(VCONFKEY_BT_STATUS, VCONFKEY_BT_STATUS_OFF) != 0)
+                       BT_ERR("Set vconf failed");
+               if(vconf_set_int(VCONFKEY_BT_LE_STATUS, VCONFKEY_BT_LE_STATUS_OFF) != 0)
+                       BT_ERR("Set vconf failed");
+       }
+#endif
+}
+
 static gboolean __bt_check_bt_service(void *data)
 {
        bt_status_t status = BT_DEACTIVATED;
@@ -320,6 +340,8 @@ int main(void)
        sigaction(SIGINT, &sa, NULL);
        sigaction(SIGTERM, &sa, NULL);
 
+       __bt_check_factory_mode();
+
        if (_bt_service_initialize() != BLUETOOTH_ERROR_NONE)
                return 0;
 
index 74015cb..d200c7e 100644 (file)
@@ -21,8 +21,12 @@ Requires: bluetooth-tools
 %define bt_gatt_client_fd ENABLED
 %define bt_permanent_log DISABLED
 %define bt_http_proxy DISABLED
+%define bt_factory_mode DISABLED
 
 BuildRequires:  pkgconfig(aul)
+%if %{bt_factory_mode} == ENABLED
+BuildRequires:  pkgconfig(bincfg)
+%endif
 BuildRequires:  pkgconfig(dlog)
 BuildRequires:  pkgconfig(glib-2.0)
 BuildRequires:  pkgconfig(gio-2.0)
@@ -275,6 +279,10 @@ export CFLAGS="$CFLAGS -DTIZEN_FEATURE_BT_PERMANENT_LOG"
 export CFLAGS="$CFLAGS -DTIZEN_FEATURE_BT_HTTP_PROXY"
 %endif
 
+%if %{bt_factory_mode} == ENABLED
+export CFLAGS="$CFLAGS -DTIZEN_FEATURE_BT_FACTORY_MODE"
+%endif
+
 %ifarch %{ix86} x86_64
 export CFLAGS+=" -DTIZEN_TEST_EMUL"
 export CXXFLAGS+=" -DTIZEN_TEST_EMUL"