tizen 2.4 release
[framework/web/wrt-installer.git] / src / jobs / widget_uninstall / task_uninstall_ospsvc.cpp
 #include <widget_uninstall/widget_uninstall_errors.h>
 #include <dpl/wrt-dao-ro/global_config.h>
 #include <dpl/wrt-dao-ro/widget_dao_read_only.h>
-#include <installer_log.h>
+#include <dpl/log/secure_log.h>
+
+#if USE(CORE_HYBRID_PKG)
+#include <dpl/utils/wrt_utility.h>
+#endif
 
 using namespace WrtDB;
 
 namespace {
 const int MAX_BUF_SIZE = 128;
+
+#if USE(CORE_HYBRID_PKG)
+const char* CORE_UNINSTALL_STR = "/usr/etc/package-manager/backend/rpm -uv ";
+const char* const CORE_MANIFEST_XML = "tizen-manifest.xml";
+#else
 const char* OSP_INSTALL_STR = "/usr/etc/package-manager/backend/tpk -uv ";
+#endif
 }
 
 namespace Jobs {
@@ -55,8 +65,15 @@ void TaskUninstallOspsvc::StepUninstallOspsvc()
     _D("Step : Uninstall Osp service");
 
     std::ostringstream commStr;
-    commStr << OSP_INSTALL_STR << BashUtils::escape_arg(m_context.tzPkgid);
-    _D("osp uninstall command : %s", commStr.str().c_str());
+#if USE(CORE_HYBRID_PKG)
+    WidgetDAOReadOnly dao(WidgetDAOReadOnly::getTizenAppId(DPL::FromUTF8String(m_context.tzPkgid)));
+    std::string pkgPath = DPL::ToUTF8String(*dao.getWidgetInstalledPath());
+    if (bf::exists(bf::path(pkgPath + "/" + CORE_MANIFEST_XML)))
+        commStr << CORE_UNINSTALL_STR << BashUtils::escape_arg(m_context.tzPkgid);
+#else
+        commStr << OSP_INSTALL_STR << BashUtils::escape_arg(m_context.tzPkgid);
+#endif
+    _D("Hybrid uninstall command : %s", commStr.str().c_str());
 
     char readBuf[MAX_BUF_SIZE];
     FILE *fd;
@@ -94,12 +111,12 @@ void TaskUninstallOspsvc::StepUninstallOspsvc()
 
 void TaskUninstallOspsvc::StartStep()
 {
-    _D("--------- <TaskUninstallOspsvc> : START ----------");
+    LOGI("--------- <TaskUninstallOspsvc> : START ----------");
 }
 
 void TaskUninstallOspsvc::EndStep()
 {
-    _D("--------- <TaskUninstallOspsvc> : END ----------");
+    LOGI("--------- <TaskUninstallOspsvc> : END ----------");
 }
 } //namespace WidgetUninstall
 } //namespace Jobs