[filesystem] fix global app wgt path issue. 38/104538/3
authorjk.pu <jk.pu@samsung.com>
Tue, 13 Dec 2016 12:02:50 +0000 (21:02 +0900)
committerjk.pu <jk.pu@samsung.com>
Tue, 13 Dec 2016 12:39:22 +0000 (21:39 +0900)
issue: global app installed /opt/usr/globalapps/[app_install_path] , this path
is only readonly and app can't access this path. app data should be
inserted at /opt/usr/home/owner/apps_rw/[apps_install_path]

verifcation : filesystem tct has 1 fail
    FileSystemManager_resolve_wgt_private_tmp,this is wrt installer issue

Change-Id: I5ca883d9d4a132d3ba9f9251950f29f7ee4b7848
Signed-off-by: jk.pu <jk.pu@samsung.com>
src/common/current_application.cc

index 4f76330..2720182 100755 (executable)
@@ -18,6 +18,7 @@
 
 #include <app_manager.h>
 #include <package_manager.h>
+#include <app_common.h>
 #include <unistd.h>
 
 #include "common/logger.h"
@@ -108,31 +109,17 @@ std::string CurrentApplication::FetchPackageId() const {
 std::string CurrentApplication::FetchRoot() const {
   LoggerD("Enter");
 
-  if(package_id_.empty()) {
-    LoggerE("Can't get package id, no root path can be obtained");
+  char* path = nullptr;
+  path =  app_get_data_path();
+  if (nullptr == path) {
+    LoggerE("Can't get path from  app_get_data_path");
     return std::string();
   }
 
-  package_info_h pkg_info;
-  int err = package_info_create(package_id_.c_str(), &pkg_info);
-  if (PACKAGE_MANAGER_ERROR_NONE != err) {
-    LoggerE("Can't create package info handle from pkg (%s)", get_error_message(err));
-    return std::string();
-  }
-  SCOPE_EXIT {
-    package_info_destroy(pkg_info);
-  };
-
-  char* root = nullptr;
-  err = package_info_get_root_path(pkg_info, &root);
-  if (PACKAGE_MANAGER_ERROR_NONE != err || nullptr == root) {
-    LoggerE("Can't get root_ path from package info (%s)", get_error_message(err));
-    return std::string();
-  }
-
-  std::string ret(root);
-  free(root);
-
+  std::string ret(path);
+  free(path);
+  int index = ret.rfind("data");
+  ret = ret .substr(0, index-1);
   LoggerD("Exit");
   return ret;
 }