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)
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")
#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[])
{
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)
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);
{
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)
{
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];
}
// actual initialization
- (*pAppInfoInit)(appid, executable_name, argc, argv, -1);
+ (*pAppInfoInit)(packageid, executable_name, argc, argv, -1);
(*pRealMain)(argc, argv);
LOGI("Osp application terminates.");
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")
#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[])
{
LOGI("%dth arg : [%s]", i, p);
}
}
+#endif
static int
osp_do_pre_exe(const char* bin_path)
{
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)
{
}
+ // initialize appid
+ appinfo_init(appid, 0);
+ appinfo_set_argv(argc, argv);
+
// actual loading
char buffer[1024];
}
// actual initialization
- (*pAppInfoInit)(appid, executable_name, argc, argv, -1);
+ (*pAppInfoInit)(packageid, executable_name, argc, argv, -1);
(*pRealMain)(argc, argv);
LOGI("Osp application terminates.");
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")
#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[])
{
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)
return;
}
- int ret = (*ppriv_func)(pkgname);
+ int ret = (*ppriv_func)(appid);
if (ret < 0)
{
fprintf(stderr, "set_privilege() returned %d\n", ret);
{
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)
{
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];
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