Add perm_app_register_permissions function.
authorSebastian Grabowski <s.grabowski@partner.samsung.com>
Mon, 4 Nov 2013 13:49:32 +0000 (14:49 +0100)
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Thu, 14 Nov 2013 13:19:23 +0000 (14:19 +0100)
[Issue#]        SSDWSSP-620
[Bug/Feature]   Add new API in libprivilege-control and use it in
                installators (perm_app_register_permissions)
[Cause]         There is a need that only installators could add
                persistent rules
[Solution]      Added new perm_app_register_permissions function
[Verification]  Just built and run tests

Change-Id: I6703579756a806dcb1b38ccb9d730bd361dd6ab6

include/privilege-control.h
src/privilege-control.c

index 76c7aa5..bf82d2c 100644 (file)
@@ -241,6 +241,22 @@ int app_add_permissions(const char* app_id, const char** perm_list) DEPRECATED;
 int app_add_volatile_permissions(const char* app_id, const char** perm_list) DEPRECATED;
 
 /**
+ * Grant persistent SMACK permissions based on permissions list.
+ * It is intended to be called during app installation.
+ * It will add (if required) and enable requested permissions
+ * for an application. The permissions will be persistent.
+ * It must be called by privileged user.
+ *
+ *
+ * @param pkg_id application identifier
+ * @param app_type application type
+ * @param perm_list array of permission names, last element must be NULL
+ * @return PC_OPERATION_SUCCESS on success, PC_ERR_* on error
+ */
+int perm_app_register_permissions(const char *pkg_id, app_type_t app_type,
+        const char **perm_list);
+
+/**
  * Grant SMACK permissions based on permissions list.
  * It is intended to be called during app installation.
  * It will construct SMACK rules based on permissions list, grant them
index 48433d9..1eb356f 100644 (file)
@@ -899,6 +899,14 @@ API int app_add_volatile_permissions(const char* app_id, const char** perm_list)
        return app_add_permissions_internal(app_id, APP_TYPE_OTHER, perm_list, 0);
 }
 
+API int perm_app_register_permissions(const char *pkg_id, app_type_t app_type,
+        const char **perm_list)
+{
+       SECURE_C_LOGD("Entering function: %s. Params: pkg_id=%s, app_type=%d",
+                               __func__, pkg_id, app_type);
+       return perm_app_enable_permissions(pkg_id, app_type, perm_list, true);
+}
+
 API int app_enable_permissions(const char* pkg_id, app_type_t app_type, const char** perm_list, bool persistent)//deprecated
 {
        SECURE_C_LOGD("Entering function: %s. Params: pkg_id=%s, app_type=%d, persistent=%d",