Parse virtual root, symlink for apk
[platform/framework/native/installer.git] / inc / InstallerDefs.h
index 6ee4032..a4fa821 100755 (executable)
@@ -21,7 +21,9 @@
 #ifndef _INSTALLER_DEFS_H_
 #define _INSTALLER_DEFS_H_
 
-#define OSP_INSTALLER_VERSION "osp-installer version = 20130131.2"
+#include "InstallerUtil.h"
+
+#define OSP_INSTALLER_VERSION "version=[20130528.1]"
 
 #define DIR_BIN                                L"/bin"
 #define DIR_INFO                       L"/info"
@@ -33,6 +35,8 @@
 #define DIR_SETTING                    L"/setting"
 #define DIR_CONTENTS           L"/contents"
 #define DIR_SHARED_RES         L"/shared/res"
+#define DIR_SHARED_DATA                L"/shared/data"
+#define DIR_SHARED_TRUSTED     L"/shared/trusted"
 
 #define SLP_DIR_BIN                    L"/bin"
 #define SLP_DIR_RES                    L"/res"
@@ -55,6 +59,7 @@
 #define FILE_EXT_INFO                          L"info"
 #define VERSION_INFO_FILE                      L"/info/version.info"
 #define COMPAT_INFO_FILE                       L"/info/compat.info"
+#define VIRTUAL_ROOT_INFO_FILE         L"/info/virtualroot.info"
 #define UISCALABILITY_INFO_FILE                L"/info/uiscalability.info"
 #define WEBSERVICE_INFO_FILE           L"/info/webservice.info"
 #define TYPE_INFO_FILE                         L"/info/type.info"
 
 #define UISCALABILITY_INFO                     L"1 %ls %ls %ls"
 
+#define CONFIG_PATH                                    L"/usr/etc/installer-config.ini"
+
 #define UIAPP_LOADER_PATH                      "/usr/lib/osp/osp-ui-app-loader"                        // UiApp
 #define SERVICEAPP_LOADER_PATH         "/usr/lib/osp/osp-service-app-loader"           // ServiceApp
-#define SYSTEMAPP_LOADER_PATH          "/usr/lib/osp/osp-system-service-loader"        // System Service
+#define SYSTEMSERIVCE_LOADER_PATH      "/usr/lib/osp/osp-system-service-loader"        // System Service
 #define IME_PATH                                       "/opt/apps/scim/lib/scim-1.0/1.4.0/Helper"
 
 #define SUB_MODE_APPCONTROL_NAME       L"_AppControl"
 #define APP_OWNER_ID           5000
 #define APP_GROUP_ID           5000
 
-#define APPID_LENGTH           10
+#define PACKAGE_ID_LENGTH      10
 #define APP_DIR_LENGTH         20
 
 #define TEST_ARG_COUNT         1
 #define COMMAND_ARG_COUNT      3
+#define TERMINATE_RETRY_COUNT  300
 
 #define DIR_OSP_APPLICATIONS_TEMP                              L"/opt/usr/apps/__@@osp_tmp@@__"
+#define DIR_INSTALL_LOGS                                               L"/opt/usr/apps/logs"
 
 #define DIR_RO_PACKAGE_SYSTEM_MANIFEST                 L"/usr/share/packages/%ls.xml"
 #define DIR_RW_PACKAGE_SYSTEM_MANIFEST                 L"/opt/share/packages/%ls.xml"
 #define PERM_EXECUTE                                                   (S_IXUSR | S_IXGRP | S_IXOTH)
 #define PERM_WRITE                                                             (S_IWUSR | S_IWGRP | S_IWOTH)
 
+#define PERM_OWNER_ROOT                                                        0
+#define PERM_OWNER_APP                                                 1
+
+#define PERM_SMACK_0                                                   0
+#define PERM_SMACK_1                                                   1
+#define PERM_SMACK_2                                                   2
+#define PERM_SMACK_3                                                   3
+
 #define TIZEN_PRIVILEGE_WEB_SERVICE                            "http://tizen.org/privilege/web.service"
 #define TIZEN_CATEGORY_IME                                             "http://tizen.org/category/ime"
 #define TIZEN_CATEGORY_HOMESCREEN                              "http://tizen.org/category/homescreen"
 #define TIZEN_CATEGORY_LOCKSCREEN                              "http://tizen.org/category/lockscreen"
 #define TIZEN_CATEGORY_MENUSCREEN                              "http://tizen.org/category/menuscreen"
