#define INTERFACE_NAME "org.tizen.system.deviced.Mmc"
#define METHOD_NAME "RequestMountApp2ext"
-#define GET_DB(X) (X).dbHandle
-
/*String properties for filtering based on package info*/
typedef enum _pkgmgrinfo_pkginfo_filter_prop_str {
E_PMINFO_PKGINFO_PROP_PACKAGE_MIN_STR = 101,
E_PMINFO_PKGINFO_PROP_PACKAGE_SUPPORT_DISABLE,
E_PMINFO_PKGINFO_PROP_PACKAGE_DISABLE,
E_PMINFO_PKGINFO_PROP_PACKAGE_CHECK_STORAGE,
- E_PMINFO_PKGINFO_PROP_PACKAGE_MAX_BOOL = E_PMINFO_PKGINFO_PROP_PACKAGE_CHECK_STORAGE
+ E_PMINFO_PKGINFO_PROP_PACKAGE_SYSTEM,
+ E_PMINFO_PKGINFO_PROP_PACKAGE_MAX_BOOL = E_PMINFO_PKGINFO_PROP_PACKAGE_SYSTEM
} pkgmgrinfo_pkginfo_filter_prop_bool;
/*Integer properties for filtering based on package info*/
E_PMINFO_APPINFO_PROP_APP_SCREENREADER,
E_PMINFO_APPINFO_PROP_APP_PACKAGE,
E_PMINFO_APPINFO_PROP_APP_INSTALLED_STORAGE,
- E_PMINFO_APPINFO_PROP_APP_MAX_STR = E_PMINFO_APPINFO_PROP_APP_INSTALLED_STORAGE
+ E_PMINFO_APPINFO_PROP_PRIVILEGE,
+ E_PMINFO_APPINFO_PROP_APP_MAX_STR = E_PMINFO_APPINFO_PROP_PRIVILEGE
} pkgmgrinfo_appinfo_filter_prop_str;
/*Boolean properties for filtering based on app info*/
E_PMINFO_APPINFO_PROP_APP_DISABLE,
E_PMINFO_APPINFO_PROP_APP_SUPPORT_DISABLE,
E_PMINFO_APPINFO_PROP_APP_CHECK_STORAGE,
- E_PMINFO_APPINFO_PROP_APP_MAX_BOOL = E_PMINFO_APPINFO_PROP_APP_CHECK_STORAGE
+ E_PMINFO_APPINFO_PROP_PKG_DISABLE,
+ E_PMINFO_APPINFO_PROP_APP_MAX_BOOL = E_PMINFO_APPINFO_PROP_PKG_DISABLE
} pkgmgrinfo_appinfo_filter_prop_bool;
/*Integer properties for filtering based on app info*/
E_PMINFO_APPINFO_JOIN_CATEGORY = 0x0002,
E_PMINFO_APPINFO_JOIN_APP_CONTROL = 0x0004,
E_PMINFO_APPINFO_JOIN_METADATA = 0x0008,
- E_PMINFO_APPINFO_JOIN_APPINFO_FOR_UID = 0x0010,
+ E_PMINFO_APPINFO_JOIN_PRIVILEGE = 0x0010,
} pkgmgrinfo_appinfo_join_flag;
+typedef enum _pkgmgrinfo_appinfo_disable_type {
+ E_APPINFO_DISABLE_TYPE_PKG = 0,
+ E_APPINFO_DISABLE_TYPE_APP
+} pkgmgrinfo_appinfo_disable_type;
+
typedef struct _pkgmgr_pkginfo_x {
uid_t uid;
package_x *pkg_info;
int ref;
} db_handle;
-extern __thread db_handle manifest_db;
-extern __thread db_handle cert_db;
+/* TODO: refine below structures */
+#define PKG_TYPE_STRING_LEN_MAX 128
+#define PKG_NAME_STRING_LEN_MAX 128
+#define PKG_VERSION_STRING_LEN_MAX 128
+#define PKG_VALUE_STRING_LEN_MAX 512
+#define PKG_URL_STRING_LEN_MAX 1024
+#define PKG_LABEL_STRING_LEN_MAX 128
+#define PKG_PATH_STRING_LEN_MAX 512
+#define PKG_DEP_TYPE_STRING_LEN_MAX 128
+
+typedef struct _package_manager_pkg_info_t {
+ char pkg_type[PKG_TYPE_STRING_LEN_MAX];
+ char pkg_name[PKG_NAME_STRING_LEN_MAX];
+ char pkgid[PKG_NAME_STRING_LEN_MAX];
+ char version[PKG_VERSION_STRING_LEN_MAX];
+ struct _package_manager_pkg_info_t *next;
+} package_manager_pkg_info_t;
+
+typedef struct _package_manager_pkg_dependency_info_t {
+ char pkgid[PKG_NAME_STRING_LEN_MAX];
+ char type[PKG_DEP_TYPE_STRING_LEN_MAX];
+ char required_version[PKG_VERSION_STRING_LEN_MAX];
+} pkg_dependency_info_t;
+
+typedef struct _package_manager_pkg_detail_info_t {
+ char pkg_type[PKG_TYPE_STRING_LEN_MAX];
+ char pkg_name[PKG_NAME_STRING_LEN_MAX];
+ char pkgid[PKG_NAME_STRING_LEN_MAX];
+ char version[PKG_VERSION_STRING_LEN_MAX];
+ char api_version[PKG_VERSION_STRING_LEN_MAX];
+ char pkg_description[PKG_VALUE_STRING_LEN_MAX];
+ char min_platform_version[PKG_VERSION_STRING_LEN_MAX];
+ time_t installed_time; /* installed time it must be GMT+0 time */
+ int installed_size; /* installed total size */
+ int app_size; /* installed app size */
+ int data_size; /* data size which is made on run time */
+ char optional_id[PKG_NAME_STRING_LEN_MAX]; /*package ID if exists */
+ void *pkg_optional_info;
+ char label[PKG_LABEL_STRING_LEN_MAX];
+ char author[PKG_VALUE_STRING_LEN_MAX];
+ char *icon_buf;
+ int icon_size;
+ GList *privilege_list;
+ GList *dependency_list;
+} package_manager_pkg_detail_info_t;
+
+typedef void (*_pkg_plugin_unload)(void);
+typedef int (*_pkg_plugin_pkg_is_installed) (const char *pkgid);
+typedef int (*_pkg_plugin_get_installed_pkg_list)(
+ const char *category, const char *option,
+ package_manager_pkg_info_t **list, int *count);
+typedef int (*_pkg_plugin_get_pkg_detail_info)(const char *pkgid,
+ package_manager_pkg_detail_info_t *pkg_detail_info);
+typedef int (*_pkg_plugin_get_pkg_detail_info_from_package)(
+ const char *pkg_path,
+ package_manager_pkg_detail_info_t *pkg_detail_info);
+
+typedef struct _pkg_plugin_set {
+ char pkg_type[PKG_TYPE_STRING_LEN_MAX];
+ void *plugin_handle;
+ _pkg_plugin_unload plugin_on_unload;
+ _pkg_plugin_pkg_is_installed pkg_is_installed;
+ _pkg_plugin_get_installed_pkg_list get_installed_pkg_list;
+ _pkg_plugin_get_pkg_detail_info get_pkg_detail_info;
+ _pkg_plugin_get_pkg_detail_info_from_package
+ get_pkg_detail_info_from_package;
+} pkg_plugin_set;
pkgmgrinfo_pkginfo_filter_prop_str _pminfo_pkginfo_convert_to_prop_str(const char *property);
pkgmgrinfo_pkginfo_filter_prop_int _pminfo_pkginfo_convert_to_prop_int(const char *property);
pkgmgrinfo_pkginfo_filter_prop_range _pminfo_pkginfo_convert_to_prop_range(const char *property);
-int _check_create_cert_db(sqlite3 *certdb);
-int __close_manifest_db(void);
-int __open_manifest_db(uid_t uid, bool readonly);
-int __close_cert_db(void);
-int __open_cert_db(uid_t uid, bool readonly);
+int _check_create_cert_db(void);
void _save_column_int(sqlite3_stmt *stmt, int idx, int *i);
void _save_column_str(sqlite3_stmt *stmt, int idx, char **str);
char *_get_system_locale(void);
int __pkginfo_check_installed_storage(package_x *pkginfo);
int __appinfo_check_installed_storage(application_x *appinfo);
int __open_db(const char *path, sqlite3 **db, int flags);
+char *__get_type_from_path(const char *pkg_path);
+pkg_plugin_set *__load_library(const char *pkg_type);
+void __unload_library(const char *pkg_type);
#define GLOBAL_USER tzplatform_getuid(TZ_SYS_GLOBALAPP_USER)
#define REGULAR_USER 5000