Smack api is updated. (share folder, script)
authorDuyoung Jang <duyoung.jang@samsung.com>
Thu, 2 May 2013 01:57:46 +0000 (10:57 +0900)
committerDuyoung Jang <duyoung.jang@samsung.com>
Thu, 2 May 2013 01:57:46 +0000 (10:57 +0900)
Change-Id: I49f0bff52b71983f9d9574c30f95f537fdda5aa0
Signed-off-by: Duyoung Jang <duyoung.jang@samsung.com>
inc/InstallerDefs.h
src/Manager/PermissionManager.cpp
src/Manager/SmackManager.cpp
src/Manager/SmackManager.h

index 975fb5e..46c2cb1 100755 (executable)
@@ -23,7 +23,7 @@
 
 #include "InstallerUtil.h"
 
-#define OSP_INSTALLER_VERSION "version=[20130502.1]"
+#define OSP_INSTALLER_VERSION "version=[20130502.2]"
 
 #define DIR_BIN                                L"/bin"
 #define DIR_INFO                       L"/info"
index 6fbd18e..2cd3e23 100755 (executable)
@@ -104,7 +104,7 @@ PermissionManager::SetDirectory(InstallationContext* pContext)
                InstallerUtil::CreateSymlink(iconPath, destPath);
        }
        InstallerUtil::ChangeDirectoryPermission(destPath, PERM_BASE, false);
-       smackManager.AddLabelSharedDir(packageId, destPath);
+       smackManager.AddLabelDir(packageId, destPath);
 
        // appRoot/shared/data
        destPath = appRootPath + DIR_SHARED_DATA;
index b9e16f2..dc27e8b 100755 (executable)
@@ -134,7 +134,7 @@ SmackManager::AddLabelDir(const String& label, const String& dirPath, bool rootD
        std::unique_ptr<char[]> pRealPath(_StringConverter::CopyToCharArrayN(realPath));
        TryReturn(pRealPath, false, "pRealPath is null");
 
-       if (rootDirectory == true)
+       if ((rootDirectory == true) || (dirPath.Contains(L"/shared/res") == true))
        {
                res = AddLabelDir("_", pRealPath.get());
        }
@@ -180,22 +180,22 @@ SmackManager::AddLabelSharedDir(const PackageId& packageId, const String& dirPat
 
        if (dirPath.Contains(L"shared/data") == true)
        {
-               label = L"*";
+               //label = L"*";
 
-#if 0
-               if (__pContext->__isPreloaded == false)
-               {
+               //if (__pContext->__isPreloaded == false)
+               //{
                        label.Append("_shareddata");
                        AddSharedDirReaders(label);
-               }
-#endif
+               //}
 
                return true;
        }
+#if 0
        else if (dirPath.Contains(L"shared/res") == true)
        {
                label = L"_";
        }
+#endif
        else if (dirPath.Contains(L"shared/trusted") == true)
        {
                Sha1Hash hash;
@@ -277,6 +277,12 @@ SmackManager::AddSharedDirReaders(const Tizen::Base::String& label)
                {
                        PackageId packageId = pPackageInfo->GetId();
 
+                       if (packageId == __pContext->__packageId)
+                       {
+                               AppLog("packageId [%ls] is skipped.", packageId.GetPointer());
+                               continue;
+                       }
+
                        std::unique_ptr<char[]> pPackageId(_StringConverter::CopyToCharArrayN(packageId));
                        TryCatch(pPackageId, res = false, "pPackageId is null.");
 
@@ -292,7 +298,7 @@ SmackManager::AddSharedDirReaders(const Tizen::Base::String& label)
 CATCH:
        for (int i = 0; pList[i] != null; i++)
        {
-               // AppLog("delete Package - [%s]", pList[i]);
+               AppLog("delete Package - [%s]", pList[i]);
                delete[] pList[i];
         }
        delete[] pList;
@@ -359,79 +365,8 @@ SmackManager::EnablePermissions(const PackageId& packageId)
                delete[] pList;
        }
 
-       if ((__pContext->__isPreloaded == true) && (__pContext->__isUpdated == false))
-       {
-               String smackFile(L"/etc/smack/accesses2.d/");
-               smackFile.Append(packageId);
-               smackFile.Append(L"-temp.rule");
-
-               String smackContext(packageId);
-               smackContext.Append(L" all.rule include");
-
-               InstallerUtil::CreateInfoFile(smackFile, &smackContext);
-       }
-       else
-       {
-               String script("/usr/bin/smackload-app.sh");
-               bool exist = File::IsFileExist(script);
-               script.Append(L" ");
-               script.Append(packageId);
-
-               std::unique_ptr<char[]> pScript(_StringConverter::CopyToCharArrayN(script));
-               TryReturn(pScript, false, "pScript is null.");
-
-               if (exist == true)
-               {
-                       res = system(pScript.get());
-                       AppLog("[smack] system(%s), result = [%d]", pScript.get(), res);
-               }
-               else
-               {
-                       AppLog("[%ls] not found", script.GetPointer());
-               }
-       }
-
-       return true;
-}
-
 #if 0
-bool
-SmackManager::AddPermissions(const PackageId& packageId)
-{
-       if (__isSmackEnable == false)
-       {
-               return true;
-       }
-
-       TryReturn(__pContext, false, "__pContext is null");
-
-       int res = 0;
-
-       std::unique_ptr<char[]> pPackageId(_StringConverter::CopyToCharArrayN(packageId));
-       TryReturn(pPackageId, false, "pPackageId is null.");
-
-       int count = __pContext->__pPrivilegeList->GetCount();
-
-       const char** pList = new (std::nothrow) const char*[count+1];
-       TryReturn(pList, false, "pList is null.");
-
-       for (int i = 0; i < count; i++)
-       {
-               String* pPrivilege = dynamic_cast < String* >(__pContext->__pPrivilegeList->GetAt(i));
-               if (pPrivilege)
-               {
-                       char* pPrivilegeString = _StringConverter::CopyToCharArrayN(*pPrivilege);
-                       TryReturn(pPrivilegeString, false, "pPrivilegeString is null.");
-
-                       pList[i] = pPrivilegeString;
-               }
-        }
-
-       pList[count] = null;
-
-       res = AddPermissions(pPackageId.get(), pList);
-
-       if (__pContext->__isPreloaded == true)
+       if ((__pContext->__isPreloaded == true) && (__pContext->__isUpdated == false))
        {
                String smackFile(L"/etc/smack/accesses2.d/");
                smackFile.Append(packageId);
@@ -462,17 +397,10 @@ SmackManager::AddPermissions(const PackageId& packageId)
                        AppLog("[%ls] not found", script.GetPointer());
                }
        }
-
-       for (int i = 0; pList[i] != null; i++)
-       {
-               AppLog("delete Privilege - [%s]", pList[i]);
-               delete[] pList[i];
-        }
-       delete[] pList;
+#endif
 
        return true;
 }
-#endif
 
 bool
 SmackManager::RevokePermissions(const PackageId& packageId)
@@ -814,42 +742,3 @@ SmackManager::RegisterAv(const char* pPackageId)
        return ret;
 
 }
