Tizen Native API  3.0
Package Information

Packager Manager infomation API for packaging. It provides functions for getting the package information.

Required Header

#include <package_manager.h>

Overview

The package manager is used to retrieve detailed information of the installed packages on the device. This information includes package name, label, path to the icon image, version, type, and installed storage. To retrieve package information, you should get the package_info_h using package_info_create() or package_manager_get_package_info(). The package_manager_foreach_package_info() is used to retrieve all the package information of installed packages. And then package_manager_package_info_cb() is invoked. When the callback function is called, you can get the information using the following functions.

Functions

int package_info_foreach_app_from_package (package_info_h package_info, package_info_app_component_type_e comp_type, package_info_app_cb callback, void *user_data)
 Retrieves all application IDs of each package.
int package_info_destroy (package_info_h package_info)
 Destroys the package information handle and releases all its resources.
int package_info_get_package (package_info_h package_info, char **package)
 Gets the package name.
int package_info_get_label (package_info_h package_info, char **label)
 Gets the label of the package.
int package_info_get_icon (package_info_h package_info, char **path)
 Gets the absolute path to the icon image.
int package_info_get_version (package_info_h package_info, char **version)
 Gets the version of the package.
int package_info_get_type (package_info_h package_info, char **type)
 Gets the type of the package.
int package_info_get_installed_storage (package_info_h package_info, package_info_installed_storage_type_e *storage)
 Gets the installed storage for the given package.
int package_info_get_root_path (package_info_h package_info, char **path)
 Gets the root path of the package.
int package_info_get_tep_name (package_info_h package_info, char **name)
 Gets the name of the TEP(Tizen Expansion Package).
int package_info_is_system_package (package_info_h package_info, bool *system)
 Checks whether the package is system package.
int package_info_is_removable_package (package_info_h package_info, bool *removable)
 Checks whether the package is removable.
int package_info_is_preload_package (package_info_h package_info, bool *preload)
 Checks whether the package is preloaded.
int package_info_is_equal (package_info_h lhs, package_info_h rhs, bool *equal)
 Checks whether two package information is equal.
int package_info_is_accessible (package_info_h package_info, bool *accessible)
 Checks whether the package info is accessible for the given package.
int package_info_clone (package_info_h *clone, package_info_h package_info)
 Clones the package information handle.
int package_info_create (const char *package, package_info_h *package_info)
 Gets the package information for the given package.
int package_info_foreach_cert_info (package_info_h package_info, package_info_cert_info_cb callback, void *user_data)
 Retrieves certification information of the package.
int package_info_foreach_privilege_info (package_info_h package_info, package_info_privilege_info_cb callback, void *user_data)
 Retrieves privilege information of the package.

Typedefs

typedef struct package_info_s * package_info_h
 The package information handle.
typedef bool(* package_info_app_cb )(package_info_app_component_type_e comp_type, const char *app_id, void *user_data)
 Called to get the application ID once for each installed package.
typedef bool(* package_info_cert_info_cb )(package_info_h handle, package_cert_type_e cert_type, const char *cert_value, void *user_data)
 Called to get the certification information.
typedef bool(* package_info_privilege_info_cb )(const char *privilege_name, void *user_data)
 Called to get the privilege information.

Typedef Documentation

typedef bool(* package_info_app_cb)(package_info_app_component_type_e comp_type, const char *app_id, void *user_data)

Called to get the application ID once for each installed package.

Since :
2.3
Parameters:
[in]comp_typeThe Application Component type
[in]callbackThe callback function to be invoked
[in]user_dataThe user data passed from the foreach function
Returns:
true to continue with the next iteration of the loop, otherwise false to break out of the loop
Precondition:
package_info_foreach_app_from_package() will invoke this callback.
See also:
package_info_foreach_app_from_package()
typedef bool(* package_info_cert_info_cb)(package_info_h handle, package_cert_type_e cert_type, const char *cert_value, void *user_data)

Called to get the certification information.

Since :
2.3
Parameters:
[in]package_infoThe package info handle
[in]cert_typeThe certificate type
[in]cert_valueThe certificate value of corresponding certificate key
This value is base64 encoded data.
[in]user_dataThe user data passed from the foreach function
Returns:
true to continue with the next iteration of the loop, otherwise false to break out of the loop
Precondition:
package_info_foreach_cert_info() will invoke this callback.
See also:
package_info_foreach_cert_info()
typedef struct package_info_s* package_info_h

The package information handle.

Since :
2.3
typedef bool(* package_info_privilege_info_cb)(const char *privilege_name, void *user_data)

Called to get the privilege information.

