4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Jayoun Lee <airjany@samsung.com>, Sewook Park <sewook7.park@samsung.com>,
7 * Jaeho Lee <jaeho81.lee@samsung.com>, Shobhit Srivastava <shobhit.s@samsung.com>
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
23 #ifndef _PKGMGR_SERVER_H_
24 #define _PKGMGR_SERVER_H_
26 #include <sys/types.h>
33 #define LOG_TAG "PKGMGR_SERVER"
36 #define ERR(fmt, args...) LOGE("[%s:%d] "fmt"\n", __func__, __LINE__, ##args)
40 #define DBG(fmt, args...) LOGD("[%s:%d] "fmt"\n", __func__, __LINE__, ##args)
44 #define INFO(fmt, args...) LOGI("[%s:%d] "fmt"\n", __func__, __LINE__, ##args)
47 #define CONF_FILE "/etc/package-manager/server/.config"
48 #define DESKTOP_FILE_DIRS "/usr/share/install-info/desktop.conf"
50 #define PKG_BACKEND "backend:"
51 #define PKG_CONF_PATH "/etc/package-manager/pkg_path.conf"
53 #define MAX_REQ_ID_LEN 256
54 #define MAX_PKG_TYPE_LEN 128
55 #define MAX_PKG_NAME_LEN 256
56 #define MAX_PKG_ARGS_LEN 4096
57 #define DESKTOP_FILE_DIRS_NUM 1024
60 PKGMGR_REQUEST_TYPE_INSTALL,
61 PKGMGR_REQUEST_TYPE_MOUNT_INSTALL,
62 PKGMGR_REQUEST_TYPE_REINSTALL,
63 PKGMGR_REQUEST_TYPE_UNINSTALL,
64 PKGMGR_REQUEST_TYPE_MOVE,
65 PKGMGR_REQUEST_TYPE_ENABLE_PKG,
66 PKGMGR_REQUEST_TYPE_DISABLE_PKG,
67 PKGMGR_REQUEST_TYPE_ENABLE_APP,
68 PKGMGR_REQUEST_TYPE_DISABLE_APP,
69 PKGMGR_REQUEST_TYPE_GETSIZE,
70 PKGMGR_REQUEST_TYPE_CLEARDATA,
71 PKGMGR_REQUEST_TYPE_CLEARCACHE,
72 PKGMGR_REQUEST_TYPE_ENABLE_GLOBAL_APP_FOR_UID,
73 PKGMGR_REQUEST_TYPE_DISABLE_GLOBAL_APP_FOR_UID,
74 PKGMGR_REQUEST_TYPE_KILL,
75 PKGMGR_REQUEST_TYPE_CHECK,
76 PKGMGR_REQUEST_TYPE_GENERATE_LICENSE_REQUEST,
77 PKGMGR_REQUEST_TYPE_REGISTER_LICENSE,
78 PKGMGR_REQUEST_TYPE_DECRYPT_PACKAGE,
79 PKGMGR_REQUEST_TYPE_ADD_BLACKLIST,
80 PKGMGR_REQUEST_TYPE_REMOVE_BLACKLIST,
81 PKGMGR_REQUEST_TYPE_CHECK_BLACKLIST,
82 PKGMGR_REQUEST_TYPE_ENABLE_APP_SPLASH_SCREEN,
83 PKGMGR_REQUEST_TYPE_DISABLE_APP_SPLASH_SCREEN,
84 PKGMGR_REQUEST_TYPE_SET_RESTRICTION_MODE,
85 PKGMGR_REQUEST_TYPE_UNSET_RESTRICTION_MODE,
86 PKGMGR_REQUEST_TYPE_GET_RESTRICTION_MODE,
90 char req_id[MAX_REQ_ID_LEN];
93 char pkg_type[MAX_PKG_TYPE_LEN];
94 char pkgid[MAX_PKG_NAME_LEN];
95 char appid[MAX_PKG_NAME_LEN];
96 char args[MAX_PKG_ARGS_LEN];
99 typedef struct backend_info_t {
102 char pkgtype[MAX_PKG_TYPE_LEN];
103 char pkgid[MAX_PKG_NAME_LEN];
104 char args[MAX_PKG_ARGS_LEN];
107 char *_get_backend_cmd(char *type);
109 gboolean queue_job(void *data);
110 int __return_value_to_caller(const char *req_key, GVariant *result);
111 int __init_request_handler(void);
112 void __fini_request_handler(void);
113 int __add_blacklist(uid_t uid, const char *pkgid);
114 int __remove_blacklist(uid_t uid, const char *pkgid);
115 int __check_blacklist(uid_t uid, const char *pkgid, int *result);
116 int __set_restriction_mode(uid_t uid, int mode);
117 int __unset_restriction_mode(uid_t uid, int mode);
118 int __get_restriction_mode(uid_t uid, int *result);
120 #endif/* _PKGMGR_SERVER_H_ */