Fix build macro and code for 64bit and askuser/ Modify privilege_manager code to... 82/37682/1 accepted/tizen/common/20150521.125335 accepted/tizen/tv/20150409.012915 submit/tizen_common/20150520.888881 submit/tizen_tv/20150408.160558
authorYunjin Lee <yunjin-.lee@samsung.com>
Thu, 2 Apr 2015 11:54:32 +0000 (20:54 +0900)
committerYunjin Lee <yunjin-.lee@samsung.com>
Thu, 2 Apr 2015 11:54:32 +0000 (20:54 +0900)
Change-Id: I08df6861516103d365ba5a4bb5cca6aa75534396
Signed-off-by: Yunjin Lee <yunjin-.lee@samsung.com>
14 files changed:
capi/CMakeLists.txt
capi/capi-security-privilege-manager.pc.in
capi/include/privilege_db_manager.h
capi/include/privilege_info.h
capi/include/privilege_manager.h
capi/res/dbspace/core_db_generator.sh
capi/res/dbspace/core_privilege_info.csv
capi/res/dbspace/core_privilege_info.db
capi/res/dbspace/wrt_privilege_info.csv
capi/res/dbspace/wrt_privilege_info.db
capi/src/privilege_db_manager.c
capi/src/privilege_info.c
capi/src/privilege_manager.c
packaging/privilege-checker.spec

index 3a3f35f..96f6cbc 100644 (file)
@@ -9,7 +9,7 @@ SET(PREFIX ${CMAKE_INSTALL_PREFIX})
 SET(INC_DIR include)
 
 INCLUDE_DIRECTORIES(
-    "${INC_DIR}" 
+    "${INC_DIR}"
     )
     
 SET(pc_requires "capi-base-common cert-svc")
@@ -30,13 +30,17 @@ ENDIF("${ARCH}" STREQUAL "arm")
 ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
 ADD_DEFINITIONS("-DSLP_DEBUG")
 MESSAGE("PROFILE_TYPE = ${PROFILE_TYPE}")
-IF("${PROFILE_TYPE}" STREQUAL "WEARABLE")
+IF("${PROFILE_TYPE}" STREQUAL "TV")
+    ADD_DEFINITIONS("-DPROFILE_TYPE_TV")
+ELSEIF("${PROFILE_TYPE}" STREQUAL "WEARABLE")
     ADD_DEFINITIONS("-DPROFILE_TYPE_WEARABLE")
-ELSE()
+ELSEIF("${PROFILE_TYPE}" STREQUAL "MOBILE")
     ADD_DEFINITIONS("-DPROFILE_TYPE_MOBILE")
+ELSE()
+    ADD_DEFINITIONS("-DPROFILE_TYPE_COMMON")
 ENDIF()
 
-SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=/usr/lib")
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=${LIBDIR}")
 
 aux_source_directory(src SOURCES)
 ADD_LIBRARY(${fw_name} SHARED ${SOURCES})
@@ -50,9 +54,9 @@ SET_TARGET_PROPERTIES(${fw_name}
     CLEAN_DIRECT_OUTPUT 1
 )
 
-INSTALL(TARGETS ${fw_name} DESTINATION ../lib)
+INSTALL(TARGETS ${fw_name} DESTINATION ${LIBDIR})
 INSTALL(
-        DIRECTORY ${INC_DIR}/ DESTINATION ../include/privilegemgr
+        DIRECTORY ${INC_DIR}/ DESTINATION ${INCLUDEDIR}/privilegemgr
         FILES_MATCHING
         PATTERN "*_private.h" EXCLUDE
         PATTERN "${INC_DIR}/*.h"
@@ -64,7 +68,7 @@ SET(PC_LDFLAGS -l${fw_name})
 SET(PC_CFLAGS -I\${includedir}/privilegemgr)
 
 CONFIGURE_FILE(${fw_name}.pc.in ${fw_name}.pc @ONLY)
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc DESTINATION ../lib/pkgconfig)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc DESTINATION ${LIBDIR}/pkgconfig)
 
 
 IF(UNIX)
@@ -124,6 +128,6 @@ ENDFOREACH(_file ${_pofiles})
 
 ADD_CUSTOM_TARGET(privilege-string ALL DEPENDS ${mo_files})
 
-INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/cmake_build_tmp/output/target/generic/root/usr/share/locale DESTINATION ../share)
+INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/cmake_build_tmp/output/target/generic/root/usr/share/locale DESTINATION ${DATADIR})
 
 
index 8d12dfc..fedb6bc 100755 (executable)
@@ -2,9 +2,8 @@
 # Package Information for pkg-config
 
 prefix=@PREFIX@
-exec_prefix=/usr
-libdir=/usr/lib
-includedir=/usr/include/privilegemgr
+libdir=@LIBDIR@
+includedir=@INCLUDEDIR@/privilegemgr
 
 Name: @PC_NAME@
 Description: @PACKAGE_DESCRIPTION@
index ae6f8b8..be87159 100755 (executable)
@@ -31,36 +31,38 @@ typedef struct
     char* privilege_description;
     int privilege_level_id;
     char* privilege_level;
-    char* version;
+    char* issued_version;
+    char* expired_version;
+    char* changed_to;
 } privilege_info_db_row_s;
 
 typedef enum
 {
-    PRIVILIEGE_DB_MANAGER_ERR_NONE                  = TIZEN_ERROR_NONE,
-    PRIVILIEGE_DB_NO_EXIST_RESULT                   = TIZEN_ERROR_NO_DATA,
-    PRIVILIEGE_DB_MANAGER_ERR_CONNECTION_FAIL       = TIZEN_ERROR_UNKNOWN,
-    PRIVILIEGE_DB_MANAGER_ERR_INVALID_QUERY         = TIZEN_ERROR_INVALID_PARAMETER,
-    PRIVILIEGE_DB_MANAGER_ERR_OUT_OF_MEMORY         = TIZEN_ERROR_OUT_OF_MEMORY,
+    PRIVILEGE_DB_MANAGER_ERR_NONE                  = TIZEN_ERROR_NONE,
+    PRIVILEGE_DB_NO_EXIST_RESULT                   = TIZEN_ERROR_NO_DATA,
+    PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL       = TIZEN_ERROR_UNKNOWN,
+    PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY         = TIZEN_ERROR_INVALID_PARAMETER,
+    PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY         = TIZEN_ERROR_OUT_OF_MEMORY,
 } privilege_db_manager_error_e;
 
 typedef enum
 {
-    PRIVILIEGE_DB_MANAGER_PRIVILEGE_LEVEL_PUBLIC    =   0,
-    PRIVILIEGE_DB_MANAGER_PRIVILEGE_LEVEL_PARTNER   =   1,
-    PRIVILIEGE_DB_MANAGER_PRIVILEGE_LEVEL_PLATFORM  =   2
+    PRIVILEGE_DB_MANAGER_PRIVILEGE_LEVEL_PUBLIC    =   0,
+    PRIVILEGE_DB_MANAGER_PRIVILEGE_LEVEL_PARTNER   =   1,
+    PRIVILEGE_DB_MANAGER_PRIVILEGE_LEVEL_PLATFORM  =   2
 } privilege_db_manager_privilege_level_e;
 
 typedef enum
 {
-    PRIVILIEGE_DB_MANAGER_PACKAGE_TYPE_WRT          =   0,
-    PRIVILIEGE_DB_MANAGER_PACKAGE_TYPE_CORE         =   1
+    PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT          =   0,
+    PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE         =   1
 } privilege_db_manager_package_type_e;
 
 #ifdef __cplusplus
     extern "C" {
 #endif
 
-int privilege_db_manager_get_privilege_list(GList** privilege_list);
+int privilege_db_manager_get_privilege_list(const char* api_version, privilege_db_manager_package_type_e package_type, GList** privilege_list);
 
 int privilege_db_manager_get_privilege_display(privilege_db_manager_package_type_e package_type, const char* privilege_name, const char* api_version, char** privilege_display);
 
index 37dd5ae..2feb9bf 100644 (file)
 #define __TIZEN_SECURITY_PRIVILEGE_INFO_H
 
 #include <tizen.h>
-#include "privilege_manager.h"
-
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 /**
+ * @brief Enumerations of error code for Privilege Information.
+ */
+typedef enum
+{
+    PRVMGR_ERR_NONE                         = 0,
+    PRVMGR_ERR_INVALID_PARAMETER            = 1,
+    PRVMGR_ERR_OUT_OF_MEMORY                = 2,
+    PRVMGR_ERR_INTERNAL_ERROR               = 3,
+    PRVMGR_ERR_NO_DATA                      = 4,
+    PRVMGR_ERR_NO_EXIST_PRIVILEGE           = 5,
+    PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL    = 6,
+    PRVMGR_ERR_INVALID_PRIVILEGE            = 7,
+    PRVMGR_ERR_DEPRECATED_PRIVILEGE         = 8,
+} privilege_manager_error_e;
+
+/**
  * @brief Called to get a privilege group once for specific package.
  * @param[in] privilege_group The privilege group
  * @param[in] user_data The user data passed from the foreach function
index cbdc7a1..0f08820 100755 (executable)
@@ -20,7 +20,7 @@
 #include <tizen.h>
 #include <glib.h>
 #include <cert-service.h>
-
+#include "privilege_info.h"
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -36,23 +36,11 @@ typedef enum
 
 typedef enum
 {
-    PRVMGR_PACKAGE_TYPE_CORE    =  0, 
-    PRVMGR_PACKAGE_TYPE_NATIVE  =  1,
+    PRVMGR_PACKAGE_TYPE_WRT     =  0,
+    PRVMGR_PACKAGE_TYPE_CORE    =  1,
 } privilege_manager_package_type_e;
 
-/**
- * @brief Enumerations of error code for Privilege Information.
- */
-typedef enum
-{
-    PRVMGR_ERR_NONE                         = 0,
-    PRVMGR_ERR_INVALID_PARAMETER            = 1,
-    PRVMGR_ERR_OUT_OF_MEMORY                = 2,
-    PRVMGR_ERR_INTERNAL_ERROR               = 3,
-    PRVMGR_ERR_NO_DATA                      = 4,
-    PRVMGR_ERR_NO_EXIST_PRIVILEGE           = 5,
-    PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL    = 6
-} privilege_manager_error_e;
+
 
 /**
  * @brief verify privilege name and level in the privilege list.
@@ -72,41 +60,7 @@ typedef enum
  */
 EXPORT_API int privilege_manager_verify_privilege_list(privilege_manager_package_type_e package_type, GList* privilege_list, privilege_manager_visibility_e visibility, char **error_privilege_name);
 
-/**
- * @brief verify privilege name in the privilege list.
- * @remarks @a privilege_list must be released with free() by you.
- * @remarks @a error_privilege_name_list must be released with free() by you.
- * @param [in] privilege_manager_package_type_e The privilege_manager_package_type_e
- * @param [in] privilege_list The privilege_list
- * @param [out] error_privilege_name_list The error_privilege_name_list's value is assigned when PRVMGR_ERR_NO_EXIST_PRIVILEGE is returned, otherwise null is assigned.
- * @return 0 on success, otherwise a negative error value.
- * @retval #PRVMGR_ERR_NONE Successful
- * @retval #PRVMGR_ERR_NO_EXIST_PRIVILEGE privilege don't exist. Error_privilege_name'value is assigned.
- * @retval #PRVMGR_ERR_OUT_OF_MEMORY Out of memory
- * @retval #PRVMGR_ERR_INVALID_PARAMETER Invalid parameter
- * @retval #PRVMGR_ERR_INTERNAL_ERROR Internal error
- */
-EXPORT_API int privilege_manager_verify_privilege_name(privilege_manager_package_type_e package_type, GList* privilege_list, GList **error_privilege_name_list);
-
-/**
- * @brief verify privilege name and level in the privilege list.
- * @remarks @a privilege_list must be released with free() by you.
- * @remarks @a error_privilege_name_list must be released with free() by you.
- * @remarks @a error_privilege_level_list must be released with free() by you.
- * @param [in] privilege_manager_package_type_e The privilege_manager_package_type_e
- * @param [in] privilege_list The privilege_list
- * @param [in] privilege_manager_visibility_e The privilege_manager_visibility_e
- * @param [out] error_privilege_name_list The error_privilege_name_list's value is assigned when PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL is returned, otherwise null is assigned.
- * @param [out] error_privilege_level_list The error_privilege_level_list's value is assigned when PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL is returned, otherwise null is assigned.
- * @return 0 on success, otherwise a negative error value.
- * @retval #PRVMGR_ERR_NONE Successful
- * @retval #PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL privilege level is higher than visibility. Error_privilege_name_list and error_privilege_level_list 'value is assigned.
- * @retval #PRVMGR_ERR_OUT_OF_MEMORY Out of memory
- * @retval #PRVMGR_ERR_INVALID_PARAMETER Invalid parameter
- * @retval #PRVMGR_ERR_INTERNAL_ERROR Internal error
- */
-EXPORT_API int privilege_manager_verify_privilege_level(privilege_manager_package_type_e package_type, GList* privilege_list, privilege_manager_visibility_e visibility, GList **error_privilege_name_list,  GList **error_privilege_level_list);
-
+EXPORT_API int privilege_manager_verify_privilege(const char* api_version, privilege_manager_package_type_e package_type, GList* privilege_list, privilege_manager_visibility_e visibility, char **error_message);
 
 #ifdef __cplusplus
 }
index 5cd924d..0583b74 100755 (executable)
@@ -7,7 +7,7 @@ echo "Creating $DB_NAME ..."
 touch $DB_NAME
 
 echo "Creating PRIVILEGE_INFO table ..."
-sqlite3 $DB_NAME "CREATE TABLE PRIVILEGE_INFO (PROFILE_ID NUMERIC, PROFILE TEXT, PACKAGE_TYPE_ID NUMERIC, PACKAGE_TYPE TEXT, PRIVILEGE_LEVEL_ID NUMERIC, PRIVILEGE_LEVEL TEXT, API_VERSION_ISSUED TEXT, API_VERSION_EXPIRED TEXT, DOCUMENTED INTEGER, PRIVILEGE_NAME TEXT, PRIVILEGE_DISPLAY TEXT, PRIVILEGE_DESCRIPTION TEXT, PRIVILEGE_GROUP_ID NUMERIC, PRIVLEGE_GROUP TEXT);"
+sqlite3 $DB_NAME "CREATE TABLE PRIVILEGE_INFO (PROFILE_ID NUMERIC, PROFILE TEXT, PACKAGE_TYPE_ID NUMERIC, PACKAGE_TYPE TEXT, PRIVILEGE_LEVEL_ID NUMERIC, PRIVILEGE_LEVEL TEXT, API_VERSION_ISSUED TEXT, API_VERSION_EXPIRED TEXT, DOCUMENTED INTEGER, PRIVILEGE_NAME TEXT, PRIVILEGE_DISPLAY TEXT, PRIVILEGE_DESCRIPTION TEXT, PRIVILEGE_GROUP_ID NUMERIC, PRIVLEGE_GROUP TEXT, CHANGED_TO TEXT);"
 
 echo "Inserting data ..."
 LIST=`cat core_privilege_info.csv | sed 's/ //g'`
