Add privilege mapping api and DBs 58/53058/2 accepted/tizen/mobile/20151204.061847 accepted/tizen/tv/20151204.061914 accepted/tizen/wearable/20151204.061933 submit/tizen/20151204.011325
authorYunjin Lee <yunjin-.lee@samsung.com>
Tue, 1 Dec 2015 10:50:10 +0000 (19:50 +0900)
committerYunjin Lee <yunjin-.lee@samsung.com>
Tue, 1 Dec 2015 10:54:43 +0000 (19:54 +0900)
Change-Id: I79546dc9ccfc27804b0c8e56a212371b3b2fd9d2
Signed-off-by: Yunjin Lee <yunjin-.lee@samsung.com>
20 files changed:
capi/include/privilege_db_manager.h
capi/include/privilege_manager.h
capi/res/dbspace/core_mapping_db_generator.sh [new file with mode: 0755]
capi/res/dbspace/core_privilege_mapping.csv [new file with mode: 0644]
capi/res/dbspace/core_privilege_mapping.db [new file with mode: 0644]
capi/res/dbspace/tv_core_mapping_db_generator.sh [new file with mode: 0755]
capi/res/dbspace/tv_core_privilege_mapping.csv [new file with mode: 0644]
capi/res/dbspace/tv_core_privilege_mapping.db [new file with mode: 0644]
capi/res/dbspace/tv_wrt_mapping_db_generator.sh [new file with mode: 0755]
capi/res/dbspace/tv_wrt_privilege_mapping.csv [new file with mode: 0644]
capi/res/dbspace/tv_wrt_privilege_mapping.db [new file with mode: 0644]
capi/res/dbspace/wrt_mapping_db_generator.sh [new file with mode: 0755]
capi/res/dbspace/wrt_privilege_mapping.csv [new file with mode: 0644]
capi/res/dbspace/wrt_privilege_mapping.db [new file with mode: 0644]
capi/src/privilege_db_manager.c
capi/src/privilege_manager.c
packaging/privilege-checker.spec
test/CMakeLists.txt
test/tc-privilege-db-manager.c
test/tc-privilege-manager.c

index 55099f7..f8f6aa8 100755 (executable)
@@ -63,6 +63,7 @@ typedef enum
 
 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_mapped_privilege_list(const char* api_version, privilege_db_manager_package_type_e package_type, GList* privilege_list, GList** mapped_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 5c10f8c..86ddd12 100755 (executable)
@@ -61,6 +61,24 @@ typedef enum
  */
 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);
 