+#define TIZEN_CATEGORY_ANTIVIRUS                               "http://tizen.org/category/antivirus"
+
+// custom metadata
+#define METADATA_FONT                                                  L"http://developer.samsung.com/tizen/metadata/font"
+#define METADATA_SPLASH                                                        L"http://developer.samsung.com/tizen/metadata/splash"
+#define METADATA_SPLASH_INDICATOR_DISPLAY              L"http://developer.samsung.com/tizen/metadata/splash/indicatordisplay"
+#define METADATA_SPLASH_PORTRAIT                               L"http://developer.samsung.com/tizen/metadata/splash/portrait"
+#define METADATA_SPLASH_LANDSCAPE                              L"http://developer.samsung.com/tizen/metadata/splash/landscape"
+
+#define DIR_APPLICATIONS_TMP                                   "/opt/usr/apps/tmp"
+
+#define INSTALLER_RDS_FILE_NAME                                        ".rds_delta"
+#define INSTALLER_RDS_DELETE_STR                               "delete"
+#define INSTALLER_RDS_ADD_STR                                  "add"
+#define INSTALLER_RDS_MODIFY_STR                               "modify"
 
 static const int BLOCK_SIZE = 4096;
+static const int SIGNATURE_FILE_NUMBER_DISTRIBUTOR = 1;
+static const int SIGNATURE_FILE_NUMBER_DISTRIBUTOR2 = 2;
 
 #define OSP_INSTALLER  "osp-installer"
 
-#ifdef AppLogTag
-#undef AppLogTag
-#define AppLogTag(tag, ...)                                            AppLogTagInternal(tag, "        |", 0, __VA_ARGS__); \
-                                                                                               fprintf(stderr, "        |");fprintf(stderr, __VA_ARGS__);fprintf(stderr, "\n");
+#ifdef AppLog
+#undef AppLog
+#define AppLog(...)            AppLogTagInternal(OSP_INSTALLER, __PRETTY_FUNCTION__, __LINE__, __VA_ARGS__); \
+                                               InstallerUtil::AppendLog(__PRETTY_FUNCTION__, __LINE__, false, __VA_ARGS__);
 #endif
 
 #ifdef TryCatch
@@ -116,7 +150,7 @@ static const int BLOCK_SIZE = 4096;
        if (!(condition)) { \
                AppLogExceptionTag(OSP_INSTALLER, __VA_ARGS__); \
                expr; \
-               fprintf(stderr, "        |");fprintf(stderr, __VA_ARGS__);fprintf(stderr, "\n"); \
+               InstallerUtil::AppendLog(__PRETTY_FUNCTION__, __LINE__, true, __VA_ARGS__); \
                goto CATCH;     \
        } \
        else {;}
@@ -127,7 +161,7 @@ static const int BLOCK_SIZE = 4096;
 #define TryReturn(condition, returnValue, ...) \
        if (!(condition)) { \
                AppLogExceptionTag(OSP_INSTALLER, __VA_ARGS__); \
-               fprintf(stderr, "        |");fprintf(stderr, __VA_ARGS__);fprintf(stderr, "\n"); \
+               InstallerUtil::AppendLog(__PRETTY_FUNCTION__, __LINE__, true, __VA_ARGS__); \
                return returnValue;     \
        } \
        else {;}
@@ -151,10 +185,10 @@ enum InstallationStep
 {
        INSTALLER_STEP_NONE = 0,
        INSTALLER_STEP_INIT,
-       INSTALLER_STEP_CHECK_SYSTEM,
        INSTALLER_STEP_CHECK_PACKAGE,
        INSTALLER_STEP_DRM,
        INSTALLER_STEP_PARSE_MANIFEST,
+       INSTALLER_STEP_CHECK_SYSTEM,
        INSTALLER_STEP_UNPACK,
        INSTALLER_STEP_LICENSE,
        INSTALLER_STEP_PARSE_SIGNATURE,
@@ -163,6 +197,9 @@ enum InstallationStep
        INSTALLER_STEP_UNINSTALL,
        INSTALLER_STEP_END,
 
+       INSTALLER_STEP_RDS_INIT,
+       INSTALLER_STEP_RDS,
+
        INSTALLER_STEP_MAX,
 
 };
@@ -179,11 +216,18 @@ enum InstallerType
 
 };
 