@@ -125,9 +125,11 @@ do
                exit
        fi
 
+    CHANGED_TO=`echo $i | cut -d "," -f 11`
+
        echo "Inserting $PRIVILEGE_NAME ..."
 
-       sqlite3 $DB_NAME "insert into privilege_info values ( $PROFILE_ID, '$PROFILE', $PACKAGE_TYPE_ID, '$PACKAGE_TYPE', $PRIVILEGE_LEVEL_ID, '$PRIVILEGE_LEVEL', '$API_VERSION_ISSUED', '$API_VERSION_EXPIRED', '$DOCUMENTED', '$PRIVILEGE_NAME', '$PRIVILEGE_DISPLAY', '$PRIVILEGE_DESCRIPTION', $PRIVILEGE_GROUP_ID, '$PRIVILEGE_GROUP')"
+       sqlite3 $DB_NAME "insert into privilege_info values ( $PROFILE_ID, '$PROFILE', $PACKAGE_TYPE_ID, '$PACKAGE_TYPE', $PRIVILEGE_LEVEL_ID, '$PRIVILEGE_LEVEL', '$API_VERSION_ISSUED', '$API_VERSION_EXPIRED', '$DOCUMENTED', '$PRIVILEGE_NAME', '$PRIVILEGE_DISPLAY', '$PRIVILEGE_DESCRIPTION', $PRIVILEGE_GROUP_ID, '$PRIVILEGE_GROUP', '$CHANGED_TO')"
 done
 
 echo "Check inserted data"
