#include "pkgmgrinfo_debug.h"
#include "pkgmgrinfo_private.h"
#include "pkgmgr_parser.h"
-#include "pkgmgr_parser_internal.h"
#define QUERY_CREATE_TABLE_PACKAGE_CERT_INDEX_INFO \
"CREATE TABLE IF NOT EXISTS package_cert_index_info( " \
if (readonly)
path = tzplatform_mkpath(TZ_SYS_RO_ICONS, "/");
- else
- path = tzplatform_mkpath(TZ_SYS_RW_ICONS, "/");
/* just allow certain users to create the icon directory if needed. */
- if (uid_caller == ROOT_UID || uid_caller == uid)
+ if (path && (uid_caller == ROOT_UID ||
+ uid_caller == APPFW_UID || uid_caller == uid))
_mkdir_for_user(path, uid, gid);
return path;
tzplatform_reset_user();
}
- // just allow certain users to create the dbspace directory if needed.
- if (uid_caller == ROOT_UID || uid_caller == uid)
+ /* just allow certain users to create the dbspace directory if needed. */
+ if (uid_caller == ROOT_UID || uid_caller == APPFW_UID || uid_caller == uid)
_mkdir_for_user(db_path, uid, gid);
free(db_path);
tzplatform_reset_user();
}
- // just allow certain users to create the dbspace directory if needed.
- if (uid_caller == ROOT_UID || uid_caller == uid)
+ /* just allow certain users to create the dbspace directory if needed. */
+ if (uid_caller == ROOT_UID || uid_caller == APPFW_UID || uid_caller == uid)
_mkdir_for_user(db_path, uid, gid);
free(db_path);
}
/* just allow certain users to create the icon directory if needed. */
- if (uid_caller == ROOT_UID || uid_caller == uid)
+ if (uid_caller == ROOT_UID || uid_caller == APPFW_UID || uid_caller == uid)
_mkdir_for_user(path, uid, gid);
return path;
*str = strdup(val);
}
-API int pkgmgrinfo_pkginfo_set_usr_installed_storage(const char *pkgid, INSTALL_LOCATION location, uid_t uid)
+API int pkgmgrinfo_pkginfo_set_usr_installed_storage(const char *pkgid, INSTALL_LOCATION location, const char *external_pkg_path, uid_t uid)
{
retvm_if(pkgid == NULL, PMINFO_R_EINVAL, "pkgid is NULL\n");
int ret = -1;
/* pkgcakge_info table */
query = sqlite3_mprintf(
- "update package_info set installed_storage=%Q where package=%Q",
- location ? "installed_external" : "installed_internal", pkgid);
+ "update package_info set installed_storage=%Q, external_path=%Q where package=%Q",
+ location ? "installed_external" : "installed_internal", external_pkg_path, pkgid);
ret = sqlite3_exec(pkgmgr_parser_db, query, NULL, NULL, NULL);
tryvm_if(ret != SQLITE_OK, ret = PMINFO_R_ERROR, "Don't execute query = %s\n", query);
/* package_app_info table */
query = sqlite3_mprintf(
- "update package_app_info set app_installed_storage=%Q where package=%Q",
- location ? "installed_external" : "installed_internal", pkgid);
+ "update package_app_info set app_installed_storage=%Q, app_external_path=%Q where package=%Q",
+ location ? "installed_external" : "installed_internal", external_pkg_path, pkgid);
ret = sqlite3_exec(pkgmgr_parser_db, query, NULL, NULL, NULL);
tryvm_if(ret != SQLITE_OK, ret = PMINFO_R_ERROR, "Don't execute query = %s\n", query);
return ret;
}
-API int pkgmgrinfo_pkginfo_set_installed_storage(const char *pkgid, INSTALL_LOCATION location)
+API int pkgmgrinfo_pkginfo_set_installed_storage(const char *pkgid, INSTALL_LOCATION location, const char *external_pkg_path)
{
- return pkgmgrinfo_pkginfo_set_usr_installed_storage(pkgid, location, _getuid());
+ return pkgmgrinfo_pkginfo_set_usr_installed_storage(pkgid, location, external_pkg_path, _getuid());
}