Since :
2.3
Parameters:
[in]privilege_namethe name of the privilege
[in]user_dataThe user data passed from the foreach function
Returns:
true to continue with the next iteration of the loop, otherwise false to break out of the loop
Precondition:
package_info_foreach_privilege_info() will invoke this callback.
See also:
package_info_foreach_privilege_info()

Enumeration Type Documentation

Enumeration for certification type.

Since :
2.3
Enumerator:
PACKAGE_INFO_AUTHOR_ROOT_CERT 

Author Root Certificate

PACKAGE_INFO_AUTHOR_INTERMEDIATE_CERT 

Author Intermediate Certificate

PACKAGE_INFO_AUTHOR_SIGNER_CERT 

Author Signer Certificate

PACKAGE_INFO_DISTRIBUTOR_ROOT_CERT 

Distributor Root Certificate

PACKAGE_INFO_DISTRIBUTOR_INTERMEDIATE_CERT 

Distributor Intermediate Certificate

PACKAGE_INFO_DISTRIBUTOR_SIGNER_CERT 

Distributor Signer Certificate

PACKAGE_INFO_DISTRIBUTOR2_ROOT_CERT 

Distributor2 Root Certificate

PACKAGE_INFO_DISTRIBUTOR2_INTERMEDIATE_CERT 

Distributor2 Intermediate Certificate

PACKAGE_INFO_DISTRIBUTOR2_SIGNER_CERT 

Distributor2 Signer Certificate

Enumeration for app component type.

Since :
2.3
Enumerator:
PACKAGE_INFO_ALLAPP 

All application

PACKAGE_INFO_UIAPP 

UI application

PACKAGE_INFO_SERVICEAPP 

Service application

Enumeration for storage type.

Since :
2.3
Enumerator:
PACKAGE_INFO_INTERNAL_STORAGE 

Internal storage

PACKAGE_INFO_EXTERNAL_STORAGE 

External storage


Function Documentation

int package_info_clone ( package_info_h clone,
package_info_h  package_info 
)

Clones the package information handle.

Since :
2.3
Parameters:
[out]cloneThe newly created package information handle
[in]package_infoThe package information
Returns:
0 on success, otherwise a negative error value
Return values:
PACKAGE_MANAGER_ERROR_NONESuccessful
PACKAGE_MANAGER_ERROR_INVALID_PARAMETERInvalid parameter
PACKAGE_MANAGER_ERROR_NO_SUCH_PACKAGEThe package is not installed
PACKAGE_MANAGER_ERROR_OUT_OF_MEMORYOut of memory
int package_info_create ( const char *  package,
package_info_h package_info 
)

Gets the package information for the given package.

Since :
2.3
Remarks:
You must release package_info using package_info_destroy().
Parameters:
[in]packageThe ID of the package
[out]package_infoThe package information for the given package ID
Returns:
0 on success, otherwise a negative error value
Return values:
PACKAGE_MANAGER_ERROR_NONESuccessful
PACKAGE_MANAGER_ERROR_INVALID_PARAMETERInvalid parameter
PACKAGE_MANAGER_ERROR_NO_SUCH_PACKAGEThe package is not installed
PACKAGE_MANAGER_ERROR_OUT_OF_MEMORYOut of memory
int package_info_destroy ( package_info_h  package_info)

Destroys the package information handle and releases all its resources.

Since :
2.3
Parameters:
[in]package_infoThe package information handle
Returns:
0 on success, otherwise a negative error value
Return values:
PACKAGE_MANAGER_ERROR_NONESuccessful
PACKAGE_MANAGER_ERROR_INVALID_PARAMETERInvalid parameter
See also:
package_manager_foreach_package_info()
package_manager_get_package_info()
int package_info_foreach_app_from_package ( package_info_h  package_info,
package_info_app_component_type_e  comp_type,
package_info_app_cb  callback,
void *  user_data 
)

Retrieves all application IDs of each package.

Since :
2.3
Parameters:
[in]package_infoThe package info handle
[in]comp_typeThe application component type
[in]callbackThe callback function to invoke
[in]user_dataThe user data to be passed to the callback function
Returns:
0 on success, otherwise a negative error value
Return values:
PACKAGE_MANAGER_ERROR_NONESuccessful
PACKAGE_MANAGER_ERROR_INVALID_PARAMETERInvalid parameter
PACKAGE_MANAGER_ERROR_NO_SUCH_PACKAGENo such package
Postcondition:
This function invokes package_info_app_cb() repeatedly for each package.
See also:
package_info_app_cb()
int package_info_foreach_cert_info ( package_info_h  package_info,
package_info_cert_info_cb  callback,
void *  user_data 
)

