Fix spelling
[platform/core/appfw/pkgmgr-info.git] / include / pkgmgr-info.h
index 48aa7b6..0a4c9b3 100644 (file)
  *
  */
 
-
-
-
-
 /**
  * @file               pkgmgr-info.h
  * @author             Sewook Park <sewook7.park@samsung.com>
@@ -49,6 +45,9 @@
 #include <errno.h>
 #include <stdbool.h>
 #include <unistd.h>
+#include <sys/types.h>
+
+#include "pkgmgrinfo_type.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -73,300 +72,6 @@ extern "C" {
  * Generated by    Sewook Park <sewook7.park@samsung.com>
  */
 
-/**
- * @brief A type to retrieve uid information from the manifest handle
- */
-typedef struct {
-       uid_t uid;
-} pkgmgrinfo_uidinfo_t;
-
-/**
- * @brief A handle to insert certificate information
- */
-typedef void* pkgmgrinfo_instcertinfo_h;
-
-/**
- * @brief Certificate Types to be used for setting information
- */
-typedef enum {
-       PMINFO_SET_AUTHOR_ROOT_CERT = 0,                /**< Author Root Certificate*/
-       PMINFO_SET_AUTHOR_INTERMEDIATE_CERT = 1,                /**< Author Intermediate Certificate*/
-       PMINFO_SET_AUTHOR_SIGNER_CERT = 2,              /**< Author Signer Certificate*/
-       PMINFO_SET_DISTRIBUTOR_ROOT_CERT = 3,           /**< Distributor Root Certificate*/
-       PMINFO_SET_DISTRIBUTOR_INTERMEDIATE_CERT = 4,           /**< Distributor Intermediate Certificate*/
-       PMINFO_SET_DISTRIBUTOR_SIGNER_CERT = 5,         /**< Distributor Signer Certificate*/
-       PMINFO_SET_DISTRIBUTOR2_ROOT_CERT = 6,          /**< End Entity Root Certificate*/
-       PMINFO_SET_DISTRIBUTOR2_INTERMEDIATE_CERT = 7,          /**< End Entity Intermediate Certificate*/
-       PMINFO_SET_DISTRIBUTOR2_SIGNER_CERT = 8,                /**< End Entity Signer Certificate*/
-}pkgmgrinfo_instcert_type;
-
-typedef enum {
-       PMINFO_CERT_COMPARE_MATCH,
-       PMINFO_CERT_COMPARE_MISMATCH,
-       PMINFO_CERT_COMPARE_LHS_NO_CERT,
-       PMINFO_CERT_COMPARE_RHS_NO_CERT,
-       PMINFO_CERT_COMPARE_BOTH_NO_CERT,
-       PMINFO_CERT_COMPARE_ERROR,
-} pkgmgrinfo_cert_compare_result_type_e;
-
-/**
- * @brief API return values
- */
-enum {
-       PMINFO_R_EINVAL = -2,           /**< Invalid argument */
-       PMINFO_R_ERROR = -1,            /**< General error */
-       PMINFO_R_OK = 0                 /**< General success */
-};
-
-/**
- * @brief Value to be used when filtering based on install location
- */
-#define        PMINFO_PKGINFO_INSTALL_LOCATION_AUTO            "LOCATION_AUTO"
-
-/**
- * @brief Value to be used when filtering based on install location
- */
-#define        PMINFO_PKGINFO_INSTALL_LOCATION_INTERNAL        "LOCATION_INTERNAL"
-
-/**
- * @brief Value to be used when filtering based on install location
- */
-#define        PMINFO_PKGINFO_INSTALL_LOCATION_EXTERNAL        "LOCATION_EXTERNAL"
-
-/**
- * @brief Value to be used when filtering based on app-component
- */
-#define        PMINFO_APPINFO_UI_APP                           "UI_APP"
-
-/**
- * @brief Value to be used when filtering based on app-component
- */
-#define        PMINFO_APPINFO_SVC_APP                          "SVC_APP"
-
-typedef enum {
-       PMINFO_HWACCELERATION_NOT_USE_GL = 0,           /**< Don't use hardware acceleration*/
-       PMINFO_HWACCELERATION_USE_GL = 1,               /**< Use hardware acceleration*/
-       PMINFO_HWACCELERATION_USE_SYSTEM_SETTING = 2            /**< Follow system setting for hardware acceleration */
-}pkgmgrinfo_app_hwacceleration;
-
-typedef enum {
-       PMINFO_SCREENREADER_OFF = 0,            /**< Don't use screen reader*/
-       PMINFO_SCREENREADER_ON = 1,             /**< Use screen reader*/
-       PMINFO_SCREENREADER_USE_SYSTEM_SETTING = 2              /**< Follow system setting for screen reader */
-}pkgmgrinfo_app_screenreader;
-
-typedef enum {
-       PMINFO_RECENTIMAGE_USE_ICON = 0,                /**<Use icon for recent image*/
-       PMINFO_RECENTIMAGE_USE_CAPTURE = 1,             /**< Use capture for recent image*/
-       PMINFO_RECENTIMAGE_USE_NOTHING = 2              /**< Don't use recent image */
-}pkgmgrinfo_app_recentimage;
-
-/**
- * @brief A handle to get package information
- */
-typedef void* pkgmgrinfo_pkginfo_h;
-
-/**
- * @brief A handle to get application information
- */
-typedef void* pkgmgrinfo_appinfo_h;
-
-/**
- * @brief A handle to get certificate information
- */
-typedef void* pkgmgrinfo_certinfo_h;
-
-/**
- * @brief A handle to insert package information
- */
-typedef void* pkgmgrinfo_pkgdbinfo_h;
-
-/**
- * @brief A handle to filter package information
- */
-typedef void* pkgmgrinfo_pkginfo_filter_h;
-
-/**
- * @brief A handle to filter application information
- */
-typedef void* pkgmgrinfo_appinfo_filter_h;
-
-/**
- * @brief A handle to filter application metadata  information
- */
-typedef void* pkgmgrinfo_appinfo_metadata_filter_h;
-
-/**
- * @brief A handle to get appcontrol information
- */
-typedef void* pkgmgrinfo_appcontrol_h;
-
-/**
- * @fn int (*pkgmgrinfo_pkg_list_cb ) (const pkgmgrinfo_pkginfo_h handle, void *user_data)
- *
- * @brief Specifies the type of function passed to pkgmgrinfo_pkginfo_get_list(), pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
- *
- * @param[in] handle the pkginfo handle
- * @param[in] user_data user data passed to pkgmgrinfo_pkginfo_get_list(), pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
- *
- * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
- *
- * @see  pkgmgrinfo_pkginfo_get_list()
- * @see  pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
- */
-typedef int (*pkgmgrinfo_pkg_list_cb ) (const pkgmgrinfo_pkginfo_h handle,
-                                                       void *user_data);
-
-/**
- * @fn int (*pkgmgrinfo_app_list_cb ) (const pkgmgrinfo_appinfo_h handle, void *user_data)
- *
- * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_get_list(), pkgmgrinfo_appinfo_filter_foreach_appinfo(), pkgmgrinfo_appinfo_metadata_filter_foreach()
- *
- * @param[in] handle the appinfo handle
- * @param[in] user_data user data passed to pkgmgrinfo_appinfo_get_list(), pkgmgrinfo_appinfo_filter_foreach_appinfo(), pkgmgrinfo_appinfo_metadata_filter_foreach()
- *
- * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
- *
- * @see  pkgmgrinfo_appinfo_get_list()
- * @see  pkgmgrinfo_appinfo_filter_foreach_appinfo()
- * @see  pkgmgrinfo_appinfo_metadata_filter_foreach()
- */
-typedef int (*pkgmgrinfo_app_list_cb ) (const pkgmgrinfo_appinfo_h handle,
-                                                       void *user_data);
-
-/**
- * @fn int (*pkgmgrinfo_app_category_list_cb ) (const char *category_name, void *user_data)
- *
- * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_category()
- *
- * @param[in] category_name the name of the category
- * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_category()
- *
- * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
- *
- * @see  pkgmgrinfo_appinfo_foreach_category()
- */
-typedef int (*pkgmgrinfo_app_category_list_cb ) (const char *category_name,
-                                                       void *user_data);
-
-/**
- * @fn int (*pkgmgrinfo_app_permission_list_cb ) (const char *permission_type, void *user_data)
- *
- * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_category()
- *
- * @param[in] permission_name the name of the permission
- * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_category()
- *
- * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
- *
- * @see  pkgmgrinfo_appinfo_foreach_category()
- */
-typedef int (*pkgmgrinfo_app_permission_list_cb ) (const char *permission_type,
-                                                       void *user_data);
-
-/**
- * @fn int (*pkgmgrinfo_pkg_privilege_list_cb ) (const char *privilege_name, void *user_data)
- *
- * @brief Specifies the type of function passed to pkgmgrinfo_pkginfo_foreach_privilege()
- *
- * @param[in] privilege_name the name of the privilege
- * @param[in] user_data user data passed to pkgmgrinfo_pkginfo_foreach_privilege()
- *
- * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
- *
- * @see  pkgmgrinfo_pkginfo_foreach_privilege()
- */
-typedef int (*pkgmgrinfo_pkg_privilege_list_cb ) (const char *privilege_name,
-                                                       void *user_data);
-
-/**
- * @fn int (*pkgmgrinfo_app_metadata_list_cb ) (const char *metadata_key, const char *metadata_value, void *user_data)
- *
- * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_metadata()
- *
- * @param[in] metadata_name the name of the metadata
- * @param[in] metadata_value the value of the metadata
- * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_metadata()
- *
- * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
- *
- * @see  pkgmgrinfo_appinfo_foreach_metadata()
- */
-typedef int (*pkgmgrinfo_app_metadata_list_cb ) (const char *metadata_key,
-                                                       const char *metadata_value, void *user_data);
-
-/**
- * @fn int (*pkgmgrinfo_app_control_list_cb ) (pkgmgrinfo_appcontrol_h handle, void *user_data)
- *
- * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_appcontrol()
- *
- * @param[in] handle the appcontrol handle to be used to get operation, uri and mime info
- * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_appcontrol()
- *
- * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
- *
- * @see  pkgmgrinfo_appinfo_foreach_appcontrol()
- */
-typedef int (*pkgmgrinfo_app_control_list_cb ) (pkgmgrinfo_appcontrol_h handle,
-                                                       void *user_data);
-
-/**
- * @brief Install Location Types
- */
-typedef enum {
-       PMINFO_INSTALL_LOCATION_AUTO = 0,               /**< Auto*/
-       PMINFO_INSTALL_LOCATION_INTERNAL_ONLY,          /**< Internal Installation*/
-       PMINFO_INSTALL_LOCATION_PREFER_EXTERNAL,                /**< External Installation*/
-}pkgmgrinfo_install_location;
-
-/**
- * @brief Application Component Types
- */
-typedef enum {
-       PMINFO_ALL_APP = 0,     /**< All Application*/
-       PMINFO_UI_APP,          /**< UI Application*/
-       PMINFO_SVC_APP,         /**< Service Application*/
-}pkgmgrinfo_app_component;
-
-/**
- * @brief Application Storage Types
- */
-typedef enum {
-       PMINFO_INTERNAL_STORAGE = 0,            /**< Internal Storage*/
-       PMINFO_EXTERNAL_STORAGE = 1,            /**< External Storage*/
-}pkgmgrinfo_installed_storage;
-
-/**
- * @brief Certificate Types to be used for getting information
- */
-typedef enum {
-       PMINFO_AUTHOR_ROOT_CERT = 0,            /**< Author Root Certificate*/
-       PMINFO_AUTHOR_INTERMEDIATE_CERT = 1,            /**< Author Intermediate Certificate*/
-       PMINFO_AUTHOR_SIGNER_CERT = 2,          /**< Author Signer Certificate*/
-       PMINFO_DISTRIBUTOR_ROOT_CERT = 3,               /**< Distributor Root Certificate*/
-       PMINFO_DISTRIBUTOR_INTERMEDIATE_CERT = 4,               /**< Distributor Intermediate Certificate*/
-       PMINFO_DISTRIBUTOR_SIGNER_CERT = 5,             /**< Distributor Signer Certificate*/
-       PMINFO_DISTRIBUTOR2_ROOT_CERT = 6,              /**< End Entity Root Certificate*/
-       PMINFO_DISTRIBUTOR2_INTERMEDIATE_CERT = 7,              /**< End Entity Intermediate Certificate*/
-       PMINFO_DISTRIBUTOR2_SIGNER_CERT = 8,            /**< End Entity Signer Certificate*/
-}pkgmgrinfo_cert_type;
-
-/**
- * @brief Install Location Types to be used when setting data in DB
- */
-typedef enum {
-       INSTALL_INTERNAL = 0,           /**< Internal Installation*/
-       INSTALL_EXTERNAL,               /**< External Installation*/
-} INSTALL_LOCATION;
-
- /**
-  * @brief permission Types
-  */
- typedef enum {
-        PMINFO_PERMISSION_NORMAL = 0,           /**< permission normal*/
-        PMINFO_PERMISSION_SIGNATURE,    /**< permission type is signature*/
-        PMINFO_PERMISSION_PRIVILEGE,    /**< permission type is privilege*/
- }pkgmgrinfo_permission_type;
 
 
  /** String property for filtering based on package info*/
