f86f3ff6d97ac34d3d9d2fea433cd3126f4575be
[framework/osp/installer.git] / inc / InstallerDefs.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17 /**
18  * @file        InstallerDefs.h
19  */
20
21 #ifndef _INSTALLER_DEFS_H_
22 #define _INSTALLER_DEFS_H_
23
24 #define OSP_INSTALLER_VERSION "osp-installer version=20130107.3"
25
26 #define DIR_BIN                         L"/bin"
27 #define DIR_INFO                        L"/info"
28 #define DIR_RES                         L"/res"
29 #define DIR_DATA                        L"/data"
30 #define DIR_ICONS                       L"/icons"
31 #define DIR_SHARED                      L"/shared"
32 #define DIR_LIB                         L"/lib"
33 #define DIR_SETTING                     L"/setting"
34 #define DIR_CONTENTS            L"/contents"
35 #define DIR_SHARED_RES          L"/shared/res"
36
37 #define SLP_DIR_BIN                     L"/bin"
38 #define SLP_DIR_RES                     L"/res"
39 #define SLP_DIR_DATA            L"/data"
40 #define SLP_APP_PATH            L"/opt/apps"
41
42 #define PATH_OPT_APPS           L"/opt/apps"
43 #define PATH_USR_APPS           L"/usr/apps"
44 #define PATH_OPT_USR            L"/opt/usr"
45 #define PATH_OPT_USR_APPS       L"/opt/usr/apps"
46
47 #define SLP_FONT_PATH           L"/opt/share/fonts"
48
49 #define DIR_DESKTOP                                     L"/opt/share/applications/%S.desktop"
50 #define PACKAGE_NAME_PREFIX_ORG         L"org.tizen."
51 #define PACKAGE_NAME_RULE_ORG           L"org.tizen.%ls#%s"
52
53 #define PACKAGE_NAME_RULE                       L"%ls.%s"
54
55 #define FILE_EXT_INFO                           L"info"
56 #define VERSION_INFO_FILE                       L"/info/version.info"
57 #define UISCALABILITY_INFO_FILE         L"/info/uiscalability.info"
58 #define WEBSERVICE_INFO_FILE            L"/info/webservice.info"
59 #define TYPE_INFO_FILE                          L"/info/type.info"
60 #define PACKAGE_XML_FILE                        L"/info/manifest.xml"
61
62 #define SIGNATURE1_XML_FILE                     L"/signature1.xml"
63 #define AUTHOR_SIGNATURE_XML_FILE       L"/author-signature.xml"
64
65 #define UISCALABILITY_INFO                      L"1 %ls %ls %ls"
66
67 #define UIAPP_LOADER_PATH                       "/usr/lib/osp/osp-ui-app-loader"                        // UiApp
68 #define SERVICEAPP_LOADER_PATH          "/usr/lib/osp/osp-service-app-loader"           // ServiceApp
69 #define SYSTEMAPP_LOADER_PATH           "/usr/lib/osp/osp-system-service-loader"        // System Service
70 #define IME_PATH                                        "/opt/apps/scim/lib/scim-1.0/1.4.0/Helper"
71
72 #define SUB_MODE_APPCONTROL_NAME        L"_AppControl"
73
74 #define APP_OWNER_ID            5000
75 #define APP_GROUP_ID            5000
76
77 #define APPID_LENGTH            10
78 #define APP_DIR_LENGTH          20
79
80 #define TEST_ARG_COUNT          1
81 #define COMMAND_ARG_COUNT       3
82
83 #define DIR_OSP_APPLICATIONS_TEMP                               L"/opt/usr/apps/__@@osp_tmp@@__"
84
85 #define DIR_RO_PACKAGE_SYSTEM_MANIFEST                  L"/usr/share/packages/%ls.xml"
86 #define DIR_RW_PACKAGE_SYSTEM_MANIFEST                  L"/opt/share/packages/%ls.xml"
87
88 #define DIR_MEMORYCARD_OSP_APPLICATIONS                 L"/opt/storage/sdcard/apps"
89 #define DIR_MEMORYCARD_OSP_APPLICATIONS_TEMP    L"/opt/storage/sdcard/apps/__@@osp_tmp@@__"
90 #define DIR_MEMORYCARD_INSTALLATION                             L"/opt/storage/sdcard/installtosdcard"
91
92 #define PERM_BASE                                                               (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)         // 0644
93 #define PERM_EXECUTE                                                    (S_IXUSR | S_IXGRP | S_IXOTH)
94 #define PERM_WRITE                                                              (S_IWUSR | S_IWGRP | S_IWOTH)
95
96 #define TIZEN_PRIVILEGE_WEB_SERVICE                             "http://tizen.org/privilege/web.service"
97 #define TIZEN_CATEGORY_IME                                              "http://tizen.org/category/ime"
98 #define TIZEN_CATEGORY_HOMESCREEN                               "http://tizen.org/category/homescreen"
99 #define TIZEN_CATEGORY_LOCKSCREEN                               "http://tizen.org/category/lockscreen"
100 #define TIZEN_CATEGORY_MENUSCREEN                               "http://tizen.org/category/menuscreen"
101
102 static const int BLOCK_SIZE = 4096;
103
104 #define OSP_INSTALLER   "osp-installer"
105
106 #ifdef AppLogTag
107 #undef AppLogTag
108 #define AppLogTag(tag, ...)                                             AppLogTagInternal(tag, "|        |", 0, __VA_ARGS__)
109 #endif
110
111 enum InstallationSetStep
112 {
113         INSTALLER_STEP_REMOVE,
114         INSTALLER_STEP_SET,
115
116 };
117
118 enum InstallationState
119 {
120         INSTALLER_STATE_READY,
121         INSTALLER_STATE_RUNNING,
122
123 };
124
125 enum InstallationStep
126 {
127         INSTALLER_STEP_NONE = 0,
128         INSTALLER_STEP_INIT,
129         INSTALLER_STEP_CHECK_SYSTEM,
130         INSTALLER_STEP_CHECK_PACKAGE,
131         INSTALLER_STEP_DRM,
132         INSTALLER_STEP_PARSE_MANIFEST,
133         INSTALLER_STEP_UNPACK,
134         INSTALLER_STEP_LICENSE,
135         INSTALLER_STEP_PARSE_SIGNATURE,
136
137         INSTALLER_STEP_INIT_UNINSTALL,
138         INSTALLER_STEP_UNINSTALL,
139         INSTALLER_STEP_END,
140
141         INSTALLER_STEP_MAX,
142
143 };
144
145 enum InstallerType
146 {
147         INSTALLER_TYPE_INSTALLER,
148         INSTALLER_TYPE_PACKAGE,
149         INSTALLER_TYPE_DIRECTORY,
150         INSTALLER_TYPE_GUEST,
151         INSTALLER_TYPE_PRELOADED,
152         INSTALLER_TYPE_IDE,
153         INSTALLER_TYPE_RESTORATION,
154
155 };
156
157 enum RequesterType
158 {
159         REQUESTER_TYPE_NORMAL,
160         REQUESTER_TYPE_IDE,
161         REQUESTER_TYPE_PRELOADED,
162
163 };
164
165 enum InstallerError
166 {
167         INSTALLER_ERROR_NONE,
168         INSTALLER_ERROR_MEMORY,
169         INSTALLER_ERROR_INTERNAL_STATE,
170         INSTALLER_ERROR_DATABASE,
171         INSTALLER_ERROR_APP_COUNT_MAX,
172         INSTALLER_ERROR_OUT_OF_STORAGE,
173         INSTALLER_ERROR_INVALID_PACKAGE,
174         INSTALLER_ERROR_INVALID_MANIFEST,
175         INSTALLER_ERROR_INVALID_APPLICATION,
176         INSTALLER_ERROR_INVALID_SIGNATURE,
177         INSTALLER_ERROR_ICON_MAINMENU,
178         INSTALLER_ERROR_ICON_SETTING,
179         INSTALLER_ERROR_ICON_TICKER,
180         INSTALLER_ERROR_ICON_QUICKPANEL,
181         INSTALLER_ERROR_ICON_LAUNCHIMAGE,
182         INSTALLER_ERROR_PRIVILEGE,
183         INSTALLER_ERROR_USER_CANCEL,
184         INSTALLER_ERROR_CERT_CHAIN,
185         INSTALLER_ERROR_CERT_REVOKED,
186         INSTALLER_ERROR_CERT_ROOT,
187         INSTALLER_ERROR_DRM,
188         INSTALLER_ERROR_INTEGRITY_FAILED,
189         INSTALLER_ERROR_UNMOUNT_FAILED
190 };
191
192 enum InstallerOperation
193 {
194         INSTALLER_OPERATION_INSTALL,
195         INSTALLER_OPERATION_UNINSTALL,
196
197 };
198
199 enum RootCertificateType
200 {
201         ROOT_CERTIFICATE_NONE,
202         ROOT_CERTIFICATE_DEVELOPER,
203         ROOT_CERTIFICATE_PUBLIC,
204         ROOT_CERTIFICATE_PARTNER,
205         ROOT_CERTIFICATE_PARTNER_OPERATOR,
206         ROOT_CERTIFICATE_PARTNER_MANUFACTURER,
207
208 };
209
210 enum
211 {
212         INSTALLER_MODE_INSTALL = 1,
213         INSTALLER_MODE_UNINSTALL = 2,
214         INSTALLER_MODE_RECURSIVE_DIRECTORY_INSTALL = 3,
215 };
216
217 enum
218 {
219         INSTALLER_PREFIX_TYPE_NONE,
220         INSTALLER_PREFIX_TYPE_ORG,
221
222 };
223
224 enum CategoryType
225 {
226         CATEGORY_TYPE_NONE,
227         CATEGORY_TYPE_IME,
228         CATEGORY_TYPE_HOME_SCREEN,
229         CATEGORY_TYPE_LOCK_SCREEN,
230
231 };
232
233 #endif // _INSTALLER_DEFS_H_