index 1034ffe..ea624ca 100644 (file)
@@ -1,61 +1,60 @@
-#PROFILE,#PACKAGE_TYPE,#PRIVILEGE_LEVEL,#API_VERSION_ISSUED,#API_VERSION_EXPIRED,#DOCUMENTED,#PRIVILEGE_NAME,#PRIVILEGE_DISPLAY,#PRIVILEGE_DESCRIPTION,#PRIVILEGE_GROUP
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/account.read,IDS_TPLATFORM_BODY_READING_ACCOUNTS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_ACCOUNTS,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/account.write,IDS_TPLATFORM_BODY_MANAGING_ACCOUNTS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CREATE_EDIT_AND_DELETE_ACCOUNTS,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/alarm.get,IDS_TPLATFORM_HEADER_RETRIEVING_ALARMS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_INFORMATION_ABOUT_YOUR_SAVED_ALARMS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/alarm.set,IDS_TPLATFORM_BODY_SETTING_ALARMS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_SET_ALARMS_AND_WAKE_THE_DEVICE_UP_AT_SCHEDULED_TIMES,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,platform,2.3,9.9,no,http://tizen.org/privilege/antivirus,IDS_TPLATFORM_HEADER_SCANNING_FOR_AND_ERASING_VIRUSES,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_AND_ERASE_DATA_IN_ANY_OTHER_APPLICATION_MSG,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,platform,2.3,9.9,yes,http://tizen.org/privilege/appmanager.kill,IDS_TPLATFORM_BODY_CLOSING_APPLICATIONS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CLOSE_OTHER_APPLICATIONS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/appmanager.launch,IDS_TPLATFORM_HEADER_OPENING_AND_RESUMING_APPLICATIONS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_OPEN_OTHER_APPLICATIONS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/bluetooth,IDS_TPLATFORM_BODY_USING_UNRESTRICTED_BLUETOOTH_SERVICES_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_PERFORM_UNRESTRICTED_ACTIONS_USING_BLUETOOTH_SUCH_AS_SCANNING_FOR_AND_CONNECTING_TO_OTHER_DEVICES,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB
-common,core,platform,2.3,9.9,yes,http://tizen.org/privilege/bluetooth.admin,IDS_TPLATFORM_HEADER_CHANGING_BLUETOOTH_SETTINGS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CHANGE_BLUETOOTH_SETTINGS_SUCH_AS_TURNING_BLUETOOTH_ON_OR_OFF_SETTING_THE_DEVICE_NAME_AND_ENABLING_OR_DISABLING_AV_REMOTE_CONTROL,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB
-common,core,platform,2.3,9.9,yes,http://tizen.org/privilege/bookmark.admin,IDS_TPLATFORM_BODY_ACCESSING_INTERNET_BOOKMARKS_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_RETRIEVE_CREATE_EDIT_AND_DELETE_INTERNET_BOOKMARKS,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/calendar.read,IDS_TPLATFORM_BODY_READING_CALENDAR,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_EVENTS_AND_TASKS,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/calendar.write,IDS_TPLATFORM_BODY_MANAGING_CALENDAR,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CREATE_UPDATE_AND_DELETE_EVENTS_AND_TASKS,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/call,IDS_TPLATFORM_HEADER_MAKING_PHONE_CALLS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_MAKE_PHONE_CALLS_TO_NUMBERS_WHEN_THEY_ARE_TAPPED_WITHOUT_FURTHER_CONFIRMATION,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/callhistory.read,IDS_TPLATFORM_BODY_READING_CALL_LOGS,IDS_TPLATFORM_SBODY_THIS_APPLICATION_CAN_READ_CALL_LOG_ITEMS,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/callhistory.write,IDS_TPLATFORM_BODY_MANAGING_CALL_LOGS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CREATE_UPDATE_AND_DELETE_CALL_LOG_ITEMS,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/camera,IDS_TPLATFORM_BODY_USING_CAMERA,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_TAKE_AND_PREVIEW_PICTURES,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/contact.read,IDS_TPLATFORM_BODY_READING_CONTACTS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_YOUR_PROFILE_CONTACTS_AND_CONTACT_HISTORY_CONTACT_HISTORY_CAN_INCLUDE_SOCIAL_NETWORK_ACTIVITY,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/contact.write,IDS_TPLATFORM_BODY_MANAGING_CONTACTS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CREATE_UPDATE_AND_DELETE_YOUR_PROFILE_CONTACTS_AND_ANY_CONTACT_HISTORY_MSG,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/content.write,IDS_TPLATFORM_BODY_MANAGING_CONTENT,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CHANGE_MEDIA_INFORMATION_THIS_INFORMATION_CAN_BE_USED_BY_OTHER_APPLICATIONS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/datasharing,IDS_TPLATFORM_BODY_SHARING_DATA_BETWEEN_APPLICATIONS_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_SHARE_DATA_WITH_OTHER_APPLICATIONS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/display,IDS_TPLATFORM_BODY_MANAGING_DISPLAY_SETTINGS_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_MANAGE_DISPLAY_SETTINGS_SUCH_AS_THE_BRIGHTNESS_THIS_MAY_INCREASE_BATTERY_CONSUMPTION,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/download,IDS_TPLATFORM_BODY_DOWNLOADING_VIA_HTTP,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_MANAGE_HTTP_DOWNLOADS_THIS_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN,IDS_TPLATFORM_BODY_NETWORK_CONNECTIONS_ABB
-mobile,core,public,2.3,9.9,yes,http://tizen.org/privilege/email,IDS_TPLATFORM_BODY_MANAGING_EMAIL_ACCOUNTS_MAILBOXES_AND_EMAILS_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_MANAGE_YOUR_EMAIL_ACCOUNTS_INCLUDING_YOUR_FOLDERS_AND_EMAILS,IDS_TPLATFORM_BODY_NETWORK_CONNECTIONS_ABB
-mobile,core,platform,2.3,9.9,yes,http://tizen.org/privilege/email.admin,IDS_TPLATFORM_BODY_MANAGING_EMAIL_CONFIGURATIONS_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_MANAGE_THE_SETTINGS_OF_EMAIL_APPLICATIONS,IDS_TPLATFORM_BODY_NETWORK_CONNECTIONS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/externalstorage,IDS_TPLATFORM_BODY_ACCESSING_EXTERNAL_STORAGE_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_AND_WRITE_FILES_THAT_ARE_SAVED_TO_EXTERNAL_STORAGE_SUCH_AS_SD_CARDS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/externalstorage.appdata,IDS_TPLATFORM_BODY_ACCESSING_APPLICATION_DATA_IN_EXTERNAL_STORAGE_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_AND_WRITE_ITS_OWN_FILES_IN_EXTERNAL_STORAGE_SUCH_AS_SD_CARDS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/haptic,IDS_TPLATFORM_BODY_MANAGING_VIBRATION_FEEDBACK_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CONTROL_VIBRATION_FEEDBACK,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,public,2.4,9.9,yes,http://tizen.org/privilege/healthinfo,IDS_TPLATFORM_HEADER_READING_HEALTH_INFORMATION,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_HEALTH_INFORMATION_GATHERED_BY_THE_DEVICE_SENSORS_SUCH_AS_THE_PEDOMETER_AND_THE_HEART_RATE_MONITOR,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/internet,IDS_TPLATFORM_BODY_ACCESSING_INTERNET,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_ACCESS_THE_INTERNET_THIS_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN,IDS_TPLATFORM_BODY_NETWORK_CONNECTIONS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/keymanager,IDS_TPLATFORM_BODY_USING_SECURE_REPOSITORY_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_SAVE_KEYS_CERTIFICATES_AND_DATA_TO_AND_RETRIEVE_AND_DELETE_THEM_FROM_PASSWORD_PROTECTED_STORAGE,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,platform,2.3,9.9,yes,http://tizen.org/privilege/keymanager.admin,IDS_TPLATFORM_BODY_LOCKING_UNLOCKING_SECURE_REPOSITORY_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_LOCK_AND_UNLOCK_PASSWORD_PROTECTED_STORAGE_AND_MANAGE_PASSWORD_CHANGES_FOR_IT,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/led,IDS_TPLATFORM_BODY_MANAGING_LEDS_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_TURN_LEDS_ON_OR_OFF_SUCH_AS_THE_LED_ON_THE_FRONT_OF_THE_DEVICE_AND_THE_CAMERA_FLASH,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/location,IDS_TPLATFORM_BODY_USING_USER_LOCATION,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_USE_YOUR_LOCATION_DATA,IDS_TPLATFORM_OPT_LOCATION_T_LBS
-common,core,platform,2.3,9.9,yes,http://tizen.org/privilege/location.enable,IDS_TPLATFORM_BODY_MANAGING_LOCATION_SETTINGS_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CONTROL_YOUR_LOCATION_SERVICE_SETTINGS,IDS_TPLATFORM_OPT_LOCATION_T_LBS
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/mediastorage,IDS_TPLATFORM_HEADER_ACCESSING_MEDIA_FOLDERS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_AND_WRITE_FILES_IN_MEDIA_FOLDERS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/message.read,IDS_TPLATFORM_BODY_READING_TEXT_AND_MULTIMEDIA_MESSAGES_AND_RELATED_INFORMATION_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_TEXT_AND_MULTIMEDIA_MESSAGES_AND_ANY_INFORMATION_RELATED_TO_THEM,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/message.write,IDS_TPLATFORM_BODY_SENDING_TEXT_AND_MULTIMEDIA_MESSAGES_AND_UPDATING_THEIR_STATUSES_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_WRITE_SEND_DELETE_AND_MOVE_TEXT_AND_MULTIMEDIA_MESSAGES_AND_CHANGE_THE_SETTINGS_AND_STATUSES_OF_MESSAGES_MSG,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/network.get,IDS_TPLATFORM_HEADER_READING_NETWORK_INFORMATION,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_RETRIEVE_NETWORK_INFORMATION_SUCH_AS_THE_STATUS_OF_EACH_NETWORK_ITS_TYPE_AND_DETAILED_NETWORK_PROFILE_INFORMATION,IDS_TPLATFORM_BODY_NETWORK_CONNECTIONS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/network.profile,IDS_TPLATFORM_HEADER_MANAGING_NETWORK_PROFILES,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_ADD_REMOVE_AND_EDIT_NETWORK_PROFILES,IDS_TPLATFORM_BODY_NETWORK_CONNECTIONS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/network.set,IDS_TPLATFORM_HEADER_MANAGING_NETWORK_CONNECTIONS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_TURN_WI_FI_AND_ON_AND_OFF_AND_CONNECT_TO_AND_DISCONNECT_FROM_WI_FI_AND_MOBILE_NETWORKS,IDS_TPLATFORM_BODY_NETWORK_CONNECTIONS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/nfc,IDS_TPLATFORM_HEADER_USING_BASIC_NFC_SERVICES,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_AND_WRITE_NFC_TAG_INFORMATION_AND_SEND_NFC_MESSAGES_TO_OTHER_DEVICES,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,platform,2.3,9.9,yes,http://tizen.org/privilege/nfc.admin,IDS_TPLATFORM_BODY_MANAGING_NFC_GENERAL_SETTINGS,IDS_TPLATFORM_SBODY_THIS_APPLICATION_CAN_CHANGE_NFC_SETTINGS_SUCH_AS_TURNING_NFC_ON_OR_OFF,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/nfc.cardemulation,IDS_TPLATFORM_HEADER_USING_NFC_CARD_EMULATION_MODE,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_ACCESS_SMART_CARD_DETAILS_SUCH_AS_CREDIT_CARD_DETAILS_AND_ALLOW_USERS_TO_MAKE_PAYMENTS_VIA_NFC,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/notification,IDS_TPLATFORM_BODY_PROVIDING_NOTIFICATIONS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_SHOW_AND_HIDE_ITS_OWN_NOTIFICATIONS_AND_BADGES,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,platform,2.3,9.9,yes,http://tizen.org/privilege/packagemanager.admin,IDS_TPLATFORM_HEADER_INSTALLING_UNINSTALLING_APPLICATION_PACKAGES_AND_CLEARING_CACHES,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_INSTALL_AND_UNINSTALL_APPLICATION_PACKAGES_AND_CLEAR_APPLICATIONS_CACHES,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/packagemanager.info,IDS_TPLATFORM_HEADER_RETRIEVING_DETAILED_PACKAGE_INFORMATION,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_RETRIEVE_DETAILED_APPLICATION_PACKAGE_INFORMATION,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/power,IDS_TPLATFORM_BODY_MANAGING_POWER,IDS_TPLATFORM_SBODY_THIS_APPLICATION_CAN_CONTROL_POWER_RELATED_SETTINGS_SUCH_AS_DIMMING_THE_SCREEN,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB
-mobile,core,public,2.3,9.9,yes,http://tizen.org/privilege/push,IDS_TPLATFORM_BODY_RECEIVING_PUSH_NOTIFICATIONS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_RECEIVE_NOTIFICATIONS_VIA_THE_INTERNET,IDS_TPLATFORM_BODY_NETWORK_CONNECTIONS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/recorder,IDS_TPLATFORM_HEADER_RECORDING_VIDEO_AND_AUDIO,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_RECORD_VIDEO_AND_AUDIO,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB
-common,core,platform,2.3,9.9,yes,http://tizen.org/privilege/screenshot,IDS_TPLATFORM_HEADER_CAPTURING_DEVICE_SCREEN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CAPTURE_SCREENSHOTS,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/shortcut,IDS_TPLATFORM_HEADER_MANAGING_SHORTCUTS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CREATE_AND_DELETE_SHORTCUTS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/systemsettings,IDS_TPLATFORM_HEADER_MANAGING_UNRESTRICTED_SYSTEM_SETTINGS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_AND_WRITE_UNRESTRICTED_SYSTEM_SETTINGS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,platform,2.3,9.9,yes,http://tizen.org/privilege/systemsettings.admin,IDS_TPLATFORM_HEADER_MANAGING_ALL_SYSTEM_SETTINGS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_AND_WRITE_ALL_SYSTEM_SETTINGS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/telephony,IDS_TPLATFORM_BODY_ACCESSING_TELEPHONY_INFORMATION,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_RETRIEVE_TELEPHONY_INFORMATION_SUCH_AS_THE_NETWORK_AND_SIM_CARD_USED_THE_IMEI_AND_THE_STATUSES_OF_CALLS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,platform,2.3,9.9,yes,http://tizen.org/privilege/telephony.admin,IDS_TPLATFORM_HEADER_MANAGING_TELEPHONY_SETTINGS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_MANAGE_TELEPHONY_SETTINGS_SUCH_AS_THOSE_FOR_INCOMING_AND_OUTGOING_CALLS_FORWARDING_AND_HOLDING_CALLS_NETWORKS_AND_SIM_CARDS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,platform,2.3,9.9,yes,http://tizen.org/privilege/tethering.admin,IDS_TPLATFORM_HEADER_ACCESSING_TETHERING_SERVICES,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_ENABLE_AND_DISABLE_TETHERING_SERVICES,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/volume.set,IDS_TPLATFORM_HEADER_ADJUSTING_VOLUME,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_ADJUST_THE_VOLUME_FOR_DIFFERENT_FEATURES_SUCH_AS_NOTIFICATION_ALERTS_RINGTONES_AND_MEDIA,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
-common,core,platform,2.3,9.9,yes,http://tizen.org/privilege/web-history.admin,IDS_TPLATFORM_HEADER_MANAGING_INTERNET_HISTORY,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_MANAGE_YOUR_INTERNET_HISTORY,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/wifidirect,IDS_TPLATFORM_HEADER_MANAGING_WI_FI_DIRECT_INFORMATION,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_ENABLE_AND_DISABLE_WI_FI_DIRECT_MANAGE_WI_FI_DIRECT_CONNECTIONS_AND_CHANGE_WI_FI_DIRECT_SETTINGS,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB
-common,core,public,2.3,9.9,yes,http://tizen.org/privilege/window.priority.set,IDS_TPLATFORM_HEADER_DISPLAYING_WINDOWS_ON_TOP_OF_OTHER_APPLICATIONS_AND_SCREENS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_APPEAR_ON_TOP_OF_OTHER_WINDOWS_AND_SCREENS_MSG,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB
+#PROFILE,#PACKAGE_TYPE,#PRIVILEGE_LEVEL,#API_VERSION_ISSUED,#API_VERSION_EXPIRED,#DOCUMENTED,#PRIVILEGE_NAME,#PRIVILEGE_DISPLAY,#PRIVILEGE_DESCRIPTION,#PRIVILEGE_GROUP,#CHANGED_TO
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/account.read,IDS_TPLATFORM_BODY_READING_ACCOUNTS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_ACCOUNTS,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/account.write,IDS_TPLATFORM_BODY_MANAGING_ACCOUNTS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CREATE_EDIT_AND_DELETE_ACCOUNTS,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/alarm.get,IDS_TPLATFORM_HEADER_RETRIEVING_ALARMS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_INFORMATION_ABOUT_YOUR_SAVED_ALARMS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/alarm.set,IDS_TPLATFORM_BODY_SETTING_ALARMS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_SET_ALARMS_AND_WAKE_THE_DEVICE_UP_AT_SCHEDULED_TIMES,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,core,platform,2.3,9.9,no,http://tizen.org/privilege/antivirus,IDS_TPLATFORM_HEADER_SCANNING_FOR_AND_ERASING_VIRUSES,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_AND_ERASE_DATA_IN_ANY_OTHER_APPLICATION_MSG,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,core,platform,2.3,9.9,yes,http://tizen.org/privilege/appmanager.kill,IDS_TPLATFORM_BODY_CLOSING_APPLICATIONS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CLOSE_OTHER_APPLICATIONS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/appmanager.launch,IDS_TPLATFORM_HEADER_OPENING_AND_RESUMING_APPLICATIONS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_OPEN_OTHER_APPLICATIONS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/bluetooth,IDS_TPLATFORM_BODY_USING_UNRESTRICTED_BLUETOOTH_SERVICES_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_PERFORM_UNRESTRICTED_ACTIONS_USING_BLUETOOTH_SUCH_AS_SCANNING_FOR_AND_CONNECTING_TO_OTHER_DEVICES,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB,
+common,core,platform,2.3,9.9,yes,http://tizen.org/privilege/bluetooth.admin,IDS_TPLATFORM_HEADER_CHANGING_BLUETOOTH_SETTINGS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CHANGE_BLUETOOTH_SETTINGS_SUCH_AS_TURNING_BLUETOOTH_ON_OR_OFF_SETTING_THE_DEVICE_NAME_AND_ENABLING_OR_DISABLING_AV_REMOTE_CONTROL,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB,
+common,core,platform,2.3,9.9,yes,http://tizen.org/privilege/bookmark.admin,IDS_TPLATFORM_BODY_ACCESSING_INTERNET_BOOKMARKS_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_RETRIEVE_CREATE_EDIT_AND_DELETE_INTERNET_BOOKMARKS,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/calendar.read,IDS_TPLATFORM_BODY_READING_CALENDAR,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_EVENTS_AND_TASKS,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/calendar.write,IDS_TPLATFORM_BODY_MANAGING_CALENDAR,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CREATE_UPDATE_AND_DELETE_EVENTS_AND_TASKS,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/call,IDS_TPLATFORM_HEADER_MAKING_PHONE_CALLS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_MAKE_PHONE_CALLS_TO_NUMBERS_WHEN_THEY_ARE_TAPPED_WITHOUT_FURTHER_CONFIRMATION,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/callhistory.read,IDS_TPLATFORM_BODY_READING_CALL_LOGS,IDS_TPLATFORM_SBODY_THIS_APPLICATION_CAN_READ_CALL_LOG_ITEMS,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB,
+mobile,core,public,2.3,9.9,yes,http://tizen.org/privilege/callhistory.write,IDS_TPLATFORM_BODY_MANAGING_CALL_LOGS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CREATE_UPDATE_AND_DELETE_CALL_LOG_ITEMS,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/camera,IDS_TPLATFORM_BODY_USING_CAMERA,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_TAKE_AND_PREVIEW_PICTURES,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/contact.read,IDS_TPLATFORM_BODY_READING_CONTACTS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_YOUR_PROFILE_CONTACTS_AND_CONTACT_HISTORY_CONTACT_HISTORY_CAN_INCLUDE_SOCIAL_NETWORK_ACTIVITY,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/contact.write,IDS_TPLATFORM_BODY_MANAGING_CONTACTS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CREATE_UPDATE_AND_DELETE_YOUR_PROFILE_CONTACTS_AND_ANY_CONTACT_HISTORY_MSG,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/content.write,IDS_TPLATFORM_BODY_MANAGING_CONTENT,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CHANGE_MEDIA_INFORMATION_THIS_INFORMATION_CAN_BE_USED_BY_OTHER_APPLICATIONS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/datasharing,IDS_TPLATFORM_BODY_SHARING_DATA_BETWEEN_APPLICATIONS_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_SHARE_DATA_WITH_OTHER_APPLICATIONS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/display,IDS_TPLATFORM_BODY_MANAGING_DISPLAY_SETTINGS_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_MANAGE_DISPLAY_SETTINGS_SUCH_AS_THE_BRIGHTNESS_THIS_MAY_INCREASE_BATTERY_CONSUMPTION,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/download,IDS_TPLATFORM_BODY_DOWNLOADING_VIA_HTTP,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_MANAGE_HTTP_DOWNLOADS_THIS_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN,IDS_TPLATFORM_BODY_NETWORK_CONNECTIONS_ABB,
+mobile,core,public,2.3,9.9,yes,http://tizen.org/privilege/email,IDS_TPLATFORM_BODY_MANAGING_EMAIL_ACCOUNTS_MAILBOXES_AND_EMAILS_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_MANAGE_YOUR_EMAIL_ACCOUNTS_INCLUDING_YOUR_FOLDERS_AND_EMAILS,IDS_TPLATFORM_BODY_NETWORK_CONNECTIONS_ABB,
+mobile,core,platform,2.3,9.9,yes,http://tizen.org/privilege/email.admin,IDS_TPLATFORM_BODY_MANAGING_EMAIL_CONFIGURATIONS_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_MANAGE_THE_SETTINGS_OF_EMAIL_APPLICATIONS,IDS_TPLATFORM_BODY_NETWORK_CONNECTIONS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/externalstorage,IDS_TPLATFORM_BODY_ACCESSING_EXTERNAL_STORAGE_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_AND_WRITE_FILES_THAT_ARE_SAVED_TO_EXTERNAL_STORAGE_SUCH_AS_SD_CARDS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/externalstorage.appdata,IDS_TPLATFORM_BODY_ACCESSING_APPLICATION_DATA_IN_EXTERNAL_STORAGE_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_AND_WRITE_ITS_OWN_FILES_IN_EXTERNAL_STORAGE_SUCH_AS_SD_CARDS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/haptic,IDS_TPLATFORM_BODY_MANAGING_VIBRATION_FEEDBACK_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CONTROL_VIBRATION_FEEDBACK,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/internet,IDS_TPLATFORM_BODY_ACCESSING_INTERNET,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_ACCESS_THE_INTERNET_THIS_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN,IDS_TPLATFORM_BODY_NETWORK_CONNECTIONS_ABB,
+mobile,core,public,2.3,9.9,yes,http://tizen.org/privilege/keymanager,IDS_TPLATFORM_BODY_USING_SECURE_REPOSITORY_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_SAVE_KEYS_CERTIFICATES_AND_DATA_TO_AND_RETRIEVE_AND_DELETE_THEM_FROM_PASSWORD_PROTECTED_STORAGE,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+mobile,core,platform,2.3,9.9,yes,http://tizen.org/privilege/keymanager.admin,IDS_TPLATFORM_BODY_LOCKING_UNLOCKING_SECURE_REPOSITORY_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_LOCK_AND_UNLOCK_PASSWORD_PROTECTED_STORAGE_AND_MANAGE_PASSWORD_CHANGES_FOR_IT,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/led,IDS_TPLATFORM_BODY_MANAGING_LEDS_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_TURN_LEDS_ON_OR_OFF_SUCH_AS_THE_LED_ON_THE_FRONT_OF_THE_DEVICE_AND_THE_CAMERA_FLASH,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/location,IDS_TPLATFORM_BODY_USING_USER_LOCATION,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_USE_YOUR_LOCATION_DATA,IDS_TPLATFORM_OPT_LOCATION_T_LBS,
+common,core,platform,2.3,9.9,yes,http://tizen.org/privilege/location.enable,IDS_TPLATFORM_BODY_MANAGING_LOCATION_SETTINGS_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CONTROL_YOUR_LOCATION_SERVICE_SETTINGS,IDS_TPLATFORM_OPT_LOCATION_T_LBS,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/mediastorage,IDS_TPLATFORM_HEADER_ACCESSING_MEDIA_FOLDERS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_AND_WRITE_FILES_IN_MEDIA_FOLDERS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/message.read,IDS_TPLATFORM_BODY_READING_TEXT_AND_MULTIMEDIA_MESSAGES_AND_RELATED_INFORMATION_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_TEXT_AND_MULTIMEDIA_MESSAGES_AND_ANY_INFORMATION_RELATED_TO_THEM,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/message.write,IDS_TPLATFORM_BODY_SENDING_TEXT_AND_MULTIMEDIA_MESSAGES_AND_UPDATING_THEIR_STATUSES_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_WRITE_SEND_DELETE_AND_MOVE_TEXT_AND_MULTIMEDIA_MESSAGES_AND_CHANGE_THE_SETTINGS_AND_STATUSES_OF_MESSAGES_MSG,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/network.get,IDS_TPLATFORM_HEADER_READING_NETWORK_INFORMATION,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_RETRIEVE_NETWORK_INFORMATION_SUCH_AS_THE_STATUS_OF_EACH_NETWORK_ITS_TYPE_AND_DETAILED_NETWORK_PROFILE_INFORMATION,IDS_TPLATFORM_BODY_NETWORK_CONNECTIONS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/network.profile,IDS_TPLATFORM_HEADER_MANAGING_NETWORK_PROFILES,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_ADD_REMOVE_AND_EDIT_NETWORK_PROFILES,IDS_TPLATFORM_BODY_NETWORK_CONNECTIONS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/network.set,IDS_TPLATFORM_HEADER_MANAGING_NETWORK_CONNECTIONS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_TURN_WI_FI_AND_ON_AND_OFF_AND_CONNECT_TO_AND_DISCONNECT_FROM_WI_FI_AND_MOBILE_NETWORKS,IDS_TPLATFORM_BODY_NETWORK_CONNECTIONS_ABB,
+mobile,core,public,2.3,9.9,yes,http://tizen.org/privilege/nfc,IDS_TPLATFORM_HEADER_USING_BASIC_NFC_SERVICES,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_AND_WRITE_NFC_TAG_INFORMATION_AND_SEND_NFC_MESSAGES_TO_OTHER_DEVICES,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+mobile,core,platform,2.3,9.9,yes,http://tizen.org/privilege/nfc.admin,IDS_TPLATFORM_BODY_MANAGING_NFC_GENERAL_SETTINGS,IDS_TPLATFORM_SBODY_THIS_APPLICATION_CAN_CHANGE_NFC_SETTINGS_SUCH_AS_TURNING_NFC_ON_OR_OFF,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+mobile,core,public,2.3,9.9,yes,http://tizen.org/privilege/nfc.cardemulation,IDS_TPLATFORM_HEADER_USING_NFC_CARD_EMULATION_MODE,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_ACCESS_SMART_CARD_DETAILS_SUCH_AS_CREDIT_CARD_DETAILS_AND_ALLOW_USERS_TO_MAKE_PAYMENTS_VIA_NFC,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/notification,IDS_TPLATFORM_BODY_PROVIDING_NOTIFICATIONS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_SHOW_AND_HIDE_ITS_OWN_NOTIFICATIONS_AND_BADGES,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,core,platform,2.3,9.9,yes,http://tizen.org/privilege/packagemanager.admin,IDS_TPLATFORM_HEADER_INSTALLING_UNINSTALLING_APPLICATION_PACKAGES_AND_CLEARING_CACHES,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_INSTALL_AND_UNINSTALL_APPLICATION_PACKAGES_AND_CLEAR_APPLICATIONS_CACHES,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/packagemanager.info,IDS_TPLATFORM_HEADER_RETRIEVING_DETAILED_PACKAGE_INFORMATION,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_RETRIEVE_DETAILED_APPLICATION_PACKAGE_INFORMATION,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/power,IDS_TPLATFORM_BODY_MANAGING_POWER,IDS_TPLATFORM_SBODY_THIS_APPLICATION_CAN_CONTROL_POWER_RELATED_SETTINGS_SUCH_AS_DIMMING_THE_SCREEN,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB,
+mobile,core,public,2.3,9.9,yes,http://tizen.org/privilege/push,IDS_TPLATFORM_BODY_RECEIVING_PUSH_NOTIFICATIONS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_RECEIVE_NOTIFICATIONS_VIA_THE_INTERNET,IDS_TPLATFORM_BODY_NETWORK_CONNECTIONS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/recorder,IDS_TPLATFORM_HEADER_RECORDING_VIDEO_AND_AUDIO,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_RECORD_VIDEO_AND_AUDIO,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB,
+common,core,platform,2.3,9.9,yes,http://tizen.org/privilege/screenshot,IDS_TPLATFORM_HEADER_CAPTURING_DEVICE_SCREEN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CAPTURE_SCREENSHOTS,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/shortcut,IDS_TPLATFORM_HEADER_MANAGING_SHORTCUTS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CREATE_AND_DELETE_SHORTCUTS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/systemsettings,IDS_TPLATFORM_HEADER_MANAGING_UNRESTRICTED_SYSTEM_SETTINGS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_AND_WRITE_UNRESTRICTED_SYSTEM_SETTINGS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,core,platform,2.3,9.9,yes,http://tizen.org/privilege/systemsettings.admin,IDS_TPLATFORM_HEADER_MANAGING_ALL_SYSTEM_SETTINGS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_AND_WRITE_ALL_SYSTEM_SETTINGS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/telephony,IDS_TPLATFORM_BODY_ACCESSING_TELEPHONY_INFORMATION,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_RETRIEVE_TELEPHONY_INFORMATION_SUCH_AS_THE_NETWORK_AND_SIM_CARD_USED_THE_IMEI_AND_THE_STATUSES_OF_CALLS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,core,platform,2.3,9.9,yes,http://tizen.org/privilege/telephony.admin,IDS_TPLATFORM_HEADER_MANAGING_TELEPHONY_SETTINGS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_MANAGE_TELEPHONY_SETTINGS_SUCH_AS_THOSE_FOR_INCOMING_AND_OUTGOING_CALLS_FORWARDING_AND_HOLDING_CALLS_NETWORKS_AND_SIM_CARDS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,core,platform,2.3,9.9,yes,http://tizen.org/privilege/tethering.admin,IDS_TPLATFORM_HEADER_ACCESSING_TETHERING_SERVICES,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_ENABLE_AND_DISABLE_TETHERING_SERVICES,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/volume.set,IDS_TPLATFORM_HEADER_ADJUSTING_VOLUME,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_ADJUST_THE_VOLUME_FOR_DIFFERENT_FEATURES_SUCH_AS_NOTIFICATION_ALERTS_RINGTONES_AND_MEDIA,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,core,platform,2.3,9.9,yes,http://tizen.org/privilege/web-history.admin,IDS_TPLATFORM_HEADER_MANAGING_INTERNET_HISTORY,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_MANAGE_YOUR_INTERNET_HISTORY,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/wifidirect,IDS_TPLATFORM_HEADER_MANAGING_WI_FI_DIRECT_INFORMATION,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_ENABLE_AND_DISABLE_WI_FI_DIRECT_MANAGE_WI_FI_DIRECT_CONNECTIONS_AND_CHANGE_WI_FI_DIRECT_SETTINGS,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB,
+common,core,public,2.3,9.9,yes,http://tizen.org/privilege/window.priority.set,IDS_TPLATFORM_HEADER_DISPLAYING_WINDOWS_ON_TOP_OF_OTHER_APPLICATIONS_AND_SCREENS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_APPEAR_ON_TOP_OF_OTHER_WINDOWS_AND_SCREENS_MSG,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
index 27586db..72e3393 100644 (file)
Binary files a/capi/res/dbspace/core_privilege_info.db and b/capi/res/dbspace/core_privilege_info.db differ
index 53532cb..351003d 100644 (file)
@@ -48,8 +48,7 @@ common,wrt,public,1,9.9,yes,http://tizen.org/privilege/filesystem.write,IDS_TPLA
 mobile,wrt,public,2.1,9.9,yes,http://tizen.org/privilege/fullscreen,IDS_TPLATFORM_HEADER_USING_FULL_SCREEN_VIEW,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_USE_FULL_SCREEN_VIEW,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
 common,wrt,public,1,1,yes,http://tizen.org/privilege/geocoder,,,IDS_TPLATFORM_OPT_LOCATION_T_LBS,http://tizen.org/privilege/location
 common,wrt,public,2.3,9.9,yes,http://tizen.org/privilege/healthinfo,IDS_TPLATFORM_HEADER_READING_HEALTH_INFORMATION,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_HEALTH_INFORMATION_GATHERED_BY_THE_DEVICE_SENSORS_SUCH_AS_THE_PEDOMETER_AND_THE_HEART_RATE_MONITOR,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB,