@@ -385,6 +90,8 @@ typedef enum {
 #define        PMINFO_PKGINFO_PROP_PACKAGE_AUTHOR_EMAIL                "PMINFO_PKGINFO_PROP_PACKAGE_AUTHOR_EMAIL"
  /** String property for filtering based on package info*/
 #define        PMINFO_PKGINFO_PROP_PACKAGE_AUTHOR_HREF         "PMINFO_PKGINFO_PROP_PACKAGE_AUTHOR_HREF"
+ /** String property for filtering based on package info*/
+#define        PMINFO_PKGINFO_PROP_PACKAGE_PRIVILEGE           "PMINFO_PKGINFO_PROP_PACKAGE_PRIVILEGE"
 
  /** Boolean property for filtering based on package info*/
 #define        PMINFO_PKGINFO_PROP_PACKAGE_REMOVABLE           "PMINFO_PKGINFO_PROP_PACKAGE_REMOVABLE"
@@ -392,12 +99,20 @@ typedef enum {
 #define        PMINFO_PKGINFO_PROP_PACKAGE_PRELOAD             "PMINFO_PKGINFO_PROP_PACKAGE_PRELOAD"
  /** Boolean property for filtering based on package info*/
 #define        PMINFO_PKGINFO_PROP_PACKAGE_READONLY            "PMINFO_PKGINFO_PROP_PACKAGE_READONLY"
+   /** Boolean property for filtering based on package info*/
+#define        PMINFO_PKGINFO_PROP_PACKAGE_SYSTEM              "PMINFO_PKGINFO_PROP_PACKAGE_SYSTEM"
   /** Boolean property for filtering based on package info*/
 #define        PMINFO_PKGINFO_PROP_PACKAGE_UPDATE              "PMINFO_PKGINFO_PROP_PACKAGE_UPDATE"
   /** Boolean property for filtering based on package info*/
 #define        PMINFO_PKGINFO_PROP_PACKAGE_APPSETTING          "PMINFO_PKGINFO_PROP_PACKAGE_APPSETTING"
    /** Boolean property for filtering based on package info*/
 #define        PMINFO_PKGINFO_PROP_PACKAGE_NODISPLAY_SETTING           "PMINFO_PKGINFO_PROP_PACKAGE_NODISPLAY_SETTING"
+   /** Boolean property for filtering based on package info*/
+#define        PMINFO_PKGINFO_PROP_PACKAGE_SUPPORT_DISABLE             "PMINFO_PKGINFO_PROP_PACKAGE_SUPPORT_DISABLE"
+   /** Boolean property for filtering based on package info*/
+#define        PMINFO_PKGINFO_PROP_PACKAGE_DISABLE             "PMINFO_PKGINFO_PROP_PACKAGE_DISABLE"
+   /** Boolean property for filtering based on package info*/
+#define        PMINFO_PKGINFO_PROP_PACKAGE_CHECK_STORAGE               "PMINFO_PKGINFO_PROP_PACKAGE_CHECK_STORAGE"
 
  /** Integer property for filtering based on package info*/
 #define        PMINFO_PKGINFO_PROP_PACKAGE_SIZE                "PMINFO_PKGINFO_PROP_PACKAGE_SIZE"
@@ -422,8 +137,17 @@ typedef enum {
 #define        PMINFO_APPINFO_PROP_APP_CATEGORY        "PMINFO_APPINFO_PROP_APP_CATEGORY"
  /** String property for filtering based on app info*/
 #define        PMINFO_APPINFO_PROP_APP_HWACCELERATION  "PMINFO_APPINFO_PROP_APP_HWACCELERATION"
 /** String property for filtering based on app info*/
+ /** String property for filtering based on app info*/
 #define        PMINFO_APPINFO_PROP_APP_SCREENREADER    "PMINFO_APPINFO_PROP_APP_SCREENREADER"
+ /** String property for filtering based on app info*/
+#define        PMINFO_APPINFO_PROP_APP_PACKAGE         "PMINFO_APPINFO_PROP_APP_PACKAGE"
+ /** String property for filtering based on app info*/
+#define        PMINFO_APPINFO_PROP_APP_INSTALLED_STORAGE               "PMINFO_APPINFO_PROP_APP_INSTALLED_STORAGE"
+ /** String property for filtering based on app info*/
+#define        PMINFO_APPINFO_PROP_PRIVILEGE   "PMINFO_APPINFO_PROP_PRIVILEGE"
+
+/** Integer property for filtering app support mode */
+#define        PMINFO_APPINFO_PROP_APP_SUPPORT_MODE            "PMINFO_APPINFO_PROP_APP_SUPPORT_MODE"
 
  /** Boolean property for filtering based on app info*/
 #define        PMINFO_APPINFO_PROP_APP_NODISPLAY               "PMINFO_APPINFO_PROP_APP_NODISPLAY"
@@ -437,19 +161,27 @@ typedef enum {
 #define        PMINFO_APPINFO_PROP_APP_TASKMANAGE      "PMINFO_APPINFO_PROP_APP_TASKMANAGE"
  /** Boolean property for filtering based on app info*/
 #define        PMINFO_APPINFO_PROP_APP_LAUNCHCONDITION "PMINFO_APPINFO_PROP_APP_LAUNCHCONDITION"
+ /** Boolean property for filtering based on app info*/
+#define        PMINFO_APPINFO_PROP_APP_UI_GADGET       "PMINFO_APPINFO_PROP_APP_UI_GADGET"
+ /** Boolean property for filtering based on app info*/
+#define        PMINFO_APPINFO_PROP_APP_DISABLE "PMINFO_APPINFO_PROP_APP_DISABLE"
+ /** Boolean property for filtering based on app info*/
+#define        PMINFO_APPINFO_PROP_APP_SUPPORT_DISABLE "PMINFO_APPINFO_PROP_APP_SUPPORT_DISABLE"
+ /** Boolean property for filtering based on app info*/
+#define        PMINFO_APPINFO_PROP_APP_CHECK_STORAGE   "PMINFO_APPINFO_PROP_APP_CHECK_STORAGE"
+/** Boolean property for filtering based on app info*/
+#define        PMINFO_APPINFO_PROP_PKG_DISABLE "PMINFO_APPINFO_PROP_PKG_DISABLE"
 
  /** will be updated*/
  /** string property for filtering based on pkg info*/
 #define        PMINFO_PKGINFO_PROP_RANGE_BASIC "PMINFO_PKGINFO_PROP_RANGE_BASIC"
 
 /* For multiuser support */
-char *getIconPath(uid_t uid);
+const char *getIconPath(uid_t uid, bool readonly);
 char *getUserPkgParserDBPath(void);
 char *getUserPkgParserDBPathUID(uid_t uid);
 char *getUserPkgCertDBPath(void);
-char *getUserPkgCertDBPathUID(uid_t uid);
-const char* getUserDesktopPath(uid_t uid);
-const char* getUserManifestPath(uid_t uid);
+const char *getUserManifestPath(uid_t uid, bool readonly);
 
 /**
  * @fn int pkgmgrinfo_pkginfo_get_list(pkgmgrinfo_pkg_list_cb pkg_list_cb, void *user_data)
@@ -495,9 +227,30 @@ static int list_pkgs()
  */
 int pkgmgrinfo_pkginfo_get_list(pkgmgrinfo_pkg_list_cb pkg_list_cb, void *user_data);
 int pkgmgrinfo_pkginfo_get_usr_list(pkgmgrinfo_pkg_list_cb pkg_list_cb, void *user_data, uid_t uid);
+
+/**
+ * @fn int pkgmgrinfo_pkginfo_get_disabled_list(pkgmgrinfo_pkg_list_cb pkg_list_cb, void *user_data)
+ * @fn int pkgmgrinfo_pkginfo_get_usr_disabled_list(pkgmgrinfo_pkg_list_cb pkg_list_cb, void *user_data, uid_t uid)
+ * @brief      This API gets list of disabled packages
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ * @param[in]  pkg_list_cb     iteration function for list
+ * @param[in]  user_data       user data to be passed to callback function
+ * @param[in]  uid     the addressee user id of the instruction
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                None
+ * @post       None
+ */
+int pkgmgrinfo_pkginfo_get_disabled_list(pkgmgrinfo_pkg_list_cb pkg_list_cb, void *user_data);
+int pkgmgrinfo_pkginfo_get_usr_disabled_list(pkgmgrinfo_pkg_list_cb pkg_list_cb, void *user_data, uid_t uid);
+
 /**
  * @fn int pkgmgrinfo_pkginfo_get_pkginfo(const char *pkgid, pkgmgrinfo_pkginfo_h *handle)
- * @brief      This API creates the package information handle from db
+ * @brief      This API creates the package information handle from db which is not disabled
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
@@ -537,6 +290,68 @@ int pkgmgrinfo_pkginfo_get_pkginfo(const char *pkgid, pkgmgrinfo_pkginfo_h *hand
 int pkgmgrinfo_pkginfo_get_usr_pkginfo(const char *pkgid, uid_t uid, pkgmgrinfo_pkginfo_h *handle);
 
 /**
+ * @fn int pkgmgrinfo_pkginfo_get_disabled_pkginfo(const char *pkgid, pkgmgrinfo_pkginfo_h *handle)
+ * @brief      This API creates the disabled package information handle from db
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  pkgid   pointer to package ID
+ * @param[in]  uid     the addressee user id of the instruction
+ * @param[out] handle          pointer to the package info handle.
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                None
+ * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
+ * @see                pkgmgrinfo_pkginfo_get_pkginfo()
+ */
+int pkgmgrinfo_pkginfo_get_disabled_pkginfo(const char *pkgid, pkgmgrinfo_pkginfo_h *handle);
+int pkgmgrinfo_pkginfo_get_usr_disabled_pkginfo(const char *pkgid, uid_t uid, pkgmgrinfo_pkginfo_h *handle);
+
+/**
+ * @fn int pkgmgrinfo_pkginfo_get_all_pkginfo(const char *pkgid, pkgmgrinfo_pkginfo_h *handle)
+ * @brief      This API creates the package information handle from db regardless of its disable or storage status
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  pkgid   pointer to package ID
+ * @param[in]  uid     the addressee user id of the instruction
+ * @param[out] handle          pointer to the package info handle.
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                None
+ * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
+ * @see                pkgmgrinfo_pkginfo_get_pkgid()
+ * @see                pkgmgrinfo_pkginfo_is_removable()
+ * @code
+static int get_pkg_type(const char *pkgid)
+{
+       int ret = 0;
+       char *type = NULL;
+       pkgmgrinfo_pkginfo_h handle;
+       ret = pkgmgrinfo_pkginfo_get_all_pkginfo(pkgid, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_pkginfo_get_type(handle, &type);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+               return -1;
+       }
+       printf("pkgtype: %s\n", type);
+       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_pkginfo_get_all_pkginfo(const char *pkgid, pkgmgrinfo_pkginfo_h *handle);
+int pkgmgrinfo_pkginfo_get_usr_all_pkginfo(const char *pkgid, uid_t uid, pkgmgrinfo_pkginfo_h *handle);
+
+/**
  * @fn int pkgmgrinfo_pkginfo_get_pkgname(pkgmgrinfo_pkginfo_h handle, char **pkg_name)
  * @brief      This API gets the package name from the package ID
  *
@@ -693,14 +508,14 @@ static int get_pkg_version(const char *pkgid)
 int pkgmgrinfo_pkginfo_get_version(pkgmgrinfo_pkginfo_h handle, char **version);
 
 /**
- * @fn int pkgmgrinfo_pkginfo_get_install_location(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_install_location *location)
- * @brief      This API gets the package install location from the package ID
+ * @fn int pkgmgrinfo_pkginfo_get_api_version(pkgmgrinfo_pkginfo_h handle, char **api_version)
+ * @brief      This API gets the package api_version from the package ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle   pointer to package info handle
- * @param[out] location                pointer to hold package install location
+ * @param[in]  handle  pointer to package info handle
+ * @param[out] api_version             pointer to hold package api_version
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
@@ -710,140 +525,228 @@ int pkgmgrinfo_pkginfo_get_version(pkgmgrinfo_pkginfo_h handle, char **version);
  * @see                pkgmgrinfo_pkginfo_get_pkgid()
  * @see                pkgmgrinfo_pkginfo_is_removable()
  * @code
-static int get_pkg_install_location(const char *pkgid)
+static int get_pkg_api_version(const char *pkgid)
 {
        int ret = 0;
-       pkgmgrinfo_install_location location;
-       pkgmgrinfo_pkginfo_h handle;
+       char *api_version = NULL;
+       pkgmgrinfo_pkginfo_h handle = NULL;
        ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_get_install_location(handle, &location);
+       ret = pkgmgrinfo_pkginfo_get_api_version(handle, &api_version);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
                return -1;
        }
-       printf("pkg install location: %d\n", location);
+       printf("pkg api_version: %s\n", api_version);
        pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_get_install_location(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_install_location *location);
+int pkgmgrinfo_pkginfo_get_api_version(pkgmgrinfo_pkginfo_h handle, char **api_version);
 
 /**
- * @fn int pkgmgrinfo_pkginfo_get_package_size(pkgmgrinfo_pkginfo_h handle, int *size)
- * @brief      This API gets the package size from the package ID. size will be 0 if package install location is internal-only.
- size will be 0 if package install location is prefer-external but size is not specified in manifest file.Application should check
- the return value of pkgmgrinfo_pkginfo_get_install_location() and use it to distinguish the above cases.
+ * @fn int pkgmgrinfo_pkginfo_get_tep_name(pkgmgrinfo_pkginfo_h handle, char **tep_name)
+ * @brief      This API gets tep(tizen expansion package) file name associated with the package
  *
- * @par                This API is for package-manager client application
+ * @par        This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in]  handle  pointer to package info handle
- * @param[out] size            pointer to hold package size
+ * @param[in] handle   pointer to the pkginfo handle.
+ * @param[out] tep_name        pointer to hold tep name
  * @return     0 if success, error code(<0) if fail
- * @retval     PMINFO_R_OK     success
- * @retval     PMINFO_R_EINVAL invalid argument
- * @retval     PMINFO_R_ERROR  internal error
+ * @retval     PMINFO_R_OK success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
  * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
- * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
- * @see                pkgmgrinfo_pkginfo_get_pkgid()
- * @see                pkgmgrinfo_pkginfo_is_removable()
+ * @post       pkgmgrinfo_pkginfo_destroy_pkginfo()
+ * @see        pkgmgrinfo_pkginfo_get_pkgid()
  * @code
-static int get_pkg_size(const char *pkgid)
+static int get_tep_name(const char *pkgid)
 {
        int ret = 0;
-       int size = 0;
-       pkgmgrinfo_pkginfo_h handle;
+       char *tep_name = NULL;
+       pkgmgrinfo_pkginfo_h handle = NULL;
        ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_get_package_size(handle, &size);
+       ret = pkgmgrinfo_pkginfo_get_tep_name(handle, &tep_name);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
                return -1;
        }
-       printf("pkgsize: %d\n", size);
+       printf("TEP name is: %s\n", tep_name);
        pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_get_package_size(pkgmgrinfo_pkginfo_h handle, int *size);
+int pkgmgrinfo_pkginfo_get_tep_name(pkgmgrinfo_pkginfo_h handle, char **tep_name);
 
 /**
- * @fn int pkgmgrinfo_pkginfo_get_total_size(pkgmgrinfo_pkginfo_h handle, int *size)
- * @brief      This API gets the installed package total size on the target.
+ * @fn int pkgmgrinfo_pkginfo_get_zip_mount_file(pkgmgrinfo_pkginfo_h handle, char **zip_mount_file)
+ * @brief      This API gets package mount point path associated with the package
+ *                     if package is mount-installed. Otherwise, zip_mount_file is left as NULL value
  *
- * @par                This API is for package-manager client application
+ * @par        This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in]  handle  pointer to package info handle
- * @param[out] size            pointer to hold package total size
+ * @param[in] handle   pointer to the pkginfo handle.
+ * @param[out] zip_mount_file  pointer to hold zip mount file
  * @return     0 if success, error code(<0) if fail
- * @retval     PMINFO_R_OK     success
- * @retval     PMINFO_R_EINVAL invalid argument
- * @retval     PMINFO_R_ERROR  internal error
+ * @retval     PMINFO_R_OK success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre        pkgmgrinfo_pkginfo_get_pkginfo()
+ * @post       pkgmgrinfo_pkginfo_destroy_pkginfo()
+ * @see        pkgmgrinfo_pkginfo_get_pkgid()
  * @code
-static int get_pkg_total_size(const char *pkgid)
+static int get_zip_mount_file(const char *pkgid)
 {
        int ret = 0;
-       int size = 0;
-       pkgmgrinfo_pkginfo_h handle;
+       char *zip_mount_file = NULL;
+       pkgmgrinfo_pkginfo_h handle = NULL;
        ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_get_total_size(handle, &size);
+       ret = pkgmgrinfo_pkginfo_get_zip_mount_file(handle, &zip_mount_file);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
                return -1;
        }
-       printf("pkg total size: %d\n", size);
+       if (zip_mount_file != NULL)
+               printf("Zip mount path is: %s\n", zip_mount_file);
        pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
        return 0;
 }
  * @endcode
  */
- int pkgmgrinfo_pkginfo_get_total_size(pkgmgrinfo_pkginfo_h handle, int *size);
+int pkgmgrinfo_pkginfo_get_zip_mount_file(pkgmgrinfo_pkginfo_h handle, char **zip_mount_file);
 
 /**
- * @fn int pkgmgrinfo_pkginfo_get_data_size(pkgmgrinfo_pkginfo_h handle, int *size)
- * @brief      This API gets the installed package data size on the target.
+ * @fn int pkgmgrinfo_pkginfo_get_external_image_path(pkgmgrinfo_pkginfo_h handle, char **ext_image_path)
+ * @brief      This API gets package external image path associated with the package
+ *                     if package is installed in external storage.
+ *                     Otherwise, the return value will be PMINFO_R_ENOENT.
  *
- * @par                This API is for package-manager client application
+ * @par        This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in]  handle  pointer to package info handle
- * @param[out] size            pointer to hold package data size
+ * @param[in] handle   pointer to the pkginfo handle.
+ * @param[out] ext_image_path  pointer to hold external image path
  * @return     0 if success, error code(<0) if fail
- * @retval     PMINFO_R_OK     success
- * @retval     PMINFO_R_EINVAL invalid argument
- * @retval     PMINFO_R_ERROR  internal error
+ * @retval     PMINFO_R_OK success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @revall     PMINFO_R_ENOENT no valid data
+ * @pre        pkgmgrinfo_pkginfo_get_pkginfo()
+ * @post       pkgmgrinfo_pkginfo_destroy_pkginfo()
+ * @see        pkgmgrinfo_pkginfo_get_pkgid()
  * @code
-static int get_pkg_data_size(const char *pkgid)
+static int get_external_image_path(const char *pkgid)
 {
        int ret = 0;
-       int size = 0;
-       pkgmgrinfo_pkginfo_h handle;
+       char *ext_image_path = NULL;
+       pkgmgrinfo_pkginfo_h handle = NULL;
        ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_get_data_size(handle, &size);
+       ret = pkgmgrinfo_pkginfo_get_external_image_path(handle, &ext_image_path);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
                return -1;
        }
-       printf("pkg data size: %d\n", size);
+       printf("external image path is: %s\n", ext_image_path);
        pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
        return 0;
 }
  * @endcode
  */
- int pkgmgrinfo_pkginfo_get_data_size(pkgmgrinfo_pkginfo_h handle, int *size);
+int pkgmgrinfo_pkginfo_get_external_image_path(pkgmgrinfo_pkginfo_h handle, char **ext_image_path);
 
 /**
- * @fn int pkgmgrinfo_pkginfo_get_icon(pkgmgrinfo_pkginfo_h handle, char **icon)
+ * @fn int pkgmgrinfo_pkginfo_get_install_location(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_install_location *location)
+ * @brief      This API gets the package install location from the package ID
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in] handle   pointer to package info handle
+ * @param[out] location                pointer to hold package install location
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
+ * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
+ * @see                pkgmgrinfo_pkginfo_get_pkgid()
+ * @see                pkgmgrinfo_pkginfo_is_removable()
+ * @code
+static int get_pkg_install_location(const char *pkgid)
+{
+       int ret = 0;
+       pkgmgrinfo_install_location location;
+       pkgmgrinfo_pkginfo_h handle;
+       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_pkginfo_get_install_location(handle, &location);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+               return -1;
+       }
+       printf("pkg install location: %d\n", location);
+       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_pkginfo_get_install_location(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_install_location *location);
+
+/**
+ * @fn int pkgmgrinfo_pkginfo_get_package_size(pkgmgrinfo_pkginfo_h handle, int *size)
+ * @brief      This API gets the package size from the package ID. size will be 0 if package install location is internal-only.
+ size will be 0 if package install location is prefer-external but size is not specified in manifest file.Application should check
+ the return value of pkgmgrinfo_pkginfo_get_install_location() and use it to distinguish the above cases.
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  handle  pointer to package info handle
+ * @param[out] size            pointer to hold package size
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
+ * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
+ * @see                pkgmgrinfo_pkginfo_get_pkgid()
+ * @see                pkgmgrinfo_pkginfo_is_removable()
+ * @code
+static int get_pkg_size(const char *pkgid)
+{
+       int ret = 0;
+       int size = 0;
+       pkgmgrinfo_pkginfo_h handle;
+       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_pkginfo_get_package_size(handle, &size);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+               return -1;
+       }
+       printf("pkgsize: %d\n", size);
+       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_pkginfo_get_package_size(pkgmgrinfo_pkginfo_h handle, int *size);
+
+/**
+ * @fn int pkgmgrinfo_pkginfo_get_icon(pkgmgrinfo_pkginfo_h handle, char **icon)
  * @brief      This API gets the package icon from the package ID
  *
  * @par                This API is for package-manager client application
@@ -1155,430 +1058,375 @@ static int get_pkg_installed_time(const char *pkgid)
 int pkgmgrinfo_pkginfo_get_installed_time(pkgmgrinfo_pkginfo_h handle, int *installed_time);
 
 /**
- * @fn int pkgmgrinfo_pkginfo_get_storeclientid(pkgmgrinfo_pkginfo_h handle, char **storeclientid)
- * @brief      This API gets the store client id of package from the package ID
+ * @fn int pkgmgrinfo_updateinfo_create(pkgmgrinfo_updateinfo_h *update_handle)
+ * @brief      This API creates the update info handle
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in]  handle  pointer to package info handle
- * @param[out] storeclientid           pointer to hold store client id of package
+ * @param[out] handle  pointer to package update info handle
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
- * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
- * @see                pkgmgrinfo_pkginfo_get_pkgid()
- * @see                pkgmgrinfo_pkginfo_is_removable()
+ * @post       pkgmgrinfo_updateinfo_destroy()
+ * @see                pkgmgrinfo_updateinfo_set_pkgid()
+ * @see                pkgmgrinfo_updateinfo_set_version()
+ * @see                pkgmgrinfo_updateinfo_set_type()
+ * @see                pkgmgr_client_register_pkg_updateinfo()
  * @code
-static int get_pkg_storeclientid(const char *pkgid)
+static int updateinfo_handle_create()
 {
        int ret = 0;
-       char *storeclientid = 0;
-       pkgmgrinfo_pkginfo_h handle;
-       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
+
+       pkgmgrinfo_updateinfo_h handle;
+       ret = pkgmgrinfo_updateinfo_create(&handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_get_storeclientid(handle, &storeclientid);
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
-               return -1;
-       }
-       printf(store client id: %s\n", storeclientid);
-       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+       pkgmgrinfo_update_infodestroy(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_get_storeclientid(pkgmgrinfo_pkginfo_h handle, char **storeclientid);
+int pkgmgrinfo_updateinfo_create(pkgmgrinfo_updateinfo_h *update_handle);
 
 /**
- * @fn int pkgmgrinfo_pkginfo_get_mainappid(pkgmgrinfo_pkginfo_h handle, char **mainappid)
- * @brief      This API gets the main app id of package from the package ID
+ * @fn int pkgmgrinfo_updateinfo_destroy(pkgmgrinfo_updateinfo_h update_handle)
+ * @brief      This API destroy the update info handle
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in]  handle  pointer to package info handle
- * @param[out] mainappid               pointer to hold main app id of package
+ * @param[in]  handle  pointer to package update info handle
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
- * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
- * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
- * @see                pkgmgrinfo_pkginfo_get_pkgid()
- * @see                pkgmgrinfo_pkginfo_is_removable()
+ * @pre                pkgmgrinfo_updateinfo_create()
+ * @see                pkgmgr_client_register_pkg_updateinfo()
  * @code
-static int get_pkg_mainappid(const char *pkgid)
+static int updateinfo_handle_destroy(pkgmgrinfo_updateinfo_h handle)
 {
        int ret = 0;
-       char *mainappid = 0;
-       pkgmgrinfo_pkginfo_h handle;
-       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
+
+       ret = pkgmgrinfo_updateinfo_destroy(handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_get_mainappid(handle, &mainappid);
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
-               return -1;
-       }
-       printf(main app id: %s\n", mainappid);
-       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_get_mainappid(pkgmgrinfo_pkginfo_h handle, char **mainappid);
+int pkgmgrinfo_updateinfo_destroy(pkgmgrinfo_updateinfo_h update_handle);
 
 /**
- * @fn int pkgmgrinfo_pkginfo_get_url(pkgmgrinfo_pkginfo_h handle, char **url)
- * @brief      This API gets the url of package from the package ID
+ * @fn int pkgmgrinfo_updateinfo_get_updateinfo(const char *pkgid, pkgmgrinfo_updateinfo_h *update_handle)
+ * @brief      This API creates the package update information handle from db
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in]  handle  pointer to package info handle
- * @param[out] url             pointer to hold url of package
+ * @param[in]  pkgid   pointer to package ID
+ * @param[in]  uid     the addressee user id of the instruction
+ * @param[out] update_handle           pointer to the package update info handle.
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
- * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
- * @see                pkgmgrinfo_pkginfo_get_pkgid()
- * @see                pkgmgrinfo_pkginfo_is_removable()
+ * @pre                None
+ * @post               pkgmgrinfo_updateinfo_destroy()
+ * @see                pkgmgrinfo_updateinfo_get_pkgid()
+ * @see                pkgmgrinfo_updateinfo_get_version()
+ * @see                pkgmgrinfo_updateinfo_get_update_type()
  * @code
-static int get_pkg_url(const char *pkgid)
+static int get_pkg_update_info(const char *pkgid)
 {
        int ret = 0;
-       char *url = 0;
-       pkgmgrinfo_pkginfo_h handle;
-       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
+       char *version;
+       pkgmgrinfo_updateinfo_h handle;
+       ret = pkgmgrinfo_updateinfo_get_updateinfo(pkgid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_get_url(handle, &url);
+       ret = pkgmgrinfo_updateinfo_get_version(handle, &version);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+               pkgmgrinfo_updateinfo_destroy(handle);
                return -1;
        }
-       printf("url : %s\n", url);
-       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+       printf("pkg update version: %s\n", version
+       pkgmgrinfo_updateinfo_destroy(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_get_url(pkgmgrinfo_pkginfo_h handle, char **url);
-
+int pkgmgrinfo_updateinfo_get_updateinfo(const char *pkgid, pkgmgrinfo_updateinfo_h *update_handle);
+int pkgmgrinfo_updateinfo_get_usr_updateinfo(const char *pkgid, pkgmgrinfo_updateinfo_h *update_handle, uid_t uid);
 
 /**
- * @fn int pkgmgrinfo_pkginfo_get_root_path(pkgmgrinfo_pkginfo_h handle, char **path)
- * @brief      This API gets the root path of package
+ * @fn int pkgmgrinfo_updateinfo_set_pkgid(pkgmgrinfo_updateinfo_h updateinfo_handle, const char *pkgid)
+ * @brief      This API sets given pkgid into handle
  *
+ * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to package info handle
- * @param[out] path            pointer to hold root path of package
+ * @param[in]  handle  pointer to package update info handle
+ * @param[in]  pkgid   package id
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
  * @code
-static int get_root_path(const char *pkgid)
+static int set_pkgid_to_handle(pkgmgrinfo_updateinfo_h handle, const char *pkgid)
 {
        int ret = 0;
-       char *path = 0;
-       pkgmgrinfo_pkginfo_h handle;
-       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
-       if (ret != PMINFO_R_OK)
-               return -1;
 
-       ret = pkgmgrinfo_pkginfo_get_root_path(handle, &path);
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+       ret = pkgmgrinfo_updateinfo_set_pkgid(handle, pkgid);
+       if (ret != PMINFO_R_OK)
                return -1;
-       }
-       printf("path : %s\n", path);
-       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
-
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_get_root_path(pkgmgrinfo_pkginfo_h handle, char **path);
-
+int pkgmgrinfo_updateinfo_set_pkgid(pkgmgrinfo_updateinfo_h updateinfo_handle, const char *pkgid);
 
 /**
- * @fn int pkgmgrinfo_pkginfo_get_csc_path(pkgmgrinfo_pkginfo_h handle, char **path)
- * @brief      This API gets the csc path of package
+ * @fn int pkgmgrinfo_updateinfo_set_version(pkgmgrinfo_updateinfo_h updateinfo_handle, const char *version)
+ * @brief      This API sets given version into handle
  *
+ * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to package info handle
- * @param[out] path            pointer to hold csc path of package
+ * @param[in]  handle  pointer to package update info handle
+ * @param[in]  version update version
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
  * @code
-static int get_csc_path(const char *pkgid)
+static int set_version_to_handle(pkgmgrinfo_updateinfo_h handle, const char *version)
 {
        int ret = 0;
-       char *path = 0;
-       pkgmgrinfo_pkginfo_h handle;
-       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
-       if (ret != PMINFO_R_OK)
-               return -1;
 
-       ret = pkgmgrinfo_pkginfo_get_csc_path(handle, &path);
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+       ret = pkgmgrinfo_updateinfo_set_version(handle, version);
+       if (ret != PMINFO_R_OK)
                return -1;
-       }
-       printf("path : %s\n", path);
-       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
-
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_get_csc_path(pkgmgrinfo_pkginfo_h handle, char **path);
+int pkgmgrinfo_updateinfo_set_version(pkgmgrinfo_updateinfo_h updateinfo_handle, const char *version);
 
 /**
- * @fn int pkgmgrinfo_pkginfo_compare_pkg_cert_info(const char *lhs_package_id, const char *rhs_package_id, pkgmgrinfo_cert_compare_result_type_e *compare_result)
- * @brief      This API compare the cert information from given package id
+ * @fn int pkgmgrinfo_updateinfo_set_type(pkgmgrinfo_updateinfo_h updateinfo_handle, pkgmgrinfo_updateinfo_update_type type)
+ * @brief      This API sets given update type into handle
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in]  lhs_package_id  pointer to first package ID
- * @param[in]  rhs_package_id  pointer to second package ID
- * @param[out] compare_result          pointer to the compare result.
+ * @param[in]  handle  pointer to package update info handle
+ * @param[in]  type    update type
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                None
- * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
- * @see                pkgmgrinfo_pkginfo_get_pkgid()
- * @see                pkgmgrinfo_pkginfo_is_removable()
  * @code
-static int compare_pkg_cert_info(const char *lhs_package_id, const char *rhs_package_id, pkgmgrinfo_cert_compare_result_type_e *compare_result)
+static int set_type_to_handle(pkgmgrinfo_updateinfo_h handle, pkgmgrinfo_updateinfo_update_type type)
 {
        int ret = 0;
-       pkgmgrinfo_cert_compare_result_type_e result;
 
-       ret = pkgmgrinfo_pkginfo_compare_pkg_cert_info(lhs_package_id, rhs_package_id, &result);
-       if (ret != PMINFO_R_OK) {
+       ret = pkgmgrinfo_updateinfo_set_type(handle, type);
+       if (ret != PMINFO_R_OK)
                return -1;
-       }
-       printf("result: %d\n", result);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_compare_pkg_cert_info(const char *lhs_package_id, const char *rhs_package_id, pkgmgrinfo_cert_compare_result_type_e *compare_result);
-int pkgmgrinfo_pkginfo_compare_usr_pkg_cert_info(const char *lhs_package_id, const char *rhs_package_id, uid_t uid, pkgmgrinfo_cert_compare_result_type_e *compare_result);
+int pkgmgrinfo_updateinfo_set_type(pkgmgrinfo_updateinfo_h updateinfo_handle, pkgmgrinfo_updateinfo_update_type type);
+
 /**
- * @fn int pkgmgrinfo_pkginfo_compare_app_cert_info(const char *lhs_app_id, const char *rhs_app_id, pkgmgrinfo_cert_compare_result_type_e *compare_result)
- * @brief      This API compare the cert information from given app id
+ * @fn int pkgmgrinfo_updateinfo_get_pkgid(pkgmgrinfo_updateinfo_h update_handle, char **pkgid)
+ * @brief      This API retrieves the pkgid from given update info
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in]  lhs_app_id      pointer to first app ID
- * @param[in]  rhs_app_id      pointer to second app ID
- * @param[out] compare_result          pointer to the compare result.
+ * @param[in]  handle  pointer to package update info handle
+ * @param[out] pkgid   package id
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                None
- * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
- * @see                pkgmgrinfo_pkginfo_get_pkgid()
- * @see                pkgmgrinfo_pkginfo_is_removable()
  * @code
-static int compare_app_cert_info(const char *lhs_app_id, const char *rhs_app_id, pkgmgrinfo_cert_compare_result_type_e *compare_result)
+static int get_pkgid_from_handle(pkgmgrinfo_updateinfo_h handle)
 {
        int ret = 0;
-       pkgmgrinfo_cert_compare_result_type_e result;
+       char *pkgid;
 
-       ret = pkgmgrinfo_pkginfo_compare_app_cert_info(lhs_app_id, rhs_app_id, &result);
-       if (ret != PMINFO_R_OK) {
+       ret = pkgmgrinfo_updateinfo_get_pkgid(handle, &pkgid);
+       if (ret != PMINFO_R_OK)
                return -1;
-       }
-       printf("result: %d\n", result);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_compare_app_cert_info(const char *lhs_app_id, const char *rhs_app_id, pkgmgrinfo_cert_compare_result_type_e *compare_result);
-int pkgmgrinfo_pkginfo_compare_usr_app_cert_info(const char *lhs_app_id, const char *rhs_app_id, uid_t uid, pkgmgrinfo_cert_compare_result_type_e *compare_result);
+int pkgmgrinfo_updateinfo_get_pkgid(pkgmgrinfo_updateinfo_h update_handle, char **pkgid);
+
 /**
- * @fn int pkgmgrinfo_pkginfo_is_removable(pkgmgrinfo_pkginfo_h handle, bool *removable)
- * @brief      This API gets the package 'removable' value from the package ID
+ * @fn int pkgmgrinfo_updateinfo_get_version(pkgmgrinfo_updateinfo_h updateinfo_handle, char **version)
+ * @brief      This API retrieves the version from given update info
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in]  handle  pointer to package info handle
- * @param[out] removable               pointer to hold package removable value
+ * @param[in]  handle  pointer to package update info handle
+ * @param[out] version update version
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
- * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
- * @see                pkgmgrinfo_pkginfo_get_pkgid()
- * @see                pkgmgrinfo_pkginfo_is_readonly()
  * @code
-static int get_pkg_removable(const char *pkgid)
+static int get_version_from_handle(pkgmgrinfo_updateinfo_h handle)
 {
        int ret = 0;
-       bool removable;
-       pkgmgrinfo_pkginfo_h handle;
-       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
+       char *version;
+
+       ret = pkgmgrinfo_updateinfo_get_version(handle, &version);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_is_removable(handle, &removable);
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
-               return -1;
-       }
-       printf("pkg removable: %d\n", removable);
-       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_is_removable(pkgmgrinfo_pkginfo_h handle, bool *removable);
+int pkgmgrinfo_updateinfo_get_version(pkgmgrinfo_updateinfo_h updateinfo_handle, char **version);
 
 /**
- * @fn int pkgmgrinfo_pkginfo_is_movable(pkgmgrinfo_pkginfo_h handle, bool *movable)
- * @brief      This API check that the package can move internal storage to external storage or external storage to internal storage from the package ID
+ * @fn int pkgmgrinfo_updateinfo_get_update_type(pkgmgrinfo_updateinfo_h updateinfo_handle, pkgmgrinfo_updateinfo_update_type *type)
+ * @brief      This API retrieves the update type from given update info
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in]  handle  pointer to package info handle
- * @param[out] movable         pointer to hold package movable state
+ * @param[in]  handle  pointer to package update info handle
+ * @param[out] type    update type
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
- * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
- * @see                pkgmgrinfo_pkginfo_get_pkgid()
  * @code
-static int get_pkg_movable(const char *pkgid)
+static int get_type_from_handle(pkgmgrinfo_updateinfo_h handle)
 {
        int ret = 0;
-       bool movable;
-       pkgmgrinfo_pkginfo_h handle;
-       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
+       pkgmgrinfo_updateinfo_update_type *type;
+
+       ret = pkgmgrinfo_updateinfo_get_type(handle, &type);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_is_movable(handle, &movable);
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
-               return -1;
-       }
-       printf("pkg movable: %d\n", movable);
-       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_is_movable(pkgmgrinfo_pkginfo_h handle, bool *movable);
+int pkgmgrinfo_updateinfo_get_update_type(pkgmgrinfo_updateinfo_h updateinfo_handle, pkgmgrinfo_updateinfo_update_type *type);
+
 
 /**
- * @fn int pkgmgrinfo_pkginfo_is_preload(pkgmgrinfo_pkginfo_h handle, bool *preload)
- * @brief      This API gets the package 'preload' value from the package ID
+ * @fn int pkgmgrinfo_updateinfo_foreach_updateinfo(pkgmgrinfo_foreach_updateinfo_cb callback, void *user_data)
+ * @brief      This API retrieve the update informations and invoke given callback for it.
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in]  handle  pointer to package info handle
- * @param[out] preload         pointer to hold package preload value
+ * @param[in]  callback        callback to be invoked for each retrieved informations
+ * @param[in]  user_data       user data to be passed to callback
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
- * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
- * @see                pkgmgrinfo_pkginfo_get_pkgid()
- * @see                pkgmgrinfo_pkginfo_is_readonly()
  * @code
-static int get_pkg_preload(const char *pkgid)
+static int foreach_pkg_updateinfo(pkgmgrinfo_foreach_updateinfo_cb callback)
 {
        int ret = 0;
-       bool preload;
-       pkgmgrinfo_pkginfo_h handle;
-       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
+
+       ret = pkgmgrinfo_updateinfo_foreach_updateinfo(callback, NULL);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_is_preload(handle, &preload);
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
-               return -1;
-       }
-       printf("pkg preload: %d\n", preload);
-       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_is_preload(pkgmgrinfo_pkginfo_h handle, bool *preload);
+int pkgmgrinfo_updateinfo_foreach_updateinfo(pkgmgrinfo_foreach_updateinfo_cb callback, void *user_data);
+int pkgmgrinfo_updateinfo_usr_foreach_updateinfo(uid_t uid, pkgmgrinfo_foreach_updateinfo_cb callback, void *user_data);
 
 /**
- * @fn int pkgmgrinfo_pkginfo_is_system(pkgmgrinfo_pkginfo_h handle, bool *system)
- * @brief      This API gets the value for given handle is system or not
+ * @fn int pkgmgrinfo_plugininfo_is_executed(const char *pkgid, const char *appid, const char *plugin_type, const char *plugin_name, bool *is_executed);
+ * @brief      This API checkes whether given plugin had been executed with given package ID and application ID or not.
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in]  handle  pointer to package info handle
- * @param[out] system          pointer to hold  system is or not
+ * @param[in]  pkgid   package ID
+ * @param[in]  appid   application ID
+ * @param[in]  plugin_type     plugin type to be checked
+ * @param[in]  plugin_name     plugin name to be checked
+ * @param[out] is_executed     check result
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
- * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
- * @see                pkgmgrinfo_pkginfo_get_pkgid()
- * @see                pkgmgrinfo_pkginfo_is_readonly()
  * @code
-static int get_pkg_system(const char *pkgid)
+static bool check_execute_info(const char *pkgid, const char *appid, const char *plugin_type, const char *plugin_name)
 {
        int ret = 0;
-       bool system = false;
-       pkgmgrinfo_pkginfo_h handle = NULL;
-       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
+       bool is_executed;
+
+       ret = pkgmgrinfo_plugininfo_is_executed(pkgid, appid, plugin_type, plugin_name, &is_executed);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_is_system(handle, &system);
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+       printf("is checked is [%d]\n", is_executed);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_plugininfo_is_executed(const char *pkgid, const char *appid,
+               const char *plugin_type, const char *plugin_name, bool *is_executed);
+
+/**
+ * @fn int pkgmgrinfo_plugininfo_foreach_plugininfo(const char *pkgid, const char *plugin_type, const char *plugin_name, pkgmgrinfo_plugin_list_cb plugin_list_cb, void *user_data);
+ * @brief      This API retrieve the previous plugin execution info and invoke callbacks each of it.
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  pkgid                   package ID
+ * @param[in]  plugin_type             type of plugin
+ * @param[in]  plugin_name             name of plugin
+ * @param[in]  plugin_list_cb  callback to be invoked for each plugin execution info
+ * @param[out] user_data               user data to be passed to callback
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @code
+static int foreach_pkg_plugininfo(const char *pkgid, const char *plugin_type, const char *plugin_name, pkgmgrinfo_plugin_list_cb callback)
+{
+       int ret = 0;
+
+       ret = pkgmgrinfo_plugininfo_foreach_plugininfo(pkgid, plugin_type, plugin_name, callback, NULL);
+       if (ret != PMINFO_R_OK)
                return -1;
-       }
-       printf("pkg system: %d\n", system);
-       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_is_system(pkgmgrinfo_pkginfo_h handle, bool *system);
+int pkgmgrinfo_plugininfo_foreach_plugininfo(const char *pkgid,
+               const char *plugin_type, const char *plugin_name,
+               pkgmgrinfo_plugin_list_cb plugin_list_cb, void *user_data);
 
 /**
- * @fn int pkgmgrinfo_pkginfo_is_readonly(pkgmgrinfo_pkginfo_h handle, bool *readonly)
- * @brief      This API gets the package 'readonly' value from the package ID
+ * @fn int pkgmgrinfo_appinfo_get_launch_mode(pkgmgrinfo_appinfo_h handle, char **mode)
+ * @brief      This API gets the launch mode of package from the package ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
  * @param[in]  handle  pointer to package info handle
- * @param[out] readonly        pointer to hold package readonly value
+ * @param[out] mode            pointer to hold launch mode of package
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
@@ -1588,37 +1436,36 @@ int pkgmgrinfo_pkginfo_is_system(pkgmgrinfo_pkginfo_h handle, bool *system);
  * @see                pkgmgrinfo_pkginfo_get_pkgid()
  * @see                pkgmgrinfo_pkginfo_is_removable()
  * @code
-static int get_pkg_readonly(const char *pkgid)
+static int get_pkg_launch_mode(const char *pkgid)
 {
        int ret = 0;
-       bool readonly;
+       char *launch_mode = NULL;
        pkgmgrinfo_pkginfo_h handle;
        ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_is_readonly(handle, &readonly);
+       ret = pkgmgrinfo_pkginfo_get_launch_mode(handle, &mode);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
                return -1;
        }
-       printf("pkg readonly: %d\n", readonly);
+       printf("launch mode: %s\n", mode);
        pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_is_readonly(pkgmgrinfo_pkginfo_h handle, bool *readonly);
-
+int pkgmgrinfo_appinfo_get_launch_mode(pkgmgrinfo_appinfo_h handle, char **mode);
 
 /**
- * @fn int pkgmgrinfo_pkginfo_is_update(pkgmgrinfo_pkginfo_h handle, bool *update)
- * @brief      This API gets the package 'upate' value from the package ID
+ * @fn int pkgmgrinfo_pkginfo_get_storeclientid(pkgmgrinfo_pkginfo_h handle, char **storeclientid)
+ * @brief      This API gets the store client id of package from the package ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
  * @param[in]  handle  pointer to package info handle
- * @param[out] update  pointer to hold package update value
+ * @param[out] storeclientid           pointer to hold store client id of package
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
@@ -1626,53 +1473,38 @@ int pkgmgrinfo_pkginfo_is_readonly(pkgmgrinfo_pkginfo_h handle, bool *readonly);
  * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
  * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
  * @see                pkgmgrinfo_pkginfo_get_pkgid()
+ * @see                pkgmgrinfo_pkginfo_is_removable()
  * @code
-static int get_pkg_update(const char *pkgid)
+static int get_pkg_storeclientid(const char *pkgid)
 {
        int ret = 0;
-       bool update;
+       char *storeclientid = 0;
        pkgmgrinfo_pkginfo_h handle;
        ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_is_update(handle, &update);
+       ret = pkgmgrinfo_pkginfo_get_storeclientid(handle, &storeclientid);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
                return -1;
        }
-       printf("pkg update: %d\n", update);
+       printf(store client id: %s\n", storeclientid);
        pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_is_update(pkgmgrinfo_pkginfo_h handle, bool *update);
-
-
-/**
- * @fn int pkgmgrinfo_pkginfo_is_global(uid_t uid, const char *pkgid)
- * @brief      This API gets the package 'uid' value from the view table of user database
- *
- * @par                This API is for package-manager client application
- * @par Sync (or) Async : Synchronous API
- *
- * @param[in]  uid     uid of the user to determine the database
- * @param[in]  pkgid   id of the current package
- * @return     1 if it a global package, 0 else
- */
-
-int pkgmgrinfo_pkginfo_is_global(uid_t uid, const char *pkgid);
-
+int pkgmgrinfo_pkginfo_get_storeclientid(pkgmgrinfo_pkginfo_h handle, char **storeclientid);
 
 /**
- * @fn int pkgmgrinfo_pkginfo_is_accessible(pkgmgrinfo_pkginfo_h handle, bool *accessible)
- * @brief      This API gets the package 'accessible' value from the package ID
+ * @fn int pkgmgrinfo_pkginfo_get_mainappid(pkgmgrinfo_pkginfo_h handle, char **mainappid)
+ * @brief      This API gets the main app id of package from the package ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
  * @param[in]  handle  pointer to package info handle
- * @param[out] accessible      pointer to hold package accessible value
+ * @param[out] mainappid               pointer to hold main app id of package
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
@@ -1680,793 +1512,1602 @@ int pkgmgrinfo_pkginfo_is_global(uid_t uid, const char *pkgid);
  * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
  * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
  * @see                pkgmgrinfo_pkginfo_get_pkgid()
- * @see                pkgmgrinfo_pkginfo_is_readonly()
+ * @see                pkgmgrinfo_pkginfo_is_removable()
  * @code
-static int get_pkg_accessible(const char *pkgid)
+static int get_pkg_mainappid(const char *pkgid)
 {
        int ret = 0;
-       bool accessible;
+       char *mainappid = 0;
        pkgmgrinfo_pkginfo_h handle;
        ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_is_accessible(handle, &accessible);
+       ret = pkgmgrinfo_pkginfo_get_mainappid(handle, &mainappid);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
                return -1;
        }
-       printf("pkg accessible: %d\n", accessible);
+       printf(main app id: %s\n", mainappid);
        pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_is_accessible(pkgmgrinfo_pkginfo_h handle, bool *accessible);
+int pkgmgrinfo_pkginfo_get_mainappid(pkgmgrinfo_pkginfo_h handle, char **mainappid);
 
 /**
- * @fn int pkgmgrinfo_pkginfo_destroy_pkginfo(pkgmgrinfo_pkginfo_h handle)
- * @brief      This API destroys the package information handle freeing up all the resources
+ * @fn int pkgmgrinfo_pkginfo_get_url(pkgmgrinfo_pkginfo_h handle, char **url)
+ * @brief      This API gets the url of package from the package ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in]  handle  pointer to the package info handle
+ * @param[in]  handle  pointer to package info handle
+ * @param[out] url             pointer to hold url of package
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
  * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
- * @post               None
+ * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
  * @see                pkgmgrinfo_pkginfo_get_pkgid()
  * @see                pkgmgrinfo_pkginfo_is_removable()
  * @code
-static int get_pkg_type(const char *pkgid)
+static int get_pkg_url(const char *pkgid)
 {
        int ret = 0;
-       char *type = NULL;
+       char *url = 0;
        pkgmgrinfo_pkginfo_h handle;
        ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_get_type(handle, &type);
+       ret = pkgmgrinfo_pkginfo_get_url(handle, &url);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
                return -1;
        }
-       printf("pkgtype: %s\n", type);
+       printf("url : %s\n", url);
        pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_destroy_pkginfo(pkgmgrinfo_pkginfo_h handle);
+int pkgmgrinfo_pkginfo_get_url(pkgmgrinfo_pkginfo_h handle, char **url);
 
 /**
- * @fn int pkgmgrinfo_pkginfo_filter_create(pkgmgrinfo_pkginfo_filter_h *handle)
- * @brief      This API creates the package information filter handle from db.  All filter properties will be ANDed.
- The query will search the entire package information collected from the manifest file of all the installed packages
+ * @fn int pkgmgrinfo_pkginfo_get_root_path(pkgmgrinfo_pkginfo_h handle, char **path)
+ * @brief      This API gets the root path of package
  *
- * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[out] handle          pointer to the package info filter handle.
+ * @param[in] handle           pointer to package info handle
+ * @param[out] path            pointer to hold root path of package
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                None
- * @post               pkgmgrinfo_pkginfo_filter_destroy()
- * @see                pkgmgrinfo_pkginfo_filter_count()
- * @see                pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
  * @code
-static int get_rpm_pkg_count()
+static int get_root_path(const char *pkgid)
 {
        int ret = 0;
-       int count = 0;
-       pkgmgrinfo_pkginfo_filter_h handle;
-       ret = pkgmgrinfo_pkginfo_filter_create(&handle);
+       char *path = 0;
+       pkgmgrinfo_pkginfo_h handle;
+       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "rpm");
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_filter_destroy(handle);
-               return -1;
-       }
-       ret = pkgmgrinfo_pkginfo_filter_count(handle, &count);
+
+       ret = pkgmgrinfo_pkginfo_get_root_path(handle, &path);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_filter_destroy(handle);
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
                return -1;
        }
-       printf("No of rpm pkgs: %d\n", count);
-       pkgmgrinfo_pkginfo_filter_destroy(handle);
+       printf("path : %s\n", path);
+       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_filter_create(pkgmgrinfo_pkginfo_filter_h *handle);
+int pkgmgrinfo_pkginfo_get_root_path(pkgmgrinfo_pkginfo_h handle, char **path);
+
 
 /**
- * @fn int pkgmgrinfo_pkginfo_filter_destroy(pkgmgrinfo_pkginfo_filter_h handle)
- * @brief      This API destroys the package information filter handle freeing up all the resources
+ * @fn int pkgmgrinfo_pkginfo_get_csc_path(pkgmgrinfo_pkginfo_h handle, char **path)
+ * @brief      This API gets the csc path of package
  *
- * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the package info filter handle.
+ * @param[in] handle           pointer to package info handle
+ * @param[out] path            pointer to hold csc path of package
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_pkginfo_filter_create()
- * @post               None
- * @see                pkgmgrinfo_pkginfo_filter_count()
- * @see                pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
  * @code
-static int get_rpm_pkg_count()
+static int get_csc_path(const char *pkgid)
 {
        int ret = 0;
-       int count = 0;
-       pkgmgrinfo_pkginfo_filter_h handle;
-       ret = pkgmgrinfo_pkginfo_filter_create(&handle);
+       char *path = 0;
+       pkgmgrinfo_pkginfo_h handle;
+       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "rpm");
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_filter_destroy(handle);
-               return -1;
-       }
-       ret = pkgmgrinfo_pkginfo_filter_count(handle, &count);
+
+       ret = pkgmgrinfo_pkginfo_get_csc_path(handle, &path);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_filter_destroy(handle);
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
                return -1;
        }
-       printf("No of rpm pkgs: %d\n", count);
-       pkgmgrinfo_pkginfo_filter_destroy(handle);
+       printf("path : %s\n", path);
+       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_filter_destroy(pkgmgrinfo_pkginfo_filter_h handle);
+int pkgmgrinfo_pkginfo_get_csc_path(pkgmgrinfo_pkginfo_h handle, char **path);
 
 /**
- * @fn int pkgmgrinfo_pkginfo_filter_add_bool(pkgmgrinfo_pkginfo_filter_h handle, const char *property, const bool value)
- * @brief      This API adds a boolean filter property to the filter handle
+ * @fn int pkgmgrinfo_pkginfo_get_support_mode(pkgmgrinfo_pkginfo_h handle, int *support_mode)
+ * @brief      This API gets the support_mode of package
  *
- * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the package info filter handle.
- * @param[in] property         boolean property name.
- * @param[in] value            value corresponding to the property.
+ * @param[in] handle           pointer to package info handle
+ * @param[out] support_mode            pointer to hold support_mode of package
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_pkginfo_filter_create()
- * @post               pkgmgrinfo_pkginfo_filter_destroy()
- * @see                pkgmgrinfo_pkginfo_filter_count()
- * @see                pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
  * @code
-static int get_preload_pkg_count()
+static int get_support_mode(const char *pkgid)
 {
        int ret = 0;
-       int count = 0;
-       pkgmgrinfo_pkginfo_filter_h handle;
-       ret = pkgmgrinfo_pkginfo_filter_create(&handle);
+       int support_mode = 0;
+       pkgmgrinfo_pkginfo_h handle = NULL;
+       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_filter_add_bool(handle, PMINFO_PKGINFO_PROP_PACKAGE_PRELOAD, 1);
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_filter_destroy(handle);
-               return -1;
-       }
-       ret = pkgmgrinfo_pkginfo_filter_count(handle, &count);
+
+       ret = pkgmgrinfo_pkginfo_get_support_mode(handle, &support_mode);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_filter_destroy(handle);
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
                return -1;
        }
-       printf("No of preload pkgs: %d\n", count);
-       pkgmgrinfo_pkginfo_filter_destroy(handle);
+       printf("support_mode : %s\n", support_mode);
+       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_filter_add_bool(pkgmgrinfo_pkginfo_filter_h handle,
-               const char *property, const bool value);
+int pkgmgrinfo_pkginfo_get_support_mode(pkgmgrinfo_pkginfo_h handle, int *support_mode);
 
 /**
- * @fn int pkgmgrinfo_pkginfo_filter_add_int(pkgmgrinfo_pkginfo_filter_h handle, const char *property, const int value)
- * @brief      This API adds an integer filter property to the filter handle
+ * @fn int pkgmgrinfo_pkginfo_compare_pkg_cert_info(const char *lhs_package_id, const char *rhs_package_id, pkgmgrinfo_cert_compare_result_type_e *compare_result)
+ * @brief      This API compare the cert information from given package id
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the package info filter handle.
- * @param[in] property         integer property name.
- * @param[in] value            value corresponding to the property.
+ * @param[in]  lhs_package_id  pointer to first package ID
+ * @param[in]  rhs_package_id  pointer to second package ID
+ * @param[out] compare_result          pointer to the compare result.
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_pkginfo_filter_create()
- * @post               pkgmgrinfo_pkginfo_filter_destroy()
- * @see                pkgmgrinfo_pkginfo_filter_count()
- * @see                pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
+ * @pre                None
+ * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
+ * @see                pkgmgrinfo_pkginfo_get_pkgid()
+ * @see                pkgmgrinfo_pkginfo_is_removable()
  * @code
-static int get_pkg_count()
+static int compare_pkg_cert_info(const char *lhs_package_id, const char *rhs_package_id, pkgmgrinfo_cert_compare_result_type_e *compare_result)
 {
        int ret = 0;
-       int count = 0;
-       pkgmgrinfo_pkginfo_filter_h handle;
-       ret = pkgmgrinfo_pkginfo_filter_create(&handle);
-       if (ret != PMINFO_R_OK)
-               return -1;
-       ret = pkgmgrinfo_pkginfo_filter_add_int(handle, PMINFO_PKGINFO_PROP_PACKAGE_SIZE, 10);
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_filter_destroy(handle);
-               return -1;
-       }
-       ret = pkgmgrinfo_pkginfo_filter_count(handle, &count);
+       pkgmgrinfo_cert_compare_result_type_e result;
+
+       ret = pkgmgrinfo_pkginfo_compare_pkg_cert_info(lhs_package_id, rhs_package_id, &result);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_filter_destroy(handle);
                return -1;
        }
-       printf("No of preload pkgs: %d\n", count);
-       pkgmgrinfo_pkginfo_filter_destroy(handle);
+       printf("result: %d\n", result);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_filter_add_int(pkgmgrinfo_pkginfo_filter_h handle,
-               const char *property, const int value);
-
+int pkgmgrinfo_pkginfo_compare_pkg_cert_info(const char *lhs_package_id, const char *rhs_package_id, pkgmgrinfo_cert_compare_result_type_e *compare_result);
+int pkgmgrinfo_pkginfo_compare_usr_pkg_cert_info(const char *lhs_package_id, const char *rhs_package_id, uid_t uid, pkgmgrinfo_cert_compare_result_type_e *compare_result);
 /**
- * @fn int pkgmgrinfo_pkginfo_filter_add_string(pkgmgrinfo_pkginfo_filter_h handle, const char *property, const char *value)
- * @brief      This API adds a string filter property to the filter handle
+ * @fn int pkgmgrinfo_pkginfo_compare_app_cert_info(const char *lhs_app_id, const char *rhs_app_id, pkgmgrinfo_cert_compare_result_type_e *compare_result)
+ * @brief      This API compare the cert information from given app id
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the package info filter handle.
- * @param[in] property         string property name.
- * @param[in] value            value corresponding to the property.
+ * @param[in]  lhs_app_id      pointer to first app ID
+ * @param[in]  rhs_app_id      pointer to second app ID
+ * @param[out] compare_result          pointer to the compare result.
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_pkginfo_filter_create()
- * @post               pkgmgrinfo_pkginfo_filter_destroy()
- * @see                pkgmgrinfo_pkginfo_filter_count()
- * @see                pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
+ * @pre                None
+ * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
+ * @see                pkgmgrinfo_pkginfo_get_pkgid()
+ * @see                pkgmgrinfo_pkginfo_is_removable()
  * @code
-static int get_rpm_pkg_count()
+static int compare_app_cert_info(const char *lhs_app_id, const char *rhs_app_id, pkgmgrinfo_cert_compare_result_type_e *compare_result)
 {
        int ret = 0;
-       int count = 0;
-       pkgmgrinfo_pkginfo_filter_h handle;
-       ret = pkgmgrinfo_pkginfo_filter_create(&handle);
-       if (ret != PMINFO_R_OK)
-               return -1;
-       ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "rpm");
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_filter_destroy(handle);
-               return -1;
-       }
-       ret = pkgmgrinfo_pkginfo_filter_count(handle, &count);
+       pkgmgrinfo_cert_compare_result_type_e result;
+
+       ret = pkgmgrinfo_pkginfo_compare_app_cert_info(lhs_app_id, rhs_app_id, &result);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_filter_destroy(handle);
                return -1;
        }
-       printf("No of rpm pkgs: %d\n", count);
-       pkgmgrinfo_pkginfo_filter_destroy(handle);
+       printf("result: %d\n", result);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_filter_add_string(pkgmgrinfo_pkginfo_filter_h handle,
-               const char *property, const char *value);
-
+int pkgmgrinfo_pkginfo_compare_app_cert_info(const char *lhs_app_id, const char *rhs_app_id, pkgmgrinfo_cert_compare_result_type_e *compare_result);
+int pkgmgrinfo_pkginfo_compare_usr_app_cert_info(const char *lhs_app_id, const char *rhs_app_id, uid_t uid, pkgmgrinfo_cert_compare_result_type_e *compare_result);
 /**
- * @fn int pkgmgrinfo_pkginfo_filter_foreach_pkginfo(pkgmgrinfo_pkginfo_filter_h handle, pkgmgrinfo_pkg_list_cb pkg_cb, void *user_data)
- * @brief      This API executes the user supplied callback function for each package that satisfy the filter conditions
+ * @fn int pkgmgrinfo_pkginfo_is_removable(pkgmgrinfo_pkginfo_h handle, bool *removable)
+ * @brief      This API gets the package 'removable' value from the package ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the package info filter handle.
- * @param[in] pkg_cb           callback function.
- * @param[in] user_data                user data to be passed to the callback function
+ * @param[in]  handle  pointer to package info handle
+ * @param[out] removable               pointer to hold package removable value
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_pkginfo_filter_create()
- * @post               pkgmgrinfo_pkginfo_filter_destroy()
- * @see                pkgmgrinfo_pkginfo_filter_count()
+ * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
+ * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
+ * @see                pkgmgrinfo_pkginfo_get_pkgid()
+ * @see                pkgmgrinfo_pkginfo_is_readonly()
  * @code
-int pkg_list_cb(pkgmgrinfo_pkginfo_h handle, void *user_data)
-{
-       char *pkgid = NULL;
-       pkgmgrinfo_pkginfo_get_pkgid(handle, &pkgid);
-       printf("pkg id : %s\n", pkgid);
-       return 0;
-}
-
-static int get_rpm_pkg_list()
+static int get_pkg_removable(const char *pkgid)
 {
        int ret = 0;
-       pkgmgrinfo_pkginfo_filter_h handle;
-       ret = pkgmgrinfo_pkginfo_filter_create(&handle);
+       bool removable;
+       pkgmgrinfo_pkginfo_h handle;
+       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "rpm");
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_filter_destroy(handle);
-               return -1;
-       }
-       ret = pkgmgrinfo_pkginfo_filter_foreach_pkginfo(handle, pkg_list_cb, NULL);
+       ret = pkgmgrinfo_pkginfo_is_removable(handle, &removable);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_filter_destroy(handle);
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
                return -1;
        }
-       pkgmgrinfo_pkginfo_filter_destroy(handle);
+       printf("pkg removable: %d\n", removable);
+       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_filter_foreach_pkginfo(pkgmgrinfo_pkginfo_filter_h handle,
-               pkgmgrinfo_pkg_list_cb pkg_cb, void *user_data);
-int pkgmgrinfo_pkginfo_usr_filter_foreach_pkginfo(pkgmgrinfo_pkginfo_filter_h handle,
-               pkgmgrinfo_pkg_list_cb pkg_cb, void *user_data, uid_t uid);
+int pkgmgrinfo_pkginfo_is_removable(pkgmgrinfo_pkginfo_h handle, bool *removable);
 
 /**
- * @fn int pkgmgrinfo_pkginfo_filter_count(pkgmgrinfo_pkginfo_filter_h handle, int *count)
- * @fn int pkgmgrinfo_pkginfo_usr_filter_count(pkgmgrinfo_pkginfo_filter_h handle, int *count, uid_t uid)
- * @brief      This API counts the package that satisfy the filter conditions
+ * @fn int pkgmgrinfo_pkginfo_is_movable(pkgmgrinfo_pkginfo_h handle, bool *movable)
+ * @brief      This API check that the package can move internal storage to external storage or external storage to internal storage from the package ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the package info filter handle.
- * @param[in] count            pointer to store the count value.
- * @param[in]  uid     the addressee user id of the instruction
+ * @param[in]  handle  pointer to package info handle
+ * @param[out] movable         pointer to hold package movable state
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_pkginfo_filter_create()
- * @post               pkgmgrinfo_pkginfo_filter_destroy()
- * @see                pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
+ * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
+ * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
+ * @see                pkgmgrinfo_pkginfo_get_pkgid()
  * @code
-static int get_rpm_pkg_count()
+static int get_pkg_movable(const char *pkgid)
 {
        int ret = 0;
-       int count = 0;
-       pkgmgrinfo_pkginfo_filter_h handle;
-       ret = pkgmgrinfo_pkginfo_filter_create(&handle);
+       bool movable;
+       pkgmgrinfo_pkginfo_h handle;
+       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "rpm");
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_filter_destroy(handle);
-               return -1;
-       }
-       ret = pkgmgrinfo_pkginfo_filter_count(handle, &count);
+       ret = pkgmgrinfo_pkginfo_is_movable(handle, &movable);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_filter_destroy(handle);
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
                return -1;
        }
-       printf("No of rpm pkgs: %d\n", count);
-       pkgmgrinfo_pkginfo_filter_destroy(handle);
+       printf("pkg movable: %d\n", movable);
+       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_filter_count(pkgmgrinfo_pkginfo_filter_h handle, int *count);
-int pkgmgrinfo_pkginfo_usr_filter_count(pkgmgrinfo_pkginfo_filter_h handle, int *count, uid_t uid);
+int pkgmgrinfo_pkginfo_is_movable(pkgmgrinfo_pkginfo_h handle, bool *movable);
+
 /**
- * @fn int pkgmgrinfo_pkginfo_foreach_privilege(pkgmgrinfo_pkginfo_h handle,
-                       pkgmgrinfo_pkg_privilege_list_cb privilege_func, void *user_data);
- * @brief      This API gets the list of privilege for a particular package
+ * @fn int pkgmgrinfo_pkginfo_is_preload(pkgmgrinfo_pkginfo_h handle, bool *preload)
+ * @brief      This API gets the package 'preload' value from the package ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
- * @param[in]  handle          pointer to the package info handle.
- * @param[in]  privilege_func          callback function for list
- * @param[in] user_data        user data to be passed to callback function
+ *
+ * @param[in]  handle  pointer to package info handle
+ * @param[out] preload         pointer to hold package preload value
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
  * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
  * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
+ * @see                pkgmgrinfo_pkginfo_get_pkgid()
+ * @see                pkgmgrinfo_pkginfo_is_readonly()
  * @code
-int privilege_func(const char *name, void *user_data)
-{
-       if (strcmp(name, (char *)user_data) == 0)
-               return -1;
-       else
-               return 0;
-}
-
-static int list_privilege(const char *package, char *privilege)
+static int get_pkg_preload(const char *pkgid)
 {
        int ret = 0;
+       bool preload;
        pkgmgrinfo_pkginfo_h handle;
-       ret = pkgmgrinfo_pkginfo_get_pkginfo(package, &handle);
+       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_foreach_privilege(handle, privilege_func, (void *)privilege);
+       ret = pkgmgrinfo_pkginfo_is_preload(handle, &preload);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
                return -1;
        }
+       printf("pkg preload: %d\n", preload);
        pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_foreach_privilege(pkgmgrinfo_pkginfo_h handle,
-                       pkgmgrinfo_pkg_privilege_list_cb privilege_func, void *user_data);
-
-/* TODO: add doxygen comment here */
-int pkgmgrinfo_pkginfo_get_size_from_xml(const char *manifest, int *size);
-int pkgmgrinfo_pkginfo_get_location_from_xml(const char *manifest, pkgmgrinfo_install_location *location);
-int pkgmgrinfo_pkginfo_is_for_all_users(pkgmgrinfo_pkginfo_h handle, bool *for_all_users);
-int pkgmgrinfo_appinfo_set_state_enabled(const char *appid, bool enabled);
-int pkgmgrinfo_appinfo_set_usr_state_enabled(const char *appid, bool enabled, uid_t uid);
-int pkgmgrinfo_appinfo_set_default_label(const char *appid, const char *label);
-int pkgmgrinfo_appinfo_set_usr_default_label(const char *appid, const char *label, uid_t uid);
+int pkgmgrinfo_pkginfo_is_preload(pkgmgrinfo_pkginfo_h handle, bool *preload);
 
 /**
- * @fn int pkgmgrinfo_appinfo_get_list(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_app_component component,
- pkgmgrinfo_app_list_cb app_func, void *user_data)
- * @brief      This API gets list of installed applications for a particular package
+ * @fn int pkgmgrinfo_pkginfo_is_system(pkgmgrinfo_pkginfo_h handle, bool *system)
+ * @brief      This API gets the value for given handle is system or not
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
- * @param[in]  handle          package info handle
- * @param[in]  component       application component
- * @param[in]  app_func                iteration function for list
- * @param[in] user_data        user data to be passed to callback function
+ *
+ * @param[in]  handle  pointer to package info handle
+ * @param[out] system          pointer to hold  system is or not
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
  * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
  * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
+ * @see                pkgmgrinfo_pkginfo_get_pkgid()
+ * @see                pkgmgrinfo_pkginfo_is_readonly()
  * @code
-int app_func(pkgmgrinfo_appinfo_h handle, void *user_data)
-{
-       char *appid = NULL;
-       pkgmgrinfo_appinfo_get_appid(handle, &appid);
-       printf("appid : %s\n", appid);
-       return 0;
-}
-
-static int list_apps(const char *pkgid)
+static int get_pkg_system(const char *pkgid)
 {
        int ret = 0;
-       pkgmgrinfo_pkginfo_h handle;
+       bool system = false;
+       pkgmgrinfo_pkginfo_h handle = NULL;
        ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_get_list(handle, PMINFO_UI_APP, app_func, NULL);
+       ret = pkgmgrinfo_pkginfo_is_system(handle, &system);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
                return -1;
        }
+       printf("pkg system: %d\n", system);
        pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_get_list(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_app_component component,
-                                                       pkgmgrinfo_app_list_cb app_func, void *user_data);
-int pkgmgrinfo_appinfo_get_usr_list(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_app_component component,
-                                                       pkgmgrinfo_app_list_cb app_func, void *user_data, uid_t uid);
+int pkgmgrinfo_pkginfo_is_system(pkgmgrinfo_pkginfo_h handle, bool *system);
+
 /**
- * @fn int pkgmgrinfo_appinfo_get_install_list(pkgmgrinfo_app_list_cb app_func, void *user_data);
- * @brief      This API gets list of installed applications from all packages with  minimum informaion.
+ * @fn int pkgmgrinfo_pkginfo_is_readonly(pkgmgrinfo_pkginfo_h handle, bool *readonly)
+ * @brief      This API gets the package 'readonly' value from the package ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
- * @param[in]  app_func                iteration function for list
- * @param[in] user_data        user data to be passed to callback function
+ *
+ * @param[in]  handle  pointer to package info handle
+ * @param[out] readonly        pointer to hold package readonly value
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                None
- * @post               None
+ * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
+ * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
+ * @see                pkgmgrinfo_pkginfo_get_pkgid()
+ * @see                pkgmgrinfo_pkginfo_is_removable()
  * @code
-int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
-{
-       char *pkgid1 = NULL;
-       char *pkgid2 = NULL;
-       pkgid1 = (char *)user_data;
-       pkgmgrinfo_appinfo_get_pkgid(handle, &pkgid2);
-       if (strcmp(pkgid1, pkgid2) == 0) {
-               return -1;
-       } else {
-               return 0;
-       }
-}
-
-static int list_apps()
+static int get_pkg_readonly(const char *pkgid)
 {
        int ret = 0;
-       char *name = "helloworld";
-       ret = pkgmgrinfo_appinfo_get_install_list(app_list_cb, (void *)name);
+       bool readonly;
+       pkgmgrinfo_pkginfo_h handle;
+       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_pkginfo_is_readonly(handle, &readonly);
        if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
                return -1;
        }
+       printf("pkg readonly: %d\n", readonly);
+       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_get_install_list(pkgmgrinfo_app_list_cb app_func, void *user_data);
-int pkgmgrinfo_appinfo_get_usr_install_list(pkgmgrinfo_app_list_cb app_func, uid_t uid, void *user_data);
+int pkgmgrinfo_pkginfo_is_readonly(pkgmgrinfo_pkginfo_h handle, bool *readonly);
+
+
 /**
- * @fn int pkgmgrinfo_appinfo_get_installed_list(pkgmgrinfo_app_list_cb app_func, void *user_data);
- * @brief      This API gets list of installed applications from all packages.
+ * @fn int pkgmgrinfo_pkginfo_is_update(pkgmgrinfo_pkginfo_h handle, bool *update)
+ * @brief      This API gets the package 'upate' value from the package ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
- * @param[in]  app_func                iteration function for list
- * @param[in] user_data        user data to be passed to callback function
+ *
+ * @param[in]  handle  pointer to package info handle
+ * @param[out] update  pointer to hold package update value
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                None
- * @post               None
+ * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
+ * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
+ * @see                pkgmgrinfo_pkginfo_get_pkgid()
  * @code
-int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
-{
-       char *pkgid1 = NULL;
-       char *pkgid2 = NULL;
-       pkgid1 = (char *)user_data;
-       pkgmgrinfo_appinfo_get_pkgid(handle, &pkgid2);
-       if (strcmp(pkgid1, pkgid2) == 0) {
-               return -1;
-       } else {
-               return 0;
-       }
-}
-
-static int list_apps()
+static int get_pkg_update(const char *pkgid)
 {
        int ret = 0;
-       char *name = "helloworld";
-       ret = pkgmgrinfo_appinfo_get_installed_list(app_list_cb, (void *)name);
+       bool update;
+       pkgmgrinfo_pkginfo_h handle;
+       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_pkginfo_is_update(handle, &update);
        if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
                return -1;
        }
+       printf("pkg update: %d\n", update);
+       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_get_installed_list(pkgmgrinfo_app_list_cb app_func, void *user_data);
-int pkgmgrinfo_appinfo_get_usr_installed_list(pkgmgrinfo_app_list_cb app_func, uid_t uid, void *user_data);
+int pkgmgrinfo_pkginfo_is_update(pkgmgrinfo_pkginfo_h handle, bool *update);
 
 /**
- * @fn int pkgmgrinfo_appinfo_get_appinfo(const char *appid, pkgmgrinfo_appinfo_h *handle)
- * @brief      This API creates the application information handle from db
+ * @fn int pkgmgrinfo_pkginfo_is_support_disable(pkgmgrinfo_pkginfo_h handle, bool *support_disable)
+ * @brief      This API gets the package 'support_disable' value from the package ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in]  appid   pointer to appid
- * @param[out] handle          pointer to the application info handle.
+ * @param[in]  handle  pointer to package info handle
+ * @param[out] support_disable pointer to hold package support_disable value
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                None
- * @post               pkgmgrinfo_appinfo_destroy_appinfo()
- * @see                pkgmgrinfo_appinfo_get_pkgid()
- * @see                pkgmgrinfo_appinfo_is_multiple()
+ * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
+ * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
+ * @see                pkgmgrinfo_pkginfo_get_pkgid()
  * @code
-static int get_app_type(const char *appid)
+static int get_pkg_support_disable(const char *pkgid)
 {
        int ret = 0;
-       char *type = NULL;
-       pkgmgrinfo_appinfo_h handle;
-       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
+       bool support_disable;
+       pkgmgrinfo_pkginfo_h handle = NULL;
+       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_get_apptype(handle, &type);
+       ret = pkgmgrinfo_pkginfo_is_support_disable(handle, &support_disable);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_destroy_appinfo(handle);
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
                return -1;
        }
-       printf("apptype: %s\n", type);
-       pkgmgrinfo_appinfo_destroy_appinfo(handle);
+       printf("pkg support_disable: %d\n", support_disable);
+       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_get_appinfo(const char *appid, pkgmgrinfo_appinfo_h *handle);
-int pkgmgrinfo_appinfo_get_usr_appinfo(const char *appid, uid_t uid, pkgmgrinfo_appinfo_h *handle);
+int pkgmgrinfo_pkginfo_is_support_disable(pkgmgrinfo_pkginfo_h handle, bool *support_disable);
+
 /**
- * @fn int pkgmgrinfo_appinfo_get_appid(pkgmgrinfo_appinfo_h handle, char **appid)
- * @brief      This API gets the application ID
+ * @fn int pkgmgrinfo_pkginfo_is_global(pkgmgrinfo_pkginfo_h handle, bool *global)
+ * @brief      This API gets whether the given package is global package or user package
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the application info handle.
- * @param[out] appid           pointer to hold appid
+ * @param[in]  handle  pointer to package info handle
+ * @param[in]  global  pointer to hold package global value
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_appinfo_get_appinfo()
- * @post               pkgmgrinfo_appinfo_destroy_appinfo()
- * @see                pkgmgrinfo_appinfo_get_pkgid()
- * @see                pkgmgrinfo_appinfo_is_multiple()
+ * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
+ * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
+ * @see                pkgmgrinfo_pkginfo_get_pkgid()
+ static int get_pkg_support_disable(const char *pkgid)
+ {
+        int ret = 0;
+        bool global;
+        pkgmgrinfo_pkginfo_h handle = NULL;
+        ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
+        if (ret != PMINFO_R_OK)
+                return -1;
+        ret = pkgmgrinfo_pkginfo_is_global(handle, &global);
+        if (ret != PMINFO_R_OK) {
+                pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+                return -1;
+        }
+        printf("pkg is_global: %d\n", global);
+        pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+        return 0;
+ }
+  * @endcode
+  */
+int pkgmgrinfo_pkginfo_is_global(pkgmgrinfo_pkginfo_h handle, bool *global);
+
+/**
+ * @fn int pkgmgrinfo_pkginfo_is_accessible(pkgmgrinfo_pkginfo_h handle, bool *accessible)
+ * @brief      This API gets the package 'accessible' value from the package ID
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  handle  pointer to package info handle
+ * @param[out] accessible      pointer to hold package accessible value
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
+ * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
+ * @see                pkgmgrinfo_pkginfo_get_pkgid()
+ * @see                pkgmgrinfo_pkginfo_is_readonly()
  * @code
-static int get_app_id(const char *appid)
+static int get_pkg_accessible(const char *pkgid)
 {
        int ret = 0;
-       char *app_id = NULL;
-       pkgmgrinfo_appinfo_h handle;
-       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
+       bool accessible;
+       pkgmgrinfo_pkginfo_h handle;
+       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_get_appid(handle, &app_id);
+       ret = pkgmgrinfo_pkginfo_is_accessible(handle, &accessible);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_destroy_appinfo(handle);
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
                return -1;
        }
-       printf("app id: %s\n", app_id);
-       pkgmgrinfo_appinfo_destroy_appinfo(handle);
+       printf("pkg accessible: %d\n", accessible);
+       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_get_appid(pkgmgrinfo_appinfo_h  handle, char **appid);
+int pkgmgrinfo_pkginfo_is_accessible(pkgmgrinfo_pkginfo_h handle, bool *accessible);
 
 /**
- * @fn int pkgmgrinfo_appinfo_get_pkgname(pkgmgrinfo_appinfo_h handle, char **pkg_name)
- * @brief      This API gets the package name of the application
+ * @fn int pkgmgrinfo_pkginfo_destroy_pkginfo(pkgmgrinfo_pkginfo_h handle)
+ * @brief      This API destroys the package information handle freeing up all the resources
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the application info handle.
- * @param[out] pkg_name                pointer to hold package name
+ * @param[in]  handle  pointer to the package info handle
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_appinfo_get_appinfo()
- * @post               pkgmgrinfo_appinfo_destroy_appinfo()
- * @see                pkgmgrinfo_appinfo_get_appid()
- * @see                pkgmgrinfo_appinfo_is_multiple()
+ * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
+ * @post               None
+ * @see                pkgmgrinfo_pkginfo_get_pkgid()
+ * @see                pkgmgrinfo_pkginfo_is_removable()
  * @code
-static int get_app_pkgname(const char *appid)
+static int get_pkg_type(const char *pkgid)
 {
        int ret = 0;
-       char *pkgname = NULL;
-       pkgmgrinfo_appinfo_h handle;
-       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
+       char *type = NULL;
+       pkgmgrinfo_pkginfo_h handle;
+       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_get_pkgname(handle, &pkgname);
+       ret = pkgmgrinfo_pkginfo_get_type(handle, &type);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_destroy_appinfo(handle);
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
                return -1;
        }
-       printf("pkg name: %s\n", pkgname);
-       pkgmgrinfo_appinfo_destroy_appinfo(handle);
+       printf("pkgtype: %s\n", type);
+       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_get_pkgname(pkgmgrinfo_appinfo_h  handle, char **pkg_name);
+int pkgmgrinfo_pkginfo_destroy_pkginfo(pkgmgrinfo_pkginfo_h handle);
 
 /**
- * @fn int pkgmgrinfo_appinfo_get_pkgid(pkgmgrinfo_appinfo_h handle, char **pkgid)
- * @brief      This API gets the package id of the application
+ * @fn int pkgmgrinfo_pkginfo_filter_create(pkgmgrinfo_pkginfo_filter_h *handle)
+ * @brief      This API creates the package information filter handle from db.  All filter properties will be ANDed.
+ The query will search the entire package information collected from the manifest file of all the installed packages
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the application info handle.
- * @param[out] pkgid           pointer to hold package id
+ * @param[out] handle          pointer to the package info filter handle.
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_appinfo_get_appinfo()
- * @post               pkgmgrinfo_appinfo_destroy_appinfo()
- * @see                pkgmgrinfo_appinfo_get_appid()
- * @see                pkgmgrinfo_appinfo_is_multiple()
+ * @pre                None
+ * @post               pkgmgrinfo_pkginfo_filter_destroy()
+ * @see                pkgmgrinfo_pkginfo_filter_count()
+ * @see                pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
  * @code
-static int get_app_pkgid(const char *appid)
+static int get_tpk_pkg_count()
 {
        int ret = 0;
-       char *pkgid = NULL;
-       pkgmgrinfo_appinfo_h handle;
-       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
+       int count = 0;
+       pkgmgrinfo_pkginfo_filter_h handle;
+       ret = pkgmgrinfo_pkginfo_filter_create(&handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_get_pkgid(handle, &pkgid);
+       ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "tpk");
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_destroy_appinfo(handle);
+               pkgmgrinfo_pkginfo_filter_destroy(handle);
                return -1;
        }
-       printf("pkg id: %s\n", pkgid);
-       pkgmgrinfo_appinfo_destroy_appinfo(handle);
+       ret = pkgmgrinfo_pkginfo_filter_count(handle, &count);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_pkginfo_filter_destroy(handle);
+               return -1;
+       }
+       printf("No of tpk pkgs: %d\n", count);
+       pkgmgrinfo_pkginfo_filter_destroy(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_get_pkgid(pkgmgrinfo_appinfo_h  handle, char **pkgid);
+int pkgmgrinfo_pkginfo_filter_create(pkgmgrinfo_pkginfo_filter_h *handle);
 
 /**
- * @fn int pkgmgrinfo_appinfo_get_exec(pkgmgrinfo_appinfo_h handle, char **exec)
- * @brief      This API gets the executable name of the application
+ * @fn int pkgmgrinfo_pkginfo_filter_destroy(pkgmgrinfo_pkginfo_filter_h handle)
+ * @brief      This API destroys the package information filter handle freeing up all the resources
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the application info handle.
- * @param[out] exec            pointer to hold app exec name
+ * @param[in] handle           pointer to the package info filter handle.
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_appinfo_get_appinfo()
- * @post               pkgmgrinfo_appinfo_destroy_appinfo()
- * @see                pkgmgrinfo_appinfo_get_appid()
- * @see                pkgmgrinfo_appinfo_is_multiple()
+ * @pre                pkgmgrinfo_pkginfo_filter_create()
+ * @post               None
+ * @see                pkgmgrinfo_pkginfo_filter_count()
+ * @see                pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
  * @code
-static int get_app_exec(const char *appid)
+static int get_tpk_pkg_count()
 {
        int ret = 0;
-       char *exec = NULL;
-       pkgmgrinfo_appinfo_h handle;
-       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
+       int count = 0;
+       pkgmgrinfo_pkginfo_filter_h handle;
+       ret = pkgmgrinfo_pkginfo_filter_create(&handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_get_exec(handle, &exec);
+       ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "tpk");
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_destroy_appinfo(handle);
+               pkgmgrinfo_pkginfo_filter_destroy(handle);
                return -1;
        }
-       printf("exec name: %s\n", exec);
-       pkgmgrinfo_appinfo_destroy_appinfo(handle);
+       ret = pkgmgrinfo_pkginfo_filter_count(handle, &count);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_pkginfo_filter_destroy(handle);
+               return -1;
+       }
+       printf("No of tpk pkgs: %d\n", count);
+       pkgmgrinfo_pkginfo_filter_destroy(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_get_exec(pkgmgrinfo_appinfo_h  handle, char **exec);
+int pkgmgrinfo_pkginfo_filter_destroy(pkgmgrinfo_pkginfo_filter_h handle);
 
 /**
- * @fn int pkgmgrinfo_appinfo_get_icon(pkgmgrinfo_appinfo_h handle, char **icon)
- * @brief      This API gets the icon name of the application
+ * @fn int pkgmgrinfo_pkginfo_filter_add_bool(pkgmgrinfo_pkginfo_filter_h handle, const char *property, const bool value)
+ * @brief      This API adds a boolean filter property to the filter handle
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the application info handle.
- * @param[out] icon            pointer to hold app icon name
+ * @param[in] handle           pointer to the package info filter handle.
+ * @param[in] property         boolean property name.
+ * @param[in] value            value corresponding to the property.
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_appinfo_get_appinfo()
- * @post               pkgmgrinfo_appinfo_destroy_appinfo()
- * @see                pkgmgrinfo_appinfo_get_appid()
- * @see                pkgmgrinfo_appinfo_is_multiple()
+ * @pre                pkgmgrinfo_pkginfo_filter_create()
+ * @post               pkgmgrinfo_pkginfo_filter_destroy()
+ * @see                pkgmgrinfo_pkginfo_filter_count()
+ * @see                pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
  * @code
-static int get_app_icon(const char *appid)
+static int get_preload_pkg_count()
 {
        int ret = 0;
-       char *icon = NULL;
+       int count = 0;
+       pkgmgrinfo_pkginfo_filter_h handle;
+       ret = pkgmgrinfo_pkginfo_filter_create(&handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_pkginfo_filter_add_bool(handle, PMINFO_PKGINFO_PROP_PACKAGE_PRELOAD, 1);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_pkginfo_filter_destroy(handle);
+               return -1;
+       }
+       ret = pkgmgrinfo_pkginfo_filter_count(handle, &count);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_pkginfo_filter_destroy(handle);
+               return -1;
+       }
+       printf("No of preload pkgs: %d\n", count);
+       pkgmgrinfo_pkginfo_filter_destroy(handle);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_pkginfo_filter_add_bool(pkgmgrinfo_pkginfo_filter_h handle,
+               const char *property, const bool value);
+
+/**
+ * @fn int pkgmgrinfo_pkginfo_filter_add_int(pkgmgrinfo_pkginfo_filter_h handle, const char *property, const int value)
+ * @brief      This API adds an integer filter property to the filter handle
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in] handle           pointer to the package info filter handle.
+ * @param[in] property         integer property name.
+ * @param[in] value            value corresponding to the property.
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_pkginfo_filter_create()
+ * @post               pkgmgrinfo_pkginfo_filter_destroy()
+ * @see                pkgmgrinfo_pkginfo_filter_count()
+ * @see                pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
+ * @code
+static int get_pkg_count()
+{
+       int ret = 0;
+       int count = 0;
+       pkgmgrinfo_pkginfo_filter_h handle;
+       ret = pkgmgrinfo_pkginfo_filter_create(&handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_pkginfo_filter_add_int(handle, PMINFO_PKGINFO_PROP_PACKAGE_SIZE, 10);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_pkginfo_filter_destroy(handle);
+               return -1;
+       }
+       ret = pkgmgrinfo_pkginfo_filter_count(handle, &count);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_pkginfo_filter_destroy(handle);
+               return -1;
+       }
+       printf("No of preload pkgs: %d\n", count);
+       pkgmgrinfo_pkginfo_filter_destroy(handle);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_pkginfo_filter_add_int(pkgmgrinfo_pkginfo_filter_h handle,
+               const char *property, const int value);
+
+/**
+ * @fn int pkgmgrinfo_pkginfo_filter_add_string(pkgmgrinfo_pkginfo_filter_h handle, const char *property, const char *value)
+ * @brief      This API adds a string filter property to the filter handle
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in] handle           pointer to the package info filter handle.
+ * @param[in] property         string property name.
+ * @param[in] value            value corresponding to the property.
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_pkginfo_filter_create()
+ * @post               pkgmgrinfo_pkginfo_filter_destroy()
+ * @see                pkgmgrinfo_pkginfo_filter_count()
+ * @see                pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
+ * @code
+static int get_tpk_pkg_count()
+{
+       int ret = 0;
+       int count = 0;
+       pkgmgrinfo_pkginfo_filter_h handle;
+       ret = pkgmgrinfo_pkginfo_filter_create(&handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "tpk");
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_pkginfo_filter_destroy(handle);
+               return -1;
+       }
+       ret = pkgmgrinfo_pkginfo_filter_count(handle, &count);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_pkginfo_filter_destroy(handle);
+               return -1;
+       }
+       printf("No of tpk pkgs: %d\n", count);
+       pkgmgrinfo_pkginfo_filter_destroy(handle);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_pkginfo_filter_add_string(pkgmgrinfo_pkginfo_filter_h handle,
+               const char *property, const char *value);
+
+/**
+ * @fn int pkgmgrinfo_pkginfo_filter_foreach_pkginfo(pkgmgrinfo_pkginfo_filter_h handle, pkgmgrinfo_pkg_list_cb pkg_cb, void *user_data)
+ * @brief      This API executes the user supplied callback function for each package that satisfy the filter conditions
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in] handle           pointer to the package info filter handle.
+ * @param[in] pkg_cb           callback function.
+ * @param[in] user_data                user data to be passed to the callback function
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_pkginfo_filter_create()
+ * @post               pkgmgrinfo_pkginfo_filter_destroy()
+ * @see                pkgmgrinfo_pkginfo_filter_count()
+ * @code
+int pkg_list_cb(pkgmgrinfo_pkginfo_h handle, void *user_data)
+{
+       char *pkgid = NULL;
+       pkgmgrinfo_pkginfo_get_pkgid(handle, &pkgid);
+       printf("pkg id : %s\n", pkgid);
+       return 0;
+}
+
+static int get_tpk_pkg_list()
+{
+       int ret = 0;
+       pkgmgrinfo_pkginfo_filter_h handle;
+       ret = pkgmgrinfo_pkginfo_filter_create(&handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "tpk");
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_pkginfo_filter_destroy(handle);
+               return -1;
+       }
+       ret = pkgmgrinfo_pkginfo_filter_foreach_pkginfo(handle, pkg_list_cb, NULL);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_pkginfo_filter_destroy(handle);
+               return -1;
+       }
+       pkgmgrinfo_pkginfo_filter_destroy(handle);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_pkginfo_filter_foreach_pkginfo(pkgmgrinfo_pkginfo_filter_h handle,
+               pkgmgrinfo_pkg_list_cb pkg_cb, void *user_data);
+int pkgmgrinfo_pkginfo_usr_filter_foreach_pkginfo(pkgmgrinfo_pkginfo_filter_h handle,
+               pkgmgrinfo_pkg_list_cb pkg_cb, void *user_data, uid_t uid);
+
+/**
+ * @fn int pkgmgrinfo_pkginfo_filter_count(pkgmgrinfo_pkginfo_filter_h handle, int *count)
+ * @fn int pkgmgrinfo_pkginfo_usr_filter_count(pkgmgrinfo_pkginfo_filter_h handle, int *count, uid_t uid)
+ * @brief      This API counts the package that satisfy the filter conditions
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in] handle           pointer to the package info filter handle.
+ * @param[in] count            pointer to store the count value.
+ * @param[in]  uid     the addressee user id of the instruction
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_pkginfo_filter_create()
+ * @post               pkgmgrinfo_pkginfo_filter_destroy()
+ * @see                pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
+ * @code
+static int get_tpk_pkg_count()
+{
+       int ret = 0;
+       int count = 0;
+       pkgmgrinfo_pkginfo_filter_h handle;
+       ret = pkgmgrinfo_pkginfo_filter_create(&handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "tpk");
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_pkginfo_filter_destroy(handle);
+               return -1;
+       }
+       ret = pkgmgrinfo_pkginfo_filter_count(handle, &count);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_pkginfo_filter_destroy(handle);
+               return -1;
+       }
+       printf("No of tpk pkgs: %d\n", count);
+       pkgmgrinfo_pkginfo_filter_destroy(handle);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_pkginfo_filter_count(pkgmgrinfo_pkginfo_filter_h handle, int *count);
+int pkgmgrinfo_pkginfo_usr_filter_count(pkgmgrinfo_pkginfo_filter_h handle, int *count, uid_t uid);
+
+/**
+ * @fn int pkgmgrinfo_pkginfo_foreach_privilege(pkgmgrinfo_pkginfo_h handle,
+                       pkgmgrinfo_pkg_privilege_list_cb privilege_func, void *user_data);
+ * @brief      This API gets the list of privilege for a particular package
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ * @param[in]  handle          pointer to the package info handle.
+ * @param[in]  privilege_func          callback function for list
+ * @param[in] user_data        user data to be passed to callback function
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
+ * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
+ * @code
+int privilege_func(const char *name, void *user_data)
+{
+       if (strcmp(name, (char *)user_data) == 0)
+               return -1;
+       else
+               return 0;
+}
+
+static int list_privilege(const char *package, char *privilege)
+{
+       int ret = 0;
+       pkgmgrinfo_pkginfo_h handle;
+       ret = pkgmgrinfo_pkginfo_get_pkginfo(package, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_pkginfo_foreach_privilege(handle, privilege_func, (void *)privilege);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+               return -1;
+       }
+       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_pkginfo_foreach_privilege(pkgmgrinfo_pkginfo_h handle,
+                       pkgmgrinfo_pkg_privilege_list_cb privilege_func, void *user_data);
+
+/**
+ * @fn int pkgmgrinfo_pkginfo_foreach_appdefined_privilege(pkgmgrinfo_pkginfo_h handle,
+                       pkgmgrinfo_pkg_appdefined_privilege_list_cb privilege_func, void *user_data);
+ * @brief      This API gets the list of appdefined privilege for a particular package
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ * @param[in]  handle          pointer to the package info handle.
+ * @param[in]  privilege_func          callback function for list
+ * @param[in] user_data        user data to be passed to callback function
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
+ * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
+ * @code
+int privilege_func(const char *name, const char *license_path, void *user_data)
+{
+       printf("appdefined privilege : %s", name);
+       if (license_path)
+               printf("licensed privilege, lecense path : %s", license_path);
+       return 0;
+}
+
+static int list_appdefined_privilege(const char *package)
+{
+       int ret = 0;
+       pkgmgrinfo_pkginfo_h handle;
+       ret = pkgmgrinfo_pkginfo_get_pkginfo(package, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_pkginfo_foreach_appdefined_privilege(handle, privilege_func, NULL);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+               return -1;
+       }
+       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_pkginfo_foreach_appdefined_privilege(pkgmgrinfo_pkginfo_h handle,
+                       pkgmgrinfo_pkg_appdefined_privilege_list_cb privilege_func, void *user_data);
+
+/**
+ * @fn int pkgmgrinfo_pkginfo_foreach_plugin(pkgmgrinfo_pkginfo_h handle,
+                       pkgmgrinfo_plugin_list_cb plugin_func, void *user_data);
+ * @brief      This API gets the list of plugin execution info for a particular package
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ * @param[in]  handle          pointer to the package info handle.
+ * @param[in]  plugin_func             callback function for list
+ * @param[in] user_data        user data to be passed to callback function
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
+ * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
+ * @code
+int plugin_func(const char *pkgid, const char *appid,
+                               const char *plugin_type, const char *plugin_name,
+                               void *user_data)
+{
+       printf("appid : %s, type : %s, name : %s\n", appid, plugin_type, plugin_name);
+
+       return 0;
+}
+
+static int list_plugin(const char *package)
+{
+       int ret = 0;
+       pkgmgrinfo_pkginfo_h handle;
+       ret = pkgmgrinfo_pkginfo_get_pkginfo(package, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_pkginfo_foreach_plugin(handle, plugin_func, NULL);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+               return -1;
+       }
+       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_pkginfo_foreach_plugin(pkgmgrinfo_pkginfo_h handle,
+                       pkgmgrinfo_plugin_list_cb plugin_func, void *user_data);
+
+/* TODO: add doxygen comment here */
+int pkgmgrinfo_pkginfo_is_for_all_users(pkgmgrinfo_pkginfo_h handle, bool *for_all_users);
+
+/**
+ * @fn int pkgmgrinfo_appinfo_clone_appinfo(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_pkginfo_h *clone)
+ * @brief      This API copy the application information handle
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  handle  pointer to the package info handle.
+ * @param[out] handle  pointer to the package info handle.
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                None
+ * @post       pkgmgrinfo_appinfo_destroy_appinfo()
+ * @code
+static int get_appinfo_clone(pkgmgrinfo_pkginfo_h handle)
+{
+       int ret = 0;
+
+       pkgmgrinfo_pkginfo_h clone;
+
+       ret = pkgmgrinfo_appinfo_clone_appinfo(handle, &clone);
+       if (ret != PMINFO_R_OK)
+               return -1;
+
+
+       printf("package: %s\n", clone->package);
+       pkgmgrinfo_appinfo_destroy_appinfo(clone);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_appinfo_clone_appinfo(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_pkginfo_h *clone);
+
+
+/**
+ * @fn int pkgmgrinfo_appinfo_get_list(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_app_component component,
+ pkgmgrinfo_app_list_cb app_func, void *user_data)
+ * @brief      This API gets list of installed applications for a particular package
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ * @param[in]  handle          package info handle
+ * @param[in]  component       application component
+ * @param[in]  app_func                iteration function for list
+ * @param[in] user_data        user data to be passed to callback function
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
+ * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
+ * @code
+int app_func(pkgmgrinfo_appinfo_h handle, void *user_data)
+{
+       char *appid = NULL;
+       pkgmgrinfo_appinfo_get_appid(handle, &appid);
+       printf("appid : %s\n", appid);
+       return 0;
+}
+
+static int list_apps(const char *pkgid)
+{
+       int ret = 0;
+       pkgmgrinfo_pkginfo_h handle;
+       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_appinfo_get_list(handle, PMINFO_UI_APP, app_func, NULL);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+               return -1;
+       }
+       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_appinfo_get_list(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_app_component component,
+                                                       pkgmgrinfo_app_list_cb app_func, void *user_data);
+int pkgmgrinfo_appinfo_get_usr_list(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_app_component component,
+                                                       pkgmgrinfo_app_list_cb app_func, void *user_data, uid_t uid);
+
+/**
+ * @fn int pkgmgrinfo_appinfo_get_applist_for_amd(pkgmgrinfo_app_list_cb app_func, void *user_data);
+ * @brief      This API gets list of installed applications from all packages with  minimum informaion.
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ * @param[in]  app_func                iteration function for list
+ * @param[in] user_data        user data to be passed to callback function
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                None
+ * @post               None
+ * @code
+int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
+{
+       char *pkgid1 = NULL;
+       char *pkgid2 = NULL;
+       pkgid1 = (char *)user_data;
+       pkgmgrinfo_appinfo_get_pkgid(handle, &pkgid2);
+       if (strcmp(pkgid1, pkgid2) == 0) {
+               return -1;
+       } else {
+               return 0;
+       }
+}
+
+static int list_apps()
+{
+       int ret = 0;
+       char *name = "helloworld";
+       ret = pkgmgrinfo_appinfo_get_applist_for_amd(app_list_cb, (void *)name);
+       if (ret != PMINFO_R_OK) {
+               return -1;
+       }
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_appinfo_get_usr_applist_for_amd(pkgmgrinfo_app_list_cb app_func, uid_t uid, void *user_data);
+int pkgmgrinfo_appinfo_get_applist_for_amd(pkgmgrinfo_app_list_cb app_func, void *user_data);
+
+/**
+ * @fn int pkgmgrinfo_appinfo_get_installed_list(pkgmgrinfo_app_list_cb app_func, void *user_data);
+ * @brief      This API gets list of installed applications from all packages.
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ * @param[in]  app_func                iteration function for list
+ * @param[in] user_data        user data to be passed to callback function
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                None
+ * @post               None
+ * @code
+int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
+{
+       char *pkgid1 = NULL;
+       char *pkgid2 = NULL;
+       pkgid1 = (char *)user_data;
+       pkgmgrinfo_appinfo_get_pkgid(handle, &pkgid2);
+       if (strcmp(pkgid1, pkgid2) == 0) {
+               return -1;
+       } else {
+               return 0;
+       }
+}
+
+static int list_apps()
+{
+       int ret = 0;
+       char *name = "helloworld";
+       ret = pkgmgrinfo_appinfo_get_installed_list(app_list_cb, (void *)name);
+       if (ret != PMINFO_R_OK) {
+               return -1;
+       }
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_appinfo_get_installed_list(pkgmgrinfo_app_list_cb app_func, void *user_data);
+int pkgmgrinfo_appinfo_get_usr_installed_list(pkgmgrinfo_app_list_cb app_func, uid_t uid, void *user_data);
+
+/**
+ * @fn int pkgmgrinfo_appinfo_get_disabled_appinfo(const char *appid, pkgmgrinfo_appinfo_h *handle)
+ * @brief      This API creates the disabled application information handle from db
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  appid   pointer to appid
+ * @param[out] handle          pointer to the application info handle.
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                None
+ * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see                pkgmgrinfo_appinfo_get_pkgid()
+ * @see                pkgmgrinfo_appinfo_is_multiple()
+ * @code
+static int get_disabled_app_type(const char *appid)
+{
+       int ret = 0;
+       char *type = NULL;
+       pkgmgrinfo_appinfo_h handle;
+       ret = pkgmgrinfo_appinfo_get_disabled_appinfo(appid, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_appinfo_get_apptype(handle, &type);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
+               return -1;
+       }
+       printf("apptype: %s\n", type);
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_appinfo_get_disabled_appinfo(const char *appid, pkgmgrinfo_appinfo_h *handle);
+int pkgmgrinfo_appinfo_get_usr_disabled_appinfo(const char *appid, uid_t uid, pkgmgrinfo_appinfo_h *handle);
+
+/**
+ * @fn int pkgmgrinfo_appinfo_get_appinfo(const char *appid, pkgmgrinfo_appinfo_h *handle)
+ * @brief      This API creates the application information handle from db
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  appid   pointer to appid
+ * @param[out] handle          pointer to the application info handle.
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                None
+ * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see                pkgmgrinfo_appinfo_get_pkgid()
+ * @see                pkgmgrinfo_appinfo_is_multiple()
+ * @code
+static int get_app_type(const char *appid)
+{
+       int ret = 0;
+       char *type = NULL;
+       pkgmgrinfo_appinfo_h handle;
+       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_appinfo_get_apptype(handle, &type);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
+               return -1;
+       }
+       printf("apptype: %s\n", type);
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_appinfo_get_appinfo(const char *appid, pkgmgrinfo_appinfo_h *handle);
+int pkgmgrinfo_appinfo_get_usr_appinfo(const char *appid, uid_t uid, pkgmgrinfo_appinfo_h *handle);
+
+/**
+ * @fn int pkgmgrinfo_appinfo_get_all_appinfo(const char *appid, pkgmgrinfo_appinfo_h *handle)
+ * @brief      This API creates the application information handle from db regardless of its disable or storage status
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  appid   pointer to appid
+ * @param[out] handle          pointer to the application info handle.
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                None
+ * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see                pkgmgrinfo_appinfo_get_pkgid()
+ * @see                pkgmgrinfo_appinfo_is_multiple()
+ * @code
+static int get_app_type(const char *appid)
+{
+       int ret = 0;
+       char *type = NULL;
+       pkgmgrinfo_appinfo_h handle;
+       ret = pkgmgrinfo_appinfo_get_all_appinfo(appid, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_appinfo_get_apptype(handle, &type);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
+               return -1;
+       }
+       printf("apptype: %s\n", type);
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_appinfo_get_all_appinfo(const char *appid, pkgmgrinfo_appinfo_h *handle);
+int pkgmgrinfo_appinfo_get_usr_all_appinfo(const char *appid, uid_t uid, pkgmgrinfo_appinfo_h *handle);
+
+/**
+ * @fn int pkgmgrinfo_appinfo_get_appid(pkgmgrinfo_appinfo_h handle, char **appid)
+ * @brief      This API gets the application ID
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in] handle           pointer to the application info handle.
+ * @param[out] appid           pointer to hold appid
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_appinfo_get_appinfo()
+ * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see                pkgmgrinfo_appinfo_get_pkgid()
+ * @see                pkgmgrinfo_appinfo_is_multiple()
+ * @code
+static int get_app_id(const char *appid)
+{
+       int ret = 0;
+       char *app_id = NULL;
+       pkgmgrinfo_appinfo_h handle;
+       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_appinfo_get_appid(handle, &app_id);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
+               return -1;
+       }
+       printf("app id: %s\n", app_id);
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_appinfo_get_appid(pkgmgrinfo_appinfo_h  handle, char **appid);
+
+/**
+ * @fn int pkgmgrinfo_appinfo_get_pkgname(pkgmgrinfo_appinfo_h handle, char **pkg_name)
+ * @brief      This API gets the package name of the application
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in] handle           pointer to the application info handle.
+ * @param[out] pkg_name                pointer to hold package name
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_appinfo_get_appinfo()
+ * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see                pkgmgrinfo_appinfo_get_appid()
+ * @see                pkgmgrinfo_appinfo_is_multiple()
+ * @code
+static int get_app_pkgname(const char *appid)
+{
+       int ret = 0;
+       char *pkgname = NULL;
+       pkgmgrinfo_appinfo_h handle;
+       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_appinfo_get_pkgname(handle, &pkgname);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
+               return -1;
+       }
+       printf("pkg name: %s\n", pkgname);
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_appinfo_get_pkgname(pkgmgrinfo_appinfo_h  handle, char **pkg_name);
+
+/**
+ * @fn int pkgmgrinfo_appinfo_get_pkgid(pkgmgrinfo_appinfo_h handle, char **pkgid)
+ * @brief      This API gets the package id of the application
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in] handle           pointer to the application info handle.
+ * @param[out] pkgid           pointer to hold package id
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_appinfo_get_appinfo()
+ * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see                pkgmgrinfo_appinfo_get_appid()
+ * @see                pkgmgrinfo_appinfo_is_multiple()
+ * @code
+static int get_app_pkgid(const char *appid)
+{
+       int ret = 0;
+       char *pkgid = NULL;
+       pkgmgrinfo_appinfo_h handle;
+       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_appinfo_get_pkgid(handle, &pkgid);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
+               return -1;
+       }
+       printf("pkg id: %s\n", pkgid);
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_appinfo_get_pkgid(pkgmgrinfo_appinfo_h  handle, char **pkgid);
+
+/**
+ * @fn int pkgmgrinfo_appinfo_get_pkgtype(pkgmgrinfo_appinfo_h handle, char **pkgtype)
+ * @brief      This API gets the package type of the application
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in] handle           pointer to the application info handle.
+ * @param[out] pkgtype         pointer to hold package type
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_appinfo_get_appinfo()
+ * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see                pkgmgrinfo_appinfo_get_appid()
+ * @see                pkgmgrinfo_appinfo_is_multiple()
+ * @code
+static int get_app_pkgtype(const char *appid)
+{
+       int ret = 0;
+       char *pkgtype = NULL;
+       pkgmgrinfo_appinfo_h handle = NULL;
+       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_appinfo_get_pkgtype(handle, &pkgtype);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
+               return -1;
+       }
+       printf("pkgtype: %s\n", pkgtype);
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_appinfo_get_pkgtype(pkgmgrinfo_appinfo_h  handle, char **pkgtype);
+
+/**
+ * @fn int pkgmgrinfo_appinfo_get_exec(pkgmgrinfo_appinfo_h handle, char **exec)
+ * @brief      This API gets the executable name of the application
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in] handle           pointer to the application info handle.
+ * @param[out] exec            pointer to hold app exec name
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_appinfo_get_appinfo()
+ * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see                pkgmgrinfo_appinfo_get_appid()
+ * @see                pkgmgrinfo_appinfo_is_multiple()
+ * @code
+static int get_app_exec(const char *appid)
+{
+       int ret = 0;
+       char *exec = NULL;
+       pkgmgrinfo_appinfo_h handle;
+       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_appinfo_get_exec(handle, &exec);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
+               return -1;
+       }
+       printf("exec name: %s\n", exec);
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_appinfo_get_exec(pkgmgrinfo_appinfo_h  handle, char **exec);
+
+/**
+ * @fn int pkgmgrinfo_appinfo_get_icon(pkgmgrinfo_appinfo_h handle, char **icon)
+ * @brief      This API gets the icon name of the application
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in] handle           pointer to the application info handle.
+ * @param[out] icon            pointer to hold app icon name
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_appinfo_get_appinfo()
+ * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see                pkgmgrinfo_appinfo_get_appid()
+ * @see                pkgmgrinfo_appinfo_is_multiple()
+ * @code
+static int get_app_icon(const char *appid)
+{
+       int ret = 0;
+       char *icon = NULL;
        pkgmgrinfo_appinfo_h handle;
        ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
@@ -2555,8 +3196,45 @@ static int get_localed_label(const char *appid, const char *locale)
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_get_localed_label(const char *appid, const char *locale, char **label);
-int pkgmgrinfo_appinfo_usr_get_localed_label(const char *appid, const char *locale, uid_t uid, char **label);
+int pkgmgrinfo_appinfo_get_localed_label(const char *appid, const char *locale, char **label);
+int pkgmgrinfo_appinfo_usr_get_localed_label(const char *appid, const char *locale, uid_t uid, char **label);
+
+/**
+ * @fn int pkgmgrinfo_appinfo_get_metadata_value(pkgmgrinfo_appinfo_h handle, const char *metadata_key, char **metadata_value)
+ * @brief      This API gets metadata value by given metadata key
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  handle  pointer to the application info handle
+ * @param[in]  metadata_key    metadata key
+ * @param[out] metadata_value          pointer to hold metadata value
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @code
+static int get_metadata_value(const char *appid, const char *metadata_key)
+{
+       int ret = 0;
+       pkgmgrinfo_appinfo_h handle = NULL;
+       char *metadata_value = NULL;
+
+       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+
+       ret = pkgmgrinfo_appinfo_get_metadata_value(handle, metadata_key, &metadata_value);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
+               return -1;
+       }
+
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_appinfo_get_metadata_value(pkgmgrinfo_appinfo_h handle, const char *metadata_key, char **metadata_value);
 
 /**
  * @fn int pkgmgrinfo_appinfo_get_component(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_component *component)
@@ -2892,45 +3570,6 @@ static int get_app_notification_icon(const char *appid)
 int pkgmgrinfo_appinfo_get_notification_icon(pkgmgrinfo_appinfo_h  handle, char **icon);
 
 /**
- * @fn int pkgmgrinfo_appinfo_get_setting_icon(pkgmgrinfo_appinfo_h handle, char **icon)
- * @brief      This API gets the setting icon of the application
- *
- * @par                This API is for package-manager client application
- * @par Sync (or) Async : Synchronous API
- *
- * @param[in] handle           pointer to the application info handle.
- * @param[out] path            pointer to hold setting icon
- * @return     0 if success, error code(<0) if fail
- * @retval     PMINFO_R_OK     success
- * @retval     PMINFO_R_EINVAL invalid argument
- * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_appinfo_get_appinfo()
- * @post               pkgmgrinfo_appinfo_destroy_appinfo()
- * @see                pkgmgrinfo_appinfo_get_appid()
- * @see                pkgmgrinfo_appinfo_is_multiple()
- * @code
-static int get_app_setting_icon(const char *appid)
-{
-       int ret = 0;
-       char *setting_icon = NULL;
-       pkgmgrinfo_appinfo_h handle;
-       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
-       if (ret != PMINFO_R_OK)
-               return -1;
-       ret = pkgmgrinfo_appinfo_get_setting_icon(handle, &setting_icon);
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_destroy_appinfo(handle);
-               return -1;
-       }
-       printf("setting icon : %s\n", setting_icon);
-       pkgmgrinfo_appinfo_destroy_appinfo(handle);
-       return 0;
-}
- * @endcode
- */
-int pkgmgrinfo_appinfo_get_setting_icon(pkgmgrinfo_appinfo_h  handle, char **icon);
-
-/**
  * @fn int pkgmgrinfo_appinfo_get_recent_image_type(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_recentimage *type)
  * @brief      This API gets the type of recent image on app-tray
  *
@@ -3206,6 +3845,45 @@ static int get_app_effectimages(const char *appid)
 int pkgmgrinfo_appinfo_get_effectimage(pkgmgrinfo_appinfo_h  handle, char **portrait_img, char **landscape_img);
 
 /**
+ * @fn int pkgmgrinfo_appinfo_get_effectimage_type(pkgmgrinfo_appinfo_h  handle, char **effectimg_type)
+ * @brief      This API gets the application's effect image type
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  handle  pointer to application info handle
+ * @param[out]  effectimg_type contains effect image type
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_appinfo_get_appinfo()
+ * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see                pkgmgrinfo_appinfo_get_appid()
+ * @see                pkgmgrinfo_appinfo_is_nodisplay()
+ * @code
+static int get_app_effectimage_type(const char *appid)
+{
+       int ret = 0;
+       char *effectimg_type = NULL;
+       pkgmgrinfo_appinfo_h handle = NULL;
+       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_appinfo_get_effectimage_type(handle, &effectimg_type);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
+               return -1;
+       }
+       printf("app effect image type: %s\n", effectimg_type);
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
+       return 0;
+}
+ * @endcode
+ */
+int pkgmgrinfo_appinfo_get_effectimage_type(pkgmgrinfo_appinfo_h handle, char **effectimg_type);
+
+/**
  * @fn int pkgmgrinfo_appinfo_get_submode_mainid(pkgmgrinfo_appinfo_h handle, char **submode_mainid)
  * @brief      This API gets the submode_mainid of the application
  *
@@ -3262,6 +3940,7 @@ int pkgmgrinfo_appinfo_get_submode_mainid(pkgmgrinfo_appinfo_h  handle, char **s
  * @endcode
  */
 int pkgmgrinfo_appinfo_get_datacontrol_info(const char *providerid, const char *type, char **appid, char **access);
+int pkgmgrinfo_appinfo_usr_get_datacontrol_info(const char *providerid, const char *type, uid_t uid, char **appid, char **access);
 
 /**
  * @fn int pkgmgrinfo_appinfo_get_datacontrol_appid(const char *providerid, char **appid);
@@ -3279,249 +3958,249 @@ int pkgmgrinfo_appinfo_get_datacontrol_info(const char *providerid, const char *
  * @endcode
  */
 int pkgmgrinfo_appinfo_get_datacontrol_appid(const char *providerid, char **appid);
+int pkgmgrinfo_appinfo_usr_get_datacontrol_appid(const char *providerid, uid_t uid, char **appid);
 
 /**
- * @fn int pkgmgrinfo_appinfo_foreach_permission(pkgmgrinfo_appinfo_h handle,
-                       pkgmgrinfo_app_permission_list_cb permission_func, void *user_data);
- * @brief      This API gets the list of permission for a particular application
+ * @fn int pkgmgrinfo_appinfo_get_datacontrol_trusted_info(const char *providerid, char **appid, bool *is_trusted);
+ * @brief      This API gets the information about trusted datacontrol
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
- * @param[in]  handle          pointer to the application info handle.
- * @param[in]  permission_func         callback function for list
+ *
+ * @param[in] providerid               pointer to the providerid of datacontrol.
+ * @param[out] appid                   pointer to hold appid, need to free after using
+ * @param[out] is_trusted              pointer to hold whether it provides trusted datacontrol
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @endcode
+ */
+int pkgmgrinfo_appinfo_get_datacontrol_trusted_info(const char *providerid,
+               const char *type, char **appid, bool *is_trusted);
+int pkgmgrinfo_appinfo_usr_get_datacontrol_trusted_info(const char *providerid,
+               const char *type, uid_t uid, char **appid, bool *is_trusted);
+
+/**
+ * @fn int pkgmgrinfo_appinfo_foreach_datacontrol_privileges(const char *providerid, const char *type,
+               pkgmgrinfo_pkg_privilege_list_cb privilege_func, void *user_data);
+ * @brief      This API retrieves the privileges and invokes given callback for each privilege.
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in] providerid               pointer to the providerid of datacontrol.
+ * @param[in] type                     pointer to the type of dataconltrol.
+ * @param[in] privilege_func           callback function for list
  * @param[in] user_data        user data to be passed to callback function
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
+ */
+int pkgmgrinfo_appinfo_foreach_datacontrol_privileges(const char *providerid, const char *type,
+               pkgmgrinfo_pkg_privilege_list_cb privilege_func, void *user_data);
+int pkgmgrinfo_appinfo_usr_foreach_datacontrol_privileges(const char *providerid, const char *type,
+               pkgmgrinfo_pkg_privilege_list_cb privilege_func, void *user_data, uid_t uid);
+
+/**
+ * @fn int pkgmgrinfo_appinfo_get_alias_appid(pkgmgrinfo_appinfo_h  handle, char **alias_appid)
+ * @brief      This API gets the alias_appid of the application
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in] handle           pointer to the application info handle.
+ * @param[out] alias_appid             pointer to hold app alias_appid
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
  * @pre                pkgmgrinfo_appinfo_get_appinfo()
  * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see                pkgmgrinfo_appinfo_get_appid()
  * @code
-int permission_func(const char *name, void *user_data)
-{
-       if (strcmp(name, (char *)user_data) == 0)
-               return -1;
-       else
-               return 0;
-}
-
-static int list_permission(const char *appid, char *permission)
+static int get_alias_appid(const char *appid)
 {
        int ret = 0;
-       pkgmgrinfo_appinfo_h handle;
+       char *alias_appid= 0;
+       pkgmgrinfo_appinfo_h handle = NULL;
        ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_foreach_permission(handle, permission_func, (void *)permission);
+       ret = pkgmgrinfo_appinfo_get_alias_appid(handle, &alias_appid);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
+       printf("alias_appid: %s\n", alias_appid);
        pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_foreach_permission(pkgmgrinfo_appinfo_h handle,
-                       pkgmgrinfo_app_permission_list_cb permission_func, void *user_data);
+int pkgmgrinfo_appinfo_get_alias_appid(pkgmgrinfo_appinfo_h handle, char **alias_appid);
 
 /**
- * @fn int pkgmgrinfo_appinfo_foreach_category(pkgmgrinfo_appinfo_h handle,
-                       pkgmgrinfo_app_category_list_cb category_func, void *user_data);
- * @brief      This API gets the list of category for a particular application
+ * @fn int pkgmgrinfo_appinfo_get_effective_appid(pkgmgrinfo_appinfo_h  handle, char **effective_appid)
+ * @brief      This API gets the effective_appid of the application
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
- * @param[in]  handle          pointer to the application info handle.
- * @param[in]  category_func           callback function for list
- * @param[in] user_data        user data to be passed to callback function
+ *
+ * @param[in] handle           pointer to the application info handle.
+ * @param[out] effective_appid         pointer to hold app effective_appid
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
  * @pre                pkgmgrinfo_appinfo_get_appinfo()
  * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see                pkgmgrinfo_appinfo_get_appid()
  * @code
-int category_func(const char *name, void *user_data)
-{
-       if (strcmp(name, (char *)user_data) == 0)
-               return -1;
-       else
-               return 0;
-}
-
-static int list_category(const char *appid, char *category)
+static int get_effective_appid(const char *appid)
 {
        int ret = 0;
-       pkgmgrinfo_appinfo_h handle;
+       char *effective_appid= 0;
+       pkgmgrinfo_appinfo_h handle = NULL;
        ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_foreach_category(handle, category_func, (void *)category);
+       ret = pkgmgrinfo_appinfo_get_effective_appid(handle, &effective_appid);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
+       printf("effective_appid: %s\n", effective_appid);
        pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_foreach_category(pkgmgrinfo_appinfo_h handle,
-                       pkgmgrinfo_app_category_list_cb category_func, void *user_data);
+int pkgmgrinfo_appinfo_get_effective_appid(pkgmgrinfo_appinfo_h handle, char **effective_appid);
 
 /**
- * @fn int pkgmgrinfo_appinfo_foreach_metadata(pkgmgrinfo_appinfo_h handle,
-                       pkgmgrinfo_app_metadata_list_cb metadata_func, void *user_data);
- * @brief      This API gets the list of metadata for a particular application
+ * @fn int pkgmgrinfo_appinfo_get_tep_name(pkgmgrinfo_appinfo_h handle, char **tep_name)
+ * @brief      This API gets tep(tizen expansion package) file name associated with the package which contain given application
  *
- * @par                This API is for package-manager client application
+ * @par        This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
- * @param[in]  handle          pointer to the application info handle.
- * @param[in]  metadata_func           callback function for list
- * @param[in] user_data        user data to be passed to callback function
+ *
+ * @param[in] handle           pointer to the appinfo handle.
+ * @param[out] tep_name                pointer to hold tep name
  * @return     0 if success, error code(<0) if fail
- * @retval     PMINFO_R_OK     success
- * @retval     PMINFO_R_EINVAL invalid argument
- * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_appinfo_get_appinfo()
- * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @retval     PMINFO_R_OK success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre        pkgmgrinfo_appinfo_get_appinfo()
+ * @post       pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see        pkgmgrinfo_appinfo_get_appid()
  * @code
-int metadata_func(const char *key, const char *value, void *user_data)
-{
-       if (strcmp(key, (char *)user_data) == 0) {
-               printf("Value is %s\n", value);
-               return -1;
-       }
-       else
-               return 0;
-}
-
-static int list_metadata(const char *appid, char *key)
+static int get_tep_name(const char *appid)
 {
        int ret = 0;
-       pkgmgrinfo_appinfo_h handle;
+       char *tep_name = NULL;
+       pkgmgrinfo_appinfo_h handle = NULL;
        ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_foreach_metadata(handle, metadata_func, (void *)key);
+       ret = pkgmgrinfo_appinfo_get_tep_name(handle, &tep_name);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
+       printf("TEP name is: %s\n", tep_name);
        pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_foreach_metadata(pkgmgrinfo_appinfo_h handle,
-                       pkgmgrinfo_app_metadata_list_cb metadata_func, void *user_data);
-
+int pkgmgrinfo_appinfo_get_tep_name(pkgmgrinfo_appinfo_h handle, char **tep_name);
 
 /**
- * @fn int pkgmgrinfo_appinfo_foreach_appcontrol(pkgmgrinfo_appinfo_h handle,
-                       pkgmgrinfo_app_control_list_cb appcontrol_func, void *user_data);
- * @fn int pkgmgrinfo_usr_appinfo_foreach_appcontrol(pkgmgrinfo_appinfo_h handle,
-                       pkgmgrinfo_app_control_list_cb appcontrol_func, void *user_data, uid_t uid);
- * @brief      This API gets the list of app-control for a particular application
+ * @fn int pkgmgrinfo_appinfo_get_zip_mount_file(pkgmgrinfo_appinfo_h handle, char **zip_mount_file)
+ * @brief      This API gets zip mount file name associated with the package which contain given application
+ *          If package is not "mount-installed", zip_mount_file is left as NULL pointer.
  *
- * @par                This API is for package-manager client application
+ * @par        This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
- * @param[in]  handle          pointer to the application info handle.
- * @param[in]  appcontrol_func         callback function for list
- * @param[in] user_data        user data to be passed to callback function
- * @param[in]  uid     the addressee user id of the instruction
+ *
+ * @param[in] handle           pointer to the appinfo handle.
+ * @param[out] zip_mount_file          pointer to hold zip mount file name
  * @return     0 if success, error code(<0) if fail
- * @retval     PMINFO_R_OK     success
- * @retval     PMINFO_R_EINVAL invalid argument
- * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_appinfo_get_appinfo()
- * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @retval     PMINFO_R_OK success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre        pkgmgrinfo_appinfo_get_appinfo()
+ * @post       pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see        pkgmgrinfo_appinfo_get_appid()
  * @code
-int appcontrol_func(pkgmgrinfo_appcontrol_h handle, void *user_data)
-{
-       int oc = 0;
-       int i = 0;
-       char **operation;
-       pkgmgrinfo_appinfo_get_operation(handle, &oc, &operation);
-       for (i = 0; i < oc; i++) {
-               if (strcmp(operation[i], (char *)user_data) == 0)
-                       return -1;
-               else
-                       return 0;
-       }
-}
-
-static int check_operation(const char *appid, char *operation)
+static int get_zip_mount_file(const char *appid)
 {
        int ret = 0;
-       pkgmgrinfo_appinfo_h handle;
+       char *zip_mount_file = NULL;
+       pkgmgrinfo_appinfo_h handle = NULL;
        ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_foreach_appcontrol(handle, appcontrol_func, (void *)operation);
+       ret = pkgmgrinfo_appinfo_get_zip_mount_file(handle, &zip_mount_file);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
+       printf("Mount file name is: %s\n", zip_mount_file);
        pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_foreach_appcontrol(pkgmgrinfo_appinfo_h handle,
-                       pkgmgrinfo_app_control_list_cb appcontrol_func, void *user_data);
-int pkgmgrinfo_usr_appinfo_foreach_appcontrol(pkgmgrinfo_appinfo_h handle,
-                       pkgmgrinfo_app_control_list_cb appcontrol_func, void *user_data, uid_t uid);
+int pkgmgrinfo_appinfo_get_zip_mount_file(pkgmgrinfo_appinfo_h handle, char **zip_mount_file);
 
 /**
- * @fn int pkgmgrinfo_appinfo_is_nodisplay(pkgmgrinfo_appinfo_h handle, bool *nodisplay)
- * @brief      This API gets the application 'nodisplay' value from the app ID
+ * @fn int pkgmgrinfo_appinfo_get_root_path(pkgmgrinfo_appinfo_h handle, char **path)
+ * @brief      This API gets the root path of application
  *
- * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in]  handle  pointer to application info handle
- * @param[out] nodisplay               pointer to hold package nodisplay value
+ * @param[in] handle           pointer to appinfo handle
+ * @param[out] path            pointer to hold root path of application
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_appinfo_get_appinfo()
- * @post               pkgmgrinfo_appinfo_destroy_appinfo()
- * @see                pkgmgrinfo_appinfo_get_appid()
- * @see                pkgmgrinfo_appinfo_is_multiple()
  * @code
-static int get_app_nodisplay(const char *appid)
+static int get_root_path(const char *appid)
 {
        int ret = 0;
-       bool nodisplay;
+       char *path = 0;
        pkgmgrinfo_appinfo_h handle;
        ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_is_nodisplay(handle, &nodisplay);
+
+       ret = pkgmgrinfo_appinfo_get_root_path(handle, &path);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       printf("app nodisplay: %d\n", nodisplay);
+       printf("path : %s\n", path);
        pkgmgrinfo_appinfo_destroy_appinfo(handle);
+
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_is_nodisplay(pkgmgrinfo_appinfo_h  handle, bool *nodisplay);
+int pkgmgrinfo_appinfo_get_root_path(pkgmgrinfo_appinfo_h handle, char **root_path);
 
 /**
- * @fn int pkgmgrinfo_appinfo_is_multiple(pkgmgrinfo_appinfo_h handle, bool *multiple)
- * @brief      This API gets the application 'multiple' value from the app ID
+ * @fn int pkgmgrinfo_appinfo_get_api_version(pkgmgrinfo_appinfo_h handle, char **api_version)
+ * @brief      This API gets the application api_version from the application ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in]  handle  pointer to application info handle
- * @param[out] multiple                pointer to hold package multiple value
+ * @param[in]  handle  pointer to appinfo handle
+ * @param[out] api_version             pointer to hold application api_version
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
@@ -3529,39 +4208,37 @@ int pkgmgrinfo_appinfo_is_nodisplay(pkgmgrinfo_appinfo_h  handle, bool *nodispla
  * @pre                pkgmgrinfo_appinfo_get_appinfo()
  * @post               pkgmgrinfo_appinfo_destroy_appinfo()
  * @see                pkgmgrinfo_appinfo_get_appid()
- * @see                pkgmgrinfo_appinfo_is_nodisplay()
  * @code
-static int get_app_multiple(const char *appid)
+static int get_app_api_version(const char *appid)
 {
        int ret = 0;
-       bool multiple;
-       pkgmgrinfo_appinfo_h handle;
+       char *api_version = NULL;
+       pkgmgrinfo_appinfo_h handle = NULL;
        ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_is_multiple(handle, &multiple);
+       ret = pkgmgrinfo_appinfo_get_api_version(handle, &api_version);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       printf("app multiple: %d\n", multiple);
+       printf("app api_version: %s\n", api_version);
        pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_is_multiple(pkgmgrinfo_appinfo_h  handle, bool *multiple);
+int pkgmgrinfo_appinfo_get_api_version(pkgmgrinfo_appinfo_h handle, char **api_version);
 
 /**
- * @fn int pkgmgrinfo_appinfo_is_indicator_display_allowed(pkgmgrinfo_appinfo_h handle, bool *indicator_disp)
- * @brief      This API gets the application 'indicatordisplay' value. If true, indicator will be displayed during
- *             application launching effect. If fales, indicator will be hidden during application launching effect
+ * @fn int pkgmgrinfo_appinfo_get_installed_time(pkgmgrinfo_appinfo_h handle, int *installed_time)
+ * @brief      This API gets the installed_time of the application
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in]  handle  pointer to application info handle
- * @param[out]  indicator_disp contains indicator display status for application launching effect
+ * @param[in] handle           pointer to the application info handle.
+ * @param[out] installed_time          pointer to hold installed_time
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
@@ -3569,38 +4246,38 @@ int pkgmgrinfo_appinfo_is_multiple(pkgmgrinfo_appinfo_h  handle, bool *multiple)
  * @pre                pkgmgrinfo_appinfo_get_appinfo()
  * @post               pkgmgrinfo_appinfo_destroy_appinfo()
  * @see                pkgmgrinfo_appinfo_get_appid()
- * @see                pkgmgrinfo_appinfo_is_nodisplay()
+ * @see                pkgmgrinfo_appinfo_is_multiple()
  * @code
-static int get_app_indicator_display(const char *appid)
+static int get_app_installed_time(const char *appid)
 {
        int ret = 0;
-       bool indicator_disp;
-       pkgmgrinfo_appinfo_h handle;
+       int installed_time = 0;
+       pkgmgrinfo_appinfo_h handle = NULL;
        ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_is_indicator_display_allowed(handle, &indicator_disp);
-       if (ret != PMINFO_R_OK){
+       ret = pkgmgrinfo_appinfo_get_installed_time(handle, &installed_time);
+       if (ret != PMINFO_R_OK) {
                pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       printf("app indicator disp : %d\n", indicator_disp);
+       printf("installed_time: %d\n", installed_time);
        pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_is_indicator_display_allowed(pkgmgrinfo_appinfo_h handle, bool *indicator_disp);
+int pkgmgrinfo_appinfo_get_installed_time(pkgmgrinfo_appinfo_h handle, int *installed_time);
 
 /**
- * @fn int pkgmgrinfo_appinfo_is_taskmanage(pkgmgrinfo_appinfo_h handle, bool *taskmanage)
- * @brief      This API gets the application 'taskmanage' value from the app ID
+ * @fn int pkgmgrinfo_appinfo_get_support_mode(pkgmgrinfo_appinfo_h  handle, int *support_mode)
+ * @brief      This API gets the support_mode of the application
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in]  handle  pointer to application info handle
- * @param[out] taskmanage              pointer to hold package taskmanage value
+ * @param[in] handle           pointer to the application info handle.
+ * @param[out] support_mode            pointer to hold app support_mode
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
@@ -3608,155 +4285,242 @@ int pkgmgrinfo_appinfo_is_indicator_display_allowed(pkgmgrinfo_appinfo_h handle,
  * @pre                pkgmgrinfo_appinfo_get_appinfo()
  * @post               pkgmgrinfo_appinfo_destroy_appinfo()
  * @see                pkgmgrinfo_appinfo_get_appid()
- * @see                pkgmgrinfo_appinfo_is_multiple()
  * @code
-static int get_app_taskmanage(const char *appid)
+static int get_app_support_mode(const char *appid)
 {
-       int ret = 0;
-       bool taskmanage;
-       pkgmgrinfo_appinfo_h handle;
+       int ret = 0;
+       int support_mode = 0;
+       pkgmgrinfo_appinfo_h handle = NULL;
        ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_is_taskmanage(handle, &taskmanage);
+       ret = pkgmgrinfo_appinfo_get_support_mode(handle, &support_mode);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       printf("app taskmanage: %d\n", taskmanage);
+       printf("support_mode: %s\n", support_mode);
        pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_is_taskmanage(pkgmgrinfo_appinfo_h  handle, bool *taskmanage);
+int pkgmgrinfo_appinfo_get_support_mode(pkgmgrinfo_appinfo_h handle, int *support_mode);
+
 
 /**
- * @fn int pkgmgrinfo_appinfo_is_enabled(pkgmgrinfo_appinfo_h handle, bool *enabled)
- * @brief      This API gets the application 'taskmanage' value from the app ID
+ * @fn int pkgmgrinfo_appinfo_foreach_category(pkgmgrinfo_appinfo_h handle,
+                       pkgmgrinfo_app_category_list_cb category_func, void *user_data);
+ * @brief      This API gets the list of category for a particular application
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
- *
- * @param[in]  handle  pointer to application info handle
- * @param[out] enabled         pointer to hold package enabled value
+ * @param[in]  handle          pointer to the application info handle.
+ * @param[in]  category_func           callback function for list
+ * @param[in] user_data        user data to be passed to callback function
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
  * @pre                pkgmgrinfo_appinfo_get_appinfo()
  * @post               pkgmgrinfo_appinfo_destroy_appinfo()
- * @see                pkgmgrinfo_appinfo_get_appid()
- * @see                pkgmgrinfo_appinfo_is_multiple()
  * @code
-static int get_app_enabled(const char *appid)
+int category_func(const char *name, void *user_data)
+{
+       if (strcmp(name, (char *)user_data) == 0)
+               return -1;
+       else
+               return 0;
+}
+
+static int list_category(const char *appid, char *category)
 {
        int ret = 0;
-       bool enabled;
        pkgmgrinfo_appinfo_h handle;
        ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_is_taskmanage(handle, &enabled);
+       ret = pkgmgrinfo_appinfo_foreach_category(handle, category_func, (void *)category);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       printf("app enabled: %d\n", enabled);
        pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_is_enabled(pkgmgrinfo_appinfo_h  handle, bool *enabled);
+int pkgmgrinfo_appinfo_foreach_category(pkgmgrinfo_appinfo_h handle,
+                       pkgmgrinfo_app_category_list_cb category_func, void *user_data);
 
 /**
- * @fn int pkgmgrinfo_appinfo_is_onboot(pkgmgrinfo_appinfo_h handle, bool *onboot)
- * @brief      This API gets the application 'onboot' value from the app ID
+ * @fn int pkgmgrinfo_appinfo_foreach_metadata(pkgmgrinfo_appinfo_h handle,
+                       pkgmgrinfo_app_metadata_list_cb metadata_func, void *user_data);
+ * @brief      This API gets the list of metadata for a particular application
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
- *
- * @param[in]  handle  pointer to application info handle
- * @param[out] onboot          pointer to hold package onboot value
+ * @param[in]  handle          pointer to the application info handle.
+ * @param[in]  metadata_func           callback function for list
+ * @param[in] user_data        user data to be passed to callback function
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
  * @pre                pkgmgrinfo_appinfo_get_appinfo()
  * @post               pkgmgrinfo_appinfo_destroy_appinfo()
- * @see                pkgmgrinfo_appinfo_get_appid()
- * @see                pkgmgrinfo_appinfo_is_multiple()
  * @code
-static int get_app_onboot(const char *appid)
+int metadata_func(const char *key, const char *value, void *user_data)
+{
+       if (strcmp(key, (char *)user_data) == 0) {
+               printf("Value is %s\n", value);
+               return -1;
+       }
+       else
+               return 0;
+}
+
+static int list_metadata(const char *appid, char *key)
 {
        int ret = 0;
-       bool onboot;
        pkgmgrinfo_appinfo_h handle;
        ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_is_onboot(handle, &onboot);
+       ret = pkgmgrinfo_appinfo_foreach_metadata(handle, metadata_func, (void *)key);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       printf("app onboot: %d\n", onboot);
        pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_is_onboot(pkgmgrinfo_appinfo_h  handle, bool *onboot);
+int pkgmgrinfo_appinfo_foreach_metadata(pkgmgrinfo_appinfo_h handle,
+                       pkgmgrinfo_app_metadata_list_cb metadata_func, void *user_data);
 
 /**
- * @fn int pkgmgrinfo_appinfo_is_autorestart(pkgmgrinfo_appinfo_h handle, bool *autorestart)
- * @brief      This API gets the application 'autorestart' value from the app ID
+ * @fn int pkgmgrinfo_appinfo_foreach_appcontrol_privileges(const char *appid,
+ *                     const char *operation,
+ *                     pkgmgrinfo_pkg_privilege_list_cb privilege_func,
+ *                     void *user_data);
+ * @brief      This API gets the list of privileges for a particular
+ *             appllication's app_control
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
+ * @param[in]  appid           application id
+ * @param[in]  operation       operation of appcontrol
+ * @param[in]  privilege_func  callback function for list
+ * @param[in]  user_data       user data to be passed to callback function
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ */
+int pkgmgrinfo_appinfo_usr_foreach_appcontrol_privileges(const char *appid,
+               const char *operation,
+               pkgmgrinfo_pkg_privilege_list_cb privilege_func,
+               void *user_data, uid_t uid);
+int pkgmgrinfo_appinfo_foreach_appcontrol_privileges(const char *appid,
+               const char *operation,
+               pkgmgrinfo_pkg_privilege_list_cb privilege_func,
+               void *user_data);
+
+/**
+ * @fn int pkgmgrinfo_appinfo_foreach_appcontrol(pkgmgrinfo_appinfo_h handle,
+                       pkgmgrinfo_app_control_list_cb appcontrol_func, void *user_data);
+ * @fn int pkgmgrinfo_usr_appinfo_foreach_appcontrol(pkgmgrinfo_appinfo_h handle,
+                       pkgmgrinfo_app_control_list_cb appcontrol_func, void *user_data, uid_t uid);
+ * @brief      This API gets the list of app-control for a particular application
  *
- * @param[in]  handle  pointer to application info handle
- * @param[out] autorestart             pointer to hold package autorestart value
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ * @param[in]  handle          pointer to the application info handle.
+ * @param[in]  appcontrol_func         callback function for list
+ * @param[in] user_data        user data to be passed to callback function
+ * @param[in]  uid     the addressee user id of the instruction
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
  * @pre                pkgmgrinfo_appinfo_get_appinfo()
  * @post               pkgmgrinfo_appinfo_destroy_appinfo()
- * @see                pkgmgrinfo_appinfo_get_appid()
- * @see                pkgmgrinfo_appinfo_is_multiple()
  * @code
-static int get_app_autorestart(const char *appid)
+int appcontrol_func(pkgmgrinfo_appcontrol_h handle, void *user_data)
+{
+       int oc = 0;
+       int i = 0;
+       char **operation;
+       pkgmgrinfo_appinfo_get_operation(handle, &oc, &operation);
+       for (i = 0; i < oc; i++) {
+               if (strcmp(operation[i], (char *)user_data) == 0)
+                       return -1;
+               else
+                       return 0;
+       }
+}
+
+static int check_operation(const char *appid, char *operation)
 {
        int ret = 0;
-       bool autorestart;
        pkgmgrinfo_appinfo_h handle;
        ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_is_autorestart(handle, &autorestart);
+       ret = pkgmgrinfo_appinfo_foreach_appcontrol(handle, appcontrol_func, (void *)operation);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       printf("app autorestart: %d\n", autorestart);
        pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_is_autorestart(pkgmgrinfo_appinfo_h  handle, bool *autorestart);
+int pkgmgrinfo_appinfo_foreach_appcontrol(pkgmgrinfo_appinfo_h handle,
+                       pkgmgrinfo_app_control_list_cb appcontrol_func, void *user_data);
+
+int pkgmgrinfo_appinfo_foreach_remote_appcontrol(pkgmgrinfo_appinfo_h handle,
+                       pkgmgrinfo_app_control_list_cb appcontrol_func, void *user_data);
 
 /**
- * @fn int pkgmgrinfo_appinfo_is_mainapp(pkgmgrinfo_appinfo_h  handle, bool *mainapp)
- * @brief      This API gets the value for given application is main app or not from handle
+ * @brief
+ */
+int pkgmgrinfo_appinfo_foreach_background_category(pkgmgrinfo_appinfo_h handle,
+               pkgmgrinfo_app_background_category_list_cb category_func, void *user_data);
+
+/**
+ * @fn int pkgmgrinfo_appinfo_foreach_splash_screen(pkgmgrinfo_appinfo_h handle,
+                       pkgmgrinfo_app_splash_screen_list_cb splash_screen_func, void *user_data);
+ * @brief      This API gets the list of splashscreen for a particular application
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ * @param[in]  handle          pointer to the application info handle.
+ * @param[in]  splash_screen_func              callback function for list
+ * @param[in]  user_data       user data to be passed to callback function
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_appinfo_get_appinfo()
+ * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @code
+ */
+int pkgmgrinfo_appinfo_foreach_splash_screen(pkgmgrinfo_appinfo_h handle,
+               pkgmgrinfo_app_splash_screen_list_cb splash_screen_func, void *user_data);
+
+/**
+ * @fn int pkgmgrinfo_appinfo_is_nodisplay(pkgmgrinfo_appinfo_h handle, bool *nodisplay)
+ * @brief      This API gets the application 'nodisplay' value from the app ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
  * @param[in]  handle  pointer to application info handle
- * @param[out] mainapp         pointer to hold package mainapp is or not
+ * @param[out] nodisplay               pointer to hold package nodisplay value
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
@@ -3766,37 +4530,36 @@ int pkgmgrinfo_appinfo_is_autorestart(pkgmgrinfo_appinfo_h  handle, bool *autore
  * @see                pkgmgrinfo_appinfo_get_appid()
  * @see                pkgmgrinfo_appinfo_is_multiple()
  * @code
-static int get_app_mainapp(const char *appid)
+static int get_app_nodisplay(const char *appid)
 {
        int ret = 0;
-       bool mainapp;
+       bool nodisplay;
        pkgmgrinfo_appinfo_h handle;
        ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_is_mainapp(handle, &mainapp);
+       ret = pkgmgrinfo_appinfo_is_nodisplay(handle, &nodisplay);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       printf("mainapp: %d\n", mainapp);
+       printf("app nodisplay: %d\n", nodisplay);
        pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_is_mainapp(pkgmgrinfo_appinfo_h  handle, bool *mainapp);
-
+int pkgmgrinfo_appinfo_is_nodisplay(pkgmgrinfo_appinfo_h  handle, bool *nodisplay);
 
 /**
- * @fn int pkgmgrinfo_appinfo_is_preload(pkgmgrinfo_appinfo_h handle, bool *preload)
- * @brief      This API gets the value for given application is preload or not from handle
+ * @fn int pkgmgrinfo_appinfo_is_multiple(pkgmgrinfo_appinfo_h handle, bool *multiple)
+ * @brief      This API gets the application 'multiple' value from the app ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
  * @param[in]  handle  pointer to application info handle
- * @param[out] preload         pointer to hold preload is or not
+ * @param[out] multiple                pointer to hold package multiple value
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
@@ -3804,38 +4567,39 @@ int pkgmgrinfo_appinfo_is_mainapp(pkgmgrinfo_appinfo_h  handle, bool *mainapp);
  * @pre                pkgmgrinfo_appinfo_get_appinfo()
  * @post               pkgmgrinfo_appinfo_destroy_appinfo()
  * @see                pkgmgrinfo_appinfo_get_appid()
- * @see                pkgmgrinfo_appinfo_is_multiple()
+ * @see                pkgmgrinfo_appinfo_is_nodisplay()
  * @code
-static int get_app_preload(const char *appid)
+static int get_app_multiple(const char *appid)
 {
        int ret = 0;
-       bool preload = 0;
-       pkgmgrinfo_appinfo_h handle = NULL;
+       bool multiple;
+       pkgmgrinfo_appinfo_h handle;
        ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_is_preload(handle, &preload);
+       ret = pkgmgrinfo_appinfo_is_multiple(handle, &multiple);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       printf("preload: %d\n", preload);
+       printf("app multiple: %d\n", multiple);
        pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_is_preload(pkgmgrinfo_appinfo_h handle, bool *preload);
+int pkgmgrinfo_appinfo_is_multiple(pkgmgrinfo_appinfo_h  handle, bool *multiple);
 
 /**
- * @fn int pkgmgrinfo_appinfo_is_submode(pkgmgrinfo_appinfo_h handle, bool *submode)
- * @brief      This API gets the value for given application is submode or not from handle
+ * @fn int pkgmgrinfo_appinfo_is_indicator_display_allowed(pkgmgrinfo_appinfo_h handle, bool *indicator_disp)
+ * @brief      This API gets the application 'indicatordisplay' value. If true, indicator will be displayed during
+ *             application launching effect. If fales, indicator will be hidden during application launching effect
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
  * @param[in]  handle  pointer to application info handle
- * @param[out] submode         pointer to hold submode is or not
+ * @param[out]  indicator_disp contains indicator display status for application launching effect
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
@@ -3843,1427 +4607,1477 @@ int pkgmgrinfo_appinfo_is_preload(pkgmgrinfo_appinfo_h handle, bool *preload);
  * @pre                pkgmgrinfo_appinfo_get_appinfo()
  * @post               pkgmgrinfo_appinfo_destroy_appinfo()
  * @see                pkgmgrinfo_appinfo_get_appid()
- * @see                pkgmgrinfo_appinfo_is_multiple()
+ * @see                pkgmgrinfo_appinfo_is_nodisplay()
  * @code
-static int get_app_submode(const char *appid)
+static int get_app_indicator_display(const char *appid)
 {
        int ret = 0;
-       bool submode = 0;
-       pkgmgrinfo_appinfo_h handle = NULL;
+       bool indicator_disp;
+       pkgmgrinfo_appinfo_h handle;
        ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_is_submode(handle, &submode);
-       if (ret != PMINFO_R_OK) {
+       ret = pkgmgrinfo_appinfo_is_indicator_display_allowed(handle, &indicator_disp);
+       if (ret != PMINFO_R_OK){
                pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       printf("submode: %d\n", submode);
+       printf("app indicator disp : %d\n", indicator_disp);
        pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_is_submode(pkgmgrinfo_appinfo_h handle, bool *submode);
+int pkgmgrinfo_appinfo_is_indicator_display_allowed(pkgmgrinfo_appinfo_h handle, bool *indicator_disp);
 
 /**
- * @fn int pkgmgrinfo_appinfo_is_category_exist(pkgmgrinfo_appinfo_h handle, const char *category, bool *exist)
- * @brief      This API checks if the application has the given category
+ * @fn int pkgmgrinfo_appinfo_is_taskmanage(pkgmgrinfo_appinfo_h handle, bool *taskmanage)
+ * @brief      This API gets the application 'taskmanage' value from the app ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in]  handle  pointer to the application info handle
- * @param[in]  category        category
- * @param[out] exist           value Gets whether the application has the given category
+ * @param[in]  handle  pointer to application info handle
+ * @param[out] taskmanage              pointer to hold package taskmanage value
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_appinfo_get_appinfo()
+ * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see                pkgmgrinfo_appinfo_get_appid()
+ * @see                pkgmgrinfo_appinfo_is_multiple()
  * @code
-static int is_category_exist(const char *appid, const char *category)
+static int get_app_taskmanage(const char *appid)
 {
        int ret = 0;
+       bool taskmanage;
        pkgmgrinfo_appinfo_h handle;
-       bool exist = false;
-
        ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-
-       ret = pkgmgrinfo_appinfo_is_category_exist(handle, category, &exist);
+       ret = pkgmgrinfo_appinfo_is_taskmanage(handle, &taskmanage);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-
+       printf("app taskmanage: %d\n", taskmanage);
        pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_is_category_exist(pkgmgrinfo_appinfo_h handle, const char *category, bool *exist);
+int pkgmgrinfo_appinfo_is_taskmanage(pkgmgrinfo_appinfo_h  handle, bool *taskmanage);
 
 /**
- * @fn int pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo_h handle)
- * @brief      This API destroys the application information handle freeing up all the resources
+ * @fn int pkgmgrinfo_appinfo_is_enabled(pkgmgrinfo_appinfo_h handle, bool *enabled)
+ * @brief      This API gets the application 'taskmanage' value from the app ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the application info handle.
+ * @param[in]  handle  pointer to application info handle
+ * @param[out] enabled         pointer to hold package enabled value
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
  * @pre                pkgmgrinfo_appinfo_get_appinfo()
- * @post               None
- * @see                pkgmgrinfo_appinfo_get_pkgid()
+ * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see                pkgmgrinfo_appinfo_get_appid()
  * @see                pkgmgrinfo_appinfo_is_multiple()
  * @code
-static int get_app_type(const char *appid)
+static int get_app_enabled(const char *appid)
 {
        int ret = 0;
-       char *type = NULL;
+       bool enabled;
        pkgmgrinfo_appinfo_h handle;
        ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_get_apptype(handle, &type);
+       ret = pkgmgrinfo_appinfo_is_taskmanage(handle, &enabled);
        if (ret != PMINFO_R_OK) {
                pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       printf("apptype: %s\n", type);
+       printf("app enabled: %d\n", enabled);
        pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo_h  handle);
+int pkgmgrinfo_appinfo_is_enabled(pkgmgrinfo_appinfo_h  handle, bool *enabled);
 
 /**
- * @fn int pkgmgrinfo_appinfo_filter_create(pkgmgrinfo_appinfo_filter_h *handle)
- * @brief      This API creates the application information filter handle from db.  All filter properties will be ANDed.
- The query will search the entire application information collected from the manifest file of all the installed packages
+ * @fn int pkgmgrinfo_appinfo_is_onboot(pkgmgrinfo_appinfo_h handle, bool *onboot)
+ * @brief      This API gets the application 'onboot' value from the app ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[out] handle          pointer to the application info filter handle.
+ * @param[in]  handle  pointer to application info handle
+ * @param[out] onboot          pointer to hold package onboot value
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
- * @retval     PMINFO_R_EINVAL invalid argument
- * @retval     PMINFO_R_ERROR  internal error
- * @pre                None
- * @post               pkgmgrinfo_appinfo_filter_destroy()
- * @see                pkgmgrinfo_appinfo_filter_count()
- * @see                pkgmgrinfo_appinfo_filter_foreach_appinfo()
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_appinfo_get_appinfo()
+ * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see                pkgmgrinfo_appinfo_get_appid()
+ * @see                pkgmgrinfo_appinfo_is_multiple()
  * @code
-static int get_capp_count()
+static int get_app_onboot(const char *appid)
 {
        int ret = 0;
-       int count = 0;
-       pkgmgrinfo_appinfo_filter_h handle;
-       ret = pkgmgrinfo_appinfo_filter_create(&handle);
+       bool onboot;
+       pkgmgrinfo_appinfo_h handle;
+       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp");
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_filter_destroy(handle);
-               return -1;
-       }
-       ret = pkgmgrinfo_appinfo_filter_count(handle, &count);
+       ret = pkgmgrinfo_appinfo_is_onboot(handle, &onboot);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_filter_destroy(handle);
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       printf("No of capp: %d\n", count);
-       pkgmgrinfo_appinfo_filter_destroy(handle);
+       printf("app onboot: %d\n", onboot);
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_filter_create(pkgmgrinfo_appinfo_filter_h *handle);
+int pkgmgrinfo_appinfo_is_onboot(pkgmgrinfo_appinfo_h  handle, bool *onboot);
 
 /**
- * @fn int pkgmgrinfo_appinfo_filter_destroy(pkgmgrinfo_appinfo_filter_h handle)
- * @brief      This API destroys the application information filter handle freeing up all the resources
+ * @fn int pkgmgrinfo_appinfo_is_autorestart(pkgmgrinfo_appinfo_h handle, bool *autorestart)
+ * @brief      This API gets the application 'autorestart' value from the app ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the application info filter handle.
+ * @param[in]  handle  pointer to application info handle
+ * @param[out] autorestart             pointer to hold package autorestart value
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_appinfo_filter_create()
- * @post               None
- * @see                pkgmgrinfo_appinfo_filter_count()
- * @see                pkgmgrinfo_appinfo_filter_foreach_appinfo()
+ * @pre                pkgmgrinfo_appinfo_get_appinfo()
+ * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see                pkgmgrinfo_appinfo_get_appid()
+ * @see                pkgmgrinfo_appinfo_is_multiple()
  * @code
-static int get_capp_count()
+static int get_app_autorestart(const char *appid)
 {
        int ret = 0;
-       int count = 0;
-       pkgmgrinfo_appinfo_filter_h handle;
-       ret = pkgmgrinfo_appinfo_filter_create(&handle);
+       bool autorestart;
+       pkgmgrinfo_appinfo_h handle;
+       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp");
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_filter_destroy(handle);
-               return -1;
-       }
-       ret = pkgmgrinfo_appinfo_filter_count(handle, &count);
+       ret = pkgmgrinfo_appinfo_is_autorestart(handle, &autorestart);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_filter_destroy(handle);
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       printf("No of capp: %d\n", count);
-       pkgmgrinfo_appinfo_filter_destroy(handle);
+       printf("app autorestart: %d\n", autorestart);
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_filter_destroy(pkgmgrinfo_appinfo_filter_h handle);
+int pkgmgrinfo_appinfo_is_autorestart(pkgmgrinfo_appinfo_h  handle, bool *autorestart);
 
 /**
- * @fn int pkgmgrinfo_appinfo_filter_add_bool(pkgmgrinfo_appinfo_filter_h handle, const char *property, const bool value)
- * @brief      This API adds a boolean filter property to the filter handle
+ * @fn int pkgmgrinfo_appinfo_is_mainapp(pkgmgrinfo_appinfo_h  handle, bool *mainapp)
+ * @brief      This API gets the value for given application is main app or not from handle
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the application info filter handle.
- * @param[in] property         boolean property name.
- * @param[in] value            value corresponding to the property.
+ * @param[in]  handle  pointer to application info handle
+ * @param[out] mainapp         pointer to hold package mainapp is or not
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_appinfo_filter_create()
- * @post               pkgmgrinfo_appinfo_filter_destroy()
- * @see                pkgmgrinfo_appinfo_filter_count()
- * @see                pkgmgrinfo_appinfo_filter_foreach_appinfo()
+ * @pre                pkgmgrinfo_appinfo_get_appinfo()
+ * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see                pkgmgrinfo_appinfo_get_appid()
+ * @see                pkgmgrinfo_appinfo_is_multiple()
  * @code
-static int get_taskmanageable_app_count()
+static int get_app_mainapp(const char *appid)
 {
        int ret = 0;
-       int count = 0;
-       pkgmgrinfo_appinfo_filter_h handle;
-       ret = pkgmgrinfo_appinfo_filter_create(&handle);
+       bool mainapp;
+       pkgmgrinfo_appinfo_h handle;
+       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_filter_add_bool(handle, PMINFO_APPINFO_PROP_APP_TASKMANAGE, 1);
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_filter_destroy(handle);
-               return -1;
-       }
-       ret = pkgmgrinfo_appinfo_filter_count(handle, &count);
+       ret = pkgmgrinfo_appinfo_is_mainapp(handle, &mainapp);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_filter_destroy(handle);
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       printf("No of taskmanageable apps: %d\n", count);
-       pkgmgrinfo_appinfo_filter_destroy(handle);
+       printf("mainapp: %d\n", mainapp);
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_filter_add_bool(pkgmgrinfo_appinfo_filter_h handle,
-               const char *property, const bool value);
+int pkgmgrinfo_appinfo_is_mainapp(pkgmgrinfo_appinfo_h  handle, bool *mainapp);
+
 
 /**
- * @fn int pkgmgrinfo_appinfo_filter_add_int(pkgmgrinfo_appinfo_filter_h handle, const char *property, const int value)
- * @brief      This API adds an integer filter property to the filter handle
+ * @fn int pkgmgrinfo_appinfo_is_preload(pkgmgrinfo_appinfo_h handle, bool *preload)
+ * @brief      This API gets the value for given application is preload or not from handle
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the application info filter handle.
- * @param[in] property         integer property name.
- * @param[in] value            value corresponding to the property.
+ * @param[in]  handle  pointer to application info handle
+ * @param[out] preload         pointer to hold preload is or not
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_appinfo_filter_create()
- * @post               pkgmgrinfo_appinfo_filter_destroy()
- * @see                pkgmgrinfo_appinfo_filter_count()
- * @see                pkgmgrinfo_appinfo_filter_foreach_appinfo()
+ * @pre                pkgmgrinfo_appinfo_get_appinfo()
+ * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see                pkgmgrinfo_appinfo_get_appid()
+ * @see                pkgmgrinfo_appinfo_is_multiple()
  * @code
-static int get_taskmanageable_app_count()
+static int get_app_preload(const char *appid)
 {
        int ret = 0;
-       int count = 0;
-       pkgmgrinfo_appinfo_filter_h handle;
-       ret = pkgmgrinfo_appinfo_filter_create(&handle);
+       bool preload = 0;
+       pkgmgrinfo_appinfo_h handle = NULL;
+       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_filter_add_bool(handle, PMINFO_APPINFO_PROP_APP_XXX, 10);
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_filter_destroy(handle);
-               return -1;
-       }
-       ret = pkgmgrinfo_appinfo_filter_count(handle, &count);
+       ret = pkgmgrinfo_appinfo_is_preload(handle, &preload);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_filter_destroy(handle);
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       printf("No of apps: %d\n", count);
-       pkgmgrinfo_appinfo_filter_destroy(handle);
+       printf("preload: %d\n", preload);
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_filter_add_int(pkgmgrinfo_appinfo_filter_h handle,
-               const char *property, const int value);
+int pkgmgrinfo_appinfo_is_preload(pkgmgrinfo_appinfo_h handle, bool *preload);
 
 /**
- * @fn int pkgmgrinfo_appinfo_filter_add_string(pkgmgrinfo_appinfo_filter_h handle, const char *property, const char *value)
- * @brief      This API adds a string filter property to the filter handle
+ * @fn int pkgmgrinfo_appinfo_is_submode(pkgmgrinfo_appinfo_h handle, bool *submode)
+ * @brief      This API gets the value for given application is submode or not from handle
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the application info filter handle.
- * @param[in] property         string property name.
- * @param[in] value            value corresponding to the property.
+ * @param[in]  handle  pointer to application info handle
+ * @param[out] submode         pointer to hold submode is or not
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_appinfo_filter_create()
- * @post               pkgmgrinfo_appinfo_filter_destroy()
- * @see                pkgmgrinfo_appinfo_filter_count()
- * @see                pkgmgrinfo_appinfo_filter_foreach_appinfo()
+ * @pre                pkgmgrinfo_appinfo_get_appinfo()
+ * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see                pkgmgrinfo_appinfo_get_appid()
+ * @see                pkgmgrinfo_appinfo_is_multiple()
  * @code
-static int get_capp_count()
+static int get_app_submode(const char *appid)
 {
        int ret = 0;
-       int count = 0;
-       pkgmgrinfo_appinfo_filter_h handle;
-       ret = pkgmgrinfo_appinfo_filter_create(&handle);
+       bool submode = 0;
+       pkgmgrinfo_appinfo_h handle = NULL;
+       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp");
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_filter_destroy(handle);
-               return -1;
-       }
-       ret = pkgmgrinfo_appinfo_filter_count(handle, &count);
+       ret = pkgmgrinfo_appinfo_is_submode(handle, &submode);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_filter_destroy(handle);
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       printf("No of capp: %d\n", count);
-       pkgmgrinfo_appinfo_filter_destroy(handle);
+       printf("submode: %d\n", submode);
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_filter_add_string(pkgmgrinfo_appinfo_filter_h handle,
-               const char *property, const char *value);
+int pkgmgrinfo_appinfo_is_submode(pkgmgrinfo_appinfo_h handle, bool *submode);
 
 /**
- * @fn int pkgmgrinfo_appinfo_filter_foreach_appinfo(pkgmgrinfo_appinfo_filter_h handle, pkgmgrinfo_app_list_cb app_cb, void *user_data)
- * @brief      This API executes the user supplied callback function for each application that satisfy the filter conditions
+ * @fn int int pkgmgrinfo_appinfo_is_process_pool(pkgmgrinfo_appinfo_h handle, bool *process_pool)
+ * @brief      This API gets the value for given application is process_pool or not from handle
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the application info filter handle.
- * @param[in] app_cb           callback function.
- * @param[in] user_data                user data to be passed to the callback function
+ * @param[in]  handle  pointer to application info handle
+ * @param[out] process_pool            pointer to hold process_pool is or not
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_appinfo_filter_create()
- * @post               pkgmgrinfo_appinfo_filter_destroy()
- * @see                pkgmgrinfo_appinfo_filter_count()
+ * @pre                pkgmgrinfo_appinfo_get_appinfo()
+ * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see                pkgmgrinfo_appinfo_get_appid()
  * @code
-int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
-{
-       char *appid = NULL;
-       pkgmgrinfo_appinfo_get_appid(handle, &appid);
-       printf("appid : %s\n", appid);
-       return 0;
-}
-
-static int get_capp_list()
+static int get_app_process_pool(const char *appid)
 {
        int ret = 0;
-       pkgmgrinfo_appinfo_filter_h handle;
-       ret = pkgmgrinfo_appinfo_filter_create(&handle);
+       bool process_pool = 0;
+       pkgmgrinfo_appinfo_h handle = NULL;
+       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp");
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_filter_destroy(handle);
-               return -1;
-       }
-       ret = pkgmgrinfo_appinfo_filter_foreach_appinfo(handle, app_list_cb, NULL);
+       ret = pkgmgrinfo_appinfo_is_process_pool(handle, &process_pool);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_filter_destroy(handle);
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       pkgmgrinfo_appinfo_filter_destroy(handle);
+       printf("process_pool: %d\n", process_pool);
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_filter_foreach_appinfo(pkgmgrinfo_appinfo_filter_h handle,
-               pkgmgrinfo_app_list_cb app_cb, void *user_data);
-int pkgmgrinfo_appinfo_usr_filter_foreach_appinfo(pkgmgrinfo_appinfo_filter_h handle,
-               pkgmgrinfo_app_list_cb app_cb, void *user_data, uid_t uid);
+int pkgmgrinfo_appinfo_is_process_pool(pkgmgrinfo_appinfo_h handle, bool *process_pool);
 
 /**
- * @fn int pkgmgrinfo_appinfo_filter_count(pkgmgrinfo_appinfo_filter_h handle, int *count)
- * @fn int pkgmgrinfo_appinfo_usr_filter_count(pkgmgrinfo_appinfo_filter_h handle, int *count, uid_t uid)
- * @brief      This API counts the application that satisfy the filter conditions
+ * @fn int pkgmgrinfo_appinfo_get_installed_storage_location(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_installed_storage *storage)
+ * @brief      This API gets the installed storage location of the application
  *
- * @par                This API is for package-manager client application
+ * @par        This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the application info filter handle.
- * @param[in] count            pointer to store count value
- * @param[in]  uid     the addressee user id of the instruction
+ * @param[in] handle           pointer to the application info handle.
+ * @param[out] app_type                pointer to hold installed storage location
  * @return     0 if success, error code(<0) if fail
- * @retval     PMINFO_R_OK     success
- * @retval     PMINFO_R_EINVAL invalid argument
- * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_appinfo_filter_create()
- * @post               pkgmgrinfo_appinfo_filter_destroy()
- * @see                pkgmgrinfo_appinfo_filter_foreach_appinfo()
+ * @retval     PMINFO_R_OK success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre        pkgmgrinfo_appinfo_get_appinfo()
+ * @post       pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see        pkgmgrinfo_appinfo_get_appid()
  * @code
-static int get_capp_count()
+static int get_app_installed_location(const char *appid)
 {
        int ret = 0;
-       int count = 0;
-       pkgmgrinfo_appinfo_filter_h handle;
-       ret = pkgmgrinfo_appinfo_filter_create(&handle);
+       pkgmgrinfo_installed_storage storage;
+       pkgmgrinfo_appinfo_h handle = NULL;
+       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp");
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_filter_destroy(handle);
-               return -1;
-       }
-       ret = pkgmgrinfo_appinfo_filter_count(handle, &count);
+       ret = pkgmgrinfo_appinfo_get_installed_storage_location(handle, &storage);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_filter_destroy(handle);
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       printf("No of capp: %d\n", count);
-       pkgmgrinfo_appinfo_filter_destroy(handle);
+       printf("Installed storage location : %d\n", storage);
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_filter_count(pkgmgrinfo_appinfo_filter_h handle, int *count);
-int pkgmgrinfo_appinfo_usr_filter_count(pkgmgrinfo_appinfo_filter_h handle, int *count, uid_t uid);
+int pkgmgrinfo_appinfo_get_installed_storage_location(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_installed_storage *storage);
+
+
 /**
- * @fn int pkgmgrinfo_appinfo_metadata_filter_create(pkgmgrinfo_appinfo_metadata_filter_h *handle)
- * @brief      This API creates the application's metadata  information filter handle from db.
+ * @fn int pkgmgrinfo_appinfo_is_category_exist(pkgmgrinfo_appinfo_h handle, const char *category, bool *exist)
+ * @brief      This API checks if the application has the given category
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[out] handle          pointer to the application metadata info filter handle.
+ * @param[in]  handle  pointer to the application info handle
+ * @param[in]  category        category
+ * @param[out] exist           value Gets whether the application has the given category
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                None
- * @post               pkgmgrinfo_appinfo_metadata_filter_destroy()
- * @see                pkgmgrinfo_appinfo_metadata_filter_foreach()
  * @code
-int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
-{
-       char *appid = NULL;
-       pkgmgrinfo_appinfo_get_appid(handle, &appid);
-       printf("appid : %s\n", appid);
-       return 0;
-}
-
-static int get_app_list(const char *mkey, const char *mvalue)
+static int is_category_exist(const char *appid, const char *category)
 {
        int ret = 0;
-       pkgmgrinfo_appinfo_metadata_filter_h handle;
-       ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle);
+       pkgmgrinfo_appinfo_h handle;
+       bool exist = false;
+
+       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue);
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
-               return -1;
-       }
-       ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL);
+
+       ret = pkgmgrinfo_appinfo_is_category_exist(handle, category, &exist);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
+
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_metadata_filter_create(pkgmgrinfo_appinfo_metadata_filter_h *handle);
+int pkgmgrinfo_appinfo_is_category_exist(pkgmgrinfo_appinfo_h handle, const char *category, bool *exist);
 
 /**
- * @fn int pkgmgrinfo_appinfo_metadata_filter_destroy(pkgmgrinfo_appinfo_metadata_filter_h handle)
- * @brief      This API destroys the application's metadata  information filter handle.
+ * @fn int pkgmgrinfo_appinfo_is_ui_gadget(pkgmgrinfo_appinfo_h handle, bool *ui_gadget)
+ * @brief      This API gets the application 'ui_gadget' value from the app ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the application metadata info filter handle.
+ * @param[in]  handle  pointer to application info handle
+ * @param[out] ui_gadget       pointer to hold package ui_gadget value
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
- * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_appinfo_metadata_filter_create()
- * @post               None
- * @see                pkgmgrinfo_appinfo_metadata_filter_foreach()
+ * @pre                pkgmgrinfo_appinfo_get_appinfo()
+ * @post       pkgmgrinfo_appinfo_destroy_appinfo()
  * @code
-int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
-{
-       char *appid = NULL;
-       pkgmgrinfo_appinfo_get_appid(handle, &appid);
-       printf("appid : %s\n", appid);
-       return 0;
-}
-
-static int get_app_list(const char *mkey, const char *mvalue)
+static int get_app_ui_gadget(const char *appid)
 {
        int ret = 0;
-       pkgmgrinfo_appinfo_metadata_filter_h handle;
-       ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle);
+       bool ui_gadget;
+       pkgmgrinfo_appinfo_h handle = NULL;
+       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue);
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
-               return -1;
-       }
-       ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL);
+       ret = pkgmgrinfo_appinfo_is_ui_gadget(handle, &ui_gadget);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
+       printf("app ui_gadget: %d\n", ui_gadget);
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_metadata_filter_destroy(pkgmgrinfo_appinfo_metadata_filter_h handle);
+int pkgmgrinfo_appinfo_is_ui_gadget(pkgmgrinfo_appinfo_h handle, bool *ui_gadget);
 
 /**
- * @fn int pkgmgrinfo_appinfo_metadata_filter_add(pkgmgrinfo_appinfo_metadata_filter_h handle, const char *key, const char *value)
- * @brief      This API adds filter condition for the query API.  The query will search the entire application metadata  information collected from
- * the manifest file of all the installed packages. You can specify value as NULL to search based on key only.
+ * @fn int pkgmgrinfo_appinfo_is_support_disable(pkgmgrinfo_appinfo_h handle, bool *support_disable)
+ * @brief      This API gets the application 'support_disable' value from the app ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the application metadata info filter handle.
- * @param[in] key                      pointer to metadata key
- * @param[in] value                    pointer to metadata value
+ * @param[in]  handle  pointer to application info handle
+ * @param[out] support_disable pointer to hold package support_disable value
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
- * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_appinfo_metadata_filter_create()
- * @post               pkgmgrinfo_appinfo_metadata_filter_foreach(), pkgmgrinfo_appinfo_metadata_filter_destroy()
- * @see                pkgmgrinfo_appinfo_metadata_filter_foreach()
+ * @pre                pkgmgrinfo_appinfo_get_appinfo()
+ * @post       pkgmgrinfo_appinfo_destroy_appinfo()
  * @code
-int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
-{
-       char *appid = NULL;
-       pkgmgrinfo_appinfo_get_appid(handle, &appid);
-       printf("appid : %s\n", appid);
-       return 0;
-}
-
-static int get_app_list(const char *mkey, const char *mvalue)
+static int get_app_support_disable(const char *appid)
 {
        int ret = 0;
-       pkgmgrinfo_appinfo_metadata_filter_h handle;
-       ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle);
+       bool support_disable;
+       pkgmgrinfo_appinfo_h handle = NULL;
+       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue);
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
-               return -1;
-       }
-       ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL);
+       ret = pkgmgrinfo_appinfo_is_support_disable(handle, &support_disable);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
+       printf("app support_disable: %d\n", support_disable);
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_metadata_filter_add(pkgmgrinfo_appinfo_metadata_filter_h handle,
-               const char *key, const char *value);
+int pkgmgrinfo_appinfo_is_support_disable(pkgmgrinfo_appinfo_h handle, bool *support_disable);
 
 /**
- * @fn int pkgmgrinfo_appinfo_metadata_filter_foreach(pkgmgrinfo_appinfo_metadata_filter_h handle, pkgmgrinfo_app_list_cb app_cb, void *user_data)
- * @fn int pkgmgrinfo_appinfo_usr_metadata_filter_foreach(pkgmgrinfo_appinfo_metadata_filter_h handle, pkgmgrinfo_app_list_cb app_cb, void *user_data, uid_t uid)
- * @brief      This API executes the filter query. The query will search the entire application metadata  information collected from
- * the manifest file of all the installed packages. For each application returned by the query, the callback will be called. If callback returns
- * negative value, no more callbacks will be called and API will return.
+ * @fn int pkgmgrinfo_appinfo_is_removable(pkgmgrinfo_appinfo_h handle, bool *removable)
+ * @brief      This API gets the application 'removable' value from the app ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the application metadata info filter handle.
- * @param[in] app_cb           function pointer to callback
- * @param[in] user_data                pointer to user data
- * @param[in]  uid     the addressee user id of the instruction
+ * @param[in]  handle  pointer to application info handle
+ * @param[out] removable       pointer to hold package removable value
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_appinfo_metadata_filter_create()
- * @post               pkgmgrinfo_appinfo_metadata_filter_destroy()
+ * @pre                pkgmgrinfo_appinfo_get_appinfo()
+ * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see                pkgmgrinfo_appinfo_get_appid()
  * @code
-int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
-{
-       char *appid = NULL;
-       pkgmgrinfo_appinfo_get_appid(handle, &appid);
-       printf("appid : %s\n", appid);
-       return 0;
-}
-
-static int get_app_list(const char *mkey, const char *mvalue)
+static int get_app_removable(const char *appid)
 {
        int ret = 0;
-       pkgmgrinfo_appinfo_metadata_filter_h handle;
-       ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle);
+       bool removable;
+       pkgmgrinfo_appinfo_h handle = NULL;
+       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue);
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
-               return -1;
-       }
-       ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL);
+       ret = pkgmgrinfo_appinfo_is_removable(handle, &removable);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
+       printf("app removable: %d\n", removable);
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_appinfo_metadata_filter_foreach(pkgmgrinfo_appinfo_metadata_filter_h handle,
-               pkgmgrinfo_app_list_cb app_cb, void *user_data);
-int pkgmgrinfo_appinfo_usr_metadata_filter_foreach(pkgmgrinfo_appinfo_metadata_filter_h handle,
-               pkgmgrinfo_app_list_cb app_cb, void *user_data, uid_t uid);
+int pkgmgrinfo_appinfo_is_removable(pkgmgrinfo_appinfo_h handle, bool *removable);
+
 /**
- * @fn int pkgmgrinfo_pkginfo_create_certinfo(pkgmgrinfo_certinfo_h *handle)
- * @brief      This API creates the package cert information handle to get data from db.
+ * @fn int pkgmgrinfo_appinfo_is_system(pkgmgrinfo_appinfo_h handle, bool *system)
+ * @brief      This API gets the application 'system' value from the app ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[out] handle          pointer to the package cert handle.
+ * @param[in]  handle  pointer to application info handle
+ * @param[out] system  pointer to hold package system value
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                None
- * @post               pkgmgrinfo_pkginfo_destroy_certinfo()
- * @see                pkgmgrinfo_pkginfo_get_cert_value()
- * @see                pkgmgrinfo_pkginfo_load_certinfo()
+ * @pre                pkgmgrinfo_appinfo_get_appinfo()
+ * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see                pkgmgrinfo_appinfo_get_appid()
  * @code
-static int get_cert_info(const char *pkgid)
+static int get_app_system(const char *appid)
 {
        int ret = 0;
-       pkgmgrinfo_certinfo_h handle;
-       char *auth_cert = NULL;
-       ret = pkgmgrinfo_pkginfo_create_certinfo(&handle);
+       bool system = false;
+       pkgmgrinfo_appinfo_h handle = NULL;
+       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle);
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_destroy_certinfo(handle);
-               return -1;
-       }
-       ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert);
+       ret = pkgmgrinfo_appinfo_is_system(handle, &system);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_destroy_certinfo(handle);
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       printf("Author root certificate: %s\n", auth_root);
-       pkgmgrinfo_pkginfo_destroy_certinfo(handle);
+       printf("app system: %d\n", system);
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_create_certinfo(pkgmgrinfo_certinfo_h *handle);
+int pkgmgrinfo_appinfo_is_system(pkgmgrinfo_appinfo_h handle, bool *system);
+
 
 /**
- * @fn int pkgmgrinfo_pkginfo_load_certinfo(const char *pkgid, pkgmgrinfo_certinfo_h handle)
- * @brief      This API loads the package cert information handle with data from db.
+ * @fn int pkgmgrinfo_appinfo_is_disabled(pkgmgrinfo_appinfo_h handle, bool *disabled)
+ * @brief      This API gets the application 'is_disable' value from the app ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] pkgid            pointer to the package ID.
- * @param[in] handle           pointer to the package cert handle.
+ * @param[in]  handle  pointer to application info handle
+ * @param[out] disabled        pointer to hold application is_disabled value
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
- * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_pkginfo_create_certinfo()
- * @post               pkgmgrinfo_pkginfo_destroy_certinfo()
- * @see                pkgmgrinfo_pkginfo_get_cert_value()
+ * @pre                pkgmgrinfo_appinfo_get_appinfo()
+ * @post       pkgmgrinfo_appinfo_destroy_appinfo()
  * @code
-static int get_cert_info(const char *pkgid)
+static int get_app_is_disable(const char *appid)
 {
        int ret = 0;
-       pkgmgrinfo_certinfo_h handle;
-       char *auth_cert = NULL;
-       ret = pkgmgrinfo_pkginfo_create_certinfo(&handle);
+       bool is_disable;
+       pkgmgrinfo_appinfo_h handle = NULL;
+       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle);
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_destroy_certinfo(handle);
-               return -1;
-       }
-       ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert);
+       ret = pkgmgrinfo_appinfo_is_disabled(handle, &is_disable);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_destroy_certinfo(handle);
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       printf("Author root certificate: %s\n", auth_root);
-       pkgmgrinfo_pkginfo_destroy_certinfo(handle);
+       printf("app is_disable: %d\n", is_disable);
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_load_certinfo(const char *pkgid, pkgmgrinfo_certinfo_h handle, uid_t uid);
+int pkgmgrinfo_appinfo_is_disabled(pkgmgrinfo_appinfo_h handle, bool *disabled);
+
+/**
+ * @fn int pkgmgrinfo_appinfo_is_global(pkgmgrinfo_appinfo_h handle, bool *global)
+ * @brief      This API gets whether the given application is global application or user application
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  handle  pointer to application info handle
+ * @param[in]  global  pointer to hold application global value
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_appinfo_get_appinfo()
+ * @post               pkgmgrinfo_appinfo_destroy_appinfo()
+ * @see                pkgmgrinfo_appinfo_get_appid()
+ static int get_app_is_global(const char *appid)
+ {
+        int ret = 0;
+        bool global;
+        pkgmgrinfo_appinfo_h handle = NULL;
+        ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
+        if (ret != PMINFO_R_OK)
+                return -1;
+        ret = pkgmgrinfo_appinfo_is_global(handle, &global);
+        if (ret != PMINFO_R_OK) {
+                pkgmgrinfo_appinfo_destroy_appinfo(handle);
+                return -1;
+        }
+        printf("app is_global: %d\n", global);
+        pkgmgrinfo_appinfo_destroy_appinfo(handle);
+        return 0;
+ }
+  * @endcode
+  */
+int pkgmgrinfo_appinfo_is_global(pkgmgrinfo_appinfo_h handle, bool *global);
+
+/**
+ * @fn int pkgmgrinfo_appinfo_get_splash_screen_display(pkgmgrinfo_appinfo_h handle, bool *splash_screen_display)
+ * @brief      This API gets the application 'splash_screen_display' value from the app ID
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  handle          pointer to application info handle
+ * @param[out] splash_screen_display   pointer to hold package splash_screen_display value
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ */
+int pkgmgrinfo_appinfo_get_splash_screen_display(pkgmgrinfo_appinfo_h handle, bool *splash_screen_display);
+
+/**
+ * @fn int pkgmgrinfo_appinfo_get_setup_appid(pkgmgrinfo_appinfo_h handle, char **setup_appid)
+ * @brief      This API gets the application 'setup_appid' value from the app ID
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in]  handle          pointer to application info handle
+ * @param[out] setup_appid     pointer to hold package setup_appid value
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ */
+int pkgmgrinfo_appinfo_get_setup_appid(pkgmgrinfo_appinfo_h handle, char **setup_appid);
 
 /**
- * @fn int pkgmgrinfo_pkginfo_get_cert_value(pkgmgrinfo_certinfo_h handle, pkgmgrinfo_cert_type cert_type, const char **cert_value)
- * @brief      This API gets the package cert information from the handle
+ * @fn int pkgmgrinfo_appinfo_is_support_ambient(pkgmgrinfo_appinfo_h handle, bool *support_ambient)
+ * @brief      This API gets the application 'support_ambient' value from the app ID
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the package cert handle.
- * @param[in] cert_type                certificate type
- * @param[out] cert_value      pointer to hold certificate value
+ * @param[in]  handle          pointer to application info handle
+ * @param[out] support_ambient pointer to hold package support_ambient value
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_pkginfo_create_certinfo()
- * @post               pkgmgrinfo_pkginfo_destroy_certinfo()
- * @see                pkgmgrinfo_pkginfo_load_certinfo()
+ */
+int pkgmgrinfo_appinfo_is_support_ambient(pkgmgrinfo_appinfo_h handle, bool *support_ambient);
+
+/**
+ * @fn int pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo_h handle)
+ * @brief      This API destroys the application information handle freeing up all the resources
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ *
+ * @param[in] handle           pointer to the application info handle.
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_appinfo_get_appinfo()
+ * @post               None
+ * @see                pkgmgrinfo_appinfo_get_pkgid()
+ * @see                pkgmgrinfo_appinfo_is_multiple()
  * @code
-static int get_cert_info(const char *pkgid)
+static int get_app_type(const char *appid)
 {
        int ret = 0;
-       pkgmgrinfo_certinfo_h handle;
-       char *auth_cert = NULL;
-       ret = pkgmgrinfo_pkginfo_create_certinfo(&handle);
+       char *type = NULL;
+       pkgmgrinfo_appinfo_h handle;
+       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle);
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_destroy_certinfo(handle);
-               return -1;
-       }
-       ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert);
+       ret = pkgmgrinfo_appinfo_get_apptype(handle, &type);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_destroy_certinfo(handle);
+               pkgmgrinfo_appinfo_destroy_appinfo(handle);
                return -1;
        }
-       printf("Author root certificate: %s\n", auth_root);
-       pkgmgrinfo_pkginfo_destroy_certinfo(handle);
+       printf("apptype: %s\n", type);
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_get_cert_value(pkgmgrinfo_certinfo_h handle, pkgmgrinfo_cert_type cert_type, const char **cert_value);
+int pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo_h  handle);
 
 /**
- * @fn int pkgmgrinfo_pkginfo_destroy_certinfo(pkgmgrinfo_certinfo_h handle)
- * @brief      This API destroys the package cert information handle freeing up all the resources
+ * @fn int pkgmgrinfo_appinfo_filter_create(pkgmgrinfo_appinfo_filter_h *handle)
+ * @brief      This API creates the application information filter handle from db.  All filter properties will be ANDed.
+ The query will search the entire application information collected from the manifest file of all the installed packages
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the package cert handle.
+ * @param[out] handle          pointer to the application info filter handle.
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_pkginfo_create_certinfo()
- * @post               None
- * @see                pkgmgrinfo_pkginfo_load_certinfo()
+ * @pre                None
+ * @post               pkgmgrinfo_appinfo_filter_destroy()
+ * @see                pkgmgrinfo_appinfo_filter_count()
+ * @see                pkgmgrinfo_appinfo_filter_foreach_appinfo()
  * @code
-static int get_cert_info(const char *pkgid)
+static int get_capp_count()
 {
        int ret = 0;
-       pkgmgrinfo_certinfo_h handle;
-       char *auth_cert = NULL;
-       ret = pkgmgrinfo_pkginfo_create_certinfo(&handle);
+       int count = 0;
+       pkgmgrinfo_appinfo_filter_h handle;
+       ret = pkgmgrinfo_appinfo_filter_create(&handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle);
+       ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp");
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_destroy_certinfo(handle);
+               pkgmgrinfo_appinfo_filter_destroy(handle);
                return -1;
        }
-       ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert);
+       ret = pkgmgrinfo_appinfo_filter_count(handle, &count);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_destroy_certinfo(handle);
+               pkgmgrinfo_appinfo_filter_destroy(handle);
                return -1;
        }
-       printf("Author root certificate: %s\n", auth_root);
-       pkgmgrinfo_pkginfo_destroy_certinfo(handle);
+       printf("No of capp: %d\n", count);
+       pkgmgrinfo_appinfo_filter_destroy(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_pkginfo_destroy_certinfo(pkgmgrinfo_certinfo_h handle);
+int pkgmgrinfo_appinfo_filter_create(pkgmgrinfo_appinfo_filter_h *handle);
 
 /**
- * @fn int pkgmgrinfo_delete_certinfo(const char *pkgid)
- * @brief      This API deletes the package cert information from DB
+ * @fn int pkgmgrinfo_appinfo_filter_destroy(pkgmgrinfo_appinfo_filter_h handle)
+ * @brief      This API destroys the application information filter handle freeing up all the resources
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] pkgid            pointer to the package ID.
+ * @param[in] handle           pointer to the application info filter handle.
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                None
+ * @pre                pkgmgrinfo_appinfo_filter_create()
  * @post               None
+ * @see                pkgmgrinfo_appinfo_filter_count()
+ * @see                pkgmgrinfo_appinfo_filter_foreach_appinfo()
  * @code
-static int delete_cert_info(const char *pkgid)
+static int get_capp_count()
 {
        int ret = 0;
-       ret = pkgmgrinfo_delete_certinfo(pkgid);
+       int count = 0;
+       pkgmgrinfo_appinfo_filter_h handle;
+       ret = pkgmgrinfo_appinfo_filter_create(&handle);
        if (ret != PMINFO_R_OK)
                return -1;
+       ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp");
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_appinfo_filter_destroy(handle);
+               return -1;
+       }
+       ret = pkgmgrinfo_appinfo_filter_count(handle, &count);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_appinfo_filter_destroy(handle);
+               return -1;
+       }
+       printf("No of capp: %d\n", count);
+       pkgmgrinfo_appinfo_filter_destroy(handle);
        return 0;
 }
  * @endcode
  */
- int pkgmgrinfo_delete_certinfo(const char *pkgid);
- int pkgmgrinfo_delete_usr_certinfo(const char *pkgid, uid_t uid);
+int pkgmgrinfo_appinfo_filter_destroy(pkgmgrinfo_appinfo_filter_h handle);
+
 /**
- * @fn int pkgmgrinfo_create_pkgdbinfo(const char *pkgid, pkgmgrinfo_pkgdbinfo_h *handle)
- * @fn int pkgmgrinfo_create_pkgusrdbinfo(const char *pkgid, pkgmgrinfo_pkgdbinfo_h *handle)
- * @brief      This API creates the package db information handle to set data in db.
+ * @fn int pkgmgrinfo_appinfo_filter_add_bool(pkgmgrinfo_appinfo_filter_h handle, const char *property, const bool value)
+ * @brief      This API adds a boolean filter property to the filter handle
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] pkgid    pointer to the package ID.
- * @param[in]  uid     the addressee user id of the instruction
- * @param[out] handle          pointer to the package db info handle.
+ * @param[in] handle           pointer to the application info filter handle.
+ * @param[in] property         boolean property name.
+ * @param[in] value            value corresponding to the property.
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                None
- * @post               pkgmgrinfo_destroy_pkgdbinfo()
- * @see                pkgmgrinfo_save_pkgdbinfo()
- * @see                pkgmgrinfo_set_type_to_pkgdbinfo()
+ * @pre                pkgmgrinfo_appinfo_filter_create()
+ * @post               pkgmgrinfo_appinfo_filter_destroy()
+ * @see                pkgmgrinfo_appinfo_filter_count()
+ * @see                pkgmgrinfo_appinfo_filter_foreach_appinfo()
  * @code
-static int set_pkg_in_db(const char *pkgid)
+static int get_taskmanageable_app_count()
 {
        int ret = 0;
-       pkgmgrinfo_pkgdbinfo_h handle;
-       ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
+       int count = 0;
+       pkgmgrinfo_appinfo_filter_h handle;
+       ret = pkgmgrinfo_appinfo_filter_create(&handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_set_version_to_pkgdbinfo(handle, "0.0.1");
+       ret = pkgmgrinfo_appinfo_filter_add_bool(handle, PMINFO_APPINFO_PROP_APP_TASKMANAGE, 1);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_appinfo_filter_destroy(handle);
                return -1;
        }
-       ret = pkgmgrinfo_save_pkgdbinfo(handle);
+       ret = pkgmgrinfo_appinfo_filter_count(handle, &count);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_appinfo_filter_destroy(handle);
                return -1;
        }
-       pkgmgrinfo_destroy_pkgdbinfo(handle);
+       printf("No of taskmanageable apps: %d\n", count);
+       pkgmgrinfo_appinfo_filter_destroy(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_create_pkgdbinfo(const char *pkgid, pkgmgrinfo_pkgdbinfo_h *handle);
-int pkgmgrinfo_create_pkgusrdbinfo(const char *pkgid, uid_t uid, pkgmgrinfo_pkgdbinfo_h *handle);
+int pkgmgrinfo_appinfo_filter_add_bool(pkgmgrinfo_appinfo_filter_h handle,
+               const char *property, const bool value);
 
 /**
- * @fn int pkgmgrinfo_set_type_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *type)
- * @brief      This API sets the package type in db handle
+ * @fn int pkgmgrinfo_appinfo_filter_add_int(pkgmgrinfo_appinfo_filter_h handle, const char *property, const int value)
+ * @brief      This API adds an integer filter property to the filter handle
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle   pointer to the pkgdbinfo handle.
- * @param[in] type             pointer to the package type.
+ * @param[in] handle           pointer to the application info filter handle.
+ * @param[in] property         integer property name.
+ * @param[in] value            value corresponding to the property.
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_create_pkgdbinfo()
- * @post               pkgmgrinfo_destroy_pkgdbinfo()
- * @see                pkgmgrinfo_save_pkgdbinfo()
- * @see                pkgmgrinfo_set_version_to_pkgdbinfo()
+ * @pre                pkgmgrinfo_appinfo_filter_create()
+ * @post               pkgmgrinfo_appinfo_filter_destroy()
+ * @see                pkgmgrinfo_appinfo_filter_count()
+ * @see                pkgmgrinfo_appinfo_filter_foreach_appinfo()
  * @code
-static int set_pkg_type_in_db(const char *pkgid)
+static int get_taskmanageable_app_count()
 {
        int ret = 0;
-       pkgmgrinfo_pkgdbinfo_h handle;
-       ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
+       int count = 0;
+       pkgmgrinfo_appinfo_filter_h handle;
+       ret = pkgmgrinfo_appinfo_filter_create(&handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_set_type_to_pkgdbinfo(handle, "wgt");
+       ret = pkgmgrinfo_appinfo_filter_add_bool(handle, PMINFO_APPINFO_PROP_APP_XXX, 10);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_appinfo_filter_destroy(handle);
                return -1;
        }
-       ret = pkgmgrinfo_save_pkgdbinfo(handle);
+       ret = pkgmgrinfo_appinfo_filter_count(handle, &count);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_appinfo_filter_destroy(handle);
                return -1;
        }
-       pkgmgrinfo_destroy_pkgdbinfo(handle);
+       printf("No of apps: %d\n", count);
+       pkgmgrinfo_appinfo_filter_destroy(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_set_type_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *type);
+int pkgmgrinfo_appinfo_filter_add_int(pkgmgrinfo_appinfo_filter_h handle,
+               const char *property, const int value);
 
 /**
- * @fn int pkgmgrinfo_set_version_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *version)
- * @brief      This API sets the package version in db handle
+ * @fn int pkgmgrinfo_appinfo_filter_add_string(pkgmgrinfo_appinfo_filter_h handle, const char *property, const char *value)
+ * @brief      This API adds a string filter property to the filter handle
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle   pointer to the pkgdbinfo handle.
- * @param[in] version          pointer to the package version
+ * @param[in] handle           pointer to the application info filter handle.
+ * @param[in] property         string property name.
+ * @param[in] value            value corresponding to the property.
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_create_pkgdbinfo()
- * @post               pkgmgrinfo_destroy_pkgdbinfo()
- * @see                pkgmgrinfo_save_pkgdbinfo()
- * @see                pkgmgrinfo_set_type_to_pkgdbinfo()
+ * @pre                pkgmgrinfo_appinfo_filter_create()
+ * @post               pkgmgrinfo_appinfo_filter_destroy()
+ * @see                pkgmgrinfo_appinfo_filter_count()
+ * @see                pkgmgrinfo_appinfo_filter_foreach_appinfo()
  * @code
-static int set_pkg_version_in_db(const char *pkgid)
+static int get_capp_count()
 {
        int ret = 0;
-       pkgmgrinfo_pkgdbinfo_h handle;
-       ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
+       int count = 0;
+       pkgmgrinfo_appinfo_filter_h handle;
+       ret = pkgmgrinfo_appinfo_filter_create(&handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_set_version_to_pkgdbinfo(handle, "0.0.1");
+       ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp");
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_appinfo_filter_destroy(handle);
                return -1;
        }
-       ret = pkgmgrinfo_save_pkgdbinfo(handle);
+       ret = pkgmgrinfo_appinfo_filter_count(handle, &count);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_appinfo_filter_destroy(handle);
                return -1;
        }
-       pkgmgrinfo_destroy_pkgdbinfo(handle);
+       printf("No of capp: %d\n", count);
+       pkgmgrinfo_appinfo_filter_destroy(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_set_version_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *version);
+int pkgmgrinfo_appinfo_filter_add_string(pkgmgrinfo_appinfo_filter_h handle,
+               const char *property, const char *value);
 
 /**
- * @fn int pkgmgrinfo_set_install_location_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, INSTALL_LOCATION location)
- * @brief      This API sets the package install location in db handle
+ * @fn int pkgmgrinfo_appinfo_filter_foreach_appinfo(pkgmgrinfo_appinfo_filter_h handle, pkgmgrinfo_app_list_cb app_cb, void *user_data)
+ * @brief      This API executes the user supplied callback function for each application that satisfy the filter conditions
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle   pointer to the pkgdbinfo handle.
- * @param[in] location package install location
+ * @param[in] handle           pointer to the application info filter handle.
+ * @param[in] app_cb           callback function.
+ * @param[in] user_data                user data to be passed to the callback function
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_create_pkgdbinfo()
- * @post               pkgmgrinfo_destroy_pkgdbinfo()
- * @see                pkgmgrinfo_save_pkgdbinfo()
- * @see                pkgmgrinfo_set_type_to_pkgdbinfo()
+ * @pre                pkgmgrinfo_appinfo_filter_create()
+ * @post               pkgmgrinfo_appinfo_filter_destroy()
+ * @see                pkgmgrinfo_appinfo_filter_count()
  * @code
-static int set_pkg_install_location_in_db(const char *pkgid)
+int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
+{
+       char *appid = NULL;
+       pkgmgrinfo_appinfo_get_appid(handle, &appid);
+       printf("appid : %s\n", appid);
+       return 0;
+}
+
+static int get_capp_list()
 {
        int ret = 0;
-       pkgmgrinfo_pkgdbinfo_h handle;
-       ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
+       pkgmgrinfo_appinfo_filter_h handle;
+       ret = pkgmgrinfo_appinfo_filter_create(&handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_set_install_location_to_pkgdbinfo(handle, INSTALL_INTERNAL);
+       ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp");
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_appinfo_filter_destroy(handle);
                return -1;
        }
-       ret = pkgmgrinfo_save_pkgdbinfo(handle);
+       ret = pkgmgrinfo_appinfo_filter_foreach_appinfo(handle, app_list_cb, NULL);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_appinfo_filter_destroy(handle);
                return -1;
        }
-       pkgmgrinfo_destroy_pkgdbinfo(handle);
+       pkgmgrinfo_appinfo_filter_destroy(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_set_install_location_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, INSTALL_LOCATION location);
+int pkgmgrinfo_appinfo_filter_foreach_appinfo(pkgmgrinfo_appinfo_filter_h handle,
+               pkgmgrinfo_app_list_cb app_cb, void *user_data);
+int pkgmgrinfo_appinfo_usr_filter_foreach_appinfo(pkgmgrinfo_appinfo_filter_h handle,
+               pkgmgrinfo_app_list_cb app_cb, void *user_data, uid_t uid);
 
 /**
- * @fn int pkgmgrinfo_set_size_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *size)
- * @brief      This API sets the package size in db handle
+ * @fn int pkgmgrinfo_appinfo_filter_count(pkgmgrinfo_appinfo_filter_h handle, int *count)
+ * @fn int pkgmgrinfo_appinfo_usr_filter_count(pkgmgrinfo_appinfo_filter_h handle, int *count, uid_t uid)
+ * @brief      This API counts the application that satisfy the filter conditions
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle   pointer to the pkgdbinfo handle.
- * @param[in] size             pointer to the package size
+ * @param[in] handle           pointer to the application info filter handle.
+ * @param[in] count            pointer to store count value
+ * @param[in]  uid     the addressee user id of the instruction
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_create_pkgdbinfo()
- * @post               pkgmgrinfo_destroy_pkgdbinfo()
- * @see                pkgmgrinfo_save_pkgdbinfo()
- * @see                pkgmgrinfo_set_type_to_pkgdbinfo()
+ * @pre                pkgmgrinfo_appinfo_filter_create()
+ * @post               pkgmgrinfo_appinfo_filter_destroy()
+ * @see                pkgmgrinfo_appinfo_filter_foreach_appinfo()
  * @code
-static int set_pkg_size_in_db(const char *pkgid)
+static int get_capp_count()
 {
        int ret = 0;
-       pkgmgrinfo_pkgdbinfo_h handle;
-       ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
+       int count = 0;
+       pkgmgrinfo_appinfo_filter_h handle;
+       ret = pkgmgrinfo_appinfo_filter_create(&handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_set_size_to_pkgdbinfo(handle, "15");
+       ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp");
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_appinfo_filter_destroy(handle);
                return -1;
        }
-       ret = pkgmgrinfo_save_pkgdbinfo(handle);
+       ret = pkgmgrinfo_appinfo_filter_count(handle, &count);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_appinfo_filter_destroy(handle);
                return -1;
        }
-       pkgmgrinfo_destroy_pkgdbinfo(handle);
+       printf("No of capp: %d\n", count);
+       pkgmgrinfo_appinfo_filter_destroy(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_set_size_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *size);
-
+int pkgmgrinfo_appinfo_filter_count(pkgmgrinfo_appinfo_filter_h handle, int *count);
+int pkgmgrinfo_appinfo_usr_filter_count(pkgmgrinfo_appinfo_filter_h handle, int *count, uid_t uid);
 /**
- * @fn int pkgmgrinfo_set_label_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *label, const char *locale)
- * @brief      This API sets the package label in db handle
+ * @fn int pkgmgrinfo_appinfo_metadata_filter_create(pkgmgrinfo_appinfo_metadata_filter_h *handle)
+ * @brief      This API creates the application's metadata  information filter handle from db.
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle   pointer to the pkgdbinfo handle.
- * @param[in] label            pointer to the package label
- * @param[in] locale   pointer to the locale
+ * @param[out] handle          pointer to the application metadata info filter handle.
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_create_pkgdbinfo()
- * @post               pkgmgrinfo_destroy_pkgdbinfo()
- * @see                pkgmgrinfo_save_pkgdbinfo()
- * @see                pkgmgrinfo_set_type_to_pkgdbinfo()
+ * @pre                None
+ * @post               pkgmgrinfo_appinfo_metadata_filter_destroy()
+ * @see                pkgmgrinfo_appinfo_metadata_filter_foreach()
  * @code
-static int set_pkg_label_in_db(const char *pkgid)
+int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
+{
+       char *appid = NULL;
+       pkgmgrinfo_appinfo_get_appid(handle, &appid);
+       printf("appid : %s\n", appid);
+       return 0;
+}
+
+static int get_app_list(const char *mkey, const char *mvalue)
 {
        int ret = 0;
-       pkgmgrinfo_pkgdbinfo_h handle;
-       ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
+       pkgmgrinfo_appinfo_metadata_filter_h handle;
+       ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_set_label_to_pkgdbinfo(handle, "helloworld", "en-us");
+       ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
                return -1;
        }
-       ret = pkgmgrinfo_save_pkgdbinfo(handle);
+       ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
                return -1;
        }
-       pkgmgrinfo_destroy_pkgdbinfo(handle);
+       pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_set_label_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *label, const char *locale);
+int pkgmgrinfo_appinfo_metadata_filter_create(pkgmgrinfo_appinfo_metadata_filter_h *handle);
 
 /**
- * @fn int pkgmgrinfo_set_icon_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *icon, const char *locale)
- * @brief      This API sets the package icon in db handle
+ * @fn int pkgmgrinfo_appinfo_metadata_filter_destroy(pkgmgrinfo_appinfo_metadata_filter_h handle)
+ * @brief      This API destroys the application's metadata  information filter handle.
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle   pointer to the pkgdbinfo handle.
- * @param[in] icon             pointer to the package icon
- * @param[in] locale   pointer to the locale
+ * @param[in] handle           pointer to the application metadata info filter handle.
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_create_pkgdbinfo()
- * @post               pkgmgrinfo_destroy_pkgdbinfo()
- * @see                pkgmgrinfo_save_pkgdbinfo()
- * @see                pkgmgrinfo_set_type_to_pkgdbinfo()
+ * @pre                pkgmgrinfo_appinfo_metadata_filter_create()
+ * @post               None
+ * @see                pkgmgrinfo_appinfo_metadata_filter_foreach()
  * @code
-static int set_pkg_icon_in_db(const char *pkgid)
+int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
+{
+       char *appid = NULL;
+       pkgmgrinfo_appinfo_get_appid(handle, &appid);
+       printf("appid : %s\n", appid);
+       return 0;
+}
+
+static int get_app_list(const char *mkey, const char *mvalue)
 {
        int ret = 0;
-       pkgmgrinfo_pkgdbinfo_h handle;
-       ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
+       pkgmgrinfo_appinfo_metadata_filter_h handle;
+       ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_set_icon_to_pkgdbinfo(handle, "helloworld.png", "en-us");
+       ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
                return -1;
        }
-       ret = pkgmgrinfo_save_pkgdbinfo(handle);
+       ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
                return -1;
        }
-       pkgmgrinfo_destroy_pkgdbinfo(handle);
+       pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_set_icon_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *icon, const char *locale);
+int pkgmgrinfo_appinfo_metadata_filter_destroy(pkgmgrinfo_appinfo_metadata_filter_h handle);
 
 /**
- * @fn int pkgmgrinfo_set_description_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *description, const char *locale)
- * @brief      This API sets the package description in db handle
+ * @fn int pkgmgrinfo_appinfo_metadata_filter_add(pkgmgrinfo_appinfo_metadata_filter_h handle, const char *key, const char *value)
+ * @brief      This API adds filter condition for the query API.  The query will search the entire application metadata  information collected from
+ * the manifest file of all the installed packages. You can specify value as NULL to search based on key only.
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle   pointer to the pkgdbinfo handle.
- * @param[in] description              pointer to the package description
- * @param[in] locale   pointer to the locale
+ * @param[in] handle           pointer to the application metadata info filter handle.
+ * @param[in] key                      pointer to metadata key
+ * @param[in] value                    pointer to metadata value
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_create_pkgdbinfo()
- * @post               pkgmgrinfo_destroy_pkgdbinfo()
- * @see                pkgmgrinfo_save_pkgdbinfo()
- * @see                pkgmgrinfo_set_type_to_pkgdbinfo()
+ * @pre                pkgmgrinfo_appinfo_metadata_filter_create()
+ * @post               pkgmgrinfo_appinfo_metadata_filter_foreach(), pkgmgrinfo_appinfo_metadata_filter_destroy()
+ * @see                pkgmgrinfo_appinfo_metadata_filter_foreach()
  * @code
-static int set_pkg_description_in_db(const char *pkgid)
+int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
+{
+       char *appid = NULL;
+       pkgmgrinfo_appinfo_get_appid(handle, &appid);
+       printf("appid : %s\n", appid);
+       return 0;
+}
+
+static int get_app_list(const char *mkey, const char *mvalue)
 {
        int ret = 0;
-       pkgmgrinfo_pkgdbinfo_h handle;
-       ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
+       pkgmgrinfo_appinfo_metadata_filter_h handle;
+       ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_set_description_to_pkgdbinfo(handle, "helloworld application", "en-us");
+       ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
                return -1;
        }
-       ret = pkgmgrinfo_save_pkgdbinfo(handle);
+       ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
                return -1;
        }
-       pkgmgrinfo_destroy_pkgdbinfo(handle);
+       pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_set_description_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *description, const char *locale);
+int pkgmgrinfo_appinfo_metadata_filter_add(pkgmgrinfo_appinfo_metadata_filter_h handle,
+               const char *key, const char *value);
 
 /**
- * @fn int pkgmgrinfo_set_author_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *author_name,
- const char *author_email, const char *author_href, const char *locale)
- * @brief      This API sets the package author info in db handle
+ * @fn int pkgmgrinfo_appinfo_metadata_filter_foreach(pkgmgrinfo_appinfo_metadata_filter_h handle, pkgmgrinfo_app_list_cb app_cb, void *user_data)
+ * @fn int pkgmgrinfo_appinfo_usr_metadata_filter_foreach(pkgmgrinfo_appinfo_metadata_filter_h handle, pkgmgrinfo_app_list_cb app_cb, void *user_data, uid_t uid)
+ * @brief      This API executes the filter query. The query will search the entire application metadata  information collected from
+ * the manifest file of all the installed packages. For each application returned by the query, the callback will be called. If callback returns
+ * negative value, no more callbacks will be called and API will return.
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle   pointer to the pkgdbinfo handle.
- * @param[in] author_name              pointer to the package author name
- * @param[in] author_email             pointer to the package author email
- * @param[in] author_href              pointer to the package author href
- * @param[in] locale   pointer to the locale
+ * @param[in] handle           pointer to the application metadata info filter handle.
+ * @param[in] app_cb           function pointer to callback
+ * @param[in] user_data                pointer to user data
+ * @param[in]  uid     the addressee user id of the instruction
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_create_pkgdbinfo()
- * @post               pkgmgrinfo_destroy_pkgdbinfo()
- * @see                pkgmgrinfo_save_pkgdbinfo()
- * @see                pkgmgrinfo_set_type_to_pkgdbinfo()
+ * @pre                pkgmgrinfo_appinfo_metadata_filter_create()
+ * @post               pkgmgrinfo_appinfo_metadata_filter_destroy()
  * @code
-static int set_pkg_author_in_db(const char *pkgid)
+int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
+{
+       char *appid = NULL;
+       pkgmgrinfo_appinfo_get_appid(handle, &appid);
+       printf("appid : %s\n", appid);
+       return 0;
+}
+
+static int get_app_list(const char *mkey, const char *mvalue)
 {
        int ret = 0;
-       pkgmgrinfo_pkgdbinfo_h handle;
-       ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
+       pkgmgrinfo_appinfo_metadata_filter_h handle;
+       ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_set_author_to_pkgdbinfo(handle, "John", "john@samsung.com", "www.samsung.com", "en-us");
+       ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
                return -1;
        }
-       ret = pkgmgrinfo_save_pkgdbinfo(handle);
+       ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
                return -1;
        }
-       pkgmgrinfo_destroy_pkgdbinfo(handle);
+       pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_set_author_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *author_name,
-                       const char *author_email, const char *author_href, const char *locale);
+int pkgmgrinfo_appinfo_metadata_filter_foreach(pkgmgrinfo_appinfo_metadata_filter_h handle,
+               pkgmgrinfo_app_list_cb app_cb, void *user_data);
+int pkgmgrinfo_appinfo_usr_metadata_filter_foreach(pkgmgrinfo_appinfo_metadata_filter_h handle,
+               pkgmgrinfo_app_list_cb app_cb, void *user_data, uid_t uid);
 
 /**
- * @fn int pkgmgrinfo_set_removable_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, int removable)
- * @brief      This API sets the package 'removable' value in db handle
+ * @fn int pkgmgrinfo_appinfo_foreach_appcontrol_v2(pkgmgrinfo_appinfo_h handle,
+                       pkgmgrinfo_app_control_list_cb_v2 appcontrol_func, void *user_data);
+ * @fn int pkgmgrinfo_appinfo_foreach_remote_appcontrol_v2(pkgmgrinfo_appinfo_h handle,
+                       pkgmgrinfo_app_control_list_cb_v2 appcontrol_func, void *user_data);
+ * @brief      This API gets the list of app-control for a particular application
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ * @param[in]  handle          pointer to the application info handle.
+ * @param[in]  appcontrol_func callback function for list
+ * @param[in]   user_data      user data to be passed to callback function
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_appinfo_get_appinfo()
+ * @post       pkgmgrinfo_appinfo_destroy_appinfo()
+ */
+int pkgmgrinfo_appinfo_foreach_appcontrol_v2(pkgmgrinfo_appinfo_h handle,
+               pkgmgrinfo_app_control_list_cb_v2 appcontrol_func,
+               void *user_data);
+int pkgmgrinfo_appinfo_foreach_remote_appcontrol_v2(pkgmgrinfo_appinfo_h handle,
+               pkgmgrinfo_app_control_list_cb_v2 appcontrol_func,
+               void *user_data);
+/**
+ * @fn int pkgmgrinfo_pkginfo_create_certinfo(pkgmgrinfo_certinfo_h *handle)
+ * @brief      This API creates the package cert information handle to get data from db.
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle   pointer to the pkgdbinfo handle.
- * @param[in] removable                package removable value
+ * @param[out] handle          pointer to the package cert handle.
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_create_pkgdbinfo()
- * @post               pkgmgrinfo_destroy_pkgdbinfo()
- * @see                pkgmgrinfo_save_pkgdbinfo()
- * @see                pkgmgrinfo_set_type_to_pkgdbinfo()
+ * @pre                None
+ * @post               pkgmgrinfo_pkginfo_destroy_certinfo()
+ * @see                pkgmgrinfo_pkginfo_get_cert_value()
+ * @see                pkgmgrinfo_pkginfo_load_certinfo()
  * @code
-static int set_pkg_removable_in_db(const char *pkgid)
+static int get_cert_info(const char *pkgid)
 {
        int ret = 0;
-       pkgmgrinfo_pkgdbinfo_h handle;
-       ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
+       pkgmgrinfo_certinfo_h handle;
+       char *auth_cert = NULL;
+       ret = pkgmgrinfo_pkginfo_create_certinfo(&handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_set_removable_to_pkgdbinfo(handle, 1);
+       ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_pkginfo_destroy_certinfo(handle);
                return -1;
        }
-       ret = pkgmgrinfo_save_pkgdbinfo(handle);
+       ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_pkginfo_destroy_certinfo(handle);
                return -1;
        }
-       pkgmgrinfo_destroy_pkgdbinfo(handle);
+       printf("Author root certificate: %s\n", auth_root);
+       pkgmgrinfo_pkginfo_destroy_certinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_set_removable_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, int removable);
+int pkgmgrinfo_pkginfo_create_certinfo(pkgmgrinfo_certinfo_h *handle);
 
 /**
- * @fn int pkgmgrinfo_set_preload_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, int preload)
- * @brief      This API sets the package 'preload' value in db handle
+ * @fn int pkgmgrinfo_pkginfo_load_certinfo(const char *pkgid, pkgmgrinfo_certinfo_h handle)
+ * @brief      This API loads the package cert information handle with data from db.
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle   pointer to the pkgdbinfo handle.
- * @param[in] preload          package preload value
+ * @param[in] pkgid            pointer to the package ID.
+ * @param[in] handle           pointer to the package cert handle.
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_create_pkgdbinfo()
- * @post               pkgmgrinfo_destroy_pkgdbinfo()
- * @see                pkgmgrinfo_save_pkgdbinfo()
- * @see                pkgmgrinfo_set_type_to_pkgdbinfo()
+ * @pre                pkgmgrinfo_pkginfo_create_certinfo()
+ * @post               pkgmgrinfo_pkginfo_destroy_certinfo()
+ * @see                pkgmgrinfo_pkginfo_get_cert_value()
  * @code
-static int set_pkg_preload_in_db(const char *pkgid)
+static int get_cert_info(const char *pkgid)
 {
        int ret = 0;
-       pkgmgrinfo_pkgdbinfo_h handle;
-       ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
+       pkgmgrinfo_certinfo_h handle;
+       char *auth_cert = NULL;
+       ret = pkgmgrinfo_pkginfo_create_certinfo(&handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_set_preload_to_pkgdbinfo(handle, 1);
+       ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_pkginfo_destroy_certinfo(handle);
                return -1;
        }
-       ret = pkgmgrinfo_save_pkgdbinfo(handle);
+       ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_pkginfo_destroy_certinfo(handle);
                return -1;
        }
-       pkgmgrinfo_destroy_pkgdbinfo(handle);
+       printf("Author root certificate: %s\n", auth_root);
+       pkgmgrinfo_pkginfo_destroy_certinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_set_preload_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, int preload);
+int pkgmgrinfo_pkginfo_load_certinfo(const char *pkgid, pkgmgrinfo_certinfo_h handle, uid_t uid);
 
 /**
- * @fn int pkgmgrinfo_set_installed_storage_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, INSTALL_LOCATION location)
- * @brief      This API sets the package 'installed_storage' value in db handle
+ * @fn int pkgmgrinfo_pkginfo_get_cert_value(pkgmgrinfo_certinfo_h handle, pkgmgrinfo_cert_type cert_type, const char **cert_value)
+ * @brief      This API gets the package cert information from the handle
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle   pointer to the pkgdbinfo handle.
- * @param[in] location         installed_storage value
+ * @param[in] handle           pointer to the package cert handle.
+ * @param[in] cert_type                certificate type
+ * @param[out] cert_value      pointer to hold certificate value
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_create_pkgdbinfo()
- * @post               pkgmgrinfo_destroy_pkgdbinfo()
- * @see                pkgmgrinfo_save_pkgdbinfo()
+ * @pre                pkgmgrinfo_pkginfo_create_certinfo()
+ * @post               pkgmgrinfo_pkginfo_destroy_certinfo()
+ * @see                pkgmgrinfo_pkginfo_load_certinfo()
  * @code
-static int set_pkg_installed_storage_in_db(const char *pkgid)
+static int get_cert_info(const char *pkgid)
 {
        int ret = 0;
-       pkgmgrinfo_pkgdbinfo_h handle;
-       ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
+       pkgmgrinfo_certinfo_h handle;
+       char *auth_cert = NULL;
+       ret = pkgmgrinfo_pkginfo_create_certinfo(&handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_set_installed_storage_to_pkgdbinfo(handle, INSTALL_INTERNAL);
+       ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_pkginfo_destroy_certinfo(handle);
                return -1;
        }
-       ret = pkgmgrinfo_save_pkgdbinfo(handle);
+       ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_pkginfo_destroy_certinfo(handle);
                return -1;
        }
-       pkgmgrinfo_destroy_pkgdbinfo(handle);
+       printf("Author root certificate: %s\n", auth_root);
+       pkgmgrinfo_pkginfo_destroy_certinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_set_installed_storage_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, INSTALL_LOCATION location);
+int pkgmgrinfo_pkginfo_get_cert_value(pkgmgrinfo_certinfo_h handle, pkgmgrinfo_cert_type cert_type, const char **cert_value);
 
 /**
- * @fn int pkgmgrinfo_save_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle)
- * @fn int pkgmgrinfo_save_pkgdbusrinfo(pkgmgrinfo_pkgdbinfo_h handle, uid_t uid)
- * @brief      This API saves all the information from the handle to the DB.
+ * @fn int pkgmgrinfo_pkginfo_destroy_certinfo(pkgmgrinfo_certinfo_h handle)
+ * @brief      This API destroys the package cert information handle freeing up all the resources
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the package db info handle.
- * @param[in]  uid     the addressee user id of the instruction
+ * @param[in] handle           pointer to the package cert handle.
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_create_pkgdbinfo()
- * @post               pkgmgrinfo_destroy_pkgdbinfo()
- * @see                pkgmgrinfo_set_type_to_pkgdbinfo()
+ * @pre                pkgmgrinfo_pkginfo_create_certinfo()
+ * @post               None
+ * @see                pkgmgrinfo_pkginfo_load_certinfo()
  * @code
-static int set_pkg_in_db(const char *pkgid)
+static int get_cert_info(const char *pkgid)
 {
        int ret = 0;
-       pkgmgrinfo_pkgdbinfo_h handle;
-       ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
+       pkgmgrinfo_certinfo_h handle;
+       char *auth_cert = NULL;
+       ret = pkgmgrinfo_pkginfo_create_certinfo(&handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_set_version_to_pkgdbinfo(handle, "0.0.1");
+       ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_pkginfo_destroy_certinfo(handle);
                return -1;
        }
-       ret = pkgmgrinfo_save_pkgdbinfo(handle);
+       ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
+               pkgmgrinfo_pkginfo_destroy_certinfo(handle);
                return -1;
        }
-       pkgmgrinfo_destroy_pkgdbinfo(handle);
+       printf("Author root certificate: %s\n", auth_root);
+       pkgmgrinfo_pkginfo_destroy_certinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_save_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle);
-int pkgmgrinfo_save_pkgusrdbinfo(pkgmgrinfo_pkgdbinfo_h handle, uid_t uid);
+int pkgmgrinfo_pkginfo_destroy_certinfo(pkgmgrinfo_certinfo_h handle);
+
 /**
- * @fn int pkgmgrinfo_destroy_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle)
- * @brief      This API destroys the package db information handle freeing up all the resources
+ * @fn int pkgmgrinfo_delete_certinfo(const char *pkgid)
+ * @brief      This API deletes the package cert information from DB
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
  *
- * @param[in] handle           pointer to the package db info handle.
+ * @param[in] pkgid            pointer to the package ID.
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_create_pkgdbinfo()
+ * @pre                None
  * @post               None
- * @see                pkgmgrinfo_save_pkgdbinfo()
- * @see                pkgmgrinfo_set_type_to_pkgdbinfo()
  * @code
-static int set_pkg_in_db(const char *pkgid)
+static int delete_cert_info(const char *pkgid)
 {
        int ret = 0;
-       pkgmgrinfo_pkgdbinfo_h handle;
-       ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
+       ret = pkgmgrinfo_delete_certinfo(pkgid);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_set_version_to_pkgdbinfo(handle, "0.0.1");
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
-               return -1;
-       }
-       ret = pkgmgrinfo_save_pkgdbinfo(handle);
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_destroy_pkgdbinfo(handle);
-               return -1;
-       }
-       pkgmgrinfo_destroy_pkgdbinfo(handle);
        return 0;
 }
  * @endcode
  */
-int pkgmgrinfo_destroy_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle);
-
+int pkgmgrinfo_delete_certinfo(const char *pkgid);
+int pkgmgrinfo_delete_usr_certinfo(const char *pkgid, uid_t uid);
 
 /**
  * @fn int pkgmgrinfo_create_certinfo_set_handle(pkgmgrinfo_instcertinfo_h *handle)
@@ -5485,82 +6299,185 @@ static int get_app_guestmode_visibility(const char *appid)
 }
  * @endcode
  */
- int pkgmgrinfo_appinfo_is_guestmode_visibility(pkgmgrinfo_appinfo_h handle, bool *status);
+int pkgmgrinfo_appinfo_is_guestmode_visibility(pkgmgrinfo_appinfo_h handle, bool *status);
+
+/**
+* @fn int pkgmgrinfo_pkginfo_set_installed_storage(const char *pkgid, INSTALL_LOCATION location)
+* @brief        This API sets the package 'installed_storage' value in db
+*
+* @par This API is for package-manager client application
+* @par Sync (or) Async : Synchronous API
+*
+* @param[in] pkgid             pointer to the package ID.
+* @param[in] location  package install location
+* @param[in] external_pkg_path  image path if pkg has installed at external storage
+* @return  0 if success, error code(<0) if fail
+* @retval  PMINFO_R_OK success
+* @retval  PMINFO_R_EINVAL      invalid argument
+* @retval  PMINFO_R_ERROR internal error
+* @code
+static int set_app_installed_storage(const char *appid, INSTALL_LOCATION location)
+{
+       int ret = 0;
+
+       ret = pkgmgrinfo_pkginfo_set_installed_storage(handle, INSTALL_EXTERNAL);
+       if (ret != PMINFO_R_OK) {
+               return -1;
+       }
+       return 0;
+}
+* @endcode
+*/
+int pkgmgrinfo_pkginfo_set_installed_storage(const char *pkgid, INSTALL_LOCATION location, const char *external_pkg_path);
+int pkgmgrinfo_pkginfo_set_usr_installed_storage(const char *pkgid, INSTALL_LOCATION location, const char *external_pkg_path, uid_t uid);
+
+/* version compare */
+int pkgmgrinfo_compare_package_version(const char *current_version,
+               const char *target_version, pkgmgrinfo_version_compare_type *res);
 
 /**
- * @fn int pkgmgrinfo_appinfo_set_guestmode_visibility(pkgmgrinfo_appinfo_h handle, bool status)
- * @brief      This API sets the application 'guest mode visibility' value in the DB
+ * @fn int pkgmgrinfo_pkginfo_foreach_dependency(pkgmgrinfo_pkginfo_h handle,
+                       pkgmgrinfo_pkg_dependency_list_cb dependency_cb,
+                       void *user_data);
+ * @brief      This API gets the list of dependency of a particular package
  *
  * @par                This API is for package-manager client application
  * @par Sync (or) Async : Synchronous API
- *
- * @param[in]  handle  pointer to application info handle
- * @param[out] status  app guest mode visibility value
+ * @param[in]  handle          pointer to the package info handle.
+ * @param[in]  dependency_cb           callback function for list
+ * @param[in] user_data        user data to be passed to callback function
  * @return     0 if success, error code(<0) if fail
  * @retval     PMINFO_R_OK     success
  * @retval     PMINFO_R_EINVAL invalid argument
  * @retval     PMINFO_R_ERROR  internal error
- * @pre                pkgmgrinfo_appinfo_get_appinfo()
- * @post               pkgmgrinfo_appinfo_destroy_appinfo()
- * @see                pkgmgrinfo_appinfo_get_appid()
- * @see                pkgmgrinfo_appinfo_is_multiple()
+ * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
+ * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
  * @code
-static int set_app_guestmode_visibility(const char *appid, bool value)
+int dependency_cb(const char *pkgid, const char *type,
+               const char *required_version,void *user_data)
+{
+       printf("this package %s %s", type, pkgid);
+       if (required_version)
+               printf("required version : %s", required_version);
+       return 0;
+}
+
+static int list_dependency(const char *package)
 {
        int ret = 0;
-       pkgmgrinfo_appinfo_h handle;
-       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
+       pkgmgrinfo_pkginfo_h handle;
+       ret = pkgmgrinfo_pkginfo_get_pkginfo(package, &handle);
        if (ret != PMINFO_R_OK)
                return -1;
-       ret = pkgmgrinfo_appinfo_set_guestmode_visibility(handle, value);
+       ret = pkgmgrinfo_pkginfo_foreach_dependency(handle, dependency_cb, NULL);
        if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_appinfo_destroy_appinfo(handle);
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
                return -1;
        }
-       pkgmgrinfo_appinfo_destroy_appinfo(handle);
+       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
        return 0;
 }
  * @endcode
  */
- int pkgmgrinfo_appinfo_set_guestmode_visibility(pkgmgrinfo_appinfo_h handle, bool status);
- int pkgmgrinfo_appinfo_set_usr_guestmode_visibility(pkgmgrinfo_appinfo_h handle, uid_t uid, bool status);
-/**
- * @pkgmgrinfo client API
-**/
-
-/**
- * @brief listening status type in pkgmgrinfo.
- */
-#define PMINFO_CLIENT_STATUS_ALL                                               0x00
-#define PMINFO_CLIENT_STATUS_INSTALL                                   0x01
-#define PMINFO_CLIENT_STATUS_UNINSTALL                                 0x02
-#define PMINFO_CLIENT_STATUS_UPGRADE                                   0x04
-#define PMINFO_CLIENT_STATUS_MOVE                                              0x08
-#define PMINFO_CLIENT_STATUS_CLEAR_DATA                                        0x10
-#define PMINFO_CLIENT_STATUS_INSTALL_PROGRESS                  0x20
+int pkgmgrinfo_pkginfo_foreach_dependency(pkgmgrinfo_pkginfo_h handle,
+               pkgmgrinfo_pkg_dependency_list_cb dependency_cb,
+               void *user_data);
 
 /**
- * @brief type definition.
- */
-typedef void pkgmgrinfo_client;
-typedef int (*pkgmgrinfo_handler)(int req_id, const char *pkg_type,
-                               const char *pkgid, const char *key,
-                               const char *val, const void *pmsg, void *data);
-
-typedef enum {
-       PMINFO_REQUEST = 0,
-       PMINFO_LISTENING,
-       PMINFO_BROADCAST,
-}pkgmgrinfo_client_type;
+ * @fn int pkgmgrinfo_pkginfo_foreach_required_by(pkgmgrinfo_pkginfo_h handle,
+                       pkgmgrinfo_pkg_dependency_list_cb dependency_cb,
+                       void *user_data);
+ * @brief      This API gets the list of packages which has dependency of a particular package
+ *
+ * @par                This API is for package-manager client application
+ * @par Sync (or) Async : Synchronous API
+ * @param[in]  handle          pointer to the package info handle.
+ * @param[in]  dependency_cb           callback function for list
+ * @param[in] user_data        user data to be passed to callback function
+ * @return     0 if success, error code(<0) if fail
+ * @retval     PMINFO_R_OK     success
+ * @retval     PMINFO_R_EINVAL invalid argument
+ * @retval     PMINFO_R_ERROR  internal error
+ * @pre                pkgmgrinfo_pkginfo_get_pkginfo()
+ * @post               pkgmgrinfo_pkginfo_destroy_pkginfo()
+ * @code
+int dependency_cb(const char *pkgid, const char *type,
+               const char *required_version,void *user_data)
+{
+       printf("%s %s this package", pkgid, type);
+       if (required_version)
+               printf("required version : %s", required_version);
+       return 0;
+}
 
-/**
- * @brief      This APIs provides pkgmgrinfo client listener
+static int list_required_by(const char *package)
+{
+       int ret = 0;
+       pkgmgrinfo_pkginfo_h handle;
+       ret = pkgmgrinfo_pkginfo_get_pkginfo(package, &handle);
+       if (ret != PMINFO_R_OK)
+               return -1;
+       ret = pkgmgrinfo_pkginfo_foreach_required_by(handle, dependency_cb, NULL);
+       if (ret != PMINFO_R_OK) {
+               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+               return -1;
+       }
+       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+       return 0;
+}
+ * @endcode
  */
-pkgmgrinfo_client *pkgmgrinfo_client_new(pkgmgrinfo_client_type ctype);
-int pkgmgrinfo_client_set_status_type(pkgmgrinfo_client *pc, int status_type);
-int pkgmgrinfo_client_listen_status(pkgmgrinfo_client *pc, pkgmgrinfo_handler event_cb, void *data);
-int pkgmgrinfo_client_free(pkgmgrinfo_client *pc);
-int pkgmgrinfo_client_request_enable_external_pkg(char *pkgid);
+int pkgmgrinfo_pkginfo_foreach_required_by(pkgmgrinfo_pkginfo_h handle,
+               pkgmgrinfo_pkg_dependency_list_cb dependency_cb,
+               void *user_data);
+
+/**
+ * @brief      TEMP
+ */
+
+
+int pkgmgrinfo_pkginfo_get_usr_list_full(pkgmgrinfo_pkg_list_cb pkg_list_cb,
+               int flag, void *user_data, uid_t uid);
+int pkgmgrinfo_pkginfo_get_list_full(pkgmgrinfo_pkg_list_cb pkg_list_cb,
+               int flag, void *user_data);
+int pkgmgrinfo_appinfo_get_usr_installed_list_full(
+               pkgmgrinfo_app_list_cb app_func, uid_t uid, int flag,
+               void *user_data);
+int pkgmgrinfo_appinfo_get_installed_list_full(
+               pkgmgrinfo_app_list_cb app_func, int flag, void *user_data);
+
+
+int pkgmgrinfo_archiveinfo_get_archiveinfo(const char *path,
+               pkgmgrinfo_archiveinfo_h *handle);
+int pkgmgrinfo_archiveinfo_destroy_archiveinfo(pkgmgrinfo_archiveinfo_h handle);
+int pkgmgrinfo_archiveinfo_get_pkgid(pkgmgrinfo_archiveinfo_h handle,
+               const char **pkgid);
+int pkgmgrinfo_archiveinfo_get_type(pkgmgrinfo_archiveinfo_h handle,
+               const char **type);
+int pkgmgrinfo_archiveinfo_get_version(pkgmgrinfo_archiveinfo_h handle,
+               const char **version);
+int pkgmgrinfo_archiveinfo_get_api_version(pkgmgrinfo_archiveinfo_h handle,
+               const char **api_version);
+int pkgmgrinfo_archiveinfo_get_description(pkgmgrinfo_archiveinfo_h handle,
+               const char **description);
+int pkgmgrinfo_archiveinfo_get_label(pkgmgrinfo_archiveinfo_h handle,
+               const char **label);
+int pkgmgrinfo_archiveinfo_get_author(pkgmgrinfo_archiveinfo_h handle,
+               const char **author);
+int pkgmgrinfo_archiveinfo_get_icon(pkgmgrinfo_archiveinfo_h handle,
+               const unsigned char **icon, size_t *size);
+
+int pkgmgrinfo_appinfo_foreach_component_info(pkgmgrinfo_appinfo_h handle,
+               pkgmgrinfo_component_info_list_cb callback, void *user_data);
+
+int pkgmgrinfo_compinfo_get_appid(pkgmgrinfo_compinfo_h handle,
+               const char **appid);
+int pkgmgrinfo_compinfo_get_compid(pkgmgrinfo_compinfo_h handle,
+               const char **compid);
+int pkgmgrinfo_compinfo_get_type(pkgmgrinfo_compinfo_h handle,
+               const char **type);
+int pkgmgrinfo_compinfo_get_launch_mode(pkgmgrinfo_compinfo_h handle,
+               const char **launch_mode);
 
 /**
  * @pkgmgrinfo client API end