Apply changed security APIs 46/53346/2
authorJunghyun Yeon <jungh.yeon@samsung.com>
Fri, 4 Dec 2015 06:34:05 +0000 (15:34 +0900)
committerJunghyun Yeon <jungh.yeon@samsung.com>
Wed, 9 Dec 2015 10:47:27 +0000 (19:47 +0900)
now privilege-check will manage privilege mapping
instead of security-manager

Change-Id: I5d84dbfdccd9fd8a68123f6184bde3fbf8b20596
Signed-off-by: Junghyun Yeon <jungh.yeon@samsung.com>
src/common/step/step_privilege_compatibility.cc
src/wgt/wgt_installer.cc

index baef0bc..ae2ad5d 100644 (file)
@@ -5,7 +5,7 @@
 #include "common/step/step_privilege_compatibility.h"
 
 #include <pkgmgrinfo_basic.h>
-#include <security-manager.h>
+#include <privilege_manager.h>
 
 #include <cstdlib>
 #include <cstring>
@@ -38,32 +38,28 @@ bool TranslatePrivilegesForCompatibility(manifest_x* m) {
     return true;
   }
 
-  // prepare input structure
-  std::unique_ptr<const char*[]> input_privileges(
-      new const char*[g_list_length(m->privileges)]);
-  size_t input_size = 0;
-  for (const char* priv : GListRange<char*>(m->privileges)) {
-    input_privileges[input_size++] = priv;
-  }
-
   // get mapping
-  size_t output_size = 0;
-  char** output_privileges = nullptr;
-  if (security_manager_get_privileges_mapping(m->api_version, kPlatformVersion,
-      input_privileges.get(), input_size, &output_privileges, &output_size)
-      != SECURITY_MANAGER_SUCCESS) {
-    LOG(ERROR) << "security_manager_get_privileges_mapping failed";
+  GList* mapped_privilege_list;
+  bool is_webapp = (strncmp(m->type, "wgt", strlen("wgt")) == 0) ? true : false;
+  LOG(DEBUG) << "type = " << m->type;
+  if (privilege_manager_get_mapped_privilege_list(m->api_version,
+      is_webapp ? PRVMGR_PACKAGE_TYPE_WRT : PRVMGR_PACKAGE_TYPE_CORE,
+      m->privileges, &mapped_privilege_list) != PRVMGR_ERR_NONE) {
+    LOG(ERROR) << "privilege_manager_get_mapped_privilege_list failed";
+    return false;
+  } else if (mapped_privilege_list == NULL) {
+    LOG(ERROR) << "privilege_manager_get_mapped_privilege_list failed";
     return false;
   }
 
   // set pkgmgr new list
   g_list_free_full(m->privileges, free);
   m->privileges = nullptr;
-  for (size_t i = 0; i < output_size; ++i) {
-    m->privileges = g_list_append(m->privileges, strdup(output_privileges[i]));
+  for (GList* l = mapped_privilege_list; l != NULL; l = l->next) {
+    m->privileges = g_list_append(m->privileges, (char*)l->data);
   }
 
-  security_manager_privilege_mapping_free(output_privileges, output_size);
+  g_list_free_full(mapped_privilege_list, free);
   return true;
 }
 
index b3e53e1..31db6c4 100644 (file)
@@ -69,7 +69,6 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr)
       AddStep<ci::filesystem::StepUnzip>();
       AddStep<wgt::parse::StepParse>(true);
       AddStep<ci::security::StepCheckSignature>();
-      AddStep<wgt::security::StepAddDefaultPrivileges>();
       AddStep<ci::security::StepPrivilegeCompatibility>();
       AddStep<wgt::security::StepCheckSettingsLevel>();
       AddStep<wgt::encrypt::StepEncryptResources>();
@@ -89,7 +88,6 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr)
       AddStep<ci::filesystem::StepUnzip>();
       AddStep<wgt::parse::StepParse>(true);
       AddStep<ci::security::StepCheckSignature>();
-      AddStep<wgt::security::StepAddDefaultPrivileges>();
       AddStep<ci::security::StepPrivilegeCompatibility>();
       AddStep<wgt::security::StepCheckSettingsLevel>();
       AddStep<ci::security::StepCheckOldCertificate>();
@@ -138,7 +136,6 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr)
       AddStep<ci::filesystem::StepDeltaPatch>("res/wgt/");
       AddStep<wgt::parse::StepParse>(true);
       AddStep<ci::security::StepCheckSignature>();
-      AddStep<wgt::security::StepAddDefaultPrivileges>();
       AddStep<ci::security::StepPrivilegeCompatibility>();
       AddStep<wgt::security::StepCheckSettingsLevel>();
       AddStep<ci::security::StepCheckOldCertificate>();