+
+/**
+ * @brief get mapped privilege list of input privilege list according to the given package type, api version, and profile.
+ * @remarks @a privilege_list must be released with free() by you.
+ * @remarks @a mapped_privilege_list must be released with free() by you.
+ * @param [in] api_version The api version of the application
+ * @param [in] privilege_manager_package_type_e The privilege_manager_package_type_e
+ * @param [in] privilege_list The privilege_list
+ * @param [out] mapped_privilege_list The mapped_privilege_list is assigned when privileges mapped to the given privilege list are exist. Else, mapped_privilege_list is NULL. Mapped privileges are listed according to the given the privilege_list, package_type, api_version, and profile.
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #PRVMGR_ERR_NONE Successful
+ * @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_get_mapped_privilege_list(const char* api_version, privilege_manager_package_type_e package_type, GList* privilege_list, GList** mapped_privilege_list);
+
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/capi/res/dbspace/core_mapping_db_generator.sh b/capi/res/dbspace/core_mapping_db_generator.sh
new file mode 100755 (executable)
index 0000000..a5fab85
--- /dev/null
@@ -0,0 +1,53 @@
+#!/bin/bash
+
+DB_NAME="core_privilege_mapping.db"
+
+rm $DB_NAME 2> /dev/null
+echo "Creating $DB_NAME ..."
+touch $DB_NAME
+
+echo "Creating PRIVILEGE_MAPPING table ..."
+sqlite3 $DB_NAME "CREATE TABLE PRIVILEGE_MAPPING (PROFILE_ID NUMERIC, PROFILE TEXT, PRIVILEGE_NAME TEXT, FROM_API_VERSION TEXT, TO_API_VERSION TEXT, MAPPED_PRIVILEGE_NAME TEXT);"
+
+echo "Inserting data ..."
+IFS=$'\n'
+for i in `cat core_privilege_mapping.csv`
+do
+       temp=`echo $i | awk '/^#/'`
+       if [ ! "$temp" = "" ]
+       then
+               continue
+       fi
+
+       PROFILE=`echo $i | cut -d "," -f 1`
+       #echo PROFILE = $PROFILE
+
+       if [ "$PROFILE" = "common" ]
+       then
+               PROFILE_ID=0
+
+       elif [ "$PROFILE" = "mobile" ]
+       then
+               PROFILE_ID=1
+
+       elif [ "$PROFILE" = "wearable" ]
+       then
+               PROFILE_ID=2
+
+       else
+               echo "Fail to create table : PROFILE must be common, mobile or wearable"
+               exit
+       fi
+
+       PRIVILEGE_NAME=`echo $i | cut -d "," -f 2`
+       FROM_API_VERSION=`echo $i | cut -d "," -f 3`
+       TO_API_VERSION=`echo $i | cut -d "," -f 4`
+       MAPPED_PRIVILEGE_NAME=`echo $i | cut -d "," -f 5`
+
+       echo "Inserting $PRIVILEGE_NAME $MAPPED_PRIVILEGE_NAME..."
+
+       sqlite3 $DB_NAME "insert into privilege_mapping values ( $PROFILE_ID, '$PROFILE', '$PRIVILEGE_NAME','$FROM_API_VERSION', '$TO_API_VERSION', '$MAPPED_PRIVILEGE_NAME')"
+done
+
+echo "Check inserted data"
+sqlite3 $DB_NAME "select * from privilege_mapping"
diff --git a/capi/res/dbspace/core_privilege_mapping.csv b/capi/res/dbspace/core_privilege_mapping.csv
new file mode 100644 (file)
index 0000000..65a3715
--- /dev/null
@@ -0,0 +1,173 @@
+#PROFILE,#PRIVILEGE_NAME,#FROM,#TO,#MAPPED_PRIVILEGE_NAME
+mobile,http://tizen.org/privilege/account.read,2.3,9.9,http://tizen.org/privilege/account.read
+mobile,http://tizen.org/privilege/account.read,2.3,9.9,http://tizen.org/privilege/internal/buxton/account.read
+wearable,http://tizen.org/privilege/account.read,2.4,9.9,http://tizen.org/privilege/account.read
+wearable,http://tizen.org/privilege/account.read,2.4,9.9,http://tizen.org/privilege/internal/buxton/account.read
+mobile,http://tizen.org/privilege/account.write,2.3,9.9,http://tizen.org/privilege/account.write
+mobile,http://tizen.org/privilege/account.write,2.3,9.9,http://tizen.org/privilege/internal/buxton/account.read
+wearable,http://tizen.org/privilege/account.write,2.4,9.9,http://tizen.org/privilege/account.write
+wearable,http://tizen.org/privilege/account.write,2.4,9.9,http://tizen.org/privilege/internal/buxton/account.read
+mobile,http://tizen.org/privilege/alarm.get,2.3,9.9,http://tizen.org/privilege/alarm.get
+wearable,http://tizen.org/privilege/alarm.get,2.3.1,9.9,http://tizen.org/privilege/alarm.get
+mobile,http://tizen.org/privilege/alarm.set,2.3,9.9,http://tizen.org/privilege/alarm.set
+wearable,http://tizen.org/privilege/alarm.set,2.3.1,9.9,http://tizen.org/privilege/alarm.set
+mobile,http://tizen.org/privilege/antivirus,2.3,9.9,http://tizen.org/privilege/antivirus
+wearable,http://tizen.org/privilege/antivirus,2.3.1,9.9,http://tizen.org/privilege/antivirus
+mobile,http://tizen.org/privilege/apphistory.read,2.4,9.9,http://tizen.org/privilege/apphistory.read
+mobile,http://tizen.org/privilege/appmanager.kill,2.3,9.9,http://tizen.org/privilege/appmanager.kill
+wearable,http://tizen.org/privilege/appmanager.kill,2.3.1,9.9,http://tizen.org/privilege/appmanager.kill
+common,http://tizen.org/privilege/appmanager.kill.bgapp,2.4,9.9,http://tizen.org/privilege/appmanager.kill.bgapp
+mobile,http://tizen.org/privilege/appmanager.launch,2.3,9.9,http://tizen.org/privilege/appmanager.launch
+wearable,http://tizen.org/privilege/appmanager.launch,2.3.1,9.9,http://tizen.org/privilege/appmanager.launch
+mobile,http://tizen.org/privilege/bluetooth,2.3,9.9,http://tizen.org/privilege/bluetooth
+wearable,http://tizen.org/privilege/bluetooth,2.3.1,9.9,http://tizen.org/privilege/bluetooth
+mobile,http://tizen.org/privilege/bluetooth.admin,2.3,9.9,http://tizen.org/privilege/bluetooth.admin
+wearable,http://tizen.org/privilege/bluetooth.admin,2.3.1,9.9,http://tizen.org/privilege/bluetooth.admin
+mobile,http://tizen.org/privilege/bookmark.admin,2.3,9.9,http://tizen.org/privilege/bookmark.admin
+mobile,http://tizen.org/privilege/calendar.read,2.3,9.9,http://tizen.org/privilege/calendar.read
+mobile,http://tizen.org/privilege/calendar.write,2.3,9.9,http://tizen.org/privilege/calendar.write
+mobile,http://tizen.org/privilege/call,2.3,9.9,http://tizen.org/privilege/call
+wearable,http://tizen.org/privilege/call,2.3.1,9.9,http://tizen.org/privilege/call
+mobile,http://tizen.org/privilege/callhistory.read,2.3,9.9,http://tizen.org/privilege/callhistory.read
+wearable,http://tizen.org/privilege/callhistory.read,2.3.1,9.9,http://tizen.org/privilege/callhistory.read
+mobile,http://tizen.org/privilege/callhistory.write,2.3,9.9,http://tizen.org/privilege/callhistory.write
+wearable,http://tizen.org/privilege/callhistory.write,2.3.1,9.9,http://tizen.org/privilege/callhistory.write
+mobile,http://tizen.org/privilege/camera,2.3,9.9,http://tizen.org/privilege/camera
+mobile,http://tizen.org/privilege/camera,2.3,9.9,http://tizen.org/privilege/internal/buxton/camcorder
+wearable,http://tizen.org/privilege/camera,2.3.1,9.9,http://tizen.org/privilege/camera
+wearable,http://tizen.org/privilege/camera,2.3.1,9.9,http://tizen.org/privilege/internal/buxton/camcorder
+mobile,http://tizen.org/privilege/contact.read,2.3,9.9,http://tizen.org/privilege/contact.read
+mobile,http://tizen.org/privilege/contact.read,2.3,9.9,http://tizen.org/privilege/internal/buxton/contact.read
+wearable,http://tizen.org/privilege/contact.read,2.4,9.9,http://tizen.org/privilege/contact.read
+wearable,http://tizen.org/privilege/contact.read,2.4,9.9,http://tizen.org/privilege/internal/buxton/contact.read
+mobile,http://tizen.org/privilege/contact.write,2.3,9.9,http://tizen.org/privilege/contact.write
+mobile,http://tizen.org/privilege/contact.write,2.3,9.9,http://tizen.org/privilege/internal/buxton/contact.read
+wearable,http://tizen.org/privilege/contact.write,2.4,9.9,http://tizen.org/privilege/contact.write
+wearable,http://tizen.org/privilege/contact.write,2.4,9.9,http://tizen.org/privilege/internal/buxton/contact.read
+mobile,http://tizen.org/privilege/content.write,2.3,9.9,http://tizen.org/privilege/content.write
+wearable,http://tizen.org/privilege/content.write,2.3.1,9.9,http://tizen.org/privilege/content.write
+mobile,http://tizen.org/privilege/datasharing,2.3,9.9,http://tizen.org/privilege/datasharing
+wearable,http://tizen.org/privilege/datasharing,2.3.1,9.9,http://tizen.org/privilege/datasharing
+mobile,http://tizen.org/privilege/display,2.3,9.9,http://tizen.org/privilege/display
+wearable,http://tizen.org/privilege/display,2.3.1,9.9,http://tizen.org/privilege/display
+mobile,http://tizen.org/privilege/download,2.3,9.9,http://tizen.org/privilege/download
+wearable,http://tizen.org/privilege/download,2.3.1,9.9,http://tizen.org/privilege/download
+mobile,http://tizen.org/privilege/email,2.3,9.9,http://tizen.org/privilege/email
+mobile,http://tizen.org/privilege/email.admin,2.3,9.9,http://tizen.org/privilege/email.admin
+mobile,http://tizen.org/privilege/externalstorage,2.3,9.9,http://tizen.org/privilege/externalstorage
+wearable,http://tizen.org/privilege/externalstorage,2.3.1,9.9,http://tizen.org/privilege/externalstorage
+mobile,http://tizen.org/privilege/externalstorage.appdata,2.3,9.9,http://tizen.org/privilege/externalstorage.appdata
+wearable,http://tizen.org/privilege/externalstorage.appdata,2.3.1,9.9,http://tizen.org/privilege/externalstorage.appdata
+mobile,http://tizen.org/privilege/haptic,2.3,9.9,http://tizen.org/privilege/haptic
+wearable,http://tizen.org/privilege/haptic,2.3.1,9.9,http://tizen.org/privilege/haptic
+common,http://tizen.org/privilege/healthinfo,2.3.1,9.9,http://tizen.org/privilege/healthinfo
+common,http://tizen.org/privilege/ime,2.4,9.9,http://tizen.org/privilege/ime
+common,http://tizen.org/privilege/imemanager,2.4,9.9,http://tizen.org/privilege/imemanager
+common,http://tizen.org/privilege/inputgenerator,2.4,9.9,http://tizen.org/privilege/inputgenerator
+mobile,http://tizen.org/privilege/internet,2.3,9.9,http://tizen.org/privilege/internet
+wearable,http://tizen.org/privilege/internet,2.3.1,9.9,http://tizen.org/privilege/internet
+common,http://tizen.org/privilege/keygrab,2.4,9.9,http://tizen.org/privilege/keygrab
+mobile,http://tizen.org/privilege/keymanager,2.3,9.9,http://tizen.org/privilege/keymanager
+wearable,http://tizen.org/privilege/keymanager,2.3.1,9.9,http://tizen.org/privilege/keymanager
+mobile,http://tizen.org/privilege/led,2.3,9.9,http://tizen.org/privilege/led
+wearable,http://tizen.org/privilege/led,2.3.1,9.9,http://tizen.org/privilege/led
+mobile,http://tizen.org/privilege/location,2.3,9.9,http://tizen.org/privilege/location
+mobile,http://tizen.org/privilege/location,2.4,9.9,http://tizen.org/privilege/internal/buxton/location
+wearable,http://tizen.org/privilege/location,2.3.1,9.9,http://tizen.org/privilege/location
+wearable,http://tizen.org/privilege/location,2.4,9.9,http://tizen.org/privilege/internal/buxton/location
+mobile,http://tizen.org/privilege/location.enable,2.3,9.9,http://tizen.org/privilege/location.enable
+mobile,http://tizen.org/privilege/location.enable,2.4,9.9,http://tizen.org/privilege/internal/buxton/location
+wearable,http://tizen.org/privilege/location.enable,2.3.1,9.9,http://tizen.org/privilege/location.enable
+wearable,http://tizen.org/privilege/location.enable,2.4,9.9,http://tizen.org/privilege/internal/buxton/location
+common,http://tizen.org/privilege/mapservice,2.4,9.9,http://tizen.org/privilege/mapservice
+common,http://tizen.org/privilege/mediacontroller.client,2.4,9.9,http://tizen.org/privilege/mediacontroller.client
+common,http://tizen.org/privilege/mediacontroller.server,2.4,9.9,http://tizen.org/privilege/mediacontroller.server
+mobile,http://tizen.org/privilege/mediahistory.read,2.4,9.9,http://tizen.org/privilege/mediahistory.read
+mobile,http://tizen.org/privilege/mediastorage,2.3,9.9,http://tizen.org/privilege/mediastorage
+wearable,http://tizen.org/privilege/mediastorage,2.3.1,9.9,http://tizen.org/privilege/mediastorage
+mobile,http://tizen.org/privilege/message.read,2.3,9.9,http://tizen.org/privilege/message.read
+mobile,http://tizen.org/privilege/message.read,2.3,9.9,http://tizen.org/privilege/internal/buxton/message.read
+wearable,http://tizen.org/privilege/message.read,2.3.1,9.9,http://tizen.org/privilege/message.read
+wearable,http://tizen.org/privilege/message.read,2.3.1,9.9,http://tizen.org/privilege/internal/buxton/message.read
+mobile,http://tizen.org/privilege/message.write,2.3,9.9,http://tizen.org/privilege/message.write
+wearable,http://tizen.org/privilege/message.write,2.3.1,9.9,http://tizen.org/privilege/message.write
+common,http://tizen.org/privilege/minicontrol.provider,2.4,9.9,http://tizen.org/privilege/minicontrol.provider
+mobile,http://tizen.org/privilege/network.get,2.3,9.9,http://tizen.org/privilege/network.get
+mobile,http://tizen.org/privilege/network.get,2.3,9.9,http://tizen.org/privilege/internal/buxton/network.get
+wearable,http://tizen.org/privilege/network.get,2.3.1,9.9,http://tizen.org/privilege/network.get
+wearable,http://tizen.org/privilege/network.get,2.3.1,9.9,http://tizen.org/privilege/internal/buxton/network.get
+mobile,http://tizen.org/privilege/network.profile,2.3,9.9,http://tizen.org/privilege/network.profile
+wearable,http://tizen.org/privilege/network.profile,2.3.1,9.9,http://tizen.org/privilege/network.profile
+mobile,http://tizen.org/privilege/network.set,2.3,9.9,http://tizen.org/privilege/network.set
+mobile,http://tizen.org/privilege/network.set,2.3,9.9,http://tizen.org/privilege/internal/buxton/network.get
+wearable,http://tizen.org/privilege/network.set,2.3.1,9.9,http://tizen.org/privilege/network.set
+wearable,http://tizen.org/privilege/network.set,2.3.1,9.9,http://tizen.org/privilege/internal/buxton/network.get
+mobile,http://tizen.org/privilege/nfc,2.3,9.9,http://tizen.org/privilege/nfc
+mobile,http://tizen.org/privilege/nfc,2.3,9.9,http://tizen.org/privilege/internal/buxton/nfc
+wearable,http://tizen.org/privilege/nfc,2.3.1,9.9,http://tizen.org/privilege/nfc
+wearable,http://tizen.org/privilege/nfc,2.3.1,9.9,http://tizen.org/privilege/internal/buxton/nfc
+mobile,http://tizen.org/privilege/nfc.admin,2.3,9.9,http://tizen.org/privilege/nfc.admin
+mobile,http://tizen.org/privilege/nfc.admin,2.3,9.9,http://tizen.org/privilege/internal/buxton/nfc
+mobile,http://tizen.org/privilege/nfc.admin,2.3,9.9,http://tizen.org/privilege/internal/buxton/nfc.cardemulation
+wearable,http://tizen.org/privilege/nfc.admin,2.3.1,9.9,http://tizen.org/privilege/nfc.admin
+wearable,http://tizen.org/privilege/nfc.admin,2.3.1,9.9,http://tizen.org/privilege/internal/buxton/nfc
+wearable,http://tizen.org/privilege/nfc.admin,2.3.1,9.9,http://tizen.org/privilege/internal/buxton/nfc.cardemulation
+mobile,http://tizen.org/privilege/nfc.cardemulation,2.3,9.9,http://tizen.org/privilege/nfc.cardemulation
+mobile,http://tizen.org/privilege/nfc.cardemulation,2.3,9.9,http://tizen.org/privilege/internal/buxton/nfc.cardemulation
+wearable,http://tizen.org/privilege/nfc.cardemulation,2.3.1,9.9,http://tizen.org/privilege/nfc.cardemulation
+wearable,http://tizen.org/privilege/nfc.cardemulation,2.3.1,9.9,http://tizen.org/privilege/internal/buxton/nfc.cardemulation
+mobile,http://tizen.org/privilege/notification,2.3,9.9,http://tizen.org/privilege/notification
+wearable,http://tizen.org/privilege/notification,2.3.1,9.9,http://tizen.org/privilege/notification
+mobile,http://tizen.org/privilege/packagemanager.admin,2.3,9.9,http://tizen.org/privilege/packagemanager.admin
+wearable,http://tizen.org/privilege/packagemanager.admin,2.3.1,9.9,http://tizen.org/privilege/packagemanager.admin
+common,http://tizen.org/privilege/packagemanager.clearcache,2.4,9.9,http://tizen.org/privilege/packagemanager.clearcache
+mobile,http://tizen.org/privilege/packagemanager.info,2.3,9.9,http://tizen.org/privilege/packagemanager.info
+wearable,http://tizen.org/privilege/packagemanager.info,2.3.1,9.9,http://tizen.org/privilege/packagemanager.info
+mobile,http://tizen.org/privilege/power,2.3,9.9,http://tizen.org/privilege/power
+wearable,http://tizen.org/privilege/power,2.3.1,9.9,http://tizen.org/privilege/power
+mobile,http://tizen.org/privilege/push,2.3,9.9,http://tizen.org/privilege/push
+wearable,http://tizen.org/privilege/push,2.3.1,9.9,http://tizen.org/privilege/push
+common,http://tizen.org/privilege/reboot,2.3.1,9.9,http://tizen.org/privilege/reboot
+mobile,http://tizen.org/privilege/recorder,2.3,9.9,http://tizen.org/privilege/recorder
+mobile,http://tizen.org/privilege/recorder,2.3,9.9,http://tizen.org/privilege/internal/buxton/camcorder
+wearable,http://tizen.org/privilege/recorder,2.3.1,9.9,http://tizen.org/privilege/recorder
+wearable,http://tizen.org/privilege/recorder,2.3.1,9.9,http://tizen.org/privilege/internal/buxton/camcorder
+mobile,http://tizen.org/privilege/screenshot,2.3,9.9,http://tizen.org/privilege/screenshot
+wearable,http://tizen.org/privilege/screenshot,2.3.1,9.9,http://tizen.org/privilege/screenshot
+common,http://tizen.org/privilege/secureelement,2.3.1,9.9,http://tizen.org/privilege/secureelement
+mobile,http://tizen.org/privilege/shortcut,2.3,9.9,http://tizen.org/privilege/shortcut
+common,http://tizen.org/privilege/systemmonitor,2.4,9.9,http://tizen.org/privilege/systemmonitor
+mobile,http://tizen.org/privilege/systemsettings.admin,2.3,9.9,http://tizen.org/privilege/systemsettings.admin
+wearable,http://tizen.org/privilege/systemsettings.admin,2.3.1,9.9,http://tizen.org/privilege/systemsettings.admin
+mobile,http://tizen.org/privilege/telephony,2.3,9.9,http://tizen.org/privilege/telephony
+wearable,http://tizen.org/privilege/telephony,2.3.1,9.9,http://tizen.org/privilege/telephony
+mobile,http://tizen.org/privilege/telephony.admin,2.3,9.9,http://tizen.org/privilege/telephony.admin
+mobile,http://tizen.org/privilege/telephony.admin,2.3,9.9,http://tizen.org/privilege/internal/buxton/telephony
+wearable,http://tizen.org/privilege/telephony.admin,2.3.1,9.9,http://tizen.org/privilege/telephony.admin
+wearable,http://tizen.org/privilege/telephony.admin,2.3.1,9.9,http://tizen.org/privilege/internal/buxton/telephony
+mobile,http://tizen.org/privilege/tethering.admin,2.3,9.9,http://tizen.org/privilege/tethering.admin
+mobile,http://tizen.org/privilege/volume.set,2.3,9.9,http://tizen.org/privilege/volume.set
+wearable,http://tizen.org/privilege/volume.set,2.3.1,9.9,http://tizen.org/privilege/volume.set
+mobile,http://tizen.org/privilege/web-history.admin,2.3,9.9,http://tizen.org/privilege/web-history.admin
+common,http://tizen.org/privilege/widget.viewer,2.3.1,9.9,http://tizen.org/privilege/widget.viewer
+mobile,http://tizen.org/privilege/wifidirect,2.3,9.9,http://tizen.org/privilege/wifidirect
+mobile,http://tizen.org/privilege/window.priority.set,2.3,9.9,http://tizen.org/privilege/window.priority.set
+wearable,http://tizen.org/privilege/window.priority.set,2.3.1,9.9,http://tizen.org/privilege/window.priority.set
+mobile,http://tizen.org/privilege/internal/default/public,2.3,9.9,http://tizen.org/privilege/internal/default/public
+mobile,http://tizen.org/privilege/internal/default/public,2.3,2.3.1,http://tizen.org/privilege/internal/buxton/location
+mobile,http://tizen.org/privilege/internal/default/partner,2.3,9.9,http://tizen.org/privilege/internal/default/public
+mobile,http://tizen.org/privilege/internal/default/partner,2.3,9.9,http://tizen.org/privilege/internal/default/partner
+mobile,http://tizen.org/privilege/internal/default/partner,2.3,2.3.1,http://tizen.org/privilege/internal/buxton/location
+mobile,http://tizen.org/privilege/internal/default/platform,2.3,9.9,http://tizen.org/privilege/internal/default/public
+mobile,http://tizen.org/privilege/internal/default/platform,2.3,9.9,http://tizen.org/privilege/internal/default/partner
+mobile,http://tizen.org/privilege/internal/default/platform,2.3,9.9,http://tizen.org/privilege/internal/default/platform
+mobile,http://tizen.org/privilege/internal/default/platform,2.3,2.3.1,http://tizen.org/privilege/internal/buxton/location
+wearable,http://tizen.org/privilege/internal/default/public,2.3.1,9.9,http://tizen.org/privilege/internal/default/public
+wearable,http://tizen.org/privilege/internal/default/public,2.3.1,2.3.1,http://tizen.org/privilege/internal/buxton/location
+wearable,http://tizen.org/privilege/internal/default/partner,2.3.1,9.9,http://tizen.org/privilege/internal/default/public
+wearable,http://tizen.org/privilege/internal/default/partner,2.3.1,9.9,http://tizen.org/privilege/internal/default/partner
+wearable,http://tizen.org/privilege/internal/default/partner,2.3.1,2.3.1,http://tizen.org/privilege/internal/buxton/location
+wearable,http://tizen.org/privilege/internal/default/platform,2.3.1,9.9,http://tizen.org/privilege/internal/default/public
+wearable,http://tizen.org/privilege/internal/default/platform,2.3.1,9.9,http://tizen.org/privilege/internal/default/partner
+wearable,http://tizen.org/privilege/internal/default/platform,2.3.1,9.9,http://tizen.org/privilege/internal/default/platform
+wearable,http://tizen.org/privilege/internal/default/platform,2.3.1,2.3.1,http://tizen.org/privilege/internal/buxton/location
diff --git a/capi/res/dbspace/core_privilege_mapping.db b/capi/res/dbspace/core_privilege_mapping.db
new file mode 100644 (file)
index 0000000..f05c6d2
Binary files /dev/null and b/capi/res/dbspace/core_privilege_mapping.db differ
diff --git a/capi/res/dbspace/tv_core_mapping_db_generator.sh b/capi/res/dbspace/tv_core_mapping_db_generator.sh
new file mode 100755 (executable)
index 0000000..dcdf212
--- /dev/null
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+DB_NAME="tv_core_privilege_mapping.db"
+
+rm $DB_NAME 2> /dev/null
+echo "Creating $DB_NAME ..."
+touch $DB_NAME
+
+echo "Creating PRIVILEGE_MAPPING table ..."
+sqlite3 $DB_NAME "CREATE TABLE PRIVILEGE_MAPPING (PROFILE_ID NUMERIC, PROFILE TEXT, PRIVILEGE_NAME TEXT, FROM_API_VERSION TEXT, TO_API_VERSION TEXT, MAPPED_PRIVILEGE_NAME TEXT);"
+
+echo "Inserting data ..."
+IFS=$'\n'
+for i in `cat tv_core_privilege_mapping.csv`
+do
+       temp=`echo $i | awk '/^#/'`
+       if [ ! "$temp" = "" ]
+       then
+               continue
+       fi
+
+       PROFILE=`echo $i | cut -d "," -f 1`
+       #echo PROFILE = $PROFILE
+
+       if [ "$PROFILE" = "common" ]
+       then
+               PROFILE_ID=0
+
+       elif [ "$PROFILE" = "mobile" ]
+       then
+               PROFILE_ID=1
+
+       elif [ "$PROFILE" = "wearable" ]
+       then
+               PROFILE_ID=2
+
+       elif [ "$PROFILE" = "tv" ]
+    then
+        PROFILE_ID=3
+
+       else
+               echo "Fail to create table : PROFILE must be common, mobile, wearable or tv"
+               exit
+       fi
+
+       PRIVILEGE_NAME=`echo $i | cut -d "," -f 2`
+       FROM_API_VERSION=`echo $i | cut -d "," -f 3`
+       TO_API_VERSION=`echo $i | cut -d "," -f 4`
+       MAPPED_PRIVILEGE_NAME=`echo $i | cut -d "," -f 5`
+
+       echo "Inserting $PRIVILEGE_NAME $MAPPED_PRIVILEGE_NAME..."
+
+       sqlite3 $DB_NAME "insert into privilege_mapping values ( $PROFILE_ID, '$PROFILE', '$PRIVILEGE_NAME','$FROM_API_VERSION', '$TO_API_VERSION', '$MAPPED_PRIVILEGE_NAME')"
+done
+
+echo "Check inserted data"
+sqlite3 $DB_NAME "select * from privilege_mapping"
diff --git a/capi/res/dbspace/tv_core_privilege_mapping.csv b/capi/res/dbspace/tv_core_privilege_mapping.csv
new file mode 100644 (file)
index 0000000..01fd88d
--- /dev/null
@@ -0,0 +1,97 @@
+#PROFILE,#PRIVILEGE_NAME,#FROM,#TO,#MAPPED_PRIVILEGE_NAME
+tv,http://tizen.org/privilege/account.read,2.4,9.9,http://tizen.org/privilege/account.read
+tv,http://tizen.org/privilege/account.read,2.4,9.9,http://tizen.org/privilege/internal/buxton/account.read
+tv,http://tizen.org/privilege/account.write,2.4,9.9,http://tizen.org/privilege/account.write
+tv,http://tizen.org/privilege/account.write,2.4,9.9,http://tizen.org/privilege/internal/buxton/account.read
+tv,http://tizen.org/privilege/alarm.get,2.4,9.9,http://tizen.org/privilege/alarm.get
+tv,http://tizen.org/privilege/alarm.set,2.4,9.9,http://tizen.org/privilege/alarm.set
+tv,http://tizen.org/privilege/antivirus,2.4,9.9,http://tizen.org/privilege/antivirus
+tv,http://tizen.org/privilege/apphistory.read,2.4,9.9,http://tizen.org/privilege/apphistory.read
+tv,http://tizen.org/privilege/appmanager.kill,2.4,9.9,http://tizen.org/privilege/appmanager.kill
+tv,http://tizen.org/privilege/appmanager.kill.bgapp,2.4,9.9,http://tizen.org/privilege/appmanager.kill.bgapp
+tv,http://tizen.org/privilege/appmanager.launch,2.4,9.9,http://tizen.org/privilege/appmanager.launch
+tv,http://tizen.org/privilege/bluetooth,2.4,9.9,http://tizen.org/privilege/bluetooth
+tv,http://tizen.org/privilege/bluetooth.admin,2.4,9.9,http://tizen.org/privilege/bluetooth.admin
+tv,http://tizen.org/privilege/bookmark.admin,2.4,9.9,http://tizen.org/privilege/bookmark.admin
+tv,http://tizen.org/privilege/calendar.read,2.4,9.9,http://tizen.org/privilege/calendar.read
+tv,http://tizen.org/privilege/calendar.write,2.4,9.9,http://tizen.org/privilege/calendar.write
+tv,http://tizen.org/privilege/call,2.4,9.9,http://tizen.org/privilege/call
+tv,http://tizen.org/privilege/callhistory.read,2.4,9.9,http://tizen.org/privilege/callhistory.read
+tv,http://tizen.org/privilege/callhistory.write,2.4,9.9,http://tizen.org/privilege/callhistory.write
+tv,http://tizen.org/privilege/camera,2.4,9.9,http://tizen.org/privilege/camera
+tv,http://tizen.org/privilege/camera,2.4,9.9,http://tizen.org/privilege/internal/buxton/camcorder
+tv,http://tizen.org/privilege/contact.read,2.4,9.9,http://tizen.org/privilege/contact.read
+tv,http://tizen.org/privilege/contact.read,2.4,9.9,http://tizen.org/privilege/internal/buxton/contact.read
+tv,http://tizen.org/privilege/contact.write,2.4,9.9,http://tizen.org/privilege/contact.write
+tv,http://tizen.org/privilege/contact.write,2.4,9.9,http://tizen.org/privilege/internal/buxton/contact.read
+tv,http://tizen.org/privilege/content.write,2.4,9.9,http://tizen.org/privilege/content.write
+tv,http://tizen.org/privilege/datasharing,2.4,9.9,http://tizen.org/privilege/datasharing
+tv,http://tizen.org/privilege/display,2.4,9.9,http://tizen.org/privilege/display
+tv,http://tizen.org/privilege/download,2.4,9.9,http://tizen.org/privilege/download
+tv,http://tizen.org/privilege/email,2.4,9.9,http://tizen.org/privilege/email
+tv,http://tizen.org/privilege/email.admin,2.4,9.9,http://tizen.org/privilege/email.admin
+tv,http://tizen.org/privilege/externalstorage,2.4,9.9,http://tizen.org/privilege/externalstorage
+tv,http://tizen.org/privilege/externalstorage.appdata,2.4,9.9,http://tizen.org/privilege/externalstorage.appdata
+tv,http://tizen.org/privilege/haptic,2.4,9.9,http://tizen.org/privilege/haptic
+tv,http://tizen.org/privilege/healthinfo,2.4,9.9,http://tizen.org/privilege/healthinfo
+tv,http://tizen.org/privilege/ime,2.4,9.9,http://tizen.org/privilege/ime
+tv,http://tizen.org/privilege/imemanager,2.4,9.9,http://tizen.org/privilege/imemanager
+tv,http://tizen.org/privilege/inputgenerator,2.4,9.9,http://tizen.org/privilege/inputgenerator
+tv,http://tizen.org/privilege/internet,2.4,9.9,http://tizen.org/privilege/internet
+tv,http://tizen.org/privilege/keygrab,2.4,9.9,http://tizen.org/privilege/keygrab
+tv,http://tizen.org/privilege/keymanager,2.4,9.9,http://tizen.org/privilege/keymanager
+tv,http://tizen.org/privilege/led,2.4,9.9,http://tizen.org/privilege/led
+tv,http://tizen.org/privilege/location,2.4,9.9,http://tizen.org/privilege/location
+tv,http://tizen.org/privilege/location,2.4,9.9,http://tizen.org/privilege/internal/buxton/location
+tv,http://tizen.org/privilege/location.enable,2.4,9.9,http://tizen.org/privilege/location.enable
+tv,http://tizen.org/privilege/location.enable,2.4,9.9,http://tizen.org/privilege/internal/buxton/location
+tv,http://tizen.org/privilege/mapservice,2.4,9.9,http://tizen.org/privilege/mapservice
+tv,http://tizen.org/privilege/mediacontroller.client,2.4,9.9,http://tizen.org/privilege/mediacontroller.client
+tv,http://tizen.org/privilege/mediacontroller.server,2.4,9.9,http://tizen.org/privilege/mediacontroller.server
+tv,http://tizen.org/privilege/mediahistory.read,2.4,9.9,http://tizen.org/privilege/mediahistory.read
+tv,http://tizen.org/privilege/mediastorage,2.4,9.9,http://tizen.org/privilege/mediastorage
+tv,http://tizen.org/privilege/message.read,2.4,9.9,http://tizen.org/privilege/message.read
+tv,http://tizen.org/privilege/message.read,2.4,9.9,http://tizen.org/privilege/internal/buxton/message.read
+tv,http://tizen.org/privilege/message.write,2.4,9.9,http://tizen.org/privilege/message.write
+tv,http://tizen.org/privilege/minicontrol.provider,2.4,9.9,http://tizen.org/privilege/minicontrol.provider
+tv,http://tizen.org/privilege/network.get,2.4,9.9,http://tizen.org/privilege/network.get
+tv,http://tizen.org/privilege/network.get,2.4,9.9,http://tizen.org/privilege/internal/buxton/network.get
+tv,http://tizen.org/privilege/network.profile,2.4,9.9,http://tizen.org/privilege/network.profile
+tv,http://tizen.org/privilege/network.set,2.4,9.9,http://tizen.org/privilege/network.set
+tv,http://tizen.org/privilege/network.set,2.4,9.9,http://tizen.org/privilege/internal/buxton/network.get
+tv,http://tizen.org/privilege/nfc,2.4,9.9,http://tizen.org/privilege/nfc
+tv,http://tizen.org/privilege/nfc,2.4,9.9,http://tizen.org/privilege/internal/buxton/nfc
+tv,http://tizen.org/privilege/nfc.admin,2.4,9.9,http://tizen.org/privilege/nfc.admin
+tv,http://tizen.org/privilege/nfc.admin,2.4,9.9,http://tizen.org/privilege/internal/buxton/nfc
+tv,http://tizen.org/privilege/nfc.admin,2.4,9.9,http://tizen.org/privilege/internal/buxton/nfc.cardemulation
+tv,http://tizen.org/privilege/nfc.cardemulation,2.4,9.9,http://tizen.org/privilege/nfc.cardemulation
+tv,http://tizen.org/privilege/nfc.cardemulation,2.4,9.9,http://tizen.org/privilege/internal/buxton/nfc.cardemulation
+tv,http://tizen.org/privilege/notification,2.4,9.9,http://tizen.org/privilege/notification
+tv,http://tizen.org/privilege/packagemanager.admin,2.4,9.9,http://tizen.org/privilege/packagemanager.admin
+tv,http://tizen.org/privilege/packagemanager.clearcache,2.4,9.9,http://tizen.org/privilege/packagemanager.clearcache
+tv,http://tizen.org/privilege/packagemanager.info,2.4,9.9,http://tizen.org/privilege/packagemanager.info
+tv,http://tizen.org/privilege/power,2.4,9.9,http://tizen.org/privilege/power
+tv,http://tizen.org/privilege/push,2.4,9.9,http://tizen.org/privilege/push
+tv,http://tizen.org/privilege/reboot,2.4,9.9,http://tizen.org/privilege/reboot
+tv,http://tizen.org/privilege/recorder,2.4,9.9,http://tizen.org/privilege/recorder
+tv,http://tizen.org/privilege/recorder,2.4,9.9,http://tizen.org/privilege/internal/buxton/camcorder
+tv,http://tizen.org/privilege/screenshot,2.4,9.9,http://tizen.org/privilege/screenshot
+tv,http://tizen.org/privilege/secureelement,2.4,9.9,http://tizen.org/privilege/secureelement
+tv,http://tizen.org/privilege/shortcut,2.4,9.9,http://tizen.org/privilege/shortcut
+tv,http://tizen.org/privilege/systemmonitor,2.4,9.9,http://tizen.org/privilege/systemmonitor
+tv,http://tizen.org/privilege/systemsettings.admin,2.4,9.9,http://tizen.org/privilege/systemsettings.admin
+tv,http://tizen.org/privilege/telephony,2.4,9.9,http://tizen.org/privilege/telephony
+tv,http://tizen.org/privilege/telephony.admin,2.4,9.9,http://tizen.org/privilege/telephony.admin
+tv,http://tizen.org/privilege/telephony.admin,2.4,9.9,http://tizen.org/privilege/internal/buxton/telephony
+tv,http://tizen.org/privilege/tethering.admin,2.4,9.9,http://tizen.org/privilege/tethering.admin
+tv,http://tizen.org/privilege/volume.set,2.4,9.9,http://tizen.org/privilege/volume.set
+tv,http://tizen.org/privilege/web-history.admin,2.4,9.9,http://tizen.org/privilege/web-history.admin
+tv,http://tizen.org/privilege/widget.viewer,2.4,9.9,http://tizen.org/privilege/widget.viewer
+tv,http://tizen.org/privilege/wifidirect,2.4,9.9,http://tizen.org/privilege/wifidirect
+tv,http://tizen.org/privilege/window.priority.set,2.4,9.9,http://tizen.org/privilege/window.priority.set
+tv,http://tizen.org/privilege/internal/default/public,2.4,9.9,http://tizen.org/privilege/internal/default/public
+tv,http://tizen.org/privilege/internal/default/partner,2.4,9.9,http://tizen.org/privilege/internal/default/public
+tv,http://tizen.org/privilege/internal/default/partner,2.4,9.9,http://tizen.org/privilege/internal/default/partner
+tv,http://tizen.org/privilege/internal/default/platform,2.4,9.9,http://tizen.org/privilege/internal/default/public
+tv,http://tizen.org/privilege/internal/default/platform,2.4,9.9,http://tizen.org/privilege/internal/default/partner
+tv,http://tizen.org/privilege/internal/default/platform,2.4,9.9,http://tizen.org/privilege/internal/default/platform
diff --git a/capi/res/dbspace/tv_core_privilege_mapping.db b/capi/res/dbspace/tv_core_privilege_mapping.db
new file mode 100644 (file)
index 0000000..ed46721
Binary files /dev/null and b/capi/res/dbspace/tv_core_privilege_mapping.db differ
diff --git a/capi/res/dbspace/tv_wrt_mapping_db_generator.sh b/capi/res/dbspace/tv_wrt_mapping_db_generator.sh
new file mode 100755 (executable)
index 0000000..507fd6a
--- /dev/null
@@ -0,0 +1,56 @@
+#!/bin/bash
+
+DB_NAME="tv_wrt_privilege_mapping.db"
+
+rm $DB_NAME 2> /dev/null
+echo "Creating $DB_NAME ..."
+touch $DB_NAME
+
+echo "Creating PRIVILEGE_MAPPING table ..."
+sqlite3 $DB_NAME "CREATE TABLE PRIVILEGE_MAPPING (PROFILE_ID NUMERIC, PROFILE TEXT, PRIVILEGE_NAME TEXT, FROM_API_VERSION TEXT, TO_API_VERSION TEXT, MAPPED_PRIVILEGE_NAME TEXT);"
+
+echo "Inserting data ..."
+IFS=$'\n'
+for i in `cat tv_wrt_privilege_mapping.csv`
+do
+       temp=`echo $i | awk '/^#/'`
+       if [ ! "$temp" = "" ]
+       then
+               continue
+       fi
+
+       PROFILE=`echo $i | cut -d "," -f 1`
+       #echo PROFILE = $PROFILE
+
+       if [ "$PROFILE" = "common" ]
+       then
+               PROFILE_ID=0
+
+       elif [ "$PROFILE" = "mobile" ]
+       then
+               PROFILE_ID=1
+
+       elif [ "$PROFILE" = "wearable" ]
+       then
+               PROFILE_ID=2
+
+       elif [ "$PROFILE" = "tv" ]
+    then
+        PROFILE_ID=3
+       else
+               echo "Fail to create table : PROFILE must be common, mobile, wearable or tv"
+               exit
+       fi
+
+       PRIVILEGE_NAME=`echo $i | cut -d "," -f 2`
+       FROM_API_VERSION=`echo $i | cut -d "," -f 3`
+       TO_API_VERSION=`echo $i | cut -d "," -f 4`
+       MAPPED_PRIVILEGE_NAME=`echo $i | cut -d "," -f 5`
+
+       echo "Inserting $PRIVILEGE_NAME $MAPPED_PRIVILEGE_NAME..."
+
+       sqlite3 $DB_NAME "insert into privilege_mapping values ( $PROFILE_ID, '$PROFILE', '$PRIVILEGE_NAME','$FROM_API_VERSION', '$TO_API_VERSION', '$MAPPED_PRIVILEGE_NAME')"
+done
+
+echo "Check inserted data"
+sqlite3 $DB_NAME "select * from privilege_mapping"
diff --git a/capi/res/dbspace/tv_wrt_privilege_mapping.csv b/capi/res/dbspace/tv_wrt_privilege_mapping.csv
new file mode 100644 (file)
index 0000000..293fe57
--- /dev/null
@@ -0,0 +1,74 @@
+#PROFILE,#PRIVILEGE_NAME,#FROM,#TO,#MAPPED_PRIVILEGE_NAME
+tv,http://tizen.org/privilege/alarm,2.3,9.9,http://tizen.org/privilege/alarm.get
+tv,http://tizen.org/privilege/alarm,2.3,9.9,http://tizen.org/privilege/alarm.set
+tv,http://tizen.org/privilege/application.info,2.3,9.9,http://tizen.org/privilege/packagemanager.info
+tv,http://tizen.org/privilege/application.launch,2.3,9.9,http://tizen.org/privilege/appmanager.launch
+tv,http://tizen.org/privilege/appmanager.certificate,2.3,9.9,http://tizen.org/privilege/notexist
+tv,http://tizen.org/privilege/appmanager.kill,2.3,9.9,http://tizen.org/privilege/appmanager.kill
+tv,http://tizen.org/privilege/content.read,2.3,9.9,http://tizen.org/privilege/content.write
+tv,http://tizen.org/privilege/content.write,2.3,9.9,http://tizen.org/privilege/content.write
+tv,http://tizen.org/privilege/datacontrol.consumer,2.4,9.9,http://tizen.org/privilege/appmanager.launch
+tv,http://tizen.org/privilege/datacontrol.consumer,2.4,9.9,http://tizen.org/privilege/datasharing
+tv,http://tizen.org/privilege/download,2.3,9.9,http://tizen.org/privilege/download
+tv,http://tizen.org/privilege/filesystem.read,2.3,9.9,http://tizen.org/privilege/systemsettings.admin
+tv,http://tizen.org/privilege/filesystem.write,2.3,9.9,http://tizen.org/privilege/systemsettings.admin
+tv,http://tizen.org/privilege/fullscreen,2.3,9.9,http://tizen.org/privilege/notexist
+tv,http://tizen.org/privilege/internet,2.3,9.9,http://tizen.org/privilege/internet
+tv,http://tizen.org/privilege/keymanager,2.4,9.9,http://tizen.org/privilege/keymanager
+tv,http://tizen.org/privilege/mediacapture,2.3,9.9,http://tizen.org/privilege/camera
+tv,http://tizen.org/privilege/mediacapture,2.3,9.9,http://tizen.org/privilege/internal/buxton/camcorder
+tv,http://tizen.org/privilege/mediacapture,2.3,9.9,http://tizen.org/privilege/recorder
+tv,http://tizen.org/privilege/package.info,2.3,9.9,http://tizen.org/privilege/packagemanager.info
+tv,http://tizen.org/privilege/packagemanager.install,2.3,9.9,http://tizen.org/privilege/packagemanager.admin
+tv,http://tizen.org/privilege/system,2.3,9.9,http://tizen.org/privilege/telephony
+tv,http://tizen.org/privilege/systemmanager,2.3,2.3,http://tizen.org/privilege/telephony
+tv,http://tizen.org/privilege/telephony,2.4,9.9,http://tizen.org/privilege/telephony
+tv,http://tizen.org/privilege/tv.audio,2.3,9.9,http://tizen.org/privilege/notexist
+tv,http://tizen.org/privilege/tv.channel,2.3,9.9,http://tizen.org/privilege/notexist
+tv,http://tizen.org/privilege/tv.display,2.3,9.9,http://tizen.org/privilege/notexist
+tv,http://tizen.org/privilege/tv.inputdevice,2.3,9.9,http://tizen.org/privilege/notexist
+tv,http://tizen.org/privilege/tv.window,2.3,9.9,http://tizen.org/privilege/notexist
+tv,http://tizen.org/privilege/unlimitedstorage,2.3,9.9,http://tizen.org/privilege/notexist
+tv,http://tizen.org/privilege/websetting,2.3,2.3,http://tizen.org/privilege/notexist
+tv,http://tizen.org/privilege/internal/default/public,2.3,2.3,http://tizen.org/privilege/internal/buxton/location
+tv,http://tizen.org/privilege/internal/default/public,2.3,9.9,http://tizen.org/privilege/internal/default/public
+tv,http://tizen.org/privilege/internal/default/public,2.3,2.3,http://tizen.org/privilege/call
+tv,http://tizen.org/privilege/internal/default/public,2.3,2.3,http://tizen.org/privilege/internet
+tv,http://tizen.org/privilege/internal/default/public,2.3,2.3,http://tizen.org/privilege/recorder
+tv,http://tizen.org/privilege/internal/default/public,2.3,2.3,http://tizen.org/privilege/camera
+tv,http://tizen.org/privilege/internal/default/public,2.3,9.9,http://tizen.org/privilege/appmanager.launch
+tv,http://tizen.org/privilege/internal/default/public,2.3,9.9,http://tizen.org/privilege/haptic
+tv,http://tizen.org/privilege/internal/default/public,2.3,9.9,http://tizen.org/privilege/internal/buxton/network.get
+tv,http://tizen.org/privilege/internal/default/public,2.3,9.9,http://tizen.org/privilege/internal/buxton/telephony
+tv,http://tizen.org/privilege/internal/default/public,2.3,9.9,http://tizen.org/privilege/network.get
+tv,http://tizen.org/privilege/internal/default/public,2.3,9.9,http://tizen.org/privilege/notification
+tv,http://tizen.org/privilege/internal/default/public,2.3,9.9,http://tizen.org/privilege/packagemanager.info
+tv,http://tizen.org/privilege/internal/default/partner,2.3,2.3,http://tizen.org/privilege/internal/buxton/location
+tv,http://tizen.org/privilege/internal/default/partner,2.3,9.9,http://tizen.org/privilege/internal/default/public
+tv,http://tizen.org/privilege/internal/default/partner,2.3,9.9,http://tizen.org/privilege/internal/default/partner
+tv,http://tizen.org/privilege/internal/default/partner,2.3,2.3,http://tizen.org/privilege/call
+tv,http://tizen.org/privilege/internal/default/partner,2.3,2.3,http://tizen.org/privilege/internet
+tv,http://tizen.org/privilege/internal/default/partner,2.3,2.3,http://tizen.org/privilege/recorder
+tv,http://tizen.org/privilege/internal/default/partner,2.3,2.3,http://tizen.org/privilege/camera
+tv,http://tizen.org/privilege/internal/default/partner,2.3,9.9,http://tizen.org/privilege/appmanager.launch
+tv,http://tizen.org/privilege/internal/default/partner,2.3,9.9,http://tizen.org/privilege/haptic
+tv,http://tizen.org/privilege/internal/default/partner,2.3,9.9,http://tizen.org/privilege/internal/buxton/network.get
+tv,http://tizen.org/privilege/internal/default/partner,2.3,9.9,http://tizen.org/privilege/internal/buxton/telephony
+tv,http://tizen.org/privilege/internal/default/partner,2.3,9.9,http://tizen.org/privilege/network.get
+tv,http://tizen.org/privilege/internal/default/partner,2.3,9.9,http://tizen.org/privilege/notification
+tv,http://tizen.org/privilege/internal/default/partner,2.3,9.9,http://tizen.org/privilege/packagemanager.info
+tv,http://tizen.org/privilege/internal/default/platform,2.3,2.3,http://tizen.org/privilege/internal/buxton/location
+tv,http://tizen.org/privilege/internal/default/platform,2.3,9.9,http://tizen.org/privilege/internal/default/public
+tv,http://tizen.org/privilege/internal/default/platform,2.3,9.9,http://tizen.org/privilege/internal/default/partner
+tv,http://tizen.org/privilege/internal/default/platform,2.3,9.9,http://tizen.org/privilege/internal/default/platform
+tv,http://tizen.org/privilege/internal/default/platform,2.3,2.3,http://tizen.org/privilege/call
+tv,http://tizen.org/privilege/internal/default/platform,2.3,2.3,http://tizen.org/privilege/internet
+tv,http://tizen.org/privilege/internal/default/platform,2.3,2.3,http://tizen.org/privilege/recorder
+tv,http://tizen.org/privilege/internal/default/platform,2.3,2.3,http://tizen.org/privilege/camera
+tv,http://tizen.org/privilege/internal/default/platform,2.3,9.9,http://tizen.org/privilege/appmanager.launch
+tv,http://tizen.org/privilege/internal/default/platform,2.3,9.9,http://tizen.org/privilege/haptic
+tv,http://tizen.org/privilege/internal/default/platform,2.3,9.9,http://tizen.org/privilege/internal/buxton/network.get
+tv,http://tizen.org/privilege/internal/default/platform,2.3,9.9,http://tizen.org/privilege/internal/buxton/telephony
+tv,http://tizen.org/privilege/internal/default/platform,2.3,9.9,http://tizen.org/privilege/network.get
+tv,http://tizen.org/privilege/internal/default/platform,2.3,9.9,http://tizen.org/privilege/notification
+tv,http://tizen.org/privilege/internal/default/platform,2.3,9.9,http://tizen.org/privilege/packagemanager.info
diff --git a/capi/res/dbspace/tv_wrt_privilege_mapping.db b/capi/res/dbspace/tv_wrt_privilege_mapping.db
new file mode 100644 (file)
index 0000000..7e6a63c
Binary files /dev/null and b/capi/res/dbspace/tv_wrt_privilege_mapping.db differ
diff --git a/capi/res/dbspace/wrt_mapping_db_generator.sh b/capi/res/dbspace/wrt_mapping_db_generator.sh
new file mode 100755 (executable)
index 0000000..16f0cca
--- /dev/null
@@ -0,0 +1,53 @@
+#!/bin/bash
+
+DB_NAME="wrt_privilege_mapping.db"
+
+rm $DB_NAME 2> /dev/null
+echo "Creating $DB_NAME ..."
+touch $DB_NAME
+
+echo "Creating PRIVILEGE_MAPPING table ..."
+sqlite3 $DB_NAME "CREATE TABLE PRIVILEGE_MAPPING (PROFILE_ID NUMERIC, PROFILE TEXT, PRIVILEGE_NAME TEXT, FROM_API_VERSION TEXT, TO_API_VERSION TEXT, MAPPED_PRIVILEGE_NAME TEXT);"
+
+echo "Inserting data ..."
+IFS=$'\n'
+for i in `cat wrt_privilege_mapping.csv`
+do
+       temp=`echo $i | awk '/^#/'`
+       if [ ! "$temp" = "" ]
+       then
+               continue
+       fi
+
+       PROFILE=`echo $i | cut -d "," -f 1`
+       #echo PROFILE = $PROFILE
+
+       if [ "$PROFILE" = "common" ]
+       then
+               PROFILE_ID=0
+
+       elif [ "$PROFILE" = "mobile" ]
+       then
+               PROFILE_ID=1
+
+       elif [ "$PROFILE" = "wearable" ]
+       then
+               PROFILE_ID=2
+
+       else
+               echo "Fail to create table : PROFILE must be common, mobile or wearable"
+               exit
+       fi
+
+       PRIVILEGE_NAME=`echo $i | cut -d "," -f 2`
+       FROM_API_VERSION=`echo $i | cut -d "," -f 3`
+       TO_API_VERSION=`echo $i | cut -d "," -f 4`
+       MAPPED_PRIVILEGE_NAME=`echo $i | cut -d "," -f 5`
+
+       echo "Inserting $PRIVILEGE_NAME $MAPPED_PRIVILEGE_NAME..."
+
+       sqlite3 $DB_NAME "insert into privilege_mapping values ( $PROFILE_ID, '$PROFILE', '$PRIVILEGE_NAME','$FROM_API_VERSION', '$TO_API_VERSION', '$MAPPED_PRIVILEGE_NAME')"
+done
+
+echo "Check inserted data"
+sqlite3 $DB_NAME "select * from privilege_mapping"
diff --git a/capi/res/dbspace/wrt_privilege_mapping.csv b/capi/res/dbspace/wrt_privilege_mapping.csv
new file mode 100644 (file)
index 0000000..86e6ef5
--- /dev/null
@@ -0,0 +1,161 @@
+#PROFILE,#PRIVILEGE_NAME,#FROM,#TO,#MAPPED_PRIVILEGE_NAME,
+mobile,http://tizen.org/privilege/account.read,2.3,9.9,http://tizen.org/privilege/account.read,
+mobile,http://tizen.org/privilege/account.read,2.3,9.9,http://tizen.org/privilege/internal/buxton/account.read,
+mobile,http://tizen.org/privilege/account.write,2.3,9.9,http://tizen.org/privilege/account.write,
+mobile,http://tizen.org/privilege/account.write,2.3,9.9,http://tizen.org/privilege/internal/buxton/account.read,
+common,http://tizen.org/privilege/alarm,1,9.9,http://tizen.org/privilege/alarm.get,
+common,http://tizen.org/privilege/alarm,1,9.9,http://tizen.org/privilege/alarm.set,
+common,http://tizen.org/privilege/application.info,2.2,9.9,http://tizen.org/privilege/packagemanager.info,
+common,http://tizen.org/privilege/application.launch,1,9.9,http://tizen.org/privilege/appmanager.launch,
+common,http://tizen.org/privilege/appmanager.certificate,2.1,9.9,http://tizen.org/privilege/notexist,
+common,http://tizen.org/privilege/appmanager.kill,2.1,9.9,http://tizen.org/privilege/appmanager.kill,
+wearable,http://tizen.org/privilege/audiorecorder,2.3,9.9,http://tizen.org/privilege/recorder,
+wearable,http://tizen.org/privilege/audiorecorder,2.3,9.9,http://tizen.org/privilege/internal/buxton/camcorder,
+common,http://tizen.org/privilege/bluetooth,2.4,9.9,http://tizen.org/privilege/bluetooth,
+mobile,http://tizen.org/privilege/bluetooth.admin,1,2.3.1,http://tizen.org/privilege/bluetooth,Bluetooth.* was changed to bluetooth
+wearable,http://tizen.org/privilege/bluetooth.admin,2.3.1,2.3.1,http://tizen.org/privilege/bluetooth,Bluetooth.* was changed to bluetooth
+mobile,http://tizen.org/privilege/bluetooth.gap,1,2.3.1,http://tizen.org/privilege/bluetooth,Bluetooth.* was changed to bluetooth
+wearable,http://tizen.org/privilege/bluetooth.gap,2.3.1,2.3.1,http://tizen.org/privilege/bluetooth,Bluetooth.* was changed to bluetooth
+mobile,http://tizen.org/privilege/bluetooth.health,2.2,2.3.1,http://tizen.org/privilege/bluetooth,Bluetooth.* was changed to bluetooth
+wearable,http://tizen.org/privilege/bluetooth.health,2.3.1,2.3.1,http://tizen.org/privilege/bluetooth,Bluetooth.* was changed to bluetooth
+mobile,http://tizen.org/privilege/bluetooth.spp,1,2.3.1,http://tizen.org/privilege/bluetooth,Bluetooth.* was changed to bluetooth
+wearable,http://tizen.org/privilege/bluetooth.spp,2.3.1,2.3.1,http://tizen.org/privilege/bluetooth,Bluetooth.* was changed to bluetooth
+mobile,http://tizen.org/privilege/bluetoothmanager,2.1,9.9,http://tizen.org/privilege/bluetooth.admin,
+wearable,http://tizen.org/privilege/bluetoothmanager,2.3.1,9.9,http://tizen.org/privilege/bluetooth.admin,
+mobile,http://tizen.org/privilege/bookmark.read,2.1,9.9,http://tizen.org/privilege/bookmark.admin,
+mobile,http://tizen.org/privilege/bookmark.write,2.1,9.9,http://tizen.org/privilege/bookmark.admin,
+mobile,http://tizen.org/privilege/calendar.read,1,9.9,http://tizen.org/privilege/calendar.read,
+mobile,http://tizen.org/privilege/calendar.write,1,9.9,http://tizen.org/privilege/calendar.write,
+mobile,http://tizen.org/privilege/calendar.write,1,9.9,http://tizen.org/privilege/calendar.read,
+common,http://tizen.org/privilege/call,2.3,9.9,http://tizen.org/privilege/call,
+mobile,http://tizen.org/privilege/callhistory.read,2,9.9,http://tizen.org/privilege/callhistory.read,
+mobile,http://tizen.org/privilege/callhistory.read,2,9.9,http://tizen.org/privilege/contact.read,
+mobile,http://tizen.org/privilege/callhistory.read,2,9.9,http://tizen.org/privilege/telephony,
+mobile,http://tizen.org/privilege/callhistory.write,2,9.9,http://tizen.org/privilege/callhistory.read,
+mobile,http://tizen.org/privilege/callhistory.write,2,9.9,http://tizen.org/privilege/callhistory.write,
+mobile,http://tizen.org/privilege/callhistory.write,2,9.9,http://tizen.org/privilege/contact.read,
+mobile,http://tizen.org/privilege/callhistory.write,2,9.9,http://tizen.org/privilege/contact.write,
+wearable,http://tizen.org/privilege/camera,2.3,9.9,http://tizen.org/privilege/camera,
+wearable,http://tizen.org/privilege/camera,2.3,9.9,http://tizen.org/privilege/recorder,
+wearable,http://tizen.org/privilege/camera,2.3,9.9,http://tizen.org/privilege/internal/buxton/camcorder,
+mobile,http://tizen.org/privilege/contact.read,1,9.9,http://tizen.org/privilege/contact.read,
+mobile,http://tizen.org/privilege/contact.write,1,9.9,http://tizen.org/privilege/contact.write,
+common,http://tizen.org/privilege/content.read,2,9.9,http://tizen.org/privilege/content.write,
+common,http://tizen.org/privilege/content.write,2,9.9,http://tizen.org/privilege/content.write,
+mobile,http://tizen.org/privilege/datacontrol.consumer,2.1,9.9,http://tizen.org/privilege/appmanager.launch,
+mobile,http://tizen.org/privilege/datacontrol.consumer,2.1,9.9,http://tizen.org/privilege/datasharing,
+mobile,http://tizen.org/privilege/datasync,2.1,9.9,http://tizen.org/privilege/notexist,
+common,http://tizen.org/privilege/download,2,9.9,http://tizen.org/privilege/download,
+common,http://tizen.org/privilege/filesystem.read,1,9.9,http://tizen.org/privilege/systemsettings.admin,
+common,http://tizen.org/privilege/filesystem.write,1,9.9,http://tizen.org/privilege/systemsettings.admin,
+mobile,http://tizen.org/privilege/fullscreen,2.1,9.9,http://tizen.org/privilege/notexist,
+common,http://tizen.org/privilege/healthinfo,2.3,9.9,http://tizen.org/privilege/healthinfo,
+common,http://tizen.org/privilege/internet,2.3,9.9,http://tizen.org/privilege/internet,
+common,http://tizen.org/privilege/ime,2.4,9.9,http://tizen.org/privilege/ime,
+mobile,http://tizen.org/privilege/led,2.4,9.9,http://tizen.org/privilege/led,
+common,http://tizen.org/privilege/location,2.1,9.9,http://tizen.org/privilege/location,
+common,http://tizen.org/privilege/location,2.4,9.9,http://tizen.org/privilege/internal/buxton/location,
+common,http://tizen.org/privilege/mediacapture,2.1,9.9,http://tizen.org/privilege/camera,
+common,http://tizen.org/privilege/mediacapture,2.1,9.9,http://tizen.org/privilege/internal/buxton/camcorder,
+common,http://tizen.org/privilege/mediacapture,2.1,9.9,http://tizen.org/privilege/recorder,
+common,http://tizen.org/privilege/mediacontroller.client,2.4,9.9,http://tizen.org/privilege/mediacontroller.client,
+common,http://tizen.org/privilege/mediacontroller.server,2.4,9.9,http://tizen.org/privilege/mediacontroller.server,
+mobile,http://tizen.org/privilege/messaging.read,1,9.9,http://tizen.org/privilege/email,
+mobile,http://tizen.org/privilege/messaging.read,1,9.9,http://tizen.org/privilege/internal/buxton/message.read,
+mobile,http://tizen.org/privilege/messaging.read,1,9.9,http://tizen.org/privilege/mediastorage,
+mobile,http://tizen.org/privilege/messaging.read,1,9.9,http://tizen.org/privilege/message.read,
+mobile,http://tizen.org/privilege/messaging.write,1,9.9,http://tizen.org/privilege/email,"may requires http://tizen.org/privilege/callhistory.read, http://tizen.org/privilege/callhistory.write, http://tizen.org/privilege/contact.read, or http://tizen.org/privilege/contact.write"
+mobile,http://tizen.org/privilege/messaging.write,1,9.9,http://tizen.org/privilege/telephony,
+mobile,http://tizen.org/privilege/messaging.write,1,9.9,http://tizen.org/privilege/message.read,
+mobile,http://tizen.org/privilege/messaging.write,1,9.9,http://tizen.org/privilege/message.write,
+mobile,http://tizen.org/privilege/messaging.write,1,9.9,http://tizen.org/privilege/mediastorage,
+mobile,http://tizen.org/privilege/messaging.write,1,9.9,http://tizen.org/privilege/internal/buxton/message.read,
+mobile,http://tizen.org/privilege/networkbearerselection,2.1,9.9,http://tizen.org/privilege/network.set,
+mobile,http://tizen.org/privilege/nfc.admin,2,9.9,http://tizen.org/privilege/internal/buxton/nfc,
+mobile,http://tizen.org/privilege/nfc.admin,2,9.9,http://tizen.org/privilege/internal/buxton/nfc.cardemulation,
+mobile,http://tizen.org/privilege/nfc.admin,2,9.9,http://tizen.org/privilege/nfc.admin,
+mobile,http://tizen.org/privilege/nfc.admin,2,9.9,http://tizen.org/privilege/secureelement,
+wearable,http://tizen.org/privilege/nfc.admin,2.3.1,9.9,http://tizen.org/privilege/internal/buxton/nfc,
+wearable,http://tizen.org/privilege/nfc.admin,2.3.1,9.9,http://tizen.org/privilege/internal/buxton/nfc.cardemulation,
+wearable,http://tizen.org/privilege/nfc.admin,2.3.1,9.9,http://tizen.org/privilege/nfc.admin,
+wearable,http://tizen.org/privilege/nfc.admin,2.3.1,9.9,http://tizen.org/privilege/secureelement,
+mobile,http://tizen.org/privilege/nfc.cardemulation,2.3,9.9,http://tizen.org/privilege/internal/buxton/nfc.cardemulation,
+mobile,http://tizen.org/privilege/nfc.cardemulation,2.3,9.9,http://tizen.org/privilege/nfc.cardemulation,
+wearable,http://tizen.org/privilege/nfc.cardemulation,2.3.1,9.9,http://tizen.org/privilege/internal/buxton/nfc.cardemulation,
+wearable,http://tizen.org/privilege/nfc.cardemulation,2.3.1,9.9,http://tizen.org/privilege/nfc.cardemulation,
+mobile,http://tizen.org/privilege/nfc.common,2,9.9,http://tizen.org/privilege/internal/buxton/nfc,
+mobile,http://tizen.org/privilege/nfc.common,2,9.9,http://tizen.org/privilege/nfc,
+mobile,http://tizen.org/privilege/nfc.common,2,9.9,http://tizen.org/privilege/secureelement,
+wearable,http://tizen.org/privilege/nfc.common,2.3.1,9.9,http://tizen.org/privilege/internal/buxton/nfc,
+wearable,http://tizen.org/privilege/nfc.common,2.3.1,9.9,http://tizen.org/privilege/nfc,
+wearable,http://tizen.org/privilege/nfc.common,2.3.1,9.9,http://tizen.org/privilege/secureelement,
+mobile,http://tizen.org/privilege/nfc.p2p,1,9.9,http://tizen.org/privilege/internal/buxton/nfc,
+mobile,http://tizen.org/privilege/nfc.p2p,1,9.9,http://tizen.org/privilege/nfc,
+mobile,http://tizen.org/privilege/nfc.p2p,1,9.9,http://tizen.org/privilege/secureelement,
+wearable,http://tizen.org/privilege/nfc.p2p,2.3.1,9.9,http://tizen.org/privilege/internal/buxton/nfc,
+wearable,http://tizen.org/privilege/nfc.p2p,2.3.1,9.9,http://tizen.org/privilege/nfc,
+wearable,http://tizen.org/privilege/nfc.p2p,2.3.1,9.9,http://tizen.org/privilege/secureelement,
+mobile,http://tizen.org/privilege/nfc.tag,1,9.9,http://tizen.org/privilege/internal/buxton/nfc,
+mobile,http://tizen.org/privilege/nfc.tag,1,9.9,http://tizen.org/privilege/nfc,
+mobile,http://tizen.org/privilege/nfc.tag,1,9.9,http://tizen.org/privilege/secureelement,
+wearable,http://tizen.org/privilege/nfc.tag,2.3.1,9.9,http://tizen.org/privilege/internal/buxton/nfc,
+wearable,http://tizen.org/privilege/nfc.tag,2.3.1,9.9,http://tizen.org/privilege/nfc,
+wearable,http://tizen.org/privilege/nfc.tag,2.3.1,9.9,http://tizen.org/privilege/secureelement,
+common,http://tizen.org/privilege/notification,2.1,9.9,http://tizen.org/privilege/notification,
+common,http://tizen.org/privilege/notification,2.1,9.9,http://tizen.org/privilege/packagemanager.info,
+common,http://tizen.org/privilege/package.info,2.1,9.9,http://tizen.org/privilege/packagemanager.info,
+common,http://tizen.org/privilege/packagemanager.install,2.1,9.9,http://tizen.org/privilege/packagemanager.admin,
+common,http://tizen.org/privilege/power,2,9.9,http://tizen.org/privilege/display,
+mobile,http://tizen.org/privilege/push,2.1,9.9,http://tizen.org/privilege/push,
+wearable,http://tizen.org/privilege/push,2.3.1,9.9,http://tizen.org/privilege/push,
+mobile,http://tizen.org/privilege/secureelement,2.1,9.9,http://tizen.org/privilege/secureelement,
+wearable,http://tizen.org/privilege/secureelement,2.3.1,9.9,http://tizen.org/privilege/secureelement,
+common,http://tizen.org/privilege/setting,2,9.9,http://tizen.org/privilege/systemsettings.admin,
+common,http://tizen.org/privilege/system,2.1,9.9,http://tizen.org/privilege/telephony,
+common,http://tizen.org/privilege/systemmanager,2.1,2.3,http://tizen.org/privilege/telephony,
+common,http://tizen.org/privilege/telephony,2.3.1,9.9,http://tizen.org/privilege/telephony,
+common,http://tizen.org/privilege/unlimitedstorage,2.1,9.9,http://tizen.org/privilege/notexist,
+common,http://tizen.org/privilege/volume.set,2.3,9.9,http://tizen.org/privilege/volume.set,
+mobile,http://tizen.org/privilege/websetting,2.2,2.3.1,http://tizen.org/privilege/notexist,
+common,http://tizen.org/privilege/internal/default/public,2.2.1,2.3.1,http://tizen.org/privilege/internal/buxton/location,
+common,http://tizen.org/privilege/internal/default/public,2.2.1,9.9,http://tizen.org/privilege/internal/default/public,
+common,http://tizen.org/privilege/internal/default/public,2.2.1,2.2.1,http://tizen.org/privilege/call,
+common,http://tizen.org/privilege/internal/default/public,2.2.1,2.2.1,http://tizen.org/privilege/internet,
+common,http://tizen.org/privilege/internal/default/public,2.2.1,2.2.1,http://tizen.org/privilege/recorder,
+wearable,http://tizen.org/privilege/internal/default/public,2.2.1,2.2.1,http://tizen.org/privilege/camera,
+common,http://tizen.org/privilege/internal/default/public,2.2.1,9.9,http://tizen.org/privilege/appmanager.launch,
+common,http://tizen.org/privilege/internal/default/public,2.2.1,9.9,http://tizen.org/privilege/haptic,
+common,http://tizen.org/privilege/internal/default/public,2.2.1,9.9,http://tizen.org/privilege/internal/buxton/network.get,
+common,http://tizen.org/privilege/internal/default/public,2.2.1,9.9,http://tizen.org/privilege/internal/buxton/telephony,
+common,http://tizen.org/privilege/internal/default/public,2.2.1,9.9,http://tizen.org/privilege/network.get,
+common,http://tizen.org/privilege/internal/default/public,2.2.1,9.9,http://tizen.org/privilege/notification,
+common,http://tizen.org/privilege/internal/default/public,2.2.1,9.9,http://tizen.org/privilege/packagemanager.info,
+common,http://tizen.org/privilege/internal/default/partner,2.2.1,2.3.1,http://tizen.org/privilege/internal/buxton/location,
+common,http://tizen.org/privilege/internal/default/partner,2.2.1,9.9,http://tizen.org/privilege/internal/default/public,
+common,http://tizen.org/privilege/internal/default/partner,2.2.1,9.9,http://tizen.org/privilege/internal/default/partner,
+common,http://tizen.org/privilege/internal/default/partner,2.2.1,2.2.1,http://tizen.org/privilege/call,
+common,http://tizen.org/privilege/internal/default/partner,2.2.1,2.2.1,http://tizen.org/privilege/internet,
+common,http://tizen.org/privilege/internal/default/partner,2.2.1,2.2.1,http://tizen.org/privilege/recorder,
+wearable,http://tizen.org/privilege/internal/default/partner,2.2.1,2.2.1,http://tizen.org/privilege/camera,
+common,http://tizen.org/privilege/internal/default/partner,2.2.1,9.9,http://tizen.org/privilege/appmanager.launch,
+common,http://tizen.org/privilege/internal/default/partner,2.2.1,9.9,http://tizen.org/privilege/haptic,
+common,http://tizen.org/privilege/internal/default/partner,2.2.1,9.9,http://tizen.org/privilege/internal/buxton/network.get,
+common,http://tizen.org/privilege/internal/default/partner,2.2.1,9.9,http://tizen.org/privilege/internal/buxton/telephony,
+common,http://tizen.org/privilege/internal/default/partner,2.2.1,9.9,http://tizen.org/privilege/network.get,
+common,http://tizen.org/privilege/internal/default/partner,2.2.1,9.9,http://tizen.org/privilege/notification,
+common,http://tizen.org/privilege/internal/default/partner,2.2.1,9.9,http://tizen.org/privilege/packagemanager.info,
+common,http://tizen.org/privilege/internal/default/platform,2.2.1,2.3.1,http://tizen.org/privilege/internal/buxton/location,
+common,http://tizen.org/privilege/internal/default/platform,2.2.1,9.9,http://tizen.org/privilege/internal/default/public,
+common,http://tizen.org/privilege/internal/default/platform,2.2.1,9.9,http://tizen.org/privilege/internal/default/partner,
+common,http://tizen.org/privilege/internal/default/platform,2.2.1,9.9,http://tizen.org/privilege/internal/default/platform,
+common,http://tizen.org/privilege/internal/default/platform,2.2.1,2.2.1,http://tizen.org/privilege/call,
+common,http://tizen.org/privilege/internal/default/platform,2.2.1,2.2.1,http://tizen.org/privilege/internet,
+common,http://tizen.org/privilege/internal/default/platform,2.2.1,2.2.1,http://tizen.org/privilege/recorder,
+wearable,http://tizen.org/privilege/internal/default/platform,2.2.1,2.2.1,http://tizen.org/privilege/camera,
+common,http://tizen.org/privilege/internal/default/platform,2.2.1,9.9,http://tizen.org/privilege/appmanager.launch,
+common,http://tizen.org/privilege/internal/default/platform,2.2.1,9.9,http://tizen.org/privilege/haptic,
+common,http://tizen.org/privilege/internal/default/platform,2.2.1,9.9,http://tizen.org/privilege/internal/buxton/network.get,
+common,http://tizen.org/privilege/internal/default/platform,2.2.1,9.9,http://tizen.org/privilege/internal/buxton/telephony,
+common,http://tizen.org/privilege/internal/default/platform,2.2.1,9.9,http://tizen.org/privilege/network.get,
+common,http://tizen.org/privilege/internal/default/platform,2.2.1,9.9,http://tizen.org/privilege/notification,
+common,http://tizen.org/privilege/internal/default/platform,2.2.1,9.9,http://tizen.org/privilege/packagemanager.info,
diff --git a/capi/res/dbspace/wrt_privilege_mapping.db b/capi/res/dbspace/wrt_privilege_mapping.db
new file mode 100644 (file)
index 0000000..9e8dcd9
Binary files /dev/null and b/capi/res/dbspace/wrt_privilege_mapping.db differ
index 70ee4bd..acad59c 100755 (executable)
@@ -5,6 +5,8 @@
 #include <stdlib.h>
 #define PRIVILEGE_INFO_CORE_DB_PATH "/usr/share/privilege-manager/.core_privilege_info.db"
 #define PRIVILEGE_INFO_WRT_DB_PATH "/usr/share/privilege-manager/.wrt_privilege_info.db"
+#define PRIVILEGE_MAPPING_CORE_DB_PATH "/usr/share/privilege-manager/.core_privilege_mapping.db"
+#define PRIVILEGE_MAPPING_WRT_DB_PATH "/usr/share/privilege-manager/.wrt_privilege_mapping.db"
 
 #ifdef LOG_TAG
 #undef LOG_TAG
@@ -56,6 +58,27 @@ int __initialize_db(sqlite3** db, privilege_db_manager_package_type_e package_ty
        }
        return PRIVILEGE_DB_MANAGER_ERR_NONE;
 }
+
+int __initialize_mapping_db(sqlite3** db, privilege_db_manager_package_type_e package_type)
+{
+    char* db_path = NULL;
+
+    if(package_type == PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE){
+        db_path = PRIVILEGE_MAPPING_CORE_DB_PATH;
+    }else{
+        db_path = PRIVILEGE_MAPPING_WRT_DB_PATH;
+    }
+
+    int ret = sqlite3_open_v2(db_path, db, SQLITE_OPEN_READONLY, NULL);
+    if(ret != SQLITE_OK)
+    {
+        LOGE("[DB_FAIL] Can't open database %s : %s", db_path, sqlite3_errmsg(*db));
+        sqlite3_close(*db);
+        return PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL;
+    }
+    return PRIVILEGE_DB_MANAGER_ERR_NONE;
+}
+
 void __finalize_db(sqlite3* db, sqlite3_stmt* stmt)
 {
        if(stmt != NULL)
@@ -111,7 +134,7 @@ int privilege_db_manager_get_privilege_list(const char* api_version, privilege_d
                if(ret == SQLITE_ROW)
                {
                        privilege_info_db_row_s* privilege_info_db_row = (privilege_info_db_row_s*)malloc(sizeof(privilege_info_db_row_s));
-                       TryReturn(privilege_info_db_row != NULL, free(privilege_info_db_row), PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY, "[PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY] privilege_name's strdup is failed.");
+                       TryReturn(privilege_info_db_row != NULL, free(privilege_info_db_row), PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY, "[PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY] privilege_info_db_row's malloc is failed.");
 
                        privilege_info_db_row->profile = NULL;
                        privilege_info_db_row->package_type = NULL;
@@ -150,6 +173,68 @@ int privilege_db_manager_get_privilege_list(const char* api_version, privilege_d
        return PRIVILEGE_DB_MANAGER_ERR_NONE;
 }
 
+
+int privilege_db_manager_get_mapped_privilege_list(const char* api_version, privilege_db_manager_package_type_e package_type, GList* privilege_list, GList** mapped_privilege_list) 
+{
+    sqlite3* db = NULL;
+    sqlite3_stmt* stmt = NULL;
+    int ret;
+
+    ret = __initialize_mapping_db(&db, package_type);
+    if(ret != PRIVILEGE_DB_MANAGER_ERR_NONE)
+        return ret;
+
+    GList* temp_privilege_list = NULL;
+
+       char* privilege_list_str = NULL;
+       GList* l;
+       for (l = privilege_list; l != NULL; l = l->next) {
+               char* privilege_name = (char*)l->data;
+               if (privilege_list_str == NULL) {
+                       size_t size = snprintf(0, 0, "'%s'", privilege_name) + 1;
+                       privilege_list_str = (char*)malloc(size*sizeof(char));
+                       TryReturn(privilege_list_str != NULL,, PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY, "[PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY] privilege_list_str's malloc is failed.");
+                       snprintf(privilege_list_str, size, "'%s'", privilege_name);
+                       LOGD("privilege_list_str = %s", privilege_list_str);
+               } else {
+                       size_t new_size = snprintf(0, 0, "%s, '%s'", privilege_list_str, privilege_name) + 1;
+                       privilege_list_str = realloc(privilege_list_str, new_size*sizeof(char));
+                       TryReturn(privilege_list_str != NULL, free(privilege_list_str), PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY, "[PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY] privilege_list_str's realloc is failed.");
+                       strncat(privilege_list_str, ", '", strlen(", '"));
+                       strncat(privilege_list_str, privilege_name, strlen(privilege_name));
+                       strncat(privilege_list_str, "'", strlen("'"));
+                       LOGD("privilege_list_str = %s", privilege_list_str);
+               }
+       }
+
+       char* sql = sqlite3_mprintf("select distinct mapped_privilege_name from privilege_mapping where privilege_name in (%s) and (profile_id=%d or profile_id=%d) and from_api_version<=%Q and to_api_version>=%Q", privilege_list_str, PRIVILEGE_DB_MANAGER_PROFILE_TYPE_COMMON, g_privilege_db_manager_profile_type, api_version, api_version);
+       free(privilege_list_str);
+
+    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 PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY;
+    }
+
+       do{
+        ret = sqlite3_step(stmt);
+        if(ret == SQLITE_ROW)
+        {
+                       char* privilege_name = strdup((char*)sqlite3_column_text(stmt,0));
+            temp_privilege_list = g_list_append(temp_privilege_list, privilege_name);
+        }
+    }while (ret == SQLITE_ROW);
+
+    *mapped_privilege_list = temp_privilege_list;
+
+    __finalize_db(db, stmt);
+
+    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)
 {
        sqlite3* db = NULL;
index 7ee796c..0fe8fe2 100755 (executable)
@@ -165,6 +165,33 @@ const char* __get_privilege_level_string(privilege_db_manager_privilege_level_e
     }
 }
 
+int __check_api_version_validity(const char* api_version) {
+
+       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;
+    }
+
+    if(is_vaild_version_type == 0){
+        return PRVMGR_ERR_INVALID_PARAMETER;
+    }
+
+       return PRVMGR_ERR_NONE;
+}
 
 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)
 {
@@ -187,39 +214,21 @@ int privilege_manager_verify_privilege(const char* api_version, privilege_manage
     int i = 0;
 
     //Check invaild parameters
-    if (api_version == NULL){
+       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 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;
-        }
-
-        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;
-        }
-    }
+    } else {
+               ret = __check_api_version_validity(api_version);
+               if (ret != PRVMGR_ERR_NONE) {
+                       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 ret;
+               }
+       }
 
     if(package_type != PRVMGR_PACKAGE_TYPE_WRT && package_type != PRVMGR_PACKAGE_TYPE_CORE){
         LOGD("checking package type = %d", package_type);
@@ -490,3 +499,20 @@ FINISH:
 }
 
 
+int privilege_manager_get_mapped_privilege_list(const char* api_version, privilege_manager_package_type_e package_type, GList* privilege_list, GList** mapped_privilege_list)
+{
+       int ret;
+       TryReturn(api_version != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] api_version is NULL.");
+       ret = __check_api_version_validity(api_version);
+       TryReturn(ret == PRVMGR_ERR_NONE, , PRVMGR_ERR_INVALID_PARAMETER, "[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);
+
+       if (package_type != PRVMGR_PACKAGE_TYPE_WRT && package_type != PRVMGR_PACKAGE_TYPE_CORE) {
+               LOGE("[PRVMGR_ERR_INVALID_PARAMETER] package_type is not a PRVMGR_PACKAGE_TYPE_WRT or PRVMGR_PACKAGE_TYPE_CORE");
+               return PRVMGR_ERR_INVALID_PARAMETER;
+       }
+
+       TryReturn(privilege_list != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege_list is NULL.");
+       ret = privilege_db_manager_get_mapped_privilege_list(api_version, package_type, privilege_list, mapped_privilege_list);
+       TryReturn(ret == PRVMGR_ERR_NONE, , PRVMGR_ERR_INTERNAL_ERROR, "[PRVMGR_ERR_INTERNAL_ERROR] privilege_db_manager_get_mapped_privilege_list failed, ret = %d", ret);
+       return ret;
+}
index 899af06..a67169c 100644 (file)
@@ -1,6 +1,6 @@
 Name:    privilege-checker
 Summary: Privilege Management
-Version: 0.0.4
+Version: 0.0.5
 Release: 3
 Group:   System/Libraries
 License: Apache-2.0
@@ -45,6 +45,7 @@ The Privilege Manager API provides functions to verify privilege information of
 
 %package  -n tc-privilege-checker
 Summary:  tc-privilege-checker
+BuildRequires: pkgconfig(security-manager)
 
 %description -n tc-privilege-checker
 Testsuit for Privilege Manager APIs
@@ -103,11 +104,19 @@ cp capi/res/dbspace/tv_wrt_privilege_info.db %{buildroot}%{_datadir}/privilege-m
 sqlite3 /%{buildroot}%{_datadir}/privilege-manager/.wrt_privilege_info.db "select * from privilege_info"
 cp capi/res/dbspace/tv_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/tv_wrt_privilege_mapping.db %{buildroot}%{_datadir}/privilege-manager/.wrt_privilege_mapping.db
+sqlite3 /%{buildroot}%{_datadir}/privilege-manager/.wrt_privilege_mapping.db "select * from privilege_mapping"
+cp capi/res/dbspace/tv_core_privilege_mapping.db %{buildroot}%{_datadir}/privilege-manager/.core_privilege_mapping.db
+sqlite3 /%{buildroot}%{_datadir}/privilege-manager/.core_privilege_mapping.db "select * from privilege_mapping"
 %else
 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"
+cp capi/res/dbspace/core_privilege_mapping.db %{buildroot}%{_datadir}/privilege-manager/.core_privilege_mapping.db
+sqlite3 /%{buildroot}%{_datadir}/privilege-manager/.core_privilege_mapping.db "select * from privilege_mapping"
+cp capi/res/dbspace/wrt_privilege_mapping.db %{buildroot}%{_datadir}/privilege-manager/.wrt_privilege_mapping.db
+sqlite3 /%{buildroot}%{_datadir}/privilege-manager/.wrt_privilege_mapping.db "select * from privilege_mapping"
 %endif
 %make_install
 
@@ -126,8 +135,10 @@ sqlite3 /%{buildroot}%{_datadir}/privilege-manager/.wrt_privilege_info.db "selec
 %{_datadir}/locale/*
 #%if "%{?profile}" != "tv"
 %{_datadir}/privilege-manager/.core_privilege_info.db
+%{_datadir}/privilege-manager/.core_privilege_mapping.db
 #%endif
 %{_datadir}/privilege-manager/.wrt_privilege_info.db
+%{_datadir}/privilege-manager/.wrt_privilege_mapping.db
 %manifest packaging/capi-security-privilege-manager.manifest
 
 %files -n capi-security-privilege-manager-devel
index fa953b9..e542174 100755 (executable)
@@ -20,7 +20,7 @@ ELSEIF("${PROFILE_TYPE}" STREQUAL "TV")
     ADD_DEFINITIONS("-DPROFILE_TYPE_TV")
 ENDIF()
 
-SET(requires glib-2.0 dlog)
+SET(requires glib-2.0 dlog security-manager)
 INCLUDE(FindPkgConfig)
 pkg_check_modules(${PACKAGE_NAME} REQUIRED ${requires})
 FOREACH(flag ${${PACKAGE_NAME}_CFLAGS})
@@ -38,7 +38,11 @@ ADD_EXECUTABLE(${TC1_NAME} ${TC1_SRCS})
 ADD_EXECUTABLE(${TC2_NAME} ${TC2_SRCS})
 ADD_EXECUTABLE(${TC3_NAME} ${TC3_SRCS})
 
-TARGET_LINK_LIBRARIES(${TC1_NAME} "capi-security-privilege-manager")
+TARGET_LINK_LIBRARIES(${TC1_NAME} 
+       "capi-security-privilege-manager"
+       "security-manager-client"
+       "security-manager-commons"
+       )
 TARGET_LINK_LIBRARIES(${TC2_NAME} "capi-security-privilege-manager")
 TARGET_LINK_LIBRARIES(${TC3_NAME} "capi-security-privilege-manager")
 
index e237cb3..3d2bbd5 100755 (executable)
@@ -1,5 +1,6 @@
 #include <stdio.h>
 #include <privilege_db_manager.h>
+#include <security-manager.h>
 
 #define BRIGHTNESS 0
 #define RED 31
@@ -100,6 +101,161 @@ void __test_privilege_db_manager_get_privilege_list(){
     success_cnt++;
 }
 
+void __test_privilege_db_manager_get_mapped_privilege_list(){
+       GList* privilege_list;
+       GList* mapped_privilege_list;
+       GList* l;
+       int ret;
+
+       printf("-----------------------------------------------------------\n");
+    printf("privilege : http://tizen.org/privilege/internal/default/public\n");
+       printf("api_version : 2.4\n");
+       printf("package type : wrt\n");
+       privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/internal/default/public");
+    ret = privilege_db_manager_get_mapped_privilege_list("2.4", PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
+
+    for (l = mapped_privilege_list; l != NULL; l = l->next) {
+        char* privilege_name = (char*)l->data;
+        printf("mapped_privilege_name = %s\n", privilege_name);
+    }
+
+       g_list_free(privilege_list);
+    privilege_list = NULL;
+    g_list_free(mapped_privilege_list);
+    mapped_privilege_list = NULL;
+
+    printf("-----------------------------------------------------------\n");
+    printf("privilege : http://tizen.org/privilege/mediacapture\n");
+    printf("api_version : 2.4\n");
+    printf("package type : wrt\n");
+    privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/mediacapture");
+    ret = privilege_db_manager_get_mapped_privilege_list("2.4", PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
+    for (l = mapped_privilege_list; l != NULL; l = l->next) {
+        char* privilege_name = (char*)l->data;
+        printf("mapped_privilege_name = %s\n", privilege_name);
+    }
+
+    g_list_free(privilege_list);
+    privilege_list = NULL;
+    g_list_free(mapped_privilege_list);
+    mapped_privilege_list = NULL;
+
+    printf("-----------------------------------------------------------\n");
+    printf("privilege : http://tizen.org/privilege/internal/default/public\n");
+    printf("privilege : http://tizen.org/privilege/mediacapture\n");
+    printf("api_version : 2.4\n");
+    printf("package type : wrt\n");
+    privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/internal/default/public");
+    privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/mediacapture");
+    ret = privilege_db_manager_get_mapped_privilege_list("2.4", PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
+
+    for (l = mapped_privilege_list; l != NULL; l = l->next) {
+        char* privilege_name = (char*)l->data;
+        printf("mapped_privilege_name = %s\n", privilege_name);
+    }
+
+       g_list_free(privilege_list);
+       privilege_list = NULL;
+       g_list_free(mapped_privilege_list);
+       mapped_privilege_list = NULL;
+
+       printf("-----------------------------------------------------------\n");
+    printf("privilege : http://tizen.org/privilege/internal/default/public\n");
+    printf("api_version : 2.2.1\n");
+    printf("package type : wrt\n");
+    privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/internal/default/public");
+    ret = privilege_db_manager_get_mapped_privilege_list("2.2.1", PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
+
+    for (l = mapped_privilege_list; l != NULL; l = l->next) {
+        char* privilege_name = (char*)l->data;
+        printf("mapped_privilege_name = %s\n", privilege_name);
+    }
+
+    g_list_free(privilege_list);
+    privilege_list = NULL;
+    g_list_free(mapped_privilege_list);
+    mapped_privilege_list = NULL;
+
+       printf("-----------------------------------------------------------\n");
+    printf("privilege : http://tizen.org/privilege/mediacapture\n");
+       printf("api_version : 2.2.1\n");
+    printf("package type : wrt\n");
+       privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/mediacapture");
+       ret = privilege_db_manager_get_mapped_privilege_list("2.2.1", PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
+       for (l = mapped_privilege_list; l != NULL; l = l->next) {
+               char* privilege_name = (char*)l->data;
+               printf("mapped_privilege_name = %s\n", privilege_name);
+       }
+
+       g_list_free(privilege_list);
+       privilege_list = NULL;
+       g_list_free(mapped_privilege_list);
+       mapped_privilege_list = NULL;
+
+       printf("-----------------------------------------------------------\n");
+    printf("privilege : http://tizen.org/privilege/content.read\n");
+    printf("api_version : 2.2.1\n");
+    printf("package type : wrt\n");
+    privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/content.read");
+    ret = privilege_db_manager_get_mapped_privilege_list("2.2.1", PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
+    for (l = mapped_privilege_list; l != NULL; l = l->next) {
+        char* privilege_name = (char*)l->data;
+        printf("mapped_privilege_name = %s\n", privilege_name);
+    }
+
+    g_list_free(privilege_list);
+    privilege_list = NULL;
+    g_list_free(mapped_privilege_list);
+    mapped_privilege_list = NULL;
+
+       printf("-----------------------------------------------------------\n");
+       printf("privilege : http://tizen.org/privilege/internal/webappdefault\n");
+    printf("privilege : http://tizen.org/privilege/internal/default/public\n");
+       printf("privilege : http://tizen.org/privilege/mediacapture\n");
+       printf("privilege : http://tizen.org/privilege/content.read\n");
+    printf("api_version : 2.2.1\n");
+    printf("package type : wrt\n");
+       privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/internal/webappdefault");
+       privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/internal/default/public");
+       privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/mediacapture");
+       privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/content.read");
+       ret = privilege_db_manager_get_mapped_privilege_list("2.2.1", PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
+
+       for (l = mapped_privilege_list; l != NULL; l = l->next) {
+               char* privilege_name = (char*)l->data;
+               printf("mapped_privilege_name = %s\n", privilege_name);
+       }
+
+       printf("-----------------------------------------------------------\n");
+       printf("Compare with security_manager_get_privileges_mapping(const char *from_version, const char *to_version, char const * const *privileges, size_t privileges_count, char ***privileges_mappings, size_t *mappings_count)\n");
+
+       printf("privilege : http://tizen.org/privilege/internal/default/public\n");
+    printf("privilege : http://tizen.org/privilege/mediacapture\n");
+    printf("privilege : http://tizen.org/privilege/content.read\n");
+       printf("privilege : http://tizen.org/privilege/internal/webappdefault\n");
+
+       char** input_privileges = (char**)malloc(sizeof(char*)*20);
+       size_t input_size = 0;
+       input_privileges[input_size++] = strdup("http://tizen.org/privilege/internal/webappdefault");
+       input_privileges[input_size++] = strdup("http://tizen.org/privilege/internal/default/public");
+       input_privileges[input_size++] = strdup("http://tizen.org/privilege/mediacapture");
+       input_privileges[input_size++] = strdup("http://tizen.org/privilege/content.read");
+       char** output_privileges = NULL;
+       size_t output_size;
+       ret = security_manager_get_privileges_mapping("2.2.1", "3.0", input_privileges, input_size, &output_privileges, &output_size);
+       int i;
+       printf("output_size = %d\n", output_size);
+       for (i = 0; i < output_size; i++) {
+               printf("mapped_privilege_name = %s\n", output_privileges[i]);
+       }
+
+
+       __change_color_to_green();
+       printf("test success\n");
+       __change_color_to_origin();
+       success_cnt++;
+}
+
 void __check_get_privilege_display_result(privilege_db_manager_error_e expected_result, privilege_db_manager_error_e result, char* privilege_display)
 {
     printf("expected result = %s, result = %s\n", __get_result_string(expected_result), __get_result_string(result));
@@ -270,12 +426,17 @@ void __test_privilege_db_manager_get_privilege_description(){
 
 int main()
 {
-    __change_color_to_yellow();
+/*    __change_color_to_yellow();
     printf("Test function : privilege_db_manager_get_privilege_list\n");
     __change_color_to_origin();
-    __test_privilege_db_manager_get_privilege_list();
+    __test_privilege_db_manager_get_privilege_list();*/
 
