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.
29 * @author Sewook Park <sewook7.park@samsung.com>
30 * @author Shobhit Srivastava <shobhit.s@samsung.com>
32 * @brief This file declares API of pkgmgr-info library
34 * @addtogroup APPLICATION_FRAMEWORK
37 * @defgroup PackageManagerInfo
38 * @section Header Header file to include:
40 * #include <pkgmgr-info.h>
46 #ifndef __PKG_INFO_H__
47 #define __PKG_INFO_H__
60 * This is package information library
62 * Package Information Library is used to get package related information.\n
63 * It uses the package manifest information database to get any package related information\n
64 * It also provides API to set information in the package info database\n
70 * @brief Package Information Library Header File
72 * Generated by Sewook Park <sewook7.park@samsung.com>
76 * @brief A type to retrieve uid information from the manifest handle
80 } pkgmgrinfo_uidinfo_t;
83 * @brief A handle to insert certificate information
85 typedef void* pkgmgrinfo_instcertinfo_h;
88 * @brief Certificate Types to be used for setting information
91 PMINFO_SET_AUTHOR_ROOT_CERT = 0, /**< Author Root Certificate*/
92 PMINFO_SET_AUTHOR_INTERMEDIATE_CERT = 1, /**< Author Intermediate Certificate*/
93 PMINFO_SET_AUTHOR_SIGNER_CERT = 2, /**< Author Signer Certificate*/
94 PMINFO_SET_DISTRIBUTOR_ROOT_CERT = 3, /**< Distributor Root Certificate*/
95 PMINFO_SET_DISTRIBUTOR_INTERMEDIATE_CERT = 4, /**< Distributor Intermediate Certificate*/
96 PMINFO_SET_DISTRIBUTOR_SIGNER_CERT = 5, /**< Distributor Signer Certificate*/
97 PMINFO_SET_DISTRIBUTOR2_ROOT_CERT = 6, /**< End Entity Root Certificate*/
98 PMINFO_SET_DISTRIBUTOR2_INTERMEDIATE_CERT = 7, /**< End Entity Intermediate Certificate*/
99 PMINFO_SET_DISTRIBUTOR2_SIGNER_CERT = 8, /**< End Entity Signer Certificate*/
100 }pkgmgrinfo_instcert_type;
103 PMINFO_CERT_COMPARE_MATCH,
104 PMINFO_CERT_COMPARE_MISMATCH,
105 PMINFO_CERT_COMPARE_LHS_NO_CERT,
106 PMINFO_CERT_COMPARE_RHS_NO_CERT,
107 PMINFO_CERT_COMPARE_BOTH_NO_CERT,
108 PMINFO_CERT_COMPARE_ERROR,
109 } pkgmgrinfo_cert_compare_result_type_e;
112 * @brief API return values
115 PMINFO_R_EINVAL = -2, /**< Invalid argument */
116 PMINFO_R_ERROR = -1, /**< General error */
117 PMINFO_R_OK = 0 /**< General success */
121 * @brief Value to be used when filtering based on install location
123 #define PMINFO_PKGINFO_INSTALL_LOCATION_AUTO "LOCATION_AUTO"
126 * @brief Value to be used when filtering based on install location
128 #define PMINFO_PKGINFO_INSTALL_LOCATION_INTERNAL "LOCATION_INTERNAL"
131 * @brief Value to be used when filtering based on install location
133 #define PMINFO_PKGINFO_INSTALL_LOCATION_EXTERNAL "LOCATION_EXTERNAL"
136 * @brief Value to be used when filtering based on app-component
138 #define PMINFO_APPINFO_UI_APP "UI_APP"
141 * @brief Value to be used when filtering based on app-component
143 #define PMINFO_APPINFO_SVC_APP "SVC_APP"
146 PMINFO_HWACCELERATION_NOT_USE_GL = 0, /**< Don't use hardware acceleration*/
147 PMINFO_HWACCELERATION_USE_GL = 1, /**< Use hardware acceleration*/
148 PMINFO_HWACCELERATION_USE_SYSTEM_SETTING = 2 /**< Follow system setting for hardware acceleration */
149 }pkgmgrinfo_app_hwacceleration;
152 PMINFO_SCREENREADER_OFF = 0, /**< Don't use screen reader*/
153 PMINFO_SCREENREADER_ON = 1, /**< Use screen reader*/
154 PMINFO_SCREENREADER_USE_SYSTEM_SETTING = 2 /**< Follow system setting for screen reader */
155 }pkgmgrinfo_app_screenreader;
158 PMINFO_RECENTIMAGE_USE_ICON = 0, /**<Use icon for recent image*/
159 PMINFO_RECENTIMAGE_USE_CAPTURE = 1, /**< Use capture for recent image*/
160 PMINFO_RECENTIMAGE_USE_NOTHING = 2 /**< Don't use recent image */
161 }pkgmgrinfo_app_recentimage;
164 * @brief A handle to get package information
166 typedef void* pkgmgrinfo_pkginfo_h;
169 * @brief A handle to get application information
171 typedef void* pkgmgrinfo_appinfo_h;
174 * @brief A handle to get certificate information
176 typedef void* pkgmgrinfo_certinfo_h;
179 * @brief A handle to insert package information
181 typedef void* pkgmgrinfo_pkgdbinfo_h;
184 * @brief A handle to filter package information
186 typedef void* pkgmgrinfo_pkginfo_filter_h;
189 * @brief A handle to filter application information
191 typedef void* pkgmgrinfo_appinfo_filter_h;
194 * @brief A handle to filter application metadata information
196 typedef void* pkgmgrinfo_appinfo_metadata_filter_h;
199 * @brief A handle to get appcontrol information
201 typedef void* pkgmgrinfo_appcontrol_h;
204 * @fn int (*pkgmgrinfo_pkg_list_cb ) (const pkgmgrinfo_pkginfo_h handle, void *user_data)
206 * @brief Specifies the type of function passed to pkgmgrinfo_pkginfo_get_list(), pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
208 * @param[in] handle the pkginfo handle
209 * @param[in] user_data user data passed to pkgmgrinfo_pkginfo_get_list(), pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
211 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
213 * @see pkgmgrinfo_pkginfo_get_list()
214 * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
216 typedef int (*pkgmgrinfo_pkg_list_cb ) (const pkgmgrinfo_pkginfo_h handle,
220 * @fn int (*pkgmgrinfo_app_list_cb ) (const pkgmgrinfo_appinfo_h handle, void *user_data)
222 * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_get_list(), pkgmgrinfo_appinfo_filter_foreach_appinfo(), pkgmgrinfo_appinfo_metadata_filter_foreach()
224 * @param[in] handle the appinfo handle
225 * @param[in] user_data user data passed to pkgmgrinfo_appinfo_get_list(), pkgmgrinfo_appinfo_filter_foreach_appinfo(), pkgmgrinfo_appinfo_metadata_filter_foreach()
227 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
229 * @see pkgmgrinfo_appinfo_get_list()
230 * @see pkgmgrinfo_appinfo_filter_foreach_appinfo()
231 * @see pkgmgrinfo_appinfo_metadata_filter_foreach()
233 typedef int (*pkgmgrinfo_app_list_cb ) (const pkgmgrinfo_appinfo_h handle,
237 * @fn int (*pkgmgrinfo_app_category_list_cb ) (const char *category_name, void *user_data)
239 * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_category()
241 * @param[in] category_name the name of the category
242 * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_category()
244 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
246 * @see pkgmgrinfo_appinfo_foreach_category()
248 typedef int (*pkgmgrinfo_app_category_list_cb ) (const char *category_name,
252 * @fn int (*pkgmgrinfo_app_permission_list_cb ) (const char *permission_type, void *user_data)
254 * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_category()
256 * @param[in] permission_name the name of the permission
257 * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_category()
259 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
261 * @see pkgmgrinfo_appinfo_foreach_category()
263 typedef int (*pkgmgrinfo_app_permission_list_cb ) (const char *permission_type,
267 * @fn int (*pkgmgrinfo_pkg_privilege_list_cb ) (const char *privilege_name, void *user_data)
269 * @brief Specifies the type of function passed to pkgmgrinfo_pkginfo_foreach_privilege()
271 * @param[in] privilege_name the name of the privilege
272 * @param[in] user_data user data passed to pkgmgrinfo_pkginfo_foreach_privilege()
274 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
276 * @see pkgmgrinfo_pkginfo_foreach_privilege()
278 typedef int (*pkgmgrinfo_pkg_privilege_list_cb ) (const char *privilege_name,
282 * @fn int (*pkgmgrinfo_app_metadata_list_cb ) (const char *metadata_key, const char *metadata_value, void *user_data)
284 * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_metadata()
286 * @param[in] metadata_name the name of the metadata
287 * @param[in] metadata_value the value of the metadata
288 * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_metadata()
290 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
292 * @see pkgmgrinfo_appinfo_foreach_metadata()
294 typedef int (*pkgmgrinfo_app_metadata_list_cb ) (const char *metadata_key,
295 const char *metadata_value, void *user_data);
298 * @fn int (*pkgmgrinfo_app_control_list_cb ) (pkgmgrinfo_appcontrol_h handle, void *user_data)
300 * @brief Specifies the type of function passed to pkgmgrinfo_appinfo_foreach_appcontrol()
302 * @param[in] handle the appcontrol handle to be used to get operation, uri and mime info
303 * @param[in] user_data user data passed to pkgmgrinfo_appinfo_foreach_appcontrol()
305 * @return 0 if success, negative value(<0) if fail. Callback is not called if return value is negative.\n
307 * @see pkgmgrinfo_appinfo_foreach_appcontrol()
309 typedef int (*pkgmgrinfo_app_control_list_cb ) (pkgmgrinfo_appcontrol_h handle,
313 * @brief Install Location Types
316 PMINFO_INSTALL_LOCATION_AUTO = 0, /**< Auto*/
317 PMINFO_INSTALL_LOCATION_INTERNAL_ONLY, /**< Internal Installation*/
318 PMINFO_INSTALL_LOCATION_PREFER_EXTERNAL, /**< External Installation*/
319 }pkgmgrinfo_install_location;
322 * @brief Application Component Types
325 PMINFO_ALL_APP = 0, /**< All Application*/
326 PMINFO_UI_APP, /**< UI Application*/
327 PMINFO_SVC_APP, /**< Service Application*/
328 }pkgmgrinfo_app_component;
331 * @brief Application Storage Types
334 PMINFO_INTERNAL_STORAGE = 0, /**< Internal Storage*/
335 PMINFO_EXTERNAL_STORAGE = 1, /**< External Storage*/
336 }pkgmgrinfo_installed_storage;
339 * @brief Certificate Types to be used for getting information
342 PMINFO_AUTHOR_ROOT_CERT = 0, /**< Author Root Certificate*/
343 PMINFO_AUTHOR_INTERMEDIATE_CERT = 1, /**< Author Intermediate Certificate*/
344 PMINFO_AUTHOR_SIGNER_CERT = 2, /**< Author Signer Certificate*/
345 PMINFO_DISTRIBUTOR_ROOT_CERT = 3, /**< Distributor Root Certificate*/
346 PMINFO_DISTRIBUTOR_INTERMEDIATE_CERT = 4, /**< Distributor Intermediate Certificate*/
347 PMINFO_DISTRIBUTOR_SIGNER_CERT = 5, /**< Distributor Signer Certificate*/
348 PMINFO_DISTRIBUTOR2_ROOT_CERT = 6, /**< End Entity Root Certificate*/
349 PMINFO_DISTRIBUTOR2_INTERMEDIATE_CERT = 7, /**< End Entity Intermediate Certificate*/
350 PMINFO_DISTRIBUTOR2_SIGNER_CERT = 8, /**< End Entity Signer Certificate*/
351 }pkgmgrinfo_cert_type;
354 * @brief Install Location Types to be used when setting data in DB
357 INSTALL_INTERNAL = 0, /**< Internal Installation*/
358 INSTALL_EXTERNAL, /**< External Installation*/
362 * @brief permission Types
365 PMINFO_PERMISSION_NORMAL = 0, /**< permission normal*/
366 PMINFO_PERMISSION_SIGNATURE, /**< permission type is signature*/
367 PMINFO_PERMISSION_PRIVILEGE, /**< permission type is privilege*/
368 }pkgmgrinfo_permission_type;
371 /** String property for filtering based on package info*/
372 #define PMINFO_PKGINFO_PROP_PACKAGE_ID "PMINFO_PKGINFO_PROP_PACKAGE_ID"
373 /** String property for filtering based on package info*/
374 #define PMINFO_PKGINFO_PROP_PACKAGE_TYPE "PMINFO_PKGINFO_PROP_PACKAGE_TYPE"
375 /** String property for filtering based on package info*/
376 #define PMINFO_PKGINFO_PROP_PACKAGE_VERSION "PMINFO_PKGINFO_PROP_PACKAGE_VERSION"
377 /** String property for filtering based on package info*/
378 #define PMINFO_PKGINFO_PROP_PACKAGE_INSTALL_LOCATION "PMINFO_PKGINFO_PROP_PACKAGE_INSTALL_LOCATION"
379 /** String property for filtering based on package info*/
380 #define PMINFO_PKGINFO_PROP_PACKAGE_INSTALLED_STORAGE "PMINFO_PKGINFO_PROP_PACKAGE_INSTALLED_STORAGE"
381 /** String property for filtering based on package info*/
382 #define PMINFO_PKGINFO_PROP_PACKAGE_AUTHOR_NAME "PMINFO_PKGINFO_PROP_PACKAGE_AUTHOR_NAME"
383 /** String property for filtering based on package info*/
384 #define PMINFO_PKGINFO_PROP_PACKAGE_AUTHOR_EMAIL "PMINFO_PKGINFO_PROP_PACKAGE_AUTHOR_EMAIL"
385 /** String property for filtering based on package info*/
386 #define PMINFO_PKGINFO_PROP_PACKAGE_AUTHOR_HREF "PMINFO_PKGINFO_PROP_PACKAGE_AUTHOR_HREF"
388 /** Boolean property for filtering based on package info*/
389 #define PMINFO_PKGINFO_PROP_PACKAGE_REMOVABLE "PMINFO_PKGINFO_PROP_PACKAGE_REMOVABLE"
390 /** Boolean property for filtering based on package info*/
391 #define PMINFO_PKGINFO_PROP_PACKAGE_PRELOAD "PMINFO_PKGINFO_PROP_PACKAGE_PRELOAD"
392 /** Boolean property for filtering based on package info*/
393 #define PMINFO_PKGINFO_PROP_PACKAGE_READONLY "PMINFO_PKGINFO_PROP_PACKAGE_READONLY"
394 /** Boolean property for filtering based on package info*/
395 #define PMINFO_PKGINFO_PROP_PACKAGE_UPDATE "PMINFO_PKGINFO_PROP_PACKAGE_UPDATE"
396 /** Boolean property for filtering based on package info*/
397 #define PMINFO_PKGINFO_PROP_PACKAGE_APPSETTING "PMINFO_PKGINFO_PROP_PACKAGE_APPSETTING"
398 /** Boolean property for filtering based on package info*/
399 #define PMINFO_PKGINFO_PROP_PACKAGE_NODISPLAY_SETTING "PMINFO_PKGINFO_PROP_PACKAGE_NODISPLAY_SETTING"
401 /** Integer property for filtering based on package info*/
402 #define PMINFO_PKGINFO_PROP_PACKAGE_SIZE "PMINFO_PKGINFO_PROP_PACKAGE_SIZE"
404 /** String property for filtering based on app info*/
405 #define PMINFO_APPINFO_PROP_APP_ID "PMINFO_APPINFO_PROP_APP_ID"
406 /** String property for filtering based on app info*/
407 #define PMINFO_APPINFO_PROP_APP_COMPONENT "PMINFO_APPINFO_PROP_APP_COMPONENT"
408 /** String property for filtering based on app info*/
409 #define PMINFO_APPINFO_PROP_APP_EXEC "PMINFO_APPINFO_PROP_APP_EXEC"
410 /** String property for filtering based on app info*/
411 #define PMINFO_APPINFO_PROP_APP_ICON "PMINFO_APPINFO_PROP_APP_ICON"
412 /** String property for filtering based on app info*/
413 #define PMINFO_APPINFO_PROP_APP_TYPE "PMINFO_APPINFO_PROP_APP_TYPE"
414 /** String property for filtering based on app info*/
415 #define PMINFO_APPINFO_PROP_APP_OPERATION "PMINFO_APPINFO_PROP_APP_OPERATION"
416 /** String property for filtering based on app info*/
417 #define PMINFO_APPINFO_PROP_APP_URI "PMINFO_APPINFO_PROP_APP_URI"
418 /** String property for filtering based on app info*/
419 #define PMINFO_APPINFO_PROP_APP_MIME "PMINFO_APPINFO_PROP_APP_MIME"
420 /** String property for filtering based on app info*/
421 #define PMINFO_APPINFO_PROP_APP_CATEGORY "PMINFO_APPINFO_PROP_APP_CATEGORY"
422 /** String property for filtering based on app info*/
423 #define PMINFO_APPINFO_PROP_APP_HWACCELERATION "PMINFO_APPINFO_PROP_APP_HWACCELERATION"
424 /** String property for filtering based on app info*/
425 #define PMINFO_APPINFO_PROP_APP_SCREENREADER "PMINFO_APPINFO_PROP_APP_SCREENREADER"
427 /** Boolean property for filtering based on app info*/
428 #define PMINFO_APPINFO_PROP_APP_NODISPLAY "PMINFO_APPINFO_PROP_APP_NODISPLAY"
429 /** Boolean property for filtering based on app info*/
430 #define PMINFO_APPINFO_PROP_APP_MULTIPLE "PMINFO_APPINFO_PROP_APP_MULTIPLE"
431 /** Boolean property for filtering based on app info*/
432 #define PMINFO_APPINFO_PROP_APP_ONBOOT "PMINFO_APPINFO_PROP_APP_ONBOOT"
433 /** Boolean property for filtering based on app info*/
434 #define PMINFO_APPINFO_PROP_APP_AUTORESTART "PMINFO_APPINFO_PROP_APP_AUTORESTART"
435 /** Boolean property for filtering based on app info*/
436 #define PMINFO_APPINFO_PROP_APP_TASKMANAGE "PMINFO_APPINFO_PROP_APP_TASKMANAGE"
437 /** Boolean property for filtering based on app info*/
438 #define PMINFO_APPINFO_PROP_APP_LAUNCHCONDITION "PMINFO_APPINFO_PROP_APP_LAUNCHCONDITION"
440 /** will be updated*/
441 /** string property for filtering based on pkg info*/
442 #define PMINFO_PKGINFO_PROP_RANGE_BASIC "PMINFO_PKGINFO_PROP_RANGE_BASIC"
444 /* For multiuser support */
445 char *getIconPath(uid_t uid);
446 char *getUserPkgParserDBPath(void);
447 char *getUserPkgParserDBPathUID(uid_t uid);
448 char *getUserPkgCertDBPath(void);
449 char *getUserPkgCertDBPathUID(uid_t uid);
450 const char* getUserDesktopPath(uid_t uid);
451 const char* getUserManifestPath(uid_t uid);
454 * @fn int pkgmgrinfo_pkginfo_get_list(pkgmgrinfo_pkg_list_cb pkg_list_cb, void *user_data)
455 * @fn int pkgmgrinfo_pkginfo_get_usr_list(pkgmgrinfo_pkg_list_cb pkg_list_cb, void *user_data, uid_t uid)
456 * @brief This API gets list of installed packages
458 * @par This API is for package-manager client application
459 * @par Sync (or) Async : Synchronous API
460 * @param[in] pkg_list_cb iteration function for list
461 * @param[in] user_data user data to be passed to callback function
462 * @param[in] uid the addressee user id of the instruction
463 * @return 0 if success, error code(<0) if fail
464 * @retval PMINFO_R_OK success
465 * @retval PMINFO_R_EINVAL invalid argument
466 * @retval PMINFO_R_ERROR internal error
470 int pkg_list_cb(pkgmgrinfo_pkginfo_h handle, void *user_data)
474 pkgid1 = (char *)user_data;
475 pkgmgrinfo_pkginfo_get_pkgid(handle, &pkgid2);
476 if (strcmp(pkgid1, pkgid2) == 0) {
483 static int list_pkgs()
486 char *name = "helloworld";
487 ret = pkgmgrinfo_pkginfo_get_list(pkg_list_cb, (void *)name);
488 if (ret != PMINFO_R_OK) {
495 int pkgmgrinfo_pkginfo_get_list(pkgmgrinfo_pkg_list_cb pkg_list_cb, void *user_data);
496 int pkgmgrinfo_pkginfo_get_usr_list(pkgmgrinfo_pkg_list_cb pkg_list_cb, void *user_data, uid_t uid);
498 * @fn int pkgmgrinfo_pkginfo_get_pkginfo(const char *pkgid, pkgmgrinfo_pkginfo_h *handle)
499 * @brief This API creates the package information handle from db
501 * @par This API is for package-manager client application
502 * @par Sync (or) Async : Synchronous API
504 * @param[in] pkgid pointer to package ID
505 * @param[in] uid the addressee user id of the instruction
506 * @param[out] handle pointer to the package info handle.
507 * @return 0 if success, error code(<0) if fail
508 * @retval PMINFO_R_OK success
509 * @retval PMINFO_R_EINVAL invalid argument
510 * @retval PMINFO_R_ERROR internal error
512 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
513 * @see pkgmgrinfo_pkginfo_get_pkgid()
514 * @see pkgmgrinfo_pkginfo_is_removable()
516 static int get_pkg_type(const char *pkgid)
520 pkgmgrinfo_pkginfo_h handle;
521 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
522 if (ret != PMINFO_R_OK)
524 ret = pkgmgrinfo_pkginfo_get_type(handle, &type);
525 if (ret != PMINFO_R_OK) {
526 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
529 printf("pkgtype: %s\n", type);
530 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
535 int pkgmgrinfo_pkginfo_get_pkginfo(const char *pkgid, pkgmgrinfo_pkginfo_h *handle);
536 int pkgmgrinfo_pkginfo_get_usr_pkginfo(const char *pkgid, uid_t uid, pkgmgrinfo_pkginfo_h *handle);
539 * @fn int pkgmgrinfo_pkginfo_get_pkgname(pkgmgrinfo_pkginfo_h handle, char **pkg_name)
540 * @brief This API gets the package name from the package ID
542 * @par This API is for package-manager client application
543 * @par Sync (or) Async : Synchronous API
545 * @param[in] handle pointer to package info handle
546 * @param[out] pkg_name pointer to hold package name
547 * @return 0 if success, error code(<0) if fail
548 * @retval PMINFO_R_OK success
549 * @retval PMINFO_R_EINVAL invalid argument
550 * @retval PMINFO_R_ERROR internal error
551 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
552 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
553 * @see pkgmgrinfo_pkginfo_get_type()
554 * @see pkgmgrinfo_pkginfo_is_removable()
556 static int get_pkg_name(const char *pkgid)
559 char *pkgname = NULL;
560 pkgmgrinfo_pkginfo_h handle;
561 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
562 if (ret != PMINFO_R_OK)
564 ret = pkgmgrinfo_pkginfo_get_pkgname(handle, &pkgname);
565 if (ret != PMINFO_R_OK) {
566 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
569 printf("pkgname: %s\n", pkgname);
570 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
575 int pkgmgrinfo_pkginfo_get_pkgname(pkgmgrinfo_pkginfo_h handle, char **pkg_name);
578 * @fn int pkgmgrinfo_pkginfo_get_pkgid(pkgmgrinfo_pkginfo_h handle, char **pkgid)
579 * @brief This API gets the package id from the package ID
581 * @par This API is for package-manager client application
582 * @par Sync (or) Async : Synchronous API
584 * @param[in] handle pointer to package info handle
585 * @param[out] pkgid pointer to hold package id
586 * @return 0 if success, error code(<0) if fail
587 * @retval PMINFO_R_OK success
588 * @retval PMINFO_R_EINVAL invalid argument
589 * @retval PMINFO_R_ERROR internal error
590 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
591 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
592 * @see pkgmgrinfo_pkginfo_get_type()
593 * @see pkgmgrinfo_pkginfo_is_removable()
595 static int get_pkgid(const char *pkgid)
599 pkgmgrinfo_pkginfo_h handle;
600 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
601 if (ret != PMINFO_R_OK)
603 ret = pkgmgrinfo_pkginfo_get_pkgid(handle, &pkg_id);
604 if (ret != PMINFO_R_OK) {
605 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
608 printf("pkg id: %s\n", pkg_id);
609 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
614 int pkgmgrinfo_pkginfo_get_pkgid(pkgmgrinfo_pkginfo_h handle, char **pkgid);
617 * @fn int pkgmgrinfo_pkginfo_get_type(pkgmgrinfo_pkginfo_h handle, char **type)
618 * @brief This API gets the package type from the package ID
620 * @par This API is for package-manager client application
621 * @par Sync (or) Async : Synchronous API
623 * @param[in] handle pointer to package info handle
624 * @param[out] type pointer to hold package type
625 * @return 0 if success, error code(<0) if fail
626 * @retval PMINFO_R_OK success
627 * @retval PMINFO_R_EINVAL invalid argument
628 * @retval PMINFO_R_ERROR internal error
629 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
630 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
631 * @see pkgmgrinfo_pkginfo_get_pkgid()
632 * @see pkgmgrinfo_pkginfo_is_removable()
634 static int get_pkg_type(const char *pkgid)
638 pkgmgrinfo_pkginfo_h handle;
639 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
640 if (ret != PMINFO_R_OK)
642 ret = pkgmgrinfo_pkginfo_get_type(handle, &type);
643 if (ret != PMINFO_R_OK) {
644 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
647 printf("pkgtype: %s\n", type);
648 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
653 int pkgmgrinfo_pkginfo_get_type(pkgmgrinfo_pkginfo_h handle, char **type);
656 * @fn int pkgmgrinfo_pkginfo_get_version(pkgmgrinfo_pkginfo_h handle, char **version)
657 * @brief This API gets the package version from the package ID
659 * @par This API is for package-manager client application
660 * @par Sync (or) Async : Synchronous API
662 * @param[in] handle pointer to package info handle
663 * @param[out] version pointer to hold package version
664 * @return 0 if success, error code(<0) if fail
665 * @retval PMINFO_R_OK success
666 * @retval PMINFO_R_EINVAL invalid argument
667 * @retval PMINFO_R_ERROR internal error
668 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
669 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
670 * @see pkgmgrinfo_pkginfo_get_pkgid()
671 * @see pkgmgrinfo_pkginfo_is_removable()
673 static int get_pkg_version(const char *pkgid)
676 char *version = NULL;
677 pkgmgrinfo_pkginfo_h handle;
678 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
679 if (ret != PMINFO_R_OK)
681 ret = pkgmgrinfo_pkginfo_get_version(handle, &version);
682 if (ret != PMINFO_R_OK) {
683 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
686 printf("pkg version: %s\n", version);
687 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
692 int pkgmgrinfo_pkginfo_get_version(pkgmgrinfo_pkginfo_h handle, char **version);
695 * @fn int pkgmgrinfo_pkginfo_get_install_location(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_install_location *location)
696 * @brief This API gets the package install location from the package ID
698 * @par This API is for package-manager client application
699 * @par Sync (or) Async : Synchronous API
701 * @param[in] handle pointer to package info handle
702 * @param[out] location pointer to hold package install location
703 * @return 0 if success, error code(<0) if fail
704 * @retval PMINFO_R_OK success
705 * @retval PMINFO_R_EINVAL invalid argument
706 * @retval PMINFO_R_ERROR internal error
707 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
708 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
709 * @see pkgmgrinfo_pkginfo_get_pkgid()
710 * @see pkgmgrinfo_pkginfo_is_removable()
712 static int get_pkg_install_location(const char *pkgid)
715 pkgmgrinfo_install_location location;
716 pkgmgrinfo_pkginfo_h handle;
717 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
718 if (ret != PMINFO_R_OK)
720 ret = pkgmgrinfo_pkginfo_get_install_location(handle, &location);
721 if (ret != PMINFO_R_OK) {
722 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
725 printf("pkg install location: %d\n", location);
726 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
731 int pkgmgrinfo_pkginfo_get_install_location(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_install_location *location);
734 * @fn int pkgmgrinfo_pkginfo_get_package_size(pkgmgrinfo_pkginfo_h handle, int *size)
735 * @brief This API gets the package size from the package ID. size will be 0 if package install location is internal-only.
736 size will be 0 if package install location is prefer-external but size is not specified in manifest file.Application should check
737 the return value of pkgmgrinfo_pkginfo_get_install_location() and use it to distinguish the above cases.
739 * @par This API is for package-manager client application
740 * @par Sync (or) Async : Synchronous API
742 * @param[in] handle pointer to package info handle
743 * @param[out] size pointer to hold package size
744 * @return 0 if success, error code(<0) if fail
745 * @retval PMINFO_R_OK success
746 * @retval PMINFO_R_EINVAL invalid argument
747 * @retval PMINFO_R_ERROR internal error
748 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
749 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
750 * @see pkgmgrinfo_pkginfo_get_pkgid()
751 * @see pkgmgrinfo_pkginfo_is_removable()
753 static int get_pkg_size(const char *pkgid)
757 pkgmgrinfo_pkginfo_h handle;
758 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
759 if (ret != PMINFO_R_OK)
761 ret = pkgmgrinfo_pkginfo_get_package_size(handle, &size);
762 if (ret != PMINFO_R_OK) {
763 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
766 printf("pkgsize: %d\n", size);
767 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
772 int pkgmgrinfo_pkginfo_get_package_size(pkgmgrinfo_pkginfo_h handle, int *size);
775 * @fn int pkgmgrinfo_pkginfo_get_total_size(pkgmgrinfo_pkginfo_h handle, int *size)
776 * @brief This API gets the installed package total size on the target.
778 * @par This API is for package-manager client application
779 * @par Sync (or) Async : Synchronous API
781 * @param[in] handle pointer to package info handle
782 * @param[out] size pointer to hold package total size
783 * @return 0 if success, error code(<0) if fail
784 * @retval PMINFO_R_OK success
785 * @retval PMINFO_R_EINVAL invalid argument
786 * @retval PMINFO_R_ERROR internal error
788 static int get_pkg_total_size(const char *pkgid)
792 pkgmgrinfo_pkginfo_h handle;
793 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
794 if (ret != PMINFO_R_OK)
796 ret = pkgmgrinfo_pkginfo_get_total_size(handle, &size);
797 if (ret != PMINFO_R_OK) {
798 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
801 printf("pkg total size: %d\n", size);
802 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
807 int pkgmgrinfo_pkginfo_get_total_size(pkgmgrinfo_pkginfo_h handle, int *size);
810 * @fn int pkgmgrinfo_pkginfo_get_data_size(pkgmgrinfo_pkginfo_h handle, int *size)
811 * @brief This API gets the installed package data size on the target.
813 * @par This API is for package-manager client application
814 * @par Sync (or) Async : Synchronous API
816 * @param[in] handle pointer to package info handle
817 * @param[out] size pointer to hold package data size
818 * @return 0 if success, error code(<0) if fail
819 * @retval PMINFO_R_OK success
820 * @retval PMINFO_R_EINVAL invalid argument
821 * @retval PMINFO_R_ERROR internal error
823 static int get_pkg_data_size(const char *pkgid)
827 pkgmgrinfo_pkginfo_h handle;
828 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
829 if (ret != PMINFO_R_OK)
831 ret = pkgmgrinfo_pkginfo_get_data_size(handle, &size);
832 if (ret != PMINFO_R_OK) {
833 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
836 printf("pkg data size: %d\n", size);
837 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
842 int pkgmgrinfo_pkginfo_get_data_size(pkgmgrinfo_pkginfo_h handle, int *size);
845 * @fn int pkgmgrinfo_pkginfo_get_icon(pkgmgrinfo_pkginfo_h handle, char **icon)
846 * @brief This API gets the package icon from the package ID
848 * @par This API is for package-manager client application
849 * @par Sync (or) Async : Synchronous API
851 * @param[in] handle pointer to package info handle
852 * @param[out] icon pointer to hold package icon
853 * @return 0 if success, error code(<0) if fail
854 * @retval PMINFO_R_OK success
855 * @retval PMINFO_R_EINVAL invalid argument
856 * @retval PMINFO_R_ERROR internal error
857 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
858 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
859 * @see pkgmgrinfo_pkginfo_get_pkgid()
860 * @see pkgmgrinfo_pkginfo_is_removable()
862 static int get_pkg_icon(const char *pkgid)
866 pkgmgrinfo_pkginfo_h handle;
867 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
868 if (ret != PMINFO_R_OK)
870 ret = pkgmgrinfo_pkginfo_get_icon(handle, &icon);
871 if (ret != PMINFO_R_OK) {
872 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
875 printf("pkg icon: %s\n", icon);
876 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
881 int pkgmgrinfo_pkginfo_get_icon(pkgmgrinfo_pkginfo_h handle, char **icon);
884 * @fn int pkgmgrinfo_pkginfo_get_label(pkgmgrinfo_pkginfo_h handle, char **label)
885 * @brief This API gets the package label from the package ID
887 * @par This API is for package-manager client application
888 * @par Sync (or) Async : Synchronous API
890 * @param[in] handle pointer to package info handle
891 * @param[out] label pointer to hold package label
892 * @return 0 if success, error code(<0) if fail
893 * @retval PMINFO_R_OK success
894 * @retval PMINFO_R_EINVAL invalid argument
895 * @retval PMINFO_R_ERROR internal error
896 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
897 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
898 * @see pkgmgrinfo_pkginfo_get_pkgid()
899 * @see pkgmgrinfo_pkginfo_is_removable()
901 static int get_pkg_label(const char *pkgid)
905 pkgmgrinfo_pkginfo_h handle;
906 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
907 if (ret != PMINFO_R_OK)
909 ret = pkgmgrinfo_pkginfo_get_label(handle, &label);
910 if (ret != PMINFO_R_OK) {
911 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
914 printf("pkg label: %s\n", label);
915 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
920 int pkgmgrinfo_pkginfo_get_label(pkgmgrinfo_pkginfo_h handle, char **label);
923 * @fn int pkgmgrinfo_pkginfo_get_description(pkgmgrinfo_pkginfo_h handle, char **description)
924 * @brief This API gets the package description from the package ID
926 * @par This API is for package-manager client application
927 * @par Sync (or) Async : Synchronous API
929 * @param[in] handle pointer to package info handle
930 * @param[out] description pointer to hold package description
931 * @return 0 if success, error code(<0) if fail
932 * @retval PMINFO_R_OK success
933 * @retval PMINFO_R_EINVAL invalid argument
934 * @retval PMINFO_R_ERROR internal error
935 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
936 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
937 * @see pkgmgrinfo_pkginfo_get_pkgid()
938 * @see pkgmgrinfo_pkginfo_is_removable()
940 static int get_pkg_description(const char *pkgid)
943 char *description = NULL;
944 pkgmgrinfo_pkginfo_h handle;
945 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
946 if (ret != PMINFO_R_OK)
948 ret = pkgmgrinfo_pkginfo_get_description(handle, &description);
949 if (ret != PMINFO_R_OK) {
950 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
953 printf("pkg description: %s\n", description);
954 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
959 int pkgmgrinfo_pkginfo_get_description(pkgmgrinfo_pkginfo_h handle, char **description);
962 * @fn int pkgmgrinfo_pkginfo_get_author_name(pkgmgrinfo_pkginfo_h handle, char **author_name)
963 * @brief This API gets the package's author name from the package ID
965 * @par This API is for package-manager client application
966 * @par Sync (or) Async : Synchronous API
968 * @param[in] handle pointer to package info handle
969 * @param[out] author_name pointer to hold package author name
970 * @return 0 if success, error code(<0) if fail
971 * @retval PMINFO_R_OK success
972 * @retval PMINFO_R_EINVAL invalid argument
973 * @retval PMINFO_R_ERROR internal error
974 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
975 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
976 * @see pkgmgrinfo_pkginfo_get_pkgid()
977 * @see pkgmgrinfo_pkginfo_is_removable()
979 static int get_pkg_author_name(const char *pkgid)
982 char *author_name = NULL;
983 pkgmgrinfo_pkginfo_h handle;
984 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
985 if (ret != PMINFO_R_OK)
987 ret = pkgmgrinfo_pkginfo_get_author_name(handle, &author_name);
988 if (ret != PMINFO_R_OK) {
989 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
992 printf("pkg author name: %s\n", author_name);
993 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
998 int pkgmgrinfo_pkginfo_get_author_name(pkgmgrinfo_pkginfo_h handle, char **author_name);
1001 * @fn int pkgmgrinfo_pkginfo_get_author_email(pkgmgrinfo_pkginfo_h handle, char **author_email)
1002 * @brief This API gets the package's author email from the package ID
1004 * @par This API is for package-manager client application
1005 * @par Sync (or) Async : Synchronous API
1007 * @param[in] handle pointer to package info handle
1008 * @param[out] author_email pointer to hold package author email
1009 * @return 0 if success, error code(<0) if fail
1010 * @retval PMINFO_R_OK success
1011 * @retval PMINFO_R_EINVAL invalid argument
1012 * @retval PMINFO_R_ERROR internal error
1013 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1014 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1015 * @see pkgmgrinfo_pkginfo_get_pkgid()
1016 * @see pkgmgrinfo_pkginfo_is_removable()
1018 static int get_pkg_author_email(const char *pkgid)
1021 char *author_email = NULL;
1022 pkgmgrinfo_pkginfo_h handle;
1023 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1024 if (ret != PMINFO_R_OK)
1026 ret = pkgmgrinfo_pkginfo_get_author_email(handle, &author_email);
1027 if (ret != PMINFO_R_OK) {
1028 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1031 printf("pkg author email: %s\n", author_email);
1032 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1037 int pkgmgrinfo_pkginfo_get_author_email(pkgmgrinfo_pkginfo_h handle, char **author_email);
1040 * @fn int pkgmgrinfo_pkginfo_get_author_href(pkgmgrinfo_pkginfo_h handle, char **author_href)
1041 * @brief This API gets the package's author href from the package ID
1043 * @par This API is for package-manager client application
1044 * @par Sync (or) Async : Synchronous API
1046 * @param[in] handle pointer to package info handle
1047 * @param[out] author_href pointer to hold package author href
1048 * @return 0 if success, error code(<0) if fail
1049 * @retval PMINFO_R_OK success
1050 * @retval PMINFO_R_EINVAL invalid argument
1051 * @retval PMINFO_R_ERROR internal error
1052 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1053 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1054 * @see pkgmgrinfo_pkginfo_get_pkgid()
1055 * @see pkgmgrinfo_pkginfo_is_removable()
1057 static int get_pkg_author_href(const char *pkgid)
1060 char *author_href = NULL;
1061 pkgmgrinfo_pkginfo_h handle;
1062 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1063 if (ret != PMINFO_R_OK)
1065 ret = pkgmgrinfo_pkginfo_get_author_href(handle, &author_href);
1066 if (ret != PMINFO_R_OK) {
1067 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1070 printf("pkg author href: %s\n", author_href);
1071 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1076 int pkgmgrinfo_pkginfo_get_author_href(pkgmgrinfo_pkginfo_h handle, char **author_href);
1079 * @fn int pkgmgrinfo_pkginfo_get_installed_storage(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_installed_storage *storage)
1080 * @brief This API gets the package installed storagae value from the package ID
1082 * @par This API is for package-manager client application
1083 * @par Sync (or) Async : Synchronous API
1085 * @param[in] handle pointer to package info handle
1086 * @param[out] storage pointer to hold package installed storage
1087 * @return 0 if success, error code(<0) if fail
1088 * @retval PMINFO_R_OK success
1089 * @retval PMINFO_R_EINVAL invalid argument
1090 * @retval PMINFO_R_ERROR internal error
1091 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1092 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1093 * @see pkgmgrinfo_pkginfo_get_pkgid()
1094 * @see pkgmgrinfo_pkginfo_is_removable()
1096 static int get_pkg_installed_storage(const char *pkgid)
1099 pkgmgrinfo_installed_storage storage;
1100 pkgmgrinfo_pkginfo_h handle;
1101 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1102 if (ret != PMINFO_R_OK)
1104 ret = pkgmgrinfo_pkginfo_get_installed_storage(handle, &storage);
1105 if (ret != PMINFO_R_OK) {
1106 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1109 printf("pkg installed storage: %d\n", storage);
1110 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1115 int pkgmgrinfo_pkginfo_get_installed_storage(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_installed_storage *storage);
1118 * @fn int pkgmgrinfo_pkginfo_get_installed_time(pkgmgrinfo_pkginfo_h handle, int *installed_time)
1119 * @brief This API gets the installed time of package from the package ID
1121 * @par This API is for package-manager client application
1122 * @par Sync (or) Async : Synchronous API
1124 * @param[in] handle pointer to package info handle
1125 * @param[out] installed_time pointer to hold installed time of package
1126 * @return 0 if success, error code(<0) if fail
1127 * @retval PMINFO_R_OK success
1128 * @retval PMINFO_R_EINVAL invalid argument
1129 * @retval PMINFO_R_ERROR internal error
1130 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1131 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1132 * @see pkgmgrinfo_pkginfo_get_pkgid()
1133 * @see pkgmgrinfo_pkginfo_is_removable()
1135 static int get_pkg_installed_time(const char *pkgid)
1138 int installed_time = 0;
1139 pkgmgrinfo_pkginfo_h handle;
1140 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1141 if (ret != PMINFO_R_OK)
1143 ret = pkgmgrinfo_pkginfo_get_installed_time(handle, &installed_time);
1144 if (ret != PMINFO_R_OK) {
1145 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1148 printf("installed_time: %d\n", installed_time);
1149 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1154 int pkgmgrinfo_pkginfo_get_installed_time(pkgmgrinfo_pkginfo_h handle, int *installed_time);
1157 * @fn int pkgmgrinfo_pkginfo_get_storeclientid(pkgmgrinfo_pkginfo_h handle, char **storeclientid)
1158 * @brief This API gets the store client id of package from the package ID
1160 * @par This API is for package-manager client application
1161 * @par Sync (or) Async : Synchronous API
1163 * @param[in] handle pointer to package info handle
1164 * @param[out] storeclientid pointer to hold store client id of package
1165 * @return 0 if success, error code(<0) if fail
1166 * @retval PMINFO_R_OK success
1167 * @retval PMINFO_R_EINVAL invalid argument
1168 * @retval PMINFO_R_ERROR internal error
1169 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1170 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1171 * @see pkgmgrinfo_pkginfo_get_pkgid()
1172 * @see pkgmgrinfo_pkginfo_is_removable()
1174 static int get_pkg_storeclientid(const char *pkgid)
1177 char *storeclientid = 0;
1178 pkgmgrinfo_pkginfo_h handle;
1179 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1180 if (ret != PMINFO_R_OK)
1182 ret = pkgmgrinfo_pkginfo_get_storeclientid(handle, &storeclientid);
1183 if (ret != PMINFO_R_OK) {
1184 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1187 printf(store client id: %s\n", storeclientid);
1188 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1193 int pkgmgrinfo_pkginfo_get_storeclientid(pkgmgrinfo_pkginfo_h handle, char **storeclientid);
1196 * @fn int pkgmgrinfo_pkginfo_get_mainappid(pkgmgrinfo_pkginfo_h handle, char **mainappid)
1197 * @brief This API gets the main app id of package from the package ID
1199 * @par This API is for package-manager client application
1200 * @par Sync (or) Async : Synchronous API
1202 * @param[in] handle pointer to package info handle
1203 * @param[out] mainappid pointer to hold main app id of package
1204 * @return 0 if success, error code(<0) if fail
1205 * @retval PMINFO_R_OK success
1206 * @retval PMINFO_R_EINVAL invalid argument
1207 * @retval PMINFO_R_ERROR internal error
1208 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1209 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1210 * @see pkgmgrinfo_pkginfo_get_pkgid()
1211 * @see pkgmgrinfo_pkginfo_is_removable()
1213 static int get_pkg_mainappid(const char *pkgid)
1216 char *mainappid = 0;
1217 pkgmgrinfo_pkginfo_h handle;
1218 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1219 if (ret != PMINFO_R_OK)
1221 ret = pkgmgrinfo_pkginfo_get_mainappid(handle, &mainappid);
1222 if (ret != PMINFO_R_OK) {
1223 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1226 printf(main app id: %s\n", mainappid);
1227 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1232 int pkgmgrinfo_pkginfo_get_mainappid(pkgmgrinfo_pkginfo_h handle, char **mainappid);
1235 * @fn int pkgmgrinfo_pkginfo_get_url(pkgmgrinfo_pkginfo_h handle, char **url)
1236 * @brief This API gets the url of package from the package ID
1238 * @par This API is for package-manager client application
1239 * @par Sync (or) Async : Synchronous API
1241 * @param[in] handle pointer to package info handle
1242 * @param[out] url pointer to hold url of package
1243 * @return 0 if success, error code(<0) if fail
1244 * @retval PMINFO_R_OK success
1245 * @retval PMINFO_R_EINVAL invalid argument
1246 * @retval PMINFO_R_ERROR internal error
1247 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1248 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1249 * @see pkgmgrinfo_pkginfo_get_pkgid()
1250 * @see pkgmgrinfo_pkginfo_is_removable()
1252 static int get_pkg_url(const char *pkgid)
1256 pkgmgrinfo_pkginfo_h handle;
1257 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1258 if (ret != PMINFO_R_OK)
1260 ret = pkgmgrinfo_pkginfo_get_url(handle, &url);
1261 if (ret != PMINFO_R_OK) {
1262 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1265 printf("url : %s\n", url);
1266 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1271 int pkgmgrinfo_pkginfo_get_url(pkgmgrinfo_pkginfo_h handle, char **url);
1275 * @fn int pkgmgrinfo_pkginfo_get_root_path(pkgmgrinfo_pkginfo_h handle, char **path)
1276 * @brief This API gets the root path of package
1278 * @par Sync (or) Async : Synchronous API
1280 * @param[in] handle pointer to package info handle
1281 * @param[out] path pointer to hold root path of package
1282 * @return 0 if success, error code(<0) if fail
1283 * @retval PMINFO_R_OK success
1284 * @retval PMINFO_R_EINVAL invalid argument
1285 * @retval PMINFO_R_ERROR internal error
1287 static int get_root_path(const char *pkgid)
1291 pkgmgrinfo_pkginfo_h handle;
1292 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1293 if (ret != PMINFO_R_OK)
1296 ret = pkgmgrinfo_pkginfo_get_root_path(handle, &path);
1297 if (ret != PMINFO_R_OK) {
1298 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1301 printf("path : %s\n", path);
1302 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1308 int pkgmgrinfo_pkginfo_get_root_path(pkgmgrinfo_pkginfo_h handle, char **path);
1312 * @fn int pkgmgrinfo_pkginfo_get_csc_path(pkgmgrinfo_pkginfo_h handle, char **path)
1313 * @brief This API gets the csc path of package
1315 * @par Sync (or) Async : Synchronous API
1317 * @param[in] handle pointer to package info handle
1318 * @param[out] path pointer to hold csc path of package
1319 * @return 0 if success, error code(<0) if fail
1320 * @retval PMINFO_R_OK success
1321 * @retval PMINFO_R_EINVAL invalid argument
1322 * @retval PMINFO_R_ERROR internal error
1324 static int get_csc_path(const char *pkgid)
1328 pkgmgrinfo_pkginfo_h handle;
1329 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1330 if (ret != PMINFO_R_OK)
1333 ret = pkgmgrinfo_pkginfo_get_csc_path(handle, &path);
1334 if (ret != PMINFO_R_OK) {
1335 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1338 printf("path : %s\n", path);
1339 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1345 int pkgmgrinfo_pkginfo_get_csc_path(pkgmgrinfo_pkginfo_h handle, char **path);
1348 * @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)
1349 * @brief This API compare the cert information from given package id
1351 * @par This API is for package-manager client application
1352 * @par Sync (or) Async : Synchronous API
1354 * @param[in] lhs_package_id pointer to first package ID
1355 * @param[in] rhs_package_id pointer to second package ID
1356 * @param[out] compare_result pointer to the compare result.
1357 * @return 0 if success, error code(<0) if fail
1358 * @retval PMINFO_R_OK success
1359 * @retval PMINFO_R_EINVAL invalid argument
1360 * @retval PMINFO_R_ERROR internal error
1362 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1363 * @see pkgmgrinfo_pkginfo_get_pkgid()
1364 * @see pkgmgrinfo_pkginfo_is_removable()
1366 static int compare_pkg_cert_info(const char *lhs_package_id, const char *rhs_package_id, pkgmgrinfo_cert_compare_result_type_e *compare_result)
1369 pkgmgrinfo_cert_compare_result_type_e result;
1371 ret = pkgmgrinfo_pkginfo_compare_pkg_cert_info(lhs_package_id, rhs_package_id, &result);
1372 if (ret != PMINFO_R_OK) {
1375 printf("result: %d\n", result);
1380 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);
1381 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);
1383 * @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)
1384 * @brief This API compare the cert information from given app id
1386 * @par This API is for package-manager client application
1387 * @par Sync (or) Async : Synchronous API
1389 * @param[in] lhs_app_id pointer to first app ID
1390 * @param[in] rhs_app_id pointer to second app ID
1391 * @param[out] compare_result pointer to the compare result.
1392 * @return 0 if success, error code(<0) if fail
1393 * @retval PMINFO_R_OK success
1394 * @retval PMINFO_R_EINVAL invalid argument
1395 * @retval PMINFO_R_ERROR internal error
1397 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1398 * @see pkgmgrinfo_pkginfo_get_pkgid()
1399 * @see pkgmgrinfo_pkginfo_is_removable()
1401 static int compare_app_cert_info(const char *lhs_app_id, const char *rhs_app_id, pkgmgrinfo_cert_compare_result_type_e *compare_result)
1404 pkgmgrinfo_cert_compare_result_type_e result;
1406 ret = pkgmgrinfo_pkginfo_compare_app_cert_info(lhs_app_id, rhs_app_id, &result);
1407 if (ret != PMINFO_R_OK) {
1410 printf("result: %d\n", result);
1415 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);
1416 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);
1418 * @fn int pkgmgrinfo_pkginfo_is_removable(pkgmgrinfo_pkginfo_h handle, bool *removable)
1419 * @brief This API gets the package 'removable' value from the package ID
1421 * @par This API is for package-manager client application
1422 * @par Sync (or) Async : Synchronous API
1424 * @param[in] handle pointer to package info handle
1425 * @param[out] removable pointer to hold package removable value
1426 * @return 0 if success, error code(<0) if fail
1427 * @retval PMINFO_R_OK success
1428 * @retval PMINFO_R_EINVAL invalid argument
1429 * @retval PMINFO_R_ERROR internal error
1430 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1431 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1432 * @see pkgmgrinfo_pkginfo_get_pkgid()
1433 * @see pkgmgrinfo_pkginfo_is_readonly()
1435 static int get_pkg_removable(const char *pkgid)
1439 pkgmgrinfo_pkginfo_h handle;
1440 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1441 if (ret != PMINFO_R_OK)
1443 ret = pkgmgrinfo_pkginfo_is_removable(handle, &removable);
1444 if (ret != PMINFO_R_OK) {
1445 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1448 printf("pkg removable: %d\n", removable);
1449 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1454 int pkgmgrinfo_pkginfo_is_removable(pkgmgrinfo_pkginfo_h handle, bool *removable);
1457 * @fn int pkgmgrinfo_pkginfo_is_movable(pkgmgrinfo_pkginfo_h handle, bool *movable)
1458 * @brief This API check that the package can move internal storage to external storage or external storage to internal storage from the package ID
1460 * @par This API is for package-manager client application
1461 * @par Sync (or) Async : Synchronous API
1463 * @param[in] handle pointer to package info handle
1464 * @param[out] movable pointer to hold package movable state
1465 * @return 0 if success, error code(<0) if fail
1466 * @retval PMINFO_R_OK success
1467 * @retval PMINFO_R_EINVAL invalid argument
1468 * @retval PMINFO_R_ERROR internal error
1469 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1470 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1471 * @see pkgmgrinfo_pkginfo_get_pkgid()
1473 static int get_pkg_movable(const char *pkgid)
1477 pkgmgrinfo_pkginfo_h handle;
1478 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1479 if (ret != PMINFO_R_OK)
1481 ret = pkgmgrinfo_pkginfo_is_movable(handle, &movable);
1482 if (ret != PMINFO_R_OK) {
1483 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1486 printf("pkg movable: %d\n", movable);
1487 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1492 int pkgmgrinfo_pkginfo_is_movable(pkgmgrinfo_pkginfo_h handle, bool *movable);
1495 * @fn int pkgmgrinfo_pkginfo_is_preload(pkgmgrinfo_pkginfo_h handle, bool *preload)
1496 * @brief This API gets the package 'preload' value from the package ID
1498 * @par This API is for package-manager client application
1499 * @par Sync (or) Async : Synchronous API
1501 * @param[in] handle pointer to package info handle
1502 * @param[out] preload pointer to hold package preload value
1503 * @return 0 if success, error code(<0) if fail
1504 * @retval PMINFO_R_OK success
1505 * @retval PMINFO_R_EINVAL invalid argument
1506 * @retval PMINFO_R_ERROR internal error
1507 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1508 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1509 * @see pkgmgrinfo_pkginfo_get_pkgid()
1510 * @see pkgmgrinfo_pkginfo_is_readonly()
1512 static int get_pkg_preload(const char *pkgid)
1516 pkgmgrinfo_pkginfo_h handle;
1517 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1518 if (ret != PMINFO_R_OK)
1520 ret = pkgmgrinfo_pkginfo_is_preload(handle, &preload);
1521 if (ret != PMINFO_R_OK) {
1522 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1525 printf("pkg preload: %d\n", preload);
1526 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1531 int pkgmgrinfo_pkginfo_is_preload(pkgmgrinfo_pkginfo_h handle, bool *preload);
1534 * @fn int pkgmgrinfo_pkginfo_is_system(pkgmgrinfo_pkginfo_h handle, bool *system)
1535 * @brief This API gets the value for given handle is system or not
1537 * @par This API is for package-manager client application
1538 * @par Sync (or) Async : Synchronous API
1540 * @param[in] handle pointer to package info handle
1541 * @param[out] system pointer to hold system is or not
1542 * @return 0 if success, error code(<0) if fail
1543 * @retval PMINFO_R_OK success
1544 * @retval PMINFO_R_EINVAL invalid argument
1545 * @retval PMINFO_R_ERROR internal error
1546 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1547 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1548 * @see pkgmgrinfo_pkginfo_get_pkgid()
1549 * @see pkgmgrinfo_pkginfo_is_readonly()
1551 static int get_pkg_system(const char *pkgid)
1554 bool system = false;
1555 pkgmgrinfo_pkginfo_h handle = NULL;
1556 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1557 if (ret != PMINFO_R_OK)
1559 ret = pkgmgrinfo_pkginfo_is_system(handle, &system);
1560 if (ret != PMINFO_R_OK) {
1561 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1564 printf("pkg system: %d\n", system);
1565 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1570 int pkgmgrinfo_pkginfo_is_system(pkgmgrinfo_pkginfo_h handle, bool *system);
1573 * @fn int pkgmgrinfo_pkginfo_is_readonly(pkgmgrinfo_pkginfo_h handle, bool *readonly)
1574 * @brief This API gets the package 'readonly' value from the package ID
1576 * @par This API is for package-manager client application
1577 * @par Sync (or) Async : Synchronous API
1579 * @param[in] handle pointer to package info handle
1580 * @param[out] readonly pointer to hold package readonly value
1581 * @return 0 if success, error code(<0) if fail
1582 * @retval PMINFO_R_OK success
1583 * @retval PMINFO_R_EINVAL invalid argument
1584 * @retval PMINFO_R_ERROR internal error
1585 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1586 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1587 * @see pkgmgrinfo_pkginfo_get_pkgid()
1588 * @see pkgmgrinfo_pkginfo_is_removable()
1590 static int get_pkg_readonly(const char *pkgid)
1594 pkgmgrinfo_pkginfo_h handle;
1595 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1596 if (ret != PMINFO_R_OK)
1598 ret = pkgmgrinfo_pkginfo_is_readonly(handle, &readonly);
1599 if (ret != PMINFO_R_OK) {
1600 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1603 printf("pkg readonly: %d\n", readonly);
1604 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1609 int pkgmgrinfo_pkginfo_is_readonly(pkgmgrinfo_pkginfo_h handle, bool *readonly);
1613 * @fn int pkgmgrinfo_pkginfo_is_update(pkgmgrinfo_pkginfo_h handle, bool *update)
1614 * @brief This API gets the package 'upate' value from the package ID
1616 * @par This API is for package-manager client application
1617 * @par Sync (or) Async : Synchronous API
1619 * @param[in] handle pointer to package info handle
1620 * @param[out] update pointer to hold package update value
1621 * @return 0 if success, error code(<0) if fail
1622 * @retval PMINFO_R_OK success
1623 * @retval PMINFO_R_EINVAL invalid argument
1624 * @retval PMINFO_R_ERROR internal error
1625 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1626 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1627 * @see pkgmgrinfo_pkginfo_get_pkgid()
1629 static int get_pkg_update(const char *pkgid)
1633 pkgmgrinfo_pkginfo_h handle;
1634 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1635 if (ret != PMINFO_R_OK)
1637 ret = pkgmgrinfo_pkginfo_is_update(handle, &update);
1638 if (ret != PMINFO_R_OK) {
1639 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1642 printf("pkg update: %d\n", update);
1643 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1648 int pkgmgrinfo_pkginfo_is_update(pkgmgrinfo_pkginfo_h handle, bool *update);
1652 * @fn int pkgmgrinfo_pkginfo_is_global(uid_t uid, const char *pkgid)
1653 * @brief This API gets the package 'uid' value from the view table of user database
1655 * @par This API is for package-manager client application
1656 * @par Sync (or) Async : Synchronous API
1658 * @param[in] uid uid of the user to determine the database
1659 * @param[in] pkgid id of the current package
1660 * @return 1 if it a global package, 0 else
1663 int pkgmgrinfo_pkginfo_is_global(uid_t uid, const char *pkgid);
1667 * @fn int pkgmgrinfo_pkginfo_is_accessible(pkgmgrinfo_pkginfo_h handle, bool *accessible)
1668 * @brief This API gets the package 'accessible' value from the package ID
1670 * @par This API is for package-manager client application
1671 * @par Sync (or) Async : Synchronous API
1673 * @param[in] handle pointer to package info handle
1674 * @param[out] accessible pointer to hold package accessible value
1675 * @return 0 if success, error code(<0) if fail
1676 * @retval PMINFO_R_OK success
1677 * @retval PMINFO_R_EINVAL invalid argument
1678 * @retval PMINFO_R_ERROR internal error
1679 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1680 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
1681 * @see pkgmgrinfo_pkginfo_get_pkgid()
1682 * @see pkgmgrinfo_pkginfo_is_readonly()
1684 static int get_pkg_accessible(const char *pkgid)
1688 pkgmgrinfo_pkginfo_h handle;
1689 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1690 if (ret != PMINFO_R_OK)
1692 ret = pkgmgrinfo_pkginfo_is_accessible(handle, &accessible);
1693 if (ret != PMINFO_R_OK) {
1694 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1697 printf("pkg accessible: %d\n", accessible);
1698 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1703 int pkgmgrinfo_pkginfo_is_accessible(pkgmgrinfo_pkginfo_h handle, bool *accessible);
1706 * @fn int pkgmgrinfo_pkginfo_destroy_pkginfo(pkgmgrinfo_pkginfo_h handle)
1707 * @brief This API destroys the package information handle freeing up all the resources
1709 * @par This API is for package-manager client application
1710 * @par Sync (or) Async : Synchronous API
1712 * @param[in] handle pointer to the package info handle
1713 * @return 0 if success, error code(<0) if fail
1714 * @retval PMINFO_R_OK success
1715 * @retval PMINFO_R_EINVAL invalid argument
1716 * @retval PMINFO_R_ERROR internal error
1717 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
1719 * @see pkgmgrinfo_pkginfo_get_pkgid()
1720 * @see pkgmgrinfo_pkginfo_is_removable()
1722 static int get_pkg_type(const char *pkgid)
1726 pkgmgrinfo_pkginfo_h handle;
1727 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
1728 if (ret != PMINFO_R_OK)
1730 ret = pkgmgrinfo_pkginfo_get_type(handle, &type);
1731 if (ret != PMINFO_R_OK) {
1732 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1735 printf("pkgtype: %s\n", type);
1736 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
1741 int pkgmgrinfo_pkginfo_destroy_pkginfo(pkgmgrinfo_pkginfo_h handle);
1744 * @fn int pkgmgrinfo_pkginfo_filter_create(pkgmgrinfo_pkginfo_filter_h *handle)
1745 * @brief This API creates the package information filter handle from db. All filter properties will be ANDed.
1746 The query will search the entire package information collected from the manifest file of all the installed packages
1748 * @par This API is for package-manager client application
1749 * @par Sync (or) Async : Synchronous API
1751 * @param[out] handle pointer to the package info filter handle.
1752 * @return 0 if success, error code(<0) if fail
1753 * @retval PMINFO_R_OK success
1754 * @retval PMINFO_R_EINVAL invalid argument
1755 * @retval PMINFO_R_ERROR internal error
1757 * @post pkgmgrinfo_pkginfo_filter_destroy()
1758 * @see pkgmgrinfo_pkginfo_filter_count()
1759 * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
1761 static int get_rpm_pkg_count()
1765 pkgmgrinfo_pkginfo_filter_h handle;
1766 ret = pkgmgrinfo_pkginfo_filter_create(&handle);
1767 if (ret != PMINFO_R_OK)
1769 ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "rpm");
1770 if (ret != PMINFO_R_OK) {
1771 pkgmgrinfo_pkginfo_filter_destroy(handle);
1774 ret = pkgmgrinfo_pkginfo_filter_count(handle, &count);
1775 if (ret != PMINFO_R_OK) {
1776 pkgmgrinfo_pkginfo_filter_destroy(handle);
1779 printf("No of rpm pkgs: %d\n", count);
1780 pkgmgrinfo_pkginfo_filter_destroy(handle);
1785 int pkgmgrinfo_pkginfo_filter_create(pkgmgrinfo_pkginfo_filter_h *handle);
1788 * @fn int pkgmgrinfo_pkginfo_filter_destroy(pkgmgrinfo_pkginfo_filter_h handle)
1789 * @brief This API destroys the package information filter handle freeing up all the resources
1791 * @par This API is for package-manager client application
1792 * @par Sync (or) Async : Synchronous API
1794 * @param[in] handle pointer to the package info filter handle.
1795 * @return 0 if success, error code(<0) if fail
1796 * @retval PMINFO_R_OK success
1797 * @retval PMINFO_R_EINVAL invalid argument
1798 * @retval PMINFO_R_ERROR internal error
1799 * @pre pkgmgrinfo_pkginfo_filter_create()
1801 * @see pkgmgrinfo_pkginfo_filter_count()
1802 * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
1804 static int get_rpm_pkg_count()
1808 pkgmgrinfo_pkginfo_filter_h handle;
1809 ret = pkgmgrinfo_pkginfo_filter_create(&handle);
1810 if (ret != PMINFO_R_OK)
1812 ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "rpm");
1813 if (ret != PMINFO_R_OK) {
1814 pkgmgrinfo_pkginfo_filter_destroy(handle);
1817 ret = pkgmgrinfo_pkginfo_filter_count(handle, &count);
1818 if (ret != PMINFO_R_OK) {
1819 pkgmgrinfo_pkginfo_filter_destroy(handle);
1822 printf("No of rpm pkgs: %d\n", count);
1823 pkgmgrinfo_pkginfo_filter_destroy(handle);
1828 int pkgmgrinfo_pkginfo_filter_destroy(pkgmgrinfo_pkginfo_filter_h handle);
1831 * @fn int pkgmgrinfo_pkginfo_filter_add_bool(pkgmgrinfo_pkginfo_filter_h handle, const char *property, const bool value)
1832 * @brief This API adds a boolean filter property to the filter handle
1834 * @par This API is for package-manager client application
1835 * @par Sync (or) Async : Synchronous API
1837 * @param[in] handle pointer to the package info filter handle.
1838 * @param[in] property boolean property name.
1839 * @param[in] value value corresponding to the property.
1840 * @return 0 if success, error code(<0) if fail
1841 * @retval PMINFO_R_OK success
1842 * @retval PMINFO_R_EINVAL invalid argument
1843 * @retval PMINFO_R_ERROR internal error
1844 * @pre pkgmgrinfo_pkginfo_filter_create()
1845 * @post pkgmgrinfo_pkginfo_filter_destroy()
1846 * @see pkgmgrinfo_pkginfo_filter_count()
1847 * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
1849 static int get_preload_pkg_count()
1853 pkgmgrinfo_pkginfo_filter_h handle;
1854 ret = pkgmgrinfo_pkginfo_filter_create(&handle);
1855 if (ret != PMINFO_R_OK)
1857 ret = pkgmgrinfo_pkginfo_filter_add_bool(handle, PMINFO_PKGINFO_PROP_PACKAGE_PRELOAD, 1);
1858 if (ret != PMINFO_R_OK) {
1859 pkgmgrinfo_pkginfo_filter_destroy(handle);
1862 ret = pkgmgrinfo_pkginfo_filter_count(handle, &count);
1863 if (ret != PMINFO_R_OK) {
1864 pkgmgrinfo_pkginfo_filter_destroy(handle);
1867 printf("No of preload pkgs: %d\n", count);
1868 pkgmgrinfo_pkginfo_filter_destroy(handle);
1873 int pkgmgrinfo_pkginfo_filter_add_bool(pkgmgrinfo_pkginfo_filter_h handle,
1874 const char *property, const bool value);
1877 * @fn int pkgmgrinfo_pkginfo_filter_add_int(pkgmgrinfo_pkginfo_filter_h handle, const char *property, const int value)
1878 * @brief This API adds an integer filter property to the filter handle
1880 * @par This API is for package-manager client application
1881 * @par Sync (or) Async : Synchronous API
1883 * @param[in] handle pointer to the package info filter handle.
1884 * @param[in] property integer property name.
1885 * @param[in] value value corresponding to the property.
1886 * @return 0 if success, error code(<0) if fail
1887 * @retval PMINFO_R_OK success
1888 * @retval PMINFO_R_EINVAL invalid argument
1889 * @retval PMINFO_R_ERROR internal error
1890 * @pre pkgmgrinfo_pkginfo_filter_create()
1891 * @post pkgmgrinfo_pkginfo_filter_destroy()
1892 * @see pkgmgrinfo_pkginfo_filter_count()
1893 * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
1895 static int get_pkg_count()
1899 pkgmgrinfo_pkginfo_filter_h handle;
1900 ret = pkgmgrinfo_pkginfo_filter_create(&handle);
1901 if (ret != PMINFO_R_OK)
1903 ret = pkgmgrinfo_pkginfo_filter_add_int(handle, PMINFO_PKGINFO_PROP_PACKAGE_SIZE, 10);
1904 if (ret != PMINFO_R_OK) {
1905 pkgmgrinfo_pkginfo_filter_destroy(handle);
1908 ret = pkgmgrinfo_pkginfo_filter_count(handle, &count);
1909 if (ret != PMINFO_R_OK) {
1910 pkgmgrinfo_pkginfo_filter_destroy(handle);
1913 printf("No of preload pkgs: %d\n", count);
1914 pkgmgrinfo_pkginfo_filter_destroy(handle);
1919 int pkgmgrinfo_pkginfo_filter_add_int(pkgmgrinfo_pkginfo_filter_h handle,
1920 const char *property, const int value);
1923 * @fn int pkgmgrinfo_pkginfo_filter_add_string(pkgmgrinfo_pkginfo_filter_h handle, const char *property, const char *value)
1924 * @brief This API adds a string filter property to the filter handle
1926 * @par This API is for package-manager client application
1927 * @par Sync (or) Async : Synchronous API
1929 * @param[in] handle pointer to the package info filter handle.
1930 * @param[in] property string property name.
1931 * @param[in] value value corresponding to the property.
1932 * @return 0 if success, error code(<0) if fail
1933 * @retval PMINFO_R_OK success
1934 * @retval PMINFO_R_EINVAL invalid argument
1935 * @retval PMINFO_R_ERROR internal error
1936 * @pre pkgmgrinfo_pkginfo_filter_create()
1937 * @post pkgmgrinfo_pkginfo_filter_destroy()
1938 * @see pkgmgrinfo_pkginfo_filter_count()
1939 * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
1941 static int get_rpm_pkg_count()
1945 pkgmgrinfo_pkginfo_filter_h handle;
1946 ret = pkgmgrinfo_pkginfo_filter_create(&handle);
1947 if (ret != PMINFO_R_OK)
1949 ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "rpm");
1950 if (ret != PMINFO_R_OK) {
1951 pkgmgrinfo_pkginfo_filter_destroy(handle);
1954 ret = pkgmgrinfo_pkginfo_filter_count(handle, &count);
1955 if (ret != PMINFO_R_OK) {
1956 pkgmgrinfo_pkginfo_filter_destroy(handle);
1959 printf("No of rpm pkgs: %d\n", count);
1960 pkgmgrinfo_pkginfo_filter_destroy(handle);
1965 int pkgmgrinfo_pkginfo_filter_add_string(pkgmgrinfo_pkginfo_filter_h handle,
1966 const char *property, const char *value);
1969 * @fn int pkgmgrinfo_pkginfo_filter_foreach_pkginfo(pkgmgrinfo_pkginfo_filter_h handle, pkgmgrinfo_pkg_list_cb pkg_cb, void *user_data)
1970 * @brief This API executes the user supplied callback function for each package that satisfy the filter conditions
1972 * @par This API is for package-manager client application
1973 * @par Sync (or) Async : Synchronous API
1975 * @param[in] handle pointer to the package info filter handle.
1976 * @param[in] pkg_cb callback function.
1977 * @param[in] user_data user data to be passed to the callback function
1978 * @return 0 if success, error code(<0) if fail
1979 * @retval PMINFO_R_OK success
1980 * @retval PMINFO_R_EINVAL invalid argument
1981 * @retval PMINFO_R_ERROR internal error
1982 * @pre pkgmgrinfo_pkginfo_filter_create()
1983 * @post pkgmgrinfo_pkginfo_filter_destroy()
1984 * @see pkgmgrinfo_pkginfo_filter_count()
1986 int pkg_list_cb(pkgmgrinfo_pkginfo_h handle, void *user_data)
1989 pkgmgrinfo_pkginfo_get_pkgid(handle, &pkgid);
1990 printf("pkg id : %s\n", pkgid);
1994 static int get_rpm_pkg_list()
1997 pkgmgrinfo_pkginfo_filter_h handle;
1998 ret = pkgmgrinfo_pkginfo_filter_create(&handle);
1999 if (ret != PMINFO_R_OK)
2001 ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "rpm");
2002 if (ret != PMINFO_R_OK) {
2003 pkgmgrinfo_pkginfo_filter_destroy(handle);
2006 ret = pkgmgrinfo_pkginfo_filter_foreach_pkginfo(handle, pkg_list_cb, NULL);
2007 if (ret != PMINFO_R_OK) {
2008 pkgmgrinfo_pkginfo_filter_destroy(handle);
2011 pkgmgrinfo_pkginfo_filter_destroy(handle);
2016 int pkgmgrinfo_pkginfo_filter_foreach_pkginfo(pkgmgrinfo_pkginfo_filter_h handle,
2017 pkgmgrinfo_pkg_list_cb pkg_cb, void *user_data);
2018 int pkgmgrinfo_pkginfo_usr_filter_foreach_pkginfo(pkgmgrinfo_pkginfo_filter_h handle,
2019 pkgmgrinfo_pkg_list_cb pkg_cb, void *user_data, uid_t uid);
2022 * @fn int pkgmgrinfo_pkginfo_filter_count(pkgmgrinfo_pkginfo_filter_h handle, int *count)
2023 * @fn int pkgmgrinfo_pkginfo_usr_filter_count(pkgmgrinfo_pkginfo_filter_h handle, int *count, uid_t uid)
2024 * @brief This API counts the package that satisfy the filter conditions
2026 * @par This API is for package-manager client application
2027 * @par Sync (or) Async : Synchronous API
2029 * @param[in] handle pointer to the package info filter handle.
2030 * @param[in] count pointer to store the count value.
2031 * @param[in] uid the addressee user id of the instruction
2032 * @return 0 if success, error code(<0) if fail
2033 * @retval PMINFO_R_OK success
2034 * @retval PMINFO_R_EINVAL invalid argument
2035 * @retval PMINFO_R_ERROR internal error
2036 * @pre pkgmgrinfo_pkginfo_filter_create()
2037 * @post pkgmgrinfo_pkginfo_filter_destroy()
2038 * @see pkgmgrinfo_pkginfo_filter_foreach_pkginfo()
2040 static int get_rpm_pkg_count()
2044 pkgmgrinfo_pkginfo_filter_h handle;
2045 ret = pkgmgrinfo_pkginfo_filter_create(&handle);
2046 if (ret != PMINFO_R_OK)
2048 ret = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "rpm");
2049 if (ret != PMINFO_R_OK) {
2050 pkgmgrinfo_pkginfo_filter_destroy(handle);
2053 ret = pkgmgrinfo_pkginfo_filter_count(handle, &count);
2054 if (ret != PMINFO_R_OK) {
2055 pkgmgrinfo_pkginfo_filter_destroy(handle);
2058 printf("No of rpm pkgs: %d\n", count);
2059 pkgmgrinfo_pkginfo_filter_destroy(handle);
2064 int pkgmgrinfo_pkginfo_filter_count(pkgmgrinfo_pkginfo_filter_h handle, int *count);
2065 int pkgmgrinfo_pkginfo_usr_filter_count(pkgmgrinfo_pkginfo_filter_h handle, int *count, uid_t uid);
2067 * @fn int pkgmgrinfo_pkginfo_foreach_privilege(pkgmgrinfo_pkginfo_h handle,
2068 pkgmgrinfo_pkg_privilege_list_cb privilege_func, void *user_data);
2069 * @brief This API gets the list of privilege for a particular package
2071 * @par This API is for package-manager client application
2072 * @par Sync (or) Async : Synchronous API
2073 * @param[in] handle pointer to the package info handle.
2074 * @param[in] privilege_func callback function for list
2075 * @param[in] user_data user data to be passed to callback function
2076 * @return 0 if success, error code(<0) if fail
2077 * @retval PMINFO_R_OK success
2078 * @retval PMINFO_R_EINVAL invalid argument
2079 * @retval PMINFO_R_ERROR internal error
2080 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
2081 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
2083 int privilege_func(const char *name, void *user_data)
2085 if (strcmp(name, (char *)user_data) == 0)
2091 static int list_privilege(const char *package, char *privilege)
2094 pkgmgrinfo_pkginfo_h handle;
2095 ret = pkgmgrinfo_pkginfo_get_pkginfo(package, &handle);
2096 if (ret != PMINFO_R_OK)
2098 ret = pkgmgrinfo_pkginfo_foreach_privilege(handle, privilege_func, (void *)privilege);
2099 if (ret != PMINFO_R_OK) {
2100 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
2103 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
2108 int pkgmgrinfo_pkginfo_foreach_privilege(pkgmgrinfo_pkginfo_h handle,
2109 pkgmgrinfo_pkg_privilege_list_cb privilege_func, void *user_data);
2111 /* TODO: add doxygen comment here */
2112 int pkgmgrinfo_pkginfo_get_size_from_xml(const char *manifest, int *size);
2113 int pkgmgrinfo_pkginfo_get_location_from_xml(const char *manifest, pkgmgrinfo_install_location *location);
2114 int pkgmgrinfo_pkginfo_is_for_all_users(pkgmgrinfo_pkginfo_h handle, bool *for_all_users);
2115 int pkgmgrinfo_appinfo_set_state_enabled(const char *appid, bool enabled);
2116 int pkgmgrinfo_appinfo_set_usr_state_enabled(const char *appid, bool enabled, uid_t uid);
2117 int pkgmgrinfo_appinfo_set_default_label(const char *appid, const char *label);
2118 int pkgmgrinfo_appinfo_set_usr_default_label(const char *appid, const char *label, uid_t uid);
2121 * @fn int pkgmgrinfo_appinfo_get_list(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_app_component component,
2122 pkgmgrinfo_app_list_cb app_func, void *user_data)
2123 * @brief This API gets list of installed applications for a particular package
2125 * @par This API is for package-manager client application
2126 * @par Sync (or) Async : Synchronous API
2127 * @param[in] handle package info handle
2128 * @param[in] component application component
2129 * @param[in] app_func iteration function for list
2130 * @param[in] user_data user data to be passed to callback function
2131 * @return 0 if success, error code(<0) if fail
2132 * @retval PMINFO_R_OK success
2133 * @retval PMINFO_R_EINVAL invalid argument
2134 * @retval PMINFO_R_ERROR internal error
2135 * @pre pkgmgrinfo_pkginfo_get_pkginfo()
2136 * @post pkgmgrinfo_pkginfo_destroy_pkginfo()
2138 int app_func(pkgmgrinfo_appinfo_h handle, void *user_data)
2141 pkgmgrinfo_appinfo_get_appid(handle, &appid);
2142 printf("appid : %s\n", appid);
2146 static int list_apps(const char *pkgid)
2149 pkgmgrinfo_pkginfo_h handle;
2150 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
2151 if (ret != PMINFO_R_OK)
2153 ret = pkgmgrinfo_appinfo_get_list(handle, PMINFO_UI_APP, app_func, NULL);
2154 if (ret != PMINFO_R_OK) {
2155 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
2158 pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
2163 int pkgmgrinfo_appinfo_get_list(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_app_component component,
2164 pkgmgrinfo_app_list_cb app_func, void *user_data);
2165 int pkgmgrinfo_appinfo_get_usr_list(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_app_component component,
2166 pkgmgrinfo_app_list_cb app_func, void *user_data, uid_t uid);
2168 * @fn int pkgmgrinfo_appinfo_get_install_list(pkgmgrinfo_app_list_cb app_func, void *user_data);
2169 * @brief This API gets list of installed applications from all packages with minimum informaion.
2171 * @par This API is for package-manager client application
2172 * @par Sync (or) Async : Synchronous API
2173 * @param[in] app_func iteration function for list
2174 * @param[in] user_data user data to be passed to callback function
2175 * @return 0 if success, error code(<0) if fail
2176 * @retval PMINFO_R_OK success
2177 * @retval PMINFO_R_EINVAL invalid argument
2178 * @retval PMINFO_R_ERROR internal error
2182 int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
2184 char *pkgid1 = NULL;
2185 char *pkgid2 = NULL;
2186 pkgid1 = (char *)user_data;
2187 pkgmgrinfo_appinfo_get_pkgid(handle, &pkgid2);
2188 if (strcmp(pkgid1, pkgid2) == 0) {
2195 static int list_apps()
2198 char *name = "helloworld";
2199 ret = pkgmgrinfo_appinfo_get_install_list(app_list_cb, (void *)name);
2200 if (ret != PMINFO_R_OK) {
2207 int pkgmgrinfo_appinfo_get_install_list(pkgmgrinfo_app_list_cb app_func, void *user_data);
2208 int pkgmgrinfo_appinfo_get_usr_install_list(pkgmgrinfo_app_list_cb app_func, uid_t uid, void *user_data);
2210 * @fn int pkgmgrinfo_appinfo_get_installed_list(pkgmgrinfo_app_list_cb app_func, void *user_data);
2211 * @brief This API gets list of installed applications from all packages.
2213 * @par This API is for package-manager client application
2214 * @par Sync (or) Async : Synchronous API
2215 * @param[in] app_func iteration function for list
2216 * @param[in] user_data user data to be passed to callback function
2217 * @return 0 if success, error code(<0) if fail
2218 * @retval PMINFO_R_OK success
2219 * @retval PMINFO_R_EINVAL invalid argument
2220 * @retval PMINFO_R_ERROR internal error
2224 int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
2226 char *pkgid1 = NULL;
2227 char *pkgid2 = NULL;
2228 pkgid1 = (char *)user_data;
2229 pkgmgrinfo_appinfo_get_pkgid(handle, &pkgid2);
2230 if (strcmp(pkgid1, pkgid2) == 0) {
2237 static int list_apps()
2240 char *name = "helloworld";
2241 ret = pkgmgrinfo_appinfo_get_installed_list(app_list_cb, (void *)name);
2242 if (ret != PMINFO_R_OK) {
2249 int pkgmgrinfo_appinfo_get_installed_list(pkgmgrinfo_app_list_cb app_func, void *user_data);
2250 int pkgmgrinfo_appinfo_get_usr_installed_list(pkgmgrinfo_app_list_cb app_func, uid_t uid, void *user_data);
2253 * @fn int pkgmgrinfo_appinfo_get_appinfo(const char *appid, pkgmgrinfo_appinfo_h *handle)
2254 * @brief This API creates the application information handle from db
2256 * @par This API is for package-manager client application
2257 * @par Sync (or) Async : Synchronous API
2259 * @param[in] appid pointer to appid
2260 * @param[out] handle pointer to the application info handle.
2261 * @return 0 if success, error code(<0) if fail
2262 * @retval PMINFO_R_OK success
2263 * @retval PMINFO_R_EINVAL invalid argument
2264 * @retval PMINFO_R_ERROR internal error
2266 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2267 * @see pkgmgrinfo_appinfo_get_pkgid()
2268 * @see pkgmgrinfo_appinfo_is_multiple()
2270 static int get_app_type(const char *appid)
2274 pkgmgrinfo_appinfo_h handle;
2275 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2276 if (ret != PMINFO_R_OK)
2278 ret = pkgmgrinfo_appinfo_get_apptype(handle, &type);
2279 if (ret != PMINFO_R_OK) {
2280 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2283 printf("apptype: %s\n", type);
2284 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2289 int pkgmgrinfo_appinfo_get_appinfo(const char *appid, pkgmgrinfo_appinfo_h *handle);
2290 int pkgmgrinfo_appinfo_get_usr_appinfo(const char *appid, uid_t uid, pkgmgrinfo_appinfo_h *handle);
2292 * @fn int pkgmgrinfo_appinfo_get_appid(pkgmgrinfo_appinfo_h handle, char **appid)
2293 * @brief This API gets the application ID
2295 * @par This API is for package-manager client application
2296 * @par Sync (or) Async : Synchronous API
2298 * @param[in] handle pointer to the application info handle.
2299 * @param[out] appid pointer to hold appid
2300 * @return 0 if success, error code(<0) if fail
2301 * @retval PMINFO_R_OK success
2302 * @retval PMINFO_R_EINVAL invalid argument
2303 * @retval PMINFO_R_ERROR internal error
2304 * @pre pkgmgrinfo_appinfo_get_appinfo()
2305 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2306 * @see pkgmgrinfo_appinfo_get_pkgid()
2307 * @see pkgmgrinfo_appinfo_is_multiple()
2309 static int get_app_id(const char *appid)
2312 char *app_id = NULL;
2313 pkgmgrinfo_appinfo_h handle;
2314 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2315 if (ret != PMINFO_R_OK)
2317 ret = pkgmgrinfo_appinfo_get_appid(handle, &app_id);
2318 if (ret != PMINFO_R_OK) {
2319 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2322 printf("app id: %s\n", app_id);
2323 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2328 int pkgmgrinfo_appinfo_get_appid(pkgmgrinfo_appinfo_h handle, char **appid);
2331 * @fn int pkgmgrinfo_appinfo_get_pkgname(pkgmgrinfo_appinfo_h handle, char **pkg_name)
2332 * @brief This API gets the package name of the application
2334 * @par This API is for package-manager client application
2335 * @par Sync (or) Async : Synchronous API
2337 * @param[in] handle pointer to the application info handle.
2338 * @param[out] pkg_name pointer to hold package name
2339 * @return 0 if success, error code(<0) if fail
2340 * @retval PMINFO_R_OK success
2341 * @retval PMINFO_R_EINVAL invalid argument
2342 * @retval PMINFO_R_ERROR internal error
2343 * @pre pkgmgrinfo_appinfo_get_appinfo()
2344 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2345 * @see pkgmgrinfo_appinfo_get_appid()
2346 * @see pkgmgrinfo_appinfo_is_multiple()
2348 static int get_app_pkgname(const char *appid)
2351 char *pkgname = NULL;
2352 pkgmgrinfo_appinfo_h handle;
2353 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2354 if (ret != PMINFO_R_OK)
2356 ret = pkgmgrinfo_appinfo_get_pkgname(handle, &pkgname);
2357 if (ret != PMINFO_R_OK) {
2358 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2361 printf("pkg name: %s\n", pkgname);
2362 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2367 int pkgmgrinfo_appinfo_get_pkgname(pkgmgrinfo_appinfo_h handle, char **pkg_name);
2370 * @fn int pkgmgrinfo_appinfo_get_pkgid(pkgmgrinfo_appinfo_h handle, char **pkgid)
2371 * @brief This API gets the package id of the application
2373 * @par This API is for package-manager client application
2374 * @par Sync (or) Async : Synchronous API
2376 * @param[in] handle pointer to the application info handle.
2377 * @param[out] pkgid pointer to hold package id
2378 * @return 0 if success, error code(<0) if fail
2379 * @retval PMINFO_R_OK success
2380 * @retval PMINFO_R_EINVAL invalid argument
2381 * @retval PMINFO_R_ERROR internal error
2382 * @pre pkgmgrinfo_appinfo_get_appinfo()
2383 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2384 * @see pkgmgrinfo_appinfo_get_appid()
2385 * @see pkgmgrinfo_appinfo_is_multiple()
2387 static int get_app_pkgid(const char *appid)
2391 pkgmgrinfo_appinfo_h handle;
2392 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2393 if (ret != PMINFO_R_OK)
2395 ret = pkgmgrinfo_appinfo_get_pkgid(handle, &pkgid);
2396 if (ret != PMINFO_R_OK) {
2397 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2400 printf("pkg id: %s\n", pkgid);
2401 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2406 int pkgmgrinfo_appinfo_get_pkgid(pkgmgrinfo_appinfo_h handle, char **pkgid);
2409 * @fn int pkgmgrinfo_appinfo_get_exec(pkgmgrinfo_appinfo_h handle, char **exec)
2410 * @brief This API gets the executable name of the application
2412 * @par This API is for package-manager client application
2413 * @par Sync (or) Async : Synchronous API
2415 * @param[in] handle pointer to the application info handle.
2416 * @param[out] exec pointer to hold app exec name
2417 * @return 0 if success, error code(<0) if fail
2418 * @retval PMINFO_R_OK success
2419 * @retval PMINFO_R_EINVAL invalid argument
2420 * @retval PMINFO_R_ERROR internal error
2421 * @pre pkgmgrinfo_appinfo_get_appinfo()
2422 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2423 * @see pkgmgrinfo_appinfo_get_appid()
2424 * @see pkgmgrinfo_appinfo_is_multiple()
2426 static int get_app_exec(const char *appid)
2430 pkgmgrinfo_appinfo_h handle;
2431 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2432 if (ret != PMINFO_R_OK)
2434 ret = pkgmgrinfo_appinfo_get_exec(handle, &exec);
2435 if (ret != PMINFO_R_OK) {
2436 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2439 printf("exec name: %s\n", exec);
2440 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2445 int pkgmgrinfo_appinfo_get_exec(pkgmgrinfo_appinfo_h handle, char **exec);
2448 * @fn int pkgmgrinfo_appinfo_get_icon(pkgmgrinfo_appinfo_h handle, char **icon)
2449 * @brief This API gets the icon name of the application
2451 * @par This API is for package-manager client application
2452 * @par Sync (or) Async : Synchronous API
2454 * @param[in] handle pointer to the application info handle.
2455 * @param[out] icon pointer to hold app icon name
2456 * @return 0 if success, error code(<0) if fail
2457 * @retval PMINFO_R_OK success
2458 * @retval PMINFO_R_EINVAL invalid argument
2459 * @retval PMINFO_R_ERROR internal error
2460 * @pre pkgmgrinfo_appinfo_get_appinfo()
2461 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2462 * @see pkgmgrinfo_appinfo_get_appid()
2463 * @see pkgmgrinfo_appinfo_is_multiple()
2465 static int get_app_icon(const char *appid)
2469 pkgmgrinfo_appinfo_h handle;
2470 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2471 if (ret != PMINFO_R_OK)
2473 ret = pkgmgrinfo_appinfo_get_icon(handle, &icon);
2474 if (ret != PMINFO_R_OK) {
2475 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2478 printf("icon name: %s\n", icon);
2479 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2484 int pkgmgrinfo_appinfo_get_icon(pkgmgrinfo_appinfo_h handle, char **icon);
2487 * @fn int pkgmgrinfo_appinfo_get_label(pkgmgrinfo_appinfo_h handle, char **label)
2488 * @brief This API gets the label of the application
2490 * @par This API is for package-manager client application
2491 * @par Sync (or) Async : Synchronous API
2493 * @param[in] handle pointer to the application info handle.
2494 * @param[out] label pointer to hold app label
2495 * @return 0 if success, error code(<0) if fail
2496 * @retval PMINFO_R_OK success
2497 * @retval PMINFO_R_EINVAL invalid argument
2498 * @retval PMINFO_R_ERROR internal error
2499 * @pre pkgmgrinfo_appinfo_get_appinfo()
2500 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2501 * @see pkgmgrinfo_appinfo_get_appid()
2502 * @see pkgmgrinfo_appinfo_is_multiple()
2504 static int get_app_label(const char *appid)
2508 pkgmgrinfo_appinfo_h handle;
2509 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2510 if (ret != PMINFO_R_OK)
2512 ret = pkgmgrinfo_appinfo_get_label(handle, &label);
2513 if (ret != PMINFO_R_OK) {
2514 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2517 printf("label : %s\n", label);
2518 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2523 int pkgmgrinfo_appinfo_get_label(pkgmgrinfo_appinfo_h handle, char **label);
2526 * @fn int pkgmgrinfo_appinfo_get_component(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_component *component)
2527 * @brief This API gets the component of the application
2529 * @par This API is for package-manager client application
2530 * @par Sync (or) Async : Synchronous API
2532 * @param[in] handle pointer to the application info handle.
2533 * @param[out] component pointer to hold app component
2534 * @return 0 if success, error code(<0) if fail
2535 * @retval PMINFO_R_OK success
2536 * @retval PMINFO_R_EINVAL invalid argument
2537 * @retval PMINFO_R_ERROR internal error
2538 * @pre pkgmgrinfo_appinfo_get_appinfo()
2539 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2540 * @see pkgmgrinfo_appinfo_get_appid()
2541 * @see pkgmgrinfo_appinfo_is_multiple()
2543 static int get_app_component(const char *appid)
2546 pkgmgrinfo_app_component component;
2547 pkgmgrinfo_appinfo_h handle;
2548 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2549 if (ret != PMINFO_R_OK)
2551 ret = pkgmgrinfo_appinfo_get_component(handle, &component);
2552 if (ret != PMINFO_R_OK) {
2553 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2556 printf("component : %s\n", component);
2557 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2562 int pkgmgrinfo_appinfo_get_component(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_component *component);
2565 * @fn int pkgmgrinfo_appinfo_get_apptype(pkgmgrinfo_appinfo_h handle, char **app_type)
2566 * @brief This API gets the apptype of the application
2568 * @par This API is for package-manager client application
2569 * @par Sync (or) Async : Synchronous API
2571 * @param[in] handle pointer to the application info handle.
2572 * @param[out] app_type pointer to hold apptype
2573 * @return 0 if success, error code(<0) if fail
2574 * @retval PMINFO_R_OK success
2575 * @retval PMINFO_R_EINVAL invalid argument
2576 * @retval PMINFO_R_ERROR internal error
2577 * @pre pkgmgrinfo_appinfo_get_appinfo()
2578 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2579 * @see pkgmgrinfo_appinfo_get_appid()
2580 * @see pkgmgrinfo_appinfo_is_multiple()
2582 static int get_app_type(const char *appid)
2585 char *apptype = NULL;
2586 pkgmgrinfo_appinfo_h handle;
2587 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2588 if (ret != PMINFO_R_OK)
2590 ret = pkgmgrinfo_appinfo_get_apptype(handle, &apptype);
2591 if (ret != PMINFO_R_OK) {
2592 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2595 printf("apptype : %s\n", apptype);
2596 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2601 int pkgmgrinfo_appinfo_get_apptype(pkgmgrinfo_appinfo_h handle, char **app_type);
2604 * @fn int pkgmgrinfo_appinfo_get_operation(pkgmgrinfo_appcontrol_h handle,
2605 int *operation_count, char ***operation)
2606 * @brief This API gets the list of operation of the application
2608 * @par This API is for package-manager client application
2609 * @par Sync (or) Async : Synchronous API
2611 * @param[in] handle pointer to the appcontrol handle.
2612 * @param[out] operation_count pointer to hold number of operations
2613 * @param[out] operation pointer to hold list of operations
2614 * @return 0 if success, error code(<0) if fail
2615 * @retval PMINFO_R_OK success
2616 * @retval PMINFO_R_EINVAL invalid argument
2617 * @retval PMINFO_R_ERROR internal error
2618 * @pre pkgmgrinfo_appinfo_get_appinfo()
2619 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2620 * @see pkgmgrinfo_appinfo_get_uri()
2621 * @see pkgmgrinfo_appinfo_get_mime()
2623 int appcontrol_func(pkgmgrinfo_appcontrol_h handle, void *user_data)
2628 pkgmgrinfo_appinfo_get_operation(handle, &oc, &operation);
2629 for (i = 0; i < oc; i++) {
2630 if (strcmp(operation[i], (char *)user_data) == 0)
2637 static int check_operation(const char *appid, char *operation)
2640 pkgmgrinfo_appinfo_h handle;
2641 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2642 if (ret != PMINFO_R_OK)
2644 ret = pkgmgrinfo_appinfo_foreach_appcontrol(handle, appcontrol_func, (void *)operation);
2645 if (ret != PMINFO_R_OK) {
2646 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2649 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2654 int pkgmgrinfo_appinfo_get_operation(pkgmgrinfo_appcontrol_h handle,
2655 int *operation_count, char ***operation);
2658 * @fn int pkgmgrinfo_appinfo_get_uri(pkgmgrinfo_appcontrol_h handle,
2659 int *uri_count, char ***uri)
2660 * @brief This API gets the list of uri of the application
2662 * @par This API is for package-manager client application
2663 * @par Sync (or) Async : Synchronous API
2665 * @param[in] handle pointer to the appcontrol handle.
2666 * @param[out] uri_count pointer to hold number of uris
2667 * @param[out] uri pointer to hold list of uris
2668 * @return 0 if success, error code(<0) if fail
2669 * @retval PMINFO_R_OK success
2670 * @retval PMINFO_R_EINVAL invalid argument
2671 * @retval PMINFO_R_ERROR internal error
2672 * @pre pkgmgrinfo_appinfo_get_appinfo()
2673 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2674 * @see pkgmgrinfo_appinfo_get_operation()
2675 * @see pkgmgrinfo_appinfo_get_mime()
2677 int appcontrol_func(pkgmgrinfo_appcontrol_h handle, void *user_data)
2682 pkgmgrinfo_appinfo_get_uri(handle, &uc, &uri);
2683 for (i = 0; i < uc; i++) {
2684 if (strcmp(uri[i], (char *)user_data) == 0)
2691 static int check_uri(const char *appid, char *uri)
2694 pkgmgrinfo_appinfo_h handle;
2695 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2696 if (ret != PMINFO_R_OK)
2698 ret = pkgmgrinfo_appinfo_foreach_appcontrol(handle, appcontrol_func, (void *)uri);
2699 if (ret != PMINFO_R_OK) {
2700 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2703 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2708 int pkgmgrinfo_appinfo_get_uri(pkgmgrinfo_appcontrol_h handle,
2709 int *uri_count, char ***uri);
2712 * @fn int pkgmgrinfo_appinfo_get_mime(pkgmgrinfo_appcontrol_h handle,
2713 int *mime_count, char ***mime)
2714 * @brief This API gets the list of mime of the application
2716 * @par This API is for package-manager client application
2717 * @par Sync (or) Async : Synchronous API
2719 * @param[in] handle pointer to the appcontrol handle.
2720 * @param[out] mime_count pointer to hold number of mimes
2721 * @param[out] mime pointer to hold list of mimes
2722 * @return 0 if success, error code(<0) if fail
2723 * @retval PMINFO_R_OK success
2724 * @retval PMINFO_R_EINVAL invalid argument
2725 * @retval PMINFO_R_ERROR internal error
2726 * @pre pkgmgrinfo_appinfo_get_appinfo()
2727 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2728 * @see pkgmgrinfo_appinfo_get_uri()
2729 * @see pkgmgrinfo_appinfo_get_operation()
2731 int appcontrol_func(pkgmgrinfo_appcontrol_h handle, void *user_data)
2736 pkgmgrinfo_appinfo_get_operation(handle, &mc, &mime);
2737 for (i = 0; i < mc; i++) {
2738 if (strcmp(mime[i], (char *)user_data) == 0)
2745 static int check_mime(const char *appid, char *mime)
2748 pkgmgrinfo_appinfo_h handle;
2749 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2750 if (ret != PMINFO_R_OK)
2752 ret = pkgmgrinfo_appinfo_foreach_appcontrol(handle, appcontrol_func, (void *)mime);
2753 if (ret != PMINFO_R_OK) {
2754 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2757 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2762 int pkgmgrinfo_appinfo_get_mime(pkgmgrinfo_appcontrol_h handle,
2763 int *mime_count, char ***mime);
2766 * @fn int pkgmgrinfo_appinfo_get_subapp(pkgmgrinfo_appcontrol_h handle,
2767 int *subapp_count, char ***subapp)
2768 * @brief This API gets the list of subapp of the application
2770 * @par This API is for package-manager client application
2771 * @par Sync (or) Async : Synchronous API
2773 * @param[in] handle pointer to the appcontrol handle.
2774 * @param[out] subapp_count pointer to hold number of subapp
2775 * @param[out] subapp pointer to hold list of subapp
2776 * @return 0 if success, error code(<0) if fail
2777 * @retval PMINFO_R_OK success
2778 * @retval PMINFO_R_EINVAL invalid argument
2779 * @retval PMINFO_R_ERROR internal error
2780 * @pre pkgmgrinfo_appinfo_get_appinfo()
2781 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2782 * @see pkgmgrinfo_appinfo_get_uri()
2783 * @see pkgmgrinfo_appinfo_get_operation()
2785 int appcontrol_func(pkgmgrinfo_appcontrol_h handle, void *user_data)
2789 char **subapp = NULL;
2790 pkgmgrinfo_appinfo_get_subapp(handle, &sc, &subapp);
2791 for (i = 0; i < sc; i++) {
2792 if (strcmp(subapp[i], (char *)user_data) == 0)
2799 static int check_subapp(const char *appid, char *subapp)
2802 pkgmgrinfo_appinfo_h handle = NULL;
2803 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2804 if (ret != PMINFO_R_OK)
2806 ret = pkgmgrinfo_appinfo_foreach_appcontrol(handle, appcontrol_func, (void *)subapp);
2807 if (ret != PMINFO_R_OK) {
2808 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2811 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2816 int pkgmgrinfo_appinfo_get_subapp(pkgmgrinfo_appcontrol_h handle,
2817 int *subapp_count, char ***subapp);
2820 * @fn int pkgmgrinfo_appinfo_get_notification_icon(pkgmgrinfo_appinfo_h handle, char **icon)
2821 * @brief This API gets the notification icon of the application
2823 * @par This API is for package-manager client application
2824 * @par Sync (or) Async : Synchronous API
2826 * @param[in] handle pointer to the application info handle.
2827 * @param[out] path pointer to hold notification icon
2828 * @return 0 if success, error code(<0) if fail
2829 * @retval PMINFO_R_OK success
2830 * @retval PMINFO_R_EINVAL invalid argument
2831 * @retval PMINFO_R_ERROR internal error
2832 * @pre pkgmgrinfo_appinfo_get_appinfo()
2833 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2834 * @see pkgmgrinfo_appinfo_get_appid()
2835 * @see pkgmgrinfo_appinfo_is_multiple()
2837 static int get_app_notification_icon(const char *appid)
2840 char *notification_icon = NULL;
2841 pkgmgrinfo_appinfo_h handle;
2842 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2843 if (ret != PMINFO_R_OK)
2845 ret = pkgmgrinfo_appinfo_get_notification_icon(handle, ¬ification_icon);
2846 if (ret != PMINFO_R_OK) {
2847 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2850 printf("notification icon : %s\n", notification_icon);
2851 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2856 int pkgmgrinfo_appinfo_get_notification_icon(pkgmgrinfo_appinfo_h handle, char **icon);
2859 * @fn int pkgmgrinfo_appinfo_get_setting_icon(pkgmgrinfo_appinfo_h handle, char **icon)
2860 * @brief This API gets the setting icon of the application
2862 * @par This API is for package-manager client application
2863 * @par Sync (or) Async : Synchronous API
2865 * @param[in] handle pointer to the application info handle.
2866 * @param[out] path pointer to hold setting icon
2867 * @return 0 if success, error code(<0) if fail
2868 * @retval PMINFO_R_OK success
2869 * @retval PMINFO_R_EINVAL invalid argument
2870 * @retval PMINFO_R_ERROR internal error
2871 * @pre pkgmgrinfo_appinfo_get_appinfo()
2872 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2873 * @see pkgmgrinfo_appinfo_get_appid()
2874 * @see pkgmgrinfo_appinfo_is_multiple()
2876 static int get_app_setting_icon(const char *appid)
2879 char *setting_icon = NULL;
2880 pkgmgrinfo_appinfo_h handle;
2881 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2882 if (ret != PMINFO_R_OK)
2884 ret = pkgmgrinfo_appinfo_get_setting_icon(handle, &setting_icon);
2885 if (ret != PMINFO_R_OK) {
2886 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2889 printf("setting icon : %s\n", setting_icon);
2890 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2895 int pkgmgrinfo_appinfo_get_setting_icon(pkgmgrinfo_appinfo_h handle, char **icon);
2898 * @fn int pkgmgrinfo_appinfo_get_recent_image_type(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_recentimage *type)
2899 * @brief This API gets the type of recent image on app-tray
2901 * @par This API is for package-manager client application
2902 * @par Sync (or) Async : Synchronous API
2904 * @param[in] handle pointer to the application info handle.
2905 * @param[out] type pointer to hold image type
2906 * @return 0 if success, error code(<0) if fail
2907 * @retval PMINFO_R_OK success
2908 * @retval PMINFO_R_EINVAL invalid argument
2909 * @retval PMINFO_R_ERROR internal error
2910 * @pre pkgmgrinfo_appinfo_get_appinfo()
2911 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2912 * @see pkgmgrinfo_appinfo_get_appid()
2913 * @see pkgmgrinfo_appinfo_is_multiple()
2915 static int get_app_recent_image_type(const char *appid)
2918 pkgmgrinfo_app_recentimage type;
2919 pkgmgrinfo_appinfo_h handle;
2920 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2921 if (ret != PMINFO_R_OK)
2923 ret = pkgmgrinfo_appinfo_get_recent_image_type(handle, &type);
2924 if (ret != PMINFO_R_OK) {
2925 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2928 printf("recent image type: %d\n", type);
2929 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2934 int pkgmgrinfo_appinfo_get_recent_image_type(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_recentimage *type);
2938 * @fn int pkgmgrinfo_appinfo_get_preview_image(pkgmgrinfo_appinfo_h handle, char **preview_img)
2939 * @brief This API gets the preview image of application
2941 * @par Sync (or) Async : Synchronous API
2943 * @param[in] handle pointer to the application info handle.
2944 * @param[out] preview_img pointer to hold preview image path
2945 * @return 0 if success, error code(<0) if fail
2946 * @retval PMINFO_R_OK success
2947 * @retval PMINFO_R_EINVAL invalid argument
2948 * @retval PMINFO_R_ERROR internal error
2949 * @pre pkgmgrinfo_appinfo_get_appinfo()
2950 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2951 * @see pkgmgrinfo_appinfo_get_appid()
2953 static int get_app_previewimage(const char *appid)
2956 char *preview = NULL;
2957 pkgmgrinfo_appinfo_h handle = NULL;
2958 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2959 if (ret != PMINFO_R_OK)
2961 ret = pkgmgrinfo_appinfo_get_preview_image(handle, &preview);
2962 if (ret != PMINFO_R_OK) {
2963 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2966 printf("preview image path : %s\n", preview);
2967 pkgmgrinfo_appinfo_destroy_appinfo(handle);
2972 int pkgmgrinfo_appinfo_get_preview_image(pkgmgrinfo_appinfo_h handle, char **preview_img);
2976 * @fn int pkgmgrinfo_appinfo_get_permission_type(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_permission_type *permission)
2977 * @brief This API gets the package permission type of the application
2979 * @par This API is for package-manager client application
2980 * @par Sync (or) Async : Synchronous API
2982 * @param[in] handle pointer to the application info handle.
2983 * @param[out] permission pointer to hold package permission
2984 * @return 0 if success, error code(<0) if fail
2985 * @retval PMINFO_R_OK success
2986 * @retval PMINFO_R_EINVAL invalid argument
2987 * @retval PMINFO_R_ERROR internal error
2988 * @pre pkgmgrinfo_appinfo_get_appinfo()
2989 * @post pkgmgrinfo_appinfo_destroy_appinfo()
2990 * @see pkgmgrinfo_appinfo_get_appid()
2992 static int get_app_permission(const char *appid)
2995 pkgmgrinfo_permission_type permission = 0;
2996 pkgmgrinfo_appinfo_h handle;
2998 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
2999 if (ret != PMINFO_R_OK)
3001 ret = pkgmgrinfo_appinfo_get_permission_type(handle, &permission);
3002 if (ret != PMINFO_R_OK) {
3003 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3006 printf("permission type: %d\n", permission);
3007 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3012 int pkgmgrinfo_appinfo_get_permission_type(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_permission_type *permission);
3015 * @fn int pkgmgrinfo_appinfo_get_component_type(pkgmgrinfo_appinfo_h handle, char **component_type)
3016 * @brief This API gets the component_type
3018 * @par This API is for package-manager client application
3019 * @par Sync (or) Async : Synchronous API
3021 * @param[in] handle pointer to the application info handle.
3022 * @param[out] component_type pointer to hold component_type
3023 * @return 0 if success, error code(<0) if fail
3024 * @retval PMINFO_R_OK success
3025 * @retval PMINFO_R_EINVAL invalid argument
3026 * @retval PMINFO_R_ERROR internal error
3027 * @pre pkgmgrinfo_appinfo_get_appinfo()
3028 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3029 * @see pkgmgrinfo_appinfo_get_pkgid()
3030 * @see pkgmgrinfo_appinfo_is_multiple()
3032 static int get_component_type(const char *appid)
3035 char *component_type = NULL;
3036 pkgmgrinfo_appinfo_h handle;
3037 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3038 if (ret != PMINFO_R_OK)
3040 ret = pkgmgrinfo_appinfo_get_component_type(handle, &component_type);
3041 if (ret != PMINFO_R_OK) {
3042 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3045 printf("component_type: %s\n", component_type);
3046 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3051 int pkgmgrinfo_appinfo_get_component_type(pkgmgrinfo_appinfo_h handle, char **component_type);
3054 * @fn int pkgmgrinfo_appinfo_get_hwacceleration(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_hwacceleration *hwacceleration)
3055 * @brief This API gets the application 'hwacceleration' value from the app ID
3057 * @par This API is for package-manager client application
3058 * @par Sync (or) Async : Synchronous API
3060 * @param[in] handle pointer to application info handle
3061 * @param[out] hwacceleration pointer to hold package hwacceleration value
3062 * @return 0 if success, error code(<0) if fail
3063 * @retval PMINFO_R_OK success
3064 * @retval PMINFO_R_EINVAL invalid argument
3065 * @retval PMINFO_R_ERROR internal error
3066 * @pre pkgmgrinfo_appinfo_get_appinfo()
3067 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3068 * @see pkgmgrinfo_appinfo_get_appid()
3069 * @see pkgmgrinfo_appinfo_is_multiple()
3071 static int get_app_hwacceleration(const char *appid)
3074 pkgmgrinfo_app_hwacceleration hwacceleration;
3075 pkgmgrinfo_appinfo_h handle;
3076 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3077 if (ret != PMINFO_R_OK)
3079 ret = pkgmgrinfo_appinfo_get_hwacceleration(handle, &hwacceleration);
3080 if (ret != PMINFO_R_OK) {
3081 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3084 printf("app hwacceleration: %d\n", hwacceleration);
3085 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3090 int pkgmgrinfo_appinfo_get_hwacceleration(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_hwacceleration *hwacceleration);
3093 * @fn int pkgmgrinfo_appinfo_get_screenreader(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_screenreader *screenreader)
3094 * @brief This API gets the application 'screenreader' value from the app ID
3096 * @par This API is for package-manager client application
3097 * @par Sync (or) Async : Synchronous API
3099 * @param[in] handle pointer to application info handle
3100 * @param[out] screenreader pointer to hold package accessibility value
3101 * @return 0 if success, error code(<0) if fail
3102 * @retval PMINFO_R_OK success
3103 * @retval PMINFO_R_EINVAL invalid argument
3104 * @retval PMINFO_R_ERROR internal error
3105 * @pre pkgmgrinfo_appinfo_get_appinfo()
3106 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3107 * @see pkgmgrinfo_appinfo_get_appid()
3108 * @see pkgmgrinfo_appinfo_is_multiple()
3110 static int get_app_screenreader(const char *appid)
3113 pkgmgrinfo_app_screenreader screenreader = PMINFO_USE_SYSTEM_SETTING;
3114 pkgmgrinfo_appinfo_h handle = NULL;
3115 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3116 if (ret != PMINFO_R_OK)
3118 ret = pkgmgrinfo_appinfo_get_screenreader(handle, &screenreader);
3119 if (ret != PMINFO_R_OK) {
3120 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3123 printf("app screenreader: %d\n", screenreader);
3124 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3129 int pkgmgrinfo_appinfo_get_screenreader(pkgmgrinfo_appinfo_h handle, pkgmgrinfo_app_screenreader *screenreader);
3132 * @fn int pkgmgrinfo_appinfo_get_effectimage(pkgmgrinfo_appinfo_h handle, char **portrait_img, char **landscape_img)
3133 * @brief This API gets the application's landscape & portrait effect images
3135 * @par This API is for package-manager client application
3136 * @par Sync (or) Async : Synchronous API
3138 * @param[in] handle pointer to application info handle
3139 * @param[out] portrait_img contains portrait mode effect image
3140 * @param[out] landscape_img contains landscape mode effect image
3141 * @return 0 if success, error code(<0) if fail
3142 * @retval PMINFO_R_OK success
3143 * @retval PMINFO_R_EINVAL invalid argument
3144 * @retval PMINFO_R_ERROR internal error
3145 * @pre pkgmgrinfo_appinfo_get_appinfo()
3146 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3147 * @see pkgmgrinfo_appinfo_get_appid()
3148 * @see pkgmgrinfo_appinfo_is_nodisplay()
3150 static int get_app_effectimages(const char *appid)
3153 char *portraitimg = NULL;
3154 char *landscapeimg = NULL;
3155 pkgmgrinfo_appinfo_h handle;
3156 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3157 if (ret != PMINFO_R_OK)
3159 ret = pkgmgrinfo_appinfo_get_effectimage(handle, &portraitimg, &landscapeimg);
3160 if (ret != PMINFO_R_OK) {
3161 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3164 printf("app effect image portrait: %s, app effect image landscape : %s\n", portraitimg, landscapeimg);
3165 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3170 int pkgmgrinfo_appinfo_get_effectimage(pkgmgrinfo_appinfo_h handle, char **portrait_img, char **landscape_img);
3173 * @fn int pkgmgrinfo_appinfo_get_submode_mainid(pkgmgrinfo_appinfo_h handle, char **submode_mainid)
3174 * @brief This API gets the submode_mainid of the application
3176 * @par This API is for package-manager client application
3177 * @par Sync (or) Async : Synchronous API
3179 * @param[in] handle pointer to the application info handle.
3180 * @param[out] submode_mainid pointer to hold package name
3181 * @return 0 if success, error code(<0) if fail
3182 * @retval PMINFO_R_OK success
3183 * @retval PMINFO_R_EINVAL invalid argument
3184 * @retval PMINFO_R_ERROR internal error
3185 * @pre pkgmgrinfo_appinfo_get_appinfo()
3186 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3187 * @see pkgmgrinfo_appinfo_get_appid()
3188 * @see pkgmgrinfo_appinfo_is_multiple()
3190 static int get_app_submode_mainid(const char *appid)
3193 char *submode_mainid = NULL;
3194 pkgmgrinfo_appinfo_h handle = NULL;
3195 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3196 if (ret != PMINFO_R_OK)
3198 ret = pkgmgrinfo_appinfo_get_submode_mainid(handle, &submode_mainid);
3199 if (ret != PMINFO_R_OK) {
3200 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3203 printf("submode_mainid: %s\n", submode_mainid);
3204 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3209 int pkgmgrinfo_appinfo_get_submode_mainid(pkgmgrinfo_appinfo_h handle, char **submode_mainid);
3212 * @fn int pkgmgrinfo_appinfo_get_datacontrol_info(const char *providerid, const char *type, char **appid, char **access);
3213 * @brief This API gets the datacontrol info
3215 * @par This API is for package-manager client application
3216 * @par Sync (or) Async : Synchronous API
3218 * @param[in] providerid pointer to the providerid of dataconltrol.
3219 * @param[in] type pointer to the type of dataconltrol.
3220 * @param[out] appid pointer to hold appid, need to free after using
3221 * @param[out] access pointer to hold access, need to free after using
3222 * @return 0 if success, error code(<0) if fail
3223 * @retval PMINFO_R_OK success
3224 * @retval PMINFO_R_EINVAL invalid argument
3225 * @retval PMINFO_R_ERROR internal error
3228 int pkgmgrinfo_appinfo_get_datacontrol_info(const char *providerid, const char *type, char **appid, char **access);
3231 * @fn int pkgmgrinfo_appinfo_get_datacontrol_appid(const char *providerid, char **appid);
3232 * @brief This API gets the appid of datacontrol
3234 * @par This API is for package-manager client application
3235 * @par Sync (or) Async : Synchronous API
3237 * @param[in] providerid pointer to the providerid of dataconltrol.
3238 * @param[out] appid pointer to hold appid, need to free after using
3239 * @return 0 if success, error code(<0) if fail
3240 * @retval PMINFO_R_OK success
3241 * @retval PMINFO_R_EINVAL invalid argument
3242 * @retval PMINFO_R_ERROR internal error
3245 int pkgmgrinfo_appinfo_get_datacontrol_appid(const char *providerid, char **appid);
3248 * @fn int pkgmgrinfo_appinfo_foreach_permission(pkgmgrinfo_appinfo_h handle,
3249 pkgmgrinfo_app_permission_list_cb permission_func, void *user_data);
3250 * @brief This API gets the list of permission for a particular application
3252 * @par This API is for package-manager client application
3253 * @par Sync (or) Async : Synchronous API
3254 * @param[in] handle pointer to the application info handle.
3255 * @param[in] permission_func callback function for list
3256 * @param[in] user_data user data to be passed to callback function
3257 * @return 0 if success, error code(<0) if fail
3258 * @retval PMINFO_R_OK success
3259 * @retval PMINFO_R_EINVAL invalid argument
3260 * @retval PMINFO_R_ERROR internal error
3261 * @pre pkgmgrinfo_appinfo_get_appinfo()
3262 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3264 int permission_func(const char *name, void *user_data)
3266 if (strcmp(name, (char *)user_data) == 0)
3272 static int list_permission(const char *appid, char *permission)
3275 pkgmgrinfo_appinfo_h handle;
3276 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3277 if (ret != PMINFO_R_OK)
3279 ret = pkgmgrinfo_appinfo_foreach_permission(handle, permission_func, (void *)permission);
3280 if (ret != PMINFO_R_OK) {
3281 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3284 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3289 int pkgmgrinfo_appinfo_foreach_permission(pkgmgrinfo_appinfo_h handle,
3290 pkgmgrinfo_app_permission_list_cb permission_func, void *user_data);
3293 * @fn int pkgmgrinfo_appinfo_foreach_category(pkgmgrinfo_appinfo_h handle,
3294 pkgmgrinfo_app_category_list_cb category_func, void *user_data);
3295 * @brief This API gets the list of category for a particular application
3297 * @par This API is for package-manager client application
3298 * @par Sync (or) Async : Synchronous API
3299 * @param[in] handle pointer to the application info handle.
3300 * @param[in] category_func callback function for list
3301 * @param[in] user_data user data to be passed to callback function
3302 * @return 0 if success, error code(<0) if fail
3303 * @retval PMINFO_R_OK success
3304 * @retval PMINFO_R_EINVAL invalid argument
3305 * @retval PMINFO_R_ERROR internal error
3306 * @pre pkgmgrinfo_appinfo_get_appinfo()
3307 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3309 int category_func(const char *name, void *user_data)
3311 if (strcmp(name, (char *)user_data) == 0)
3317 static int list_category(const char *appid, char *category)
3320 pkgmgrinfo_appinfo_h handle;
3321 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3322 if (ret != PMINFO_R_OK)
3324 ret = pkgmgrinfo_appinfo_foreach_category(handle, category_func, (void *)category);
3325 if (ret != PMINFO_R_OK) {
3326 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3329 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3334 int pkgmgrinfo_appinfo_foreach_category(pkgmgrinfo_appinfo_h handle,
3335 pkgmgrinfo_app_category_list_cb category_func, void *user_data);
3338 * @fn int pkgmgrinfo_appinfo_foreach_metadata(pkgmgrinfo_appinfo_h handle,
3339 pkgmgrinfo_app_metadata_list_cb metadata_func, void *user_data);
3340 * @brief This API gets the list of metadata for a particular application
3342 * @par This API is for package-manager client application
3343 * @par Sync (or) Async : Synchronous API
3344 * @param[in] handle pointer to the application info handle.
3345 * @param[in] metadata_func callback function for list
3346 * @param[in] user_data user data to be passed to callback function
3347 * @return 0 if success, error code(<0) if fail
3348 * @retval PMINFO_R_OK success
3349 * @retval PMINFO_R_EINVAL invalid argument
3350 * @retval PMINFO_R_ERROR internal error
3351 * @pre pkgmgrinfo_appinfo_get_appinfo()
3352 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3354 int metadata_func(const char *key, const char *value, void *user_data)
3356 if (strcmp(key, (char *)user_data) == 0) {
3357 printf("Value is %s\n", value);
3364 static int list_metadata(const char *appid, char *key)
3367 pkgmgrinfo_appinfo_h handle;
3368 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3369 if (ret != PMINFO_R_OK)
3371 ret = pkgmgrinfo_appinfo_foreach_metadata(handle, metadata_func, (void *)key);
3372 if (ret != PMINFO_R_OK) {
3373 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3376 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3381 int pkgmgrinfo_appinfo_foreach_metadata(pkgmgrinfo_appinfo_h handle,
3382 pkgmgrinfo_app_metadata_list_cb metadata_func, void *user_data);
3386 * @fn int pkgmgrinfo_appinfo_foreach_appcontrol(pkgmgrinfo_appinfo_h handle,
3387 pkgmgrinfo_app_control_list_cb appcontrol_func, void *user_data);
3388 * @fn int pkgmgrinfo_usr_appinfo_foreach_appcontrol(pkgmgrinfo_appinfo_h handle,
3389 pkgmgrinfo_app_control_list_cb appcontrol_func, void *user_data, uid_t uid);
3390 * @brief This API gets the list of app-control for a particular application
3392 * @par This API is for package-manager client application
3393 * @par Sync (or) Async : Synchronous API
3394 * @param[in] handle pointer to the application info handle.
3395 * @param[in] appcontrol_func callback function for list
3396 * @param[in] user_data user data to be passed to callback function
3397 * @param[in] uid the addressee user id of the instruction
3398 * @return 0 if success, error code(<0) if fail
3399 * @retval PMINFO_R_OK success
3400 * @retval PMINFO_R_EINVAL invalid argument
3401 * @retval PMINFO_R_ERROR internal error
3402 * @pre pkgmgrinfo_appinfo_get_appinfo()
3403 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3405 int appcontrol_func(pkgmgrinfo_appcontrol_h handle, void *user_data)
3410 pkgmgrinfo_appinfo_get_operation(handle, &oc, &operation);
3411 for (i = 0; i < oc; i++) {
3412 if (strcmp(operation[i], (char *)user_data) == 0)
3419 static int check_operation(const char *appid, char *operation)
3422 pkgmgrinfo_appinfo_h handle;
3423 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3424 if (ret != PMINFO_R_OK)
3426 ret = pkgmgrinfo_appinfo_foreach_appcontrol(handle, appcontrol_func, (void *)operation);
3427 if (ret != PMINFO_R_OK) {
3428 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3431 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3436 int pkgmgrinfo_appinfo_foreach_appcontrol(pkgmgrinfo_appinfo_h handle,
3437 pkgmgrinfo_app_control_list_cb appcontrol_func, void *user_data);
3438 int pkgmgrinfo_usr_appinfo_foreach_appcontrol(pkgmgrinfo_appinfo_h handle,
3439 pkgmgrinfo_app_control_list_cb appcontrol_func, void *user_data, uid_t uid);
3442 * @fn int pkgmgrinfo_appinfo_is_nodisplay(pkgmgrinfo_appinfo_h handle, bool *nodisplay)
3443 * @brief This API gets the application 'nodisplay' value from the app ID
3445 * @par This API is for package-manager client application
3446 * @par Sync (or) Async : Synchronous API
3448 * @param[in] handle pointer to application info handle
3449 * @param[out] nodisplay pointer to hold package nodisplay value
3450 * @return 0 if success, error code(<0) if fail
3451 * @retval PMINFO_R_OK success
3452 * @retval PMINFO_R_EINVAL invalid argument
3453 * @retval PMINFO_R_ERROR internal error
3454 * @pre pkgmgrinfo_appinfo_get_appinfo()
3455 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3456 * @see pkgmgrinfo_appinfo_get_appid()
3457 * @see pkgmgrinfo_appinfo_is_multiple()
3459 static int get_app_nodisplay(const char *appid)
3463 pkgmgrinfo_appinfo_h handle;
3464 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3465 if (ret != PMINFO_R_OK)
3467 ret = pkgmgrinfo_appinfo_is_nodisplay(handle, &nodisplay);
3468 if (ret != PMINFO_R_OK) {
3469 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3472 printf("app nodisplay: %d\n", nodisplay);
3473 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3478 int pkgmgrinfo_appinfo_is_nodisplay(pkgmgrinfo_appinfo_h handle, bool *nodisplay);
3481 * @fn int pkgmgrinfo_appinfo_is_multiple(pkgmgrinfo_appinfo_h handle, bool *multiple)
3482 * @brief This API gets the application 'multiple' value from the app ID
3484 * @par This API is for package-manager client application
3485 * @par Sync (or) Async : Synchronous API
3487 * @param[in] handle pointer to application info handle
3488 * @param[out] multiple pointer to hold package multiple value
3489 * @return 0 if success, error code(<0) if fail
3490 * @retval PMINFO_R_OK success
3491 * @retval PMINFO_R_EINVAL invalid argument
3492 * @retval PMINFO_R_ERROR internal error
3493 * @pre pkgmgrinfo_appinfo_get_appinfo()
3494 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3495 * @see pkgmgrinfo_appinfo_get_appid()
3496 * @see pkgmgrinfo_appinfo_is_nodisplay()
3498 static int get_app_multiple(const char *appid)
3502 pkgmgrinfo_appinfo_h handle;
3503 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3504 if (ret != PMINFO_R_OK)
3506 ret = pkgmgrinfo_appinfo_is_multiple(handle, &multiple);
3507 if (ret != PMINFO_R_OK) {
3508 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3511 printf("app multiple: %d\n", multiple);
3512 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3517 int pkgmgrinfo_appinfo_is_multiple(pkgmgrinfo_appinfo_h handle, bool *multiple);
3520 * @fn int pkgmgrinfo_appinfo_is_indicator_display_allowed(pkgmgrinfo_appinfo_h handle, bool *indicator_disp)
3521 * @brief This API gets the application 'indicatordisplay' value. If true, indicator will be displayed during
3522 * application launching effect. If fales, indicator will be hidden during application launching effect
3524 * @par This API is for package-manager client application
3525 * @par Sync (or) Async : Synchronous API
3527 * @param[in] handle pointer to application info handle
3528 * @param[out] indicator_disp contains indicator display status for application launching effect
3529 * @return 0 if success, error code(<0) if fail
3530 * @retval PMINFO_R_OK success
3531 * @retval PMINFO_R_EINVAL invalid argument
3532 * @retval PMINFO_R_ERROR internal error
3533 * @pre pkgmgrinfo_appinfo_get_appinfo()
3534 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3535 * @see pkgmgrinfo_appinfo_get_appid()
3536 * @see pkgmgrinfo_appinfo_is_nodisplay()
3538 static int get_app_indicator_display(const char *appid)
3541 bool indicator_disp;
3542 pkgmgrinfo_appinfo_h handle;
3543 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3544 if (ret != PMINFO_R_OK)
3546 ret = pkgmgrinfo_appinfo_is_indicator_display_allowed(handle, &indicator_disp);
3547 if (ret != PMINFO_R_OK){
3548 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3551 printf("app indicator disp : %d\n", indicator_disp);
3552 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3557 int pkgmgrinfo_appinfo_is_indicator_display_allowed(pkgmgrinfo_appinfo_h handle, bool *indicator_disp);
3560 * @fn int pkgmgrinfo_appinfo_is_taskmanage(pkgmgrinfo_appinfo_h handle, bool *taskmanage)
3561 * @brief This API gets the application 'taskmanage' value from the app ID
3563 * @par This API is for package-manager client application
3564 * @par Sync (or) Async : Synchronous API
3566 * @param[in] handle pointer to application info handle
3567 * @param[out] taskmanage pointer to hold package taskmanage value
3568 * @return 0 if success, error code(<0) if fail
3569 * @retval PMINFO_R_OK success
3570 * @retval PMINFO_R_EINVAL invalid argument
3571 * @retval PMINFO_R_ERROR internal error
3572 * @pre pkgmgrinfo_appinfo_get_appinfo()
3573 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3574 * @see pkgmgrinfo_appinfo_get_appid()
3575 * @see pkgmgrinfo_appinfo_is_multiple()
3577 static int get_app_taskmanage(const char *appid)
3581 pkgmgrinfo_appinfo_h handle;
3582 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3583 if (ret != PMINFO_R_OK)
3585 ret = pkgmgrinfo_appinfo_is_taskmanage(handle, &taskmanage);
3586 if (ret != PMINFO_R_OK) {
3587 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3590 printf("app taskmanage: %d\n", taskmanage);
3591 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3596 int pkgmgrinfo_appinfo_is_taskmanage(pkgmgrinfo_appinfo_h handle, bool *taskmanage);
3599 * @fn int pkgmgrinfo_appinfo_is_enabled(pkgmgrinfo_appinfo_h handle, bool *enabled)
3600 * @brief This API gets the application 'taskmanage' value from the app ID
3602 * @par This API is for package-manager client application
3603 * @par Sync (or) Async : Synchronous API
3605 * @param[in] handle pointer to application info handle
3606 * @param[out] enabled pointer to hold package enabled value
3607 * @return 0 if success, error code(<0) if fail
3608 * @retval PMINFO_R_OK success
3609 * @retval PMINFO_R_EINVAL invalid argument
3610 * @retval PMINFO_R_ERROR internal error
3611 * @pre pkgmgrinfo_appinfo_get_appinfo()
3612 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3613 * @see pkgmgrinfo_appinfo_get_appid()
3614 * @see pkgmgrinfo_appinfo_is_multiple()
3616 static int get_app_enabled(const char *appid)
3620 pkgmgrinfo_appinfo_h handle;
3621 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3622 if (ret != PMINFO_R_OK)
3624 ret = pkgmgrinfo_appinfo_is_taskmanage(handle, &enabled);
3625 if (ret != PMINFO_R_OK) {
3626 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3629 printf("app enabled: %d\n", enabled);
3630 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3635 int pkgmgrinfo_appinfo_is_enabled(pkgmgrinfo_appinfo_h handle, bool *enabled);
3638 * @fn int pkgmgrinfo_appinfo_is_onboot(pkgmgrinfo_appinfo_h handle, bool *onboot)
3639 * @brief This API gets the application 'onboot' value from the app ID
3641 * @par This API is for package-manager client application
3642 * @par Sync (or) Async : Synchronous API
3644 * @param[in] handle pointer to application info handle
3645 * @param[out] onboot pointer to hold package onboot value
3646 * @return 0 if success, error code(<0) if fail
3647 * @retval PMINFO_R_OK success
3648 * @retval PMINFO_R_EINVAL invalid argument
3649 * @retval PMINFO_R_ERROR internal error
3650 * @pre pkgmgrinfo_appinfo_get_appinfo()
3651 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3652 * @see pkgmgrinfo_appinfo_get_appid()
3653 * @see pkgmgrinfo_appinfo_is_multiple()
3655 static int get_app_onboot(const char *appid)
3659 pkgmgrinfo_appinfo_h handle;
3660 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3661 if (ret != PMINFO_R_OK)
3663 ret = pkgmgrinfo_appinfo_is_onboot(handle, &onboot);
3664 if (ret != PMINFO_R_OK) {
3665 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3668 printf("app onboot: %d\n", onboot);
3669 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3674 int pkgmgrinfo_appinfo_is_onboot(pkgmgrinfo_appinfo_h handle, bool *onboot);
3677 * @fn int pkgmgrinfo_appinfo_is_autorestart(pkgmgrinfo_appinfo_h handle, bool *autorestart)
3678 * @brief This API gets the application 'autorestart' value from the app ID
3680 * @par This API is for package-manager client application
3681 * @par Sync (or) Async : Synchronous API
3683 * @param[in] handle pointer to application info handle
3684 * @param[out] autorestart pointer to hold package autorestart value
3685 * @return 0 if success, error code(<0) if fail
3686 * @retval PMINFO_R_OK success
3687 * @retval PMINFO_R_EINVAL invalid argument
3688 * @retval PMINFO_R_ERROR internal error
3689 * @pre pkgmgrinfo_appinfo_get_appinfo()
3690 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3691 * @see pkgmgrinfo_appinfo_get_appid()
3692 * @see pkgmgrinfo_appinfo_is_multiple()
3694 static int get_app_autorestart(const char *appid)
3698 pkgmgrinfo_appinfo_h handle;
3699 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3700 if (ret != PMINFO_R_OK)
3702 ret = pkgmgrinfo_appinfo_is_autorestart(handle, &autorestart);
3703 if (ret != PMINFO_R_OK) {
3704 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3707 printf("app autorestart: %d\n", autorestart);
3708 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3713 int pkgmgrinfo_appinfo_is_autorestart(pkgmgrinfo_appinfo_h handle, bool *autorestart);
3716 * @fn int pkgmgrinfo_appinfo_is_mainapp(pkgmgrinfo_appinfo_h handle, bool *mainapp)
3717 * @brief This API gets the value for given application is main app or not from handle
3719 * @par This API is for package-manager client application
3720 * @par Sync (or) Async : Synchronous API
3722 * @param[in] handle pointer to application info handle
3723 * @param[out] mainapp pointer to hold package mainapp is or not
3724 * @return 0 if success, error code(<0) if fail
3725 * @retval PMINFO_R_OK success
3726 * @retval PMINFO_R_EINVAL invalid argument
3727 * @retval PMINFO_R_ERROR internal error
3728 * @pre pkgmgrinfo_appinfo_get_appinfo()
3729 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3730 * @see pkgmgrinfo_appinfo_get_appid()
3731 * @see pkgmgrinfo_appinfo_is_multiple()
3733 static int get_app_mainapp(const char *appid)
3737 pkgmgrinfo_appinfo_h handle;
3738 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3739 if (ret != PMINFO_R_OK)
3741 ret = pkgmgrinfo_appinfo_is_mainapp(handle, &mainapp);
3742 if (ret != PMINFO_R_OK) {
3743 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3746 printf("mainapp: %d\n", mainapp);
3747 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3752 int pkgmgrinfo_appinfo_is_mainapp(pkgmgrinfo_appinfo_h handle, bool *mainapp);
3756 * @fn int pkgmgrinfo_appinfo_is_preload(pkgmgrinfo_appinfo_h handle, bool *preload)
3757 * @brief This API gets the value for given application is preload or not from handle
3759 * @par This API is for package-manager client application
3760 * @par Sync (or) Async : Synchronous API
3762 * @param[in] handle pointer to application info handle
3763 * @param[out] preload pointer to hold preload is or not
3764 * @return 0 if success, error code(<0) if fail
3765 * @retval PMINFO_R_OK success
3766 * @retval PMINFO_R_EINVAL invalid argument
3767 * @retval PMINFO_R_ERROR internal error
3768 * @pre pkgmgrinfo_appinfo_get_appinfo()
3769 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3770 * @see pkgmgrinfo_appinfo_get_appid()
3771 * @see pkgmgrinfo_appinfo_is_multiple()
3773 static int get_app_preload(const char *appid)
3777 pkgmgrinfo_appinfo_h handle = NULL;
3778 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3779 if (ret != PMINFO_R_OK)
3781 ret = pkgmgrinfo_appinfo_is_preload(handle, &preload);
3782 if (ret != PMINFO_R_OK) {
3783 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3786 printf("preload: %d\n", preload);
3787 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3792 int pkgmgrinfo_appinfo_is_preload(pkgmgrinfo_appinfo_h handle, bool *preload);
3795 * @fn int pkgmgrinfo_appinfo_is_submode(pkgmgrinfo_appinfo_h handle, bool *submode)
3796 * @brief This API gets the value for given application is submode or not from handle
3798 * @par This API is for package-manager client application
3799 * @par Sync (or) Async : Synchronous API
3801 * @param[in] handle pointer to application info handle
3802 * @param[out] submode pointer to hold submode is or not
3803 * @return 0 if success, error code(<0) if fail
3804 * @retval PMINFO_R_OK success
3805 * @retval PMINFO_R_EINVAL invalid argument
3806 * @retval PMINFO_R_ERROR internal error
3807 * @pre pkgmgrinfo_appinfo_get_appinfo()
3808 * @post pkgmgrinfo_appinfo_destroy_appinfo()
3809 * @see pkgmgrinfo_appinfo_get_appid()
3810 * @see pkgmgrinfo_appinfo_is_multiple()
3812 static int get_app_submode(const char *appid)
3816 pkgmgrinfo_appinfo_h handle = NULL;
3817 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3818 if (ret != PMINFO_R_OK)
3820 ret = pkgmgrinfo_appinfo_is_submode(handle, &submode);
3821 if (ret != PMINFO_R_OK) {
3822 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3825 printf("submode: %d\n", submode);
3826 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3831 int pkgmgrinfo_appinfo_is_submode(pkgmgrinfo_appinfo_h handle, bool *submode);
3834 * @fn int pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo_h handle)
3835 * @brief This API destroys the application information handle freeing up all the resources
3837 * @par This API is for package-manager client application
3838 * @par Sync (or) Async : Synchronous API
3840 * @param[in] handle pointer to the application info handle.
3841 * @return 0 if success, error code(<0) if fail
3842 * @retval PMINFO_R_OK success
3843 * @retval PMINFO_R_EINVAL invalid argument
3844 * @retval PMINFO_R_ERROR internal error
3845 * @pre pkgmgrinfo_appinfo_get_appinfo()
3847 * @see pkgmgrinfo_appinfo_get_pkgid()
3848 * @see pkgmgrinfo_appinfo_is_multiple()
3850 static int get_app_type(const char *appid)
3854 pkgmgrinfo_appinfo_h handle;
3855 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
3856 if (ret != PMINFO_R_OK)
3858 ret = pkgmgrinfo_appinfo_get_apptype(handle, &type);
3859 if (ret != PMINFO_R_OK) {
3860 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3863 printf("apptype: %s\n", type);
3864 pkgmgrinfo_appinfo_destroy_appinfo(handle);
3869 int pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo_h handle);
3872 * @fn int pkgmgrinfo_appinfo_filter_create(pkgmgrinfo_appinfo_filter_h *handle)
3873 * @brief This API creates the application information filter handle from db. All filter properties will be ANDed.
3874 The query will search the entire application information collected from the manifest file of all the installed packages
3876 * @par This API is for package-manager client application
3877 * @par Sync (or) Async : Synchronous API
3879 * @param[out] handle pointer to the application info filter handle.
3880 * @return 0 if success, error code(<0) if fail
3881 * @retval PMINFO_R_OK success
3882 * @retval PMINFO_R_EINVAL invalid argument
3883 * @retval PMINFO_R_ERROR internal error
3885 * @post pkgmgrinfo_appinfo_filter_destroy()
3886 * @see pkgmgrinfo_appinfo_filter_count()
3887 * @see pkgmgrinfo_appinfo_filter_foreach_appinfo()
3889 static int get_capp_count()
3893 pkgmgrinfo_appinfo_filter_h handle;
3894 ret = pkgmgrinfo_appinfo_filter_create(&handle);
3895 if (ret != PMINFO_R_OK)
3897 ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp");
3898 if (ret != PMINFO_R_OK) {
3899 pkgmgrinfo_appinfo_filter_destroy(handle);
3902 ret = pkgmgrinfo_appinfo_filter_count(handle, &count);
3903 if (ret != PMINFO_R_OK) {
3904 pkgmgrinfo_appinfo_filter_destroy(handle);
3907 printf("No of capp: %d\n", count);
3908 pkgmgrinfo_appinfo_filter_destroy(handle);
3913 int pkgmgrinfo_appinfo_filter_create(pkgmgrinfo_appinfo_filter_h *handle);
3916 * @fn int pkgmgrinfo_appinfo_filter_destroy(pkgmgrinfo_appinfo_filter_h handle)
3917 * @brief This API destroys the application information filter handle freeing up all the resources
3919 * @par This API is for package-manager client application
3920 * @par Sync (or) Async : Synchronous API
3922 * @param[in] handle pointer to the application info filter handle.
3923 * @return 0 if success, error code(<0) if fail
3924 * @retval PMINFO_R_OK success
3925 * @retval PMINFO_R_EINVAL invalid argument
3926 * @retval PMINFO_R_ERROR internal error
3927 * @pre pkgmgrinfo_appinfo_filter_create()
3929 * @see pkgmgrinfo_appinfo_filter_count()
3930 * @see pkgmgrinfo_appinfo_filter_foreach_appinfo()
3932 static int get_capp_count()
3936 pkgmgrinfo_appinfo_filter_h handle;
3937 ret = pkgmgrinfo_appinfo_filter_create(&handle);
3938 if (ret != PMINFO_R_OK)
3940 ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp");
3941 if (ret != PMINFO_R_OK) {
3942 pkgmgrinfo_appinfo_filter_destroy(handle);
3945 ret = pkgmgrinfo_appinfo_filter_count(handle, &count);
3946 if (ret != PMINFO_R_OK) {
3947 pkgmgrinfo_appinfo_filter_destroy(handle);
3950 printf("No of capp: %d\n", count);
3951 pkgmgrinfo_appinfo_filter_destroy(handle);
3956 int pkgmgrinfo_appinfo_filter_destroy(pkgmgrinfo_appinfo_filter_h handle);
3959 * @fn int pkgmgrinfo_appinfo_filter_add_bool(pkgmgrinfo_appinfo_filter_h handle, const char *property, const bool value)
3960 * @brief This API adds a boolean filter property to the filter handle
3962 * @par This API is for package-manager client application
3963 * @par Sync (or) Async : Synchronous API
3965 * @param[in] handle pointer to the application info filter handle.
3966 * @param[in] property boolean property name.
3967 * @param[in] value value corresponding to the property.
3968 * @return 0 if success, error code(<0) if fail
3969 * @retval PMINFO_R_OK success
3970 * @retval PMINFO_R_EINVAL invalid argument
3971 * @retval PMINFO_R_ERROR internal error
3972 * @pre pkgmgrinfo_appinfo_filter_create()
3973 * @post pkgmgrinfo_appinfo_filter_destroy()
3974 * @see pkgmgrinfo_appinfo_filter_count()
3975 * @see pkgmgrinfo_appinfo_filter_foreach_appinfo()
3977 static int get_taskmanageable_app_count()
3981 pkgmgrinfo_appinfo_filter_h handle;
3982 ret = pkgmgrinfo_appinfo_filter_create(&handle);
3983 if (ret != PMINFO_R_OK)
3985 ret = pkgmgrinfo_appinfo_filter_add_bool(handle, PMINFO_APPINFO_PROP_APP_TASKMANAGE, 1);
3986 if (ret != PMINFO_R_OK) {
3987 pkgmgrinfo_appinfo_filter_destroy(handle);
3990 ret = pkgmgrinfo_appinfo_filter_count(handle, &count);
3991 if (ret != PMINFO_R_OK) {
3992 pkgmgrinfo_appinfo_filter_destroy(handle);
3995 printf("No of taskmanageable apps: %d\n", count);
3996 pkgmgrinfo_appinfo_filter_destroy(handle);
4001 int pkgmgrinfo_appinfo_filter_add_bool(pkgmgrinfo_appinfo_filter_h handle,
4002 const char *property, const bool value);
4005 * @fn int pkgmgrinfo_appinfo_filter_add_int(pkgmgrinfo_appinfo_filter_h handle, const char *property, const int value)
4006 * @brief This API adds an integer filter property to the filter handle
4008 * @par This API is for package-manager client application
4009 * @par Sync (or) Async : Synchronous API
4011 * @param[in] handle pointer to the application info filter handle.
4012 * @param[in] property integer property name.
4013 * @param[in] value value corresponding to the property.
4014 * @return 0 if success, error code(<0) if fail
4015 * @retval PMINFO_R_OK success
4016 * @retval PMINFO_R_EINVAL invalid argument
4017 * @retval PMINFO_R_ERROR internal error
4018 * @pre pkgmgrinfo_appinfo_filter_create()
4019 * @post pkgmgrinfo_appinfo_filter_destroy()
4020 * @see pkgmgrinfo_appinfo_filter_count()
4021 * @see pkgmgrinfo_appinfo_filter_foreach_appinfo()
4023 static int get_taskmanageable_app_count()
4027 pkgmgrinfo_appinfo_filter_h handle;
4028 ret = pkgmgrinfo_appinfo_filter_create(&handle);
4029 if (ret != PMINFO_R_OK)
4031 ret = pkgmgrinfo_appinfo_filter_add_bool(handle, PMINFO_APPINFO_PROP_APP_XXX, 10);
4032 if (ret != PMINFO_R_OK) {
4033 pkgmgrinfo_appinfo_filter_destroy(handle);
4036 ret = pkgmgrinfo_appinfo_filter_count(handle, &count);
4037 if (ret != PMINFO_R_OK) {
4038 pkgmgrinfo_appinfo_filter_destroy(handle);
4041 printf("No of apps: %d\n", count);
4042 pkgmgrinfo_appinfo_filter_destroy(handle);
4047 int pkgmgrinfo_appinfo_filter_add_int(pkgmgrinfo_appinfo_filter_h handle,
4048 const char *property, const int value);
4051 * @fn int pkgmgrinfo_appinfo_filter_add_string(pkgmgrinfo_appinfo_filter_h handle, const char *property, const char *value)
4052 * @brief This API adds a string filter property to the filter handle
4054 * @par This API is for package-manager client application
4055 * @par Sync (or) Async : Synchronous API
4057 * @param[in] handle pointer to the application info filter handle.
4058 * @param[in] property string property name.
4059 * @param[in] value value corresponding to the property.
4060 * @return 0 if success, error code(<0) if fail
4061 * @retval PMINFO_R_OK success
4062 * @retval PMINFO_R_EINVAL invalid argument
4063 * @retval PMINFO_R_ERROR internal error
4064 * @pre pkgmgrinfo_appinfo_filter_create()
4065 * @post pkgmgrinfo_appinfo_filter_destroy()
4066 * @see pkgmgrinfo_appinfo_filter_count()
4067 * @see pkgmgrinfo_appinfo_filter_foreach_appinfo()
4069 static int get_capp_count()
4073 pkgmgrinfo_appinfo_filter_h handle;
4074 ret = pkgmgrinfo_appinfo_filter_create(&handle);
4075 if (ret != PMINFO_R_OK)
4077 ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp");
4078 if (ret != PMINFO_R_OK) {
4079 pkgmgrinfo_appinfo_filter_destroy(handle);
4082 ret = pkgmgrinfo_appinfo_filter_count(handle, &count);
4083 if (ret != PMINFO_R_OK) {
4084 pkgmgrinfo_appinfo_filter_destroy(handle);
4087 printf("No of capp: %d\n", count);
4088 pkgmgrinfo_appinfo_filter_destroy(handle);
4093 int pkgmgrinfo_appinfo_filter_add_string(pkgmgrinfo_appinfo_filter_h handle,
4094 const char *property, const char *value);
4097 * @fn int pkgmgrinfo_appinfo_filter_foreach_appinfo(pkgmgrinfo_appinfo_filter_h handle, pkgmgrinfo_app_list_cb app_cb, void *user_data)
4098 * @brief This API executes the user supplied callback function for each application that satisfy the filter conditions
4100 * @par This API is for package-manager client application
4101 * @par Sync (or) Async : Synchronous API
4103 * @param[in] handle pointer to the application info filter handle.
4104 * @param[in] app_cb callback function.
4105 * @param[in] user_data user data to be passed to the callback function
4106 * @return 0 if success, error code(<0) if fail
4107 * @retval PMINFO_R_OK success
4108 * @retval PMINFO_R_EINVAL invalid argument
4109 * @retval PMINFO_R_ERROR internal error
4110 * @pre pkgmgrinfo_appinfo_filter_create()
4111 * @post pkgmgrinfo_appinfo_filter_destroy()
4112 * @see pkgmgrinfo_appinfo_filter_count()
4114 int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
4117 pkgmgrinfo_appinfo_get_appid(handle, &appid);
4118 printf("appid : %s\n", appid);
4122 static int get_capp_list()
4125 pkgmgrinfo_appinfo_filter_h handle;
4126 ret = pkgmgrinfo_appinfo_filter_create(&handle);
4127 if (ret != PMINFO_R_OK)
4129 ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp");
4130 if (ret != PMINFO_R_OK) {
4131 pkgmgrinfo_appinfo_filter_destroy(handle);
4134 ret = pkgmgrinfo_appinfo_filter_foreach_appinfo(handle, app_list_cb, NULL);
4135 if (ret != PMINFO_R_OK) {
4136 pkgmgrinfo_appinfo_filter_destroy(handle);
4139 pkgmgrinfo_appinfo_filter_destroy(handle);
4144 int pkgmgrinfo_appinfo_filter_foreach_appinfo(pkgmgrinfo_appinfo_filter_h handle,
4145 pkgmgrinfo_app_list_cb app_cb, void *user_data);
4146 int pkgmgrinfo_appinfo_usr_filter_foreach_appinfo(pkgmgrinfo_appinfo_filter_h handle,
4147 pkgmgrinfo_app_list_cb app_cb, void *user_data, uid_t uid);
4150 * @fn int pkgmgrinfo_appinfo_filter_count(pkgmgrinfo_appinfo_filter_h handle, int *count)
4151 * @fn int pkgmgrinfo_appinfo_usr_filter_count(pkgmgrinfo_appinfo_filter_h handle, int *count, uid_t uid)
4152 * @brief This API counts the application that satisfy the filter conditions
4154 * @par This API is for package-manager client application
4155 * @par Sync (or) Async : Synchronous API
4157 * @param[in] handle pointer to the application info filter handle.
4158 * @param[in] count pointer to store count value
4159 * @param[in] uid the addressee user id of the instruction
4160 * @return 0 if success, error code(<0) if fail
4161 * @retval PMINFO_R_OK success
4162 * @retval PMINFO_R_EINVAL invalid argument
4163 * @retval PMINFO_R_ERROR internal error
4164 * @pre pkgmgrinfo_appinfo_filter_create()
4165 * @post pkgmgrinfo_appinfo_filter_destroy()
4166 * @see pkgmgrinfo_appinfo_filter_foreach_appinfo()
4168 static int get_capp_count()
4172 pkgmgrinfo_appinfo_filter_h handle;
4173 ret = pkgmgrinfo_appinfo_filter_create(&handle);
4174 if (ret != PMINFO_R_OK)
4176 ret = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_TYPE, "capp");
4177 if (ret != PMINFO_R_OK) {
4178 pkgmgrinfo_appinfo_filter_destroy(handle);
4181 ret = pkgmgrinfo_appinfo_filter_count(handle, &count);
4182 if (ret != PMINFO_R_OK) {
4183 pkgmgrinfo_appinfo_filter_destroy(handle);
4186 printf("No of capp: %d\n", count);
4187 pkgmgrinfo_appinfo_filter_destroy(handle);
4192 int pkgmgrinfo_appinfo_filter_count(pkgmgrinfo_appinfo_filter_h handle, int *count);
4193 int pkgmgrinfo_appinfo_usr_filter_count(pkgmgrinfo_appinfo_filter_h handle, int *count, uid_t uid);
4195 * @fn int pkgmgrinfo_appinfo_metadata_filter_create(pkgmgrinfo_appinfo_metadata_filter_h *handle)
4196 * @brief This API creates the application's metadata information filter handle from db.
4198 * @par This API is for package-manager client application
4199 * @par Sync (or) Async : Synchronous API
4201 * @param[out] handle pointer to the application metadata info filter handle.
4202 * @return 0 if success, error code(<0) if fail
4203 * @retval PMINFO_R_OK success
4204 * @retval PMINFO_R_EINVAL invalid argument
4205 * @retval PMINFO_R_ERROR internal error
4207 * @post pkgmgrinfo_appinfo_metadata_filter_destroy()
4208 * @see pkgmgrinfo_appinfo_metadata_filter_foreach()
4210 int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
4213 pkgmgrinfo_appinfo_get_appid(handle, &appid);
4214 printf("appid : %s\n", appid);
4218 static int get_app_list(const char *mkey, const char *mvalue)
4221 pkgmgrinfo_appinfo_metadata_filter_h handle;
4222 ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle);
4223 if (ret != PMINFO_R_OK)
4225 ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue);
4226 if (ret != PMINFO_R_OK) {
4227 pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
4230 ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL);
4231 if (ret != PMINFO_R_OK) {
4232 pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
4235 pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
4240 int pkgmgrinfo_appinfo_metadata_filter_create(pkgmgrinfo_appinfo_metadata_filter_h *handle);
4243 * @fn int pkgmgrinfo_appinfo_metadata_filter_destroy(pkgmgrinfo_appinfo_metadata_filter_h handle)
4244 * @brief This API destroys the application's metadata information filter handle.
4246 * @par This API is for package-manager client application
4247 * @par Sync (or) Async : Synchronous API
4249 * @param[in] handle pointer to the application metadata info filter handle.
4250 * @return 0 if success, error code(<0) if fail
4251 * @retval PMINFO_R_OK success
4252 * @retval PMINFO_R_EINVAL invalid argument
4253 * @retval PMINFO_R_ERROR internal error
4254 * @pre pkgmgrinfo_appinfo_metadata_filter_create()
4256 * @see pkgmgrinfo_appinfo_metadata_filter_foreach()
4258 int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
4261 pkgmgrinfo_appinfo_get_appid(handle, &appid);
4262 printf("appid : %s\n", appid);
4266 static int get_app_list(const char *mkey, const char *mvalue)
4269 pkgmgrinfo_appinfo_metadata_filter_h handle;
4270 ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle);
4271 if (ret != PMINFO_R_OK)
4273 ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue);
4274 if (ret != PMINFO_R_OK) {
4275 pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
4278 ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL);
4279 if (ret != PMINFO_R_OK) {
4280 pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
4283 pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
4288 int pkgmgrinfo_appinfo_metadata_filter_destroy(pkgmgrinfo_appinfo_metadata_filter_h handle);
4291 * @fn int pkgmgrinfo_appinfo_metadata_filter_add(pkgmgrinfo_appinfo_metadata_filter_h handle, const char *key, const char *value)
4292 * @brief This API adds filter condition for the query API. The query will search the entire application metadata information collected from
4293 * the manifest file of all the installed packages. You can specify value as NULL to search based on key only.
4295 * @par This API is for package-manager client application
4296 * @par Sync (or) Async : Synchronous API
4298 * @param[in] handle pointer to the application metadata info filter handle.
4299 * @param[in] key pointer to metadata key
4300 * @param[in] value pointer to metadata value
4301 * @return 0 if success, error code(<0) if fail
4302 * @retval PMINFO_R_OK success
4303 * @retval PMINFO_R_EINVAL invalid argument
4304 * @retval PMINFO_R_ERROR internal error
4305 * @pre pkgmgrinfo_appinfo_metadata_filter_create()
4306 * @post pkgmgrinfo_appinfo_metadata_filter_foreach(), pkgmgrinfo_appinfo_metadata_filter_destroy()
4307 * @see pkgmgrinfo_appinfo_metadata_filter_foreach()
4309 int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
4312 pkgmgrinfo_appinfo_get_appid(handle, &appid);
4313 printf("appid : %s\n", appid);
4317 static int get_app_list(const char *mkey, const char *mvalue)
4320 pkgmgrinfo_appinfo_metadata_filter_h handle;
4321 ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle);
4322 if (ret != PMINFO_R_OK)
4324 ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue);
4325 if (ret != PMINFO_R_OK) {
4326 pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
4329 ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL);
4330 if (ret != PMINFO_R_OK) {
4331 pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
4334 pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
4339 int pkgmgrinfo_appinfo_metadata_filter_add(pkgmgrinfo_appinfo_metadata_filter_h handle,
4340 const char *key, const char *value);
4343 * @fn int pkgmgrinfo_appinfo_metadata_filter_foreach(pkgmgrinfo_appinfo_metadata_filter_h handle, pkgmgrinfo_app_list_cb app_cb, void *user_data)
4344 * @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)
4345 * @brief This API executes the filter query. The query will search the entire application metadata information collected from
4346 * the manifest file of all the installed packages. For each application returned by the query, the callback will be called. If callback returns
4347 * negative value, no more callbacks will be called and API will return.
4349 * @par This API is for package-manager client application
4350 * @par Sync (or) Async : Synchronous API
4352 * @param[in] handle pointer to the application metadata info filter handle.
4353 * @param[in] app_cb function pointer to callback
4354 * @param[in] user_data pointer to user data
4355 * @param[in] uid the addressee user id of the instruction
4356 * @return 0 if success, error code(<0) if fail
4357 * @retval PMINFO_R_OK success
4358 * @retval PMINFO_R_EINVAL invalid argument
4359 * @retval PMINFO_R_ERROR internal error
4360 * @pre pkgmgrinfo_appinfo_metadata_filter_create()
4361 * @post pkgmgrinfo_appinfo_metadata_filter_destroy()
4363 int app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
4366 pkgmgrinfo_appinfo_get_appid(handle, &appid);
4367 printf("appid : %s\n", appid);
4371 static int get_app_list(const char *mkey, const char *mvalue)
4374 pkgmgrinfo_appinfo_metadata_filter_h handle;
4375 ret = pkgmgrinfo_appinfo_metadata_filter_create(&handle);
4376 if (ret != PMINFO_R_OK)
4378 ret = pkgmgrinfo_appinfo_metadata_filter_add(handle, mkey, mvalue);
4379 if (ret != PMINFO_R_OK) {
4380 pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
4383 ret = pkgmgrinfo_appinfo_metadata_filter_foreach(handle, app_list_cb, NULL);
4384 if (ret != PMINFO_R_OK) {
4385 pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
4388 pkgmgrinfo_appinfo_metadata_filter_destroy(handle);
4393 int pkgmgrinfo_appinfo_metadata_filter_foreach(pkgmgrinfo_appinfo_metadata_filter_h handle,
4394 pkgmgrinfo_app_list_cb app_cb, void *user_data);
4395 int pkgmgrinfo_appinfo_usr_metadata_filter_foreach(pkgmgrinfo_appinfo_metadata_filter_h handle,
4396 pkgmgrinfo_app_list_cb app_cb, void *user_data, uid_t uid);
4398 * @fn int pkgmgrinfo_pkginfo_create_certinfo(pkgmgrinfo_certinfo_h *handle)
4399 * @brief This API creates the package cert information handle to get data from db.
4401 * @par This API is for package-manager client application
4402 * @par Sync (or) Async : Synchronous API
4404 * @param[out] handle pointer to the package cert handle.
4405 * @return 0 if success, error code(<0) if fail
4406 * @retval PMINFO_R_OK success
4407 * @retval PMINFO_R_EINVAL invalid argument
4408 * @retval PMINFO_R_ERROR internal error
4410 * @post pkgmgrinfo_pkginfo_destroy_certinfo()
4411 * @see pkgmgrinfo_pkginfo_get_cert_value()
4412 * @see pkgmgrinfo_pkginfo_load_certinfo()
4414 static int get_cert_info(const char *pkgid)
4417 pkgmgrinfo_certinfo_h handle;
4418 char *auth_cert = NULL;
4419 ret = pkgmgrinfo_pkginfo_create_certinfo(&handle);
4420 if (ret != PMINFO_R_OK)
4422 ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle);
4423 if (ret != PMINFO_R_OK) {
4424 pkgmgrinfo_pkginfo_destroy_certinfo(handle);
4427 ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert);
4428 if (ret != PMINFO_R_OK) {
4429 pkgmgrinfo_pkginfo_destroy_certinfo(handle);
4432 printf("Author root certificate: %s\n", auth_root);
4433 pkgmgrinfo_pkginfo_destroy_certinfo(handle);
4438 int pkgmgrinfo_pkginfo_create_certinfo(pkgmgrinfo_certinfo_h *handle);
4441 * @fn int pkgmgrinfo_pkginfo_load_certinfo(const char *pkgid, pkgmgrinfo_certinfo_h handle)
4442 * @brief This API loads the package cert information handle with data from db.
4444 * @par This API is for package-manager client application
4445 * @par Sync (or) Async : Synchronous API
4447 * @param[in] pkgid pointer to the package ID.
4448 * @param[in] handle pointer to the package cert handle.
4449 * @return 0 if success, error code(<0) if fail
4450 * @retval PMINFO_R_OK success
4451 * @retval PMINFO_R_EINVAL invalid argument
4452 * @retval PMINFO_R_ERROR internal error
4453 * @pre pkgmgrinfo_pkginfo_create_certinfo()
4454 * @post pkgmgrinfo_pkginfo_destroy_certinfo()
4455 * @see pkgmgrinfo_pkginfo_get_cert_value()
4457 static int get_cert_info(const char *pkgid)
4460 pkgmgrinfo_certinfo_h handle;
4461 char *auth_cert = NULL;
4462 ret = pkgmgrinfo_pkginfo_create_certinfo(&handle);
4463 if (ret != PMINFO_R_OK)
4465 ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle);
4466 if (ret != PMINFO_R_OK) {
4467 pkgmgrinfo_pkginfo_destroy_certinfo(handle);
4470 ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert);
4471 if (ret != PMINFO_R_OK) {
4472 pkgmgrinfo_pkginfo_destroy_certinfo(handle);
4475 printf("Author root certificate: %s\n", auth_root);
4476 pkgmgrinfo_pkginfo_destroy_certinfo(handle);
4481 int pkgmgrinfo_pkginfo_load_certinfo(const char *pkgid, pkgmgrinfo_certinfo_h handle, uid_t uid);
4484 * @fn int pkgmgrinfo_pkginfo_get_cert_value(pkgmgrinfo_certinfo_h handle, pkgmgrinfo_cert_type cert_type, const char **cert_value)
4485 * @brief This API gets the package cert information from the handle
4487 * @par This API is for package-manager client application
4488 * @par Sync (or) Async : Synchronous API
4490 * @param[in] handle pointer to the package cert handle.
4491 * @param[in] cert_type certificate type
4492 * @param[out] cert_value pointer to hold certificate value
4493 * @return 0 if success, error code(<0) if fail
4494 * @retval PMINFO_R_OK success
4495 * @retval PMINFO_R_EINVAL invalid argument
4496 * @retval PMINFO_R_ERROR internal error
4497 * @pre pkgmgrinfo_pkginfo_create_certinfo()
4498 * @post pkgmgrinfo_pkginfo_destroy_certinfo()
4499 * @see pkgmgrinfo_pkginfo_load_certinfo()
4501 static int get_cert_info(const char *pkgid)
4504 pkgmgrinfo_certinfo_h handle;
4505 char *auth_cert = NULL;
4506 ret = pkgmgrinfo_pkginfo_create_certinfo(&handle);
4507 if (ret != PMINFO_R_OK)
4509 ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle);
4510 if (ret != PMINFO_R_OK) {
4511 pkgmgrinfo_pkginfo_destroy_certinfo(handle);
4514 ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert);
4515 if (ret != PMINFO_R_OK) {
4516 pkgmgrinfo_pkginfo_destroy_certinfo(handle);
4519 printf("Author root certificate: %s\n", auth_root);
4520 pkgmgrinfo_pkginfo_destroy_certinfo(handle);
4525 int pkgmgrinfo_pkginfo_get_cert_value(pkgmgrinfo_certinfo_h handle, pkgmgrinfo_cert_type cert_type, const char **cert_value);
4528 * @fn int pkgmgrinfo_pkginfo_destroy_certinfo(pkgmgrinfo_certinfo_h handle)
4529 * @brief This API destroys the package cert information handle freeing up all the resources
4531 * @par This API is for package-manager client application
4532 * @par Sync (or) Async : Synchronous API
4534 * @param[in] handle pointer to the package cert handle.
4535 * @return 0 if success, error code(<0) if fail
4536 * @retval PMINFO_R_OK success
4537 * @retval PMINFO_R_EINVAL invalid argument
4538 * @retval PMINFO_R_ERROR internal error
4539 * @pre pkgmgrinfo_pkginfo_create_certinfo()
4541 * @see pkgmgrinfo_pkginfo_load_certinfo()
4543 static int get_cert_info(const char *pkgid)
4546 pkgmgrinfo_certinfo_h handle;
4547 char *auth_cert = NULL;
4548 ret = pkgmgrinfo_pkginfo_create_certinfo(&handle);
4549 if (ret != PMINFO_R_OK)
4551 ret = pkgmgrinfo_pkginfo_load_certinfo(pkgid, handle);
4552 if (ret != PMINFO_R_OK) {
4553 pkgmgrinfo_pkginfo_destroy_certinfo(handle);
4556 ret = pkgmgrinfo_pkginfo_get_cert_value(handle, PMINFO_AUTHOR_ROOT_CERT, &auth_cert);
4557 if (ret != PMINFO_R_OK) {
4558 pkgmgrinfo_pkginfo_destroy_certinfo(handle);
4561 printf("Author root certificate: %s\n", auth_root);
4562 pkgmgrinfo_pkginfo_destroy_certinfo(handle);
4567 int pkgmgrinfo_pkginfo_destroy_certinfo(pkgmgrinfo_certinfo_h handle);
4570 * @fn int pkgmgrinfo_delete_certinfo(const char *pkgid)
4571 * @brief This API deletes the package cert information from DB
4573 * @par This API is for package-manager client application
4574 * @par Sync (or) Async : Synchronous API
4576 * @param[in] pkgid pointer to the package ID.
4577 * @return 0 if success, error code(<0) if fail
4578 * @retval PMINFO_R_OK success
4579 * @retval PMINFO_R_EINVAL invalid argument
4580 * @retval PMINFO_R_ERROR internal error
4584 static int delete_cert_info(const char *pkgid)
4587 ret = pkgmgrinfo_delete_certinfo(pkgid);
4588 if (ret != PMINFO_R_OK)
4594 int pkgmgrinfo_delete_certinfo(const char *pkgid);
4595 int pkgmgrinfo_delete_usr_certinfo(const char *pkgid, uid_t uid);
4597 * @fn int pkgmgrinfo_create_pkgdbinfo(const char *pkgid, pkgmgrinfo_pkgdbinfo_h *handle)
4598 * @fn int pkgmgrinfo_create_pkgusrdbinfo(const char *pkgid, pkgmgrinfo_pkgdbinfo_h *handle)
4599 * @brief This API creates the package db information handle to set data in db.
4601 * @par This API is for package-manager client application
4602 * @par Sync (or) Async : Synchronous API
4604 * @param[in] pkgid pointer to the package ID.
4605 * @param[in] uid the addressee user id of the instruction
4606 * @param[out] handle pointer to the package db info handle.
4607 * @return 0 if success, error code(<0) if fail
4608 * @retval PMINFO_R_OK success
4609 * @retval PMINFO_R_EINVAL invalid argument
4610 * @retval PMINFO_R_ERROR internal error
4612 * @post pkgmgrinfo_destroy_pkgdbinfo()
4613 * @see pkgmgrinfo_save_pkgdbinfo()
4614 * @see pkgmgrinfo_set_type_to_pkgdbinfo()
4616 static int set_pkg_in_db(const char *pkgid)
4619 pkgmgrinfo_pkgdbinfo_h handle;
4620 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
4621 if (ret != PMINFO_R_OK)
4623 ret = pkgmgrinfo_set_version_to_pkgdbinfo(handle, "0.0.1");
4624 if (ret != PMINFO_R_OK) {
4625 pkgmgrinfo_destroy_pkgdbinfo(handle);
4628 ret = pkgmgrinfo_save_pkgdbinfo(handle);
4629 if (ret != PMINFO_R_OK) {
4630 pkgmgrinfo_destroy_pkgdbinfo(handle);
4633 pkgmgrinfo_destroy_pkgdbinfo(handle);
4638 int pkgmgrinfo_create_pkgdbinfo(const char *pkgid, pkgmgrinfo_pkgdbinfo_h *handle);
4639 int pkgmgrinfo_create_pkgusrdbinfo(const char *pkgid, uid_t uid, pkgmgrinfo_pkgdbinfo_h *handle);
4642 * @fn int pkgmgrinfo_set_type_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *type)
4643 * @brief This API sets the package type in db handle
4645 * @par This API is for package-manager client application
4646 * @par Sync (or) Async : Synchronous API
4648 * @param[in] handle pointer to the pkgdbinfo handle.
4649 * @param[in] type pointer to the package type.
4650 * @return 0 if success, error code(<0) if fail
4651 * @retval PMINFO_R_OK success
4652 * @retval PMINFO_R_EINVAL invalid argument
4653 * @retval PMINFO_R_ERROR internal error
4654 * @pre pkgmgrinfo_create_pkgdbinfo()
4655 * @post pkgmgrinfo_destroy_pkgdbinfo()
4656 * @see pkgmgrinfo_save_pkgdbinfo()
4657 * @see pkgmgrinfo_set_version_to_pkgdbinfo()
4659 static int set_pkg_type_in_db(const char *pkgid)
4662 pkgmgrinfo_pkgdbinfo_h handle;
4663 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
4664 if (ret != PMINFO_R_OK)
4666 ret = pkgmgrinfo_set_type_to_pkgdbinfo(handle, "wgt");
4667 if (ret != PMINFO_R_OK) {
4668 pkgmgrinfo_destroy_pkgdbinfo(handle);
4671 ret = pkgmgrinfo_save_pkgdbinfo(handle);
4672 if (ret != PMINFO_R_OK) {
4673 pkgmgrinfo_destroy_pkgdbinfo(handle);
4676 pkgmgrinfo_destroy_pkgdbinfo(handle);
4681 int pkgmgrinfo_set_type_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *type);
4684 * @fn int pkgmgrinfo_set_version_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *version)
4685 * @brief This API sets the package version in db handle
4687 * @par This API is for package-manager client application
4688 * @par Sync (or) Async : Synchronous API
4690 * @param[in] handle pointer to the pkgdbinfo handle.
4691 * @param[in] version pointer to the package version
4692 * @return 0 if success, error code(<0) if fail
4693 * @retval PMINFO_R_OK success
4694 * @retval PMINFO_R_EINVAL invalid argument
4695 * @retval PMINFO_R_ERROR internal error
4696 * @pre pkgmgrinfo_create_pkgdbinfo()
4697 * @post pkgmgrinfo_destroy_pkgdbinfo()
4698 * @see pkgmgrinfo_save_pkgdbinfo()
4699 * @see pkgmgrinfo_set_type_to_pkgdbinfo()
4701 static int set_pkg_version_in_db(const char *pkgid)
4704 pkgmgrinfo_pkgdbinfo_h handle;
4705 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
4706 if (ret != PMINFO_R_OK)
4708 ret = pkgmgrinfo_set_version_to_pkgdbinfo(handle, "0.0.1");
4709 if (ret != PMINFO_R_OK) {
4710 pkgmgrinfo_destroy_pkgdbinfo(handle);
4713 ret = pkgmgrinfo_save_pkgdbinfo(handle);
4714 if (ret != PMINFO_R_OK) {
4715 pkgmgrinfo_destroy_pkgdbinfo(handle);
4718 pkgmgrinfo_destroy_pkgdbinfo(handle);
4723 int pkgmgrinfo_set_version_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *version);
4726 * @fn int pkgmgrinfo_set_install_location_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, INSTALL_LOCATION location)
4727 * @brief This API sets the package install location in db handle
4729 * @par This API is for package-manager client application
4730 * @par Sync (or) Async : Synchronous API
4732 * @param[in] handle pointer to the pkgdbinfo handle.
4733 * @param[in] location package install location
4734 * @return 0 if success, error code(<0) if fail
4735 * @retval PMINFO_R_OK success
4736 * @retval PMINFO_R_EINVAL invalid argument
4737 * @retval PMINFO_R_ERROR internal error
4738 * @pre pkgmgrinfo_create_pkgdbinfo()
4739 * @post pkgmgrinfo_destroy_pkgdbinfo()
4740 * @see pkgmgrinfo_save_pkgdbinfo()
4741 * @see pkgmgrinfo_set_type_to_pkgdbinfo()
4743 static int set_pkg_install_location_in_db(const char *pkgid)
4746 pkgmgrinfo_pkgdbinfo_h handle;
4747 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
4748 if (ret != PMINFO_R_OK)
4750 ret = pkgmgrinfo_set_install_location_to_pkgdbinfo(handle, INSTALL_INTERNAL);
4751 if (ret != PMINFO_R_OK) {
4752 pkgmgrinfo_destroy_pkgdbinfo(handle);
4755 ret = pkgmgrinfo_save_pkgdbinfo(handle);
4756 if (ret != PMINFO_R_OK) {
4757 pkgmgrinfo_destroy_pkgdbinfo(handle);
4760 pkgmgrinfo_destroy_pkgdbinfo(handle);
4765 int pkgmgrinfo_set_install_location_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, INSTALL_LOCATION location);
4768 * @fn int pkgmgrinfo_set_size_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *size)
4769 * @brief This API sets the package size in db handle
4771 * @par This API is for package-manager client application
4772 * @par Sync (or) Async : Synchronous API
4774 * @param[in] handle pointer to the pkgdbinfo handle.
4775 * @param[in] size pointer to the package size
4776 * @return 0 if success, error code(<0) if fail
4777 * @retval PMINFO_R_OK success
4778 * @retval PMINFO_R_EINVAL invalid argument
4779 * @retval PMINFO_R_ERROR internal error
4780 * @pre pkgmgrinfo_create_pkgdbinfo()
4781 * @post pkgmgrinfo_destroy_pkgdbinfo()
4782 * @see pkgmgrinfo_save_pkgdbinfo()
4783 * @see pkgmgrinfo_set_type_to_pkgdbinfo()
4785 static int set_pkg_size_in_db(const char *pkgid)
4788 pkgmgrinfo_pkgdbinfo_h handle;
4789 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
4790 if (ret != PMINFO_R_OK)
4792 ret = pkgmgrinfo_set_size_to_pkgdbinfo(handle, "15");
4793 if (ret != PMINFO_R_OK) {
4794 pkgmgrinfo_destroy_pkgdbinfo(handle);
4797 ret = pkgmgrinfo_save_pkgdbinfo(handle);
4798 if (ret != PMINFO_R_OK) {
4799 pkgmgrinfo_destroy_pkgdbinfo(handle);
4802 pkgmgrinfo_destroy_pkgdbinfo(handle);
4807 int pkgmgrinfo_set_size_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *size);
4810 * @fn int pkgmgrinfo_set_label_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *label, const char *locale)
4811 * @brief This API sets the package label in db handle
4813 * @par This API is for package-manager client application
4814 * @par Sync (or) Async : Synchronous API
4816 * @param[in] handle pointer to the pkgdbinfo handle.
4817 * @param[in] label pointer to the package label
4818 * @param[in] locale pointer to the locale
4819 * @return 0 if success, error code(<0) if fail
4820 * @retval PMINFO_R_OK success
4821 * @retval PMINFO_R_EINVAL invalid argument
4822 * @retval PMINFO_R_ERROR internal error
4823 * @pre pkgmgrinfo_create_pkgdbinfo()
4824 * @post pkgmgrinfo_destroy_pkgdbinfo()
4825 * @see pkgmgrinfo_save_pkgdbinfo()
4826 * @see pkgmgrinfo_set_type_to_pkgdbinfo()
4828 static int set_pkg_label_in_db(const char *pkgid)
4831 pkgmgrinfo_pkgdbinfo_h handle;
4832 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
4833 if (ret != PMINFO_R_OK)
4835 ret = pkgmgrinfo_set_label_to_pkgdbinfo(handle, "helloworld", "en-us");
4836 if (ret != PMINFO_R_OK) {
4837 pkgmgrinfo_destroy_pkgdbinfo(handle);
4840 ret = pkgmgrinfo_save_pkgdbinfo(handle);
4841 if (ret != PMINFO_R_OK) {
4842 pkgmgrinfo_destroy_pkgdbinfo(handle);
4845 pkgmgrinfo_destroy_pkgdbinfo(handle);
4850 int pkgmgrinfo_set_label_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *label, const char *locale);
4853 * @fn int pkgmgrinfo_set_icon_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *icon, const char *locale)
4854 * @brief This API sets the package icon in db handle
4856 * @par This API is for package-manager client application
4857 * @par Sync (or) Async : Synchronous API
4859 * @param[in] handle pointer to the pkgdbinfo handle.
4860 * @param[in] icon pointer to the package icon
4861 * @param[in] locale pointer to the locale
4862 * @return 0 if success, error code(<0) if fail
4863 * @retval PMINFO_R_OK success
4864 * @retval PMINFO_R_EINVAL invalid argument
4865 * @retval PMINFO_R_ERROR internal error
4866 * @pre pkgmgrinfo_create_pkgdbinfo()
4867 * @post pkgmgrinfo_destroy_pkgdbinfo()
4868 * @see pkgmgrinfo_save_pkgdbinfo()
4869 * @see pkgmgrinfo_set_type_to_pkgdbinfo()
4871 static int set_pkg_icon_in_db(const char *pkgid)
4874 pkgmgrinfo_pkgdbinfo_h handle;
4875 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
4876 if (ret != PMINFO_R_OK)
4878 ret = pkgmgrinfo_set_icon_to_pkgdbinfo(handle, "helloworld.png", "en-us");
4879 if (ret != PMINFO_R_OK) {
4880 pkgmgrinfo_destroy_pkgdbinfo(handle);
4883 ret = pkgmgrinfo_save_pkgdbinfo(handle);
4884 if (ret != PMINFO_R_OK) {
4885 pkgmgrinfo_destroy_pkgdbinfo(handle);
4888 pkgmgrinfo_destroy_pkgdbinfo(handle);
4893 int pkgmgrinfo_set_icon_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *icon, const char *locale);
4896 * @fn int pkgmgrinfo_set_description_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *description, const char *locale)
4897 * @brief This API sets the package description in db handle
4899 * @par This API is for package-manager client application
4900 * @par Sync (or) Async : Synchronous API
4902 * @param[in] handle pointer to the pkgdbinfo handle.
4903 * @param[in] description pointer to the package description
4904 * @param[in] locale pointer to the locale
4905 * @return 0 if success, error code(<0) if fail
4906 * @retval PMINFO_R_OK success
4907 * @retval PMINFO_R_EINVAL invalid argument
4908 * @retval PMINFO_R_ERROR internal error
4909 * @pre pkgmgrinfo_create_pkgdbinfo()
4910 * @post pkgmgrinfo_destroy_pkgdbinfo()
4911 * @see pkgmgrinfo_save_pkgdbinfo()
4912 * @see pkgmgrinfo_set_type_to_pkgdbinfo()
4914 static int set_pkg_description_in_db(const char *pkgid)
4917 pkgmgrinfo_pkgdbinfo_h handle;
4918 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
4919 if (ret != PMINFO_R_OK)
4921 ret = pkgmgrinfo_set_description_to_pkgdbinfo(handle, "helloworld application", "en-us");
4922 if (ret != PMINFO_R_OK) {
4923 pkgmgrinfo_destroy_pkgdbinfo(handle);
4926 ret = pkgmgrinfo_save_pkgdbinfo(handle);
4927 if (ret != PMINFO_R_OK) {
4928 pkgmgrinfo_destroy_pkgdbinfo(handle);
4931 pkgmgrinfo_destroy_pkgdbinfo(handle);
4936 int pkgmgrinfo_set_description_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *description, const char *locale);
4939 * @fn int pkgmgrinfo_set_author_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *author_name,
4940 const char *author_email, const char *author_href, const char *locale)
4941 * @brief This API sets the package author info in db handle
4943 * @par This API is for package-manager client application
4944 * @par Sync (or) Async : Synchronous API
4946 * @param[in] handle pointer to the pkgdbinfo handle.
4947 * @param[in] author_name pointer to the package author name
4948 * @param[in] author_email pointer to the package author email
4949 * @param[in] author_href pointer to the package author href
4950 * @param[in] locale pointer to the locale
4951 * @return 0 if success, error code(<0) if fail
4952 * @retval PMINFO_R_OK success
4953 * @retval PMINFO_R_EINVAL invalid argument
4954 * @retval PMINFO_R_ERROR internal error
4955 * @pre pkgmgrinfo_create_pkgdbinfo()
4956 * @post pkgmgrinfo_destroy_pkgdbinfo()
4957 * @see pkgmgrinfo_save_pkgdbinfo()
4958 * @see pkgmgrinfo_set_type_to_pkgdbinfo()
4960 static int set_pkg_author_in_db(const char *pkgid)
4963 pkgmgrinfo_pkgdbinfo_h handle;
4964 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
4965 if (ret != PMINFO_R_OK)
4967 ret = pkgmgrinfo_set_author_to_pkgdbinfo(handle, "John", "john@samsung.com", "www.samsung.com", "en-us");
4968 if (ret != PMINFO_R_OK) {
4969 pkgmgrinfo_destroy_pkgdbinfo(handle);
4972 ret = pkgmgrinfo_save_pkgdbinfo(handle);
4973 if (ret != PMINFO_R_OK) {
4974 pkgmgrinfo_destroy_pkgdbinfo(handle);
4977 pkgmgrinfo_destroy_pkgdbinfo(handle);
4982 int pkgmgrinfo_set_author_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, const char *author_name,
4983 const char *author_email, const char *author_href, const char *locale);
4986 * @fn int pkgmgrinfo_set_removable_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, int removable)
4987 * @brief This API sets the package 'removable' value in db handle
4989 * @par This API is for package-manager client application
4990 * @par Sync (or) Async : Synchronous API
4992 * @param[in] handle pointer to the pkgdbinfo handle.
4993 * @param[in] removable package removable value
4994 * @return 0 if success, error code(<0) if fail
4995 * @retval PMINFO_R_OK success
4996 * @retval PMINFO_R_EINVAL invalid argument
4997 * @retval PMINFO_R_ERROR internal error
4998 * @pre pkgmgrinfo_create_pkgdbinfo()
4999 * @post pkgmgrinfo_destroy_pkgdbinfo()
5000 * @see pkgmgrinfo_save_pkgdbinfo()
5001 * @see pkgmgrinfo_set_type_to_pkgdbinfo()
5003 static int set_pkg_removable_in_db(const char *pkgid)
5006 pkgmgrinfo_pkgdbinfo_h handle;
5007 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
5008 if (ret != PMINFO_R_OK)
5010 ret = pkgmgrinfo_set_removable_to_pkgdbinfo(handle, 1);
5011 if (ret != PMINFO_R_OK) {
5012 pkgmgrinfo_destroy_pkgdbinfo(handle);
5015 ret = pkgmgrinfo_save_pkgdbinfo(handle);
5016 if (ret != PMINFO_R_OK) {
5017 pkgmgrinfo_destroy_pkgdbinfo(handle);
5020 pkgmgrinfo_destroy_pkgdbinfo(handle);
5025 int pkgmgrinfo_set_removable_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, int removable);
5028 * @fn int pkgmgrinfo_set_preload_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, int preload)
5029 * @brief This API sets the package 'preload' value in db handle
5031 * @par This API is for package-manager client application
5032 * @par Sync (or) Async : Synchronous API
5034 * @param[in] handle pointer to the pkgdbinfo handle.
5035 * @param[in] preload package preload value
5036 * @return 0 if success, error code(<0) if fail
5037 * @retval PMINFO_R_OK success
5038 * @retval PMINFO_R_EINVAL invalid argument
5039 * @retval PMINFO_R_ERROR internal error
5040 * @pre pkgmgrinfo_create_pkgdbinfo()
5041 * @post pkgmgrinfo_destroy_pkgdbinfo()
5042 * @see pkgmgrinfo_save_pkgdbinfo()
5043 * @see pkgmgrinfo_set_type_to_pkgdbinfo()
5045 static int set_pkg_preload_in_db(const char *pkgid)
5048 pkgmgrinfo_pkgdbinfo_h handle;
5049 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
5050 if (ret != PMINFO_R_OK)
5052 ret = pkgmgrinfo_set_preload_to_pkgdbinfo(handle, 1);
5053 if (ret != PMINFO_R_OK) {
5054 pkgmgrinfo_destroy_pkgdbinfo(handle);
5057 ret = pkgmgrinfo_save_pkgdbinfo(handle);
5058 if (ret != PMINFO_R_OK) {
5059 pkgmgrinfo_destroy_pkgdbinfo(handle);
5062 pkgmgrinfo_destroy_pkgdbinfo(handle);
5067 int pkgmgrinfo_set_preload_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, int preload);
5070 * @fn int pkgmgrinfo_set_installed_storage_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, INSTALL_LOCATION location)
5071 * @brief This API sets the package 'installed_storage' value in db handle
5073 * @par This API is for package-manager client application
5074 * @par Sync (or) Async : Synchronous API
5076 * @param[in] handle pointer to the pkgdbinfo handle.
5077 * @param[in] location installed_storage value
5078 * @return 0 if success, error code(<0) if fail
5079 * @retval PMINFO_R_OK success
5080 * @retval PMINFO_R_EINVAL invalid argument
5081 * @retval PMINFO_R_ERROR internal error
5082 * @pre pkgmgrinfo_create_pkgdbinfo()
5083 * @post pkgmgrinfo_destroy_pkgdbinfo()
5084 * @see pkgmgrinfo_save_pkgdbinfo()
5086 static int set_pkg_installed_storage_in_db(const char *pkgid)
5089 pkgmgrinfo_pkgdbinfo_h handle;
5090 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
5091 if (ret != PMINFO_R_OK)
5093 ret = pkgmgrinfo_set_installed_storage_to_pkgdbinfo(handle, INSTALL_INTERNAL);
5094 if (ret != PMINFO_R_OK) {
5095 pkgmgrinfo_destroy_pkgdbinfo(handle);
5098 ret = pkgmgrinfo_save_pkgdbinfo(handle);
5099 if (ret != PMINFO_R_OK) {
5100 pkgmgrinfo_destroy_pkgdbinfo(handle);
5103 pkgmgrinfo_destroy_pkgdbinfo(handle);
5108 int pkgmgrinfo_set_installed_storage_to_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle, INSTALL_LOCATION location);
5111 * @fn int pkgmgrinfo_save_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle)
5112 * @fn int pkgmgrinfo_save_pkgdbusrinfo(pkgmgrinfo_pkgdbinfo_h handle, uid_t uid)
5113 * @brief This API saves all the information from the handle to the DB.
5115 * @par This API is for package-manager client application
5116 * @par Sync (or) Async : Synchronous API
5118 * @param[in] handle pointer to the package db info handle.
5119 * @param[in] uid the addressee user id of the instruction
5120 * @return 0 if success, error code(<0) if fail
5121 * @retval PMINFO_R_OK success
5122 * @retval PMINFO_R_EINVAL invalid argument
5123 * @retval PMINFO_R_ERROR internal error
5124 * @pre pkgmgrinfo_create_pkgdbinfo()
5125 * @post pkgmgrinfo_destroy_pkgdbinfo()
5126 * @see pkgmgrinfo_set_type_to_pkgdbinfo()
5128 static int set_pkg_in_db(const char *pkgid)
5131 pkgmgrinfo_pkgdbinfo_h handle;
5132 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
5133 if (ret != PMINFO_R_OK)
5135 ret = pkgmgrinfo_set_version_to_pkgdbinfo(handle, "0.0.1");
5136 if (ret != PMINFO_R_OK) {
5137 pkgmgrinfo_destroy_pkgdbinfo(handle);
5140 ret = pkgmgrinfo_save_pkgdbinfo(handle);
5141 if (ret != PMINFO_R_OK) {
5142 pkgmgrinfo_destroy_pkgdbinfo(handle);
5145 pkgmgrinfo_destroy_pkgdbinfo(handle);
5150 int pkgmgrinfo_save_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle);
5151 int pkgmgrinfo_save_pkgusrdbinfo(pkgmgrinfo_pkgdbinfo_h handle, uid_t uid);
5153 * @fn int pkgmgrinfo_destroy_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle)
5154 * @brief This API destroys the package db information handle freeing up all the resources
5156 * @par This API is for package-manager client application
5157 * @par Sync (or) Async : Synchronous API
5159 * @param[in] handle pointer to the package db info handle.
5160 * @return 0 if success, error code(<0) if fail
5161 * @retval PMINFO_R_OK success
5162 * @retval PMINFO_R_EINVAL invalid argument
5163 * @retval PMINFO_R_ERROR internal error
5164 * @pre pkgmgrinfo_create_pkgdbinfo()
5166 * @see pkgmgrinfo_save_pkgdbinfo()
5167 * @see pkgmgrinfo_set_type_to_pkgdbinfo()
5169 static int set_pkg_in_db(const char *pkgid)
5172 pkgmgrinfo_pkgdbinfo_h handle;
5173 ret = pkgmgrinfo_create_pkgdbinfo(pkgid, &handle);
5174 if (ret != PMINFO_R_OK)
5176 ret = pkgmgrinfo_set_version_to_pkgdbinfo(handle, "0.0.1");
5177 if (ret != PMINFO_R_OK) {
5178 pkgmgrinfo_destroy_pkgdbinfo(handle);
5181 ret = pkgmgrinfo_save_pkgdbinfo(handle);
5182 if (ret != PMINFO_R_OK) {
5183 pkgmgrinfo_destroy_pkgdbinfo(handle);
5186 pkgmgrinfo_destroy_pkgdbinfo(handle);
5191 int pkgmgrinfo_destroy_pkgdbinfo(pkgmgrinfo_pkgdbinfo_h handle);
5195 * @fn int pkgmgrinfo_create_certinfo_set_handle(pkgmgrinfo_instcertinfo_h *handle)
5196 * @brief This API creates the package cert information handle to set data in db.
5198 * @par This API is for package-manager client application
5199 * @par Sync (or) Async : Synchronous API
5201 * @param[out] handle pointer to the package cert handle.
5202 * @return 0 if success, error code(<0) if fail
5203 * @retval PMINFO_R_OK success
5204 * @retval PMINFO_R_EINVAL invalid argument
5205 * @retval PMINFO_R_ERROR internal error
5207 * @post pkgmgrinfo_destroy_certinfo_set_handle()
5208 * @see pkgmgrinfo_set_cert_value()
5209 * @see pkgmgrinfo_save_certinfo()
5211 static int set_cert_in_db(const char *pkgid)
5214 pkgmgrinfo_instcertinfo_h handle;
5215 ret = pkgmgrinfo_create_certinfo_set_handle(&handle);
5216 if (ret != PMINFO_R_OK)
5218 ret = pkgmgrinfo_set_cert_value(handle, PMINFO_SET_AUTHOR_ROOT_CERT, "author root certificate");
5219 if (ret != PMINFO_R_OK) {
5220 pkgmgrinfo_destroy_certinfo_set_handle(handle);
5223 ret = pkgmgrinfo_save_certinfo(pkgid, handle);
5224 if (ret != PMINFO_R_OK) {
5225 pkgmgrinfo_destroy_certinfo_set_handle(handle);
5228 pkgmgrinfo_destroy_certinfo_set_handle(handle);
5233 int pkgmgrinfo_create_certinfo_set_handle(pkgmgrinfo_instcertinfo_h *handle);
5236 * @fn int pkgmgrinfo_set_cert_value(pkgmgrinfo_instcertinfo_h handle, pkgmgrinfo_instcert_type cert_type, char *cert_value)
5237 * @brief This API sets the package cert information in the handle.
5239 * @par This API is for package-manager client application
5240 * @par Sync (or) Async : Synchronous API
5242 * @param[in] handle pointer to the package cert handle.
5243 * @param[in] cert_type certificate type.
5244 * @param[in] cert_value certificate value.
5245 * @return 0 if success, error code(<0) if fail
5246 * @retval PMINFO_R_OK success
5247 * @retval PMINFO_R_EINVAL invalid argument
5248 * @retval PMINFO_R_ERROR internal error
5249 * @pre pkgmgrinfo_create_certinfo_set_handle()
5250 * @post pkgmgrinfo_destroy_certinfo_set_handle()
5251 * @see pkgmgrinfo_save_certinfo()
5253 static int set_cert_in_db(const char *pkgid)
5256 pkgmgrinfo_instcertinfo_h handle;
5257 ret = pkgmgrinfo_create_certinfo_set_handle(&handle);
5258 if (ret != PMINFO_R_OK)
5260 ret = pkgmgrinfo_set_cert_value(handle, PMINFO_SET_AUTHOR_ROOT_CERT, "author root certificate");
5261 if (ret != PMINFO_R_OK) {
5262 pkgmgrinfo_destroy_certinfo_set_handle(handle);
5265 ret = pkgmgrinfo_save_certinfo(pkgid, handle);
5266 if (ret != PMINFO_R_OK) {
5267 pkgmgrinfo_destroy_certinfo_set_handle(handle);
5270 pkgmgrinfo_destroy_certinfo_set_handle(handle);
5275 int pkgmgrinfo_set_cert_value(pkgmgrinfo_instcertinfo_h handle, pkgmgrinfo_instcert_type cert_type, char *cert_value);
5278 * @fn int pkgmgrinfo_save_certinfo(const char *pkgid, pkgmgrinfo_instcertinfo_h handle)
5279 * @brief This API saves the package cert information in the DB.
5281 * @par This API is for package-manager client application
5282 * @par Sync (or) Async : Synchronous API
5284 * @param[in] pkgid pointer to the package ID.
5285 * @param[in] handle pointer to the package cert handle.
5286 * @return 0 if success, error code(<0) if fail
5287 * @retval PMINFO_R_OK success
5288 * @retval PMINFO_R_EINVAL invalid argument
5289 * @retval PMINFO_R_ERROR internal error
5290 * @pre pkgmgrinfo_create_certinfo_set_handle()
5291 * @post pkgmgrinfo_destroy_certinfo_set_handle()
5292 * @see pkgmgrinfo_save_certinfo()
5294 static int set_cert_in_db(const char *pkgid)
5297 pkgmgrinfo_instcertinfo_h handle;
5298 ret = pkgmgrinfo_create_certinfo_set_handle(&handle);
5299 if (ret != PMINFO_R_OK)
5301 ret = pkgmgrinfo_set_cert_value(handle, PMINFO_SET_AUTHOR_ROOT_CERT, "author root certificate");
5302 if (ret != PMINFO_R_OK) {
5303 pkgmgrinfo_destroy_certinfo_set_handle(handle);
5306 ret = pkgmgrinfo_save_certinfo(pkgid, handle);
5307 if (ret != PMINFO_R_OK) {
5308 pkgmgrinfo_destroy_certinfo_set_handle(handle);
5311 pkgmgrinfo_destroy_certinfo_set_handle(handle);
5316 int pkgmgrinfo_save_certinfo(const char *pkgid, pkgmgrinfo_instcertinfo_h handle, uid_t uid);
5319 * @fn int pkgmgrinfo_destroy_certinfo_set_handle(pkgmgrinfo_instcertinfo_h handle)
5320 * @brief This API destroys the package cert information handle freeing up all the resources.
5322 * @par This API is for package-manager client application
5323 * @par Sync (or) Async : Synchronous API
5325 * @param[in] handle pointer to the package cert handle.
5326 * @return 0 if success, error code(<0) if fail
5327 * @retval PMINFO_R_OK success
5328 * @retval PMINFO_R_EINVAL invalid argument
5329 * @retval PMINFO_R_ERROR internal error
5330 * @pre pkgmgrinfo_create_certinfo_set_handle()
5332 * @see pkgmgrinfo_save_certinfo()
5334 static int set_cert_in_db(const char *pkgid)
5337 pkgmgrinfo_instcertinfo_h handle;
5338 ret = pkgmgrinfo_create_certinfo_set_handle(&handle);
5339 if (ret != PMINFO_R_OK)
5341 ret = pkgmgrinfo_set_cert_value(handle, PMINFO_SET_AUTHOR_ROOT_CERT, "author root certificate");
5342 if (ret != PMINFO_R_OK) {
5343 pkgmgrinfo_destroy_certinfo_set_handle(handle);
5346 ret = pkgmgrinfo_save_certinfo(pkgid, handle);
5347 if (ret != PMINFO_R_OK) {
5348 pkgmgrinfo_destroy_certinfo_set_handle(handle);
5351 pkgmgrinfo_destroy_certinfo_set_handle(handle);
5356 int pkgmgrinfo_destroy_certinfo_set_handle(pkgmgrinfo_instcertinfo_h handle);
5359 * @fn int pkgmgrinfo_datacontrol_get_info(const char *providerid, const char * type, char **appid, char **access)
5360 * @brief This API gets the datacontrol info
5362 * @par This API is for package-manager client application
5363 * @par Sync (or) Async : Synchronous API
5365 * @param[in] providerid pointer to the providerid of dataconltrol.
5366 * @param[in] type pointer to the type of dataconltrol.
5367 * @param[out] appid pointer to hold appid, need to free after using
5368 * @param[out] access pointer to hold access, need to free after using
5369 * @return 0 if success, error code(<0) if fail
5370 * @retval PMINFO_R_OK success
5371 * @retval PMINFO_R_EINVAL invalid argument
5372 * @retval PMINFO_R_ERROR internal error
5375 int pkgmgrinfo_datacontrol_get_info(const char *providerid, const char * type, char **appid, char **access);
5378 * @fn int pkgmgrinfo_appinfo_is_guestmode_appstatus(pkgmgrinfo_appinfo_h handle, bool *status)
5379 * @brief This API gets the application 'guest mode visibility' value from the DB
5381 * @par This API is for package-manager client application
5382 * @par Sync (or) Async : Synchronous API
5384 * @param[in] handle pointer to application info handle
5385 * @param[out] status pointer to hold app guest mode visibility value
5386 * @return 0 if success, error code(<0) if fail
5387 * @retval PMINFO_R_OK success
5388 * @retval PMINFO_R_EINVAL invalid argument
5389 * @retval PMINFO_R_ERROR internal error
5390 * @pre pkgmgrinfo_appinfo_get_appinfo()
5391 * @post pkgmgrinfo_appinfo_destroy_appinfo()
5392 * @see pkgmgrinfo_appinfo_get_appid()
5393 * @see pkgmgrinfo_appinfo_is_multiple()
5395 static int get_app_guestmode_visibility(const char *appid)
5399 pkgmgrinfo_appinfo_h handle;
5400 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
5401 if (ret != PMINFO_R_OK)
5403 ret = pkgmgrinfo_appinfo_is_guestmode_visibility(handle, &status);
5404 if (ret != PMINFO_R_OK) {
5405 pkgmgrinfo_appinfo_destroy_appinfo(handle);
5408 printf("app guest mode visibility: %d\n", status);
5409 pkgmgrinfo_appinfo_destroy_appinfo(handle);
5414 int pkgmgrinfo_appinfo_is_guestmode_visibility(pkgmgrinfo_appinfo_h handle, bool *status);
5417 * @fn int pkgmgrinfo_appinfo_set_guestmode_visibility(pkgmgrinfo_appinfo_h handle, bool status)
5418 * @brief This API sets the application 'guest mode visibility' value in the DB
5420 * @par This API is for package-manager client application
5421 * @par Sync (or) Async : Synchronous API
5423 * @param[in] handle pointer to application info handle
5424 * @param[out] status app guest mode visibility value
5425 * @return 0 if success, error code(<0) if fail
5426 * @retval PMINFO_R_OK success
5427 * @retval PMINFO_R_EINVAL invalid argument
5428 * @retval PMINFO_R_ERROR internal error
5429 * @pre pkgmgrinfo_appinfo_get_appinfo()
5430 * @post pkgmgrinfo_appinfo_destroy_appinfo()
5431 * @see pkgmgrinfo_appinfo_get_appid()
5432 * @see pkgmgrinfo_appinfo_is_multiple()
5434 static int set_app_guestmode_visibility(const char *appid, bool value)
5437 pkgmgrinfo_appinfo_h handle;
5438 ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
5439 if (ret != PMINFO_R_OK)
5441 ret = pkgmgrinfo_appinfo_set_guestmode_visibility(handle, value);
5442 if (ret != PMINFO_R_OK) {
5443 pkgmgrinfo_appinfo_destroy_appinfo(handle);
5446 pkgmgrinfo_appinfo_destroy_appinfo(handle);
5451 int pkgmgrinfo_appinfo_set_guestmode_visibility(pkgmgrinfo_appinfo_h handle, bool status);
5452 int pkgmgrinfo_appinfo_set_usr_guestmode_visibility(pkgmgrinfo_appinfo_h handle, uid_t uid, bool status);
5454 * @pkgmgrinfo client API
5458 * @brief listening status type in pkgmgrinfo.
5460 #define PMINFO_CLIENT_STATUS_ALL 0x00
5461 #define PMINFO_CLIENT_STATUS_INSTALL 0x01
5462 #define PMINFO_CLIENT_STATUS_UNINSTALL 0x02
5463 #define PMINFO_CLIENT_STATUS_UPGRADE 0x04
5464 #define PMINFO_CLIENT_STATUS_MOVE 0x08
5465 #define PMINFO_CLIENT_STATUS_CLEAR_DATA 0x10
5466 #define PMINFO_CLIENT_STATUS_INSTALL_PROGRESS 0x20
5469 * @brief type definition.
5471 typedef void pkgmgrinfo_client;
5472 typedef int (*pkgmgrinfo_handler)(int req_id, const char *pkg_type,
5473 const char *pkgid, const char *key,
5474 const char *val, const void *pmsg, void *data);
5480 }pkgmgrinfo_client_type;
5483 * @brief This APIs provides pkgmgrinfo client listener
5485 pkgmgrinfo_client *pkgmgrinfo_client_new(pkgmgrinfo_client_type ctype);
5486 int pkgmgrinfo_client_set_status_type(pkgmgrinfo_client *pc, int status_type);
5487 int pkgmgrinfo_client_listen_status(pkgmgrinfo_client *pc, pkgmgrinfo_handler event_cb, void *data);
5488 int pkgmgrinfo_client_free(pkgmgrinfo_client *pc);
5489 int pkgmgrinfo_client_request_enable_external_pkg(char *pkgid);
5492 * @pkgmgrinfo client API end
5500 #endif /* __PKG_INFO_H__ */