-
-#if 0
-int
-SmackManager::AddPermissions(const char* pPackageId, const char** ppPermissions)
-{
-       int ret = 0;
-       void* pHandle = null;
-       char* pErrorMsg = null;
-       int (*app_add_permissions)(const char*, const char**) = null;
-
-       pHandle = dlopen("libprivilege-control.so.0", RTLD_LAZY | RTLD_GLOBAL);
-       if (!pHandle)
-       {
-               AppLog("AddPermissions(): dlopen() failed. [%s][%s]", pPackageId, dlerror());
-               return -1;
-       }
-
-       app_add_permissions = reinterpret_cast <int (*)(const char*, const char**)>(dlsym(pHandle, "app_add_permissions"));
-       pErrorMsg = dlerror();
-       if ((pErrorMsg != null) || (app_add_permissions == null))
-       {
-               AppLog("AddPermissions(): dlsym() failed. [%s][%s]", pPackageId, pErrorMsg);
-               dlclose(pHandle);
-               return -1;
-       }
-
-       for (int i = 0; ppPermissions[i] != null; i++)
-       {
-               AppLog("Privilege - [%s]", ppPermissions[i]);
-        }
-
-       ret = app_add_permissions(pPackageId, ppPermissions);
-       AppLog("[smack] app_add_permissions(%s), result = [%d]", pPackageId, ret);
-
-       dlclose(pHandle);
-
-       return 0;
-}
-#endif
index d3fd9bf..0734cbc 100755 (executable)
@@ -43,7 +43,6 @@ public:
        bool AddFriend(const Tizen::App::PackageId& packageId1, const Tizen::App::PackageId& packageId2);
 
        bool EnablePermissions(const Tizen::App::PackageId& packageId);
-       //bool AddPermissions(const Tizen::App::PackageId& packageId);
        bool RevokePermissions(const Tizen::App::PackageId& packageId);
 
 private:
@@ -62,9 +61,6 @@ private:
 
        int RegisterAv(const char* pPackageId);
 
-       // deprecated
-       //int AddPermissions(const char* pPackageId, const char** ppPermissions);
-
 private:
        InstallationContext* __pContext;
        bool __isSmackEnable;