-    __change_color_to_yellow();
+       __change_color_to_yellow();
+    printf("Test function : privilege_db_manager_get_mapped_privilege_list\n");
+    __change_color_to_origin();
+    __test_privilege_db_manager_get_mapped_privilege_list();
+
+/*    __change_color_to_yellow();
     printf("Test function : privilege_db_manager_get_privilege_display\n");
     __change_color_to_origin();
     __test_privilege_db_manager_get_privilege_display();
@@ -290,7 +451,7 @@ int main()
     printf("success : %d, ", success_cnt);
     __change_color_to_red();
     printf("fail : %d\n", fail_cnt);
-    __change_color_to_origin();
+    __change_color_to_origin();*/
 
     return 0;
 }
index 777cca3..c6979cb 100755 (executable)
@@ -90,6 +90,9 @@ static void __print_error_message(char* error_message)
        if (strstr(error_message, "MISMATCHED") != NULL) {
                strncat(err_type, "PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL ", strlen("PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL "));
        }
+       if (strstr(error_message, "INVALID_PARAMETER") != NULL) {
+               strncat(err_type, "PRVMGR_ERR_INVALID_PARAMETER ", strlen("PRVMGR_ERR_INVALID_PARAMETER "));
+       }
 
        if (strlen(err_type) == 0) {
                fail_cnt++;
@@ -111,17 +114,15 @@ static void __print_error_message(char* error_message)
 }
 
 static const char* __get_result_string(privilege_manager_error_e ret){
-       if(ret == PRVMGR_ERR_NONE){
+       if (ret == PRVMGR_ERR_NONE) {
                return "PRVMGR_ERR_NONE";
-       }
-       else if(ret == PRVMGR_ERR_INTERNAL_ERROR){
+       } else if (ret == PRVMGR_ERR_INTERNAL_ERROR) {
                return "PRVMGR_ERR_INTERNAL_ERROR";
-       }
-       else if(ret == PRVMGR_ERR_INVALID_PRIVILEGE){
+       } else if (ret == PRVMGR_ERR_INVALID_PRIVILEGE) {
                return "PRVMGR_ERR_INVALID_PRIVILEGE";
-       }
-       else
-       {
+       } else if (ret == PRVMGR_ERR_INVALID_PARAMETER) {
+               return "PRVMGR_ERR_INVALID_PARAMETER";
+       } else {
                return "FAIL";
        }
 }
@@ -183,6 +184,16 @@ static void __print_dline()
        printf("===================================================================\n");
 }
 
