Pass it's own uid when calling not 'usr' prefixed api
[platform/core/appfw/pkgmgr-info.git] / parser / pkgmgr_parser_db.c
index 91142ae..2b36c38 100644 (file)
@@ -172,6 +172,7 @@ sqlite3 *pkgmgr_cert_db;
                                                "app_root_path text, " \
                                                "app_api_version text, " \
                                                "app_effective_appid text, " \
+                                               "app_splash_screen_display text DEFAULT 'true', " \
                                                "FOREIGN KEY(package) " \
                                                "REFERENCES package_info(package) " \
                                                "ON DELETE CASCADE)"
@@ -365,6 +366,17 @@ static int __guestmode_visibility_cb(void *data, int ncols, char **coltxt, char
 static int __pkgmgr_parser_create_db(sqlite3 **db_handle, const char *db_path);
 static int __parserdb_change_perm(const char *db_file, uid_t uid);
 
+#define REGULAR_USER 5000
+static inline uid_t _getuid(void)
+{
+       uid_t uid = getuid();
+
+       if (uid < REGULAR_USER)
+               return tzplatform_getuid(TZ_SYS_GLOBALAPP_USER);
+       else
+               return uid;
+}
+
 static int __delete_subpkg_list_cb(void *data, int ncols, char **coltxt, char **colname)
 {
        if (coltxt[0])
@@ -1206,7 +1218,7 @@ static int __insert_application_info(manifest_x *mfx)
                        "app_preload, app_submode, app_submode_mainid, app_installed_storage, app_process_pool, " \
                        "app_launch_mode, app_ui_gadget, app_support_disable, component_type, package, " \
                        "app_tep_name, app_background_category, app_package_type, app_root_path, app_api_version, " \
-                       "app_effective_appid) " \
+                       "app_effective_appid, app_splash_screen_display) " \
                        "values(" \
                        "'%s', '%s', '%s', '%s', '%s', " \
                        "'%s', '%s', '%s', '%s', '%s', " \
@@ -1215,7 +1227,7 @@ static int __insert_application_info(manifest_x *mfx)
                        "'%s', '%s', '%s', '%s', '%s', " \
                        "'%s', '%s', '%s', '%s', '%s', " \
                        "'%s', '%d', '%s', '%s', '%s', " \
-                       "'%s')", \
+                       "'%s', '%s')", \
                        app->appid, app->component_type, app->exec, app->nodisplay, app->type,
                        app->onboot, app->multiple, app->autorestart, app->taskmanage, app->enabled,
                        app->hwacceleration, app->screenreader, app->mainapp, __get_str(app->recentimage), app->launchcondition,
@@ -1224,7 +1236,7 @@ static int __insert_application_info(manifest_x *mfx)
                        mfx->preload, app->submode, __get_str(app->submode_mainid), mfx->installed_storage, app->process_pool,
                        app->launch_mode, app->ui_gadget, mfx->support_disable, app->component_type, mfx->package,
                        __get_str(mfx->tep_name), background_value, type, mfx->root_path, __get_str(mfx->api_version),
-                       __get_str(effective_appid));
+                       __get_str(effective_appid), app->splash_screen_display);
 
                ret = __exec_query(query);
                if (ret == -1) {
@@ -2380,7 +2392,7 @@ API int pkgmgr_parser_initialize_db(uid_t uid)
 static int __parserdb_change_perm(const char *db_file, uid_t uid)
 {
        char buf[BUFSIZE];
-       char pwuid_buf[1024] = {0, };
+       char pwuid_buf[1024];
        char journal_file[BUFSIZE];
        char *files[3];
        int ret, i;
@@ -2398,7 +2410,7 @@ static int __parserdb_change_perm(const char *db_file, uid_t uid)
        snprintf(journal_file, sizeof(journal_file), "%s%s", db_file, "-journal");
        if (uid == OWNER_ROOT)
                uid = GLOBAL_USER;
-       ret = getpwuid_r(uid, &userinfo, &pwuid_buf, sizeof(pwuid_buf), &result);
+       ret = getpwuid_r(uid, &userinfo, pwuid_buf, sizeof(pwuid_buf), &result);
        if (ret != 0 || result == NULL) {
                _LOGE("FAIL: user %d doesn't exist", uid);
                return -1;
@@ -2578,7 +2590,7 @@ err:
 
 API int pkgmgr_parser_update_tep_info_in_db(const char *pkgid, const char *tep_path)
 {
-       return pkgmgr_parser_update_tep_info_in_usr_db(pkgid, tep_path, GLOBAL_USER);
+       return pkgmgr_parser_update_tep_info_in_usr_db(pkgid, tep_path, _getuid());
 }
 
 API int pkgmgr_parser_update_tep_info_in_usr_db(const char *pkgid, const char *tep_path, uid_t uid)
@@ -2710,7 +2722,7 @@ err:
 
 API int pkgmgr_parser_update_manifest_info_in_db(manifest_x *mfx)
 {
-       return pkgmgr_parser_update_manifest_info_in_usr_db(mfx, GLOBAL_USER);
+       return pkgmgr_parser_update_manifest_info_in_usr_db(mfx, _getuid());
 }
 
 API int pkgmgr_parser_delete_manifest_info_from_usr_db(manifest_x *mfx, uid_t uid)
@@ -2755,7 +2767,7 @@ err:
 
 API int pkgmgr_parser_delete_manifest_info_from_db(manifest_x *mfx)
 {
-       return pkgmgr_parser_delete_manifest_info_from_usr_db(mfx, GLOBAL_USER);
+       return pkgmgr_parser_delete_manifest_info_from_usr_db(mfx, _getuid());
 }
 
 API int pkgmgr_parser_update_preload_info_in_db()
@@ -2874,7 +2886,7 @@ err:
 
 API int pkgmgr_parser_update_app_disable_info_in_db(const char *appid, int is_disable)
 {
-       return pkgmgr_parser_update_app_disable_info_in_usr_db(appid, GLOBAL_USER, is_disable);
+       return pkgmgr_parser_update_app_disable_info_in_usr_db(appid, _getuid(), is_disable);
 }
 
 API int pkgmgr_parser_update_app_disable_info_in_usr_db(const char *appid, uid_t uid, int is_disable)