prelaunch callback is called to before being called security_manager_prepare_app()
Change-Id: Ib658ed698966dd4a7cd063bf3316e6f37dacca18
Signed-off-by: Changgyu Choi <changyu.choi@samsung.com>
AppDefinedLoader(int argc, char** argv) : argc_(argc), argv_(argv) {
lifecycle_cb_ = std::make_shared<loader_lifecycle_callback_s>();
lifecycle_cb_->create = OnCreate;
AppDefinedLoader(int argc, char** argv) : argc_(argc), argv_(argv) {
lifecycle_cb_ = std::make_shared<loader_lifecycle_callback_s>();
lifecycle_cb_->create = OnCreate;
+ lifecycle_cb_->prelaunch = nullptr;
lifecycle_cb_->launch = OnLaunch;
lifecycle_cb_->terminate = OnTerminate;
lifecycle_cb_->launch = OnLaunch;
lifecycle_cb_->terminate = OnTerminate;
#endif
typedef void (*loader_create_cb)(bundle *extra, int type, void *user_data);
#endif
typedef void (*loader_create_cb)(bundle *extra, int type, void *user_data);
+typedef int (*loader_prelaunch_cb)(int argc, char **argv, const char *app_path,
+ const char *appid, const char *pkgid, const char *pkg_type,
+ void *user_data);
typedef int (*loader_launch_cb)(int argc, char **argv, const char *app_path,
const char *appid, const char *pkgid, const char *pkg_type,
void *user_data);
typedef int (*loader_launch_cb)(int argc, char **argv, const char *app_path,
const char *appid, const char *pkgid, const char *pkg_type,
void *user_data);
typedef struct {
loader_create_cb create;
typedef struct {
loader_create_cb create;
+ loader_prelaunch_cb prelaunch;
loader_launch_cb launch;
loader_terminate_cb terminate;
} loader_lifecycle_callback_s;
loader_launch_cb launch;
loader_terminate_cb terminate;
} loader_lifecycle_callback_s;
tmp_argv = _create_argc_argv(kb, &tmp_argc);
tmp_argv = _create_argc_argv(kb, &tmp_argc);
+ if (__loader_callbacks->prelaunch) {
+ ret = __loader_callbacks->prelaunch(tmp_argc, tmp_argv,
+ app_path, menu_info->appid, menu_info->pkgid,
+ menu_info->pkg_type, __loader_user_data);
+
+ if (ret < 0) {
+ _E("prelaunch callback fail (%d)", ret);
+ exit(-1);
+ }
+ }
+
__default_launch_cb(kb, menu_info->appid, app_path,
menu_info->root_path, menu_info->pkgid,
menu_info->pkg_type, type, menu_info->global);
__default_launch_cb(kb, menu_info->appid, app_path,
menu_info->root_path, menu_info->pkgid,
menu_info->pkg_type, type, menu_info->global);