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());
}
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;
{
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.");
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;
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);
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)
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