-wearable,wrt,public,2.2,9.9,yes,http://tizen.org/privilege/internet,IDS_TPLATFORM_BODY_ACCESSING_INTERNET,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_ACCESS_THE_INTERNET_THIS_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN,IDS_TPLATFORM_BODY_NETWORK_CONNECTIONS_ABB,
-mobile,wrt,public,2.3,9.9,yes,http://tizen.org/privilege/internet,IDS_TPLATFORM_BODY_ACCESSING_INTERNET,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_ACCESS_THE_INTERNET_THIS_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN,IDS_TPLATFORM_BODY_NETWORK_CONNECTIONS_ABB,
+common,wrt,public,2.3,9.9,yes,http://tizen.org/privilege/internet,IDS_TPLATFORM_BODY_ACCESSING_INTERNET,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_ACCESS_THE_INTERNET_THIS_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN,IDS_TPLATFORM_BODY_NETWORK_CONNECTIONS_ABB,
 common,wrt,public,1,1,yes,http://tizen.org/privilege/lbs,,,IDS_TPLATFORM_OPT_LOCATION_T_LBS,http://tizen.org/privilege/location
 common,wrt,public,2.1,9.9,yes,http://tizen.org/privilege/location,IDS_TPLATFORM_BODY_USING_USER_LOCATION,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_USE_YOUR_LOCATION_DATA,IDS_TPLATFORM_OPT_LOCATION_T_LBS,
 common,wrt,public,1,2.3,no,http://tizen.org/privilege/log,,,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
@@ -67,11 +66,11 @@ common,wrt,public,1,2.3,no,http://tizen.org/privilege/messaging.sms,,,IDS_TPLATF
 mobile,wrt,public,1,9.9,yes,http://tizen.org/privilege/messaging.write,IDS_TPLATFORM_BODY_WRITING_MESSAGES,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_WRITE_TEXT_MESSAGES_MULTIMEDIA_MESSAGES_AND_EMAILS,IDS_TPLATFORM_BODY_PAID_SERVICES_ABB,
 mobile,wrt,partner,2.1,9.9,yes,http://tizen.org/privilege/networkbearerselection,IDS_TPLATFORM_BODY_SELECTING_NETWORK_CONNECTION,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_RESTRICT_THE_DEVICE_SO_SOME_SPECIFIC_DOMAINS_CAN_ONLY_BE_ACCESSED_VIA_MOBILE_NETWORKS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
 common,wrt,public,1,1,yes,http://tizen.org/privilege/nfc,,,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB,http://tizen.org/privilege/nfc.admin&http://tizen.org/privilege/nfc.cardemulation&http://tizen.org/privilege/nfc.common&http://tizen.org/privilege/nfc.p2p&http://tizen.org/privilege/nfc.tag
-common,wrt,public,2,9.9,yes,http://tizen.org/privilege/nfc.admin,IDS_TPLATFORM_BODY_MANAGING_NFC_GENERAL_SETTINGS,IDS_TPLATFORM_SBODY_THIS_APPLICATION_CAN_CHANGE_NFC_SETTINGS_SUCH_AS_TURNING_NFC_ON_OR_OFF,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB,
-common,wrt,public,2.3,9.9,yes,http://tizen.org/privilege/nfc.cardemulation,IDS_TPLATFORM_HEADER_USING_NFC_CARD_EMULATION_MODE,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_ACCESS_SMART_CARD_DETAILS_SUCH_AS_CREDIT_CARD_DETAILS_AND_ALLOW_USERS_TO_MAKE_PAYMENTS_VIA_NFC,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB,
-common,wrt,public,2,9.9,yes,http://tizen.org/privilege/nfc.common,IDS_TPLATFORM_BODY_USING_NFC_COMMON_FEATURES,IDS_TPLATFORM_SBODY_THIS_APPLICATION_CAN_USE_NFC_COMMON_FEATURES,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB,
-common,wrt,public,1,9.9,yes,http://tizen.org/privilege/nfc.p2p,IDS_TPLATFORM_BODY_PUSHING_NFC_MESSAGES,IDS_TPLATFORM_SBODY_THIS_APPLICATION_CAN_PUSH_NFC_MESSAGES_TO_OTHER_DEVICES,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB,
-common,wrt,public,1,9.9,yes,http://tizen.org/privilege/nfc.tag,IDS_TPLATFORM_BODY_READING_WRITING_TO_NFC_TAGS,IDS_TPLATFORM_SBODY_THIS_APPLICATION_CAN_READ_AND_WRITE_NFC_TAG_INFORMATION,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB,
+mobile,wrt,public,2,9.9,yes,http://tizen.org/privilege/nfc.admin,IDS_TPLATFORM_BODY_MANAGING_NFC_GENERAL_SETTINGS,IDS_TPLATFORM_SBODY_THIS_APPLICATION_CAN_CHANGE_NFC_SETTINGS_SUCH_AS_TURNING_NFC_ON_OR_OFF,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB,
+mobile,wrt,public,2.3,9.9,yes,http://tizen.org/privilege/nfc.cardemulation,IDS_TPLATFORM_HEADER_USING_NFC_CARD_EMULATION_MODE,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_ACCESS_SMART_CARD_DETAILS_SUCH_AS_CREDIT_CARD_DETAILS_AND_ALLOW_USERS_TO_MAKE_PAYMENTS_VIA_NFC,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB,
+mobile,wrt,public,2,9.9,yes,http://tizen.org/privilege/nfc.common,IDS_TPLATFORM_BODY_USING_NFC_COMMON_FEATURES,IDS_TPLATFORM_SBODY_THIS_APPLICATION_CAN_USE_NFC_COMMON_FEATURES,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB,
+mobile,wrt,public,1,9.9,yes,http://tizen.org/privilege/nfc.p2p,IDS_TPLATFORM_BODY_PUSHING_NFC_MESSAGES,IDS_TPLATFORM_SBODY_THIS_APPLICATION_CAN_PUSH_NFC_MESSAGES_TO_OTHER_DEVICES,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB,
+mobile,wrt,public,1,9.9,yes,http://tizen.org/privilege/nfc.tag,IDS_TPLATFORM_BODY_READING_WRITING_TO_NFC_TAGS,IDS_TPLATFORM_SBODY_THIS_APPLICATION_CAN_READ_AND_WRITE_NFC_TAG_INFORMATION,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB,
 common,wrt,public,2.1,9.9,yes,http://tizen.org/privilege/notification,IDS_TPLATFORM_BODY_PROVIDING_NOTIFICATIONS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_SHOW_AND_HIDE_ITS_OWN_NOTIFICATIONS_AND_BADGES,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
 mobile,wrt,public,2,2,yes,http://tizen.org/privilege/notification.read,IDS_TPLATFORM_HEADER_RETRIEVING_NOTIFICATION_INFORMATION,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_INFORMATION_ABOUT_NOTIFICATIONS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,http://tizen.org/privilege/notification
 mobile,wrt,public,2,2,yes,http://tizen.org/privilege/notification.write,IDS_TPLATFORM_HEADER_MANAGING_NOTIFICATIONS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_DISPLAY_EDIT_AND_DELETE_NOTIFICATIONS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,http://tizen.org/privilege/notification
@@ -100,7 +99,7 @@ common,wrt,public,1,2.3,no,http://tizen.org/privilege/settingmanager.read,,,IDS_
 common,wrt,public,1,2.3,no,http://tizen.org/privilege/settingmanager.write,,,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,http://tizen.org/privilege/setting
 common,wrt,public,2.1,9.9,yes,http://tizen.org/privilege/system,IDS_TPLATFORM_BODY_READING_SYSTEM_INFORMATION,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_SYSTEM_INFORMATION,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
 mobile,wrt,public,1,2,yes,http://tizen.org/privilege/systeminfo,IDS_TPLATFORM_BODY_READING_SYSTEM_INFORMATION,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_SYSTEM_INFORMATION,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,http://tizen.org/privilege/system&http://tizen.org/privilege/systemmanager
-common,wrt,partner,2.1,9.9,yes,http://tizen.org/privilege/systemmanager,IDS_TPLATFORM_BODY_READING_SECURE_SYSTEM_INFORMATION,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_SECURE_SYSTEM_INFORMATION,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,
+common,wrt,partner,2.1,9.9,yes,http://tizen.org/privilege/systemmanager,IDS_TPLATFORM_BODY_READING_SECURE_SYSTEM_INFORMATION,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_SECURE_SYSTEM_INFORMATION,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,http://tizen.org/privilege/telephony
 mobile,wrt,public,1,2.3,no,http://tizen.org/privilege/systemmanager.info,IDS_TPLATFORM_BODY_READING_SECURE_SYSTEM_INFORMATION,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_SECURE_SYSTEM_INFORMATION,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,http://tizen.org/privilege/system&http://tizen.org/privilege/systemmanager
 common,wrt,public,1,2.3,no,http://tizen.org/privilege/systemsetting.read,,,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,http://tizen.org/privilege/setting
 common,wrt,public,1,2.3,no,http://tizen.org/privilege/systemsetting.write,,,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,http://tizen.org/privilege/setting
