4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Jayoun Lee <airjany@samsung.com>, Sewook Park <sewook7.park@samsung.com>,
7 * Jaeho Lee <jaeho81.lee@samsung.com>, Shobhit Srivastava <shobhit.s@samsung.com>
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
23 #ifndef __PKGMGRINFO_TYPE_H__
24 #define __PKGMGRINFO_TYPE_H__
26 #include <sys/types.h>
28 /* app background category value */
29 #define APP_BG_CATEGORY_USER_DISABLE_FALSE_VAL 0x00000
30 #define APP_BG_CATEGORY_USER_DISABLE_TRUE_VAL 0x00001
31 #define APP_BG_CATEGORY_MEDIA_VAL 0x00002
32 #define APP_BG_CATEGORY_DOWNLOAD_VAL 0x00004
33 #define APP_BG_CATEGORY_BGNETWORK_VAL 0x00008
34 #define APP_BG_CATEGORY_LOCATION_VAL 0x00010
35 #define APP_BG_CATEGORY_SENSOR_VAL 0x00020
36 #define APP_BG_CATEGORY_IOTCOMM_VAL 0x00040
37 #define APP_BG_CATEGORY_SYSTEM_VAL 0x00080
39 #define APP_BG_CATEGORY_USER_DISABLE_FALSE_STR "enable"
40 #define APP_BG_CATEGORY_USER_DISABLE_TRUE_STR "disable"
41 #define APP_BG_CATEGORY_MEDIA_STR "media"
42 #define APP_BG_CATEGORY_DOWNLOAD_STR "download"
43 #define APP_BG_CATEGORY_BGNETWORK_STR "background-network"
44 #define APP_BG_CATEGORY_LOCATION_STR "location"
45 #define APP_BG_CATEGORY_SENSOR_STR "sensor"
46 #define APP_BG_CATEGORY_IOTCOMM_STR "iot-communication"
47 #define APP_BG_CATEGORY_SYSTEM "system"
49 /* Integer property for support-mode */
50 #define APP_SUPPORT_MODE_ULTRA_POWER_SAVING_VAL 0x00001
51 #define APP_SUPPORT_MODE_COOL_DOWN_VAL 0x00002
52 #define APP_SUPPORT_MODE_SCREEN_READER_VAL 0x00004
54 /* String property for support-mode */
55 #define APP_SUPPORT_MODE_ULTRA_POWER_SAVING_STR "ultra-power-saving"
56 #define APP_SUPPORT_MODE_COOL_DOWN_STR "cool-down"
57 #define APP_SUPPORT_MODE_SCREEN_READER_STR "screen-reader"
60 * @brief A type to retrieve uid information from the manifest handle
64 } pkgmgrinfo_uidinfo_t;
67 * @brief A handle to insert certificate information
69 typedef void *pkgmgrinfo_instcertinfo_h;
72 * @brief Certificate Types to be used for setting information
75 PMINFO_SET_AUTHOR_ROOT_CERT = 0, /**< Author Root Certificate*/
76 PMINFO_SET_AUTHOR_INTERMEDIATE_CERT = 1, /**< Author Intermediate Certificate*/
77 PMINFO_SET_AUTHOR_SIGNER_CERT = 2, /**< Author Signer Certificate*/
78 PMINFO_SET_DISTRIBUTOR_ROOT_CERT = 3, /**< Distributor Root Certificate*/
79 PMINFO_SET_DISTRIBUTOR_INTERMEDIATE_CERT = 4, /**< Distributor Intermediate Certificate*/
80 PMINFO_SET_DISTRIBUTOR_SIGNER_CERT = 5, /**< Distributor Signer Certificate*/
81 PMINFO_SET_DISTRIBUTOR2_ROOT_CERT = 6, /**< End Entity Root Certificate*/
82 PMINFO_SET_DISTRIBUTOR2_INTERMEDIATE_CERT = 7, /**< End Entity Intermediate Certificate*/
83 PMINFO_SET_DISTRIBUTOR2_SIGNER_CERT = 8, /**< End Entity Signer Certificate*/
84 } pkgmgrinfo_instcert_type;
87 PMINFO_CERT_COMPARE_MATCH,
88 PMINFO_CERT_COMPARE_MISMATCH,
89 PMINFO_CERT_COMPARE_LHS_NO_CERT,
90 PMINFO_CERT_COMPARE_RHS_NO_CERT,
91 PMINFO_CERT_COMPARE_BOTH_NO_CERT,
92 PMINFO_CERT_COMPARE_ERROR,
93 } pkgmgrinfo_cert_compare_result_type_e;
96 PMINFO_APPINFO_GET_BASICINFO = 0x0001,
97 PMINFO_APPINFO_GET_LABEL = 0x0002,
98 PMINFO_APPINFO_GET_ICON = 0x0004,
99 PMINFO_APPINFO_GET_CATEGORY = 0x0008,
100 PMINFO_APPINFO_GET_APP_CONTROL = 0x0010,
101 PMINFO_APPINFO_GET_METADATA = 0x0020,
102 PMINFO_APPINFO_GET_SPLASH_SCREEN = 0x0040,
103 PMINFO_APPINFO_GET_ALL = 0x007F
104 } pkgmgrinfo_appinfo_get_option;
107 PMINFO_PKGINFO_GET_BASICINFO = 0x0001,
108 PMINFO_PKGINFO_GET_LABEL = 0x0002,
109 PMINFO_PKGINFO_GET_ICON = 0x0004,
110 PMINFO_PKGINFO_GET_AUTHOR = 0x0008,
111 PMINFO_PKGINFO_GET_DESCRIPTION = 0x0010,
112 PMINFO_PKGINFO_GET_PRIVILEGE = 0x0020,
113 PMINFO_PKGINFO_GET_APPDEFINED_PRIVILEGE = 0x0040,
114 PMINFO_PKGINFO_GET_DEPENDENCY = 0x0080,
115 PMINFO_PKGINFO_GET_ALL = 0x00FF
116 } pkgmgrinfo_pkginfo_get_option;
119 * @brief API return values
122 PMINFO_R_ENOENT = -3, /**< No result */
123 PMINFO_R_EINVAL = -2, /**< Invalid argument */
124 PMINFO_R_ERROR = -1, /**< General error */
125 PMINFO_R_OK = 0 /**< General success */
129 * @brief Value to be used when filtering based on install location
131 #define PMINFO_PKGINFO_INSTALL_LOCATION_AUTO "LOCATION_AUTO"
134 * @brief Value to be used when filtering based on install location
136 #define PMINFO_PKGINFO_INSTALL_LOCATION_INTERNAL "LOCATION_INTERNAL"
139 * @brief Value to be used when filtering based on install location
141 #define PMINFO_PKGINFO_INSTALL_LOCATION_EXTERNAL "LOCATION_EXTERNAL"
144 * @brief Value to be used when get/set update information
146 #define PMINFO_UPDATEINFO_TYPE_FORCE "force"
149 * @brief Value to be used when get/set update information
151 #define PMINFO_UPDATEINFO_TYPE_OPTIONAL "optional"
154 * @brief Value to be used when get/set update information
156 #define PMINFO_UPDATEINFO_TYPE_NONE "none"
159 PMINFO_UPDATEINFO_NONE = 0, /**<No update info exists*/
160 PMINFO_UPDATEINFO_FORCE, /**<Don't launch application if it's not updated*/
161 PMINFO_UPDATEINFO_OPTIONAL /**<Update exists but not force user to update it*/
162 } pkgmgrinfo_updateinfo_update_type;
165 PMINFO_HWACCELERATION_OFF = 0, /**< Don't use hardware acceleration*/
166 PMINFO_HWACCELERATION_ON = 1, /**< Use hardware acceleration*/
167 PMINFO_HWACCELERATION_DEFAULT = 2 /**< Follow system setting for hardware acceleration */
168 } pkgmgrinfo_app_hwacceleration;
171 PMINFO_SCREENREADER_OFF = 0, /**< Don't use screen reader*/
172 PMINFO_SCREENREADER_ON = 1, /**< Use screen reader*/
173 PMINFO_SCREENREADER_USE_SYSTEM_SETTING = 2 /**< Follow system setting for screen reader */
174 } pkgmgrinfo_app_screenreader;
177 PMINFO_RECENTIMAGE_USE_ICON = 0, /**<Use icon for recent image*/
178 PMINFO_RECENTIMAGE_USE_CAPTURE = 1, /**< Use capture for recent image*/
179 PMINFO_RECENTIMAGE_USE_NOTHING = 2 /**< Don't use recent image */
180 } pkgmgrinfo_app_recentimage;
183 * @brief A handle to get package information
185 typedef void *pkgmgrinfo_pkginfo_h;
188 * @brief A handle to get application information
190 typedef void *pkgmgrinfo_appinfo_h;
193 * @brief A handle to get certificate information
195 typedef void *pkgmgrinfo_certinfo_h;
198 * @brief A handle to filter package information
200 typedef void *pkgmgrinfo_pkginfo_filter_h;
203 * @brief A handle to get/set package update information
205 typedef void *pkgmgrinfo_updateinfo_h;
208 * @brief A handle to filter application information
210 typedef void *pkgmgrinfo_appinfo_filter_h;
213 * @brief A handle to filter application metadata information
215 typedef void *pkgmgrinfo_appinfo_metadata_filter_h;
218 * @brief A handle to get appcontrol information
220 typedef void *pkgmgrinfo_appcontrol_h;
223 * @brief A handle to get package archive information
225 typedef void *pkgmgrinfo_archiveinfo_h;
228 * @brief A handle to get component information
230 typedef void *pkgmgrinfo_compinfo_h;
233 * @brief type definition.
235 typedef void pkgmgrinfo_client;
238 * @fn int (*pkgmgrinfo_foreach_updateinfo_cb) (const pkgmgrinfo_updateinfo_h handle, void *user_data)
240 * @brief Specifies the type of function passed to pkgmgrinfo_updateinfo_foreach_updateinfo()
242 * @param[in] handle the package update info handle
243 * @param[in] user_data user data passed to pkgmgrinfo_foreach_pkg_update info()
245 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
247 * @see pkgmgrinfo_updateinfo_foreach_updateinfo()
249 typedef int (*pkgmgrinfo_foreach_updateinfo_cb) (const pkgmgrinfo_updateinfo_h handle,
253 * @fn int (*pkgmgrinfo_pkg_list_cb) (const pkgmgrinfo_pkginfo_h handle, void *user_data)
255 * @brief Specifies the type of function passed to pkgmgrinfo_pkginfo_get_list(), pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
257 * @param[in] handle the pkginfo handle
258 * @param[in] user_data user data passed to pkgmgrinfo_pkginfo_get_list(), pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
260 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
262 * @see pkgmgrinfo_pkginfo_get_list()
263 * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
265 typedef int (*pkgmgrinfo_pkg_list_cb) (const pkgmgrinfo_pkginfo_h handle,
269 * @fn int (*pkgmgrinfo_app_list_cb) (const pkgmgrinfo_appinfo_h handle, void *user_data)
271 * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_get_list(), pkgmgrinfo_appinfo_filter_foreach_appinfo(), pkgmgrinfo_appinfo_metadata_filter_foreach()
273 * @param[in] handle the appinfo handle
274 * @param[in] user_data user data passed to pkgmgrinfo_appinfo_get_list(), pkgmgrinfo_appinfo_filter_foreach_appinfo(), pkgmgrinfo_appinfo_metadata_filter_foreach()
276 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
278 * @see pkgmgrinfo_appinfo_get_list()
279 * @see pkgmgrinfo_appinfo_filter_foreach_appinfo()
280 * @see pkgmgrinfo_appinfo_metadata_filter_foreach()
282 typedef int (*pkgmgrinfo_app_list_cb) (const pkgmgrinfo_appinfo_h handle,
286 * @fn int (*pkgmgrinfo_app_category_list_cb) (const char *category_name, void *user_data)
288 * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_category()
290 * @param[in] category_name the name of the category
291 * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_category()
293 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
295 * @see pkgmgrinfo_appinfo_foreach_category()
297 typedef int (*pkgmgrinfo_app_category_list_cb) (const char *category_name,
301 * @fn int (*pkgmgrinfo_pkg_privilege_list_cb) (const char *privilege_name, void *user_data)
303 * @brief Specifies the type of function passed to pkgmgrinfo_pkginfo_foreach_privilege()
305 * @param[in] privilege_name the name of the privilege
306 * @param[in] user_data user data passed to pkgmgrinfo_pkginfo_foreach_privilege()
308 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
310 * @see pkgmgrinfo_pkginfo_foreach_privilege()
312 typedef int (*pkgmgrinfo_pkg_privilege_list_cb) (const char *privilege_name,
316 * @fn int (*pkgmgrinfo_pkg_appdefined_privilege_list_cb) (const char *privilege_name, const char *license_path, void *user_data)
318 * @brief Specifies the type of function passed to pkgmgrinfo_pkginfo_foreach_appdefined_privilege()
320 * @param[in] privilege_name the name of the privilege
321 * @param[in] license_path the path of the license
322 * @param[in] user_data user data passed to pkgmgrinfo_pkginfo_foreach_appdefined_privilege()
324 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
326 * @see pkgmgrinfo_pkginfo_foreach_appdefined_privilege()
328 typedef int (*pkgmgrinfo_pkg_appdefined_privilege_list_cb) (const char *privilege_name,
329 const char *license_path,
332 * @fn int (*pkgmgrinfo_pkg_dependency_list_cb) (const char *from, const char *to, const char *type, const char *required_version, void *user_data)
334 * @brief Specifies the dependency info of given package passed to pkgmgrinfo_pkginfo_foreach_dependency() or pkgmgrinfo_pkginfo_foreach_required_by()
336 * @param[in] from the pkgid which depends other package
337 * @param[in] to the pkgid which has dependency with given package
338 * @param[in] type type of dependency
339 * @param[in] required_version required version of dependency
340 * @param[in] user_data user data passed
342 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
344 * @see pkgmgrinfo_pkginfo_foreach_dependency()
345 * @see pkgmgrinfo_pkginfo_foreach_required_by()
347 typedef int (*pkgmgrinfo_pkg_dependency_list_cb) (const char *from, const char *to,
348 const char *type, const char *required_version,
352 * @fn int (*pkgmgrinfo_plugin_list_cb) (const char *pkgid, const char *appid, const char *plugin_type, const char *plugin_name, void *user_data);
354 * @brief Specifies the type of function passed to pkgmgrinfo_plugininfo_foreach_plugininfo()
356 * @param[in] pkgid the name of the package
357 * @param[in] appid the name of the application
358 * @param[in] plugin_type the type of the executed plugin
359 * @param[in] plugin_name the name of the executed plugin
360 * @param[in] user_data user data passed to pkgmgrinfo_plugininfo_foreach_plugininfo()
362 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
364 * @see pkgmgrinfo_plugininfo_foreach_plugininfo()
366 typedef int (*pkgmgrinfo_plugin_list_cb) (const char *pkgid, const char *appid,
367 const char *plugin_type, const char *plugin_name,
371 * @fn int (*pkgmgrinfo_app_metadata_list_cb) (const char *metadata_key, const char *metadata_value, void *user_data)
373 * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_metadata()
375 * @param[in] metadata_name the name of the metadata
376 * @param[in] metadata_value the value of the metadata
377 * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_metadata()
379 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
381 * @see pkgmgrinfo_appinfo_foreach_metadata()
383 typedef int (*pkgmgrinfo_app_metadata_list_cb) (const char *metadata_key,
384 const char *metadata_value, void *user_data);
387 * @fn int (*pkgmgrinfo_app_control_list_cb) (pkgmgrinfo_appcontrol_h handle, void *user_data)
389 * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_appcontrol()
391 * @param[in] handle the appcontrol handle to be used to get operation, uri and mime info
392 * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_appcontrol()
394 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
396 * @see pkgmgrinfo_appinfo_foreach_appcontrol()
398 typedef int (*pkgmgrinfo_app_control_list_cb) (const char *operation, const char *uri, const char *mime,
401 * @fn int (*pkgmgrinfo_app_control_list_cb_v2) (const char *operation, const char *uri, const char *mime, const char *id, void *user_data)
403 * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_appcontrol_info()
405 * @param[in] operation The operation of the app-control
406 * @param[in] uri The URI of the app-control
407 * @param[in] mime The MIME-Type of the app-control
408 * @param[in] id The ID of the app-control
409 * @param[in] user_data The user data passed from pkgmgrinfo_appinfo_foreach_appcontrol_v2()
411 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
413 * @see pkgmgrinfo_appinfo_foreach_appcontrol_v2()
415 typedef int (*pkgmgrinfo_app_control_list_cb_v2) (const char *operation,
416 const char *uri, const char *mime, const char *id,
420 * @fn int (*pkgmgrinfo_app_background_category_list_cb) (const char *category_name, void *user_data)
422 * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_background_category()
424 * @param[in] category_name retrieved background category name
425 * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_background_category
427 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
429 * @see pkgmgrinfo_appinfo_foreach_background_category()
431 typedef int (*pkgmgrinfo_app_background_category_list_cb) (const char *category_name, void *user_data);
434 * @fn int (*pkgmgrinfo_app_splash_screen_list_cb)(const char *src,
435 * const char *type, const char *orientation,
436 * const char *indicatordisplay, const char *color_depth,
438 * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_splash_screen()
440 * @param[in] src the source of the splashscreen
441 * @param[in] type the type of the splashscreen
442 * @param[in] orientation the orientation of the splashscreen
443 * @param[in] indicatordisplay the indicator-display of the splashscreen
444 * @param[in] operation the app-control operation of the splashscreen
445 * @param[in] color_depth the color-depth of the splashscreen
446 * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_splash_screen()
448 * @return 0 if success, negative value(<0) if fail, Callback is not called if return value is negative.\n
450 * @see pkgmgrinfo_appinfo_foreach_splash_screen()
452 typedef int (*pkgmgrinfo_app_splash_screen_list_cb)(const char *src,
453 const char *type, const char *orientation,
454 const char *indicatordisplay, const char *operation,
455 const char *color_depth, void *user_data);
458 * @fn int (*pkgmgrinfo_component_info_list_cb)(
459 * const pkgmgrinfo_compinfo_h handle, void *user_data);
460 * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_component_info()
462 * @param[in] handle The handle of the component info
463 * @param[in] user_data The user data passed from pkgmgrinfo_appinfo_foreach_component_info()
465 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
467 * @see pkgmgrinfo_appinfo_foreach_component_info()
469 typedef int (*pkgmgrinfo_component_info_list_cb)(
470 const pkgmgrinfo_compinfo_h handle, void *user_data);
473 * @brief Install Location Types
476 PMINFO_INSTALL_LOCATION_AUTO = 0, /**< Auto*/
477 PMINFO_INSTALL_LOCATION_INTERNAL_ONLY, /**< Internal Installation*/
478 PMINFO_INSTALL_LOCATION_PREFER_EXTERNAL, /**< External Installation*/
479 } pkgmgrinfo_install_location;
482 * @brief Application Component Types
485 PMINFO_ALL_APP = 0, /**< All Application*/
486 PMINFO_UI_APP, /**< UI Application*/
487 PMINFO_SVC_APP, /**< Service Application*/
488 PMINFO_WIDGET_APP, /**< Widget Application*/
489 PMINFO_WATCH_APP, /**< Watch Application*/
490 PMINFO_COMPONENT_BASED_APP, /**< Component-based Application (Since 5.5)*/
491 } pkgmgrinfo_app_component;
494 * @brief Application Storage Types
497 PMINFO_INTERNAL_STORAGE = 0, /**< Internal Storage*/
498 PMINFO_EXTERNAL_STORAGE = 1, /**< External Storage*/
499 PMINFO_EXTENDED_STORAGE = 2, /**< Extended Storage*/
500 } pkgmgrinfo_installed_storage;
503 * @brief Certificate Types to be used for getting information
506 PMINFO_AUTHOR_ROOT_CERT = 0, /**< Author Root Certificate*/
507 PMINFO_AUTHOR_INTERMEDIATE_CERT = 1, /**< Author Intermediate Certificate*/
508 PMINFO_AUTHOR_SIGNER_CERT = 2, /**< Author Signer Certificate*/
509 PMINFO_DISTRIBUTOR_ROOT_CERT = 3, /**< Distributor Root Certificate*/
510 PMINFO_DISTRIBUTOR_INTERMEDIATE_CERT = 4, /**< Distributor Intermediate Certificate*/
511 PMINFO_DISTRIBUTOR_SIGNER_CERT = 5, /**< Distributor Signer Certificate*/
512 PMINFO_DISTRIBUTOR2_ROOT_CERT = 6, /**< End Entity Root Certificate*/
513 PMINFO_DISTRIBUTOR2_INTERMEDIATE_CERT = 7, /**< End Entity Intermediate Certificate*/
514 PMINFO_DISTRIBUTOR2_SIGNER_CERT = 8, /**< End Entity Signer Certificate*/
515 } pkgmgrinfo_cert_type;
518 * @brief version comparison Types
521 PMINFO_VERSION_OLD = -1,
524 } pkgmgrinfo_version_compare_type;
527 * @brief Install Location Types to be used when setting data in DB
530 INSTALL_INTERNAL = 0, /**< Internal Installation*/
531 INSTALL_EXTERNAL, /**< External Installation*/
532 INSTALL_EXTENDED, /**< Extended Installation*/
536 * @brief permission Types
539 PMINFO_PERMISSION_NORMAL = 0, /**< permission normal*/
540 PMINFO_PERMISSION_SIGNATURE, /**< permission type is signature*/
541 PMINFO_PERMISSION_PRIVILEGE, /**< permission type is privilege*/
542 } pkgmgrinfo_permission_type;