Retrieves certification information of the package.

Since :
2.3
Parameters:
[in]package_infoThe package information
[in]callbackThe iteration callback function
[in]user_dataThe user data to be passed to the callback function
Returns:
0 on success, otherwise a negative error value
Return values:
PACKAGE_MANAGER_ERROR_NONESuccessful
PACKAGE_MANAGER_ERROR_INVALID_PARAMETERInvalid parameter
PACKAGE_MANAGER_ERROR_OUT_OF_MEMORYOut of memory
PACKAGE_MANAGER_ERROR_IO_ERRORI/O error
int package_info_foreach_privilege_info ( package_info_h  package_info,
package_info_privilege_info_cb  callback,
void *  user_data 
)

Retrieves privilege information of the package.

Since :
2.3
Parameters:
[in]package_infoThe package information
[in]callbackThe iteration callback function
[in]user_dataThe user data to be passed to the callback function
Returns:
0 on success, otherwise a negative error value
Return values:
PACKAGE_MANAGER_ERROR_NONESuccessful
PACKAGE_MANAGER_ERROR_INVALID_PARAMETERInvalid parameter
PACKAGE_MANAGER_ERROR_OUT_OF_MEMORYOut of memory
PACKAGE_MANAGER_ERROR_IO_ERRORI/O error
int package_info_get_icon ( package_info_h  package_info,
char **  path 
)

Gets the absolute path to the icon image.

Since :
2.3
Remarks:
You must release path using free().
Parameters:
[in]package_infoThe package information
[out]pathThe path of the package
Returns:
0 on success, otherwise a negative error value
Return values:
PACKAGE_MANAGER_ERROR_NONESuccessful
PACKAGE_MANAGER_ERROR_INVALID_PARAMETERInvalid parameter
PACKAGE_MANAGER_ERROR_OUT_OF_MEMORYOut of memory
PACKAGE_MANAGER_ERROR_IO_ERRORI/O error

Gets the installed storage for the given package.

Since :
2.3
Parameters:
[in]package_infoThe package information
[out]storageThe installed storage
Returns:
0 on success, otherwise a negative error value
Return values:
PACKAGE_MANAGER_ERROR_NONESuccessful
PACKAGE_MANAGER_ERROR_INVALID_PARAMETERInvalid parameter
int package_info_get_label ( package_info_h  package_info,
char **  label 
)

Gets the label of the package.

Since :
2.3
Remarks:
You must release label using free().
Parameters:
[in]package_infoThe package information
[out]labelThe label of the package
Returns:
0 on success, otherwise a negative error value
Return values:
PACKAGE_MANAGER_ERROR_NONESuccessful
PACKAGE_MANAGER_ERROR_INVALID_PARAMETERInvalid parameter
PACKAGE_MANAGER_ERROR_OUT_OF_MEMORYOut of memory
PACKAGE_MANAGER_ERROR_IO_ERRORI/O error
int package_info_get_package ( package_info_h  package_info,
char **  package 
)

Gets the package name.

Since :
2.3
Remarks:
You must release package using free().
Parameters:
[in]package_infoThe package information
[out]packageThe package name
Returns:
0 on success, otherwise a negative error value
Return values:
PACKAGE_MANAGER_ERROR_NONESuccessful
PACKAGE_MANAGER_ERROR_INVALID_PARAMETERInvalid parameter
PACKAGE_MANAGER_ERROR_OUT_OF_MEMORYOut of memory
int package_info_get_root_path ( package_info_h  package_info,
char **  path 
)

Gets the root path of the package.

Since :
2.3
Remarks:
You must release path using free().
Parameters:
[in]package_infoThe package information
[out]pathThe root path of the package
Returns:
0 on success, otherwise a negative error value
Return values:
PACKAGE_MANAGER_ERROR_NONESuccessful
PACKAGE_MANAGER_ERROR_INVALID_PARAMETERInvalid parameter
PACKAGE_MANAGER_ERROR_OUT_OF_MEMORYOut of memory
PACKAGE_MANAGER_ERROR_IO_ERRORI/O error
int package_info_get_tep_name ( package_info_h  package_info,
char **  name 
)

Gets the name of the TEP(Tizen Expansion Package).

Warning:
This is not for use by third-party applications.
Since :
3.0
Privilege Level:
platform
Privilege:
http://tizen.org/privilege/packagemanager.admin
Remarks:
Name must be released using free().
Parameters:
[in]package_infoThe package information
[out]nameThe name of the tep
Returns:
0 on success, otherwise a negative error value
Return values:
PACKAGE_MANAGER_ERROR_NONESuccessful
PACKAGE_MANAGER_ERROR_INVALID_PARAMETERInvalid parameter
PACKAGE_MANAGER_ERROR_OUT_OF_MEMORYOut of memory
PACKAGE_MANAGER_ERROR_SYSTEM_ERRORSevere system error
PACKAGE_MANAGER_ERROR_PERMISSION_DENIEDPermission denied
int package_info_get_type ( package_info_h  package_info,
char **  type 
)

