add appinfo initialization
authorYoung Ik Cho <youngik.cho@samsung.com>
Wed, 7 Aug 2013 08:30:48 +0000 (17:30 +0900)
committerYoung Ik Cho <youngik.cho@samsung.com>
Wed, 7 Aug 2013 08:30:48 +0000 (17:30 +0900)
Change-Id: I13fedd4117473422f89b8b5e5f1c9e8d5cc7bfdc
Signed-off-by: Young Ik Cho <youngik.cho@samsung.com>
CMakeLists.txt
osp-service-app-loader/CMakeLists.txt
osp-service-app-loader/serviceapp_loader.c
osp-system-service-loader/CMakeLists.txt
osp-system-service-loader/systemservice_loader.c
osp-ui-app-loader/CMakeLists.txt
osp-ui-app-loader/uiapp_loader.c
packaging/osp-loader.spec

index f87f11c..92fa1d5 100644 (file)
@@ -1,18 +1,19 @@
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 
 SET(CMAKE_EXECUTABLE_SUFFIX "")
-SET(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/output")
 
 INCLUDE(FindPkgConfig)
 pkg_check_modules(pkgs REQUIRED
        dlog
-       aul
+       appinfo
 )
 
 FOREACH(flag ${pkgs_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
 ENDFOREACH(flag)
 
+SET(EXTRA_C_FLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
+
 ADD_SUBDIRECTORY(osp-ui-app-loader)
 ADD_SUBDIRECTORY(osp-service-app-loader)
 ADD_SUBDIRECTORY(osp-system-service-loader)
index e03c3b5..7618615 100644 (file)
@@ -7,8 +7,6 @@ SET (${this_target}_SOURCE_FILES
 ADD_EXECUTABLE (${this_target} ${${this_target}_SOURCE_FILES})
 
 SET(CMAKE_C_FLAGS "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS} -fPIE")
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
-SET(CMAKE_CXX_FLAGS "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS} -fPIE")
 
 TARGET_LINK_LIBRARIES(${this_target} "-Wl,--no-undefined -Wl,--as-needed -pie")
 TARGET_LINK_LIBRARIES(${this_target} "-ldl")
index 0982441..182f5ba 100644 (file)
 #include <fcntl.h>
 #include <linux/capability.h>
 
-#include <aul.h>
 #include <dlog.h>
+#include <appinfo.h>
 
 #undef LOG_TAG
 #define LOG_TAG "LOADER"
 
-#define MAX_APPID 20
+#define MAX_PACKAGEID 10
 #define MAX_APP_EXECUTABLE_NAME 230
-
-#define MIN(a,b)  ((a) < (b) ? (a) : (b))
+#define MAX_APPID (MAX_PACKAGEID + MAX_APP_EXECUTABLE_NAME + 1)
 
 
+#if 0
 static void
 print_args(int argc, char* argv[])
 {
@@ -52,9 +52,10 @@ print_args(int argc, char* argv[])
                LOGI("%dth arg : [%s]", i, p);
        }
 }
+#endif
 
 static void
-adjust_privilege()
+adjust_privilege(const char* appid)
 {
        void* handle = dlopen("libprivilege-control.so.0", RTLD_LAZY | RTLD_LOCAL);
        if (!handle)
@@ -78,17 +79,7 @@ adjust_privilege()
                return;
        }
 
-       char pkgname[255] = {0, };
-       int ret = aul_app_get_appid_bypid(getpid(), pkgname, 255);
-       if (ret != AUL_R_OK)
-       {
-               fprintf(stderr, "Cannot acquire app from pid with 0x%x.\n", ret);
-
-               dlclose(handle);
-               return;
-       }
-
-       ret = (*ppriv_func)(pkgname);
+       int ret = (*ppriv_func)(appid);
        if (ret < 0)
        {
                fprintf(stderr, "set_privilege() returned %d\n", ret);
@@ -224,23 +215,27 @@ main(int argc, char* argv[])
 {
        void* real_handle = NULL;
        char* errormsg = 0;
-       char appid[MAX_APPID];
+       char packageid[MAX_PACKAGEID];
        char executable_name[MAX_APP_EXECUTABLE_NAME];
+       char appid[MAX_APPID];
 
        void (*pAppInfoInit)(const char*, const char*, int, char* [], int) = NULL;
        int (*pRealMain)(int, char* []) = NULL;
 
-       memset(appid, 0, sizeof(appid));
+       memset(packageid, 0, sizeof(packageid));
        memset(executable_name, 0, sizeof(executable_name));
+       memset(appid, 0, sizeof(appid));
 
-       LOGI("Initializing.");
-       LOGI("argc %d, argv 0x%x.", argc, argv);
-       print_args(argc, argv);
+       LOGI("Initializing : argc %d, argv 0x%x.", argc, argv);
+       //print_args(argc, argv);
 
-       // convert package path to appId
-       get_packageid_executable_name_from_path(argv[0], appid, executable_name);
-       LOGI("Osp appId %s.", appid);
+       // convert package path to package name
+       get_packageid_executable_name_from_path(argv[0], packageid, executable_name);
+       snprintf(appid, MAX_APPID, "%s.%s", packageid, executable_name);
 
+#ifdef _SECURE_LOG
+       LOGI("app is %s", appid);
+#endif
 
        if (getuid() == 0)
        {
@@ -248,12 +243,16 @@ main(int argc, char* argv[])
                osp_do_pre_exe(argv[0]);
 
                // adjust privilege
-               adjust_privilege();
+               adjust_privilege(appid);
        }
 
 
        adjust_capability();
 
+       // initialize appid
+       appinfo_init(appid, 0);
+       appinfo_set_argv(argc, argv);
+
        // actual loading
        char buffer[1024];
 
@@ -287,7 +286,7 @@ main(int argc, char* argv[])
        }
 
        // actual initialization
-       (*pAppInfoInit)(appid, executable_name, argc, argv, -1);
+       (*pAppInfoInit)(packageid, executable_name, argc, argv, -1);
        (*pRealMain)(argc, argv);
 
        LOGI("Osp application terminates.");
index f6d3499..54d4744 100644 (file)
@@ -7,8 +7,6 @@ SET (${this_target}_SOURCE_FILES
 ADD_EXECUTABLE (${this_target} ${${this_target}_SOURCE_FILES})
 
 SET(CMAKE_C_FLAGS "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS} -fPIE")
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
-SET(CMAKE_CXX_FLAGS "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS} -fPIE")
 
 TARGET_LINK_LIBRARIES(${this_target} "-Wl,--no-undefined -Wl,--as-needed -pie")
 TARGET_LINK_LIBRARIES(${this_target} "-ldl")
index a64099e..7efd568 100644 (file)
 #include <limits.h>
 #include <fcntl.h>
 
-#include <aul.h>
 #include <dlog.h>
+#include <appinfo.h>
 
 #undef LOG_TAG
 #define LOG_TAG "LOADER"
 
-#define MAX_APPID 20
+#define MAX_PACKAGEID 10
 #define MAX_APP_EXECUTABLE_NAME 230
-
-#define MIN(a,b)  ((a) < (b) ? (a) : (b))
+#define MAX_APPID (MAX_PACKAGEID + MAX_APP_EXECUTABLE_NAME + 1)
 
 
+#if 0
 static void
 print_args(int argc, char* argv[])
 {
@@ -50,6 +50,7 @@ print_args(int argc, char* argv[])
                LOGI("%dth arg : [%s]", i, p);
        }
 }
+#endif
 
 static int
 osp_do_pre_exe(const char* bin_path)
@@ -135,23 +136,27 @@ main(int argc, char* argv[])
 {
        void* real_handle = NULL;
        char* errormsg = 0;
-       char appid[MAX_APPID];
+       char packageid[MAX_PACKAGEID];
        char executable_name[MAX_APP_EXECUTABLE_NAME];
+       char appid[MAX_APPID];
 
        void (*pAppInfoInit)(const char*, const char*, int, char* [], int) = NULL;
        int (*pRealMain)(int, char* []) = NULL;
 
-       memset(appid, 0, sizeof(appid));
+       memset(packageid, 0, sizeof(packageid));
        memset(executable_name, 0, sizeof(executable_name));
+       memset(appid, 0, sizeof(appid));
 
-       LOGI("Initializing.");
-       LOGI("argc %d, argv 0x%x.", argc, argv);
-       print_args(argc, argv);
+       LOGI("Initializing : argc %d, argv 0x%x.", argc, argv);
+       //print_args(argc, argv);
 
-       // convert package path to appId
-       get_packageid_executable_name_from_path(argv[0], appid, executable_name);
-       LOGI("Osp appId %s.", appid);
+       // convert package path to packageId
+       get_packageid_executable_name_from_path(argv[0], packageid, executable_name);
+       snprintf(appid, MAX_APPID, "%s.%s", packageid, executable_name);
 
+#ifdef _SECURE_LOG
+       LOGI("app is %s", appid);
+#endif
 
        if (getuid() == 0)
        {
@@ -162,6 +167,10 @@ main(int argc, char* argv[])
        }
 
 
+       // initialize appid
+       appinfo_init(appid, 0);
+       appinfo_set_argv(argc, argv);
+
        // actual loading
        char buffer[1024];
 
@@ -195,7 +204,7 @@ main(int argc, char* argv[])
        }
 
        // actual initialization
-       (*pAppInfoInit)(appid, executable_name, argc, argv, -1);
+       (*pAppInfoInit)(packageid, executable_name, argc, argv, -1);
        (*pRealMain)(argc, argv);
 
        LOGI("Osp application terminates.");
index 11d492d..c111f52 100644 (file)
@@ -7,8 +7,6 @@ SET (${this_target}_SOURCE_FILES
 ADD_EXECUTABLE (${this_target} ${${this_target}_SOURCE_FILES})
 
 SET(CMAKE_C_FLAGS "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS} -fPIE")
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
-SET(CMAKE_CXX_FLAGS "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS} -fPIE")
 
 TARGET_LINK_LIBRARIES(${this_target} "-Wl,--no-undefined -Wl,--as-needed -pie")
 TARGET_LINK_LIBRARIES(${this_target} "-ldl")
index 5111992..f3feca4 100644 (file)
 #include <fcntl.h>
 #include <linux/capability.h>
 
-#include <aul.h>
 #include <dlog.h>
+#include <appinfo.h>
 
 #undef LOG_TAG
 #define LOG_TAG "LOADER"
 
-#define MAX_APPID 20
+#define MAX_PACKAGEID 10
 #define MAX_APP_EXECUTABLE_NAME 230
-#define MAX_PACKAGE_NAME 100
-
-#define MIN(a,b)  ((a) < (b) ? (a) : (b))
+#define MAX_APPID (MAX_PACKAGEID + MAX_APP_EXECUTABLE_NAME + 1)
 
 
 static const char APPFW_SONAME[] = "libosp-appfw.so.1";
 
-#if 0
-#define SPLASH_WINDOW_PACKAGE_NAME "com.samsung.splash"
-
-static void
-request_splashwindow(char* package_name)
-{
-       service_h service;
-
-       service_create(&service);
-       service_set_package(service, SPLASH_WINDOW_PACKAGE_NAME);
-       service_add_extra_data(service, "package_name", package_name);
-       service_send_launch_request(service, NULL, NULL);
-}
-#endif
-
 
+#if 0
 static void
 print_args(int argc, char* argv[])
 {
@@ -71,9 +55,10 @@ print_args(int argc, char* argv[])
                LOGD("%dth arg : [%s]", i, p);
        }
 }
+#endif
 
 static void
-adjust_privilege(const char* const pkgname)
+adjust_privilege(const char* appid)
 {
        void* handle = dlopen("libprivilege-control.so.0", RTLD_LAZY | RTLD_LOCAL);
        if (!handle)
@@ -97,7 +82,7 @@ adjust_privilege(const char* const pkgname)
                return;
        }
 
-       int ret = (*ppriv_func)(pkgname);
+       int ret = (*ppriv_func)(appid);
        if (ret < 0)
        {
                fprintf(stderr, "set_privilege() returned %d\n", ret);
@@ -234,22 +219,27 @@ main(int argc, char* argv[])
 {
        void* handle = NULL;
        char* errormsg = 0;
-       char packageid[MAX_APPID];
+       char packageid[MAX_PACKAGEID];
        char executable_name[MAX_APP_EXECUTABLE_NAME];
-       char package_name[MAX_PACKAGE_NAME];
+       char appid[MAX_APPID];
 
        void (*pAppInfoInit)(const char*, const char*, int, char* [], int) = NULL;
        int (*pRealMain)(int, char* []) = NULL;
 
        memset(packageid, 0, sizeof(packageid));
        memset(executable_name, 0, sizeof(executable_name));
-       memset(package_name, 0, sizeof(package_name));
+       memset(appid, 0, sizeof(appid));
 
        LOGI("Initializeing : argc %d, argv 0x%x.", argc, argv);
        //print_args(argc, argv);
 
        // convert package path to package name
        get_packageid_executable_name_from_path(argv[0], packageid, executable_name);
+       snprintf(appid, MAX_APPID, "%s.%s", packageid, executable_name);
+
+#ifdef _SECURE_LOG
+       LOGI("app is %s", appid);
+#endif
 
        if (getuid() == 0)
        {
@@ -257,12 +247,16 @@ main(int argc, char* argv[])
                osp_do_pre_exe(argv[0]);
 
                // adjust privilege
-               adjust_privilege(packageid);
+               adjust_privilege(appid);
        }
 
 
        adjust_capability();
 
+       // initialize appid
+       appinfo_init(appid, 0);
+       appinfo_set_argv(argc, argv);
+
        // actual loading
        char buffer[1024];
 
index f3b2cb0..20f2625 100755 (executable)
@@ -1,13 +1,13 @@
 Name:          osp-loader
 Summary:       osp application loader
-Version:       1.2.2.0
-Release:       2
+Version:       1.2.2.1
+Release:       1
 Group:         TO_BE/FILLED_IN
 License:       Apache-2.0
 Source0:       %{name}-%{version}.tar.gz
 BuildRequires: cmake
-BuildRequires: pkgconfig(aul)
 BuildRequires: pkgconfig(dlog)
+BuildRequires: pkgconfig(appinfo)
 Requires:      libprivilege-control
 
 # runtime requires