Supported to detect tizen device only.
authorshingil.kang <shingil.kang@samsung.com>
Tue, 23 Feb 2016 08:13:35 +0000 (17:13 +0900)
committershingil.kang <shingil.kang@samsung.com>
Tue, 5 Apr 2016 02:02:16 +0000 (11:02 +0900)
- Added --only-detect-tizen option to 'sdb start' command, which does not detect android target

Change-Id: I9020ff5528f71ee792fea8cdf442cb402cf17e1d
Signed-off-by: shingil.kang <shingil.kang@samsung.com>
13 files changed:
src/command_function.c
src/commandline.c
src/sdb.c
src/sdb_client.c
src/sdb_constants.c
src/sdb_constants.h
src/sdb_usb.h
src/transport_usb.c
src/usb_windows.c
src/utils.c
src/utils_backend.h
src/utils_unix.c
src/utils_windows.c

index f8a89bf69495b41f3860f9971e8b97f6d6644c04..28e14249a284af41e7c366b8a8a55a9cc546d1b6 100644 (file)
@@ -43,6 +43,7 @@
 #include "log.h"
 #include "sdb.h"
 #include "sdb_messages.h"
+#include "sdb_usb.h"
 
 static const char *SDK_TOOL_PATH="/home/developer/sdk_tools";
 static const char *APP_PATH_PREFIX="/opt/apps";
