Update smack script
authorDuyoung Jang <duyoung.jang@samsung.com>
Tue, 2 Apr 2013 06:01:42 +0000 (15:01 +0900)
committerDuyoung Jang <duyoung.jang@samsung.com>
Tue, 2 Apr 2013 06:01:42 +0000 (15:01 +0900)
Change-Id: I6be0b6c45571640dd1387d51d0d2008e5df8ec65
Signed-off-by: Duyoung Jang <duyoung.jang@samsung.com>
inc/InstallerDefs.h
src/Manager/SmackManager.cpp

index f9a4ce7..818c618 100755 (executable)
@@ -23,7 +23,7 @@
 
 #include "InstallerUtil.h"
 
-#define OSP_INSTALLER_VERSION "version=[20130331.1]"
+#define OSP_INSTALLER_VERSION "version=[20130402.1]"
 
 #define DIR_BIN                                L"/bin"
 #define DIR_INFO                       L"/info"
index c90739c..993ea5c 100755 (executable)
@@ -216,14 +216,37 @@ SmackManager::AddPermissions(const PackageId& packageId)
 
        res = AddPermissions(pPackageId.get(), pList);
 
-       String smackFile(L"/etc/smack/accesses2.d/");
-       smackFile.Append(packageId);
-       smackFile.Append(L"-temp.rule");
+       if (__pContext->__isPreloaded == true)
+       {
+               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);
 
-       String smackContext(packageId);
-       smackContext.Append(L" all.rule include");
+               std::unique_ptr<char[]> pScript(_StringConverter::CopyToCharArrayN(script));
+               TryReturn(pScript, false, "pScript is null.");
 
-       InstallerUtil::CreateInfoFile(smackFile, &smackContext);
+               if (exist == true)
+               {
+                       res = system(pScript.get());
+                       AppLog("[smack] system(%s), result = [%d]", pScript.get(), res);
+               }
+               else
+               {
+                       AppLog("[%ls] not found", script.GetPointer());
+               }
+       }
 
        for (int i = 0; pList[i] != null; i++)
        {