#include <app_manager.h>
#include <package_manager.h>
+#include <app_common.h>
#include <unistd.h>
#include "common/logger.h"
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;
}