add privilege enum type
[framework/appfw/slp-pkgmgr.git] / tool / pkg_smack.c
old mode 100644 (file)
new mode 100755 (executable)
index 7fe3073..329a9b2
@@ -58,6 +58,7 @@ enum rpm_path_type {
        RPM_PATH_GROUP_RW,
        RPM_PATH_PUBLIC_RO,
        RPM_PATH_SETTINGS_RW,
+       RPM_PATH_NPRUNTIME,
        RPM_PATH_ANY_LABEL
 };
 
@@ -309,7 +310,7 @@ static void __apply_shared_privileges(char *pkgname, int flag)
        /*execute privilege APIs. The APIs should not fail*/
        __pkg_smack_register_package(pkgname);
 
-#if 0
+#if 1
        /*home dir. Dont setup path but change smack access to "_" */
        snprintf(dirpath, BUFF_SIZE, "/usr/apps/%s", pkgname);
        if (__is_dir(dirpath))
@@ -330,13 +331,13 @@ static void __apply_shared_privileges(char *pkgname, int flag)
                __pkg_smack_change_smack_label(dirpath, "_", 0);/*0 is SMACK_LABEL_ACCESS*/
        memset(dirpath, '\0', BUFF_SIZE);
 
-       /*/shared/res dir. setup path */
+       /*/shared/res dir. Dont setup path but change smack access to "_" */
        if (flag == 0)
                snprintf(dirpath, BUFF_SIZE, "/usr/apps/%s/shared/res", pkgname);
        else
                snprintf(dirpath, BUFF_SIZE, "/opt/usr/apps/%s/shared/res", pkgname);
        if (__is_dir(dirpath))
-               __pkg_smack_setup_path(pkgname, dirpath, RPM_PATH_PUBLIC_RO, NULL);
+               __pkg_smack_setup_path(pkgname, dirpath, RPM_PATH_ANY_LABEL, "_");
        memset(dirpath, '\0', BUFF_SIZE);
 
        /*/shared/data dir. setup path and change group to 'app'*/
@@ -389,8 +390,10 @@ static int __pkg_list_cb (const pkgmgrinfo_pkginfo_h handle, void *user_data)
 static int __additional_rpm_for_smack()
 {
        char *pkgid = "ui-gadget::client";
+       char *perm[] = {"http://tizen.org/privilege/appsetting", NULL};
 
        __apply_shared_privileges(pkgid, 0);
+       __pkg_smack_enable_permissions(pkgid, 1, perm, 1);
        return 0;
 }