+static void __print_privilege_list(GList* privilege_list)
+{
+       GList* l;
+       printf("Print mapped privilege list: \n");
+       for (l = privilege_list; l != NULL; l = l->next){
+               char* privilege_name = (char*)l->data;
+               printf("%s\n", privilege_name);
+       }
+}
+
 static void __check_verify_result(privilege_manager_error_e expected_result, privilege_manager_error_e result)
 {
        if(expected_result != result)
@@ -198,11 +209,308 @@ static void __check_verify_result(privilege_manager_error_e expected_result, pri
        __change_color_to_origin();
 }
 
+static void __test_privilege_manager_get_mapped_privilege_list()
+{
+       int ret = 0;
+       GList* mapped_privilege_list;
+
+       __tcinfo(goal, "api_version == NULL");
+       __privinfo("http://tizen.org/privilege/internal/default/public", NULL, NULL);
+       __privinfo("http://tizen.org/privilege/account.read", NULL, NULL);
+       __privinfo("http://tizen.org/privilege/camera", NULL, NULL);
+       __tcinfo(expect, "PRVMGR_ERR_INVALID_PARAMETER");
+       ret = privilege_manager_get_mapped_privilege_list(NULL, PRVMGR_PACKAGE_TYPE_CORE, privilege_list, &mapped_privilege_list);
+       __print_result(__get_result_string(ret));
+       __check_verify_result(PRVMGR_ERR_INVALID_PARAMETER, ret);
+    __print_line();
+
+       g_list_free(privilege_list);
+    privilege_list = NULL;
+       __tcinfo(goal, "api_version == 2.3.4.5.1");
+    __privinfo("http://tizen.org/privilege/internal/default/public", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/account.read", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/camera", NULL, NULL);
+       __tcinfo(expect, "PRVMGR_ERR_INVALID_PARAMETER");
+    ret = privilege_manager_get_mapped_privilege_list("2.3.4.5.1", PRVMGR_PACKAGE_TYPE_CORE, privilege_list, &mapped_privilege_list);
+    __print_result(__get_result_string(ret));
+    __check_verify_result(PRVMGR_ERR_INVALID_PARAMETER, ret);
+    __print_line();
+
+    g_list_free(privilege_list);
+    privilege_list = NULL;
+
+
+       g_list_free(privilege_list);
+    privilege_list = NULL;
+    __tcinfo(goal, "api_version == 2.3");
+    __privinfo("http://tizen.org/privilege/wrong-privilege-name", NULL, NULL);
+    __tcinfo(expect, "PRVMGR_ERR_NONE");
+    ret = privilege_manager_get_mapped_privilege_list("2.3", PRVMGR_PACKAGE_TYPE_CORE, privilege_list, &mapped_privilege_list);
+    __print_result(__get_result_string(ret));
+    __check_verify_result(PRVMGR_ERR_NONE, ret);
+       if (mapped_privilege_list == NULL) printf("it's null\n");
+       else printf("it's NOT null\n");
+       __print_privilege_list(mapped_privilege_list);
+    __print_line();
+
+    g_list_free(privilege_list);
+    privilege_list = NULL;
+
+#ifdef PROFILE_TYPE_MOBILE
+
+    /* 2.3 core - mobile */
+    __print_dline();
+    __change_to_bold_yellow();
+    __tcinfo(api_version, "2.3");
+    __tcinfo(pkg_type, "core");
+    __change_color_to_origin();
+    __print_dline();
+
+       __tcinfo(goal, "normal mapping");
+    __privinfo("http://tizen.org/privilege/internal/default/public", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/account.read", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/camera", NULL, NULL);
+       __tcinfo(expect, "PRVMGR_ERR_NONE");
+    ret = privilege_manager_get_mapped_privilege_list("2.3", PRVMGR_PACKAGE_TYPE_CORE, privilege_list, &mapped_privilege_list);
+    __print_result(__get_result_string(ret));
+    __check_verify_result(PRVMGR_ERR_NONE, ret);
+       __print_privilege_list(mapped_privilege_list);
+    __print_line();
+
+    g_list_free(privilege_list);
+    privilege_list = NULL;
+
+       __tcinfo(goal, "normal mapping");
+    __privinfo("http://tizen.org/privilege/internal/default/public", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/account.write", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/nfc.admin", NULL, NULL);
+       __privinfo("http://tizen.org/privilege/contact.read", NULL, NULL);
+       __privinfo("http://tizen.org/privilege/calendar.read", NULL, NULL);
+    __tcinfo(expect, "PRVMGR_ERR_NONE");
+    ret = privilege_manager_get_mapped_privilege_list("2.3", PRVMGR_PACKAGE_TYPE_CORE, privilege_list, &mapped_privilege_list);
+    __print_result(__get_result_string(ret));
+    __check_verify_result(PRVMGR_ERR_NONE, ret);
+    __print_privilege_list(mapped_privilege_list);
+    __print_line();
+
+    g_list_free(privilege_list);
+    privilege_list = NULL;
+
+       /* 2.2.1 wrt - mobile */
+    __print_dline();
+    __change_to_bold_yellow();
+    __tcinfo(api_version, "2.2.1");
+    __tcinfo(pkg_type, "wrt");
+    __change_color_to_origin();
+    __print_dline();
+
+       __tcinfo(goal, "normal mapping");
+    __privinfo("http://tizen.org/privilege/internal/default/public", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/account.write", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/nfc.admin", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/contact.read", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/calendar.read", NULL, NULL);
+    __tcinfo(expect, "PRVMGR_ERR_NONE");
+    ret = privilege_manager_get_mapped_privilege_list("2.2.1", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
+    __print_result(__get_result_string(ret));
+    __check_verify_result(PRVMGR_ERR_NONE, ret);
+    __print_privilege_list(mapped_privilege_list);
+    __print_line();
+
+    g_list_free(privilege_list);
+    privilege_list = NULL;
+
+
+       __tcinfo(goal, "normal mapping");
+    __privinfo("http://tizen.org/privilege/internal/default/platform", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/account.read", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/nfc.admin", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/contact.write", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/datasync", NULL, NULL);
+    __tcinfo(expect, "PRVMGR_ERR_NONE");
+    ret = privilege_manager_get_mapped_privilege_list("2.2.1", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
+    __print_result(__get_result_string(ret));
+    __check_verify_result(PRVMGR_ERR_NONE, ret);
+    __print_privilege_list(mapped_privilege_list);
+    __print_line();
+
+    g_list_free(privilege_list);
+    privilege_list = NULL;
+
+
+       __tcinfo(goal, "normal mapping");
+    __privinfo("http://tizen.org/privilege/internal/default/public", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/content.read", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/nfc.p2p", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/call", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/internet", NULL, NULL);
+    __tcinfo(expect, "PRVMGR_ERR_NONE");
+    ret = privilege_manager_get_mapped_privilege_list("2.2.1", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
+    __print_result(__get_result_string(ret));
+    __check_verify_result(PRVMGR_ERR_NONE, ret);
+    __print_privilege_list(mapped_privilege_list);
+    __print_line();
+
+    g_list_free(privilege_list);
+    privilege_list = NULL;
+
+       /* 2.3 wrt - mobile */
+    __print_dline();
+    __change_to_bold_yellow();
+    __tcinfo(api_version, "2.3");
+    __tcinfo(pkg_type, "wrt");
+    __change_color_to_origin();
+    __print_dline();
+
+       __tcinfo(goal, "normal mapping");
+    __privinfo("http://tizen.org/privilege/internal/default/public", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/account.write", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/nfc.admin", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/contact.read", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/calendar.read", NULL, NULL);
+    __tcinfo(expect, "PRVMGR_ERR_NONE");
+    ret = privilege_manager_get_mapped_privilege_list("2.3", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
+    __print_result(__get_result_string(ret));
+    __check_verify_result(PRVMGR_ERR_NONE, ret);
+    __print_privilege_list(mapped_privilege_list);
+    __print_line();
+
+    g_list_free(privilege_list);
+    privilege_list = NULL;
+
+
+    __tcinfo(goal, "normal mapping");
+    __privinfo("http://tizen.org/privilege/internal/default/platform", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/account.read", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/nfc.admin", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/contact.write", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/datasync", NULL, NULL);
+    __tcinfo(expect, "PRVMGR_ERR_NONE");
+    ret = privilege_manager_get_mapped_privilege_list("2.3", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
+    __print_result(__get_result_string(ret));
+    __check_verify_result(PRVMGR_ERR_NONE, ret);
+    __print_privilege_list(mapped_privilege_list);
+    __print_line();
+
+    g_list_free(privilege_list);
+    privilege_list = NULL;
+
+
+    __tcinfo(goal, "normal mapping");
+    __privinfo("http://tizen.org/privilege/internal/default/public", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/content.read", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/nfc.p2p", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/call", NULL, NULL);
+    __privinfo("http://tizen.org/privilege/internet", NULL, NULL);
+    __tcinfo(expect, "PRVMGR_ERR_NONE");
+    ret = privilege_manager_get_mapped_privilege_list("2.3", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
+    __print_result(__get_result_string(ret));
+    __check_verify_result(PRVMGR_ERR_NONE, ret);
+    __print_privilege_list(mapped_privilege_list);
+    __print_line();
+
+       g_list_free(privilege_list);
+    privilege_list = NULL;
+
+       __tcinfo(goal, "normal mapping");
+    __privinfo("http://tizen.org/privilege/location", NULL, NULL);
+    __tcinfo(expect, "PRVMGR_ERR_NONE");
+    ret = privilege_manager_get_mapped_privilege_list("2.3", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
+    __print_result(__get_result_string(ret));
+    __check_verify_result(PRVMGR_ERR_NONE, ret);
+    __print_privilege_list(mapped_privilege_list);
+    __print_line();
+
+    g_list_free(privilege_list);
+    privilege_list = NULL;
+
+       __tcinfo(goal, "normal mapping");
+    __privinfo("http://tizen.org/privilege/internal/default/platform", NULL, NULL);
+    __tcinfo(expect, "PRVMGR_ERR_NONE");
+    ret = privilege_manager_get_mapped_privilege_list("2.3", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
+    __print_result(__get_result_string(ret));
+    __check_verify_result(PRVMGR_ERR_NONE, ret);
+    __print_privilege_list(mapped_privilege_list);
+    __print_line();
+
+    g_list_free(privilege_list);
+    privilege_list = NULL;
+
+
+       /* 2.4 wrt - mobile */
+    __print_dline();
+    __change_to_bold_yellow();
+    __tcinfo(api_version, "2.4");
+    __tcinfo(pkg_type, "wrt");
+    __change_color_to_origin();
+    __print_dline();
+
+       __tcinfo(goal, "normal mapping");
+    __privinfo("http://tizen.org/privilege/location", NULL, NULL);
+    __tcinfo(expect, "PRVMGR_ERR_NONE");
+    ret = privilege_manager_get_mapped_privilege_list("2.4", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
+    __print_result(__get_result_string(ret));
+    __check_verify_result(PRVMGR_ERR_NONE, ret);
+    __print_privilege_list(mapped_privilege_list);
+    __print_line();
+
+    g_list_free(privilege_list);
+    privilege_list = NULL;
+
+    __tcinfo(goal, "normal mapping");
+    __privinfo("http://tizen.org/privilege/internal/default/platform", NULL, NULL);
+    __tcinfo(expect, "PRVMGR_ERR_NONE");
+    ret = privilege_manager_get_mapped_privilege_list("2.4", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
+    __print_result(__get_result_string(ret));
+    __check_verify_result(PRVMGR_ERR_NONE, ret);
+    __print_privilege_list(mapped_privilege_list);
+    __print_line();
+
+    g_list_free(privilege_list);
+    privilege_list = NULL;
+
+#endif
+}
+
 static void __test_privilege_manager_verify_privilege()
 {
        char* error_message = NULL;
        int ret = 0;
 
+       __tcinfo(goal, "api_version == NULL");
+    __privinfo("http://tizen.org/privilege/account.read", "Public", NULL);
+    __privinfo("http://tizen.org/privilege/account.write", "Public", NULL);
+    __privinfo("http://tizen.org/privilege/alarm.get", "Public", NULL);
+    __privinfo("http://tizen.org/privilege/bluetooth", "Public", NULL);
+    __privinfo("http://tizen.org/privilege/calendar.read", "Public", NULL);
+    __privinfo("http://tizen.org/privilege/systemsettings", "Public", NULL);
+    __tcinfo(cert_level, "public");
+    __tcinfo(expect, "PRVMGR_ERR_INVALID_PARAMETER");
+    ret = privilege_manager_verify_privilege(NULL, PRVMGR_PACKAGE_TYPE_CORE, privilege_list, PRVMGR_PACKAGE_VISIBILITY_PUBLIC, &error_message);
+    ShowErrorMsg(error_message != NULL, error_message, ret);
+    __check_verify_result(PRVMGR_ERR_INVALID_PARAMETER, ret);
+    __print_line();
+
+    g_list_free(privilege_list);
+    privilege_list = NULL;
+
+       __tcinfo(goal, "invalid api_version == 2.3.4.2.1");
+    __privinfo("http://tizen.org/privilege/account.read", "Public", NULL);
+    __privinfo("http://tizen.org/privilege/account.write", "Public", NULL);
+    __privinfo("http://tizen.org/privilege/alarm.get", "Public", NULL);
+    __privinfo("http://tizen.org/privilege/bluetooth", "Public", NULL);
+    __privinfo("http://tizen.org/privilege/calendar.read", "Public", NULL);
+    __privinfo("http://tizen.org/privilege/systemsettings", "Public", NULL);
+    __tcinfo(cert_level, "public");
+    __tcinfo(expect, "PRVMGR_ERR_INVALID_PARAMETER");
+    ret = privilege_manager_verify_privilege("2.3.4.2.1", PRVMGR_PACKAGE_TYPE_CORE, privilege_list, PRVMGR_PACKAGE_VISIBILITY_PUBLIC, &error_message);
+    ShowErrorMsg(error_message != NULL, error_message, ret);
+    __check_verify_result(PRVMGR_ERR_INVALID_PARAMETER, ret);
+    __print_line();
+
+    g_list_free(privilege_list);
+    privilege_list = NULL;
+
 #ifdef PROFILE_TYPE_MOBILE
 
        /* 2.3 core - mobile */
@@ -1501,6 +1809,8 @@ static void __test_privilege_manager_verify_privilege()
        __check_verify_result(PRVMGR_ERR_INVALID_PRIVILEGE, ret);
        __print_line();
 #endif
+       g_list_free(privilege_list);
+    privilege_list = NULL;
 }
 
 int main()
@@ -1510,6 +1820,11 @@ int main()
        __change_color_to_origin();
        __test_privilege_manager_verify_privilege();
 
+       __change_color_to_yellow();
+    printf("Test function : privilege_manager_get_mapped_privilege_list\n");
+    __change_color_to_origin();
+    __test_privilege_manager_get_mapped_privilege_list();
+
        __change_color_to_green();
        printf("Test Complete\n");
        printf("success : %d, ", success_cnt);