*/
int package_manager_res_event_info_foreach_path(package_manager_res_event_info_h handle, package_manager_res_event_path_cb callback, void *user_data);
+/**
+ * @platform
+ * @brief Gets the privileged shared resource path for the given package ID.
+ * @since_tizen 6.5
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/packagemanager.admin
+ * @remarks You must release @a path using free().
+ * @param[in] package_id The ID of the package
+ * @param[out] path The path of privileged shared resource path of the package
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #PACKAGE_MANAGER_ERROR_NONE Successful
+ * @retval #PACKAGE_MANAGER_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #PACKAGE_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #PACKAGE_MANAGER_ERROR_OUT_OF_MEMORY Out of memory
+ */
+int package_manager_get_priv_shared_res_path(const char *package_id, char **path);
+
/**
* @}
#include "package_manager_internal.h"
#define GLOBAL_USER tzplatform_getuid(TZ_SYS_GLOBALAPP_USER)
+#define USER_HOME tzplatform_getenv(TZ_USER_HOME)
+
+#define PRIV_SHARED_RES "priv_shared_res"
+
typedef struct _request_event_info {
int req_id;
package_manager_event_type_e event_type;
return PACKAGE_MANAGER_ERROR_NONE;
}
+
+API int package_manager_get_priv_shared_res_path(const char *package_id, char **path)
+{
+ int ret;
+ char *path_dup;
+ char buf[PATH_MAX];
+
+ ret = check_privilege(PRIVILEGE_PACKAGE_MANAGER_ADMIN);
+ if (ret != PACKAGE_MANAGER_ERROR_NONE)
+ return ret;
+
+ if (package_id == NULL || path == NULL)
+ return package_manager_error(
+ PACKAGE_MANAGER_ERROR_INVALID_PARAMETER,
+ __FUNCTION__, NULL);
+
+ snprintf(buf, sizeof(buf), "%s/%s/%s", USER_HOME,
+ PRIV_SHARED_RES, package_id);
+
+ path_dup = strdup(buf);
+ if (path_dup == NULL)
+ return package_manager_error(
+ PACKAGE_MANAGER_ERROR_OUT_OF_MEMORY,
+ __FUNCTION__, NULL);
+ *path = path_dup;
+
+ return PACKAGE_MANAGER_ERROR_NONE;
+}