Modify appid to pkgid 20/90120/1
authorYunjin Lee <yunjin-.lee@samsung.com>
Wed, 28 Sep 2016 10:35:43 +0000 (19:35 +0900)
committerYunjin Lee <yunjin-.lee@samsung.com>
Wed, 28 Sep 2016 10:37:08 +0000 (19:37 +0900)
Change-Id: If215a0b7731537e2fbd8220ae1d5e4120f0bfcce
Signed-off-by: Yunjin Lee <yunjin-.lee@samsung.com>
common/include/common_utils.h
common/src/common_utils.c
ui/CMakeLists.txt
ui/include/privacy_setting.h [deleted file]
ui/include/privacy_view.h
ui/src/main_privacy_setting.c
ui/src/privacy_guard_list_view.c
ui/src/privacy_guard_package_list_view.c
ui/src/privacy_list_view.c
ui/src/privacy_menu_view.c
ui/src/privacy_package_list_view.c

index 0eace1fc2d60791e64f215a0d428fa97ce999b1c..ea010ffde05c5f4a6f9a767f0f7d7f1503454e1d 100644 (file)
 #define __UI_PRIVACY_SETTING_COMMON_UTILS_H_
 
 #include <Elementary.h>
+#include <ui-gadget.h>
+#include <ui-gadget-module.h>
+#include <glib.h>
+#include <app.h>
 #include <dlog.h>
 
-#include "privacy_setting.h"
-
 #ifdef LOG_TAG
 #undef LOG_TAG
 #endif
@@ -60,9 +62,23 @@ extern "C" {
                } \
        }
 
+typedef struct _app_data_s{
+       Evas_Object *parent_layout;
+       Evas_Object *win;
+       Evas_Object *conform;
+       Evas_Object *bg;
+       Evas_Object *layout;
+       Evas_Object *nf;
+       void *data;
+       Elm_Theme *theme;
+
+       GList *privacy_list;
+       char* privacy;
+} app_data_s;
+
 
 Evas_Object *common_genlist_add(Evas_Object *parent);
-Evas_Object *common_back_btn_add(struct app_data_s *ad);
+Evas_Object *common_back_btn_add(app_data_s *ad);
 
 #ifdef _cplusplus
 }
index 9acd88f449f67d58c710794331f1719ebb7cad18..11568c45048c192c0b78788ce717757e1d108e4a 100644 (file)
@@ -42,12 +42,12 @@ Evas_Object *common_genlist_add(Evas_Object *parent)
 
 static void back_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
 {
-       struct app_data_s *ad = (struct app_data_s *)data;
+       app_data_s *ad = (app_data_s *)data;
        return_if(!ad, , , "ad is null");
        elm_naviframe_item_pop(ad->nf);
 }
 