index 90a060d..3e63a5e 100644 (file)
Binary files a/capi/res/dbspace/wrt_privilege_info.db and b/capi/res/dbspace/wrt_privilege_info.db differ
index 8c23a51..4e5a8e9 100755 (executable)
 
 typedef enum
 {
-    PRIVILIEGE_DB_MANAGER_PROFILE_TYPE_COMMON   = 0,
-    PRIVILIEGE_DB_MANAGER_PROFILE_TYPE_MOBILE   = 1,
-    PRIVILIEGE_DB_MANAGER_PROFILE_TYPE_WEARABLE = 2
+    PRIVILEGE_DB_MANAGER_PROFILE_TYPE_COMMON   = 0,
+    PRIVILEGE_DB_MANAGER_PROFILE_TYPE_MOBILE   = 1,
+    PRIVILEGE_DB_MANAGER_PROFILE_TYPE_WEARABLE = 2,
+    PRIVILEGE_DB_MANAGER_PROFILE_TYPE_TV = 3
 } privilege_db_manager_profile_type_e;
 
 #ifdef PROFILE_TYPE_MOBILE
-    static privilege_db_manager_profile_type_e g_privilege_db_manager_profile_type = PRIVILIEGE_DB_MANAGER_PROFILE_TYPE_MOBILE;
+    static privilege_db_manager_profile_type_e g_privilege_db_manager_profile_type = PRIVILEGE_DB_MANAGER_PROFILE_TYPE_MOBILE;
 #elif PROFILE_TYPE_WEARABLE
-    static privilege_db_manager_profile_type_e g_privilege_db_manager_profile_type = PRIVILIEGE_DB_MANAGER_PROFILE_TYPE_WEARABLE;
+    static privilege_db_manager_profile_type_e g_privilege_db_manager_profile_type = PRIVILEGE_DB_MANAGER_PROFILE_TYPE_WEARABLE;
+#elif PROFILE_TYPE_TV
+    static privilege_db_manager_profile_type_e g_privilege_db_manager_profile_type = PRIVILEGE_DB_MANAGER_PROFILE_TYPE_TV;
 #else
-    static privilege_db_manager_profile_type_e g_privilege_db_manager_profile_type = PRIVILIEGE_DB_MANAGER_PROFILE_TYPE_COMMON;
+    static privilege_db_manager_profile_type_e g_privilege_db_manager_profile_type = PRIVILEGE_DB_MANAGER_PROFILE_TYPE_COMMON;
 #endif
 
 #define TryReturn(condition, returnValue, ...)  \
@@ -37,7 +40,7 @@ int __initialize_db(sqlite3** db, privilege_db_manager_package_type_e package_ty
 {
     char* db_path = NULL;
 
-    if(package_type == PRIVILIEGE_DB_MANAGER_PACKAGE_TYPE_CORE){
+    if(package_type == PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE){
         db_path = PRIVILEGE_INFO_CORE_DB_PATH;
     }else{
         db_path = PRIVILEGE_INFO_WRT_DB_PATH;
@@ -48,9 +51,9 @@ int __initialize_db(sqlite3** db, privilege_db_manager_package_type_e package_ty
     {
         LOGE("[DB_FAIL] Can't open database %s : %s", db_path, sqlite3_errmsg(*db));
         sqlite3_close(*db);
-        return PRIVILIEGE_DB_MANAGER_ERR_CONNECTION_FAIL;
+        return PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL;
     }
-    return PRIVILIEGE_DB_MANAGER_ERR_NONE;
+    return PRIVILEGE_DB_MANAGER_ERR_NONE;
 }
 void __finalize_db(sqlite3* db, sqlite3_stmt* stmt)
 {
@@ -61,25 +64,25 @@ void __finalize_db(sqlite3* db, sqlite3_stmt* stmt)
         sqlite3_close(db);
 }
 
-int privilege_db_manager_get_privilege_list(GList** privilege_list)
+int privilege_db_manager_get_privilege_list(const char* api_version, privilege_db_manager_package_type_e package_type, GList** privilege_list)
 {
     sqlite3* db = NULL;
     sqlite3_stmt* stmt = NULL;
     int ret;
-    ret = __initialize_db(&db, PRIVILIEGE_DB_MANAGER_PACKAGE_TYPE_CORE);
-    if(ret != PRIVILIEGE_DB_MANAGER_ERR_NONE)
+    ret = __initialize_db(&db, package_type);
+    if(ret != PRIVILEGE_DB_MANAGER_ERR_NONE)
         return ret;
 
     GList* temp_privilege_list = NULL;
 
-    char* sql = sqlite3_mprintf("select privilege_name, privilege_level_id from privilege_info where profile_id=%d or profile_id=%d", PRIVILIEGE_DB_MANAGER_PROFILE_TYPE_COMMON, g_privilege_db_manager_profile_type);
+    char* sql = sqlite3_mprintf("select privilege_name, privilege_level_id, changed_to, api_version_issued, api_version_expired from privilege_info where (profile_id=%d or profile_id=%d) and package_type_id=%d", PRIVILEGE_DB_MANAGER_PROFILE_TYPE_COMMON, g_privilege_db_manager_profile_type, package_type);
 
     ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL);
     if(ret != SQLITE_OK)
     {
         LOGE("[DB_FAIL] fail to prepare database : %s", sqlite3_errmsg(db));
         sqlite3_close(db);
-        return PRIVILIEGE_DB_MANAGER_ERR_INVALID_QUERY;
+        return PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY;
     }
 
     do{
@@ -94,8 +97,10 @@ int privilege_db_manager_get_privilege_list(GList** privilege_list)
             privilege_info_db_row->privilege_display = NULL;
             privilege_info_db_row->privilege_description = NULL;
             privilege_info_db_row->privilege_level = NULL;
-            privilege_info_db_row->version = NULL;
+            privilege_info_db_row->issued_version = NULL;
+            privilege_info_db_row->expired_version = NULL;
             privilege_info_db_row->package_type = NULL;
+            privilege_info_db_row->changed_to = NULL;
             privilege_info_db_row->profile_id = 0;
             privilege_info_db_row->package_type_id = 0;
             privilege_info_db_row->privilege_level_id = 0;
@@ -103,11 +108,32 @@ int privilege_db_manager_get_privilege_list(GList** privilege_list)
             privilege_info_db_row->privilege_name = strdup((char*)sqlite3_column_text(stmt,0));
             if(privilege_info_db_row->privilege_name == NULL)
             {
-                LOGE("[PRIVILIEGE_DB_MANAGER_ERR_OUT_OF_MEMORY] privilege_name's strdup is failed.");
+                LOGE("[PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY] privilege_name's strdup is failed.");
                 free(privilege_info_db_row);
-                return PRIVILIEGE_DB_MANAGER_ERR_OUT_OF_MEMORY;
+                return PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY;
             }
             privilege_info_db_row->privilege_level_id = sqlite3_column_int(stmt,1);
+            privilege_info_db_row->changed_to = strdup((char*)sqlite3_column_text(stmt,2));
+            if(privilege_info_db_row->changed_to == NULL)
+            {
+                LOGE("[PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY] changed_to's strdup is failed.");
+                free(privilege_info_db_row);
+                return PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY;
+            }
+            privilege_info_db_row->issued_version = strdup((char*)sqlite3_column_text(stmt,3));
+            if(privilege_info_db_row->issued_version == NULL)
+            {
+                LOGE("[PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY] api_version_issued's strdup is failed.");
+                free(privilege_info_db_row);
+                return PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY;
+            }
+            privilege_info_db_row->expired_version = strdup((char*)sqlite3_column_text(stmt,4));
+            if(privilege_info_db_row->expired_version == NULL)
+            {
+                LOGE("[PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY] api_version_expired's strdup is failed.");
+                free(privilege_info_db_row);
+                return PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY;
+            }
             temp_privilege_list = g_list_append(temp_privilege_list, privilege_info_db_row);
         }
     }while (ret == SQLITE_ROW);
@@ -116,7 +142,7 @@ int privilege_db_manager_get_privilege_list(GList** privilege_list)
 
     __finalize_db(db, stmt);
 
-    return PRIVILIEGE_DB_MANAGER_ERR_NONE;
+    return PRIVILEGE_DB_MANAGER_ERR_NONE;
 }
 
 int privilege_db_manager_get_privilege_display(privilege_db_manager_package_type_e package_type, const char* privilege_name, const char* api_version, char** privilege_display)
@@ -125,18 +151,18 @@ int privilege_db_manager_get_privilege_display(privilege_db_manager_package_type
     sqlite3_stmt* stmt = NULL;
     int ret;
     ret = __initialize_db(&db, package_type);
-    if(ret != PRIVILIEGE_DB_MANAGER_ERR_NONE)
+    if(ret != PRIVILEGE_DB_MANAGER_ERR_NONE)
         return ret;
 
     char* sql = sqlite3_mprintf("select privilege_display from privilege_info where (profile_id=%d or profile_id=%d) and package_type_id=%d and privilege_name=%Q and api_version_issued<=%Q and api_version_expired>=%Q",
-                    PRIVILIEGE_DB_MANAGER_PROFILE_TYPE_COMMON, g_privilege_db_manager_profile_type, package_type, privilege_name, api_version, api_version);
+                    PRIVILEGE_DB_MANAGER_PROFILE_TYPE_COMMON, g_privilege_db_manager_profile_type, package_type, privilege_name, api_version, api_version);
 
     ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL);
     if(ret != SQLITE_OK)
     {
         LOGE("[DB_FAIL] fail to prepare database : %s", sqlite3_errmsg(db));
         sqlite3_close(db);
-        return PRIVILIEGE_DB_MANAGER_ERR_INVALID_QUERY;
+        return PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY;
     }
 
     ret = sqlite3_step(stmt);
@@ -145,13 +171,13 @@ int privilege_db_manager_get_privilege_display(privilege_db_manager_package_type
         LOGD("privilege_display = %s", (char*)sqlite3_column_text(stmt,0));
 
         *privilege_display = strdup((char*)sqlite3_column_text(stmt,0));
-        TryReturn(*privilege_display != NULL, PRIVILIEGE_DB_MANAGER_ERR_OUT_OF_MEMORY, "[PRIVILIEGE_DB_MANAGER_ERR_OUT_OF_MEMORY] privilege_name's strdup is failed.");
+        TryReturn(*privilege_display != NULL, PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY, "[PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY] privilege_name's strdup is failed.");
         __finalize_db(db, stmt);
-        return PRIVILIEGE_DB_MANAGER_ERR_NONE;
+        return PRIVILEGE_DB_MANAGER_ERR_NONE;
     }
 
     __finalize_db(db, stmt);
-    return PRIVILIEGE_DB_NO_EXIST_RESULT;
+    return PRIVILEGE_DB_NO_EXIST_RESULT;
 }
 
 int privilege_db_manager_get_privilege_description(privilege_db_manager_package_type_e package_type, const char* privilege_name, const char* api_version, char** privilege_description)
@@ -160,18 +186,18 @@ int privilege_db_manager_get_privilege_description(privilege_db_manager_package_
     sqlite3_stmt* stmt = NULL;
     int ret;
     ret = __initialize_db(&db, package_type);
-    if(ret != PRIVILIEGE_DB_MANAGER_ERR_NONE)
+    if(ret != PRIVILEGE_DB_MANAGER_ERR_NONE)
         return ret;
 
     char* sql = sqlite3_mprintf("select privilege_description from privilege_info where (profile_id=%d or profile_id=%d) and package_type_id=%d and privilege_name=%Q and api_version_issued<=%Q and api_version_expired>=%Q",
-                    PRIVILIEGE_DB_MANAGER_PROFILE_TYPE_COMMON, g_privilege_db_manager_profile_type, package_type, privilege_name, api_version, api_version);
+                    PRIVILEGE_DB_MANAGER_PROFILE_TYPE_COMMON, g_privilege_db_manager_profile_type, package_type, privilege_name, api_version, api_version);
 
     ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL);
     if(ret != SQLITE_OK)
     {
         LOGE("[DB_FAIL] fail to prepare database : %s", sqlite3_errmsg(db));
         sqlite3_close(db);
-        return PRIVILIEGE_DB_MANAGER_ERR_INVALID_QUERY;
+        return PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY;
     }
 
     ret = sqlite3_step(stmt);
@@ -180,14 +206,14 @@ int privilege_db_manager_get_privilege_description(privilege_db_manager_package_
         LOGD("privilege_description = %s", (char*)sqlite3_column_text(stmt,0));
 
         *privilege_description = strdup((char*)sqlite3_column_text(stmt,0));
-        TryReturn(*privilege_description != NULL, PRIVILIEGE_DB_MANAGER_ERR_OUT_OF_MEMORY, "[PRIVILIEGE_DB_MANAGER_ERR_OUT_OF_MEMORY] privilege_name's strdup is failed.");
+        TryReturn(*privilege_description != NULL, PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY, "[PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY] privilege_name's strdup is failed.");
 
         __finalize_db(db, stmt);
-        return PRIVILIEGE_DB_MANAGER_ERR_NONE;
+        return PRIVILEGE_DB_MANAGER_ERR_NONE;
     }
 
     __finalize_db(db, stmt);
-    return PRIVILIEGE_DB_NO_EXIST_RESULT;
+    return PRIVILEGE_DB_NO_EXIST_RESULT;
 }
 
 int privilege_db_manager_get_privilege_group_display(privilege_db_manager_package_type_e package_type, const char* privilege_name, const char* api_version, int* privilege_group_number)
@@ -196,18 +222,18 @@ int privilege_db_manager_get_privilege_group_display(privilege_db_manager_packag
     sqlite3_stmt* stmt = NULL;
     int ret;
     ret = __initialize_db(&db, package_type);
-    if(ret != PRIVILIEGE_DB_MANAGER_ERR_NONE)
+    if(ret != PRIVILEGE_DB_MANAGER_ERR_NONE)
         return ret;
 
     char* sql = sqlite3_mprintf("select privilege_group_id from privilege_info where (profile_id=%d or profile_id=%d) and package_type_id=%d and privilege_name=%Q and api_version_issued<=%Q and api_version_expired>=%Q",
-                    PRIVILIEGE_DB_MANAGER_PROFILE_TYPE_COMMON, g_privilege_db_manager_profile_type, package_type, privilege_name, api_version, api_version);
+                    PRIVILEGE_DB_MANAGER_PROFILE_TYPE_COMMON, g_privilege_db_manager_profile_type, package_type, privilege_name, api_version, api_version);
 
     ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL);
     if(ret != SQLITE_OK)
     {
         LOGE("[DB_FAIL] fail to prepare database : %s", sqlite3_errmsg(db));
         sqlite3_close(db);
-        return PRIVILIEGE_DB_MANAGER_ERR_INVALID_QUERY;
+        return PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY;
     }
 
     ret = sqlite3_step(stmt);
@@ -217,11 +243,11 @@ int privilege_db_manager_get_privilege_group_display(privilege_db_manager_packag
         LOGD("privilege_group_number = %d", *privilege_group_number);
 
         __finalize_db(db, stmt);
-        return PRIVILIEGE_DB_MANAGER_ERR_NONE;
+        return PRIVILEGE_DB_MANAGER_ERR_NONE;
     }
 
     __finalize_db(db, stmt);