@@ -439,7 +440,11 @@ int kill_server(int argc, char ** argv) {
 }
 
 int start_server(int argc, char ** argv) {
-    return sdb_connect("host:start-server");
+    if (argv[1] != NULL && !strcmp(argv[1], "--only-detect-tizen")) {
+        return sdb_connect("host:start-server:only-detect-tizen");
+    } else {
+        return sdb_connect("host:start-server");
+    }
 }
 
 int version(int argc, char ** argv) {
@@ -652,6 +657,10 @@ int shell(int argc, char ** argv) {
 
 int forkserver(int argc, char** argv) {
     if(!strcmp(argv[1], "server")) {
+        if(argv[2] != NULL && !strcmp(argv[2], "--only-detect-tizen"))
+            g_only_detect_tizen_device = 1;
+        else
+            g_only_detect_tizen_device = 0;
         int r = sdb_main(1, DEFAULT_SDB_PORT);
         return r;
     }
index 2060cbafce443786db720ea6658b8a16f4091514..20768ecdda2bcbec1aae3ec6557b9b6040f55da0 100755 (executable)
@@ -729,7 +729,7 @@ static void create_cmd_list(LIST_NODE** cmd_list) {
 
     COMMAND* sserver_cmd = NULL;
     create_command(&sserver_cmd, COMMANDLINE_SSERVER_NAME, COMMANDLINE_SSERVER_DESC,
-            COMMANDLINE_SSERVER_DESC_SIZE, EMPTY_STRING, start_server, COMMANDLINE_SSERVER_MAX_ARG, COMMANDLINE_SSERVER_MIN_ARG);
+            COMMANDLINE_SSERVER_DESC_SIZE, COMMANDLINE_SSERVER_ARG_DESC, start_server, COMMANDLINE_SSERVER_MAX_ARG, COMMANDLINE_SSERVER_MIN_ARG);
     prepend(cmd_list, sserver_cmd);
 
     COMMAND* kserver_cmd = NULL;
index 272da740a1b24a70af5aab08ace75e2bcf9511d0..61cb504dfe747375d8a7f66180fa4df6ea7b4f91 100755 (executable)
--- a/src/sdb.c
+++ b/src/sdb.c
@@ -36,6 +36,7 @@
 
 #include "adb_auth.h"
 static int auth_enabled = 0;
+int g_only_detect_tizen_device = 0;
 
 #if SDB_TRACE
 SDB_MUTEX_DEFINE( D_lock );
@@ -169,6 +170,7 @@ int sdb_main(int is_daemon, int server_port)
     if (is_daemon) {
         start_logging();
     }
+    LOG_INFO("only_detect_tizen_device: %d\n", g_only_detect_tizen_device);
 
     //install listener for getting emulator information from qemu
     install_listener(DEFAULT_SDB_QEMU_PORT, 0, NULL, qemuListener);
index 5d4505be831454caf0d36f3a0e4fd216d494bd58..ed98e1ad96db15be7d0465f99b907a237c675a33 100644 (file)
@@ -329,7 +329,7 @@ int _sdb_connect(const char *service)
 
     D("_sdb_connect: %s\n", service);
 
-    if (!strcmp(service, "host:start-server")) {
+    if (!strncmp(service, "host:start-server", 17)) {
         return 0;
     }
 
@@ -392,6 +392,7 @@ static int __inline__ write_msg_size(int fd, int size, int host_fd) {
  */
 int sdb_connect(const char *service)
 {
+    int only_detect_tizen_device;
     // check version before sending a sdb command
     int fd = _sdb_connect("host:version");
 
@@ -451,7 +452,11 @@ int sdb_connect(const char *service)
     if(fd == -2) {
         fprintf(stdout,"* server not running. starting it now on port %d *\n", DEFAULT_SDB_PORT);
 launch_server:
-        if(launch_server()) {
+        if (!strcmp(service, "host:start-server:only-detect-tizen"))
+            only_detect_tizen_device = 1;
+        else
+            only_detect_tizen_device = 0;
+        if(launch_server(only_detect_tizen_device)) {
             print_error(SDB_MESSAGE_ERROR, ERR_GENERAL_START_SERVER_FAIL, NULL);
             return -1;
         } else {
index 36368f9bcbd477e322befc73b3bddd6329af4137..e7069b1ad923ccead94ab28650a77e64bc8079e8 100644 (file)
 
     const char* COMMANDLINE_SSERVER_NAME = "start-server";
     const char* COMMANDLINE_SSERVER_DESC[] = {
-            "ensure that there is a server running"
+            "ensure that there is a server running",
+            "'--only-detect-tizen' means to detect tizen devices only"
     };
     const int COMMANDLINE_SSERVER_DESC_SIZE = GET_ARRAY_SIZE(COMMANDLINE_SSERVER_DESC, char*);
-    const int COMMANDLINE_SSERVER_MAX_ARG = 0;
+    const char* COMMANDLINE_SSERVER_ARG_DESC = "[--only-detect-tizen]";
+    const int COMMANDLINE_SSERVER_MAX_ARG = 1;
     const int COMMANDLINE_SSERVER_MIN_ARG = 0;
 
     const char* COMMANDLINE_KSERVER_NAME = "kill-server";
     const int COMMANDLINE_UNINSTALL_MIN_ARG = 1;
 
     const char* COMMANDLINE_FORKSERVER_NAME = "fork-server";
-    const int COMMANDLINE_FORKSERVER_MAX_ARG = 1;
+    const int COMMANDLINE_FORKSERVER_MAX_ARG = 2;
     const int COMMANDLINE_FORKSERVER_MIN_ARG = 1;
 
     const char* COMMANDLINE_CAPABILITY_NAME = "capability";
index 7a52ffd0c853a877e17fbf2875bd242638854f44..da2f6ddda6de7532c3e3cbf3eb57eeffbbfc625e 100644 (file)
@@ -132,6 +132,7 @@ typedef enum host_type HOST_TYPE;
     extern const char* COMMANDLINE_SSERVER_NAME;
     extern const char* COMMANDLINE_SSERVER_DESC[];
     extern const int COMMANDLINE_SSERVER_DESC_SIZE;
+    extern const char* COMMANDLINE_SSERVER_ARG_DESC;
     extern const int COMMANDLINE_SSERVER_MAX_ARG;
     extern const int COMMANDLINE_SSERVER_MIN_ARG;
 
index 744a357bc667d7b5ddde5f180873f0fc2021b90d..db62e725760f93cde5055978599a65d09e107ab4 100755 (executable)
@@ -4,6 +4,7 @@
 
 
 #include <limits.h>
+extern int g_only_detect_tizen_device;
 
 // should bo implements for each os type
 typedef struct usb_handle usb_handle;
index 4c8b06471f8b2fd18e5bd8d86aba9b7bf6425656..5491421f64104ec38433223052cbd0eb6c04bf0b 100755 (executable)
@@ -25,7 +25,6 @@
 #include "sdb_usb.h"
 #include "transport.h"
 
-
 static int remote_read(TRANSPORT* t, void* data, int len)
 {
        return sdb_usb_read(t->usb, data, len);
@@ -146,8 +145,13 @@ int is_sdb_interface(int vendor_id, int usb_class, int usb_subclass, int usb_pro
     if ( usb_class == SDB_INTERFACE_CLASS ) {
         if ( usb_subclass == SDB_INTERFACE_SUBCLASS && usb_protocol == SDB_INTERFACE_PROTOCOL )
             return 1;
-        else if ( usb_subclass == ADB_INTERFACE_SUBCLASS && usb_protocol == ADB_INTERFACE_PROTOCOL)
-            return 2;
+        if (g_only_detect_tizen_device) {
+            D("only detect tizen device !\n");
+            return 0;
+        } else {
+            if (usb_subclass == ADB_INTERFACE_SUBCLASS && usb_protocol == ADB_INTERFACE_PROTOCOL)
+                return 2;
+        }
     }
     return 0;
 }
index c8311e176c68ad7224fa98e14e70455d4ec93231..b6731657ec11bc031d7aa1627d0398185d0ab4f2 100644 (file)
@@ -28,6 +28,7 @@
 #define   TRACE_TAG  TRACE_USB
 #include "sdb.h"
 #include "sdb_usb.h"
+
 #include "ddk/usb100.h"
 #include "ddk/usbioctl.h"
 
@@ -597,5 +598,6 @@ int sdb_usb_close(usb_handle* handle) {
 
 void do_lsusb() {
     usb_find_devices(TIZEN_CLASSID);
-    usb_find_devices(ANDROID_CLASSID);
+    if(!g_only_detect_tizen_device)
+        usb_find_devices(ANDROID_CLASSID);
 }
index 0a49f502e07ceeeb67e936392b80cb7072b00acd..30bd40273f056c31c415fbf97ef674d4bc95caab 100755 (executable)
@@ -191,8 +191,8 @@ void dup_quote(char* result_string, const char *source, int max_len)
 /**************************************************/
 /***           OS dependent helpers             ***/
 /**************************************************/
-int launch_server(void) {
-    return utils_backend->launch_server();
+int launch_server(int only_detect_tizen_device) {
+    return utils_backend->launch_server(only_detect_tizen_device);
 }
 
 void start_logging(void) {
index efa55dea9992b80eaddb3ca1fae184b8fdf598d8..31c0abb535f5bcdde5d44f246202234310c94c28 100755 (executable)
@@ -56,7 +56,7 @@ struct utils_os_backend {
     // human-readable name
     const char *name;
 
-    int (*launch_server)(void);
+    int (*launch_server)(int only_detect_tizen_device);
     void (*start_logging)(void);
     char* (*ansi_to_utf8)(const char *str);
     int (*sdb_open)(const char* path, int options);
index f2343632ca88a2b1c6b19096bec547c37081db64..fce088c92405a441100413d61a57b02bacda7c07 100755 (executable)
@@ -50,7 +50,7 @@
 #include "log.h"
 #include "sdb_messages.h"
 
-static int _launch_server(void)
+static int _launch_server(int only_detect_tizen_device)
 {
     pid_t   pid;
 
@@ -81,7 +81,11 @@ static int _launch_server(void)
             // before fork exec, be session leader.
             setsid();
 
-            execl(path, "sdb", "fork-server", "server", NULL);
+            if(only_detect_tizen_device)
+                execl(path, "sdb", "fork-server", "server", "--only-detect-tizen", NULL);
+            else
+                execl(path, "sdb", "fork-server", "server", NULL);
+
             LOG_ERROR("failed to execute process: %s\n", strerror(errno));
             _exit(-1);
         }
index 99d862bc361b53c27d2c668a04b79b2f7686861d..988685b16d41b8b28ef6389d6029968b9ad28ce1 100755 (executable)
@@ -114,7 +114,7 @@ int getBaseErrno(DWORD dwLastErrorCode)
 /*
  * from: http://msdn.microsoft.com/en-us/library/windows/desktop/ms682499(v=vs.85).aspx
  */
-static int _launch_server(void) {
+static int _launch_server(int only_detect_tizen_device) {
     HANDLE g_hChildStd_OUT_Rd = NULL;
     HANDLE g_hChildStd_OUT_Wr = NULL;
     SECURITY_ATTRIBUTES saAttr;
@@ -142,7 +142,11 @@ static int _launch_server(void) {
         STARTUPINFO siStartInfo;
         BOOL bSuccess = FALSE;
         char module_path[MAX_PATH];
-        TCHAR szCmdline[] = TEXT("sdb fork-server server");
+        TCHAR* szCmdline;
+        if(only_detect_tizen_device)
+            szCmdline = TEXT("sdb fork-server server --only-detect-tizen");
+        else
+            szCmdline = TEXT("sdb fork-server server");
 
         // Set up members of the PROCESS_INFORMATION structure.
         ZeroMemory(&piProcInfo, sizeof(PROCESS_INFORMATION));