-Evas_Object *common_back_btn_add(struct app_data_s *ad)
+Evas_Object *common_back_btn_add(app_data_s *ad)
 {
        Evas_Object *btn = elm_button_add(ad->nf);
        elm_object_style_set(btn, "naviframe/back_btn/default");
index e7897391af9b9063bed19dcd3f0908c92e2ea6bb..1f4e2e0694c0cf0f53cab042336f60a003a42fbc 100755 (executable)
@@ -1,7 +1,7 @@
 INCLUDE(FindPkgConfig)
 SET(pkg_name "org.tizen.privacy-setting")
 
-pkg_check_modules(${pkg_name} REQUIRED glib-2.0 ui-gadget-1 evas elementary edje eina efl-extension security-privilege-manager icu-i18n dlog security-manager pkgmgr-info privacy-guard-client)
+pkg_check_modules(${pkg_name} REQUIRED glib-2.0 ui-gadget-1 evas elementary edje eina efl-extension security-privilege-manager dlog security-manager pkgmgr-info privacy-guard-client)
 
 SET(SRCS
        ${CMAKE_SOURCE_DIR}/common/src/common_utils.c
diff --git a/ui/include/privacy_setting.h b/ui/include/privacy_setting.h
deleted file mode 100755 (executable)
index b1809fe..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *    Licensed under the Apache License, Version 2.0 (the "License");
- *    you may not use this file except in compliance with the License.
- *    You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- */
-/*
- * @file        privacy_setting.h
- * @author      Yunjin Lee <yunjin-.lee@samsung.com>
- * @version     1.0
- * @brief
- */
-
-#ifndef __UI_PRIVACY_SETTING_H__
-#define __UI_PRIVACY_SETTING_H__
-
-#include <Elementary.h>
-#include <ui-gadget.h>
-#include <ui-gadget-module.h>
-#include <glib.h>
-#include <app.h>
-
-#define PRIVACY_MENU_SETTING "IDS_ST_HEADER_PRIVACY_SETTINGS_ABB"
-#define PRIVACY_MENU_ACCESS "Privacy Access"
-
-struct app_data_s {
-       Evas_Object *parent_layout;
-       Evas_Object *win;
-       Evas_Object *conform;
-       Evas_Object *bg;
-       Evas_Object *layout;
-       Evas_Object *nf;
-       void *data;
-       Elm_Theme *theme;
-
-       GList *privacy_list;
-       char* privacy;
-};
-
-struct app_data_s *get_app_data();
-
-#endif /* __UI_PRIVACY_SETTING_H__ */
index 484d5714bdf5597ba448a0ce427ff712d1a21a06..be56604ecbd6d5df70b02dc4287b9bd609969e46 100755 (executable)
 #include <glib.h>
 #include <app.h>
 
-#include "privacy_setting.h"
+#include "common_utils.h"
+
+#define PRIVACY_MENU_SETTING "IDS_ST_HEADER_PRIVACY_SETTINGS_ABB"
+#define PRIVACY_MENU_ACCESS "Privacy Access"
 
 typedef struct {
        char* pkgid;
        char* label;
        char* icon;
-       GList* applist;
        GList* privlist;
        bool change; /* toggle */
        bool status; /* original status */
        bool is_global;
 } pkg_data_s;
 
-typedef struct item_data {
+typedef struct {
        int index;
        char *title;
        char *pkgid;
@@ -67,13 +69,13 @@ typedef struct {
        bool status;
 } pg_item_data_s;
 
-void create_privacy_package_list_view(struct app_data_s *ad);
+void create_privacy_package_list_view(app_data_s *ad);
 
-void create_privacy_list_view(struct app_data_s *ad);
+void create_privacy_list_view(app_data_s *ad);
 
-void create_privacy_menu_view(struct app_data_s *ad);
+void create_privacy_menu_view(app_data_s *ad);
 
-void create_privacy_guard_list_view(struct app_data_s *ad);
+void create_privacy_guard_list_view(app_data_s *ad);
 
-void create_privacy_guard_package_list_view(struct app_data_s *ad);
+void create_privacy_guard_package_list_view(app_data_s *ad);
 
index 8d29a63f5e1d5502a46899f917b169dd2208ec3e..34d9d45c1cc62857760bba0b166a12a87316b8d1 100644 (file)
@@ -27,7 +27,6 @@
 
 #include "common_utils.h"
 
-#include "privacy_setting.h"
 #include "privacy_view.h"
 
 static void win_delete_request_cb(void *data, Evas_Object * obj, void *event_info)
@@ -37,7 +36,7 @@ static void win_delete_request_cb(void *data, Evas_Object * obj, void *event_inf
 
 static void app_start(void* data)
 {
-       struct app_data_s* ad = (struct app_data_s*)data;
+       app_data_s* ad = (app_data_s*)data;
 
        /* Add conformant to window */
        ad->conform = elm_conformant_add(ad->win);
@@ -69,7 +68,7 @@ static void app_start(void* data)
 
 static bool app_create(void * data)
 {
-       struct app_data_s *ad = (struct app_data_s*)data;
+       app_data_s *ad = (app_data_s*)data;
 
        elm_app_base_scale_set(1.8);
 
@@ -118,7 +117,7 @@ static void ui_app_lang_changed(app_event_info_h event_info, void *user_data)
 
 int main(int argc, char *argv[])
 {
-       struct app_data_s ad = {0, };
+       app_data_s ad = {0, };
        int ret = 0;
 
        ui_app_lifecycle_callback_s event_callback = {0, };
index d3416887c328733d9a48d5ae3c39ea6d6c61a0d2..f08c08da0393ac28b9e301b627ec6cff53433e7e 100755 (executable)
@@ -22,7 +22,6 @@
 
 #include <efl_extension.h>
 #include "common_utils.h"
-#include "privacy_setting.h"
 #include "privacy_view.h"
 #include "privilege_info.h"
 
@@ -50,7 +49,7 @@ static void _privacy_selected_cb(void *data, Evas_Object *obj, void *event_info)
        /* Unhighlight selected item */
        elm_genlist_item_selected_set(ei, EINA_FALSE);
 
-       struct app_data_s *ad = (struct app_data_s *)data;
+       app_data_s *ad = (app_data_s *)data;
        return_if(ad == NULL, , , "ad is null");
 
        ad->privacy = (char*)selected_id->privacy;
@@ -59,7 +58,7 @@ static void _privacy_selected_cb(void *data, Evas_Object *obj, void *event_info)
 }
 
 /*Privacy List*/
-void create_privacy_guard_list_view(struct app_data_s *ad)
+void create_privacy_guard_list_view(app_data_s *ad)
 {
        Evas_Object *genlist = common_genlist_add(ad->nf);
 
index b91de08e1e5b0b5d8ad8e5caf66814caa20605b8..62290fe00e903a58adb53f950d5c92986a1698bf 100755 (executable)
@@ -27,7 +27,6 @@
 #include <tzplatform_config.h>
 #include <privacy_guard_client.h>
 #include "common_utils.h"
-#include "privacy_setting.h"
 #include "privacy_view.h"
 
 #define DEFAULT_ICON_PATH _TZ_SYS_RO_APP"/org.tizen.privacy-setting/res/icon/default.png"
@@ -136,8 +135,7 @@ static bool _privacy_package_info_cb(const char *package_id, const int count, co
        return true;
 }
 
-void create_privacy_guard_package_list_view(struct app_data_s* ad)
-
+void create_privacy_guard_package_list_view(app_data_s* ad)
 {
        /* Add genlist */
        Evas_Object *genlist = common_genlist_add(ad->nf);
index 88d73e5e603161c0f04af5f39c989dd6475c9276..9660fd8320bc297d7fc85e9d481c437557e56680 100644 (file)
@@ -23,7 +23,6 @@
 #include <efl_extension.h>
 
 #include "common_utils.h"
-#include "privacy_setting.h"
 #include "privacy_view.h"
 #include "privilege_info.h"
 
@@ -51,7 +50,7 @@ static void privacy_selected_cb(void *data, Evas_Object *obj, void *event_info)
        /* Unhighlight selected item */
        elm_genlist_item_selected_set(ei, EINA_FALSE);
 
-       struct app_data_s *ad = (struct app_data_s *)data;
+       app_data_s *ad = (app_data_s *)data;
        return_if(ad == NULL, , , "ad is null");
 
        ad->privacy = (char*)selected_id->privacy;
@@ -60,7 +59,7 @@ static void privacy_selected_cb(void *data, Evas_Object *obj, void *event_info)
 }
 
 /*Privacy List*/
-void create_privacy_list_view(struct app_data_s *ad)
+void create_privacy_list_view(app_data_s *ad)
 {
        Evas_Object *genlist = common_genlist_add(ad->nf);
 
index 1fa5e84717827c6d925e056cd75e940fc00a4338..2197d9289d33078ad9782dd63426cb1cc610806e 100755 (executable)
 #include <glib.h>
 
 #include "common_utils.h"
-#include "privacy_setting.h"
 #include "privacy_view.h"
 
 GList *privacy_menu_list;
 
 static Eina_Bool quit_cb(void *data, Elm_Object_Item *it)
 {
-       struct app_data_s* ad = (struct app_data_s*)data;
+       app_data_s* ad = (app_data_s*)data;
        return_if(!ad, , EINA_FALSE, "ad is null");
        ui_app_exit();
 
@@ -64,7 +63,7 @@ static void menu_selected_cb(void *data, Evas_Object *obj, void *event_info)
        /* Unhighlight selected item */
        elm_genlist_item_selected_set(ei, EINA_FALSE);
 
-       struct app_data_s *ad = (struct app_data_s *)data;
+       app_data_s *ad = (app_data_s *)data;
        return_if(ad == NULL, , , "ad is null");
 
        int ret = privilege_info_get_privacy_list(&(ad->privacy_list));
@@ -80,7 +79,7 @@ static void menu_selected_cb(void *data, Evas_Object *obj, void *event_info)
 }
 
 /*Privacy Menu List*/
-void create_privacy_menu_view(struct app_data_s *ad)
+void create_privacy_menu_view(app_data_s *ad)
 {
        Evas_Object *genlist = common_genlist_add(ad->nf);
 
index c068167851c5c3fafbf7441d779a6f3295f134df..82aa853404a489a520a7759faddfb0fb9a7f752a 100644 (file)
@@ -28,7 +28,6 @@
 #include <tzplatform_config.h>
 
 #include "common_utils.h"
-#include "privacy_setting.h"
 #include "privacy_view.h"
 
 static GList* pkg_list;
@@ -40,8 +39,6 @@ Evas_Object *save_btn;
 bool first;
 
 #define DEFAULT_ICON_PATH _TZ_SYS_RO_APP"/org.tizen.privacy-setting/res/icon/default.png"
-#define UIDMAXLEN 10
-#define GLOBAL_UID tzplatform_getuid(TZ_SYS_GLOBALAPP_USER)
 
 static void gl_del_cb(void *data, Evas_Object *obj)
 {
@@ -116,61 +113,50 @@ static void privacy_package_selected_cb(void *data, Evas_Object *obj, void *even
 static void __get_package_privacy_status(pkg_data_s* pkg_data, char* privilege_name)
 {
        GList* l;
-       char uid[UIDMAXLEN];
-       if (pkg_data->is_global)
-               snprintf(uid, UIDMAXLEN, "%d", GLOBAL_UID);
-       else
-               snprintf(uid, UIDMAXLEN, "%d", getuid());
-
-       for (l = pkg_data->applist; l != NULL; l = l->next) {
-               char* appid = (char*)l->data;
-
-               /* Make policy filter to get specific uid, appid and privilege's status */
-               policy_entry* p_filter;
-               int ret = 0;
-               ret = security_manager_policy_entry_new(&p_filter);
-               log_if(ret != SECURITY_MANAGER_SUCCESS, 1, "security_manager_policy_entry_new failed. ret = %s", ret);
-               log_if(p_filter == NULL, 1, "security_manager_policy_entry_new failed failed. creation of new policy entry did not allocate memory");
-               ret = security_manager_policy_entry_set_application(p_filter, appid);
-               log_if(ret != SECURITY_MANAGER_SUCCESS, 1, "security_manager_policy_entry_set_application failed. ret = %d", ret);
-
-               /* TBD: Remove set user part becuase there's no notion of global app's policy changes. User update their own app's policy only.
-               ret = security_manager_policy_entry_set_user(p_filter, uid);
-               log_if(ret != SECURITY_MANAGER_SUCCESS, 1, "security_manager_policy_entry_set_user failed. ret = %d", ret); */
-               security_manager_policy_entry_set_privilege(p_filter, privilege_name);
-               log_if(ret != SECURITY_MANAGER_SUCCESS, 1, "security_manager_policy_entry_set_privilege failed. ret = %d", ret);
-
-               /* Get policy filtered by p_filter */
-               policy_entry **pp_policy = NULL;
-               size_t pp_policy_size = 0;
-               ret = security_manager_get_policy(p_filter, &pp_policy, &pp_policy_size);
-               log_if(ret != SECURITY_MANAGER_SUCCESS || pp_policy_size <= 0, 1, "security_manager_get_policy failed. ret = %d, pp_policy_size = %d", ret, pp_policy_size);
-
-               /* Get level from policy */
-               unsigned int i = 0;
-               for (i = 0; i < pp_policy_size; ++i) {
-                       char* result = (char*)security_manager_policy_entry_get_level(pp_policy[i]);
-                       log_if(result == NULL, 1, "security_manager_policy_entry_get_level failed. No policy is declared for pkgid: %s, uid: %s, appid: %s, privilege: %s", pkg_data->pkgid, uid, appid, privilege_name);
-                       if (strcmp("Allow", result) == 0) {
-                               pkg_data->status = EINA_TRUE;
-                               break;
-                       } else if (strcmp("Deny", result) == 0) {/* TBD: Handle AskUser case? */
-                               pkg_data->status = EINA_FALSE;
-                               break;
-                       } else {
-                               LOGE("Unknown policy level: %s", result);
-                               break;
-                       }
-               }
 
-               /* Free policy entries */
-               security_manager_policy_entry_free(p_filter);
-               for (i = 0; i < pp_policy_size ; ++i)
-                       security_manager_policy_entry_free(pp_policy[i]);
+       char* pkgid = pkg_data->pkgid;
 
-               if (pkg_data->status == EINA_TRUE)
+       /* Make policy filter to get specific uid, pkgid and privilege's status */
+       policy_entry* p_filter;
+       int ret = 0;
+       ret = security_manager_policy_entry_new(&p_filter);
+       log_if(ret != SECURITY_MANAGER_SUCCESS, 1, "security_manager_policy_entry_new failed. ret = %s", ret);
+       log_if(p_filter == NULL, 1, "security_manager_policy_entry_new failed failed. creation of new policy entry did not allocate memory");
+
+       ret = security_manager_policy_entry_set_application(p_filter, pkgid);
+       log_if(ret != SECURITY_MANAGER_SUCCESS, 1, "security_manager_policy_entry_set_application failed. ret = %d", ret);
+
+       security_manager_policy_entry_set_privilege(p_filter, privilege_name);
+       log_if(ret != SECURITY_MANAGER_SUCCESS, 1, "security_manager_policy_entry_set_privilege failed. ret = %d", ret);
+
+       /* Get policy filtered by p_filter */
+       policy_entry **pp_policy = NULL;
+       size_t pp_policy_size = 0;
+       ret = security_manager_get_policy(p_filter, &pp_policy, &pp_policy_size);
+       log_if(ret != SECURITY_MANAGER_SUCCESS || pp_policy_size <= 0, 1, "security_manager_get_policy failed. ret = %d, pp_policy_size = %d", ret, pp_policy_size);
+
+       /* Get level from policy */
+       unsigned int i = 0;
+       for (i = 0; i < pp_policy_size; ++i) {
+               char* result = (char*)security_manager_policy_entry_get_level(pp_policy[i]);
+               log_if(result == NULL, 1, "security_manager_policy_entry_get_level failed. No policy is declared for pkgid: %s, pkgid: %s, privilege: %s", pkg_data->pkgid, pkgid, privilege_name);
+               if (strcmp("Allow", result) == 0) {
+                       pkg_data->status = EINA_TRUE;
+                       break;
+               } else if (strcmp("Deny", result) == 0) {/* TBD: Handle AskUser case? */
+                       pkg_data->status = EINA_FALSE;
                        break;
+               } else {
+                       LOGE("Unknown policy level: %s", result);
+                       break;
+               }
        }
+
+       /* Free policy entries */
+       security_manager_policy_entry_free(p_filter);
+       for (i = 0; i < pp_policy_size ; ++i)
+               security_manager_policy_entry_free(pp_policy[i]);
+
 }
 static Eina_Bool get_package_privacy_status(char* package)
 {
@@ -235,11 +221,6 @@ static void _save_btn_clicked_cb(void *user_data, Evas_Object *obj, void *event_
                pkg_data_s* pkg_data = (pkg_data_s*)l->data;
                char* pkgid = (char*)pkg_data->pkgid;
                if (pkg_data->change) {
-                       char uid[UIDMAXLEN];
-                       if (pkg_data->is_global)
-                               snprintf(uid, UIDMAXLEN, "%d", GLOBAL_UID);
-                       else
-                               snprintf(uid, UIDMAXLEN, "%d", getuid());
                        char* level;
                        if (pkg_data->status) {
                                level = "Deny";
@@ -249,45 +230,37 @@ static void _save_btn_clicked_cb(void *user_data, Evas_Object *obj, void *event_
                                pkg_data->status = true;
                        }
 
-                       LOGD("uid: %s, %s will be changed to %s", uid, pkgid, level);
+                       LOGD("%s will be changed to %s", pkgid, level);
 
-                       int priv_num = g_list_length(pkg_data->privlist);
-                       int app_num = g_list_length(pkg_data->applist);
-                       int entry_num = priv_num*app_num;
-                       LOGD("priv_num = %d, app_num = %d, entry_num = %d", priv_num, app_num, entry_num);
+                       int entry_num = g_list_length(pkg_data->privlist);
+                       LOGD("entry_num = %d", entry_num);
 
                        /* Make policy update request */
                        policy_update_req *policy_update_request;
                        ret = security_manager_policy_update_req_new(&policy_update_request);
                        log_if(ret != SECURITY_MANAGER_SUCCESS, 1, "security_manager_policy_update_req_new failed. ret = %d", ret);
                        log_if(policy_update_request == NULL, 1, "security_manager_policy_entry_new failed failed. creation of new policy request did not allocate memory");
-                       /* Make policy entries to update according to the number of privilege and appid of package */
+                       /* Make policy entries to update according to the number of privilege of package */
                        policy_entry *entry[entry_num];
                        int entry_index = 0;
-                       for (ll = pkg_data->applist; ll != NULL; ll = ll->next) {
-                               char* appid = (char*)ll->data;
-                               for (lll = pkg_data->privlist; lll != NULL; lll = lll->next) {
-                                       char* privilege_name = (char*)lll->data;
-                                       LOGD("%d: Change to %s => uid: %s, appid: %s, privilege_name: %s", entry_index, level, uid, appid, privilege_name);
-                                       /* Make entries by each uid, appid, and privilege_name */
-                                       ret = security_manager_policy_entry_new(&entry[entry_index]);
-                                       log_if(ret != SECURITY_MANAGER_SUCCESS, 1, "security_manager_policy_entry_new failed. ret = %d", ret);
-                                       log_if(entry[entry_index] == NULL, 1, "security_manager_policy_entry_new failed failed. creation of new policy entry did not allocate memory");
-                                       ret = security_manager_policy_entry_set_application(entry[entry_index], appid);
-                                       log_if(ret != SECURITY_MANAGER_SUCCESS, 1, "security_manager_policy_entry_set_application failed. ret = %d", ret);
-                                       ret = security_manager_policy_entry_set_privilege(entry[entry_index], privilege_name);
-                                       log_if(ret != SECURITY_MANAGER_SUCCESS, 1, "security_manager_policy_entry_set_privilege failed. ret = %d", ret);
-                                       /* TBD: Remove set user part becuase there's no notion of global app's policy changes. User update their own app's policy only.
-                                       ret = security_manager_policy_entry_set_user(entry[entry_index], uid);
-                                       log_if(ret != SECURITY_MANAGER_SUCCESS, 1, "security_manager_policy_entry_set_user failed. ret = %d", ret); */
-                                       ret = security_manager_policy_entry_set_level(entry[entry_index], level);
-                                       log_if(ret != SECURITY_MANAGER_SUCCESS, 1, "security_manager_policy_entry_set_level failed. ret = %d", ret);
-
-                                       /* Add entry to policy update request */
-                                       ret = security_manager_policy_update_req_add_entry(policy_update_request, entry[entry_index]);
-                                       log_if(ret != SECURITY_MANAGER_SUCCESS, 1, "security_manager_policy_update_req_add_entry failed. ret = %d", ret);
-                                       entry_index++;
-                               }
+                       for (lll = pkg_data->privlist; lll != NULL; lll = lll->next) {
+                               char* privilege_name = (char*)lll->data;
+                               LOGD("%d: Change to %s => pkgid: %s, privilege_name: %s", entry_index, level, pkgid, privilege_name);
+                               /* Make entries by each privilege_name */
+                               ret = security_manager_policy_entry_new(&entry[entry_index]);
+                               log_if(ret != SECURITY_MANAGER_SUCCESS, 1, "security_manager_policy_entry_new failed. ret = %d", ret);
+                               log_if(entry[entry_index] == NULL, 1, "security_manager_policy_entry_new failed failed. creation of new policy entry did not allocate memory");
+                               ret = security_manager_policy_entry_set_application(entry[entry_index], pkgid);
+                               log_if(ret != SECURITY_MANAGER_SUCCESS, 1, "security_manager_policy_entry_set_application failed. ret = %d", ret);
+                               ret = security_manager_policy_entry_set_privilege(entry[entry_index], privilege_name);
+                               log_if(ret != SECURITY_MANAGER_SUCCESS, 1, "security_manager_policy_entry_set_privilege failed. ret = %d", ret);
+                               ret = security_manager_policy_entry_set_level(entry[entry_index], level);
+                               log_if(ret != SECURITY_MANAGER_SUCCESS, 1, "security_manager_policy_entry_set_level failed. ret = %d", ret);
+
+                               /* Add entry to policy update request */
+                               ret = security_manager_policy_update_req_add_entry(policy_update_request, entry[entry_index]);
+                               log_if(ret != SECURITY_MANAGER_SUCCESS, 1, "security_manager_policy_update_req_add_entry failed. ret = %d", ret);
+                               entry_index++;
                        }
                        /* Send policy update request */
                        ret = security_manager_policy_update_send(policy_update_request);
@@ -305,18 +278,6 @@ static void _save_btn_clicked_cb(void *user_data, Evas_Object *obj, void *event_
        evas_object_hide(save_btn);
 }
 
-static int pkg_app_list_cb(pkgmgrinfo_appinfo_h pkg_handle, void* user_data)
-{
-       char* appid = NULL;
-       pkg_data_s* pkg_data = (pkg_data_s*)user_data;
-       int ret = pkgmgrinfo_appinfo_get_appid(pkg_handle, &appid);
-       return_if(ret != PMINFO_R_OK, , -1, "pkgmgrinfo_appinfo_get_appid failed");
-       char* appidd = strdup(appid);
-       return_if(appid == NULL, , -1, "appid strdup failed");
-       pkg_data->applist = g_list_append(pkg_data->applist, appidd);
-       return ret;
-}
-
 static int pkg_list_cb(pkgmgrinfo_pkginfo_h filter_handle, void *user_data)
 {
        char* privilege_name = strdup((char*)user_data);
@@ -353,13 +314,9 @@ static int pkg_list_cb(pkgmgrinfo_pkginfo_h filter_handle, void *user_data)
        pkg_data->privlist = NULL;
        pkg_data->privlist = g_list_append(pkg_data->privlist, privilege_name);
 
-       /* Add app list to package data item */
-       pkg_data->applist = NULL;
        pkgmgrinfo_pkginfo_h pkg_handle;
        ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &pkg_handle);
        return_if(ret != PMINFO_R_OK, , -1, "pkgmgrinfo_pkginfo_get_pkginfo failed");
-       ret = pkgmgrinfo_appinfo_get_list(pkg_handle, PMINFO_ALL_APP, pkg_app_list_cb, pkg_data);
-       return_if(ret != PMINFO_R_OK, pkgmgrinfo_pkginfo_destroy_pkginfo(pkg_handle), -1, "pkgmgrinfo_appinfo_get_list failed");
 
        /* See if the package is global. TBD: If notion for handling of global app is required. */
        pkg_data->is_global = false;
@@ -425,11 +382,6 @@ static int get_uniq_pkg_list_by_privacy(const char* privacy)
                pkg_data_s* temp = (pkg_data_s*)l->data;
                LOGD(" * PACKAGE ID : %s LABEL: %s is global? %d", temp->pkgid, temp->label, temp->is_global);
                GList* ll;
-               LOGD(" * APP ID");
-               for (ll = temp->applist; ll != NULL; ll = ll->next) {
-                       char* temp_appid = (char*)ll->data;
-                       LOGD(" - %s", temp_appid);
-               }
                LOGD(" * PRIVILEGE");
                for (ll = temp->privlist; ll != NULL; ll = ll->next) {
                        char* temp_privname = (char*)ll->data;
@@ -439,7 +391,7 @@ static int get_uniq_pkg_list_by_privacy(const char* privacy)
 
        return ret;
 }
-void create_privacy_package_list_view(struct app_data_s* ad)
+void create_privacy_package_list_view(app_data_s* ad)
 {
        /* Add genlist */
        Evas_Object *genlist = common_genlist_add(ad->nf);