-    return PRIVILIEGE_DB_NO_EXIST_RESULT;
+    return PRIVILEGE_DB_NO_EXIST_RESULT;
 }
 
 
index a77632e..67c0f0d 100644 (file)
@@ -23,6 +23,7 @@
 #include "privilege_db_manager.h"
 #include "privilege_info.h"
 #include "privilege_info_types.h"
+#include "privilege_manager.h"
 
 #ifdef LOG_TAG
 #undef LOG_TAG
@@ -46,28 +47,28 @@ int privilege_info_privilege_list_by_pkgid_callback (const char *privilege_name,
 
     int group_id = 6;
     //Native
-    int ret = privilege_db_manager_get_privilege_group_display(PRIVILIEGE_DB_MANAGER_PACKAGE_TYPE_CORE, privilege_name, "2.3", &group_id);
-    if(ret == PRIVILIEGE_DB_MANAGER_ERR_NONE)
+    int ret = privilege_db_manager_get_privilege_group_display(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, privilege_name, "2.3", &group_id);
+    if(ret == PRIVILEGE_DB_MANAGER_ERR_NONE)
     {
         LOGD("group_id = %d", group_id);
         groupTable[group_id] = 1;
 
         return PRVMGR_ERR_NONE;
     }
-    else if(ret != PRIVILIEGE_DB_NO_EXIST_RESULT)
+    else if(ret != PRIVILEGE_DB_NO_EXIST_RESULT)
     {
         return PRVMGR_ERR_INTERNAL_ERROR;
     }
     //Web
-    ret = privilege_db_manager_get_privilege_group_display(PRIVILIEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege_name, "2.3", &group_id);
-    if(ret == PRIVILIEGE_DB_MANAGER_ERR_NONE)
+    ret = privilege_db_manager_get_privilege_group_display(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege_name, "2.3", &group_id);
+    if(ret == PRIVILEGE_DB_MANAGER_ERR_NONE)
     {
         LOGD("group_id = %d", group_id);
         groupTable[group_id] = 1;
 
         return PRVMGR_ERR_NONE;
     }
-    else if(ret != PRIVILIEGE_DB_NO_EXIST_RESULT)
+    else if(ret != PRIVILEGE_DB_NO_EXIST_RESULT)
     {
         return PRVMGR_ERR_INTERNAL_ERROR;
     }
@@ -122,8 +123,8 @@ int privilege_info_privilege_list_callback (const char *privilege_name, void *us
     TryReturn(user_data != NULL, PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] user_data is NULL");
 
     //Native
-    int ret = privilege_db_manager_get_privilege_group_display(PRIVILIEGE_DB_MANAGER_PACKAGE_TYPE_CORE, privilege_name, "2.3", &group_id);
-    if(ret == PRIVILIEGE_DB_MANAGER_ERR_NONE)
+    int ret = privilege_db_manager_get_privilege_group_display(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, privilege_name, "2.3", &group_id);
+    if(ret == PRIVILEGE_DB_MANAGER_ERR_NONE)
     {
         if(group_id == data.privilege_group){
             LOGD("data.privilege_group = %d", data.privilege_group);
@@ -133,14 +134,14 @@ int privilege_info_privilege_list_callback (const char *privilege_name, void *us
             return PRVMGR_ERR_NONE;
         }
     }
-    else if(ret != PRIVILIEGE_DB_NO_EXIST_RESULT)
+    else if(ret != PRIVILEGE_DB_NO_EXIST_RESULT)
     {
         return PRVMGR_ERR_INTERNAL_ERROR;
     }
 
     //Web
-    ret = privilege_db_manager_get_privilege_group_display(PRIVILIEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege_name, "2.3", &group_id);
-    if(ret == PRIVILIEGE_DB_MANAGER_ERR_NONE)
+    ret = privilege_db_manager_get_privilege_group_display(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege_name, "2.3", &group_id);
+    if(ret == PRIVILEGE_DB_MANAGER_ERR_NONE)
     {
         if(group_id == data.privilege_group){
             LOGD("data.privilege_group = %d", data.privilege_group);
@@ -150,7 +151,7 @@ int privilege_info_privilege_list_callback (const char *privilege_name, void *us
             return PRVMGR_ERR_NONE;
         }
     }
-    else if(ret != PRIVILIEGE_DB_NO_EXIST_RESULT)
+    else if(ret != PRIVILEGE_DB_NO_EXIST_RESULT)
     {
         return PRVMGR_ERR_INTERNAL_ERROR;
     }
@@ -288,11 +289,11 @@ int privilege_info_get_name_string_id(const char *privilege, char **name_string_
     char* temp = NULL;
 
     // Check Native
-    int ret = privilege_db_manager_get_privilege_display(PRIVILIEGE_DB_MANAGER_PACKAGE_TYPE_CORE, privilege, "2.3", &temp);
+    int ret = privilege_db_manager_get_privilege_display(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, privilege, "2.3", &temp);
 
     LOGD("privilege = %s, string id = %s", privilege, temp);
 
-    if(ret == PRIVILIEGE_DB_MANAGER_ERR_NONE)
+    if(ret == PRIVILEGE_DB_MANAGER_ERR_NONE)
     {
         if(temp == NULL)
         {
@@ -317,7 +318,7 @@ int privilege_info_get_name_string_id(const char *privilege, char **name_string_
             return PRVMGR_ERR_NONE;
         }
     }
-    else if(ret != PRIVILIEGE_DB_NO_EXIST_RESULT)
+    else if(ret != PRIVILEGE_DB_NO_EXIST_RESULT)
     {
         free(temp);
         return PRVMGR_ERR_INTERNAL_ERROR;
@@ -330,9 +331,9 @@ int privilege_info_get_name_string_id(const char *privilege, char **name_string_
     }
 
     // Check WRT
-    ret = privilege_db_manager_get_privilege_display(PRIVILIEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege, "2.3", &temp);
+    ret = privilege_db_manager_get_privilege_display(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege, "2.3", &temp);
 
-    if(ret == PRIVILIEGE_DB_MANAGER_ERR_NONE)
+    if(ret == PRIVILEGE_DB_MANAGER_ERR_NONE)
     {
         if(temp == NULL)
         {
@@ -363,7 +364,7 @@ int privilege_info_get_name_string_id(const char *privilege, char **name_string_
             return PRVMGR_ERR_NONE;
         }
     }
-    else if(ret == PRIVILIEGE_DB_NO_EXIST_RESULT)
+    else if(ret == PRIVILEGE_DB_NO_EXIST_RESULT)
     {
         *name_string_id = NULL;
         free(temp);
@@ -443,9 +444,9 @@ int privilege_info_get_description_string_id(const char *privilege, char **descr
     char* temp = NULL;
 
     // Check Native
-    int ret = privilege_db_manager_get_privilege_description(PRIVILIEGE_DB_MANAGER_PACKAGE_TYPE_CORE, privilege, "2.3", &temp);
+    int ret = privilege_db_manager_get_privilege_description(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, privilege, "2.3", &temp);
 
-    if(ret == PRIVILIEGE_DB_MANAGER_ERR_NONE)
+    if(ret == PRIVILEGE_DB_MANAGER_ERR_NONE)
     {
         if(temp == NULL)
         {
@@ -470,7 +471,7 @@ int privilege_info_get_description_string_id(const char *privilege, char **descr
             return PRVMGR_ERR_NONE;
         }
     }
-    else if(ret != PRIVILIEGE_DB_NO_EXIST_RESULT)
+    else if(ret != PRIVILEGE_DB_NO_EXIST_RESULT)
     {
         free(temp);
         return PRVMGR_ERR_INTERNAL_ERROR;
@@ -483,9 +484,9 @@ int privilege_info_get_description_string_id(const char *privilege, char **descr
     }
 
     // Check Web
-    ret = privilege_db_manager_get_privilege_description(PRIVILIEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege, "2.3", &temp);
+    ret = privilege_db_manager_get_privilege_description(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege, "2.3", &temp);
 
-    if(ret == PRIVILIEGE_DB_MANAGER_ERR_NONE)
+    if(ret == PRIVILEGE_DB_MANAGER_ERR_NONE)
     {
         if(temp == NULL)
         {
@@ -516,7 +517,7 @@ int privilege_info_get_description_string_id(const char *privilege, char **descr
             return PRVMGR_ERR_NONE;
         }
     }
-    else if(ret == PRIVILIEGE_DB_NO_EXIST_RESULT)
+    else if(ret == PRIVILEGE_DB_NO_EXIST_RESULT)
     {
         *description_string_id = NULL;
         free(temp);
@@ -580,109 +581,5 @@ int privilege_info_get_privilege_description(const char *privilege, char **descr
     return  PRVMGR_ERR_NONE;
 }
 
-static void __free_privilege_list(GList* privilege_list)
-{
-    GList* l = NULL;
-    for (l = privilege_list; l != NULL; l = l->next)
-    {
-        privilege_info_db_row_s* privilege_info_db_row = (privilege_info_db_row_s*)l->data;
-        if(privilege_info_db_row->privilege_name != NULL)
-            free(privilege_info_db_row->privilege_name);
-    }
-}
-
-
-static int __privilege_manager_core_privilege_level(const char* privilege, int* privilege_level)
-{
-    TryReturn(privilege != NULL, PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege is NULL");
-
-    int ret;
-    GList* privilege_list;
-    ret = privilege_db_manager_get_privilege_list(&privilege_list);
-    if(ret != PRIVILIEGE_DB_MANAGER_ERR_NONE){
-        LOGE("[FAIL TO CALL FUNCTION] privilege_db_manager_get_privilege_list()");
-        return PRVMGR_ERR_INTERNAL_ERROR;
-    }
 
-    GList* l = NULL;
-    for (l = privilege_list; l != NULL; l = l->next)
-    {
-        privilege_info_db_row_s* privilege_info_db_row = (privilege_info_db_row_s*)l->data;
-        if (strcmp(privilege_info_db_row->privilege_name, privilege) == 0)
-        {
-            *privilege_level = privilege_info_db_row->privilege_level_id;
-            __free_privilege_list(privilege_list);
-            return PRVMGR_ERR_NONE;
-        }
-    }
-    __free_privilege_list(privilege_list);
-
-    return  PRVMGR_ERR_NO_EXIST_PRIVILEGE;
-}
-
-int privilege_manager_verify_privilege_list(privilege_manager_package_type_e package_type, GList* privilege_list, privilege_manager_visibility_e visibility, char** error_privilege_name)
-{
-    LOGD("privilege_info_compare_privilege_level called");
-    GList *l;
-    int ret;
-    int i = 0;
-    *error_privilege_name = NULL;
-
-    TryReturn(privilege_list != NULL, PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege_list is NULL");
-
-    for (l = privilege_list; l != NULL; l = l->next)
-    {
-        int privilege_level_id;
-        char* privilege_name = (char*)l->data;
-
-        TryReturn(privilege_name != NULL, PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege_list[%d] is NULL", i);
-        i++;
-
-        LOGD("Checking privilege : %s", privilege_name);
-
-        ret = __privilege_manager_core_privilege_level(privilege_name, &privilege_level_id);
-        if(ret == PRVMGR_ERR_NO_EXIST_PRIVILEGE)
-        {
-            LOGE("[PRVMGR_ERR_NO_EXIST_PRIVILEGE] There are no privilege %s in DB", privilege_name);
-            *error_privilege_name = (char*)calloc(strlen(privilege_name) + 1, sizeof(char));
-            TryReturn(*error_privilege_name != NULL, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] Memory allocation failed.");
-            memcpy(*error_privilege_name, privilege_name, strlen(privilege_name));
-
-            return  PRVMGR_ERR_NO_EXIST_PRIVILEGE;
-        }
-        else if(ret == PRVMGR_ERR_NONE)
-        {
-            if(visibility == PRVMGR_PACKAGE_VISIBILITY_PARTNER){
-                if(privilege_level_id == PRIVILIEGE_DB_MANAGER_PRIVILEGE_LEVEL_PLATFORM)
-                {
-                    LOGE("[PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL] Visibility and Privilege level are mismatched");
-                    LOGE("[PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL] Visibility : partner, Privilege Level : %d", privilege_level_id);
-                    *error_privilege_name = (char*)calloc(strlen(privilege_name) + 1, sizeof(char));
-                    TryReturn(*error_privilege_name != NULL, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] Memory allocation failed.");
-                    memcpy(*error_privilege_name, privilege_name, strlen(privilege_name));
-
-                    return PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL;
-                }
-            }
-            else if(visibility == PRVMGR_PACKAGE_VISIBILITY_PUBLIC){
-                if(privilege_level_id == PRIVILIEGE_DB_MANAGER_PRIVILEGE_LEVEL_PARTNER || privilege_level_id == PRIVILIEGE_DB_MANAGER_PRIVILEGE_LEVEL_PLATFORM)
-                {
-                    LOGE("[PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL] Visibility and Privilege level are mismatched");
-                    LOGE("[PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL] Visibility : public, Privilege Level : %d", privilege_level_id);
-                    *error_privilege_name = (char*)calloc(strlen(privilege_name) + 1, sizeof(char));
-                    TryReturn(*error_privilege_name != NULL, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] Memory allocation failed.");
-                    memcpy(*error_privilege_name, privilege_name, strlen(privilege_name));
-
-                    return PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL;
-                }
-            }
-        }
-        else
-        {
-            return ret;
-        }
-    }
-
-    return PRVMGR_ERR_NONE;
-}
 
index 6495872..fb965fb 100755 (executable)
@@ -1,10 +1,11 @@
-
 #include <dlog.h>
 #include <stdlib.h>
+#include <stdio.h>
 #include "privilege_db_manager.h"
 #include "privilege_manager.h"
 
-
+#define MESSAGE_SIZE            512
+#define MESSAGE_LIST_SIZE       10000
 
 #ifdef LOG_TAG
 #undef LOG_TAG
         return returnValue; \
     } \
     else {;}
+/*
+#ifdef CURRENT_TIZEN_VERSION
+    static char* privilege_manager_current_tizen_version = (char*)CURRENT_TIZEN_VERSION;
+#else
+    static char* privilege_manager_current_tizen_version = "2.4"
+#endif
+*/
+
 
 static void __free_privilege_list(GList* privilege_list)
 {
@@ -29,106 +38,328 @@ static void __free_privilege_list(GList* privilege_list)
     }
 }
 
-static int __privilege_manager_check_privilege_list(const char* privilege, int* privilege_level)
+
+static int __privilege_manager_check_privilege_list(const char* api_version, const char* privilege, GList* vaild_privilege_list, int* privilege_level, char** changed_to, char** valid_api_version)
 {
     TryReturn(privilege != NULL, PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege is NULL");
-
-    int ret;
-    GList* privilege_list;
-    ret = privilege_db_manager_get_privilege_list(&privilege_list);
-    if(ret != PRIVILIEGE_DB_MANAGER_ERR_NONE){
-        LOGE("[FAIL TO CALL FUNCTION] privilege_db_manager_get_privilege_list()");
-        return PRVMGR_ERR_INTERNAL_ERROR;
-    }
-
+    int i, is_valid_version = 0;
     GList* l = NULL;
-    for (l = privilege_list; l != NULL; l = l->next)
+    for (l = vaild_privilege_list; l != NULL; l = l->next)
     {
         privilege_info_db_row_s* privilege_info_db_row = (privilege_info_db_row_s*)l->data;
         if (strcmp(privilege_info_db_row->privilege_name, privilege) == 0)
         {
-            *privilege_level = privilege_info_db_row->privilege_level_id;
-            __free_privilege_list(privilege_list);
-            return PRVMGR_ERR_NONE;
+            LOGD("Matched privilege name exist");
+            LOGD("Check api version");
+            for(i=0; i<3; i++)
+            {
+                if( !(api_version[i] <= privilege_info_db_row->expired_version[i]) )
+                {
+                    is_valid_version = 1;
+                }
+                else if ( !(api_version[i] >= privilege_info_db_row->issued_version[i]))
+                {
+                        is_valid_version = 2;
+                }
+            }
+
+            if(is_valid_version > 0)
+            {
+                LOGD("%s is invalid in tizen version: %s", privilege_info_db_row->privilege_name,  api_version);
+            }
+
+            if(is_valid_version == 0)
+            {
+                *privilege_level = privilege_info_db_row->privilege_level_id;
+                return PRVMGR_ERR_NONE;
+            }
+            else if(is_valid_version == 1)
+            {
+                LOGD("privilege deprecated version is lower than api version");
+                *valid_api_version = strdup(privilege_info_db_row->expired_version);
+                TryReturn(valid_api_version != NULL, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] valid_api_version's strdup is failed.");
+                if(privilege_info_db_row->changed_to != NULL && strcmp(privilege_info_db_row->changed_to, "") != 0 )
+                {
+                    LOGE("%s was changed to %s", privilege, privilege_info_db_row->changed_to);
+
+                    *changed_to = strdup(privilege_info_db_row->changed_to);
+                    TryReturn(changed_to != NULL, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] changed_to's strdup is failed.");
+                }
+                return PRVMGR_ERR_DEPRECATED_PRIVILEGE;
+            }
+            else if(is_valid_version == 2)
+            {
+                LOGD("privilege issued version is higher than api version");
+                *valid_api_version = strdup(privilege_info_db_row->issued_version);
+                TryReturn(valid_api_version != NULL, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] valid_api_version's strdup is failed.");
+                return PRVMGR_ERR_NO_EXIST_PRIVILEGE;
+            }
         }
     }
-    __free_privilege_list(privilege_list);
 
     return  PRVMGR_ERR_NO_EXIST_PRIVILEGE;
 }
 
+const char* __get_privilege_level_string(privilege_db_manager_privilege_level_e privilege_db_manager_privilege_level)
+{
+    if(privilege_db_manager_privilege_level == PRIVILEGE_DB_MANAGER_PRIVILEGE_LEVEL_PUBLIC){
+        return "public";
+    }else if(privilege_db_manager_privilege_level == PRIVILEGE_DB_MANAGER_PRIVILEGE_LEVEL_PARTNER){
+        return "partner";
+    }else if(privilege_db_manager_privilege_level == PRIVILEGE_DB_MANAGER_PRIVILEGE_LEVEL_PLATFORM){
+        return "platform";
+    }else{
+        return "not defined privilege";
+    }
+}
+
 
-int privilege_manager_verify_privilege_name(privilege_manager_package_type_e package_type, GList* privilege_list, GList **error_privilege_name_list)
+int privilege_manager_verify_privilege(const char* api_version, privilege_manager_package_type_e package_type, GList* privilege_list, privilege_manager_visibility_e visibility, char **error_message)
 {
-    LOGD("privilege_manager_verify_privilege_name called");
+    LOGD("privilege_manager_verify_privilege called");
     GList *l;
     int ret;
     int ret_val = PRVMGR_ERR_NONE;
-    int i = 0;
-    GList* temp_error_privilege_list = NULL;
+    char message_list[MESSAGE_LIST_SIZE] = {0,};
+    char message[MESSAGE_SIZE] = {0,};
+    char* changed_to = NULL;
+    char* valid_api_version = NULL;
+    GList* vaild_privilege_list;
+    char* wrt_active_version = "2.4";
+    int is_vaild_wrt_version;
+
+    //Check invaild parameters
+    if (api_version == NULL){
+        LOGE("[PRVMGR_ERR_INVALID_PARAMETER] api_version is NULL");
+        *error_message = strdup("[PRVMGR_ERR_INVALID_PARAMETER] api_version is NULL");
+        TryReturn(error_message != NULL, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] error_message's strdup is failed.");
+
+        return PRVMGR_ERR_INVALID_PARAMETER;
+    }else{
+        int i;
+        int is_vaild_version_type = 1;
+        int api_version_size = strlen(api_version);
+        if( api_version_size % 2 == 1 && (3 <= api_version_size && api_version_size <= 7) ){
+            for(i=0; i<api_version_size; i++){
+                if(i % 2 == 0){
+                    if( !('0' <= api_version[i] && api_version[i] <= '9') ){
+                        is_vaild_version_type = 0;
+                    }
+                }else{
+                    if(api_version[i] != '.'){
+                        is_vaild_version_type = 0;
+                    }
+                }
+            }
+        }else{
+            is_vaild_version_type = 0;
+        }
 
-    TryReturn(privilege_list != NULL, PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege_list is NULL");
+        if(is_vaild_version_type == 0){
+            LOGE("[PRVMGR_ERR_INVALID_PARAMETER] %s is in invaild form. api_version form should be X.X, X.X.X or X.X.X.X (X=integer)", api_version);
+            *error_message = strdup("[PRVMGR_ERR_INVALID_PARAMETER] api_version form should be a X.X, X.X.X or X.X.X.X (X=integer)");
+            TryReturn(error_message != NULL, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] error_message's strdup is failed");
+
+            return PRVMGR_ERR_INVALID_PARAMETER;
+        }
+    }
+
+    if(package_type != PRVMGR_PACKAGE_TYPE_WRT && package_type != PRVMGR_PACKAGE_TYPE_CORE){
+        LOGD("checking package type = %d", package_type);
+        LOGE("[PRVMGR_ERR_INVALID_PARAMETER] package_type is not a PRVMGR_PACKAGE_TYPE_WRT or PRVMGR_PACKAGE_TYPE_CORE");
+        *error_message = strdup("[PRVMGR_ERR_INVALID_PARAMETER] package_type is a unknown type. package_type must be a PRVMGR_PACKAGE_TYPE_WRT or PRVMGR_PACKAGE_TYPE_CORE");
+        TryReturn(error_message != NULL, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] error_message's strdup is failed.");
+
+        return PRVMGR_ERR_INVALID_PARAMETER;
+    }
+
+    if( (visibility & PRVMGR_PACKAGE_VISIBILITY_PUBLIC) != PRVMGR_PACKAGE_VISIBILITY_PUBLIC
+        && (visibility & PRVMGR_PACKAGE_VISIBILITY_PARTNER) != PRVMGR_PACKAGE_VISIBILITY_PARTNER
+        && (visibility & PRVMGR_PACKAGE_VISIBILITY_PLATFORM) != PRVMGR_PACKAGE_VISIBILITY_PLATFORM ){
+
+        LOGE("[PRVMGR_ERR_INVALID_PARAMETER] visibility don't include any public, partner, platform");
+        *error_message = strdup("[INVALID_PARAMETER] Signature Level is invalid. Signature Level must be a public, partner or platform");
+        TryReturn(error_message != NULL, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] error_message's strdup is failed.");
+
+        return PRVMGR_ERR_INVALID_PARAMETER;
+    }
 
+
+    is_vaild_wrt_version = 1;
+    int i=0;
+    if(package_type == PRVMGR_PACKAGE_TYPE_WRT){
+        for(i=0; i<3; i++){
+            if( ! (api_version[i] >= wrt_active_version[i]) ){
+                is_vaild_wrt_version = 0;
+            }
+        }
+    }
+
+    if(privilege_list == NULL){
+        LOGE("[PRVMGR_ERR_INVALID_PARAMETER] privilege_list is NULL");
+        *error_message = strdup("[PRVMGR_ERR_INVALID_PARAMETER] privilege_list is NULL");
+        TryReturn(error_message != NULL, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] error_message's strdup is failed.");
+
+        return PRVMGR_ERR_INVALID_PARAMETER;
+    }
+
+
+    //Get vaild privilege list
+    ret = privilege_db_manager_get_privilege_list(api_version, package_type, &vaild_privilege_list);
+    if(ret != PRIVILEGE_DB_MANAGER_ERR_NONE){
+        LOGE("[FAIL TO CALL FUNCTION] privilege_db_manager_get_privilege_list()");
+        *error_message = strdup("[PRVMGR_ERR_INTERNAL_ERROR] failed to get privilege list from DB");
+        return PRVMGR_ERR_INTERNAL_ERROR;
+    }
+
+    //Compare received privilege with valid privilege list
     for (l = privilege_list; l != NULL; l = l->next)
     {
-        int privilege_level_id;
+        int privilege_level_id = PRIVILEGE_DB_MANAGER_PRIVILEGE_LEVEL_PUBLIC;
         char* privilege_name = (char*)l->data;
 
-        if(privilege_name == NULL)
+        LOGD("Checking privilege = %s", privilege_name);
+        ret = __privilege_manager_check_privilege_list(api_version, privilege_name, vaild_privilege_list, &privilege_level_id, &changed_to, &valid_api_version);
+
+        if( is_vaild_wrt_version == 0 )
         {
-            g_list_free(temp_error_privilege_list);
-            LOGE("[PRVMGR_ERR_INVALID_PARAMETER] privilege_list[%d] is NULL", i);
-            return PRVMGR_ERR_INVALID_PARAMETER;
+            ret = PRVMGR_ERR_NONE;
         }
-        i++;
 
-        LOGD("Checking privilege : %s", privilege_name);
-
-        ret = __privilege_manager_check_privilege_list(privilege_name, &privilege_level_id);
         if(ret == PRVMGR_ERR_NO_EXIST_PRIVILEGE)
         {
-            LOGE("[PRVMGR_ERR_NO_EXIST_PRIVILEGE] There are no privilege %s in DB", privilege_name);
+            LOGE("[PRVMGR_ERR_NO_EXIST_PRIVILEGE] There are no privilege %s in Tizen version %s", privilege_name, api_version);
 
-            char* error_privilege_name = strdup(privilege_name);
-            TryReturn(privilege_name != NULL, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] error_privilege_name's strdup is failed.");
+            memset(message, 0, MESSAGE_SIZE);
+            if(valid_api_version != NULL && strcmp(valid_api_version, "") != 0)
+            {
+                sprintf(message, "[NO_EXIST_PRIVILEGE]%s is issued at Tizen version %s\n", privilege_name, valid_api_version);
+            }
+            else
+            {
+                sprintf(message, "[NO_EXIST_PRIVILEGE]%s is an invalid privilege\n", privilege_name);
+            }
+
+            strcat(message_list, message);
+
+            ret_val = PRVMGR_ERR_INVALID_PRIVILEGE;
+
+        }else if(ret == PRVMGR_ERR_DEPRECATED_PRIVILEGE){
+
+            LOGE("[PRVMGR_ERR_DEPRECATED_PRIVILEGE]%s is deprecated before Tizen version %s", privilege_name, api_version);
+
+            memset(message, 0, MESSAGE_SIZE);
+            if(changed_to != NULL && strcmp(changed_to, "") != 0)
+            {
+                sprintf(message, "[DEPRECATED_PRIVILEGE]Use %s instead of %s\n", changed_to, privilege_name);
+            }
+            else
+            {
+                sprintf(message, "[DEPRECATED_PRIVIELGE]%s is deprecated after Tizen version %s\n", privilege_name, valid_api_version);
+            }
+            strcat(message_list, message);
+
+            ret_val = PRVMGR_ERR_INVALID_PRIVILEGE;
+
+        }else if(ret == PRVMGR_ERR_NONE){
+            LOGD("visibility = %d", visibility);
+            LOGD("privilege level = %d", privilege_level_id);
+
+            if((visibility & PRVMGR_PACKAGE_VISIBILITY_PUBLIC) == PRVMGR_PACKAGE_VISIBILITY_PUBLIC){
+                if(privilege_level_id == PRIVILEGE_DB_MANAGER_PRIVILEGE_LEVEL_PARTNER || privilege_level_id == PRIVILEGE_DB_MANAGER_PRIVILEGE_LEVEL_PLATFORM)
+                {
+                    LOGE("[PRVMGR_ERR_MISMATCHED_PRIVILEGE_LEVEL] Visibility and Privilege level are mismatched");
+                    LOGE("[PRVMGR_ERR_MISMATCHED_PRIVILEGE_LEVEL] Visibility = public, Privilege Level = %s", __get_privilege_level_string(privilege_level_id));
+
+                    memset(message, 0, MESSAGE_SIZE);
+                    sprintf(message, "[MISMATCHED_PRIVILEGE_LEVEL]Signature Level is too low to use %s - Signature Level = public, Privilege Level = %s\n", privilege_name, __get_privilege_level_string(privilege_level_id));
+
+                    strcat(message_list, message);
+
+                    ret_val = PRVMGR_ERR_INVALID_PRIVILEGE;
+                }
+            }
+            else if((visibility & PRVMGR_PACKAGE_VISIBILITY_PARTNER) == PRVMGR_PACKAGE_VISIBILITY_PARTNER){
+                if(privilege_level_id == PRIVILEGE_DB_MANAGER_PRIVILEGE_LEVEL_PLATFORM)
+                {
+                    LOGE("[PRVMGR_ERR_MISMATCHED_PRIVILEGE_LEVEL] Visibility and Privilege level are mismatched");
+                    LOGE("[PRVMGR_ERR_MISMATCHED_PRIVILEGE_LEVEL] Visibility = partner, Privilege Level = %s", __get_privilege_level_string(privilege_level_id));
+
+                    memset(message, 0, MESSAGE_SIZE);
+                    sprintf(message, "[MISMATCHED_PRIVILEGE_LEVEL]Signature Level is too low to use %s - Signature Level = partner, Privilege Level = %s\n", privilege_name, __get_privilege_level_string(privilege_level_id));
+
+                    strcat(message_list, message);
+
+                    ret_val = PRVMGR_ERR_INVALID_PRIVILEGE;
+                }
+            }
+        }
+        else if(ret == PRVMGR_ERR_INVALID_PARAMETER)
+        {
+            LOGE("[PRVMGR_ERR_INVALID_PARAMETER] privilege_name is NULL");
+            *error_message = strdup("[INVALID_PARAMETER] Invaild parameter was passed.");
+            TryReturn(error_message != NULL, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] error_message's strdup is failed.");
 
-            temp_error_privilege_list = g_list_append(temp_error_privilege_list, error_privilege_name);
-            ret_val = PRVMGR_ERR_NO_EXIST_PRIVILEGE;
+            ret_val = PRVMGR_ERR_INVALID_PARAMETER;
+            goto FINISH;
         }
-        else if(ret == PRVMGR_ERR_INTERNAL_ERROR || ret == PRVMGR_ERR_INVALID_PARAMETER)
+        else if(ret == PRVMGR_ERR_INTERNAL_ERROR)
         {
-            return ret;
+            LOGE("[PRVMGR_ERR_INVALID_PARAMETER] Unknown Error occured.");
+            *error_message = strdup("[INTERNAL_ERROR] Unknown Error occured.");
+            TryReturn(error_message != NULL, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] error_message's strdup is failed.");
+
+            ret_val = PRVMGR_ERR_INTERNAL_ERROR;
+            goto FINISH;
         }
     }
 
-    *error_privilege_name_list = temp_error_privilege_list;
+    if(ret_val != PRVMGR_ERR_NONE){
+        *error_message = strdup(message_list);
+        TryReturn(error_message != NULL, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] error_message's strdup is failed.");
+    }
 
+FINISH:
+    g_list_free(vaild_privilege_list);
     return ret_val;
 }
 
 
-const char* __get_privilege_level_string(privilege_db_manager_privilege_level_e privilege_db_manager_privilege_level)
+static int __privilege_manager_core_privilege_level(const char* privilege, int* privilege_level)
 {
-    if(privilege_db_manager_privilege_level == PRIVILIEGE_DB_MANAGER_PRIVILEGE_LEVEL_PUBLIC){
-        return "public";
-    }else if(privilege_db_manager_privilege_level == PRIVILIEGE_DB_MANAGER_PRIVILEGE_LEVEL_PARTNER){
-        return "partner";
-    }else if(privilege_db_manager_privilege_level == PRIVILIEGE_DB_MANAGER_PRIVILEGE_LEVEL_PLATFORM){
-        return "platform";
-    }else{
-        return "not defined privilege";
+    TryReturn(privilege != NULL, PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege is NULL");
+
+    int ret;
+    GList* privilege_list;
+    ret = privilege_db_manager_get_privilege_list("2.4",PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, &privilege_list);
+    if(ret != PRIVILEGE_DB_MANAGER_ERR_NONE){
+        LOGE("[FAIL TO CALL FUNCTION] privilege_db_manager_get_privilege_list()");
+        return PRVMGR_ERR_INTERNAL_ERROR;
+    }
+
+    GList* l = NULL;
+    for (l = privilege_list; l != NULL; l = l->next)
+    {
+        privilege_info_db_row_s* privilege_info_db_row = (privilege_info_db_row_s*)l->data;
+        if (strcmp(privilege_info_db_row->privilege_name, privilege) == 0)
+        {
+            *privilege_level = privilege_info_db_row->privilege_level_id;
+            __free_privilege_list(privilege_list);
+            return PRVMGR_ERR_NONE;
+        }
     }
+    __free_privilege_list(privilege_list);
+
+    return  PRVMGR_ERR_NO_EXIST_PRIVILEGE;
 }
 
-int privilege_manager_verify_privilege_level(privilege_manager_package_type_e package_type, GList* privilege_list, privilege_manager_visibility_e visibility, GList **error_privilege_name_list, GList **error_privilege_level_list)
+int privilege_manager_verify_privilege_list(privilege_manager_package_type_e package_type, GList* privilege_list, privilege_manager_visibility_e visibility, char** error_privilege_name)
 {
-    LOGD("privilege_manager_verify_privilege_level called");
+    LOGD("privilege_info_compare_privilege_level called");
     GList *l;
     int ret;
-    int ret_val = PRVMGR_ERR_NONE;
     int i = 0;
-    GList* temp_error_privilege_name_list = NULL;
-    GList* temp_error_privilege_level_list = NULL;
+    *error_privilege_name = NULL;
 
     TryReturn(privilege_list != NULL, PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege_list is NULL");
 
@@ -137,78 +368,54 @@ int privilege_manager_verify_privilege_level(privilege_manager_package_type_e pa
         int privilege_level_id;
         char* privilege_name = (char*)l->data;
 
-        if(privilege_name == NULL)
-        {
-            g_list_free(temp_error_privilege_level_list);
-            g_list_free(temp_error_privilege_name_list);
-            LOGE("[PRVMGR_ERR_INVALID_PARAMETER] privilege_list[%d] is NULL", i);
-            return PRVMGR_ERR_INVALID_PARAMETER;
-        }
+        TryReturn(privilege_name != NULL, PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege_list[%d] is NULL", i);
         i++;
 
         LOGD("Checking privilege : %s", privilege_name);
-        ret = __privilege_manager_check_privilege_list(privilege_name, &privilege_level_id);
-        if(ret == PRVMGR_ERR_NONE)
+
+        ret = __privilege_manager_core_privilege_level(privilege_name, &privilege_level_id);
+        if(ret == PRVMGR_ERR_NO_EXIST_PRIVILEGE)
         {
-            LOGD("visibility : %d", visibility);
-            LOGD("privilege level : %d", privilege_level_id);
+            LOGE("[PRVMGR_ERR_NO_EXIST_PRIVILEGE] There are no privilege %s in DB", privilege_name);
+            *error_privilege_name = (char*)calloc(strlen(privilege_name) + 1, sizeof(char));
+            TryReturn(*error_privilege_name != NULL, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] Memory allocation failed.");
+            memcpy(*error_privilege_name, privilege_name, strlen(privilege_name));
 
-            if((visibility & PRVMGR_PACKAGE_VISIBILITY_PUBLIC) == PRVMGR_PACKAGE_VISIBILITY_PUBLIC){
-                if(privilege_level_id == PRIVILIEGE_DB_MANAGER_PRIVILEGE_LEVEL_PARTNER || privilege_level_id == PRIVILIEGE_DB_MANAGER_PRIVILEGE_LEVEL_PLATFORM)
+            return  PRVMGR_ERR_NO_EXIST_PRIVILEGE;
+        }
+        else if(ret == PRVMGR_ERR_NONE)
+        {
+            if(visibility == PRVMGR_PACKAGE_VISIBILITY_PARTNER){
+                if(privilege_level_id == PRIVILEGE_DB_MANAGER_PRIVILEGE_LEVEL_PLATFORM)
                 {
                     LOGE("[PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL] Visibility and Privilege level are mismatched");
-                    LOGE("[PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL] Visibility : public, Privilege Level : %s", __get_privilege_level_string(privilege_level_id));
-                    char* error_privilege_name = strdup(privilege_name);
-                    TryReturn(error_privilege_name != NULL, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] error_privilege_name's strdup is failed.");
-                    char* error_privilege_level = strdup(__get_privilege_level_string(privilege_level_id));
-                    if(error_privilege_level == NULL)
-                    {
-                        free(error_privilege_name);
-                        LOGE("[PRVMGR_ERR_OUT_OF_MEMORY] error_privilege_level's strdup is failed.");
-                        return PRVMGR_ERR_OUT_OF_MEMORY;
-                    }
-                    temp_error_privilege_name_list = g_list_append(temp_error_privilege_name_list, error_privilege_name);
-                    temp_error_privilege_level_list = g_list_append(temp_error_privilege_level_list, error_privilege_level);
-                    ret_val = PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL;
+                    LOGE("[PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL] Visibility : partner, Privilege Level : %d", privilege_level_id);
+                    *error_privilege_name = (char*)calloc(strlen(privilege_name) + 1, sizeof(char));
+                    TryReturn(*error_privilege_name != NULL, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] Memory allocation failed.");
+                    memcpy(*error_privilege_name, privilege_name, strlen(privilege_name));
+
+                    return PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL;
                 }
             }
-            else if((visibility & PRVMGR_PACKAGE_VISIBILITY_PARTNER) == PRVMGR_PACKAGE_VISIBILITY_PARTNER){
-                if(privilege_level_id == PRIVILIEGE_DB_MANAGER_PRIVILEGE_LEVEL_PLATFORM)
+            else if(visibility == PRVMGR_PACKAGE_VISIBILITY_PUBLIC){
+                if(privilege_level_id == PRIVILEGE_DB_MANAGER_PRIVILEGE_LEVEL_PARTNER || privilege_level_id == PRIVILEGE_DB_MANAGER_PRIVILEGE_LEVEL_PLATFORM)
                 {
                     LOGE("[PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL] Visibility and Privilege level are mismatched");
-                    LOGE("[PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL] Visibility : partner, Privilege Level : %s", __get_privilege_level_string(privilege_level_id));
-                    char* error_privilege_name = strdup(privilege_name);
-                    TryReturn(error_privilege_name != NULL, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] error_privilege_name's strdup is failed.");
-                    char* error_privilege_level = strdup(__get_privilege_level_string(privilege_level_id));
-                    if(error_privilege_level == NULL)
-                    {
-                        free(error_privilege_name);
-                        LOGE("[PRVMGR_ERR_OUT_OF_MEMORY] error_privilege_level's strdup is failed.");
-                        return PRVMGR_ERR_OUT_OF_MEMORY;
-                    }
-                    temp_error_privilege_name_list = g_list_append(temp_error_privilege_name_list, error_privilege_name);
-                    temp_error_privilege_level_list = g_list_append(temp_error_privilege_level_list, error_privilege_level);
-                    ret_val = PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL;
-                }
-            }
-            else if((visibility & PRVMGR_PACKAGE_VISIBILITY_PLATFORM) == PRVMGR_PACKAGE_VISIBILITY_PLATFORM){
+                    LOGE("[PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL] Visibility : public, Privilege Level : %d", privilege_level_id);
+                    *error_privilege_name = (char*)calloc(strlen(privilege_name) + 1, sizeof(char));
+                    TryReturn(*error_privilege_name != NULL, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] Memory allocation failed.");
+                    memcpy(*error_privilege_name, privilege_name, strlen(privilege_name));
 
-            }
-            else{
-                LOGE("[PRVMGR_ERR_INVALID_PARAMETER] visibility dont include any public, partner, platform");
-                g_list_free(temp_error_privilege_name_list);
-                g_list_free(temp_error_privilege_level_list);
-                return PRVMGR_ERR_INVALID_PARAMETER;
+                    return PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL;
+                }
             }
         }
-        else if(ret == PRVMGR_ERR_INTERNAL_ERROR || ret == PRVMGR_ERR_INVALID_PARAMETER)
+        else
         {
             return ret;
         }
     }
 
-    *error_privilege_name_list = temp_error_privilege_name_list;
-    *error_privilege_level_list = temp_error_privilege_level_list;
-
-    return ret_val;
+    return PRVMGR_ERR_NONE;
 }
+
index 2376b58..9511db0 100644 (file)
@@ -36,6 +36,7 @@ BuildRequires:  gettext-tools
 BuildRequires:  pkgconfig(pkgmgr-info)
 BuildRequires:  pkgconfig(capi-appfw-package-manager)
 BuildRequires:  cert-svc-devel
+BuildRequires:  pkgconfig(glib-2.0)
 
 %description -n capi-security-privilege-manager
 The Privilege Manager API provides functions to get information about privilege information of installed packages.
@@ -60,10 +61,14 @@ The Privilege Manager API provides functions to get information about privilege
 
 %build
 
-%if "%{?tizen_profile_name}" == "wearable"
+%if "%{?profile}" == "tv"
+    __PROFILE_TYPE="TV"
+%else if "%{?profile}" == "wearable"
     __PROFILE_TYPE="WEARABLE"
-%else
+%else if "%{?profile}" == "mobile"
     __PROFILE_TYPE="MOBILE"
+%else
+    __PROFILE_TYPE="COMMON"
 %endif
 
 export CFLAGS="$CFLAGS -DTIZEN_ENGINEER_MODE"
@@ -77,6 +82,7 @@ echo cmake . -DPREFIX=%{_prefix} \
         -DCMAKE_BUILD_TYPE=%{build_type} \
         -DVERSION=%{version} \
         -DDPL_LOG="ON" \
+        -DDATADIR=%{_datadir} \
         -DPROFILE_TYPE="${__PROFILE_TYPE}"
 
 cmake . -DPREFIX=%{_prefix} \
@@ -86,31 +92,32 @@ cmake . -DPREFIX=%{_prefix} \
         -DCMAKE_BUILD_TYPE=%{build_type} \
         -DVERSION=%{version} \
         -DDPL_LOG="ON" \
+        -DDATADIR=%{_datadir} \
         -DPROFILE_TYPE="${__PROFILE_TYPE}"
 
 make %{?jobs:-j%jobs}
 
 %install
 rm -rf %{buildroot}
-mkdir -p %{buildroot}/usr/share/license
-cp LICENSE.APLv2 %{buildroot}/usr/share/license/privilege-checker
+mkdir -p %{buildroot}%{_datadir}/license
+cp LICENSE.APLv2 %{buildroot}%{_datadir}/license/privilege-checker
 mkdir -p %{buildroot}/opt/dbspace
-mkdir -p %{buildroot}/usr/share/privilege-manager
-cp capi/res/dbspace/core_privilege_info.db %{buildroot}/usr/share/privilege-manager/.core_privilege_info.db
-sqlite3 /%{buildroot}/usr/share/privilege-manager/.core_privilege_info.db "select * from privilege_info"
-cp capi/res/dbspace/wrt_privilege_info.db %{buildroot}/usr/share/privilege-manager/.wrt_privilege_info.db
-sqlite3 /%{buildroot}/usr/share/privilege-manager/.wrt_privilege_info.db "select * from privilege_info"
+mkdir -p %{buildroot}%{_datadir}/privilege-manager
+cp capi/res/dbspace/core_privilege_info.db %{buildroot}%{_datadir}/privilege-manager/.core_privilege_info.db
+sqlite3 /%{buildroot}%{_datadir}/privilege-manager/.core_privilege_info.db "select * from privilege_info"
+cp capi/res/dbspace/wrt_privilege_info.db %{buildroot}%{_datadir}/privilege-manager/.wrt_privilege_info.db
+sqlite3 /%{buildroot}%{_datadir}/privilege-manager/.wrt_privilege_info.db "select * from privilege_info"
 %make_install
 
 %files -n privilege-checker
-/usr/share/license/privilege-checker
+%{_datadir}/license/privilege-checker
 %manifest packaging/privilege-checker.manifest
 
 %files -n capi-security-privilege-manager
 %{_libdir}/libcapi-security-privilege-manager.so*
-/usr/share/locale/*
-/usr/share/privilege-manager/.core_privilege_info.db
-/usr/share/privilege-manager/.wrt_privilege_info.db
+%{_datadir}/locale/*
+%{_datadir}/privilege-manager/.core_privilege_info.db
+%{_datadir}/privilege-manager/.wrt_privilege_info.db
 %manifest packaging/capi-security-privilege-manager.manifest
 
 %files -n capi-security-privilege-manager-devel