{ "./dev" },
{ "./etc" },
{ "./lib" },
- { "./media" },
{ "./mnt" },
{ "./opt/usr" },
{ "./opt/var/kdb/db" },
}
bool
-CompatibilityManager::FinalizeVirtualRoot(const String& rootPath)
+CompatibilityManager::FinalizeVirtualRoot(const String& rootPath, const PackageId& packageId)
{
int res = 0;
unsigned int i = 0;
{ "./cache" },
{ "./csa" },
{ "./data" },
+ { "./dev/pts" },
+ { "./dev/shm" },
{ "./dev" },
{ "./etc" },
+ { "./lib/modules" },
{ "./lib" },
{ "./media" },
{ "./mnt" },
- { "./opt" },
{ "./proc" },
{ "./run" },
{ "./sbin" },
{ "./smack" },
{ "./srv" },
+ { "./sys/fs/cgroup/systemd" },
+ { "./sys/fs/cgroup" },
{ "./sys" },
{ "./system" },
{ "./tmp" },
{ "./usr" },
- { "./var" }
+ { "./var/run" },
+ { "./var" },
+ { "./opt/usr" },
+ //{ "./opt/var/run" },
+ { "./opt/storage/sdcard" },
+ { "./opt" },
};
std::unique_ptr<char[]> pVirtualRootPath(_StringConverter::CopyToCharArrayN(destPath));
TryReturn((res == 0) || (errno == EINVAL) || (errno == ENOENT), false, "umount2() failed. (%d, %s), path = [%s]", errno, strerror(errno), mountPath[i].destPath);
}
+ std::unique_ptr<char[]> pPackageId(_StringConverter::CopyToCharArrayN(packageId));
+ TryReturn(pPackageId, false, "The memory is insufficient.");
+
+ char mountFlag[PATH_MAX] = {0, };
+ sprintf(mountFlag, "/tmp/osp-compat/mount/internal/%s", pPackageId.get());
+ res = unlink(mountFlag);
+ if ((res == -1) && (errno != ENOENT))
+ {
+ AppLog("unlink(%s) failed, errno: %d (%s)", mountFlag, errno, strerror(errno));
+ return false;
+ }
+
+ memset(mountFlag, 0, PATH_MAX);
+ sprintf(mountFlag, "/tmp/osp-compat/mount/external/%s", pPackageId.get());
+ res = unlink(mountFlag);
+ if ((res == -1) && (errno != ENOENT))
+ {
+ AppLog("unlink(%s) failed, errno: %d (%s)", mountFlag, errno, strerror(errno));
+ return false;
+ }
+
AppLog("[Tizen::Io] FinalizeVirtualRoot() succeeded, path: %ls", destPath.GetPointer());
return true;
}
{ "./Storagecard", 0705, false },
{ "./Storagecard/Media", 0000, false }, // mount from /opt/storage/sdcard
};
- struct _OspDir mediaDir[] =
- {
- { "/opt/usr/media/Images", 0777, false },
- { "/opt/usr/media/Sounds", 0777, false },
- { "/opt/usr/media/Videos", 0777, false },
- { "/opt/usr/media/Others", 0777, false }
- };
String ospCompatSharedPath = _EnvironmentImpl::GetOspCompatSharedPath();
String ospShareAppIdPath(L"share/");
return false;
}
- for (i = 0; i < sizeof(mediaDir) / sizeof(struct _OspDir); ++i)
- {
- ret = mkdir(mediaDir[i].path, mediaDir[i].mode);
- if (ret == -1 && errno != 17) // EEXIST
- {
- AppLog("mkdir() failed (%s), path: %s, mode: 0%o", strerror(errno), mediaDir[i].path, mediaDir[i].mode);
- return false;
- }
-
- ret = chown(mediaDir[i].path, 5000, 5000);
- TryReturn(ret == 0, false, "chown() failed (%d, %s), path: %s, uid: 5000, gid: 5000", errno, strerror(errno), mediaDir[i].path);
- }
-
String appSharedDataPath(rootPath);
appSharedDataPath.Append(L"/shared/data");