-enum RequesterType
+enum InstallerOption
 {
-       REQUESTER_TYPE_NORMAL,
-       REQUESTER_TYPE_IDE,
-       REQUESTER_TYPE_PRELOADED,
+       INSTALLER_OPTION_NONE = 0,
+       INSTALLER_OPTION_NORMAL = 1,
+       INSTALLER_OPTION_IDE = 2,
+       INSTALLER_OPTION_PRELOADED = 4,
+       INSTALLER_OPTION_HYBRID = 8,
+       INSTALLER_OPTION_NO_INPUT = 16,
+       INSTALLER_OPTION_FILELOG_ON = 32,
+       INSTALLER_OPTION_UPDATE_STDOUT = 64,
+       INSTALLER_OPTION_CSC = 128,
+       INSTALLER_OPTION_RESET_PRELOADED = 256,
 
 };
 
@@ -220,32 +264,43 @@ enum InstallerOperation
 {
        INSTALLER_OPERATION_INSTALL,
        INSTALLER_OPERATION_UNINSTALL,
+       INSTALLER_OPERATION_REINSTALL,
 
 };
 
 enum RootCertificateType
 {
-       ROOT_CERTIFICATE_NONE,
+       ROOT_CERTIFICATE_NONE = 0,
        ROOT_CERTIFICATE_DEVELOPER,
        ROOT_CERTIFICATE_PUBLIC,
        ROOT_CERTIFICATE_PARTNER,
        ROOT_CERTIFICATE_PARTNER_OPERATOR,
        ROOT_CERTIFICATE_PARTNER_MANUFACTURER,
 
+       ROOT_CERTIFICATE_CERT_SVC_PUBLIC = (1 << 6),
+       ROOT_CERTIFICATE_CERT_SVC_PARTNER = (1 << 7),
+       ROOT_CERTIFICATE_CERT_SVC_PARTNER_OPERATOR = (1 << 8),
+       ROOT_CERTIFICATE_CERT_SVC_PARTNER_MANUFACTURER = (1 << 9),
+       ROOT_CERTIFICATE_CERT_SVC_PLATFORM = (1 << 10),
+
 };
 
-enum
+enum SignatureFileType
 {
-       INSTALLER_MODE_INSTALL = 1,
-       INSTALLER_MODE_UNINSTALL = 2,
-       INSTALLER_MODE_RECURSIVE_DIRECTORY_INSTALL = 3,
+       SIGNATURE_FILE_TYPE_NONE,
+       SIGNATURE_FILE_TYPE_AUTHOR,
+       SIGNATURE_FILE_TYPE_DISTRIBUTOR,
+       SIGNATURE_FILE_TYPE_DISTRIBUTOR2,
+
 };
 
 enum
 {
-       INSTALLER_PREFIX_TYPE_NONE,
-       INSTALLER_PREFIX_TYPE_ORG,
-
+       INSTALLER_MODE_INSTALL = 1,
+       INSTALLER_MODE_UNINSTALL = 2,
+       INSTALLER_MODE_RECURSIVE_DIRECTORY_INSTALL = 3,
+       INSTALLER_MODE_REINSTALL = 4,
+       INSTALLER_MODE_PARSE_CSC_STRING = 5,
 };
 
 enum CategoryType
@@ -257,4 +312,54 @@ enum CategoryType
 
 };
 
+enum InstallationStorage
+{
+       INSTALLATION_STORAGE_NONE,
+       INSTALLATION_STORAGE_INTERNAL,
+       INSTALLATION_STORAGE_EXTERNAL,
+
+};
+
+enum InstallerRdsState
+{
+       INSTALLER_RDS_STATE_NONE,
+       INSTALLER_RDS_STATE_DELETE,
+       INSTALLER_RDS_STATE_ADD,
+       INSTALLER_RDS_STATE_MODIFY,
+
+};
+
+typedef struct
+{
+       const char* pDir;
+       int dirType;
+       int ownerIndex;
+       int modeIndex;
+       int smackIndex;
+
+} RdsPermssions;
+
+enum PermDirType
+{
+       PERM_DIR_RES = 0,
+       PERM_DIR_DATA = 1,
+       PERM_DIR_BIN = 2,
+       PERM_DIR_INFO = 3,
+       PERM_DIR_LIB = 4,
+       PERM_DIR_SETTING = 5,
+       PERM_DIR_SHARED_RES = 6,
+       PERM_DIR_SHARED_DATA = 7,
+       PERM_DIR_SHARED_TRUSTED = 8,
+       PERM_DIR_SHARED = 9,
+       PERM_DIR_ROOT = 10,
+};
+
+enum PrivilegeLevel
+{
+       PRIVILEGE_LEVEL_PUBLIC,
+       PRIVILEGE_LEVEL_PARTNER,
+       PRIVILEGE_LEVEL_PLATFORM,
+
+};
+
 #endif // _INSTALLER_DEFS_H_