2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
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
9 // http://www.apache.org/licenses/LICENSE-2.0
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.
18 * @file InstallerDefs.h
21 #ifndef _INSTALLER_DEFS_H_
22 #define _INSTALLER_DEFS_H_
24 #define OSP_INSTALLER_VERSION "osp-installer version=20130107.3"
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"
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"
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"
47 #define SLP_FONT_PATH L"/opt/share/fonts"
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"
53 #define PACKAGE_NAME_RULE L"%ls.%s"
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"
62 #define SIGNATURE1_XML_FILE L"/signature1.xml"
63 #define AUTHOR_SIGNATURE_XML_FILE L"/author-signature.xml"
65 #define UISCALABILITY_INFO L"1 %ls %ls %ls"
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"
72 #define SUB_MODE_APPCONTROL_NAME L"_AppControl"
74 #define APP_OWNER_ID 5000
75 #define APP_GROUP_ID 5000
77 #define APPID_LENGTH 10
78 #define APP_DIR_LENGTH 20
80 #define TEST_ARG_COUNT 1
81 #define COMMAND_ARG_COUNT 3
83 #define DIR_OSP_APPLICATIONS_TEMP L"/opt/usr/apps/__@@osp_tmp@@__"
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"
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"
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)
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"
102 static const int BLOCK_SIZE = 4096;
104 #define OSP_INSTALLER "osp-installer"
108 #define AppLogTag(tag, ...) AppLogTagInternal(tag, "| |", 0, __VA_ARGS__)
111 enum InstallationSetStep
113 INSTALLER_STEP_REMOVE,
118 enum InstallationState
120 INSTALLER_STATE_READY,
121 INSTALLER_STATE_RUNNING,
125 enum InstallationStep
127 INSTALLER_STEP_NONE = 0,
129 INSTALLER_STEP_CHECK_SYSTEM,
130 INSTALLER_STEP_CHECK_PACKAGE,
132 INSTALLER_STEP_PARSE_MANIFEST,
133 INSTALLER_STEP_UNPACK,
134 INSTALLER_STEP_LICENSE,
135 INSTALLER_STEP_PARSE_SIGNATURE,
137 INSTALLER_STEP_INIT_UNINSTALL,
138 INSTALLER_STEP_UNINSTALL,
147 INSTALLER_TYPE_INSTALLER,
148 INSTALLER_TYPE_PACKAGE,
149 INSTALLER_TYPE_DIRECTORY,
150 INSTALLER_TYPE_GUEST,
151 INSTALLER_TYPE_PRELOADED,
153 INSTALLER_TYPE_RESTORATION,
159 REQUESTER_TYPE_NORMAL,
161 REQUESTER_TYPE_PRELOADED,
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,
188 INSTALLER_ERROR_INTEGRITY_FAILED,
189 INSTALLER_ERROR_UNMOUNT_FAILED
192 enum InstallerOperation
194 INSTALLER_OPERATION_INSTALL,
195 INSTALLER_OPERATION_UNINSTALL,
199 enum RootCertificateType
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,
212 INSTALLER_MODE_INSTALL = 1,
213 INSTALLER_MODE_UNINSTALL = 2,
214 INSTALLER_MODE_RECURSIVE_DIRECTORY_INSTALL = 3,
219 INSTALLER_PREFIX_TYPE_NONE,
220 INSTALLER_PREFIX_TYPE_ORG,
228 CATEGORY_TYPE_HOME_SCREEN,
229 CATEGORY_TYPE_LOCK_SCREEN,
233 #endif // _INSTALLER_DEFS_H_