Gets the type of the package.

Since :
2.3
Remarks:
You must release type using free().
Parameters:
[in]package_infoThe package information
[out]typeThe type of the package
Returns:
0 on success, otherwise a negative error value
Return values:
PACKAGE_MANAGER_ERROR_NONESuccessful
PACKAGE_MANAGER_ERROR_INVALID_PARAMETERInvalid parameter
PACKAGE_MANAGER_ERROR_OUT_OF_MEMORYOut of memory
PACKAGE_MANAGER_ERROR_IO_ERRORI/O error
int package_info_get_version ( package_info_h  package_info,
char **  version 
)

Gets the version of the package.

Since :
2.3
Remarks:
You must release version using free().
Parameters:
[in]package_infoThe package information
[out]versionThe version of the package
Returns:
0 on success, otherwise a negative error value
Return values:
PACKAGE_MANAGER_ERROR_NONESuccessful
PACKAGE_MANAGER_ERROR_INVALID_PARAMETERInvalid parameter
PACKAGE_MANAGER_ERROR_OUT_OF_MEMORYOut of memory
PACKAGE_MANAGER_ERROR_IO_ERRORI/O error
int package_info_is_accessible ( package_info_h  package_info,
bool *  accessible 
)

Checks whether the package info is accessible for the given package.

Since :
2.3
Parameters:
[in]package_infoThe package information
[out]accessibletrue if the package info is accessible, otherwise false if the package info is not accessible
Returns:
0 on success, otherwise a negative error value
Return values:
PACKAGE_MANAGER_ERROR_NONESuccessful
PACKAGE_MANAGER_ERROR_INVALID_PARAMETERInvalid parameter
int package_info_is_equal ( package_info_h  lhs,
package_info_h  rhs,
bool *  equal 
)

Checks whether two package information is equal.

Since :
2.3
Parameters:
[in]lhsThe first package information to be compared
[in]rhsThe second package information to be compared
[out]equaltrue if the package information are equal, otherwise false if package information are not equal
Returns:
0 on success, otherwise a negative error value
Return values:
PACKAGE_MANAGER_ERROR_NONESuccessful
PACKAGE_MANAGER_ERROR_INVALID_PARAMETERInvalid parameter
PACKAGE_MANAGER_ERROR_OUT_OF_MEMORYOut of memory
PACKAGE_MANAGER_ERROR_IO_ERRORDatabase error occurred
int package_info_is_preload_package ( package_info_h  package_info,
bool *  preload 
)

Checks whether the package is preloaded.

Since :
2.3
Parameters:
[in]package_infoThe package information
[out]preloadThe preload info of the package
Returns:
0 on success, otherwise a negative error value
Return values:
PACKAGE_MANAGER_ERROR_NONESuccessful
PACKAGE_MANAGER_ERROR_INVALID_PARAMETERInvalid parameter
PACKAGE_MANAGER_ERROR_OUT_OF_MEMORYOut of memory
PACKAGE_MANAGER_ERROR_IO_ERRORI/O error
int package_info_is_removable_package ( package_info_h  package_info,
bool *  removable 
)

Checks whether the package is removable.

Since :
2.3
Parameters:
[in]package_infoThe package information
[out]removableThe removable info of the package
Returns:
0 on success, otherwise a negative error value
Return values:
PACKAGE_MANAGER_ERROR_NONESuccessful
PACKAGE_MANAGER_ERROR_INVALID_PARAMETERInvalid parameter
PACKAGE_MANAGER_ERROR_OUT_OF_MEMORYOut of memory
PACKAGE_MANAGER_ERROR_IO_ERRORIO error
int package_info_is_system_package ( package_info_h  package_info,
bool *  system 
)

Checks whether the package is system package.

Since :
2.3
Parameters:
[in]package_infoThe package information
[out]systemtrue if the package is system package, otherwise false if the package is not system package
Returns:
0 on success, otherwise a negative error value
Return values:
PACKAGE_MANAGER_ERROR_NONESuccessful
PACKAGE_MANAGER_ERROR_INVALID_PARAMETERInvalid parameter
PACKAGE_MANAGER_ERROR_OUT_OF_MEMORYOut of memory
PACKAGE_MANAGER_ERROR_IO_ERRORI/O error