include(FindPkgConfig)
# Get capi-system-info
-pkg_check_modules(CAPI_SYSTEM_INFO REQUIRED capi-system-info)
+pkg_check_modules(CAPI_SYSTEM_INFO REQUIRED capi-system-info libtzplatform-config)
include_directories(${CAPI_SYSTEM_INFO_INCLUDE_DIRS})
# Get pthreads
BuildRequires: capi-system-info-devel >= 0.2.0
BuildRequires: cmake >= 2.8.3
+BuildRequires: pkgconfig(libtzplatform-config)
Requires: dbus
-
+Requires: debug-launchpad
+Requires(post): /usr/bin/debug_launchpad_preloading_preinitializing_daemon
%description
Description: SDB daemon.
%defattr(-,root,root,-)
%{_prefix}/sbin/sdbd
%{_prefix}/sbin/sdk_launch
-%{_sysconfdir}/init.d/sdbd
+%attr(0755, root, root) %{_sysconfdir}/init.d/sdbd
%{_libdir}/systemd/system/sdbd.service
%if 0%{?simulator}
%{_libdir}/systemd/system/emulator.target.wants/sdbd.service
# Kangho Kim <kh5325.kim@samsung.com>, Yoonki Park <yoonki.park@samsung.com>
#
# Description: front hand of app launcher
+source /etc/tizen-platform.conf
-APP_PATH_PREFIX=/opt/apps
-SDK_TOOLS_PATH=/home/developer/sdk_tools
+APP_PATH_PREFIX=${TZ_SYS_RW_APP}
+SDK_TOOLS_PATH=${TZ_SDK_TOOLS}
print_usage()
{
if [ "" != "$attach_id" ]
#debug attach
then
- cmd="$COV_TEST_PREFIX /home/developer/sdk_tools/gdbserver/gdbserver :$port --attach $attach_id"
+ cmd="$COV_TEST_PREFIX ${TZ_SDK_TOOLS}/gdbserver/gdbserver :$port --attach $attach_id"
#debug
else
if [ "" != "$result_mode" ]
result_mode="DEBUG"
fi
cmd="/usr/bin/launch_app $pkgid.$exe __AUL_SDK__ $result_mode __DLP_DEBUG_ARG__ :$port $launch_app_mode"
-# cmd="$COV_TEST_PREFIX /home/developer/sdk_tools/gdbserver/gdbserver :$port /opt/apps/$pkgid/bin/$exe"
+# cmd="$COV_TEST_PREFIX ${TZ_SDK_TOOLS}/gdbserver/gdbserver :$port ${TZ_SYS_RW_APP}/$pkgid/bin/$exe"
fi
else
if [ "$mode" = "run" ]
#include "sdb.h"
#include "sdb_client.h"
#include "file_sync_service.h"
+#include <tzplatform_config.h>
static int do_cmd(transport_type ttype, char* serial, char *cmd, ...);
int install_app_sdb(const char *srcpath) {
D("Install start\n");
- const char * APP_DEST = "/opt/apps/PKGS/%s";
+ const char * APP_DEST = tzplatform_mkpath(TZ_SYS_RW_APP,"PKGS/%s");
const char* filename = sdb_dirstop(srcpath);
char destination[PATH_MAX];
#include <sys/select.h>
#include "sysdeps.h"
#include "smack.h"
+#include <tzplatform_config.h>
#define TRACE_TAG TRACE_SYNC
#include "sdb.h"
#define SYNC_TIMEOUT 15
+#define APP_INSTALL_PATH_PREFIX1 tzplatform_getenv(TZ_SYS_RW_APP)
+#define APP_INSTALL_PATH_PREFIX2 tzplatform_getenv(TZ_USER_APP)
+
struct sync_permit_rule
{
const char *name;
*/
#define DIR_PERMISSION 0777
+void init_sdk_sync_permit_rule_regx(void)
+{
+ asprintf(&sdk_sync_permit_rule[0].regx, "^((/tmp)|(%s)|(%s))/[a-zA-Z0-9]{10}/data/[a-zA-Z0-9_\\-]{1,50}\\.xml$", APP_INSTALL_PATH_PREFIX1, APP_INSTALL_PATH_PREFIX2);
+ asprintf(&sdk_sync_permit_rule[1].regx, "^((/tmp)|(%s)|(%s))/[a-zA-Z0-9]{10}/data/+(.)*\\.gcda$", APP_INSTALL_PATH_PREFIX1, APP_INSTALL_PATH_PREFIX2);
+ asprintf(&sdk_sync_permit_rule[2].regx, "da", "^(/tmp/da/)*+[a-zA-Z0-9_\\-\\.]{1,50}\\.png$");
+
+}
static void set_syncfile_smack_label(char *src) {
char *label_transmuted = NULL;
char buf[PATH_MAX];
int i=0;
+ init_sdk_sync_permit_rule_regx();
for (i=0; sdk_sync_permit_rule[i].regx != NULL; i++) {
ret = regcomp(®ex, sdk_sync_permit_rule[i].regx, REG_EXTENDED);
if(ret){
}
}
regfree(®ex);
+ for (i = 0; i <= 3; i++){
+ free(sdk_sync_permit_rule[i].regx);
+ }
return 0;
}
} status;
} syncmsg;
-
+void init_sdk_sync_permit_rule_regx(void);
void file_sync_service(int fd, void *cookie);
void file_sync_subproc(int fd, void *cookie);
int do_sync_ls(const char *path);
#include <signal.h>
#include <grp.h>
#include <netdb.h>
-
+#include <tzplatform_config.h>
#include "sysdeps.h"
#include "sdb.h"
#endif
int HOST = 0;
-
+#define HOME_DEV_PATH tzplatform_getenv(TZ_SDK_HOME)
+#define DEV_NAME tzplatform_getenv(TZ_SDK_USER_NAME)
#if !SDB_HOST
SdbdCommandlineArgs sdbd_commandline_args;
#endif
return -1;
}
- if (chdir("/home/developer") < 0) {
- D("sdbd: unable to change working directory to /home/developer\n");
+ if (chdir(HOME_DEV_PATH) < 0) {
+ D("sdbd: unable to change working directory to %s\n", HOME_DEV_PATH);
} else {
if (chdir("/") < 0) {
D("sdbd: unable to change working directory to /\n");
}
}
// TODO: use pam later
- putenv("HOME=/home/developer");
+ char * env = "HOME=";
+ strcat(env, HOME_DEV_PATH);
+ putenv(env);
return 1;
}
-#define ONDEMAND_ROOT_PATH "/home/developer"
+#define ONDEMAND_ROOT_PATH tzplatform_getenv(TZ_SDK_HOME)
static void execute_required_process() {
}
if (st.st_uid != SID_DEVELOPER || st.st_gid != SID_DEVELOPER) {
char cmd[128];
- snprintf(cmd, sizeof(cmd), "chown developer:developer %s -R", ONDEMAND_ROOT_PATH);
+ snprintf(cmd, sizeof(cmd), "chown %s:%s %s -R", DEV_NAME, DEV_NAME, ONDEMAND_ROOT_PATH);
if (system(cmd) < 0) {
D("failed to change ownership to developer to %s\n", ONDEMAND_ROOT_PATH);
}
#if !SDB_HOST
#include "commandline_sdbd.h"
#endif
+#include <tzplatform_config.h>
#define MAX_PAYLOAD 4096
#define SID_ROOT 0 /* traditional unix root user */
#define SID_TTY 5 /* group for /dev/ptmx */
-#define SID_APP 5000 /* application */
-#define SID_DEVELOPER 5100 /* developer with SDK */
+#define SID_APP tzplatform_getuid(TZ_USER_NAME) /* application */
+#define SID_DEVELOPER tzplatform_getuid(TZ_SDK_USER_NAME) /* developer with SDK */
#define SID_APP_LOGGING 6509
#define SID_SYS_LOGGING 6527
#define SID_INPUT 1004
/* end */ {NULL, NULL, 0}
};
+void init_sdk_arg_permit_rule_pattern(void)
+{
+ asprintf(&sdk_arg_permit_rule[0].pattern, "^GCOV_PREFIX=((%s)|(%s))/[a-zA-Z0-9]{10}/data$", APP_INSTALL_PATH_PREFIX1, APP_INSTALL_PATH_PREFIX2);
+ asprintf(&sdk_arg_permit_rule[1].pattern, "GCOV_PREFIX_STRIP=0");
+ asprintf(&sdk_arg_permit_rule[2].pattern, "LD_LIBRARY_PATH=%s/gtest/usr/lib:$LD_LIBRARY_PATH", DEV_INSTALL_PATH_PREFIX, APP_INSTALL_PATH_PREFIX2);
+ asprintf(&sdk_arg_permit_rule[3].pattern, "TIZEN_LAUNCH_MODE=debug");
+ asprintf(&sdk_arg_permit_rule[4].pattern, "LD_PRELOAD=/usr/lib/da_probe_osp.so", DEV_INSTALL_PATH_PREFIX, APP_INSTALL_PATH_PREFIX2);
+ asprintf(&sdk_arg_permit_rule[5].pattern, "^\\-\\-gtest_output=xml:((%s)|(%s))/[a-zA-Z0-9]{10}/data/[a-zA-Z0-9_\\-]{1,30}\\.xml$", APP_INSTALL_PATH_PREFIX1, APP_INSTALL_PATH_PREFIX2);
+}
+
+
int verify_commands(const char *arg1) {
if (arg1 != NULL) {
if (verify_root_commands(arg1)) {
int env_verify(const char* arg) {
int i;
+ init_sdk_arg_permit_rule_pattern();
for (i=0; sdk_arg_permit_rule[i].name != NULL; i++) {
if (sdk_arg_permit_rule[i].expression == 0) {
if (!strcmp(sdk_arg_permit_rule[i].pattern, arg)) {
}
}
D("failed to set %s\n", arg);
+ for (i = 0; i <= 6; i++){
+ free(sdk_arg_permit_rule[i].pattern);
+ }
return 0;
}
#ifdef __cplusplus
extern "C" {
#endif
+#include <tzplatform_config.h>
struct sudo_command
{
};
#define SDK_LAUNCH_PATH "/usr/sbin/sdk_launch"
-#define APP_INSTALL_PATH_PREFIX1 "/opt/apps"
-#define APP_INSTALL_PATH_PREFIX2 "/opt/usr/apps"
-#define GDBSERVER_PATH "/home/developer/sdk_tools/gdbserver/gdbserver"
-#define GDBSERVER_PLATFORM_PATH "/home/developer/sdk_tools/gdbserver-platform/gdbserver"
+#define APP_INSTALL_PATH_PREFIX1 tzplatform_getenv(TZ_SYS_RW_APP)
+#define APP_INSTALL_PATH_PREFIX2 tzplatform_getenv(TZ_USER_APP)
+#define DEV_INSTALL_PATH_PREFIX tzplatform_getenv(TZ_SDK_TOOLS)
+#define GDBSERVER_PATH tzplatform_mkpath(TZ_SDK_TOOLS,"gdbserver/gdbserver")
+#define GDBSERVER_PLATFORM_PATH tzplatform_mkpath(TZ_SDK_TOOLS,"gdbserver-platform/gdbserver")
#define SMACK_LEBEL_SUBJECT_PATH "/proc/self/attr/current"
#define SMACK_SYNC_FILE_LABEL "*"
#define APP_GROUPS_MAX 100
#define SDBD_LABEL_NAME "sdbd"
#define SDK_HOME_LABEL_NAME "sdbd::home"
+void init_sdk_arg_permit_rule_pattern(void);
int verify_commands(const char *arg1);
int verify_root_commands(const char *arg1);
int verify_app_path(const char* path);
#include "strutils.h"
#include <system_info.h>
-
+#include <tzplatform_config.h>
typedef struct stinfo stinfo;
struct stinfo {
#if !SDB_HOST
#define EVENT_SIZE ( sizeof (struct inotify_event) )
#define BUF_LEN ( 1024 * ( EVENT_SIZE + 16 ) )
-#define CS_PATH "/opt/usr/share/crash/report"
+#define CS_PATH tzplatform_mkpath(TZ_USER_SHARE,"crash/report")
void inoti_service(int fd, void *arg)
{