From 60d45d497a7327bac30defca887b1ae4c84a7be7 Mon Sep 17 00:00:00 2001 From: Yunjin Lee Date: Fri, 30 Dec 2016 16:38:32 +0900 Subject: [PATCH 01/16] Add web push privilege to tv profile Change-Id: I412469beb787742a5b2632e38bf1a4706acc02e2 Signed-off-by: Yunjin Lee --- capi/res/dbspace/tv_wrt_privilege_info.csv | 1 + capi/res/dbspace/tv_wrt_privilege_mapping.csv | 1 + 2 files changed, 2 insertions(+) diff --git a/capi/res/dbspace/tv_wrt_privilege_info.csv b/capi/res/dbspace/tv_wrt_privilege_info.csv index 931a1ad..f8f7657 100644 --- a/capi/res/dbspace/tv_wrt_privilege_info.csv +++ b/capi/res/dbspace/tv_wrt_privilege_info.csv @@ -19,6 +19,7 @@ tv,wrt,public,2.4,9.9,yes,http://tizen.org/privilege/led,,IDS_TPLATFORM_BODY_MAN tv,wrt,public,2.3,9.9,yes,http://tizen.org/privilege/mediacapture,,IDS_TPLATFORM_HEADER_CAPTURING_MEDIA_DATA,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CAPTURE_VIDEO_AND_AUDIO_DATA,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB, tv,wrt,public,2.3,9.9,yes,http://tizen.org/privilege/package.info,,IDS_TPLATFORM_BODY_RECEIVING_PACKAGE_INFORMATION,IDS_TPLATFORM_SBODY_THIS_APPLICATION_CAN_RECEIVE_PACKAGE_INFORMATION,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB, tv,wrt,platform,2.3,9.9,yes,http://tizen.org/privilege/packagemanager.install,,IDS_TPLATFORM_BODY_MANAGING_PACKAGES,IDS_TPLATFORM_SBODY_THIS_APPLICATION_CAN_INSTALL_OR_UNINSTALL_APPLICATION_PACKAGES,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB, +tv,wrt,public,3,9.9,yes,http://tizen.org/privilege/push,,IDS_TPLATFORM_BODY_RECEIVING_PUSH_NOTIFICATIONS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_RECEIVE_NOTIFICATIONS_VIA_THE_INTERNET_THIS_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN,IDS_TPLATFORM_BODY_NETWORK_CONNECTIONS_ABB, tv,wrt,public,2.3,9.9,yes,http://tizen.org/privilege/system,,IDS_TPLATFORM_BODY_READING_SYSTEM_INFORMATION,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_SYSTEM_INFORMATION,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB, tv,wrt,partner,2.3,2.4,yes,http://tizen.org/privilege/systemmanager,,IDS_TPLATFORM_BODY_READING_SECURE_SYSTEM_INFORMATION,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_SECURE_SYSTEM_INFORMATION,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,http://tizen.org/privilege/telephony tv,wrt,public,2.4,9.9,yes,http://tizen.org/privilege/telephony,,IDS_TPLATFORM_BODY_ACCESSING_TELEPHONY_INFORMATION,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_RETRIEVE_TELEPHONY_INFORMATION_SUCH_AS_THE_NETWORK_AND_SIM_CARD_USED_THE_IMEI_AND_THE_STATUSES_OF_CALLS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB, diff --git a/capi/res/dbspace/tv_wrt_privilege_mapping.csv b/capi/res/dbspace/tv_wrt_privilege_mapping.csv index 9f78ce7..0773fc1 100644 --- a/capi/res/dbspace/tv_wrt_privilege_mapping.csv +++ b/capi/res/dbspace/tv_wrt_privilege_mapping.csv @@ -22,6 +22,7 @@ tv,http://tizen.org/privilege/mediacapture,2.3,9.9,http://tizen.org/privilege/in 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/push,3,9.9,http://tizen.org/privilege/push tv,http://tizen.org/privilege/system,2.3,9.9,http://tizen.org/privilege/telephony tv,http://tizen.org/privilege/systemmanager,2.3,2.4,http://tizen.org/privilege/telephony tv,http://tizen.org/privilege/telephony,2.4,9.9,http://tizen.org/privilege/telephony -- 2.7.4 From 87702d790ed738d911971c693e62ba69ef304384 Mon Sep 17 00:00:00 2001 From: Yunjin Lee Date: Mon, 2 Jan 2017 11:25:37 +0900 Subject: [PATCH 02/16] Map internal usermanage privilege to systemsettings.admin Change-Id: I14ef494c9abb9f0b1dd5f44e9c11668e6c2f9776 Signed-off-by: Yunjin Lee --- capi/res/dbspace/core_privilege_mapping.csv | 2 ++ capi/res/dbspace/tv_core_privilege_mapping.csv | 1 + 2 files changed, 3 insertions(+) diff --git a/capi/res/dbspace/core_privilege_mapping.csv b/capi/res/dbspace/core_privilege_mapping.csv index 2fda3bd..5e23662 100644 --- a/capi/res/dbspace/core_privilege_mapping.csv +++ b/capi/res/dbspace/core_privilege_mapping.csv @@ -175,7 +175,9 @@ mobile,http://tizen.org/privilege/shortcut,2.3,9.9,http://tizen.org/privilege/sh mobile,http://tizen.org/privilege/systemmonitor,2.4,9.9,http://tizen.org/privilege/systemmonitor wearable,http://tizen.org/privilege/systemmonitor,3,9.9,http://tizen.org/privilege/systemmonitor mobile,http://tizen.org/privilege/systemsettings.admin,2.3,9.9,http://tizen.org/privilege/systemsettings.admin +mobile,http://tizen.org/privilege/systemsettings.admin,2.3,9.9,http://tizen.org/privilege/internal/usermanagement wearable,http://tizen.org/privilege/systemsettings.admin,2.3.1,9.9,http://tizen.org/privilege/systemsettings.admin +wearable,http://tizen.org/privilege/systemsettings.admin,2.3.1,9.9,http://tizen.org/privilege/internal/usermanagement 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 diff --git a/capi/res/dbspace/tv_core_privilege_mapping.csv b/capi/res/dbspace/tv_core_privilege_mapping.csv index 5e3316e..4968adb 100644 --- a/capi/res/dbspace/tv_core_privilege_mapping.csv +++ b/capi/res/dbspace/tv_core_privilege_mapping.csv @@ -103,6 +103,7 @@ tv,http://tizen.org/privilege/secureelement,2.4,9.9,http://tizen.org/privilege/s 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/systemsettings.admin,2.4,9.9,http://tizen.org/privilege/internal/usermanagement 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 -- 2.7.4 From bfb51ba3b8c721d24d25db4c75df99dfa7fbc897 Mon Sep 17 00:00:00 2001 From: Yunjin Lee Date: Wed, 21 Dec 2016 18:17:23 +0900 Subject: [PATCH 03/16] Add API to get privilege type - Add API to get privilege type. It determines privilege type according to the given uid and package id on the basis of ask policy white list per privacy and mdm black list. - Add table for privacy white list. It stores whitelist for ask policy and whether the privacy is user-settable or not. Possible privacy option format is "*-{privacyA}-{privacyB}.." or "{privacyA}+{privacyB}+...". If pkg should not be seen in privacy setting menu then set 'settable' flag to 0. If 'settable' flag is set to 1 for the privacy or not exist for the privacy then then pkg privacy option is user-settable for that privacy. Change-Id: I720e9f5abcf02c89b3a09238d5fbafe26bf8e044 Signed-off-by: Yunjin Lee --- CMakeLists.txt | 9 + capi/CMakeLists.txt | 11 +- capi/include/privilege_db_manager.h | 50 ++-- capi/include/privilege_info.h | 21 ++ capi/include/privilege_info_types.h | 2 +- capi/include/privilege_manager.h | 30 ++- capi/res/dbspace/core_db_generator.sh | 111 +++++--- capi/res/dbspace/mobile_privacy_whitelist.csv | 86 +++++++ capi/res/dbspace/policy_db_generator.sh | 12 +- capi/res/dbspace/privacylist.csv | 12 + capi/res/dbspace/tv_core_db_generator.sh | 58 ++--- capi/res/dbspace/wearable_privacy_whitelist.csv | 34 +++ capi/src/privilege_db_manager.c | 269 ++++++++++++++++--- capi/src/privilege_info.c | 57 ++++- capi/src/privilege_manager.c | 4 +- test/tc-privilege-db-manager.c | 326 ++++++++++++++++++++++++ test/tc-privilege-info.c | 200 ++++++++++++++- 17 files changed, 1144 insertions(+), 148 deletions(-) create mode 100644 capi/res/dbspace/mobile_privacy_whitelist.csv create mode 100644 capi/res/dbspace/privacylist.csv create mode 100644 capi/res/dbspace/wearable_privacy_whitelist.csv diff --git a/CMakeLists.txt b/CMakeLists.txt index 85f79fb..7510fe5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,15 @@ ADD_DEFINITIONS("-Werror -Wall -Wextra") ADD_DEFINITIONS("-DCLIENT_IPC_THREAD") ADD_DEFINITIONS("-DUSE_IPC_EPOLL") +MESSAGE("PROFILE = ${PROFILE}") +IF("${PROFILE}" STREQUAL "wearable") + ADD_DEFINITIONS("-DENABLE_ASKUSER") +ELSEIF("${PROFILE}" STREQUAL "mobile") + ADD_DEFINITIONS("-DENABLE_ASKUSER") +ELSE() + ADD_DEFINITIONS("-DDISABLE_ASKUSER") +ENDIF() + STRING(REGEX MATCH "([^.]*)" API_VERSION "${VERSION}") ADD_DEFINITIONS("-DAPI_VERSION=\"$(API_VERSION)\"") diff --git a/capi/CMakeLists.txt b/capi/CMakeLists.txt index f6b8798..969e40e 100644 --- a/capi/CMakeLists.txt +++ b/capi/CMakeLists.txt @@ -15,7 +15,7 @@ INCLUDE_DIRECTORIES( SET(pc_requires "glib-2.0") INCLUDE(FindPkgConfig) -pkg_check_modules(${fw_name} REQUIRED dlog pkgmgr-info glib-2.0 sqlite3) +pkg_check_modules(${fw_name} REQUIRED dlog pkgmgr-info glib-2.0 sqlite3 libtzplatform-config) FOREACH(flag ${${fw_name}_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") ENDFOREACH(flag) @@ -40,15 +40,6 @@ ELSEIF("${PROFILE_TYPE}" STREQUAL "TV") ADD_DEFINITIONS("-DPROFILE_TYPE_TV") ENDIF() -MESSAGE("PROFILE = ${PROFILE}") -IF("${PROFILE}" STREQUAL "wearable") - ADD_DEFINITIONS("-DENABLE_ASKUSER") -ELSEIF("${PROFILE}" STREQUAL "mobile") - ADD_DEFINITIONS("-DENABLE_ASKUSER") -ELSE() - ADD_DEFINITIONS("-DDISABLE_ASKUSER") -ENDIF() - SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=${LIBDIR}") aux_source_directory(src SOURCES) diff --git a/capi/include/privilege_db_manager.h b/capi/include/privilege_db_manager.h index 7a6b2ee..5b92b12 100755 --- a/capi/include/privilege_db_manager.h +++ b/capi/include/privilege_db_manager.h @@ -18,6 +18,7 @@ #define __PRIVILEGE_DB_MANAGER_H #include +#include "privilege_manager.h" typedef struct { int profile_id; @@ -35,17 +36,24 @@ typedef struct { } privilege_info_db_row_s; typedef enum { + PRIVILEGE_DB_TYPE_INFO = 0, + PRIVILEGE_DB_TYPE_MAPPING = 1, + PRIVILEGE_DB_TYPE_POLICY_RW = 2, + PRIVILEGE_DB_TYPE_POLICY_RO = 3, +} privilege_db_type_e; + +typedef enum { PRIVILEGE_DB_MANAGER_ERR_NONE = 0, - PRIVILEGE_DB_NO_EXIST_RESULT = 1, - PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL = 2, - PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY = 3, - PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY = 4, - PRIVILEGE_DB_MANAGER_ERR_INVALID_TYPE = 5, - PRIVILEGE_DB_MANAGER_ERR_DB_BUSY_FAIL = 6, - PRIVILEGE_DB_MANAGER_ERR_DB_CONSTRAINT_FAIL = 7, - PRIVILEGE_DB_MANAGER_ERR_DB_FULL_FAIL = 8, - PRIVILEGE_DB_MANAGER_ERR_DB_UPDATE_FAIL = 9, - PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY = 1001 /* define error code to avoid conflict error code of sqlite_open */ + PRIVILEGE_DB_NO_EXIST_RESULT = -1, + PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL = -2, + PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY = -3, + PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY = -4, + PRIVILEGE_DB_MANAGER_ERR_INVALID_TYPE = -5, + PRIVILEGE_DB_MANAGER_ERR_DB_BUSY_FAIL = -6, + PRIVILEGE_DB_MANAGER_ERR_DB_CONSTRAINT_FAIL = -7, + PRIVILEGE_DB_MANAGER_ERR_DB_FULL_FAIL = -8, + PRIVILEGE_DB_MANAGER_ERR_DB_UPDATE_FAIL = -9, + PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY = -1001 /* define error code to avoid conflict error code of sqlite_open */ } privilege_db_manager_error_e; typedef enum { @@ -55,8 +63,8 @@ typedef enum { } privilege_db_manager_privilege_level_e; typedef enum { - PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT = 0, - PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE = 1 + PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT = 0, + PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE = 1 } privilege_db_manager_package_type_e; #ifdef __cplusplus @@ -77,13 +85,23 @@ int privilege_db_manager_get_privacy_display(const char *privacy, char **privacy int privilege_db_manager_is(char type, const char* privilege); int privilege_db_manager_is_preloaded(const char* pkgid); + +/* privilege should be privacy privilege */ +int privilege_db_manager_is_privacy_white_list(const char* pkgid, const char* privilege); + +int privilege_db_manager_is_user_settable(const char* pkgid, const char* privacy); + int __privilege_db_manager_get_privacy_list(GList** privacy_list); int __privilege_db_manager_get_privilege_list_by_privacy(const char* privacy, GList **privilege_list); -int privilege_db_manager_get_privacy_by_privilege(const char* privilege, char** privacy); -int privilege_db_manager_get_black_list(int uid, privilege_db_manager_package_type_e package_type, GList** privilege_list); -int privilege_db_manager_set_black_list(int uid, privilege_db_manager_package_type_e pacakge_type, GList *privilege_list); -int privilege_db_manager_unset_black_list(int uid, privilege_db_manager_package_type_e package_type, GList *privilege_list); +int privilege_db_manager_get_privacy_by_privilege(const char* privilege, char** privacy_name); +int privilege_db_manager_get_privacy_id_by_privilege(const char* privilege, int* privacy_id); +int privilege_db_manager_get_privacy_id(const char* privacy, int *privacy_id); + +int privilege_db_manager_is_disabled_privilege(uid_t uid, const char* privilege); +int privilege_db_manager_get_black_list(privilege_manager_policy_type_e policy_type, int uid, privilege_db_manager_package_type_e package_type, GList** privilege_list); +int privilege_db_manager_set_black_list(privilege_manager_policy_type_e policy_type, int uid, privilege_db_manager_package_type_e pacakge_type, GList *privilege_list); +int privilege_db_manager_unset_black_list(privilege_manager_policy_type_e policy_type, int uid, privilege_db_manager_package_type_e package_type, GList *privilege_list); /* Return the number of black-listed privileges in given privilege list */ int privilege_db_manager_check_black_list(int uid, privilege_db_manager_package_type_e pacakge_type, GList *privilege_list); diff --git a/capi/include/privilege_info.h b/capi/include/privilege_info.h index 6ec83aa..9b5e765 100644 --- a/capi/include/privilege_info.h +++ b/capi/include/privilege_info.h @@ -140,6 +140,27 @@ EXPORT_API int privilege_info_is_privacy(const char *privilege); EXPORT_API int privilege_info_is_privacy2(const char *label, const char *privilege); /** + * @brief Determines whether the privacy of given pkgid is user-settable + * @param [in] pkgid The package id + * @param [in] privacy The privacy name + * @return 1 if true, 0 if false, and -1 on error + */ +EXPORT_API int privilege_info_is_user_settable(const char *pkgid, const char *privacy); + +/** + * @brief Gets the type of given privilege on the basis of privacy whitelist and blacklist disabled list + * @param [in] uid The uid + * @param [in] pkgid The package id + * @param [in] privilege The privilege + * @param [out] type The type of privilege + * @return 0 on success, otherwise a nonzero error value. + * @retval #PRVMGR_ERR_NONE Successful + * @retval #PRVMGR_ERR_INVALID_PARAMETER Invalid parameter + * @retval #PRVMGR_ERR_INTERNAL_ERROR Internal error + */ +EXPORT_API int privilege_info_get_privilege_type(uid_t uid, const char* pkgid, const char* privilege, privilege_manager_privilege_type_e *type); + +/** * @brief Gets all privacy list. * @remarks @a privacy_list must be released with g_list_free() by you. * @param [out] privacy_list The privacy list diff --git a/capi/include/privilege_info_types.h b/capi/include/privilege_info_types.h index 04e31ed..10417b7 100644 --- a/capi/include/privilege_info_types.h +++ b/capi/include/privilege_info_types.h @@ -15,7 +15,7 @@ */ #ifndef __TIZEN_SECURITY_PRIVILEGE_INFO_TYPES_H -#define __TIZEN_SECURITY_PRIVIELGE_INFO_TYPES_H +#define __TIZEN_SECURITY_PRIVILEGE_INFO_TYPES_H #ifdef __cplusplus extern "C" { diff --git a/capi/include/privilege_manager.h b/capi/include/privilege_manager.h index 99fa0dc..f616a70 100755 --- a/capi/include/privilege_manager.h +++ b/capi/include/privilege_manager.h @@ -31,19 +31,31 @@ extern "C" { */ typedef enum { PRVMGR_ERR_NONE = 0, - PRVMGR_ERR_INVALID_PARAMETER = 1, - PRVMGR_ERR_OUT_OF_MEMORY = 2, - PRVMGR_ERR_INTERNAL_ERROR = 3, - PRVMGR_ERR_NO_DATA = 4, - PRVMGR_ERR_NO_EXIST_PRIVILEGE = 5, - PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL = 6, - PRVMGR_ERR_INVALID_PRIVILEGE = 7, + PRVMGR_ERR_INVALID_PARAMETER = -1, + PRVMGR_ERR_OUT_OF_MEMORY = -2, + PRVMGR_ERR_INTERNAL_ERROR = -3, + PRVMGR_ERR_NO_DATA = -4, + PRVMGR_ERR_NO_EXIST_PRIVILEGE = -5, + PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL = -6, + PRVMGR_ERR_INVALID_PRIVILEGE = -7, PRVMGR_ERR_INVALID_METADATA = PRVMGR_ERR_INVALID_PRIVILEGE, - PRVMGR_ERR_DEPRECATED_PRIVILEGE = 8, - PRVMGR_ERR_USING_BANNED_PRIVILEGE = 9, + PRVMGR_ERR_DEPRECATED_PRIVILEGE = -8, + PRVMGR_ERR_USING_BANNED_PRIVILEGE = -9, } privilege_manager_error_e; typedef enum { + PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL, /* not privacy, not blacklisted by mdm */ + PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY, /* privacy (privacy privilege must not blacklisted by mdm) */ + PRIVILEGE_MANAGER_PRIVILEGE_TYPE_BLACKLIST, /* blacklisted by mdm(disabled by security-manager when policy is set) */ + PRIVILEGE_MANAGER_PRIVILEGE_TYPE_MAX +} privilege_manager_privilege_type_e; + +typedef enum { + PRIVILEGE_MANAGER_POLICY_TYPE_PREVENT, + PRIVILEGE_MANAGER_POLICY_TYPE_DISABLE, +} privilege_manager_policy_type_e; + +typedef enum { PRVMGR_PACKAGE_VISIBILITY_PUBLIC = 1 << 1, PRVMGR_PACKAGE_VISIBILITY_PARTNER = 1 << 2, PRVMGR_PACKAGE_VISIBILITY_PLATFORM = 1 << 3, diff --git a/capi/res/dbspace/core_db_generator.sh b/capi/res/dbspace/core_db_generator.sh index 7d5938b..7b383e0 100755 --- a/capi/res/dbspace/core_db_generator.sh +++ b/capi/res/dbspace/core_db_generator.sh @@ -8,15 +8,14 @@ touch $DB_NAME target_profile=$1 preloaded="$target_profile""_preloaded.list" +PRIVACYLIST_CSV="privacylist.csv" +PRIVACY_WHITELIST_CSV="$target_profile""_privacy_whitelist.csv" echo "Creating PRIVILEGE_INFO table ..." -sqlite3 $DB_NAME "CREATE TABLE PRIVILEGE_INFO (PROFILE_ID NUMERIC, PROFILE TEXT, PACKAGE_TYPE_ID NUMERIC, PACKAGE_TYPE TEXT, PRIVILEGE_LEVEL_ID NUMERIC, PRIVILEGE_LEVEL TEXT, API_VERSION_ISSUED TEXT, API_VERSION_EXPIRED TEXT, DOCUMENTED INTEGER, PRIVILEGE_NAME TEXT, IS_PRIVACY NUMERIC, PRIVACY_GROUP TEXT, PRIVILEGE_DISPLAY TEXT, PRIVILEGE_DESCRIPTION TEXT, PRIVILEGE_GROUP_ID NUMERIC, PRIVLEGE_GROUP TEXT, CHANGED_TO_2_3_1 TEXT, CHANGED_TO_2_4_0 TEXT);" +sqlite3 $DB_NAME "CREATE TABLE PRIVILEGE_INFO (PROFILE_ID NUMERIC, PROFILE TEXT, PACKAGE_TYPE_ID NUMERIC, PACKAGE_TYPE TEXT, PRIVILEGE_LEVEL_ID NUMERIC, PRIVILEGE_LEVEL TEXT, API_VERSION_ISSUED TEXT, API_VERSION_EXPIRED TEXT, DOCUMENTED INTEGER, PRIVILEGE_NAME TEXT, IS_PRIVACY NUMERIC, PRIVACY_NAME TEXT, PRIVILEGE_DISPLAY TEXT, PRIVILEGE_DESCRIPTION TEXT, PRIVILEGE_GROUP_ID NUMERIC, PRIVLEGE_GROUP TEXT, CHANGED_TO_2_3_1 TEXT, CHANGED_TO_2_4_0 TEXT);" echo "Create VALID_PRIVILEGE_INFO Table..." -sqlite3 $DB_NAME "CREATE TABLE VALID_PRIVILEGE_INFO (PRIVILEGE_NAME TEXT UNIQUE, IS_PRIVACY NUMERIC, PRIVACY_GROUP TEXT, IS_INTERNAL NUMERIC);" - -echo "Create PRIVACY_INFO table..." -sqlite3 $DB_NAME "CREATE TABLE PRIVACY_INFO (PRIVACY_GROUP TEXT UNIQUE, PRIVACY_DISPLAY TEXT);" +sqlite3 $DB_NAME "CREATE TABLE VALID_PRIVILEGE_INFO (PRIVILEGE_NAME TEXT UNIQUE, IS_PRIVACY NUMERIC, PRIVACY_NAME TEXT, IS_INTERNAL NUMERIC);" echo "Create PRELOADED table..." sqlite3 $DB_NAME "CREATE TABLE PRELOADED (NAME TEXT)" @@ -34,8 +33,6 @@ do sqlite3 $DB_NAME "insert into preloaded values ('$NAME')" done - - for i in `cat core_privilege_info.csv` do temp=`echo $i | awk '/^#/'` @@ -125,7 +122,7 @@ do exit fi - PRIVACY_GROUP=`echo $i | cut -d "," -f 9` + PRIVACY_NAME=`echo $i | cut -d "," -f 9` PRIVILEGE_DISPLAY=`echo $i | cut -d "," -f 11` @@ -179,36 +176,82 @@ do echo "Inserting $PRIVILEGE_NAME ..." - sqlite3 $DB_NAME "insert into privilege_info values ( $PROFILE_ID, '$PROFILE', $PACKAGE_TYPE_ID, '$PACKAGE_TYPE', $PRIVILEGE_LEVEL_ID, '$PRIVILEGE_LEVEL', '$API_VERSION_ISSUED', '$API_VERSION_EXPIRED', '$DOCUMENTED', '$PRIVILEGE_NAME', '$IS_PRIVACY', '$PRIVACY_GROUP', '$PRIVILEGE_DISPLAY', '$PRIVILEGE_DESCRIPTION', $PRIVILEGE_GROUP_ID, '$PRIVILEGE_GROUP', '$CHANGED_TO_2_3_1', '$CHANGED_TO_2_4_0')" - sqlite3 $DB_NAME "insert into valid_privilege_info (privilege_name, is_privacy, privacy_group, is_internal) values ('$PRIVILEGE_NAME', '$IS_PRIVACY', '$PRIVACY_GROUP', 0)" + sqlite3 $DB_NAME "insert into privilege_info values ( $PROFILE_ID, '$PROFILE', $PACKAGE_TYPE_ID, '$PACKAGE_TYPE', $PRIVILEGE_LEVEL_ID, '$PRIVILEGE_LEVEL', '$API_VERSION_ISSUED', '$API_VERSION_EXPIRED', '$DOCUMENTED', '$PRIVILEGE_NAME', '$IS_PRIVACY', '$PRIVACY_NAME', '$PRIVILEGE_DISPLAY', '$PRIVILEGE_DESCRIPTION', $PRIVILEGE_GROUP_ID, '$PRIVILEGE_GROUP', '$CHANGED_TO_2_3_1', '$CHANGED_TO_2_4_0')" + sqlite3 $DB_NAME "insert into valid_privilege_info (privilege_name, is_privacy, privacy_name, is_internal) values ('$PRIVILEGE_NAME', '$IS_PRIVACY', '$PRIVACY_NAME', 0)" done for internal_privilege in `cat internal_only.list` do echo "Inserting $internal_privilege ..." - sqlite3 $DB_NAME "insert into valid_privilege_info (privilege_name, is_privacy, privacy_group, is_internal) values ('$internal_privilege', 0, 'N/A', 1)" + sqlite3 $DB_NAME "insert into valid_privilege_info (privilege_name, is_privacy, privacy_name, is_internal) values ('$internal_privilege', 0, 'N/A', 1)" +done + +echo "Create PRIVACY_INFO table..." +sqlite3 $DB_NAME "CREATE TABLE PRIVACY_INFO (PRIVACY_NAME TEXT UNIQUE, PRIVACY_ID NUMERIC, PRIVACY_DISPLAY TEXT);" +echo "Insert into privacy_info ...." +PRIVACY_ID=0 +for i in `cat $PRIVACYLIST_CSV` +do + temp=`echo $i | awk '/^#/'` + if [ ! "$temp" = "" ] + then + continue + fi + PRIVACY_NAME=`echo $i | cut -d "," -f1` + PRIVACY_NAME_ONLY=`echo $PRIVACY_NAME | cut -d "/" -f5` + declare ${PRIVACY_NAME_ONLY}=$((PRIVACY_ID)) + PRIVACY_DISPLAY=`echo $i | cut -d "," -f2` + echo "Insert $PRIVACY_NAME, PRIVACY_ID = $PRIVACY_ID " + sqlite3 $DB_NAME "insert into privacy_info (privacy_name, privacy_id, privacy_display) values ('$PRIVACY_NAME', $((PRIVACY_ID++)), '$PRIVACY_DISPLAY')" +done + +echo "Create PRIVACY_WHITELIST table..." +CREATE_WHITELIST_TABLE_QUERY="CREATE TABLE PRIVACY_WHITELIST (PKG_ID TEXT, PRIVACY_OPTION TEXT, SETTABLE TEXT);" +sqlite3 $DB_NAME "$CREATE_WHITELIST_TABLE_QUERY" +echo "insert into privacy_whiteliste ...." +for i in `cat $PRIVACY_WHITELIST_CSV` +do + temp=`echo $i | awk '/^#/'` + if [ ! "$temp" = "" ] + then + continue + fi + PKG_ID=`echo $i | cut -d "," -f1` + PRIVACY_OPTION=`echo $i | cut -d "," -f2` + #echo "first char ${PRIVACY_OPTION:0:1}" + IFS='-+ ' read -r -a array <<< $PRIVACY_OPTION + # init + TEMP=0 + while [ $((TEMP)) -lt $((PRIVACY_ID)) ] + do + option_array[$((TEMP++))]=0 + done + # privacy list set + for element in "${array[@]}" + do + if [ "$element" = "*" ]; then + TEMP=0 + while [ $((TEMP)) -lt $PRIVACY_ID ] + do + option_array[$((TEMP++))]=1 + done + else + if [ "${option_array[${element}]}" = "1" ]; then + option_array[${element}]=0 + else + option_array[${element}]=1 + fi + fi + done + SETTABLE=`echo $i | cut -d "," -f3` + # privacy option string + TEMP=0 + PRIVACY_OPTION_STRING="" + while [ $((TEMP)) -lt $((PRIVACY_ID)) ] + do + PRIVACY_OPTION_STRING="$PRIVACY_OPTION_STRING""${option_array[$((TEMP++))]}" + done + echo "PKG_ID=$PKG_ID, PRIVACY_OPTION=$PRIVACY_OPTION_STRING, SETTABLE=$SETTABLE" + sqlite3 $DB_NAME "insert into privacy_whitelist values ('$PKG_ID', '$PRIVACY_OPTION_STRING', '$SETTABLE')" done -echo "Insert into PRIVACY_INFO" -echo "http://tizen.org/privacy/account" -sqlite3 $DB_NAME "insert into privacy_info (privacy_group, privacy_display) values ('http://tizen.org/privacy/account','IDS_ST_BODY_ACCOUNTS')" -echo "http://tizen.org/privacy/bookmark" -sqlite3 $DB_NAME "insert into privacy_info (privacy_group, privacy_display) values ('http://tizen.org/privacy/bookmark','IDS_BR_OPT_BOOKMARK')" -echo "http://tizen.org/privacy/calendar" -sqlite3 $DB_NAME "insert into privacy_info (privacy_group, privacy_display) values ('http://tizen.org/privacy/calendar','IDS_TPLATFORM_OPT_CALENDAR_ABB')" -echo "http://tizen.org/privacy/call" -sqlite3 $DB_NAME "insert into privacy_info (privacy_group, privacy_display) values ('http://tizen.org/privacy/call','IDS_ST_BODY_CALL')" -echo "http://tizen.org/privacy/camera" -sqlite3 $DB_NAME "insert into privacy_info (privacy_group, privacy_display) values ('http://tizen.org/privacy/camera','IDS_TPLATFORM_BODY_CAMERA')" -echo "http://tizen.org/privacy/contacts" -sqlite3 $DB_NAME "insert into privacy_info (privacy_group, privacy_display) values ('http://tizen.org/privacy/contacts','IDS_TPLATFORM_OPT_CONTACTS_ABB')" -echo "http://tizen.org/privacy/location" -sqlite3 $DB_NAME "insert into privacy_info (privacy_group, privacy_display) values ('http://tizen.org/privacy/location','IDS_TPLATFORM_OPT_LOCATION_T_LBS')" -echo "http://tizen.org/privacy/message" -sqlite3 $DB_NAME "insert into privacy_info (privacy_group, privacy_display) values ('http://tizen.org/privacy/message','IDS_ST_BODY_MESSAGE')" -echo "http://tizen.org/privacy/microphone" -sqlite3 $DB_NAME "insert into privacy_info (privacy_group, privacy_display) values ('http://tizen.org/privacy/microphone','IDS_TPLATFORM_MBODY_MICROPHONE')" -echo "http://tizen.org/privacy/sensor" -sqlite3 $DB_NAME "insert into privacy_info (privacy_group, privacy_display) values ('http://tizen.org/privacy/sensor','IDS_TPLATFORM_MBODY_SENSORS')" -echo "http://tizen.org/privacy/userhistory" -sqlite3 $DB_NAME "insert into privacy_info (privacy_group, privacy_display) values ('http://tizen.org/privacy/userhistory','IDS_TPLATFORM_MBODY_USER_HISTORY')" diff --git a/capi/res/dbspace/mobile_privacy_whitelist.csv b/capi/res/dbspace/mobile_privacy_whitelist.csv new file mode 100644 index 0000000..886d372 --- /dev/null +++ b/capi/res/dbspace/mobile_privacy_whitelist.csv @@ -0,0 +1,86 @@ +#PACKAGE_ID,#PRIVACY_OPTION,#SETTABLE +attach-panel-camera,*-location,0 +attach-panel-document,*-location,0 +attach-panel-gallery,*-location,0 +attach-panel-voicerecorder,*-location,0 +cert-svc-ui,*-location,0 +hangul,*-location,0 +ise-default,*-location,0 +ise-engine-anthy,*-location,0 +ise-engine-default,*-location,0 +ise-engine-sunpinyin,*-location,0 +net.netpopup,*-location,0 +net.wifi-qs,*-location,0 +org.tizen.app-selector,*-location,0 +org.tizen.bluetooth-share-ui,*-location,0 +org.tizen.browser,*-location,0 +org.tizen.bt-syspopup,*-location,0 +org.tizen.calendar,*-location,0 +org.tizen.call-setting,*-location,0 +org.tizen.call-ui,*-location,0 +org.tizen.callmgr-popup,*-location,0 +org.tizen.camera-app,*-location,0 +org.tizen.chromium-efl,*-location,0 +org.tizen.contacts,*-location,0 +org.tizen.crash-syspopup,*-location,0 +org.tizen.d2d-conv-setting,*-location,0 +org.tizen.d2d-conv-syspopup,*-location,0 +org.tizen.download-manager,*-location,0 +org.tizen.dpm-syspopup,*-location,0 +org.tizen.dpm-toolkit,*-location,0 +org.tizen.email,*-location,0 +org.tizen.gallery,*-location,0 +org.tizen.gps-syspopup,*-location,0 +org.tizen.heremaps-uc,*-location,0 +org.tizen.homescreen-efl,*-location,0 +org.tizen.image-viewer,*-location,0 +org.tizen.indicator,*-location,0 +org.tizen.inputmethod-setting,*-location,0 +org.tizen.isf-kbd-mode-changer,*-location,0 +org.tizen.kaskit,*-location,0 +org.tizen.keyguard,*-location,0 +org.tizen.krate-setup-wizard,*-location,0 +org.tizen.lockscreen,*-location,0 +org.tizen.menu-screen,*-location,0 +org.tizen.message,*-location,0 +org.tizen.msg-manager,*-location,0 +org.tizen.music-player,*-location,0 +org.tizen.myfile,*-location,0 +org.tizen.myplace,*-location,0 +org.tizen.ode,*-location,0 +org.tizen.overheat-syspopup,*-location,0 +org.tizen.powerkey-syspopup,*-location,0 +org.tizen.privacy-setting,*-location,0 +org.tizen.quickpanel,*-location,0 +org.tizen.screen-reader,*-location,0 +org.tizen.service-plugin-sample,*-location,0 +org.tizen.setting,*-location,0 +org.tizen.setting-homescreen,*-location,0 +org.tizen.setting-location,*-location,0 +org.tizen.setting-notification,*-location,0 +org.tizen.settings-adid,*-location,0 +org.tizen.share-panel,*-location,0 +org.tizen.stt-engine-default,*-location,0 +org.tizen.sys-lock,*-location,0 +org.tizen.system-signal-sender,*-location,0 +org.tizen.system-syspopup,*-location,0 +org.tizen.task-mgr,*-location,0 +org.tizen.tts-engine-default,*-location,0 +org.tizen.ug-gallery-efl,*-location,0 +org.tizen.ug-lockscreen-options,*-location,0 +org.tizen.ug-myfile-efl,*-location,0 +org.tizen.videos,*-location,0 +org.tizen.voice-control-panel,*-location,0 +org.tizen.voice-setting,*-location,0 +org.tizen.volume,*-location,0 +org.tizen.wallpaper-ui-service,*-location,0 +org.tizen.widget_viewer_sdk,*-location,0 +org.tizen.wifi-direct-popup,*-location,0 +org.tizen.worldclock-efl,*-location,0 +setting-myaccount-efl,*-location,0 +table,*-location,0 +ug-bluetooth-efl,*-location,0 +ug-setting-mobileap-efl,*-location,0 +ug-setting-wifidirect-efl,*-location,0 +wifi-efl-ug,*-location,0 +org.tizen.memo,*-location,0 diff --git a/capi/res/dbspace/policy_db_generator.sh b/capi/res/dbspace/policy_db_generator.sh index d29dcb1..9bad2da 100755 --- a/capi/res/dbspace/policy_db_generator.sh +++ b/capi/res/dbspace/policy_db_generator.sh @@ -6,8 +6,14 @@ rm $DB_NAME 2> /dev/null echo "Creating $DB_NAME ..." touch $DB_NAME -echo "Creating BLACK_LIST table ..." -sqlite3 $DB_NAME "CREATE TABLE BLACK_LIST (UID NUMERIC, PACKAGE_TYPE NUMERIC , PRIVILEGE_NAME TEXT not null, UNIQUE(UID, PACKAGE_TYPE, PRIVILEGE_NAME));" +echo "Creating PREVENT_LIST table ..." +sqlite3 $DB_NAME "CREATE TABLE PREVENT_LIST (UID NUMERIC not null, PACKAGE_TYPE NUMERIC , PRIVILEGE_NAME TEXT not null, UNIQUE(UID, PACKAGE_TYPE, PRIVILEGE_NAME));" +echo "Creating DISABLE_LIST table...." +sqlite3 $DB_NAME "CREATE TABLE DISABLE_LIST (UID NUMERIC not null, PRIVILEGE_NAME TEXT not null, UNIQUE(UID, PRIVILEGE_NAME));" + +# for internal test +#sqlite3 $DB_NAME "insert into disable_list values(0, 'http://tizen.org/privilege/yyyyy')" echo "Check inserted data" -sqlite3 $DB_NAME "select * from black_list" +sqlite3 $DB_NAME "select * from prevent_list" +sqlite3 $DB_NAME "select * from disable_list" diff --git a/capi/res/dbspace/privacylist.csv b/capi/res/dbspace/privacylist.csv new file mode 100644 index 0000000..c2989c1 --- /dev/null +++ b/capi/res/dbspace/privacylist.csv @@ -0,0 +1,12 @@ +#PRIVACY_ID,#PRIVACY_DISPLAY +http://tizen.org/privacy/account,IDS_ST_BODY_ACCOUNTS +http://tizen.org/privacy/bookmark,IDS_BR_OPT_BOOKMARK +http://tizen.org/privacy/calendar,IDS_TPLATFORM_OPT_CALENDAR_ABB +http://tizen.org/privacy/call,IDS_ST_BODY_CALL +http://tizen.org/privacy/camera,IDS_TPLATFORM_BODY_CAMERA +http://tizen.org/privacy/contacts,IDS_TPLATFORM_OPT_CONTACTS_ABB +http://tizen.org/privacy/location,IDS_TPLATFORM_OPT_LOCATION_T_LBS +http://tizen.org/privacy/message,IDS_ST_BODY_MESSAGE +http://tizen.org/privacy/microphone,IDS_TPLATFORM_MBODY_MICROPHONE +http://tizen.org/privacy/sensor,IDS_TPLATFORM_MBODY_SENSORS +http://tizen.org/privacy/userhistory,IDS_TPLATFORM_MBODY_USER_HISTORY diff --git a/capi/res/dbspace/tv_core_db_generator.sh b/capi/res/dbspace/tv_core_db_generator.sh index d4e711f..5bbf956 100755 --- a/capi/res/dbspace/tv_core_db_generator.sh +++ b/capi/res/dbspace/tv_core_db_generator.sh @@ -6,14 +6,13 @@ rm $DB_NAME 2> /dev/null echo "Creating $DB_NAME ..." touch $DB_NAME +PRIVACYLIST_CSV="privacylist.csv" + echo "Creating PRIVILEGE_INFO table ..." -sqlite3 $DB_NAME "CREATE TABLE PRIVILEGE_INFO (PROFILE_ID NUMERIC, PROFILE TEXT, PACKAGE_TYPE_ID NUMERIC, PACKAGE_TYPE TEXT, PRIVILEGE_LEVEL_ID NUMERIC, PRIVILEGE_LEVEL TEXT, API_VERSION_ISSUED TEXT, API_VERSION_EXPIRED TEXT, DOCUMENTED INTEGER, PRIVILEGE_NAME TEXT, IS_PRIVACY NUMERIC, PRIVACY_GROUP TEXT, PRIVILEGE_DISPLAY TEXT, PRIVILEGE_DESCRIPTION TEXT, PRIVILEGE_GROUP_ID NUMERIC, PRIVLEGE_GROUP TEXT, CHANGED_TO_2_4_0 TEXT);" +sqlite3 $DB_NAME "CREATE TABLE PRIVILEGE_INFO (PROFILE_ID NUMERIC, PROFILE TEXT, PACKAGE_TYPE_ID NUMERIC, PACKAGE_TYPE TEXT, PRIVILEGE_LEVEL_ID NUMERIC, PRIVILEGE_LEVEL TEXT, API_VERSION_ISSUED TEXT, API_VERSION_EXPIRED TEXT, DOCUMENTED INTEGER, PRIVILEGE_NAME TEXT, IS_PRIVACY NUMERIC, PRIVACY_NAME TEXT, PRIVILEGE_DISPLAY TEXT, PRIVILEGE_DESCRIPTION TEXT, PRIVILEGE_GROUP_ID NUMERIC, PRIVLEGE_GROUP TEXT, CHANGED_TO_2_3_1 TEXT, CHANGED_TO_2_4_0 TEXT);" echo "Create VALID_PRIVILEGE_INFO Table..." -sqlite3 $DB_NAME "CREATE TABLE VALID_PRIVILEGE_INFO (PRIVILEGE_NAME TEXT UNIQUE, IS_PRIVACY NUMERIC, PRIVACY_GROUP TEXT, IS_INTERNAL NUMERIC);" - -echo "Create PRIVACY_INFO table..." -sqlite3 $DB_NAME "CREATE TABLE PRIVACY_INFO (PRIVACY_GROUP TEXT UNIQUE, PRIVACY_DISPLAY TEXT);" +sqlite3 $DB_NAME "CREATE TABLE VALID_PRIVILEGE_INFO (PRIVILEGE_NAME TEXT UNIQUE, IS_PRIVACY NUMERIC, PRIVACY_NAME TEXT, IS_INTERNAL NUMERIC);" echo "Inserting data ..." IFS=$'\n' @@ -104,7 +103,7 @@ do exit fi - PRIVACY_GROUP=`echo $i | cut -d "," -f 9` + PRIVACY_NAME=`echo $i | cut -d "," -f 9` PRIVILEGE_DISPLAY=`echo $i | cut -d "," -f 11` @@ -157,36 +156,31 @@ do echo "Inserting $PRIVILEGE_NAME ..." - sqlite3 $DB_NAME "insert into privilege_info values ( $PROFILE_ID, '$PROFILE', $PACKAGE_TYPE_ID, '$PACKAGE_TYPE', $PRIVILEGE_LEVEL_ID, '$PRIVILEGE_LEVEL', '$API_VERSION_ISSUED', '$API_VERSION_EXPIRED', '$DOCUMENTED', '$PRIVILEGE_NAME', '$IS_PRIVACY', '$PRIVACY_GROUP', '$PRIVILEGE_DISPLAY', '$PRIVILEGE_DESCRIPTION', $PRIVILEGE_GROUP_ID, '$PRIVILEGE_GROUP', '$CHANGED_TO_2_4_0')" - sqlite3 $DB_NAME "insert into valid_privilege_info (privilege_name, is_privacy, privacy_group, is_internal) values ('$PRIVILEGE_NAME', '$IS_PRIVACY', '$PRIVACY_GROUP', 0)" + sqlite3 $DB_NAME "insert into privilege_info values ( $PROFILE_ID, '$PROFILE', $PACKAGE_TYPE_ID, '$PACKAGE_TYPE', $PRIVILEGE_LEVEL_ID, '$PRIVILEGE_LEVEL', '$API_VERSION_ISSUED', '$API_VERSION_EXPIRED', '$DOCUMENTED', '$PRIVILEGE_NAME', '$IS_PRIVACY', '$PRIVACY_NAME', '$PRIVILEGE_DISPLAY', '$PRIVILEGE_DESCRIPTION', $PRIVILEGE_GROUP_ID, '$PRIVILEGE_GROUP', '$CHANGED_TO_2_3_1', '$CHANGED_TO_2_4_0')" + sqlite3 $DB_NAME "insert into valid_privilege_info (privilege_name, is_privacy, privacy_name, is_internal) values ('$PRIVILEGE_NAME', '$IS_PRIVACY', '$PRIVACY_NAME', 0)" done for internal_privilege in `cat internal_only.list` do echo "Inserting $internal_privilege ..." - sqlite3 $DB_NAME "insert into valid_privilege_info (privilege_name, is_privacy, privacy_group, is_internal) values ('$internal_privilege', 0, 'N/A', 1)" + sqlite3 $DB_NAME "insert into valid_privilege_info (privilege_name, is_privacy, privacy_name, is_internal) values ('$internal_privilege', 0, 'N/A', 1)" done -echo "Insert into PRIVACY_INFO" -echo "http://tizen.org/privacy/account" -sqlite3 $DB_NAME "insert into privacy_info (privacy_group, privacy_display) values ('http://tizen.org/privacy/account','IDS_ST_BODY_ACCOUNTS')" -echo "http://tizen.org/privacy/bookmark" -sqlite3 $DB_NAME "insert into privacy_info (privacy_group, privacy_display) values ('http://tizen.org/privacy/bookmark','IDS_BR_OPT_BOOKMARK')" -echo "http://tizen.org/privacy/calendar" -sqlite3 $DB_NAME "insert into privacy_info (privacy_group, privacy_display) values ('http://tizen.org/privacy/calendar','IDS_TPLATFORM_OPT_CALENDAR_ABB')" -echo "http://tizen.org/privacy/call" -sqlite3 $DB_NAME "insert into privacy_info (privacy_group, privacy_display) values ('http://tizen.org/privacy/call','IDS_ST_BODY_CALL')" -echo "http://tizen.org/privacy/camera" -sqlite3 $DB_NAME "insert into privacy_info (privacy_group, privacy_display) values ('http://tizen.org/privacy/camera','IDS_TPLATFORM_BODY_CAMERA')" -echo "http://tizen.org/privacy/contacts" -sqlite3 $DB_NAME "insert into privacy_info (privacy_group, privacy_display) values ('http://tizen.org/privacy/contacts','IDS_TPLATFORM_OPT_CONTACTS_ABB')" -echo "http://tizen.org/privacy/location" -sqlite3 $DB_NAME "insert into privacy_info (privacy_group, privacy_display) values ('http://tizen.org/privacy/location','IDS_TPLATFORM_OPT_LOCATION_T_LBS')" -echo "http://tizen.org/privacy/message" -sqlite3 $DB_NAME "insert into privacy_info (privacy_group, privacy_display) values ('http://tizen.org/privacy/message','IDS_ST_BODY_MESSAGE')" -echo "http://tizen.org/privacy/microphone" -sqlite3 $DB_NAME "insert into privacy_info (privacy_group, privacy_display) values ('http://tizen.org/privacy/microphone','IDS_TPLATFORM_MBODY_MICROPHONE')" -echo "http://tizen.org/privacy/sensor" -sqlite3 $DB_NAME "insert into privacy_info (privacy_group, privacy_display) values ('http://tizen.org/privacy/sensor','IDS_TPLATFORM_MBODY_SENSORS')" -echo "http://tizen.org/privacy/userhistory" -sqlite3 $DB_NAME "insert into privacy_info (privacy_group, privacy_display) values ('http://tizen.org/privacy/userhistory','IDS_TPLATFORM_MBODY_USER_HISTORY')" +echo "Create PRIVACY_INFO table..." +sqlite3 $DB_NAME "CREATE TABLE PRIVACY_INFO (PRIVACY_NAME TEXT UNIQUE, PRIVACY_ID NUMERIC, PRIVACY_DISPLAY TEXT);" +echo "Insert into privacy_info ...." +PRIVACY_ID=0 +for i in `cat $PRIVACYLIST_CSV` +do + temp=`echo $i | awk '/^#/'` + if [ ! "$temp" = "" ] + then + continue + fi + PRIVACY_NAME=`echo $i | cut -d "," -f1` + PRIVACY_NAME_ONLY=`echo $PRIVACY_NAME | cut -d "/" -f5` + declare ${PRIVACY_NAME_ONLY}=$((PRIVACY_ID)) + PRIVACY_DISPLAY=`echo $i | cut -d "," -f2` + echo "Insert $PRIVACY_NAME, PRIVACY_ID = $PRIVACY_ID " + sqlite3 $DB_NAME "insert into privacy_info (privacy_name, privacy_id, privacy_display) values ('$PRIVACY_NAME', $((PRIVACY_ID++)), '$PRIVACY_DISPLAY')" +done diff --git a/capi/res/dbspace/wearable_privacy_whitelist.csv b/capi/res/dbspace/wearable_privacy_whitelist.csv new file mode 100644 index 0000000..761448e --- /dev/null +++ b/capi/res/dbspace/wearable_privacy_whitelist.csv @@ -0,0 +1,34 @@ +#PKG_ID,#PRIVACY_OPTION,#SETTABLE +ise-default,*-location,0 +ise-engine-default,*-location,0 +org.tizen.alarm,*-location,0 +org.tizen.app-selector,*-location,0 +org.tizen.bluetooth,*-location,0 +org.tizen.bt-syspopup,*-location,0 +org.tizen.chromium-efl,*-location,0 +org.tizen.classic-watch,*-location,0 +org.tizen.crash-syspopup,*-location,0 +org.tizen.dpm-syspopup,*-location,0 +org.tizen.dpm-toolkit,*-location,0 +org.tizen.elm-demo-tizen-wearable,*-location,0 +org.tizen.heremaps-uc,*-location,0 +org.tizen.idle-clock-digital,*-location,0 +org.tizen.inputdelegator,*-location,0 +org.tizen.inputmethod-setting,*-location,0 +org.tizen.my-account,*-location,0 +org.tizen.nfc-setting-app,*-location,0 +org.tizen.ode,*-location,0 +org.tizen.powerkey-syspopup,*-location,0 +org.tizen.privacy-setting,*-location,0 +org.tizen.screen-reader,*-location,0 +org.tizen.stopwatch,*-location,0 +org.tizen.stt-engine-default,*-location,0 +org.tizen.system-syspopup,*-location,0 +org.tizen.task-mgr,*-location,0 +org.tizen.timer,*-location,0 +org.tizen.tts-engine-default,*-location,0 +org.tizen.w-home,*-location,0 +org.tizen.w-wifi,*-location,0 +org.tizen.watch-setting,*-location,0 +org.tizen.widget_viewer_sdk,*-location,0 +org.tizen.windicator,*-location,0 diff --git a/capi/src/privilege_db_manager.c b/capi/src/privilege_db_manager.c index 7442d31..87704ee 100755 --- a/capi/src/privilege_db_manager.c +++ b/capi/src/privilege_db_manager.c @@ -8,6 +8,8 @@ #ifdef __TIZEN__ #include +#include +#define GLOBAL_USER tzplatform_getuid(TZ_SYS_GLOBALAPP_USER) #ifdef LOG_TAG #undef LOG_TAG #define LOG_TAG "PRIVILEGE_DB_MANAGER" @@ -21,6 +23,7 @@ #define _LOGD(fmt, arg...) #define _LOGW(fmt, arg...) #define _LOGI(fmt, arg...) +#define GLOBAL_USER 0 #endif @@ -48,27 +51,38 @@ static privilege_db_manager_profile_type_e g_privilege_db_manager_profile_type = return returnValue; \ } -int __initialize_db(char type, sqlite3 ** db, privilege_db_manager_package_type_e package_type) +char* __get_policy_table(privilege_manager_policy_type_e policy_type) +{ + switch (policy_type) { + case (PRIVILEGE_MANAGER_POLICY_TYPE_PREVENT): + return "prevent_list"; + case (PRIVILEGE_MANAGER_POLICY_TYPE_DISABLE): + default: + return "disable_list"; + } +} + +int __initialize_db(privilege_db_type_e type, sqlite3 ** db, privilege_db_manager_package_type_e package_type) { char *db_path = NULL; int db_mode = SQLITE_OPEN_READONLY; switch (type) { - case 'i': + case PRIVILEGE_DB_TYPE_INFO: if (package_type == PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT) db_path = PRIVILEGE_INFO_WRT_DB_PATH; else db_path = PRIVILEGE_INFO_CORE_DB_PATH; break; - case 'm': + case PRIVILEGE_DB_TYPE_MAPPING: if (package_type == PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT) db_path = PRIVILEGE_MAPPING_WRT_DB_PATH; else db_path = PRIVILEGE_MAPPING_CORE_DB_PATH; break; - case 'u': + case PRIVILEGE_DB_TYPE_POLICY_RW: db_mode = SQLITE_OPEN_READWRITE; - case 'p': + case PRIVILEGE_DB_TYPE_POLICY_RO: db_path = PRIVILEGE_POLICY_DB_PATH; break; default: @@ -144,14 +158,14 @@ int privilege_db_manager_check_black_list(int uid, privilege_db_manager_package_ int ret = 0; int count = 0; - ret = __initialize_db('p', &db, package_type); + ret = __initialize_db(PRIVILEGE_DB_TYPE_POLICY_RO, &db, package_type); if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) return ret; char *privilege_list_str = NULL; ret = __make_privilege_list_str(privilege_list, &privilege_list_str); _LOGD("check black list with uid = %d, package_type = %d, privilege_list = %s", uid, package_type, privilege_list_str); - char *sql = sqlite3_mprintf("select distinct privilege_name from black_list where privilege_name in(%s)and uid=%d and package_type=%d", privilege_list_str, uid, package_type); + char *sql = sqlite3_mprintf("select distinct privilege_name from prevent_list where privilege_name in(%s)and uid=%d and package_type=%d", privilege_list_str, uid, package_type); sqlite3_free(privilege_list_str); TryReturn(sql != NULL, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); @@ -195,7 +209,7 @@ int privilege_db_manager_get_privilege_list(const char *api_version, privilege_d } TryReturn(changed_to_version != NULL, , PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY, "[PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY] privilege_name's strdup is failed."); - ret = __initialize_db('i', &db, package_type); + ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, package_type); if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) return ret; @@ -275,7 +289,7 @@ int privilege_db_manager_get_mapped_privilege_list(const char *api_version, priv sqlite3_stmt *stmt = NULL; int ret; - ret = __initialize_db('m', &db, package_type); + ret = __initialize_db(PRIVILEGE_DB_TYPE_MAPPING, &db, package_type); if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) return ret; @@ -315,10 +329,10 @@ int privilege_db_manager_get_privacy_display(const char *privacy, char **privacy { sqlite3 *db = NULL; sqlite3_stmt *stmt = NULL; - int ret = __initialize_db('i', &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE); + int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE); if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) return ret; - char *sql = sqlite3_mprintf("select privacy_display from privacy_info where privacy_group=%Q", privacy); + char *sql = sqlite3_mprintf("select privacy_display from privacy_info where privacy_name=%Q", privacy); TryReturn(sql != NULL, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL); if (ret != SQLITE_OK) { @@ -346,7 +360,7 @@ int privilege_db_manager_get_privilege_display(privilege_db_manager_package_type sqlite3 *db = NULL; sqlite3_stmt *stmt = NULL; int ret; - ret = __initialize_db('i', &db, package_type); + ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, package_type); if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) return ret; @@ -387,7 +401,7 @@ int privilege_db_manager_get_privilege_description(privilege_db_manager_package_ sqlite3 *db = NULL; sqlite3_stmt *stmt = NULL; int ret; - ret = __initialize_db('i', &db, package_type); + ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, package_type); if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) return ret; @@ -427,7 +441,7 @@ int privilege_db_manager_get_privilege_group_display(privilege_db_manager_packag sqlite3 *db = NULL; sqlite3_stmt *stmt = NULL; int ret; - ret = __initialize_db('i', &db, package_type); + ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, package_type); if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) return ret; @@ -461,7 +475,7 @@ int privilege_db_manager_is(char type, const char* privilege) sqlite3 *db = NULL; sqlite3_stmt *stmt = NULL; int res = 0; - int ret = __initialize_db('i', &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE); + int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE); TryReturn(ret == PRIVILEGE_DB_MANAGER_ERR_NONE, , ret, "[PRIVILEGE_DB_MANAGER] DB INITIALIZE FAIL"); char *sql = sqlite3_mprintf("select privilege_name,is_privacy, is_internal from valid_privilege_info where privilege_name=%Q", privilege); @@ -500,11 +514,12 @@ int privilege_db_manager_is(char type, const char* privilege) return res; } +/* TBD : Remove it */ int privilege_db_manager_is_preloaded(const char* pkgid) { sqlite3 *db = NULL; sqlite3_stmt *stmt = NULL; - int ret = __initialize_db('i', &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE); + int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE); TryReturn(ret == PRIVILEGE_DB_MANAGER_ERR_NONE, , ret, "[PRIVILEGE_DB_MANAGER] DB INITIALIZE FAIL"); char *sql = sqlite3_mprintf("select * from preloaded where name=%Q", pkgid); @@ -523,15 +538,126 @@ int privilege_db_manager_is_preloaded(const char* pkgid) } } +int privilege_db_manager_is_privacy_white_list(const char* pkgid, const char* privilege) +{ +#ifdef DISABLE_ASKUSER + return 1; +#endif + sqlite3 *db = NULL; + sqlite3_stmt *stmt = NULL; + int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE); + TryReturn(ret == PRIVILEGE_DB_MANAGER_ERR_NONE, , ret, "[PRIVILEGE_DB_MANAGER] DB INITIALIZE FAIL"); + + int privacy_id = 0; + ret = privilege_db_manager_get_privacy_id_by_privilege(privilege, &privacy_id); + TryReturn(ret == PRIVILEGE_DB_MANAGER_ERR_NONE, , ret, "[PRIVILEGE_DB_MANAGER] privilege_db_manager_get_privacy_id_by_privilege failed"); + + char *sql = sqlite3_mprintf("select privacy_option from privacy_whitelist where pkg_id=%Q", pkgid); + TryReturn(sql != NULL, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); + + ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL); + TryReturn(ret == SQLITE_OK, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] fail to prepare database : %s", sqlite3_errmsg(db)); + + int res = 0; + do { + ret = sqlite3_step(stmt); + if (ret == SQLITE_ROW) { + char* privacy_option = strdup((char *)sqlite3_column_text(stmt, 0)); + TryReturn(privacy_option != NULL, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY, "[PRIVILEGE_DB_MANAGER] privacy_option strdup failed"); + if (privacy_option[privacy_id] == '1') { + res = 1; + free(privacy_option); + break; + } + free(privacy_option); + } + } while (ret == SQLITE_ROW); + + __finalize_db(db, stmt, sql); + return res; +} + +int privilege_db_manager_is_user_settable(const char* pkgid, const char* privacy) +{ +#ifdef DISABLE_ASKUSER + return 1; +#endif + sqlite3 *db = NULL; + sqlite3_stmt *stmt = NULL; + int res = 1; + int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE); + TryReturn(ret == PRIVILEGE_DB_MANAGER_ERR_NONE, , ret, "[PRIVILEGE_DB_MANAGER] DB INITIALIZE FAIL"); + + int privacy_id = 0; + ret = privilege_db_manager_get_privacy_id(privacy, &privacy_id); + TryReturn(ret == PRIVILEGE_DB_MANAGER_ERR_NONE, , ret, "[PRIVILEGE_DB_MANAGER] privilege_db_manager_get_privacy_id failed"); + + char *sql = sqlite3_mprintf("select privacy_option, settable from privacy_whitelist where pkg_id=%Q", pkgid); + TryReturn(sql != NULL, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); + + ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL); + TryReturn(ret == SQLITE_OK, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] fail to prepare database : %s", sqlite3_errmsg(db)); + + res = 1; + do { + ret = sqlite3_step(stmt); + if (ret == SQLITE_ROW) { + char* privacy_option = strdup((char *)sqlite3_column_text(stmt, 0)); + TryReturn(privacy_option != NULL, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY, "[PRIVILEGE_DB_MANAGER] privacy_option strdup failed"); + int settable_flag = (int)sqlite3_column_int(stmt, 1); + if (privacy_option[privacy_id] == '1' && settable_flag == 1) { + res = 1; + free(privacy_option); + break; + } else if (privacy_option[privacy_id] == '1' && settable_flag == 0) { + res = 0; + free(privacy_option); + break; + } else { + res = 1; + } + free(privacy_option); + } + } while (ret == SQLITE_ROW); + + __finalize_db(db, stmt, sql); + return res; +} + +int privilege_db_manager_is_disabled_privilege(uid_t uid, const char* privilege) +{ + sqlite3 *db = NULL; + sqlite3_stmt *stmt = NULL; + int ret = __initialize_db(PRIVILEGE_DB_TYPE_POLICY_RO, &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE); + TryReturn(ret == PRIVILEGE_DB_MANAGER_ERR_NONE, , ret, "[PRIVILEGE_DB_MANAGER] DB INITIALIZE FAIL. ret = %d", ret); + + char *sql = sqlite3_mprintf("select * from disable_list where privilege_name=%Q and (uid=%d or uid=%d)", privilege, uid, GLOBAL_USER); + TryReturn(sql != NULL, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); + + ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL); + TryReturn(ret == SQLITE_OK, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] fail to prepare database : %s", sqlite3_errmsg(db)); + + ret = sqlite3_step(stmt); + if (ret == SQLITE_ROW) { + _LOGD("%s is disabled for uid: %d", privilege, uid); + ret = 1; + } else { + _LOGD("%s is not disabled for uid: %d. ret = %s", privilege, uid, sqlite3_errmsg(db)); + ret = 0; + } + __finalize_db(db, stmt, sql); + return ret; +} + int __privilege_db_manager_get_privacy_list(GList **privacy_list) { sqlite3 *db = NULL; sqlite3_stmt *stmt = NULL; - int ret = __initialize_db('i', &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE); + int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE); if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) return ret; - char *sql = sqlite3_mprintf("select DISTINCT privacy_group from privilege_info where is_privacy=1 order by privacy_group"); + char *sql = sqlite3_mprintf("select DISTINCT privacy_name from privilege_info where is_privacy=1 order by privacy_name"); TryReturn(sql != NULL, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL); if (ret != SQLITE_OK) { @@ -561,11 +687,11 @@ int __privilege_db_manager_get_privilege_list_by_privacy(const char* privacy, GL { sqlite3 *db = NULL; sqlite3_stmt *stmt = NULL; - int ret = __initialize_db('i', &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE); + int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE); if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) return ret; - char *sql = sqlite3_mprintf("select distinct privilege_name from valid_privilege_info where is_privacy=1 and privacy_group=%Q", privacy); + char *sql = sqlite3_mprintf("select distinct privilege_name from valid_privilege_info where is_privacy=1 and privacy_name=%Q", privacy); TryReturn(sql != NULL, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL); if (ret != SQLITE_OK) { @@ -591,15 +717,15 @@ int __privilege_db_manager_get_privilege_list_by_privacy(const char* privacy, GL } -int privilege_db_manager_get_privacy_by_privilege(const char* privilege, char** privacy) +int privilege_db_manager_get_privacy_by_privilege(const char* privilege, char** privacy_name) { sqlite3 *db = NULL; sqlite3_stmt *stmt = NULL; - int ret = __initialize_db('i', &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE); + int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE); if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) return ret; - char *sql = sqlite3_mprintf("select privacy_group from valid_privilege_info where privilege_name=%Q", privilege); + char *sql = sqlite3_mprintf("select privacy_name from valid_privilege_info where privilege_name=%Q", privilege); TryReturn(sql != NULL, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL); if (ret != SQLITE_OK) { @@ -608,23 +734,90 @@ int privilege_db_manager_get_privacy_by_privilege(const char* privilege, char** return PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY; } ret = sqlite3_step(stmt); - if (ret == SQLITE_ROW) - *privacy = strdup((char*)sqlite3_column_text(stmt, 0)); + if (ret == SQLITE_ROW) { + *privacy_name = strdup((char*)sqlite3_column_text(stmt, 0)); + ret = PRIVILEGE_DB_MANAGER_ERR_NONE; + } else { + ret = PRIVILEGE_DB_NO_EXIST_RESULT; + } __finalize_db(db, stmt, sql); - return PRIVILEGE_DB_MANAGER_ERR_NONE; + return ret; +} + +int privilege_db_manager_get_privacy_id_by_privilege(const char* privilege, int *privacy_id) +{ + sqlite3 *db = NULL; + sqlite3_stmt *stmt = NULL; + int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE); + if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) + return ret; + + char *sql = sqlite3_mprintf("select privacy_id from privacy_info where privacy_name=(select privacy_name from valid_privilege_info where privilege_name=%Q)", privilege); + TryReturn(sql != NULL, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); + 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)); + __finalize_db(db, stmt, sql); + return PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY; + } + ret = sqlite3_step(stmt); + if (ret == SQLITE_ROW) { + int tmp = (int)sqlite3_column_int(stmt, 0); + _LOGD("privacy_id = %d", tmp); + *privacy_id = tmp; + ret = PRIVILEGE_DB_MANAGER_ERR_NONE; + } else { + ret = PRIVILEGE_DB_NO_EXIST_RESULT; + } + + __finalize_db(db, stmt, sql); + + return ret; } -int privilege_db_manager_get_black_list(int uid, privilege_db_manager_package_type_e package_type, GList **privilege_list) +int privilege_db_manager_get_privacy_id(const char* privacy, int *privacy_id) +{ + sqlite3 *db = NULL; + sqlite3_stmt *stmt = NULL; + int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE); + if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) + return ret; + + char *sql = sqlite3_mprintf("select privacy_id from privacy_info where privacy_name=%Q", privacy); + TryReturn(sql != NULL, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); + 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)); + __finalize_db(db, stmt, sql); + return PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY; + } + ret = sqlite3_step(stmt); + if (ret == SQLITE_ROW) { + int tmp = (int)sqlite3_column_int(stmt, 0); + _LOGD("privacy_id = %d", tmp); + *privacy_id = tmp; + ret = PRIVILEGE_DB_MANAGER_ERR_NONE; + } else { + ret = PRIVILEGE_DB_NO_EXIST_RESULT; + } + + __finalize_db(db, stmt, sql); + + return ret; +} + + +int privilege_db_manager_get_black_list(privilege_manager_policy_type_e policy_type, int uid, privilege_db_manager_package_type_e package_type, GList **privilege_list) { sqlite3 *db = NULL; sqlite3_stmt *stmt = NULL; - int ret = __initialize_db('p', &db, package_type); + int ret = __initialize_db(PRIVILEGE_DB_TYPE_POLICY_RO, &db, package_type); if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) return ret; - _LOGD("Get privilege_name from black_list where uid = %d, package_type = %d", uid, package_type); - char* sql = sqlite3_mprintf("select privilege_name from black_list where uid=%d and package_type=%d", uid, package_type); + _LOGD("Get privilege_name from %s where uid = %d, package_type = %d", __get_policy_table(policy_type), uid, package_type); + char* sql = sqlite3_mprintf("select privilege_name from %Q where uid=%d and package_type=%d", __get_policy_table(policy_type), uid, package_type); TryReturn(sql != NULL, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL); if (ret != SQLITE_OK) { @@ -652,11 +845,11 @@ int privilege_db_manager_get_black_list(int uid, privilege_db_manager_package_ty return PRIVILEGE_DB_MANAGER_ERR_NONE; } -int privilege_db_manager_set_black_list(int uid, privilege_db_manager_package_type_e package_type, GList *privilege_list) +int privilege_db_manager_set_black_list(privilege_manager_policy_type_e policy_type, int uid, privilege_db_manager_package_type_e package_type, GList *privilege_list) { sqlite3 *db = NULL; sqlite3_stmt *stmt = NULL; - int ret = __initialize_db('u', &db, package_type); + int ret = __initialize_db(PRIVILEGE_DB_TYPE_POLICY_RW, &db, package_type); if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) return ret; @@ -664,8 +857,8 @@ int privilege_db_manager_set_black_list(int uid, privilege_db_manager_package_ty GList *l = NULL; for (l = privilege_list; l != NULL; l = l->next) { char *privilege_name = (char *)l->data; - _LOGD("insert uid = %d, package_type = %d, privilege_name = %s", uid, package_type, privilege_name); - char* sql = sqlite3_mprintf("insert or ignore into black_list (uid, package_type, privilege_name) values (%d, %d, %Q)", uid, package_type, privilege_name); + _LOGD("insert into %s uid = %d, package_type = %d, privilege_name = %s", __get_policy_table(policy_type), uid, package_type, privilege_name); + char* sql = sqlite3_mprintf("insert or ignore into %Q (uid, package_type, privilege_name) values (%d, %d, %Q)", __get_policy_table(policy_type), uid, package_type, privilege_name); TryReturn(sql != NULL, sqlite3_exec(db, "ROLLBACK TRANSACTION", NULL, NULL, NULL); __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL); if (ret != SQLITE_OK) { @@ -689,11 +882,11 @@ int privilege_db_manager_set_black_list(int uid, privilege_db_manager_package_ty return PRIVILEGE_DB_MANAGER_ERR_NONE; } -int privilege_db_manager_unset_black_list(int uid, privilege_db_manager_package_type_e package_type, GList *privilege_list) +int privilege_db_manager_unset_black_list(privilege_manager_policy_type_e policy_type, int uid, privilege_db_manager_package_type_e package_type, GList *privilege_list) { sqlite3 *db = NULL; sqlite3_stmt *stmt = NULL; - int ret = __initialize_db('u', &db, package_type); + int ret = __initialize_db(PRIVILEGE_DB_TYPE_POLICY_RW, &db, package_type); if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) return ret; @@ -701,8 +894,8 @@ int privilege_db_manager_unset_black_list(int uid, privilege_db_manager_package_ GList *l = NULL; for (l = privilege_list; l != NULL; l = l->next) { char *privilege_name = (char *)l->data; - _LOGD("delete from black_list where uid = %d, package_type = %d, privilege_name = %s", uid, package_type, privilege_name); - char* sql = sqlite3_mprintf("delete from black_list where uid=%d and package_type=%d and privilege_name=%Q", uid, package_type, privilege_name); + _LOGD("delete from %s where uid = %d, package_type = %d, privilege_name = %s", __get_policy_table(policy_type), uid, package_type, privilege_name); + char* sql = sqlite3_mprintf("delete from %Q where uid=%d and package_type=%d and privilege_name=%Q", __get_policy_table(policy_type), uid, package_type, privilege_name); TryReturn(sql != NULL, sqlite3_exec(db, "ROLLBACK TRANSACTION", NULL, NULL, NULL); __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL); if (ret != SQLITE_OK) { diff --git a/capi/src/privilege_info.c b/capi/src/privilege_info.c index 4f7ffc0..386ebc3 100755 --- a/capi/src/privilege_info.c +++ b/capi/src/privilege_info.c @@ -522,6 +522,7 @@ int privilege_info_is_privacy(const char* privilege) #endif } +/* TBD: remove it */ int privilege_info_is_privacy2(const char* label, const char* privilege) { TryReturn(privilege != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege is NULL"); @@ -564,6 +565,60 @@ int privilege_info_is_privacy2(const char* label, const char* privilege) #endif } +int privilege_info_get_privilege_type(uid_t uid, const char* pkgid, const char* privilege, privilege_manager_privilege_type_e *type) +{ + TryReturn(pkgid != NULL && privilege != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] pkgid or privilege is NULL"); + int ret = PRVMGR_ERR_NONE; + LOGD("get privilege type for uid: <%d>, pkgid: <%s>, privilege: <%s>", uid, pkgid, privilege); + ret = privilege_db_manager_is('p', privilege); + if (ret == 1) { + ret = privilege_db_manager_is_privacy_white_list(pkgid, privilege); + if (ret == 1) { + *type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL; + ret = PRVMGR_ERR_NONE; + } else if (ret == 0) { + *type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY; + ret = PRVMGR_ERR_NONE; + } else { + LOGE("privilege_db_manager_is_privacy_whitelist failed"); + ret = PRVMGR_ERR_INTERNAL_ERROR; + } + } else if (ret == 0) { // not privacy -> check mdm black list + ret = privilege_db_manager_is_disabled_privilege(uid, privilege); + if (ret == 1) { + *type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_BLACKLIST; + ret = PRVMGR_ERR_NONE; + } else if (ret == 0) { + *type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL; + ret = PRVMGR_ERR_NONE; + } else { + LOGE("privilege_db_manager_is_disabled_privilege failed"); + ret = PRVMGR_ERR_INTERNAL_ERROR; + } + } else { + LOGE("privilege_db_manager_is failed"); + ret = PRVMGR_ERR_INTERNAL_ERROR; + } + return ret; +} + +int privilege_info_is_user_settable(const char* pkgid, const char* privacy) +{ + TryReturn(pkgid != NULL && privacy != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] pkgid or privacy is NULL"); + int ret = privilege_db_manager_is_user_settable(pkgid, privacy); + if (ret == 1) + return 1; + else if (ret == 0) + return 0; + + if (ret == PRIVILEGE_DB_NO_EXIST_RESULT) + LOGE("%s is invalid privacy name", privacy); + else + LOGE("ret = %d", ret); + + return -1; +} + int privilege_info_is_valid(const char* privilege) { TryReturn(privilege != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege is NULL"); @@ -643,7 +698,7 @@ int privilege_info_get_black_list(int uid, privilege_manager_package_type_e pack { TryReturn(package_type == PRVMGR_PACKAGE_TYPE_WRT || package_type == PRVMGR_PACKAGE_TYPE_CORE, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] package_type invalid!"); - int ret = privilege_db_manager_get_black_list(uid, package_type, privilege_list); + int ret = privilege_db_manager_get_black_list(PRIVILEGE_MANAGER_POLICY_TYPE_PREVENT, uid, package_type, privilege_list); if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE) ret = PRVMGR_ERR_NONE; else diff --git a/capi/src/privilege_manager.c b/capi/src/privilege_manager.c index 7d4ae49..e1b93c1 100755 --- a/capi/src/privilege_manager.c +++ b/capi/src/privilege_manager.c @@ -491,7 +491,7 @@ int privilege_manager_set_black_list(int uid, privilege_manager_package_type_e p { TryReturn(privilege_list != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege_list is NULL."); TryReturn(package_type == PRVMGR_PACKAGE_TYPE_WRT || package_type == PRVMGR_PACKAGE_TYPE_CORE, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] Invalid package_type = %d.", package_type); - int ret = privilege_db_manager_set_black_list(uid, package_type, privilege_list); + int ret = privilege_db_manager_set_black_list(PRIVILEGE_MANAGER_POLICY_TYPE_PREVENT, uid, package_type, privilege_list); if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) ret = PRVMGR_ERR_INTERNAL_ERROR; return ret; @@ -501,7 +501,7 @@ int privilege_manager_unset_black_list(int uid, privilege_manager_package_type_e { TryReturn(privilege_list != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege_list is NULL."); TryReturn(package_type == PRVMGR_PACKAGE_TYPE_WRT || package_type == PRVMGR_PACKAGE_TYPE_CORE, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] Invalid package_type = %d.", package_type); - int ret = privilege_db_manager_unset_black_list(uid, package_type, privilege_list); + int ret = privilege_db_manager_unset_black_list(PRIVILEGE_MANAGER_POLICY_TYPE_PREVENT, uid, package_type, privilege_list); if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) ret = PRVMGR_ERR_INTERNAL_ERROR; return ret; diff --git a/test/tc-privilege-db-manager.c b/test/tc-privilege-db-manager.c index 48072ce..2809391 100755 --- a/test/tc-privilege-db-manager.c +++ b/test/tc-privilege-db-manager.c @@ -350,6 +350,317 @@ void __test_privilege_db_manager_get_privilege_description() } +void __test_privilege_db_manager_get_privacy_by_privilege() +{ + int ret = 0; + int privacy_id = 100; + char* privacy_name = NULL; + + __print_line(); + printf("privilege: http://tizen.org/privilege/account.read\n"); + printf("privacy: http://tizen.org/privacy/account\n"); + ret = privilege_db_manager_get_privacy_by_privilege("http://tizen.org/privilege/account.read", &privacy_name); + ret = privilege_db_manager_get_privacy_id_by_privilege("http://tizen.org/privilege/account.read", &privacy_id); + printf("privacy name = %s, privacy_id = %d\n", privacy_name, privacy_id); + if (ret == 0 && !strcmp(privacy_name, "http://tizen.org/privacy/account") && privacy_id == 0) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail\n"); + __color_to_origin(); + } + + free(privacy_name); + privacy_name = NULL; + + __print_line(); + printf("privilege: http://tizen.org/privilege/location\n"); + printf("privacy: http://tizen.org/privacy/location\n"); + ret = privilege_db_manager_get_privacy_by_privilege("http://tizen.org/privilege/location", &privacy_name); + ret = privilege_db_manager_get_privacy_id_by_privilege("http://tizen.org/privilege/location", &privacy_id); + printf("privacy name = %s, privacy_id = %d\n", privacy_name, privacy_id); + if (ret == 0 && !strcmp(privacy_name, "http://tizen.org/privacy/location") && privacy_id == 6) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail\n"); + __color_to_origin(); + } + free(privacy_name); + privacy_name = NULL; + + __print_line(); + printf("privilege: http://tizen.org/privilege/call\n"); + printf("privacy: http://tizen.org/privacy/call\n"); + ret = privilege_db_manager_get_privacy_by_privilege("http://tizen.org/privilege/call", &privacy_name); + ret = privilege_db_manager_get_privacy_id_by_privilege("http://tizen.org/privilege/call", &privacy_id); + printf("privacy name = %s, privacy_id = %d\n", privacy_name, privacy_id); + if (ret == 0 && !strcmp(privacy_name, "http://tizen.org/privacy/call") && privacy_id == 3) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail\n"); + __color_to_origin(); + } + free(privacy_name); + privacy_name = NULL; +} + +void __test_privilege_db_manager_is_privacy_white_list() +{ + int ret = 0; + + __print_line(); + printf("pkgid: ise-default\n"); + printf("privilege: http://tizen.org/privilege/call\n"); + printf("is privacy whitelist\n"); + ret = privilege_db_manager_is_privacy_white_list("ise-default", "http://tizen.org/privilege/call"); + printf("ret = %d\n", ret); + if (ret == 1) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail\n"); + __color_to_origin(); + } + + __print_line(); + printf("pkgid: ise-default\n"); + printf("privilege: http://tizen.org/privilege/location\n"); + printf("is not privacy whitelist\n"); + ret = privilege_db_manager_is_privacy_white_list("ise-default", "http://tizen.org/privilege/location"); + printf("ret = %d\n", ret); +#ifdef ENABLE_ASKUSER + if (ret == 0) { +#else + if (ret == 1) { +#endif + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail\n"); + __color_to_origin(); + } + + __print_line(); + printf("pkgid: ise-default\n"); + printf("privilege: http://tizen.org/privilege/calendar.read\n"); + printf("is privacy whitelist\n"); + ret = privilege_db_manager_is_privacy_white_list("ise-default", "http://tizen.org/privilege/calendar.read"); + printf("ret = %d\n", ret); + if (ret == 1) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail\n"); + __color_to_origin(); + } + + __print_line(); + printf("pkgid: orxxxxx\n"); + printf("privilege: http://tizen.org/privilege/call\n"); + printf("is not privacy whitelist\n"); + ret = privilege_db_manager_is_privacy_white_list("orxxxxx", "http://tizen.org/privilege/call"); + printf("ret = %d\n", ret); +#ifdef ENABLE_ASKUSER + if (ret == 0) { +#else + if (ret == 1) { +#endif + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail\n"); + __color_to_origin(); + } + +} + +void __test_privilege_db_manager_is_disabled_privilege() +{ + int ret = 0; + __print_line(); + printf("uid = 5001, privilege: http://tizen.org/privilege/xxxxx\n"); + printf("is not disabled\n"); + ret = privilege_db_manager_is_disabled_privilege(5001, "http://tizen.org/privilege/xxxxx"); + printf("ret = %d\n", ret); + if (ret == 0) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail\n"); + __color_to_origin(); + } + + __print_line(); + printf("uid = 0, privilege: http://tizen.org/privilege/yyyyy\n"); + printf("is disabled\n"); + ret = privilege_db_manager_is_disabled_privilege(0, "http://tizen.org/privilege/yyyyy"); + printf("ret = %d\n", ret); + if (ret == 1) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail\n"); + __color_to_origin(); + } + + __print_line(); +} + +void __test_privilege_db_manager_get_privacy_id() +{ + int ret = 0; + int privacy_id = 100; + + __print_line(); + ret = privilege_db_manager_get_privacy_id("http://tizen.org/privacy/account", &privacy_id); + printf("privacy : http://tizen.org/privacy/account, privacy_id = %d\n", privacy_id); + if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE && privacy_id == 0) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail\n"); + __color_to_origin(); + } + + __print_line(); + ret = privilege_db_manager_get_privacy_id("http://tizen.org/privacy/location", &privacy_id); + printf("privacy : http://tizen.org/privacy/location, privacy_id = %d\n", privacy_id); + if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE && privacy_id == 6) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail\n"); + __color_to_origin(); + } + __print_line(); +} + +void __test_privilege_db_manager_is_user_settable() +{ + int ret = 0; + + __print_line(); + printf("pkgid: org.tizen.gps-syspopup\n"); + printf("privilege: http://tizen.org/privacy/calendar\n"); + printf("is not user-settable\n"); + ret = privilege_db_manager_is_user_settable("org.tizen.gps-syspopup", "http://tizen.org/privacy/calendar"); + printf("ret = %d\n", ret); + if (ret == 0) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail\n"); + __color_to_origin(); + } + + __print_line(); + printf("pkgid: org.tizen.gps-syspopup\n"); + printf("privilege: http://tizen.org/privacy/location\n"); + printf("is user-settable\n"); + ret = privilege_db_manager_is_user_settable("org.tizen.gps-syspopup", "http://tizen.org/privacy/location"); + printf("ret = %d\n", ret); + if (ret == 1) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail\n"); + __color_to_origin(); + } + + + __print_line(); + printf("pkgid: org.tizen.xxxxxxx\n"); + printf("privilege: http://tizen.org/privacy/location\n"); + printf("is user-settable\n"); + ret = privilege_db_manager_is_user_settable("org.tizen.xxxxxxx", "http://tizen.org/privacy/location"); + printf("ret = %d\n", ret); + if (ret == 1) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail\n"); + __color_to_origin(); + } + + __print_line(); + printf("pkgid: org.tizen.xxxxxxx\n"); + printf("privilege: http://tizen.org/privacy/xxxxx\n"); + printf("is user-settable\n"); + ret = privilege_db_manager_is_user_settable("org.tizen.xxxxxxx", "http://tizen.org/privacy/xxxxx"); + printf("ret = %d\n", ret); + if (ret == PRIVILEGE_DB_NO_EXIST_RESULT) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail\n"); + __color_to_origin(); + } + + __print_line(); +} + int main() { __tcinfo(function, "privilege_db_manager_get_privilege_list"); @@ -364,6 +675,21 @@ int main() __tcinfo(function, "privilege_db_manager_get_privilege_description"); __test_privilege_db_manager_get_privilege_description(); + __tcinfo(function, "privilege_db_manager_get_privacy_id_by_privilege, privilege_db_manager_get_privacy_by_privilege"); + __test_privilege_db_manager_get_privacy_by_privilege(); + + __tcinfo(function, "privilege_db_manager_is_privacy_white_list"); + __test_privilege_db_manager_is_privacy_white_list(); + + __tcinfo(function, "privilege_db_manager_is_disabled_privilege"); + __test_privilege_db_manager_is_disabled_privilege(); + + __tcinfo(function, "privilege_db_manager_get_privacy_id"); + __test_privilege_db_manager_get_privacy_id(); + + __tcinfo(function, "privilege_db_manager_is_user_settable"); + __test_privilege_db_manager_is_user_settable(); + __color_to_green(); printf("Test Complete\n"); printf("success : %d, ", success_cnt); diff --git a/test/tc-privilege-info.c b/test/tc-privilege-info.c index 6e46588..ee0b618 100755 --- a/test/tc-privilege-info.c +++ b/test/tc-privilege-info.c @@ -494,10 +494,9 @@ static void __test_privilege_info_get_privilege_group_display_name() free(group_name); } - +#ifdef ENABLE_ASKUSER static void __test_privilege_info_is_privacy2() { -#ifndef PROFILE_TYPE_TV int ret = 0; printf("PRELOADED + NOT LOCATION PRIVACY -> ALLOW (not privacy)\n"); @@ -605,10 +604,199 @@ static void __test_privilege_info_is_privacy2() printf("Test FAILED. ret = %d\n", ret); } __print_line(); +} +#endif + +static char* __get_privilege_type_string(privilege_manager_privilege_type_e type) +{ + switch (type) { + case PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL: + return "PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL"; + case PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY: + return "PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY"; + case PRIVILEGE_MANAGER_PRIVILEGE_TYPE_BLACKLIST: + return "PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY"; + default: + return "None of privilege_manager_privilege_type_e"; + } +} +static void __test_privilege_info_get_privilege_type() +{ + int ret = 0; + privilege_manager_privilege_type_e type; + + __print_line(); + printf("uid = 5001\n"); + printf("pkgid = org.tizen.contacts\norg.tizen.contacts"); + printf("privilege = http://tizen.org/privilege/internet\n"); + printf("expected type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL\n"); + ret = privilege_info_get_privilege_type(5001, "org.tizen.contacts", "http://tizen.org/privilege/internet", &type); + if (ret == PRVMGR_ERR_NONE && type == PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail. ret = %s, type = %s\n", __get_result_string('m', ret), __get_privilege_type_string(type)); + __color_to_origin(); + } + __print_line(); + printf("uid = 5001\n"); + printf("pkgid = org.tizen.contacts\n"); + printf("privilege = http://tizen.org/privilege/location\n"); + ret = privilege_info_get_privilege_type(5001, "org.tizen.contacts", "http://tizen.org/privilege/location", &type); +#ifdef DISABLE_ASKUSER + printf("expected type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL\n"); + if (ret == PRVMGR_ERR_NONE && type == PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL) { +#else + printf("expected type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY\n"); + if (ret == PRVMGR_ERR_NONE && type == PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY) { #endif + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail. ret = %s, type = %s\n", __get_result_string('m', ret), __get_privilege_type_string(type)); + __color_to_origin(); + } + + __print_line(); + printf("uid = 0\n"); + printf("pkgid = org.tizen.testtest\n"); + printf("privilege = http://tizen.org/privilege/yyyyy\n"); + ret = privilege_info_get_privilege_type(0, "org.tizen.testtest", "http://tizen.org/privilege/yyyyy", &type); + printf("expected type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_BLACKLIST\n"); + if (ret == PRVMGR_ERR_NONE && type == PRIVILEGE_MANAGER_PRIVILEGE_TYPE_BLACKLIST) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail. ret = %s, type = %s\n", __get_result_string('m', ret), __get_privilege_type_string(type)); + __color_to_origin(); + } + + __print_line(); + printf("uid = 5001\n"); + printf("pkgid = NULL\n"); + printf("privilege = \n"); + ret = privilege_info_get_privilege_type(5001, NULL, NULL, &type); + printf("expected ret = PRVMGR_ERR_INVALID_PARAMETER\n"); + if (ret == PRVMGR_ERR_INVALID_PARAMETER) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail. ret = %s, type = %s\n", __get_result_string('m', ret), __get_privilege_type_string(type)); + __color_to_origin(); + } + + __print_line(); + printf("uid = 5001\n"); + printf("pkgid = org.tizen.testtest\n"); + printf("privilege = http://tizen.org/privilege/yyyyy\n"); + ret = privilege_info_get_privilege_type(5001, "org.tizen.testtest", "http://tizen.org/privilege/yyyyy", &type); + printf("expected type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL\n"); + if (ret == PRVMGR_ERR_NONE && type == PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail. ret = %s, type = %s\n", __get_result_string('m', ret), __get_privilege_type_string(type)); + __color_to_origin(); + } + __print_line(); } +void __test_privilege_info_is_user_settable() +{ + int ret = 0; + + __print_line(); + printf("pkgid = ise-default\n"); + printf("privacy = http://tizen.org/privacy/location\n"); + ret = privilege_info_is_user_settable("ise-default", "http://tizen.org/privacy/location"); + printf("is user settable\n"); + if (ret == 1) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail. ret = %d", ret); + __color_to_origin(); + } + + __print_line(); + printf("pkgid = ise-default\n"); + printf("privacy = http://tizen.org/privacy/camera\n"); + ret = privilege_info_is_user_settable("ise-default", "http://tizen.org/privacy/camera"); + printf("is not user settable\n"); + if (ret == 0) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail. ret = %d", ret); + __color_to_origin(); + } + + __print_line(); + printf("pkgid = org.tizen.testtest\n"); + printf("privacy = http://tizen.org/privacy/userhistory\n"); + ret = privilege_info_is_user_settable("org.tizen.testtest", "http://tizen.org/privacy/userhistory"); + printf("is user settable\n"); + if (ret == 1) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail. ret = %d", ret); + __color_to_origin(); + } + + __print_line(); + printf("pkgid = org.tizen.testtest\n"); + printf("privacy = http://tizen.org/privacy/xxxxx\n"); + ret = privilege_info_is_user_settable("org.tizen.testtest", "http://tizen.org/privacy/xxxxx"); + printf("error must be occurred\n"); + if (ret == -1) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail. ret = %d", ret); + __color_to_origin(); + } + __print_line(); +} + + int main() { __tcinfo(function, "privilege_info_is_privacy"); @@ -641,8 +829,16 @@ int main() __tcinfo(function, "privilege_info_get_privacy_display"); __test_privilege_info_get_privacy_display(); +#ifdef ENABLE_ASKUSER __tcinfo(function, "privilege_info_is_privacy2"); __test_privilege_info_is_privacy2(); +#endif + + __tcinfo(function, "privilege_info_get_privilege_type"); + __test_privilege_info_get_privilege_type(); + + __tcinfo(function, "privilege_info_is_user_settable"); + __test_privilege_info_is_user_settable(); __color_to_green(); printf("Test Complete\n"); -- 2.7.4 From 087e77cceab6af31b154ed3eb87d1296235bb8e5 Mon Sep 17 00:00:00 2001 From: Yunjin Lee Date: Fri, 23 Dec 2016 16:34:22 +0900 Subject: [PATCH 04/16] Add API to set/unset privilege disable list - Add API to set/unset privilege disable list - Add API to get disabled privilege list of certain user - Remove compile warning : invalid multibyte sequence Change-Id: Ib1a07e2adbb23430dde8aec7e3fe4b165a1288cd Signed-off-by: Yunjin Lee --- capi/include/privilege_db_manager.h | 1 + capi/include/privilege_info.h | 13 +- capi/include/privilege_manager.h | 28 +++- capi/res/dbspace/mobile_privacy_whitelist.csv | 1 - capi/src/privilege_db_manager.c | 20 ++- capi/src/privilege_info.c | 10 ++ capi/src/privilege_manager.c | 20 +++ test/tc-common.c | 14 ++ test/tc-common.h | 1 + test/tc-privilege-black-list.c | 205 +++++++++++++++++++++++++- test/tc-privilege-db-manager.c | 44 ------ test/tc-privilege-info.c | 28 ++-- 12 files changed, 313 insertions(+), 72 deletions(-) diff --git a/capi/include/privilege_db_manager.h b/capi/include/privilege_db_manager.h index 5b92b12..53c514b 100755 --- a/capi/include/privilege_db_manager.h +++ b/capi/include/privilege_db_manager.h @@ -63,6 +63,7 @@ typedef enum { } privilege_db_manager_privilege_level_e; typedef enum { + PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_NONE = -1, /* placeholder */ PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT = 0, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE = 1 } privilege_db_manager_package_type_e; diff --git a/capi/include/privilege_info.h b/capi/include/privilege_info.h index 9b5e765..9197cb9 100644 --- a/capi/include/privilege_info.h +++ b/capi/include/privilege_info.h @@ -206,7 +206,7 @@ EXPORT_API int privilege_info_get_privilege_list_by_privacy(const char *privacy, EXPORT_API int privilege_info_get_privacy_by_privilege(const char *privilege, char** privacy); /** - * @brief Gets the list of privilges marked as black list. + * @brief Gets the list of privilges marked as dpm black list. * @remarks @a privilege_list must be released with g_list_free() by you. * @param [in] uid The UID * @param [in] package_type The privilege_manager_package_type_e @@ -218,6 +218,17 @@ EXPORT_API int privilege_info_get_privacy_by_privilege(const char *privilege, ch */ EXPORT_API int privilege_info_get_black_list(int uid, privilege_manager_package_type_e package_type, GList **privilege_list); +/** + * @brief Gets the list of privilges marked as mdm black list for the given uid. + * @remarks @a privilege_list must be released with g_list_free() by you. + * @param [in] uid The UID + * @param [out] privilege_list The list for privileges marked as black list + * @return 0 on success, otherwise a nonzero error value. + * @retval #PRVMGR_ERR_NONE Successful + * @retval #PRVMGR_ERR_INTERNAL_ERROR Internal error + */ +EXPORT_API int privilege_info_get_mdm_black_list(uid_t uid, GList **privilege_list); + #ifdef __cplusplus } #endif diff --git a/capi/include/privilege_manager.h b/capi/include/privilege_manager.h index f616a70..b4f53f0 100755 --- a/capi/include/privilege_manager.h +++ b/capi/include/privilege_manager.h @@ -105,7 +105,7 @@ EXPORT_API int privilege_manager_verify_privilege(uid_t uid, const char* api_ver 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); /** - * @brief set privilege black list accoring to the given uid and privilege list + * @brief set dpm privilege black list accoring to the given uid and privilege list * @remarks @a privilege_list must be released by you * @param [in] uid The uid * @param [in] package_type The privilege_manager_pacakge_type_e @@ -118,7 +118,7 @@ EXPORT_API int privilege_manager_get_mapped_privilege_list(const char* api_versi EXPORT_API int privilege_manager_set_black_list(int uid, privilege_manager_package_type_e package_type, GList* privilege_list); /** - * @brief unset privilege black list accoring to the given uid and privilege list + * @brief unset dpm privilege black list accoring to the given uid and privilege list * @remarks @a privilege_list must be released by you * @param [in] uid The uid * @param [in] package_type The privilege_manager_pacakge_type_e @@ -131,6 +131,30 @@ EXPORT_API int privilege_manager_set_black_list(int uid, privilege_manager_packa EXPORT_API int privilege_manager_unset_black_list(int uid, privilege_manager_package_type_e package_type, GList* privilege_list); /** + * @brief set mdm privilege black list accoring to the given uid and privilege list + * @remarks @a privilege_list must be released by you + * @param [in] uid The uid + * @param [in] privilege_list The privilege list to set as black list + * @retrun 0 on success, otherwise a nonzero error value + * @retval #PRVMGR_ERR_NONE Successful + * @retval #PRVMGR_ERR_INVALID_PARAMETER Invalid parameter + * @retval #PRVMGR_ERR_INTERNAL_ERROR Internal error + */ +EXPORT_API int privilege_manager_set_mdm_black_list(uid_t uid, GList* privilege_list); + +/** + * @brief unset mdm privilege black list accoring to the given uid and privilege list + * @remarks @a privilege_list must be released by you + * @param [in] uid The uid + * @param [in] privilege_list The privilege list to unset from black list + * @retrun 0 on success, otherwise a nonzero error value + * @retval #PRVMGR_ERR_NONE Successful + * @retval #PRVMGR_ERR_INVALID_PARAMETER Invalid parameter + * @retval #PRVMGR_ERR_INTERNAL_ERROR Internal error + */ +EXPORT_API int privilege_manager_unset_mdm_black_list(uid_t uid, GList* privilege_list); + +/** * @brief verify metadata level in the metadata list. * @remarks @a metadata_list must be released with free() by you. * @remarks @a error_messsage must be released with free() by you. diff --git a/capi/res/dbspace/mobile_privacy_whitelist.csv b/capi/res/dbspace/mobile_privacy_whitelist.csv index 886d372..29d96a2 100644 --- a/capi/res/dbspace/mobile_privacy_whitelist.csv +++ b/capi/res/dbspace/mobile_privacy_whitelist.csv @@ -83,4 +83,3 @@ ug-bluetooth-efl,*-location,0 ug-setting-mobileap-efl,*-location,0 ug-setting-wifidirect-efl,*-location,0 wifi-efl-ug,*-location,0 -org.tizen.memo,*-location,0 diff --git a/capi/src/privilege_db_manager.c b/capi/src/privilege_db_manager.c index 87704ee..661d81d 100755 --- a/capi/src/privilege_db_manager.c +++ b/capi/src/privilege_db_manager.c @@ -90,8 +90,6 @@ int __initialize_db(privilege_db_type_e type, sqlite3 ** db, privilege_db_manage return PRIVILEGE_DB_MANAGER_ERR_INVALID_TYPE; } - _LOGD("DB PATH = %s", db_path); - if (access(db_path, F_OK) == -1 && errno == ENOENT) return PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY; @@ -817,7 +815,11 @@ int privilege_db_manager_get_black_list(privilege_manager_policy_type_e policy_t if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) return ret; _LOGD("Get privilege_name from %s where uid = %d, package_type = %d", __get_policy_table(policy_type), uid, package_type); - char* sql = sqlite3_mprintf("select privilege_name from %Q where uid=%d and package_type=%d", __get_policy_table(policy_type), uid, package_type); + char* sql = NULL; + if (policy_type == PRIVILEGE_MANAGER_POLICY_TYPE_DISABLE) + sql = sqlite3_mprintf("select privilege_name from %Q where (uid=%d or uid=%d)", __get_policy_table(policy_type), uid, GLOBAL_USER); + else if (policy_type == PRIVILEGE_MANAGER_POLICY_TYPE_PREVENT) + sql = sqlite3_mprintf("select privilege_name from %Q where uid=%d and package_type=%d", __get_policy_table(policy_type), uid, package_type); TryReturn(sql != NULL, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL); if (ret != SQLITE_OK) { @@ -858,7 +860,11 @@ int privilege_db_manager_set_black_list(privilege_manager_policy_type_e policy_t for (l = privilege_list; l != NULL; l = l->next) { char *privilege_name = (char *)l->data; _LOGD("insert into %s uid = %d, package_type = %d, privilege_name = %s", __get_policy_table(policy_type), uid, package_type, privilege_name); - char* sql = sqlite3_mprintf("insert or ignore into %Q (uid, package_type, privilege_name) values (%d, %d, %Q)", __get_policy_table(policy_type), uid, package_type, privilege_name); + char* sql = NULL; + if (policy_type == PRIVILEGE_MANAGER_POLICY_TYPE_DISABLE) + sql = sqlite3_mprintf("insert or ignore into %Q (uid, privilege_name) values (%d, %Q)", __get_policy_table(policy_type), uid, privilege_name); + else if (policy_type == PRIVILEGE_MANAGER_POLICY_TYPE_PREVENT) + sql = sqlite3_mprintf("insert or ignore into %Q (uid, package_type, privilege_name) values (%d, %d, %Q)", __get_policy_table(policy_type), uid, package_type, privilege_name); TryReturn(sql != NULL, sqlite3_exec(db, "ROLLBACK TRANSACTION", NULL, NULL, NULL); __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL); if (ret != SQLITE_OK) { @@ -895,7 +901,11 @@ int privilege_db_manager_unset_black_list(privilege_manager_policy_type_e policy for (l = privilege_list; l != NULL; l = l->next) { char *privilege_name = (char *)l->data; _LOGD("delete from %s where uid = %d, package_type = %d, privilege_name = %s", __get_policy_table(policy_type), uid, package_type, privilege_name); - char* sql = sqlite3_mprintf("delete from %Q where uid=%d and package_type=%d and privilege_name=%Q", __get_policy_table(policy_type), uid, package_type, privilege_name); + char* sql = NULL; + if (policy_type == PRIVILEGE_MANAGER_POLICY_TYPE_DISABLE) + sql = sqlite3_mprintf("delete from %Q where uid=%d and privilege_name=%Q", __get_policy_table(policy_type), uid, privilege_name); + else if (policy_type == PRIVILEGE_MANAGER_POLICY_TYPE_PREVENT) + sql = sqlite3_mprintf("delete from %Q where uid=%d and package_type=%d and privilege_name=%Q", __get_policy_table(policy_type), uid, package_type, privilege_name); TryReturn(sql != NULL, sqlite3_exec(db, "ROLLBACK TRANSACTION", NULL, NULL, NULL); __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL); if (ret != SQLITE_OK) { diff --git a/capi/src/privilege_info.c b/capi/src/privilege_info.c index 386ebc3..2cf3d3f 100755 --- a/capi/src/privilege_info.c +++ b/capi/src/privilege_info.c @@ -705,3 +705,13 @@ int privilege_info_get_black_list(int uid, privilege_manager_package_type_e pack ret = PRVMGR_ERR_INTERNAL_ERROR; return ret; } + +int privilege_info_get_mdm_black_list(uid_t uid, GList **privilege_list) +{ + int ret = privilege_db_manager_get_black_list(PRIVILEGE_MANAGER_POLICY_TYPE_DISABLE, uid, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_NONE, privilege_list); + if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE) + ret = PRVMGR_ERR_NONE; + else + ret = PRVMGR_ERR_INTERNAL_ERROR; + return ret; +} diff --git a/capi/src/privilege_manager.c b/capi/src/privilege_manager.c index e1b93c1..deb1720 100755 --- a/capi/src/privilege_manager.c +++ b/capi/src/privilege_manager.c @@ -507,6 +507,26 @@ int privilege_manager_unset_black_list(int uid, privilege_manager_package_type_e return ret; } +int privilege_manager_set_mdm_black_list(uid_t uid, GList *privilege_list) +{ + TryReturn(privilege_list != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege_list is NULL."); + + int ret = privilege_db_manager_set_black_list(PRIVILEGE_MANAGER_POLICY_TYPE_DISABLE, uid, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_NONE, privilege_list); + if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) + ret = PRVMGR_ERR_INTERNAL_ERROR; + return ret; +} + +int privilege_manager_unset_mdm_black_list(uid_t uid, GList *privilege_list) +{ + TryReturn(privilege_list != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege_list is NULL."); + + int ret = privilege_db_manager_unset_black_list(PRIVILEGE_MANAGER_POLICY_TYPE_DISABLE, uid, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_NONE, privilege_list); + if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) + ret = PRVMGR_ERR_INTERNAL_ERROR; + return ret; +} + int privilege_manager_verify_metadata(const char* api_version, GList *metadata_list, privilege_manager_visibility_e visibility, char **error_message) { return privilege_manager_verify_privilege(0, api_version, PRVMGR_PACKAGE_TYPE_METADATA, metadata_list, visibility, error_message); diff --git a/test/tc-common.c b/test/tc-common.c index 2fbed51..6ee521f 100755 --- a/test/tc-common.c +++ b/test/tc-common.c @@ -81,6 +81,20 @@ char* __get_result_string(char type, int ret) return "FAIL"; } +char* __get_privilege_type_string(privilege_manager_privilege_type_e type) +{ + switch (type) { + case PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL: + return "PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL"; + case PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY: + return "PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY"; + case PRIVILEGE_MANAGER_PRIVILEGE_TYPE_BLACKLIST: + return "PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY"; + default: + return "None of privilege_manager_privilege_type_e"; + } +} + /* shows error_message returned by privilege_manager_verify_privilege() */ void __print_error_message(char *error_message) { diff --git a/test/tc-common.h b/test/tc-common.h index bfe1dff..e8f665f 100755 --- a/test/tc-common.h +++ b/test/tc-common.h @@ -47,6 +47,7 @@ void __print_nline(); void __print_test_func(); char* __get_result_string(char type, int ret); +char* __get_privilege_type_string(privilege_manager_privilege_type_e type); void __print_error_message(char *error_message); typedef enum { diff --git a/test/tc-privilege-black-list.c b/test/tc-privilege-black-list.c index aa57bb7..fe8486b 100755 --- a/test/tc-privilege-black-list.c +++ b/test/tc-privilege-black-list.c @@ -7,7 +7,7 @@ #include #include "tc-common.h" -static void __test_black_list_set_unset() +static void __test_dpm_black_list_set_unset() { int ret = 0; GList *black_list; @@ -102,7 +102,7 @@ static void __test_black_list_set_unset() } -static void __test_black_list_check() +static void __test_dpm_black_list_check() { GList *black_list = NULL; int ret = 0; @@ -168,7 +168,7 @@ static void __test_black_list_check() gfree(privilege_list); } -static void __test_black_list_verify_privilege() +static void __test_dpm_black_list_verify_privilege() { GList *black_list = NULL; char *error_message = NULL; @@ -237,6 +237,189 @@ static void __test_black_list_verify_privilege() } +void __test_mdm_black_list_set_unset() +{ + GList *black_list = NULL; + int ret = 0; + + __color_to_bold_yellow(); + printf("\nTest black list set/unset/get\n\n"); + __color_to_origin(); + + __tcinfo(goal, "uid = 0, Get wrt black list"); + ret = privilege_info_get_mdm_black_list(0, &black_list); + __tcinfo(expect, PRVMGR_ERR_NONE); + __print_result('m', ret); + __print_privilege_list(black_list); + __print_line(); + gfree(black_list); + + __tcinfo(goal, "uid = 0, Add privileges"); + __privinfo("http://tizen.org/privilege/aaa", NULL, NULL); + __privinfo("http://tizen.org/privilege/bbb", NULL, NULL); + __privinfo("http://tizen.org/privilege/ccc", NULL, NULL); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_manager_set_mdm_black_list(0, privilege_list); + __print_result('m', ret); + __print_line(); + gfree(privilege_list); + + __tcinfo(goal, "uid = 0, Get mdm black list"); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_info_get_mdm_black_list(0, &black_list); + __print_result('m', ret); + __print_privilege_list(black_list); + __print_line(); + gfree(black_list); + black_list = NULL; + + __tcinfo(goal, "uid = 0, Add privileges -- Add duplicated privileges"); + __privinfo("http://tizen.org/privilege/bbb", NULL, NULL); + __privinfo("http://tizen.org/privilege/cccc", NULL, NULL); + __privinfo("http://tizen.org/privilege/ddd", NULL, NULL); + __privinfo("http://tizen.org/privilege/eee", NULL, NULL); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_manager_set_mdm_black_list(0, privilege_list); + __print_result('m', ret); + __print_line(); + gfree(privilege_list); + + __tcinfo(goal, "uid = 0, Get mdm black list"); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_info_get_mdm_black_list(0, &black_list); + __print_result('m', ret); + __print_privilege_list(black_list); + __print_line(); + gfree(black_list); + black_list = NULL; + + __tcinfo(goal, "uid = 0, Remove wrt privileges"); + __privinfo("http://tizen.org/privilege/cccc", NULL, NULL); + __privinfo("http://tizen.org/privilege/ddd", NULL, NULL); + __privinfo("http://tizen.org/privilege/eee", NULL, NULL); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_manager_unset_mdm_black_list(0, privilege_list); + __print_result('m', ret); + __print_line(); + gfree(privilege_list); + + __tcinfo(goal, "uid = 0, Get mdm black list"); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_info_get_mdm_black_list(0, &black_list); + __print_result('m', ret); + __print_privilege_list(black_list); + __print_line(); + + __tcinfo(goal, "uid = 0, Remove all mdm black list"); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_manager_unset_mdm_black_list(0, black_list); + __print_result('m', ret); + __print_line(); + gfree(black_list); + black_list = NULL; + + __tcinfo(goal, "uid = 0, Get mdm black list"); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_info_get_mdm_black_list(0, &black_list); + __print_result('m', ret); + __print_privilege_list(black_list); + __print_line(); + gfree(black_list); +} + +void __test_mdm_black_list_type() +{ + int ret = 0; + privilege_manager_privilege_type_e type; + + __print_line(); + __tcinfo(goal, "uid = 0, Add mdm black list privileges"); + __privinfo("http://tizen.org/privilege/aaa", NULL, NULL); + __privinfo("http://tizen.org/privilege/ccc", NULL, NULL); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_manager_set_mdm_black_list(0, privilege_list); + __print_result('m', ret); + __print_line(); + + __tcinfo(goal, "Is disabled privilege"); + printf("uid = 0, privilege = http://tizen.org/privilege/aaa\n"); + ret = privilege_db_manager_is_disabled_privilege(0, "http://tizen.org/privilege/aaa"); + printf("ret = %d\n", ret); + if (ret == 1) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail. ret = %s,\n", __get_result_string('d', ret)); + __color_to_origin(); + } + __print_line(); + + __tcinfo(goal, "Is NOT disabled privilege"); + printf("uid = 0, privilege = http://tizen.org/privilege/xxx\n"); + ret = privilege_db_manager_is_disabled_privilege(0, "http://tizen.org/privilege/xxx"); + printf("ret = %d\n", ret); + if (ret == 0) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail. ret = %s,\n", __get_result_string('d', ret)); + __color_to_origin(); + } + __print_line(); + + __tcinfo(goal, "Get privilege type. Privilege is mdm blacklisted"); + printf("uid = 0, privilege = http://tizen.org/privilege/aaa\n"); + ret = privilege_info_get_privilege_type(0, "org.zzz.zzz", "http://tizen.org/privilege/aaa", &type); + printf("type = %s\n", __get_privilege_type_string(type)); + if (ret == PRVMGR_ERR_NONE && type == PRIVILEGE_MANAGER_PRIVILEGE_TYPE_BLACKLIST) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail. ret = %s, type = %s\n", __get_result_string('m', ret), __get_privilege_type_string(type)); + __color_to_origin(); + } + __print_line(); + + __tcinfo(goal, "Get privilege type. Privilege is NOT mdm blacklisted"); + printf("uid = 0, privilege = http://tizen.org/privilege/xxx\n"); + ret = privilege_info_get_privilege_type(0, "org.zzz.zzz", "http://tizen.org/privilege/xxx", &type); + printf("type = %s\n", __get_privilege_type_string(type)); + if (ret == PRVMGR_ERR_NONE && type == PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail. ret = %s, type = %s\n", __get_result_string('m', ret), __get_privilege_type_string(type)); + __color_to_origin(); + } + __print_line(); + + __tcinfo(goal, "uid = 0, Remove all mdm black list privileges"); + __privinfo("http://tizen.org/privilege/aaa", NULL, NULL); + __privinfo("http://tizen.org/privilege/ccc", NULL, NULL); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_manager_unset_mdm_black_list(0, privilege_list); + __print_result('m', ret); + __print_line(); + + gfree(privilege_list); +} + int main() { __print_dline(); @@ -244,14 +427,24 @@ int main() __tcinfo(function, "privilege_manager_set_black_list"); __tcinfo(function, "privilege_manager_unset_black_list"); __tcinfo(function, "privilege_info_get_black_list"); - __test_black_list_set_unset(); + __test_dpm_black_list_set_unset(); __tcinfo(function, "privilege_db_manager_check_black_list"); __tcinfo(function, "privilege_info_get_black_list"); - __test_black_list_check(); + __test_dpm_black_list_check(); __tcinfo(function, "privilege_manager_verify_privilege"); - __test_black_list_verify_privilege(); + __test_dpm_black_list_verify_privilege(); + + __tcinfo(function, "privilege_manager_set_mdm_black_list"); + __tcinfo(function, "privilege_manager_unset_mdm_black_list"); + __tcinfo(function, "privilege_info_get_mdm_black_list"); + __test_mdm_black_list_set_unset(); + + __tcinfo(function, "privilege_info_get_privilege_type"); + __tcinfo(function, "privilege_db_manager_is_disabled_privilge"); + __test_mdm_black_list_type(); + __print_dline(); diff --git a/test/tc-privilege-db-manager.c b/test/tc-privilege-db-manager.c index 2809391..d28a544 100755 --- a/test/tc-privilege-db-manager.c +++ b/test/tc-privilege-db-manager.c @@ -504,46 +504,6 @@ void __test_privilege_db_manager_is_privacy_white_list() } -void __test_privilege_db_manager_is_disabled_privilege() -{ - int ret = 0; - __print_line(); - printf("uid = 5001, privilege: http://tizen.org/privilege/xxxxx\n"); - printf("is not disabled\n"); - ret = privilege_db_manager_is_disabled_privilege(5001, "http://tizen.org/privilege/xxxxx"); - printf("ret = %d\n", ret); - if (ret == 0) { - success_cnt++; - __color_to_green(); - printf("success\n"); - __color_to_origin(); - } else { - fail_cnt++; - __color_to_red(); - printf("fail\n"); - __color_to_origin(); - } - - __print_line(); - printf("uid = 0, privilege: http://tizen.org/privilege/yyyyy\n"); - printf("is disabled\n"); - ret = privilege_db_manager_is_disabled_privilege(0, "http://tizen.org/privilege/yyyyy"); - printf("ret = %d\n", ret); - if (ret == 1) { - success_cnt++; - __color_to_green(); - printf("success\n"); - __color_to_origin(); - } else { - fail_cnt++; - __color_to_red(); - printf("fail\n"); - __color_to_origin(); - } - - __print_line(); -} - void __test_privilege_db_manager_get_privacy_id() { int ret = 0; @@ -621,7 +581,6 @@ void __test_privilege_db_manager_is_user_settable() __color_to_origin(); } - __print_line(); printf("pkgid: org.tizen.xxxxxxx\n"); printf("privilege: http://tizen.org/privacy/location\n"); @@ -681,9 +640,6 @@ int main() __tcinfo(function, "privilege_db_manager_is_privacy_white_list"); __test_privilege_db_manager_is_privacy_white_list(); - __tcinfo(function, "privilege_db_manager_is_disabled_privilege"); - __test_privilege_db_manager_is_disabled_privilege(); - __tcinfo(function, "privilege_db_manager_get_privacy_id"); __test_privilege_db_manager_get_privacy_id(); diff --git a/test/tc-privilege-info.c b/test/tc-privilege-info.c index ee0b618..2f2e583 100755 --- a/test/tc-privilege-info.c +++ b/test/tc-privilege-info.c @@ -607,19 +607,6 @@ static void __test_privilege_info_is_privacy2() } #endif -static char* __get_privilege_type_string(privilege_manager_privilege_type_e type) -{ - switch (type) { - case PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL: - return "PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL"; - case PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY: - return "PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY"; - case PRIVILEGE_MANAGER_PRIVILEGE_TYPE_BLACKLIST: - return "PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY"; - default: - return "None of privilege_manager_privilege_type_e"; - } -} static void __test_privilege_info_get_privilege_type() { int ret = 0; @@ -670,6 +657,15 @@ static void __test_privilege_info_get_privilege_type() printf("uid = 0\n"); printf("pkgid = org.tizen.testtest\n"); printf("privilege = http://tizen.org/privilege/yyyyy\n"); + printf("set mdm black list for above condition\n"); + gfree(privilege_list); + __print_line(); + __privinfo("http://tizen.org/privilege/yyyyy", NULL, NULL); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_manager_set_mdm_black_list(0, privilege_list); + __print_result('m', ret); + __print_line(); + printf("check privilege type\n"); ret = privilege_info_get_privilege_type(0, "org.tizen.testtest", "http://tizen.org/privilege/yyyyy", &type); printf("expected type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_BLACKLIST\n"); if (ret == PRVMGR_ERR_NONE && type == PRIVILEGE_MANAGER_PRIVILEGE_TYPE_BLACKLIST) { @@ -683,6 +679,12 @@ static void __test_privilege_info_get_privilege_type() printf("fail. ret = %s, type = %s\n", __get_result_string('m', ret), __get_privilege_type_string(type)); __color_to_origin(); } + __print_line(); + printf("unset mdm black list for above condition\n"); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_manager_unset_mdm_black_list(0, privilege_list); + __print_result('m', ret); + gfree(privilege_list); __print_line(); printf("uid = 5001\n"); -- 2.7.4 From 0ff87ee55d15eaf520ed4ebea8bc115646041c2b Mon Sep 17 00:00:00 2001 From: Yunjin Lee Date: Tue, 3 Jan 2017 20:47:03 +0900 Subject: [PATCH 05/16] Fix not exist privilege check bug of web under 2.3.1 Change-Id: Icb1aebf4239ca4c31bf5bc24686da0f034c26135 Signed-off-by: Yunjin Lee --- capi/src/privilege_manager.c | 6 ++++-- test/tc-privilege-manager.c | 7 +++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/capi/src/privilege_manager.c b/capi/src/privilege_manager.c index deb1720..741d76a 100755 --- a/capi/src/privilege_manager.c +++ b/capi/src/privilege_manager.c @@ -308,8 +308,10 @@ int privilege_manager_verify_privilege(uid_t uid, const char *api_version, privi } ret = __privilege_manager_check_privilege_list(api_version, privilege_name, valid_privilege_list, &privilege_level_id, &changed_to, &valid_api_version); - if (is_valid_wrt_version == 0) - ret = PRVMGR_ERR_NONE; + if (is_valid_wrt_version == 0) { + if (strstr(privilege_name, "/internal/") == NULL) + ret = PRVMGR_ERR_NONE; + } if (ret == PRVMGR_ERR_NO_EXIST_PRIVILEGE) { memset(message, 0, MESSAGE_SIZE); diff --git a/test/tc-privilege-manager.c b/test/tc-privilege-manager.c index 47f52aa..1bf9478 100755 --- a/test/tc-privilege-manager.c +++ b/test/tc-privilege-manager.c @@ -360,6 +360,13 @@ static void __test_privilege_manager_verify_privilege() __tcinfo(expect, PRVMGR_ERR_NONE); __privilege_manager_verify_privilege(); + __tcinfo(version_type, "2.2.1", "wrt"); + __tcinfo(goal, "valid api_version == 2.2.1, check internal privilege"); + __privinfo("http://tizen.org/privilege/internal/public", "Public", NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + #ifdef PROFILE_TYPE_MOBILE /* 2.3 core - mobile */ -- 2.7.4 From e17c957e703a16775b301c9b4401c0657e45aefe Mon Sep 17 00:00:00 2001 From: Yunjin Lee Date: Wed, 4 Jan 2017 15:20:44 +0900 Subject: [PATCH 06/16] Handle black list check error properly Change-Id: I5756f03a099e67dc31f321d99eeaf12cd0c4a1e6 Signed-off-by: Yunjin Lee --- capi/src/privilege_db_manager.c | 10 ++++++---- capi/src/privilege_manager.c | 5 ++++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/capi/src/privilege_db_manager.c b/capi/src/privilege_db_manager.c index 661d81d..434c3ac 100755 --- a/capi/src/privilege_db_manager.c +++ b/capi/src/privilege_db_manager.c @@ -157,21 +157,23 @@ int privilege_db_manager_check_black_list(int uid, privilege_db_manager_package_ int count = 0; ret = __initialize_db(PRIVILEGE_DB_TYPE_POLICY_RO, &db, package_type); - if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) - return ret; + if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) { + _LOGE("db initialize failed. ret = %d", ret); + return -ret; + } char *privilege_list_str = NULL; ret = __make_privilege_list_str(privilege_list, &privilege_list_str); _LOGD("check black list with uid = %d, package_type = %d, privilege_list = %s", uid, package_type, privilege_list_str); char *sql = sqlite3_mprintf("select distinct privilege_name from prevent_list where privilege_name in(%s)and uid=%d and package_type=%d", privilege_list_str, uid, package_type); sqlite3_free(privilege_list_str); - TryReturn(sql != NULL, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); + TryReturn(sql != NULL, __finalize_db(db, stmt, sql), -PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); 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)); __finalize_db(db, stmt, sql); - return PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY; + return -PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY; } do { diff --git a/capi/src/privilege_manager.c b/capi/src/privilege_manager.c index 741d76a..a3ef4f2 100755 --- a/capi/src/privilege_manager.c +++ b/capi/src/privilege_manager.c @@ -272,11 +272,14 @@ int privilege_manager_verify_privilege(uid_t uid, const char *api_version, privi /* Check black list */ ret = privilege_db_manager_check_black_list(uid, package_type, privilege_list); - if (ret == PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY) { + if (ret == -PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY) { _LOGE("[FAIL TO CALL FUNCTION] black list policy db cannot be found"); } else if (ret > 0) { *error_message = strdup("[PRVMGR_ERR_USING_BANNED_PRIVILEGE] Application manifest contains banned privilege(s) declared by the DPM"); return PRVMGR_ERR_USING_BANNED_PRIVILEGE; + } else if (ret < 0) { + _LOGE("privilege_db_manager_check_black_list failed. ret = %d", ret); + return PRVMGR_ERR_INTERNAL_ERROR; } /* Get valid privilege list */ -- 2.7.4 From 65cd631b2a6a15f615b3a8519bfe024271e01284 Mon Sep 17 00:00:00 2001 From: Yunjin Lee Date: Fri, 13 Jan 2017 16:12:51 +0900 Subject: [PATCH 07/16] Remove negative symbol from return value - Error enum was modified to negative value hence no need to return error enum with negative symbol Change-Id: I4c359d5389be4344d07936505679186ce082422c Signed-off-by: Yunjin Lee --- capi/src/privilege_db_manager.c | 10 +++++----- capi/src/privilege_manager.c | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/capi/src/privilege_db_manager.c b/capi/src/privilege_db_manager.c index 434c3ac..5dc8f6c 100755 --- a/capi/src/privilege_db_manager.c +++ b/capi/src/privilege_db_manager.c @@ -159,7 +159,7 @@ int privilege_db_manager_check_black_list(int uid, privilege_db_manager_package_ ret = __initialize_db(PRIVILEGE_DB_TYPE_POLICY_RO, &db, package_type); if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) { _LOGE("db initialize failed. ret = %d", ret); - return -ret; + return ret; } char *privilege_list_str = NULL; @@ -167,13 +167,13 @@ int privilege_db_manager_check_black_list(int uid, privilege_db_manager_package_ _LOGD("check black list with uid = %d, package_type = %d, privilege_list = %s", uid, package_type, privilege_list_str); char *sql = sqlite3_mprintf("select distinct privilege_name from prevent_list where privilege_name in(%s)and uid=%d and package_type=%d", privilege_list_str, uid, package_type); sqlite3_free(privilege_list_str); - TryReturn(sql != NULL, __finalize_db(db, stmt, sql), -PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); + TryReturn(sql != NULL, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); 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)); __finalize_db(db, stmt, sql); - return -PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY; + return PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY; } do { @@ -479,9 +479,9 @@ int privilege_db_manager_is(char type, const char* privilege) TryReturn(ret == PRIVILEGE_DB_MANAGER_ERR_NONE, , ret, "[PRIVILEGE_DB_MANAGER] DB INITIALIZE FAIL"); char *sql = sqlite3_mprintf("select privilege_name,is_privacy, is_internal from valid_privilege_info where privilege_name=%Q", privilege); - TryReturn(sql != NULL, __finalize_db(db, stmt, sql), -PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); + TryReturn(sql != NULL, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL); - TryReturn(ret == SQLITE_OK, __finalize_db(db, stmt, sql), -PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] fail to prepare database : %s", sqlite3_errmsg(db)); + TryReturn(ret == SQLITE_OK, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] fail to prepare database : %s", sqlite3_errmsg(db)); ret = sqlite3_step(stmt); if (ret == SQLITE_ROW) { diff --git a/capi/src/privilege_manager.c b/capi/src/privilege_manager.c index a3ef4f2..fc7ce6b 100755 --- a/capi/src/privilege_manager.c +++ b/capi/src/privilege_manager.c @@ -272,7 +272,7 @@ int privilege_manager_verify_privilege(uid_t uid, const char *api_version, privi /* Check black list */ ret = privilege_db_manager_check_black_list(uid, package_type, privilege_list); - if (ret == -PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY) { + if (ret == PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY) { _LOGE("[FAIL TO CALL FUNCTION] black list policy db cannot be found"); } else if (ret > 0) { *error_message = strdup("[PRVMGR_ERR_USING_BANNED_PRIVILEGE] Application manifest contains banned privilege(s) declared by the DPM"); -- 2.7.4 From 0389f38e9b5896b88ba75bf2bf5791b99cd9da18 Mon Sep 17 00:00:00 2001 From: Yunjin Lee Date: Mon, 16 Jan 2017 16:05:58 +0900 Subject: [PATCH 08/16] Support 2.3 issued web privilege set of mobile/wearable profile for 2.2.x - There's no platform version 2.2.1 indeed but requirement of backward compatibility exist by product released with version 2.2.x hence change platform 2.3 issued privilege's from version to 2.2.1 (mapping table only) - The list of modified privileges are as follows(mobile/wearable) : account.read, account.write, audiorecorder, call, camera, healthinfo, internet, nfc.cardemulation, volume.set Change-Id: Ifb45f3c19bd5d0cfa7fb99a51679d8d209c5c9cc Signed-off-by: Yunjin Lee --- capi/res/dbspace/wrt_privilege_mapping.csv | 32 ++++++++++++++++-------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/capi/res/dbspace/wrt_privilege_mapping.csv b/capi/res/dbspace/wrt_privilege_mapping.csv index 7fd407d..210b76b 100644 --- a/capi/res/dbspace/wrt_privilege_mapping.csv +++ b/capi/res/dbspace/wrt_privilege_mapping.csv @@ -1,16 +1,18 @@ +#There's no platform version 2.2.1 indeed but requirement of backward compatibility exist by product released with version 2.2.x hence change platform 2.3 issued privilege's from version to 2.2.1 +#The list of modified privileges are as follows: account.read, account.write, audiorecorder, call, camera, healthinfo, internet, nfc.cardemulation, volume.set #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, +mobile,http://tizen.org/privilege/account.read,2.2.1,9.9,http://tizen.org/privilege/account.read,"There's no platform version 2.2 indeed but requirement of backward compatibility exist hence change" +mobile,http://tizen.org/privilege/account.read,2.2.1,9.9,http://tizen.org/privilege/internal/buxton/account.read, +mobile,http://tizen.org/privilege/account.write,2.2.1,9.9,http://tizen.org/privilege/account.write, +mobile,http://tizen.org/privilege/account.write,2.2.1,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/appmanager.certificate, 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, +wearable,http://tizen.org/privilege/audiorecorder,2.2.1,9.9,http://tizen.org/privilege/recorder, +wearable,http://tizen.org/privilege/audiorecorder,2.2.1,9.9,http://tizen.org/privilege/internal/buxton/camcorder, mobile,http://tizen.org/privilege/bluetooth,2.4,9.9,http://tizen.org/privilege/bluetooth, wearable,http://tizen.org/privilege/bluetooth,3,9.9,http://tizen.org/privilege/bluetooth, mobile,http://tizen.org/privilege/bluetooth.admin,1,2.4,http://tizen.org/privilege/bluetooth,Bluetooth.* was changed to bluetooth @@ -28,7 +30,7 @@ mobile,http://tizen.org/privilege/bookmark.write,2.1,9.9,http://tizen.org/privil 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, +common,http://tizen.org/privilege/call,2.2.1,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, @@ -36,9 +38,9 @@ mobile,http://tizen.org/privilege/callhistory.write,2,9.9,http://tizen.org/privi 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, +wearable,http://tizen.org/privilege/camera,2.2.1,9.9,http://tizen.org/privilege/camera, +wearable,http://tizen.org/privilege/camera,2.2.1,9.9,http://tizen.org/privilege/recorder, +wearable,http://tizen.org/privilege/camera,2.2.1,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, @@ -53,8 +55,8 @@ common,http://tizen.org/privilege/download,2,9.9,http://tizen.org/privilege/down 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/fullscreen, -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/healthinfo,2.2.1,9.9,http://tizen.org/privilege/healthinfo, +common,http://tizen.org/privilege/internet,2.2.1,9.9,http://tizen.org/privilege/internet, mobile,http://tizen.org/privilege/ime,2.4,9.9,http://tizen.org/privilege/ime, wearable,http://tizen.org/privilege/ime,3,9.9,http://tizen.org/privilege/ime, mobile,http://tizen.org/privilege/led,2.4,9.9,http://tizen.org/privilege/led, @@ -87,8 +89,8 @@ wearable,http://tizen.org/privilege/nfc.admin,2.3.1,9.9,http://tizen.org/privile 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, +mobile,http://tizen.org/privilege/nfc.cardemulation,2.2.1,9.9,http://tizen.org/privilege/internal/buxton/nfc.cardemulation, +mobile,http://tizen.org/privilege/nfc.cardemulation,2.2.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, 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, @@ -124,7 +126,7 @@ common,http://tizen.org/privilege/system,2.1,9.9,http://tizen.org/privilege/tele common,http://tizen.org/privilege/systemmanager,2.1,2.3.1,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/unlimitedstorage, -common,http://tizen.org/privilege/volume.set,2.3,9.9,http://tizen.org/privilege/volume.set, +common,http://tizen.org/privilege/volume.set,2.2.1,9.9,http://tizen.org/privilege/volume.set, mobile,http://tizen.org/privilege/websetting,2.2,2.4,http://tizen.org/privilege/websetting, wearable,http://tizen.org/privilege/widget.viewer,2.3.2,9.9,http://tizen.org/privilege/widget.viewer, mobile,http://tizen.org/privilege/widget.viewer,3,9.9,http://tizen.org/privilege/widget.viewer, -- 2.7.4 From 88112c3f9d12b883a1c7d9caf6a23f29e03faef9 Mon Sep 17 00:00:00 2001 From: Yunjin Lee Date: Fri, 20 Jan 2017 15:17:00 +0900 Subject: [PATCH 09/16] Apply runtime askuser-disable on new API Change-Id: I9871901ef1c0e12cbf53ae021df69b4e974ad711 Signed-off-by: Yunjin Lee --- capi/src/privilege_db_manager.c | 5 +++++ tool/CMakeLists.txt | 1 + 2 files changed, 6 insertions(+) diff --git a/capi/src/privilege_db_manager.c b/capi/src/privilege_db_manager.c index 5dc8f6c..74a1588 100755 --- a/capi/src/privilege_db_manager.c +++ b/capi/src/privilege_db_manager.c @@ -543,6 +543,11 @@ int privilege_db_manager_is_privacy_white_list(const char* pkgid, const char* pr #ifdef DISABLE_ASKUSER return 1; #endif + if (access(ASKUSER_RUNTIME_DISABLE_PATH, F_OK) == 0) { + _LOGD("askuser is disabled in run-time."); + return 1; + } + sqlite3 *db = NULL; sqlite3_stmt *stmt = NULL; int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE); diff --git a/tool/CMakeLists.txt b/tool/CMakeLists.txt index 5c3f40c..d9dc8ad 100755 --- a/tool/CMakeLists.txt +++ b/tool/CMakeLists.txt @@ -30,6 +30,7 @@ ADD_DEFINITIONS(-DPRIVILEGE_INFO_WRT_DB_PATH="wrt_privilege_info.db") ADD_DEFINITIONS(-DPRIVILEGE_MAPPING_CORE_DB_PATH="core_privilege_mapping.db") ADD_DEFINITIONS(-DPRIVILEGE_MAPPING_WRT_DB_PATH="wrt_privilege_mapping.db") ADD_DEFINITIONS(-DPRIVILEGE_POLICY_DB_PATH="policy.db") +ADD_DEFINITIONS(-DASKUSER_RUNTIME_DISABLE_PATH="${TZ_SYS_SHARE}/askuser_disable") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") -- 2.7.4 From 494598ea2359fecd5d4796923d6bf8678e2f32bc Mon Sep 17 00:00:00 2001 From: Yunjin Lee Date: Mon, 23 Jan 2017 14:03:57 +0900 Subject: [PATCH 10/16] Add policy DB update script for mdm blacklist Change-Id: I7c831554c2e643ac31be9be332e0351b5afbb0cb Signed-off-by: Yunjin Lee --- capi/res/dbspace/CMakeLists.txt | 1 + capi/res/dbspace/policy_db_updater.sh | 32 ++++++++++++++++++++++++++++++++ packaging/privilege-checker.spec | 2 ++ 3 files changed, 35 insertions(+) create mode 100755 capi/res/dbspace/policy_db_updater.sh diff --git a/capi/res/dbspace/CMakeLists.txt b/capi/res/dbspace/CMakeLists.txt index 0f8d29a..b93a391 100644 --- a/capi/res/dbspace/CMakeLists.txt +++ b/capi/res/dbspace/CMakeLists.txt @@ -28,4 +28,5 @@ ADD_CUSTOM_TARGET(privilege-db ALL DEPENDS ${CORE_PRIVILEGE_DB} ${WRT_PRIVILEGE_ INSTALL(FILES ${CORE_PRIVILEGE_DB} ${WRT_PRIVILEGE_DB} ${CORE_PRIVILEGE_MAPPING_DB} ${WRT_PRIVILEGE_MAPPING_DB} DESTINATION ${DATADIR}/privilege-manager/) INSTALL(FILES ${POLICY_DB} ${POLICY_DB}-journal DESTINATION ${TZ_SYS_DB}/) +INSTALL(PROGRAMS policy_db_updater.sh DESTINATION ${DATADIR}/privilege-manager/) diff --git a/capi/res/dbspace/policy_db_updater.sh b/capi/res/dbspace/policy_db_updater.sh new file mode 100755 index 0000000..987c6f6 --- /dev/null +++ b/capi/res/dbspace/policy_db_updater.sh @@ -0,0 +1,32 @@ +#!/bin/sh -e + +PATH=/bin:/usr/bin:/sbin:/usr/sbin + +. /etc/tizen-platform.conf + +DB_NAME=${TZ_SYS_DB}/.policy.db +MDM_BLACKLIST=${TZ_SYS_RO_SHARE}/security-config/mdm_blacklist + +if [ -a $MDM_BLACKLIST ]; then + echo "mdm blacklist exist" + IFS=$'\n' + for i in `cat $MDM_BLACKLIST` + do + temp=`echo $i | awk '/^#/'` + if [ ! "$temp" = "" ] + then + continue + fi + echo "insert $i" + sqlite3 $DB_NAME "insert or ignore into disable_list values ('376', '${i}');" + done + + echo "Check inserted data" + echo "DPM blacklist..." + sqlite3 $DB_NAME "select * from prevent_list" + echo "" + echo "MDM blacklist..." + sqlite3 $DB_NAME "select * from disable_list" +else + echo "mdm blacklist not exist" +fi diff --git a/packaging/privilege-checker.spec b/packaging/privilege-checker.spec index 0a21e90..2edda78 100644 --- a/packaging/privilege-checker.spec +++ b/packaging/privilege-checker.spec @@ -133,6 +133,7 @@ mkdir -p %{buildroot}/%{TZ_SYS_DB} chsmack -a System %{TZ_SYS_DB}/.policy.db chsmack -a System %{TZ_SYS_DB}/.policy.db-journal %endif +%{_datadir}/privilege-manager/policy_db_updater.sh %postun -n security-privilege-manager -p /sbin/ldconfig @@ -147,6 +148,7 @@ chsmack -a System %{TZ_SYS_DB}/.policy.db-journal %{_datadir}/privilege-manager/.core_privilege_mapping.db %{_datadir}/privilege-manager/.wrt_privilege_info.db %{_datadir}/privilege-manager/.wrt_privilege_mapping.db +%attr(700,root,root) %{_datadir}/privilege-manager/policy_db_updater.sh %config(noreplace) %attr(0660, root, security_fw) /%{TZ_SYS_DB}/.policy.db %config(noreplace) %attr(0660, root, security_fw) /%{TZ_SYS_DB}/.policy.db-journal %endif -- 2.7.4 From c6ea5bcb123ccf11d2864a3a84ba6da063467b5a Mon Sep 17 00:00:00 2001 From: MyungJoo Ham Date: Mon, 14 Nov 2016 19:24:01 +0900 Subject: [PATCH 11/16] Remove Profile Build Dependency: Do it at runtime - This is for Tizen 4.0. : Tizen 4.0 Configurability and Build Blocks require to remove all profile-depending build options in spec files. (No More profile macros!) - It is recommended to distinguish features/profiles at runtime. unless it incurs too much overhead, which requires you to create multiple binaries and subpackages. The configuration file is /etc/privilege-checker.ini For example: $ cat /etc/privilege-checker.ini [General] Profile = mobile $ You can apply same ini file for server-running scenarios. - This has a bit of code cleaning in build scripts. (e.g., BuildRequires is global to all subpackages.) - When you SR this, you need to create JIRA-TRE of: : Add security-privilege-manager-profile_tv for tv profile : Add security-privilege-manager-profile_wearable for wearable profile : Add security-privilege-manager-profile_mobile for wearable profile patchset7: rebased and coding style updated Change-Id: I901bf017cd088bbb657144ad34a8d1209b648f15 Signed-off-by: MyungJoo Ham --- CMakeLists.txt | 9 - capi/CMakeLists.txt | 14 +- capi/include/privilege_private.h | 45 + capi/res/dbspace/CMakeLists.txt | 72 +- capi/src/privilege_db_manager.c | 68 +- capi/src/privilege_info.c | 21 +- packaging/privilege-checker.ini | 3 + packaging/privilege-checker.spec | 124 +- test/CMakeLists.txt | 10 +- test/tc-common.c | 48 + test/tc-common.h | 13 + test/tc-privilege-db-manager.c | 54 +- test/tc-privilege-info.c | 27 +- test/tc-privilege-manager.c | 2566 +++++++++++++++++++------------------- tool/CMakeLists.txt | 10 +- 15 files changed, 1647 insertions(+), 1437 deletions(-) create mode 100644 capi/include/privilege_private.h create mode 100644 packaging/privilege-checker.ini diff --git a/CMakeLists.txt b/CMakeLists.txt index 7510fe5..85f79fb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,15 +14,6 @@ ADD_DEFINITIONS("-Werror -Wall -Wextra") ADD_DEFINITIONS("-DCLIENT_IPC_THREAD") ADD_DEFINITIONS("-DUSE_IPC_EPOLL") -MESSAGE("PROFILE = ${PROFILE}") -IF("${PROFILE}" STREQUAL "wearable") - ADD_DEFINITIONS("-DENABLE_ASKUSER") -ELSEIF("${PROFILE}" STREQUAL "mobile") - ADD_DEFINITIONS("-DENABLE_ASKUSER") -ELSE() - ADD_DEFINITIONS("-DDISABLE_ASKUSER") -ENDIF() - STRING(REGEX MATCH "([^.]*)" API_VERSION "${VERSION}") ADD_DEFINITIONS("-DAPI_VERSION=\"$(API_VERSION)\"") diff --git a/capi/CMakeLists.txt b/capi/CMakeLists.txt index 969e40e..8144187 100644 --- a/capi/CMakeLists.txt +++ b/capi/CMakeLists.txt @@ -8,14 +8,12 @@ SET(PREFIX ${CMAKE_INSTALL_PREFIX}) SET(INC_DIR include) -INCLUDE_DIRECTORIES( - "${INC_DIR}" -) +INCLUDE_DIRECTORIES(${INC_DIR}) SET(pc_requires "glib-2.0") INCLUDE(FindPkgConfig) -pkg_check_modules(${fw_name} REQUIRED dlog pkgmgr-info glib-2.0 sqlite3 libtzplatform-config) +pkg_check_modules(${fw_name} REQUIRED dlog pkgmgr-info glib-2.0 sqlite3 libtzplatform-config iniparser) FOREACH(flag ${${fw_name}_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") ENDFOREACH(flag) @@ -31,14 +29,6 @@ MESSAGE("TZ_SYS_DB= ${TZ_SYS_DB}") ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"") ADD_DEFINITIONS("-DSLP_DEBUG") -MESSAGE("PROFILE_TYPE = ${PROFILE_TYPE}") -IF("${PROFILE_TYPE}" STREQUAL "WEARABLE") - ADD_DEFINITIONS("-DPROFILE_TYPE_WEARABLE") -ELSEIF("${PROFILE_TYPE}" STREQUAL "MOBILE") - ADD_DEFINITIONS("-DPROFILE_TYPE_MOBILE") -ELSEIF("${PROFILE_TYPE}" STREQUAL "TV") - ADD_DEFINITIONS("-DPROFILE_TYPE_TV") -ENDIF() SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=${LIBDIR}") diff --git a/capi/include/privilege_private.h b/capi/include/privilege_private.h new file mode 100644 index 0000000..cfe4768 --- /dev/null +++ b/capi/include/privilege_private.h @@ -0,0 +1,45 @@ +/* + * Copyright(c)2016 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0(the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __TIZEN_SECURITY_PRIVILEGE_PRIVATE_H +#define __TIZEN_SECURITY_PRIVILEGE_PRIVATE_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define INI_PATH "/etc/privilege-checker.ini" +#define INI_KEYWORD_PROFILE "General:Profile" + +typedef enum { + PRIVILEGE_DB_MANAGER_PROFILE_TYPE_COMMON = 0, + PRIVILEGE_DB_MANAGER_PROFILE_TYPE_MOBILE = 1, + PRIVILEGE_DB_MANAGER_PROFILE_TYPE_WEARABLE = 2, + PRIVILEGE_DB_MANAGER_PROFILE_TYPE_TV = 3, + PRIVILEGE_DB_MANAGER_PROFILE_TYPE_UNKNOWN = 0xff, +} privilege_db_manager_profile_type_e; +extern privilege_db_manager_profile_type_e get_priv_profile(); +#define ENABLE_ASKUSER ((get_priv_profile() == PRIVILEGE_DB_MANAGER_PROFILE_TYPE_MOBILE) || \ + (get_priv_profile() == PRIVILEGE_DB_MANAGER_PROFILE_TYPE_WEARABLE)) +#define DISABLE_ASKUSER (!ENABLE_ASKUSER) + + + +#ifdef __cplusplus +} +#endif + +#endif /*__TIZEN_SECURITY_PRIVILEGE_PRIVATE_H */ diff --git a/capi/res/dbspace/CMakeLists.txt b/capi/res/dbspace/CMakeLists.txt index b93a391..c3126ef 100644 --- a/capi/res/dbspace/CMakeLists.txt +++ b/capi/res/dbspace/CMakeLists.txt @@ -4,29 +4,53 @@ SET(CORE_PRIVILEGE_MAPPING_DB ".core_privilege_mapping.db") SET(WRT_PRIVILEGE_MAPPING_DB ".wrt_privilege_mapping.db") SET(POLICY_DB ".policy.db") -IF("${PROFILE_TYPE}" STREQUAL "WEARABLE") - SET(_profile "wearable") -ELSEIF("${PROFILE_TYPE}" STREQUAL "MOBILE") - SET(_profile "mobile") -ELSEIF("${PROFILE_TYPE}" STREQUAL "TV") - SET(_profile "tv") -ENDIF() - -IF("${_profile}" STREQUAL "tv") - ADD_CUSTOM_COMMAND( - OUTPUT ${CORE_PRIVILEGE_DB} ${WRT_PRIVILEGE_DB} ${CORE_PRIVILEGE_MAPPING_DB} ${WRT_PRIVILEGE_MAPPING_DB} ${POLICY_DB} - COMMAND ./tv_core_db_generator.sh && ./tv_wrt_db_generator.sh && ./tv_core_mapping_db_generator.sh && ./tv_wrt_mapping_db_generator.sh && ./policy_db_generator.sh - ) -ELSE() - ADD_CUSTOM_COMMAND( - OUTPUT ${CORE_PRIVILEGE_DB} ${WRT_PRIVILEGE_DB} ${CORE_PRIVILEGE_MAPPING_DB} ${WRT_PRIVILEGE_MAPPING_DB} ${POLICY_DB} - COMMAND ./core_db_generator.sh ${_profile} && ./wrt_db_generator.sh ${_profile} && ./core_mapping_db_generator.sh ${_profile} && ./wrt_mapping_db_generator.sh ${_profile} && ./policy_db_generator.sh - ) -ENDIF() - -ADD_CUSTOM_TARGET(privilege-db ALL DEPENDS ${CORE_PRIVILEGE_DB} ${WRT_PRIVILEGE_DB} ${CORE_PRIVILEGE_MAPPING_DB} ${WRT_PRIVILEGE_MAPPING_DB} ${POLICY_DB}) - -INSTALL(FILES ${CORE_PRIVILEGE_DB} ${WRT_PRIVILEGE_DB} ${CORE_PRIVILEGE_MAPPING_DB} ${WRT_PRIVILEGE_MAPPING_DB} DESTINATION ${DATADIR}/privilege-manager/) -INSTALL(FILES ${POLICY_DB} ${POLICY_DB}-journal DESTINATION ${TZ_SYS_DB}/) +SET(CORE_PRIVILEGE_DB_MOBILE ".core_privilege_info.mobile.db") +SET(WRT_PRIVILEGE_DB_MOBILE ".wrt_privilege_info.mobile.db") +SET(CORE_PRIVILEGE_MAPPING_DB_MOBILE ".core_privilege_mapping.mobile.db") +SET(WRT_PRIVILEGE_MAPPING_DB_MOBILE ".wrt_privilege_mapping.mobile.db") +SET(POLICY_DB_MOBILE ".policy.mobile.db") + +SET(CORE_PRIVILEGE_DB_TV ".core_privilege_info.tv.db") +SET(WRT_PRIVILEGE_DB_TV ".wrt_privilege_info.tv.db") +SET(CORE_PRIVILEGE_MAPPING_DB_TV ".core_privilege_mapping.tv.db") +SET(WRT_PRIVILEGE_MAPPING_DB_TV ".wrt_privilege_mapping.tv.db") +SET(POLICY_DB_TV ".policy.tv.db") + +SET(CORE_PRIVILEGE_DB_WEARABLE ".core_privilege_info.wearable.db") +SET(WRT_PRIVILEGE_DB_WEARABLE ".wrt_privilege_info.wearable.db") +SET(CORE_PRIVILEGE_MAPPING_DB_WEARABLE ".core_privilege_mapping.wearable.db") +SET(WRT_PRIVILEGE_MAPPING_DB_WEARABLE ".wrt_privilege_mapping.wearable.db") +SET(POLICY_DB_WEARABLE ".policy.wearable.db") + +# Create TV DB / WEARABLE DB / MOBILE DB +ADD_CUSTOM_COMMAND( + OUTPUT ${CORE_PRIVILEGE_DB_TV} ${WRT_PRIVILEGE_DB_TV} ${CORE_PRIVILEGE_MAPPING_DB_TV} ${WRT_PRIVILEGE_MAPPING_DB_TV} ${POLICY_DB_TV} + ${CORE_PRIVILEGE_DB_WEARABLE} ${WRT_PRIVILEGE_DB_WEARABLE} ${CORE_PRIVILEGE_MAPPING_DB_WEARABLE} ${WRT_PRIVILEGE_MAPPING_DB_WEARABLE} ${POLICY_DB_WEARABLE} + ${CORE_PRIVILEGE_DB_MOBILE} ${WRT_PRIVILEGE_DB_MOBILE} ${CORE_PRIVILEGE_MAPPING_DB_MOBILE} ${WRT_PRIVILEGE_MAPPING_DB_MOBILE} ${POLICY_DB_MOBILE} + COMMAND ./tv_core_db_generator.sh && ./tv_wrt_db_generator.sh && ./tv_core_mapping_db_generator.sh && ./tv_wrt_mapping_db_generator.sh && ./policy_db_generator.sh && + mv ${CORE_PRIVILEGE_DB} ${CORE_PRIVILEGE_DB_TV} && mv ${WRT_PRIVILEGE_DB} ${WRT_PRIVILEGE_DB_TV} && mv ${CORE_PRIVILEGE_MAPPING_DB} ${CORE_PRIVILEGE_MAPPING_DB_TV} && + mv ${WRT_PRIVILEGE_MAPPING_DB} ${WRT_PRIVILEGE_MAPPING_DB_TV} && mv ${POLICY_DB} ${POLICY_DB_TV} && mv ${POLICY_DB}-journal ${POLICY_DB_TV}-journal && + ./core_db_generator.sh wearable && ./wrt_db_generator.sh wearable && ./core_mapping_db_generator.sh wearable && ./wrt_mapping_db_generator.sh wearable && ./policy_db_generator.sh && + mv ${CORE_PRIVILEGE_DB} ${CORE_PRIVILEGE_DB_WEARABLE} && mv ${WRT_PRIVILEGE_DB} ${WRT_PRIVILEGE_DB_WEARABLE} && mv ${CORE_PRIVILEGE_MAPPING_DB} ${CORE_PRIVILEGE_MAPPING_DB_WEARABLE} && + mv ${WRT_PRIVILEGE_MAPPING_DB} ${WRT_PRIVILEGE_MAPPING_DB_WEARABLE} && mv ${POLICY_DB} ${POLICY_DB_WEARABLE} && mv ${POLICY_DB}-journal ${POLICY_DB_WEARABLE}-journal && + ./core_db_generator.sh mobile && ./wrt_db_generator.sh mobile && ./core_mapping_db_generator.sh mobile && ./wrt_mapping_db_generator.sh mobile && ./policy_db_generator.sh && + mv ${CORE_PRIVILEGE_DB} ${CORE_PRIVILEGE_DB_MOBILE} && mv ${WRT_PRIVILEGE_DB} ${WRT_PRIVILEGE_DB_MOBILE} && mv ${CORE_PRIVILEGE_MAPPING_DB} ${CORE_PRIVILEGE_MAPPING_DB_MOBILE} && + mv ${WRT_PRIVILEGE_MAPPING_DB} ${WRT_PRIVILEGE_MAPPING_DB_MOBILE} && mv ${POLICY_DB} ${POLICY_DB_MOBILE} && mv ${POLICY_DB}-journal ${POLICY_DB_MOBILE}-journal +) + +ADD_CUSTOM_TARGET(privilege-db ALL DEPENDS ${CORE_PRIVILEGE_DB_TV} ${WRT_PRIVILEGE_DB_TV} ${CORE_PRIVILEGE_MAPPING_DB_TV} ${WRT_PRIVILEGE_MAPPING_DB_TV} ${POLICY_DB_TV} + ${CORE_PRIVILEGE_DB_WEARABLE} ${WRT_PRIVILEGE_DB_WEARABLE} ${CORE_PRIVILEGE_MAPPING_DB_WEARABLE} ${WRT_PRIVILEGE_MAPPING_DB_WEARABLE} ${POLICY_DB_WEARABLE} + ${CORE_PRIVILEGE_DB_MOBILE} ${WRT_PRIVILEGE_DB_MOBILE} ${CORE_PRIVILEGE_MAPPING_DB_MOBILE} ${WRT_PRIVILEGE_MAPPING_DB_MOBILE} ${POLICY_DB_MOBILE} +) + +INSTALL(FILES ${CORE_PRIVILEGE_DB_TV} ${WRT_PRIVILEGE_DB_TV} ${CORE_PRIVILEGE_MAPPING_DB_TV} ${WRT_PRIVILEGE_MAPPING_DB_TV} + ${CORE_PRIVILEGE_DB_WEARABLE} ${WRT_PRIVILEGE_DB_WEARABLE} ${CORE_PRIVILEGE_MAPPING_DB_WEARABLE} ${WRT_PRIVILEGE_MAPPING_DB_WEARABLE} + ${CORE_PRIVILEGE_DB_MOBILE} ${WRT_PRIVILEGE_DB_MOBILE} ${CORE_PRIVILEGE_MAPPING_DB_MOBILE} ${WRT_PRIVILEGE_MAPPING_DB_MOBILE} + DESTINATION ${DATADIR}/privilege-manager/ +) + +INSTALL(FILES ${POLICY_DB_TV} ${POLICY_DB_TV}-journal DESTINATION ${TZ_SYS_DB}/) +INSTALL(FILES ${POLICY_DB_WEARABLE} ${POLICY_DB_WEARABLE}-journal DESTINATION ${TZ_SYS_DB}/) +INSTALL(FILES ${POLICY_DB_MOBILE} ${POLICY_DB_MOBILE}-journal DESTINATION ${TZ_SYS_DB}/) INSTALL(PROGRAMS policy_db_updater.sh DESTINATION ${DATADIR}/privilege-manager/) diff --git a/capi/src/privilege_db_manager.c b/capi/src/privilege_db_manager.c index 74a1588..fad3e02 100755 --- a/capi/src/privilege_db_manager.c +++ b/capi/src/privilege_db_manager.c @@ -1,4 +1,5 @@ #include "privilege_db_manager.h" +#include "privilege_private.h" #include #include #include @@ -26,23 +27,48 @@ #define GLOBAL_USER 0 #endif +#include +privilege_db_manager_profile_type_e get_priv_profile() +{ + static privilege_db_manager_profile_type_e saved = 0xff; -typedef enum { - PRIVILEGE_DB_MANAGER_PROFILE_TYPE_COMMON = 0, - PRIVILEGE_DB_MANAGER_PROFILE_TYPE_MOBILE = 1, - PRIVILEGE_DB_MANAGER_PROFILE_TYPE_WEARABLE = 2, - PRIVILEGE_DB_MANAGER_PROFILE_TYPE_TV = 3 -} privilege_db_manager_profile_type_e; + if (__builtin_expect(saved == 0xff, 0)) { + char *val = NULL; + dictionary *dic = iniparser_load(INI_PATH); -#ifdef PROFILE_TYPE_MOBILE -static privilege_db_manager_profile_type_e g_privilege_db_manager_profile_type = PRIVILEGE_DB_MANAGER_PROFILE_TYPE_MOBILE; -#elif PROFILE_TYPE_WEARABLE -static privilege_db_manager_profile_type_e g_privilege_db_manager_profile_type = PRIVILEGE_DB_MANAGER_PROFILE_TYPE_WEARABLE; -#elif PROFILE_TYPE_TV -static privilege_db_manager_profile_type_e g_privilege_db_manager_profile_type = PRIVILEGE_DB_MANAGER_PROFILE_TYPE_TV; -#else -static privilege_db_manager_profile_type_e g_privilege_db_manager_profile_type = PRIVILEGE_DB_MANAGER_PROFILE_TYPE_COMMON; -#endif + if (dic == NULL) { + /* if there is no .ini file, let's assume it's mobile (the default as recommended by Yunjin Lee) */ + saved = PRIVILEGE_DB_MANAGER_PROFILE_TYPE_MOBILE; + return saved; + } + + val = iniparser_getstring(dic, INI_KEYWORD_PROFILE, NULL); + + if (val != NULL) { + switch (*val) { + case 'm': + case 'M': + saved = PRIVILEGE_DB_MANAGER_PROFILE_TYPE_MOBILE; + break; + case 'w': + case 'W': + saved = PRIVILEGE_DB_MANAGER_PROFILE_TYPE_WEARABLE; + break; + case 't': + case 'T': + saved = PRIVILEGE_DB_MANAGER_PROFILE_TYPE_TV; + break; + default: // common or ivi or unknown ==> Mobile as the default recommended by Yunjin Lee + saved = PRIVILEGE_DB_MANAGER_PROFILE_TYPE_MOBILE; + } + iniparser_freedict(dic); + } else { + saved = PRIVILEGE_DB_MANAGER_PROFILE_TYPE_MOBILE; + } + } + return saved; +} +#define g_privilege_db_manager_profile_type (get_priv_profile()) #define TryReturn(condition, expr, returnValue, ...) \ if (!(condition)) { \ @@ -540,9 +566,9 @@ int privilege_db_manager_is_preloaded(const char* pkgid) int privilege_db_manager_is_privacy_white_list(const char* pkgid, const char* privilege) { -#ifdef DISABLE_ASKUSER - return 1; -#endif + if (DISABLE_ASKUSER) + return 1; + if (access(ASKUSER_RUNTIME_DISABLE_PATH, F_OK) == 0) { _LOGD("askuser is disabled in run-time."); return 1; @@ -584,9 +610,9 @@ int privilege_db_manager_is_privacy_white_list(const char* pkgid, const char* pr int privilege_db_manager_is_user_settable(const char* pkgid, const char* privacy) { -#ifdef DISABLE_ASKUSER - return 1; -#endif + if (DISABLE_ASKUSER) + return 1; + sqlite3 *db = NULL; sqlite3_stmt *stmt = NULL; int res = 1; diff --git a/capi/src/privilege_info.c b/capi/src/privilege_info.c index 2cf3d3f..c513f65 100755 --- a/capi/src/privilege_info.c +++ b/capi/src/privilege_info.c @@ -22,6 +22,7 @@ #include "privilege_db_manager.h" #include "privilege_info.h" #include "privilege_info_types.h" +#include "privilege_private.h" #ifdef LOG_TAG #undef LOG_TAG @@ -506,36 +507,37 @@ int privilege_info_get_privilege_description(const char *privilege, char **descr int privilege_info_is_privacy(const char* privilege) { + int ret; + TryReturn(privilege != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege is NULL"); -#ifdef DISABLE_ASKUSER - return 0; -#else + if (DISABLE_ASKUSER) + return 0; if (access(ASKUSER_RUNTIME_DISABLE_PATH, F_OK) == 0) { LOGD("askuser is disabled in run-time."); return 0; } - int ret = privilege_db_manager_is('p', privilege); + ret = privilege_db_manager_is('p', privilege); LOGD("%s is privacy? %d", privilege, ret); if (ret != 0 && ret != 1) ret = -1; return ret; -#endif } /* TBD: remove it */ int privilege_info_is_privacy2(const char* label, const char* privilege) { + int ret; + TryReturn(privilege != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege is NULL"); if (label == NULL) return privilege_info_is_privacy(privilege); -#ifdef DISABLE_ASKUSER - return 0; -#else + if (DISABLE_ASKUSER) + return 0; if (access(ASKUSER_RUNTIME_DISABLE_PATH, F_OK) == 0) { LOGD("askuser is disabled in run-time."); return 0; } - int ret = privilege_db_manager_is('p', privilege); + ret = privilege_db_manager_is('p', privilege); TryReturn(ret >= 0, , -1, "privilege_db_manager_get_privacy_by_privilege failed. ret = %d", ret); if (ret == 0) { LOGD("not privacy"); @@ -562,7 +564,6 @@ int privilege_info_is_privacy2(const char* label, const char* privilege) LOGD("final ret = %d", ret); return ret; } -#endif } int privilege_info_get_privilege_type(uid_t uid, const char* pkgid, const char* privilege, privilege_manager_privilege_type_e *type) diff --git a/packaging/privilege-checker.ini b/packaging/privilege-checker.ini new file mode 100644 index 0000000..a17aa97 --- /dev/null +++ b/packaging/privilege-checker.ini @@ -0,0 +1,3 @@ +[General] +Profile = @PROFILE@ + diff --git a/packaging/privilege-checker.spec b/packaging/privilege-checker.spec index 2edda78..d613c57 100644 --- a/packaging/privilege-checker.spec +++ b/packaging/privilege-checker.spec @@ -5,8 +5,10 @@ Release: 3 Group: System/Libraries License: Apache-2.0 Source0: %{name}-%{version}.tar.gz +Source1000: privilege-checker.ini BuildRequires: cmake BuildRequires: pkgconfig(dlog) +BuildRequires: pkgconfig(iniparser) Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig @@ -36,10 +38,39 @@ BuildRequires: pkgconfig(sqlite3) BuildRequires: pkgconfig(libtzplatform-config) Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig +Provides: security-privilege-manager-profile_common = %{version}-%{release} +Provides: security-privilege-manager-profile_ivi = %{version}-%{release} %description -n security-privilege-manager The Privilege Manager API provides functions to verify privilege information of packages to be installed. +%package -n security-privilege-manager-extension-mobile +Summary: Privilege Manager API extension for Tizen Mobile profile +Provides: security-privilege-manager-profile_mobile = %{version}-%{release} +Requires: security-privilege-manager = %{version}-%{release} +Conflicts: security-privliege-manager-extension-wearable +Conflicts: security-privliege-manager-extension-tv +%description -n security-privilege-manager-extension-mobile +The Privilege Manager API provides functions to verify privilege information of packages to be installed. This is an extension for privilege manager for Tizen Mobile profile, which requires security-profile-manger to be installed before this. + +%package -n security-privilege-manager-extension-tv +Summary: Privilege Manager API extension for Tizen TV profile +Provides: security-privilege-manager-profile_tv = %{version}-%{release} +Requires: security-privilege-manager = %{version}-%{release} +Conflicts: security-privliege-manager-extension-wearable +Conflicts: security-privliege-manager-extension-mobile +%description -n security-privilege-manager-extension-tv +The Privilege Manager API provides functions to verify privilege information of packages to be installed. This is an extension for privilege manager for Tizen TV profile, which requires security-profile-manger to be installed before this. + +%package -n security-privilege-manager-extension-wearable +Summary: Privilege Manager API extension for Tizen Wearable profile +Provides: security-privilege-manager-profile_wearable = %{version}-%{release} +Requires: security-privilege-manager = %{version}-%{release} +Conflicts: security-privliege-manager-extension-tv +Conflicts: security-privliege-manager-extension-mobile +%description -n security-privilege-manager-extension-wearable +The Privilege Manager API provides functions to verify privilege information of packages to be installed. This is an extension for privilege manager for Tizen Wearable profile, which requires security-profile-manger to be installed before this. + %package -n security-privilege-manager-devel Summary: Privilege Manager API (Development) Requires: security-privilege-manager @@ -63,24 +94,13 @@ The Privilege Verifier Utility provides functions to verify privilege informatio %prep %setup -q +cp %{SOURCE1000} . %build %if "%{asan}" == "1" %restore_fcommon %endif -%if "%{?profile}" == "tv" - __PROFILE_TYPE="TV" -%else -%if "%{?profile}" == "wearable" - __PROFILE_TYPE="WEARABLE" -%else -#%if "%{?profile}" == "mobile" - __PROFILE_TYPE="MOBILE" -#%endif -%endif -%endif - export CFLAGS="$CFLAGS -DTIZEN_ENGINEER_MODE " export CXXFLAGS="$CXXFLAGS -DTIZEN_ENGINEER_MODE " %if %{?build_type} == "DEBUG" @@ -96,8 +116,6 @@ echo cmake . -DPREFIX=%{_prefix} \ -DVERSION=%{version} \ -DDPL_LOG="ON" \ -DDATADIR=%{_datadir} \ - -DPROFILE_TYPE="${__PROFILE_TYPE}" \ - -DPROFILE=%{?profile} \ -DTZ_SYS_DB=%TZ_SYS_DB \ -DTZ_SYS_SHARE=%TZ_SYS_SHARE @@ -109,8 +127,6 @@ cmake . -DPREFIX=%{_prefix} \ -DVERSION=%{version} \ -DDPL_LOG="ON" \ -DDATADIR=%{_datadir} \ - -DPROFILE_TYPE="${__PROFILE_TYPE}" \ - -DPROFILE=%{?profile} \ -DTZ_SYS_DB=%TZ_SYS_DB \ -DTZ_SYS_SHARE=%TZ_SYS_SHARE @@ -125,6 +141,24 @@ mkdir -p %{buildroot}%{_datadir}/privilege-manager mkdir -p %{buildroot}/%{TZ_SYS_DB} %endif %make_install + +mkdir -p %{buildroot}%{_sysconfdir} +sed "s|@PROFILE@|common|" privilege-checker.ini > %{buildroot}%{_sysconfdir}/privilege-checker.ini +sed "s|@PROFILE@|tv|" privilege-checker.ini > %{buildroot}%{_sysconfdir}/privilege-checker.ini.tv +sed "s|@PROFILE@|wearable|" privilege-checker.ini > %{buildroot}%{_sysconfdir}/privilege-checker.ini.wearable +sed "s|@PROFILE@|mobile|" privilege-checker.ini > %{buildroot}%{_sysconfdir}/privilege-checker.ini.mobile + + + +%if "%{?build_type}" != "NO_DB" +mv %{buildroot}%{_datadir}/privilege-manager/.core_privilege_info.mobile.db %{buildroot}%{_datadir}/privilege-manager/.core_privilege_info.db +mv %{buildroot}%{_datadir}/privilege-manager/.core_privilege_mapping.mobile.db %{buildroot}%{_datadir}/privilege-manager/.core_privilege_mapping.db +mv %{buildroot}%{_datadir}/privilege-manager/.wrt_privilege_info.mobile.db %{buildroot}%{_datadir}/privilege-manager/.wrt_privilege_info.db +mv %{buildroot}%{_datadir}/privilege-manager/.wrt_privilege_mapping.mobile.db %{buildroot}%{_datadir}/privilege-manager/.wrt_privilege_mapping.db +mv %{buildroot}/%{TZ_SYS_DB}/.policy.mobile.db %{buildroot}/%{TZ_SYS_DB}/.policy.db +mv %{buildroot}/%{TZ_SYS_DB}/.policy.mobile.db-journal %{buildroot}/%{TZ_SYS_DB}/.policy.db-journal +%endif + %find_lang privilege %post -n security-privilege-manager @@ -153,6 +187,64 @@ chsmack -a System %{TZ_SYS_DB}/.policy.db-journal %config(noreplace) %attr(0660, root, security_fw) /%{TZ_SYS_DB}/.policy.db-journal %endif %manifest packaging/security-privilege-manager.manifest +%{_sysconfdir}/privilege-checker.ini + +%post -n security-privilege-manager-extension-mobile +mv %{_sysconfdir}/privilege-checker.ini.mobile %{_sysconfdir}/privilege-checker.ini +%files -n security-privilege-manager-extension-mobile +%{_sysconfdir}/privilege-checker.ini.mobile + +%post -n security-privilege-manager-extension-tv +%if "%{?build_type}" != "NO_DB" +mv %{_datadir}/privilege-manager/.core_privilege_info.tv.db %{_datadir}/privilege-manager/.core_privilege_info.db +mv %{_datadir}/privilege-manager/.core_privilege_mapping.tv.db %{_datadir}/privilege-manager/.core_privilege_mapping.db +mv %{_datadir}/privilege-manager/.wrt_privilege_info.tv.db %{_datadir}/privilege-manager/.wrt_privilege_info.db +mv %{_datadir}/privilege-manager/.wrt_privilege_mapping.tv.db %{_datadir}/privilege-manager/.wrt_privilege_mapping.db +mv /%{TZ_SYS_DB}/.policy.tv.db /%{TZ_SYS_DB}/.policy.db +mv /%{TZ_SYS_DB}/.policy.tv.db-journal /%{TZ_SYS_DB}/.policy.db-journal + +chsmack -a System %{TZ_SYS_DB}/.policy.db +chsmack -a System %{TZ_SYS_DB}/.policy.db-journal +%endif +mv %{_sysconfdir}/privilege-checker.ini.tv %{_sysconfdir}/privilege-checker.ini + +%files -n security-privilege-manager-extension-tv +%if "%{?build_type}" != "NO_DB" +%{_datadir}/privilege-manager/.core_privilege_info.tv.db +%{_datadir}/privilege-manager/.core_privilege_mapping.tv.db +%{_datadir}/privilege-manager/.wrt_privilege_info.tv.db +%{_datadir}/privilege-manager/.wrt_privilege_mapping.tv.db +%config(noreplace) %attr(0660, root, security_fw) /%{TZ_SYS_DB}/.policy.tv.db +%config(noreplace) %attr(0660, root, security_fw) /%{TZ_SYS_DB}/.policy.tv.db-journal +%endif +%manifest packaging/security-privilege-manager.manifest +%{_sysconfdir}/privilege-checker.ini.tv + +%post -n security-privilege-manager-extension-wearable +%if "%{?build_type}" != "NO_DB" +mv %{_datadir}/privilege-manager/.core_privilege_info.wearable.db %{_datadir}/privilege-manager/.core_privilege_info.db +mv %{_datadir}/privilege-manager/.core_privilege_mapping.wearable.db %{_datadir}/privilege-manager/.core_privilege_mapping.db +mv %{_datadir}/privilege-manager/.wrt_privilege_info.wearable.db %{_datadir}/privilege-manager/.wrt_privilege_info.db +mv %{_datadir}/privilege-manager/.wrt_privilege_mapping.wearable.db %{_datadir}/privilege-manager/.wrt_privilege_mapping.db +mv /%{TZ_SYS_DB}/.policy.wearable.db /%{TZ_SYS_DB}/.policy.db +mv /%{TZ_SYS_DB}/.policy.wearable.db-journal /%{TZ_SYS_DB}/.policy.db-journal + +chsmack -a System %{TZ_SYS_DB}/.policy.db +chsmack -a System %{TZ_SYS_DB}/.policy.db-journal +%endif +mv %{_sysconfdir}/privilege-checker.ini.wearable %{_sysconfdir}/privilege-checker.ini + +%files -n security-privilege-manager-extension-wearable +%if "%{?build_type}" != "NO_DB" +%{_datadir}/privilege-manager/.core_privilege_info.wearable.db +%{_datadir}/privilege-manager/.core_privilege_mapping.wearable.db +%{_datadir}/privilege-manager/.wrt_privilege_info.wearable.db +%{_datadir}/privilege-manager/.wrt_privilege_mapping.wearable.db +%config(noreplace) %attr(0660, root, security_fw) /%{TZ_SYS_DB}/.policy.wearable.db +%config(noreplace) %attr(0660, root, security_fw) /%{TZ_SYS_DB}/.policy.wearable.db-journal +%endif +%manifest packaging/security-privilege-manager.manifest +%{_sysconfdir}/privilege-checker.ini.wearable %files -n security-privilege-manager-devel %{_includedir}/privilegemgr/*.h diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index b3a372b..8902346 100755 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -17,15 +17,7 @@ SET(TC4_SRCS ${TC4_NAME}.c ${TC_COMMON_SRCS}) INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/capi/include) INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/test) -IF("${PROFILE_TYPE}" STREQUAL "WEARABLE") - ADD_DEFINITIONS("-DPROFILE_TYPE_WEARABLE") -ELSEIF("${PROFILE_TYPE}" STREQUAL "MOBILE") - ADD_DEFINITIONS("-DPROFILE_TYPE_MOBILE") -ELSEIF("${PROFILE_TYPE}" STREQUAL "TV") - ADD_DEFINITIONS("-DPROFILE_TYPE_TV") -ENDIF() - -SET(requires glib-2.0 dlog) +SET(requires glib-2.0 dlog iniparser) INCLUDE(FindPkgConfig) pkg_check_modules(${PACKAGE_NAME} REQUIRED ${requires}) FOREACH(flag ${${PACKAGE_NAME}_CFLAGS}) diff --git a/test/tc-common.c b/test/tc-common.c index 6ee521f..8c8a20a 100755 --- a/test/tc-common.c +++ b/test/tc-common.c @@ -5,6 +5,7 @@ #include #include #include +#include /*** Color section ***/ void __color_to_red() @@ -264,3 +265,50 @@ void __print_result(char type, int result) __color_to_origin(); } +#define INI_PATH "/etc/privilege-checker.ini" +#define INI_KEYWORD_PROFILE "General:Profile" +tizen_profile_t _get_tizen_profile() +{ + static tizen_profile_t profile = TIZEN_PROFILE_UNKNOWN; + if (__builtin_expect(profile != TIZEN_PROFILE_UNKNOWN, 1)) + return profile; + + char *val = NULL; + dictionary *dic = iniparser_load(INI_PATH); + + if (dic == NULL) { + /* if there is no .ini file, let's assume it's common */ + profile = TIZEN_PROFILE_COMMON; + return profile; + } + + val = iniparser_getstring(dic, INI_KEYWORD_PROFILE, NULL); + + if (val != NULL) { + switch (*val) { + case 'm': + case 'M': + profile = TIZEN_PROFILE_MOBILE; + break; + case 'w': + case 'W': + profile = TIZEN_PROFILE_WEARABLE; + break; + case 't': + case 'T': + profile = TIZEN_PROFILE_TV; + break; + case 'i': + case 'I': + profile = TIZEN_PROFILE_IVI; + break; + default: // common or unknown ==> ALL ARE COMMON. + profile = TIZEN_PROFILE_COMMON; + } + iniparser_freedict(dic); + } else { + profile = TIZEN_PROFILE_COMMON; + } + + return profile; +} diff --git a/test/tc-common.h b/test/tc-common.h index e8f665f..3c9df68 100755 --- a/test/tc-common.h +++ b/test/tc-common.h @@ -69,3 +69,16 @@ bool __count_result(int result); void __print_result(char type, int result); +typedef enum { + TIZEN_PROFILE_UNKNOWN = 0, + TIZEN_PROFILE_MOBILE = 0x1, + TIZEN_PROFILE_WEARABLE = 0x2, + TIZEN_PROFILE_TV = 0x4, + TIZEN_PROFILE_IVI = 0x8, + TIZEN_PROFILE_COMMON = 0x10, +} tizen_profile_t; + +extern tizen_profile_t _get_tizen_profile(); + +#define ENABLE_ASKUSER ((_get_tizen_profile()) & (TIZEN_PROFILE_MOBILE | TIZEN_PROFILE_WEARABLE)) +#define DISABLE_ASKUSER (!ENABLE_ASKUSER) diff --git a/test/tc-privilege-db-manager.c b/test/tc-privilege-db-manager.c index d28a544..885a6f6 100755 --- a/test/tc-privilege-db-manager.c +++ b/test/tc-privilege-db-manager.c @@ -212,15 +212,15 @@ void __test_privilege_db_manager_get_privilege_display() int ret; char *privilege_display = NULL; -#ifdef PROFILE_TYPE_MOBILE - __print_line(); - printf("privilege : http://tizen.org/privilege/location\n"); - printf("privilege_type : core\n"); - printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NONE\n"); - ret = privilege_db_manager_get_privilege_display(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/location", "2.3", &privilege_display); - __check_get_privilege_display_result(PRIVILEGE_DB_MANAGER_ERR_NONE, ret, privilege_display); - free(privilege_display); -#endif + if (_get_tizen_profile() == TIZEN_PROFILE_MOBILE) { + __print_line(); + printf("privilege : http://tizen.org/privilege/location\n"); + printf("privilege_type : core\n"); + printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NONE\n"); + ret = privilege_db_manager_get_privilege_display(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/location", "2.3", &privilege_display); + __check_get_privilege_display_result(PRIVILEGE_DB_MANAGER_ERR_NONE, ret, privilege_display); + free(privilege_display); + } __print_line(); printf("privilege : http://tizen.org/privilege/internet\n"); printf("privilege_type : wrt\n"); @@ -289,19 +289,19 @@ void __test_privilege_db_manager_get_privilege_description() { int ret; char *privilege_description = NULL; -#ifdef PROFILE_TYPE_MOBILE - __print_line(); - printf("privilege : http://tizen.org/privilege/location\n"); - printf("privilege_type : core\n"); - printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NONE\n"); - ret = privilege_db_manager_get_privilege_description(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/location", "2.3", &privilege_description); - __check_get_privilege_description_result(PRIVILEGE_DB_MANAGER_ERR_NONE, ret, privilege_description); - - if (privilege_description != NULL) { - free(privilege_description); - privilege_description = NULL; + if (_get_tizen_profile() == TIZEN_PROFILE_MOBILE) { + __print_line(); + printf("privilege : http://tizen.org/privilege/location\n"); + printf("privilege_type : core\n"); + printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NONE\n"); + ret = privilege_db_manager_get_privilege_description(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/location", "2.3", &privilege_description); + __check_get_privilege_description_result(PRIVILEGE_DB_MANAGER_ERR_NONE, ret, privilege_description); + + if (privilege_description != NULL) { + free(privilege_description); + privilege_description = NULL; + } } -#endif __print_line(); printf("privilege : http://tizen.org/privilege/internet\n"); printf("privilege_type : wrt\n"); @@ -446,11 +446,7 @@ void __test_privilege_db_manager_is_privacy_white_list() printf("is not privacy whitelist\n"); ret = privilege_db_manager_is_privacy_white_list("ise-default", "http://tizen.org/privilege/location"); printf("ret = %d\n", ret); -#ifdef ENABLE_ASKUSER - if (ret == 0) { -#else - if (ret == 1) { -#endif + if ((ENABLE_ASKUSER && ret == 0) || (DISABLE_ASKUSER && ret == 1)) { success_cnt++; __color_to_green(); printf("success\n"); @@ -486,11 +482,7 @@ void __test_privilege_db_manager_is_privacy_white_list() printf("is not privacy whitelist\n"); ret = privilege_db_manager_is_privacy_white_list("orxxxxx", "http://tizen.org/privilege/call"); printf("ret = %d\n", ret); -#ifdef ENABLE_ASKUSER - if (ret == 0) { -#else - if (ret == 1) { -#endif + if ((ENABLE_ASKUSER && ret == 0) || (DISABLE_ASKUSER && ret == 1)) { success_cnt++; __color_to_green(); printf("success\n"); diff --git a/test/tc-privilege-info.c b/test/tc-privilege-info.c index 2f2e583..a5361c9 100755 --- a/test/tc-privilege-info.c +++ b/test/tc-privilege-info.c @@ -494,7 +494,7 @@ static void __test_privilege_info_get_privilege_group_display_name() free(group_name); } -#ifdef ENABLE_ASKUSER + static void __test_privilege_info_is_privacy2() { int ret = 0; @@ -605,11 +605,11 @@ static void __test_privilege_info_is_privacy2() } __print_line(); } -#endif static void __test_privilege_info_get_privilege_type() { int ret = 0; + int test = 0; privilege_manager_privilege_type_e type; __print_line(); @@ -635,13 +635,14 @@ static void __test_privilege_info_get_privilege_type() printf("pkgid = org.tizen.contacts\n"); printf("privilege = http://tizen.org/privilege/location\n"); ret = privilege_info_get_privilege_type(5001, "org.tizen.contacts", "http://tizen.org/privilege/location", &type); -#ifdef DISABLE_ASKUSER - printf("expected type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL\n"); - if (ret == PRVMGR_ERR_NONE && type == PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL) { -#else - printf("expected type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY\n"); - if (ret == PRVMGR_ERR_NONE && type == PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY) { -#endif + if (DISABLE_ASKUSER) { + printf("expected type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL\n"); + test = (ret == PRVMGR_ERR_NONE && type == PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL); + } else { + printf("expected type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY\n"); + test = (ret == PRVMGR_ERR_NONE && type == PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY); + } + if (test) { success_cnt++; __color_to_green(); printf("success\n"); @@ -831,10 +832,10 @@ int main() __tcinfo(function, "privilege_info_get_privacy_display"); __test_privilege_info_get_privacy_display(); -#ifdef ENABLE_ASKUSER - __tcinfo(function, "privilege_info_is_privacy2"); - __test_privilege_info_is_privacy2(); -#endif + if (ENABLE_ASKUSER) { + __tcinfo(function, "privilege_info_is_privacy2"); + __test_privilege_info_is_privacy2(); + } __tcinfo(function, "privilege_info_get_privilege_type"); __test_privilege_info_get_privilege_type(); diff --git a/test/tc-privilege-manager.c b/test/tc-privilege-manager.c index 1bf9478..f9ce1c0 100755 --- a/test/tc-privilege-manager.c +++ b/test/tc-privilege-manager.c @@ -56,183 +56,182 @@ static void __test_privilege_manager_get_mapped_privilege_list() } __print_line(); -#ifdef PROFILE_TYPE_MOBILE + if (_get_tizen_profile() == TIZEN_PROFILE_MOBILE) { - /* 2.3 core - mobile */ - __tcinfo(version_type, "2.3", "core"); - - __tcinfo(goal, "TC1"); - __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_privilege_list(mapped_privilege_list); - __print_line(); - gfree(privilege_list); - - __tcinfo(goal, "TC2"); - __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); - __privinfo("http://tizen.org/privilege/vpnservice", NULL, "Valid from 3.0 so it should be ignored"); - __tcinfo(expect, PRVMGR_ERR_NONE); - ret = privilege_manager_get_mapped_privilege_list("2.3", PRVMGR_PACKAGE_TYPE_CORE, privilege_list, &mapped_privilege_list); - __print_privilege_list(mapped_privilege_list); - __print_line(); - - gfree(privilege_list); - - /* 2.4 core - mobile */ - __tcinfo(version_type, "2.4", "core"); - - /* 3.0 core - mobile */ - __tcinfo(version_type, "3.0", "core"); - - __tcinfo(goal, "normal mapping"); - __privinfo("http://tizen.org/privilege/message.read", NULL, NULL); - __tcinfo(expect, PRVMGR_ERR_NONE); - ret = privilege_manager_get_mapped_privilege_list("3.0", PRVMGR_PACKAGE_TYPE_CORE, privilege_list, &mapped_privilege_list); - __print_result('m', ret); - __print_privilege_list(mapped_privilege_list); - __print_line(); - - gfree(privilege_list); - - /* 2.2.1 wrt - mobile */ - __tcinfo(version_type, "2.2.1", "wrt"); - - __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(api_version, PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list); - __print_result('m', ret); - __print_privilege_list(mapped_privilege_list); - __print_line(); - - gfree(privilege_list); + /* 2.3 core - mobile */ + __tcinfo(version_type, "2.3", "core"); - __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(api_version, PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list); - __print_result('m', ret); - __print_privilege_list(mapped_privilege_list); - __print_line(); + __tcinfo(goal, "TC1"); + __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_privilege_list(mapped_privilege_list); + __print_line(); + gfree(privilege_list); + + __tcinfo(goal, "TC2"); + __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); + __privinfo("http://tizen.org/privilege/vpnservice", NULL, "Valid from 3.0 so it should be ignored"); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_manager_get_mapped_privilege_list("2.3", PRVMGR_PACKAGE_TYPE_CORE, privilege_list, &mapped_privilege_list); + __print_privilege_list(mapped_privilege_list); + __print_line(); - gfree(privilege_list); + gfree(privilege_list); - __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('m', ret); - __print_privilege_list(mapped_privilege_list); - __print_line(); + /* 2.4 core - mobile */ + __tcinfo(version_type, "2.4", "core"); - gfree(privilege_list); + /* 3.0 core - mobile */ + __tcinfo(version_type, "3.0", "core"); - /* 2.3 wrt - mobile */ - __tcinfo(version_type, "2.3", "wrt"); + __tcinfo(goal, "normal mapping"); + __privinfo("http://tizen.org/privilege/message.read", NULL, NULL); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_manager_get_mapped_privilege_list("3.0", PRVMGR_PACKAGE_TYPE_CORE, privilege_list, &mapped_privilege_list); + __print_result('m', ret); + __print_privilege_list(mapped_privilege_list); + __print_line(); - __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('m', ret); - __print_privilege_list(mapped_privilege_list); - __print_line(); + gfree(privilege_list); - gfree(privilege_list); + /* 2.2.1 wrt - mobile */ + __tcinfo(version_type, "2.2.1", "wrt"); - __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('m', ret); - __print_privilege_list(mapped_privilege_list); - __print_line(); + __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(api_version, PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list); + __print_result('m', ret); + __print_privilege_list(mapped_privilege_list); + __print_line(); + + gfree(privilege_list); + + __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(api_version, PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list); + __print_result('m', ret); + __print_privilege_list(mapped_privilege_list); + __print_line(); + + gfree(privilege_list); + + __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('m', ret); + __print_privilege_list(mapped_privilege_list); + __print_line(); - gfree(privilege_list); + gfree(privilege_list); - __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('m', ret); - __print_privilege_list(mapped_privilege_list); - __print_line(); + /* 2.3 wrt - mobile */ + __tcinfo(version_type, "2.3", "wrt"); - gfree(privilege_list); + __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('m', ret); + __print_privilege_list(mapped_privilege_list); + __print_line(); + + gfree(privilege_list); + + __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('m', ret); + __print_privilege_list(mapped_privilege_list); + __print_line(); + + gfree(privilege_list); + + __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('m', ret); + __print_privilege_list(mapped_privilege_list); + __print_line(); - __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('m', ret); - __print_privilege_list(mapped_privilege_list); - __print_line(); + gfree(privilege_list); - gfree(privilege_list); + __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('m', ret); + __print_privilege_list(mapped_privilege_list); + __print_line(); - __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('m', ret); - __print_privilege_list(mapped_privilege_list); - __print_line(); + gfree(privilege_list); - gfree(privilege_list); + __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('m', ret); + __print_privilege_list(mapped_privilege_list); + __print_line(); - /* 2.4 wrt - mobile */ - __tcinfo(version_type, "2.4", "wrt"); + gfree(privilege_list); - __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('m', ret); - __print_privilege_list(mapped_privilege_list); - __print_line(); + /* 2.4 wrt - mobile */ + __tcinfo(version_type, "2.4", "wrt"); - gfree(privilege_list); + __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('m', ret); + __print_privilege_list(mapped_privilege_list); + __print_line(); - __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('m', ret); - __print_privilege_list(mapped_privilege_list); - __print_line(); + gfree(privilege_list); - gfree(privilege_list); + __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('m', ret); + __print_privilege_list(mapped_privilege_list); + __print_line(); -#endif + gfree(privilege_list); + } } static void __test_privilege_manager_verify_metadata() @@ -367,1136 +366,1137 @@ static void __test_privilege_manager_verify_privilege() __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); __privilege_manager_verify_privilege(); -#ifdef PROFILE_TYPE_MOBILE - - /* 2.3 core - mobile */ - __tcinfo(version_type, "2.3", "core"); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public"); - __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/calendar.write", "Public", NULL); - __privinfo("http://tizen.org/privilege/call", "Public", NULL); - __privinfo("http://tizen.org/privilege/callhistory.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/callhistory.write", "Public", NULL); - __privinfo("http://tizen.org/privilege/datasharing", "Public", NULL); - __privinfo("http://tizen.org/privilege/display", "Public", NULL); - __privinfo("http://tizen.org/privilege/download", "Public", NULL); - __privinfo("http://tizen.org/privilege/display", "Public", NULL); - __privinfo("http://tizen.org/privilege/haptic", "Public", NULL); - __privinfo("http://tizen.org/privilege/internet", "Public", NULL); - __privinfo("http://tizen.org/privilege/keymanager", "Public", NULL); - __privinfo("http://tizen.org/privilege/systemsettings", "Public", NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform"); - __privinfo("http://tizen.org/privilege/bookmark.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/bluetooth.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/email.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/appmanager.kill", "Platform", NULL); - __privinfo("http://tizen.org/privilege/keymanager.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/systemsettings.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/nfc.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/telephony.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/web-history.admin", "Platform", NULL); - __tcinfo(cert_level, "platform"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! NAME NOT EXIST !!!"); - __privinfo("http://tizen.org/privilege/account.readd", NULL, NULL); - __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); - __privinfo("http://tizen.org/tizen/privilege/internet", NULL, NULL); - __privinfo("http://tizen.org/privilege/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", NULL, NULL); - __privinfo("http://tizen.org/privilege/healthinfo", NULL, "Valid from 2.3.1"); - __privinfo("http://tizen.org/privilege/keygrab", NULL, "Valid from 2.4"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "Name=OK, Version=OK, !!! Level=Mismatched !!!"); - __privinfo("http://tizen.org/privilege/bookmark.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/bluetooth.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/email.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/appmanager.kill", "Platform", NULL); - __privinfo("http://tizen.org/privilege/keymanager.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/systemsettings.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/nfc.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.admin", "Platform", NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - /* 2.3.1 core - mobile */ - __tcinfo(version_type, "2.3.1", "core"); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public"); - __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/calendar.write", "Public", NULL); - __privinfo("http://tizen.org/privilege/call", "Public", NULL); - __privinfo("http://tizen.org/privilege/callhistory.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/callhistory.write", "Public", NULL); - __privinfo("http://tizen.org/privilege/datasharing", "Public", NULL); - __privinfo("http://tizen.org/privilege/display", "Public", NULL); - __privinfo("http://tizen.org/privilege/download", "Public", NULL); - __privinfo("http://tizen.org/privilege/display", "Public", NULL); - __privinfo("http://tizen.org/privilege/haptic", "Public", NULL); - __privinfo("http://tizen.org/privilege/internet", "Public", NULL); - __privinfo("http://tizen.org/privilege/keymanager", "Public", NULL); - __privinfo("http://tizen.org/privilege/healthinfo", "Public", "Valid from 2.3.1"); - __privinfo("http://tizen.org/privilege/widget.viewer", "Public", "Valid from 2.3.1"); - __privinfo("http://tizen.org/privilege/secureelement", "Public", "Valid from 2.3.1"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform"); - __privinfo("http://tizen.org/privilege/bookmark.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/bluetooth.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/email.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/appmanager.kill", "Platform", NULL); - __privinfo("http://tizen.org/privilege/keymanager.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/systemsettings.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/nfc.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/telephony.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/web-history.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/reboot", "Platform", "Valid from 2.3.1"); - __tcinfo(cert_level, "platform"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! NAME NOT EXIST !!!"); - __privinfo("http://tizen.org/privilege/account.readd", NULL, NULL); - __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); - __privinfo("http://tizen.org/tizen/privilege/internet", NULL, NULL); - __privinfo("http://tizen.org/privilege/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", NULL, NULL); - __privinfo("http://tizen.org/privilege/ime", NULL, "Valid from 2.4"); - __privinfo("http://tizen.org/privilege/keygrab", NULL, "Valid from 2.4"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED !!!"); - __privinfo("http://tizen.org/privilege/email.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/appmanager.kill", "Platform", NULL); - __privinfo("http://tizen.org/privilege/keymanager.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/systemsettings.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/nfc.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/telephony.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/web-history.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/reboot", "Platform", "Valid from 2.3.1"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! DEPRECATED !!!"); - __privinfo("http://tizen.org/privilege/systemsettings", NULL, "Deprecated from 2.3.1"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - /* 2.4 core - mobile */ - __tcinfo(version_type, "2.4", "core"); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public"); - __privinfo("http://tizen.org/privilege/internet", "Public", NULL); - __privinfo("http://tizen.org/privilege/keymanager", "Public", NULL); - __privinfo("http://tizen.org/privilege/healthinfo", "Public", NULL); - __privinfo("http://tizen.org/privilege/widget.viewer", "Public", NULL); - __privinfo("http://tizen.org/privilege/secureelement", "Public", NULL); - __privinfo("http://tizen.org/privilege/apphistory.read", "Public", "Valid from 2.4"); - __privinfo("http://tizen.org/privilege/appmanager.kill.bgapp", "Public", "Valid from 2.4"); - __privinfo("http://tizen.org/privilege/ime", "Public", "Valid from 2.4"); - __privinfo("http://tizen.org/privilege/imemanager", "Public", "Valid from 2.4"); - __privinfo("http://tizen.org/privilege/mapservice", "Public", "Valid from 2.4"); - __privinfo("http://tizen.org/privilege/mediacontroller.client", "Public", "Valid from 2.4"); - __privinfo("http://tizen.org/privilege/mediacontroller.server", "Public", "Valid from 2.4"); - __privinfo("http://tizen.org/privilege/minicontrol.provider", "Public", "Valid from 2.4 and deprecated from 3.0"); - __privinfo("http://tizen.org/privilege/mediahistory.read", "Public", "Valid from 2.4"); - __privinfo("http://tizen.org/privilege/packagemanager.clearcache", "Public", "Valid from 2.4"); - __privinfo("http://tizen.org/privilege/systemmonitor", "Public", "Valid from 2.4"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform"); - __privinfo("http://tizen.org/privilege/web-history.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/reboot", "Platform", NULL); - __privinfo("http://tizen.org/privilege/inputgenerator", "Platform", "Valid from 2.4"); - __privinfo("http://tizen.org/privilege/keygrab", "Platform", "Valid from 2.4"); - __tcinfo(cert_level, "platform"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! NAME NOT EXIST !!!"); - __privinfo("http://tizen.org/privilege/account.readd", NULL, NULL); - __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); - __privinfo("http://tizen.org/tizen/privilege/internet", NULL, NULL); - __privinfo("http://tizen.org/privilege/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", NULL, NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED !!!"); - __privinfo("http://tizen.org/privilege/telephony.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/web-history.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/reboot", "Platform", NULL); - __privinfo("http://tizen.org/privilege/inputgenerator", "Platform", "Valid from 2.4"); - __privinfo("http://tizen.org/privilege/keygrab", "Platform", "Valid from 2.4"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! DEPRECATED !!!"); - __privinfo("http://tizen.org/privilege/systemsettings", NULL, "Deprecated from 2.3.1"); - __privinfo("http://tizen.org/privilege/keymanager.admin", NULL, "Deprecated from 2.4"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - /* 3.0 core - mobile */ - __tcinfo(version_type, "3.0", "core"); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public"); - __privinfo("http://tizen.org/privilege/internet", "Public", NULL); - __privinfo("http://tizen.org/privilege/healthinfo", "Public", NULL); - __privinfo("http://tizen.org/privilege/widget.viewer", "Public", NULL); - __privinfo("http://tizen.org/privilege/secureelement", "Public", NULL); - __privinfo("http://tizen.org/privilege/apphistory.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/appmanager.kill.bgapp", "Public", NULL); - __privinfo("http://tizen.org/privilege/ime", "Public", NULL); - __privinfo("http://tizen.org/privilege/imemanager", "Public", NULL); - __privinfo("http://tizen.org/privilege/mapservice", "Public", NULL); - __privinfo("http://tizen.org/privilege/mediacontroller.client", "Public", NULL); - __privinfo("http://tizen.org/privilege/mediacontroller.server", "Public", NULL); - __privinfo("http://tizen.org/privilege/mediahistory.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.clearcache", "Public", NULL); - __privinfo("http://tizen.org/privilege/systemmonitor", "Public", NULL); - __privinfo("http://tizen.org/privilege/vpnservice", "Public", "Valid from 3.0, Mobile profile only"); - __privinfo("http://tizen.org/privilege/d2d.datasharing", "Public", "Valid from 3.0"); - __privinfo("http://tizen.org/privilege/location.coarse", "Public", "Valid from 3.0"); - __privinfo("http://tizen.org/privilege/use_ir", "Public", "Valid from 3.0"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform"); - __privinfo("http://tizen.org/privilege/web-history.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/reboot", "Platform", NULL); - __privinfo("http://tizen.org/privilege/inputgenerator", "Platform", NULL); - __privinfo("http://tizen.org/privilege/keygrab", "Platform", NULL); - __tcinfo(cert_level, "platform"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! NAME NOT EXIST !!!"); - __privinfo("http://tizen.org/privilege/account.readd", NULL, NULL); - __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); - __privinfo("http://tizen.org/tizen/privilege/internet", NULL, NULL); - __privinfo("http://tizen.org/privilege/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", NULL, NULL); - __privinfo("http://tizen.org/privilege/internal/default/public", NULL, "Internal Privilege"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED !!!"); - __privinfo("http://tizen.org/privilege/telephony.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/web-history.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/reboot", "Platform", NULL); - __privinfo("http://tizen.org/privilege/inputgenerator", "Platform", NULL); - __privinfo("http://tizen.org/privilege/keygrab", "Platform", NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! DEPRECATED !!!"); - __privinfo("http://tizen.org/privilege/systemsettings", NULL, "Deprecated from 2.3.1"); - __privinfo("http://tizen.org/privilege/keymanager.admin", NULL, "Deprecated from 2.4"); - __privinfo("http://tizen.org/privilege/keymanager", NULL, "Deprecated from 3.0"); - __privinfo("http://tizen.org/privilege/minicontrol.provider", NULL, "Deprecated from 3.0"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - /* 2.2.1 Web - mobile */ - __tcinfo(version_type, "2.2.1", "wrt"); - - __tcinfo(goal, "!!! NAME NOT EXIST !!! -- Under 2.3.1, Undefined privileges on web apps are ignored"); - __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); - __privinfo("http://tizen.org/privilege/account.writeeeeee", NULL, NULL); - __privinfo("http://tizen.org/privilege/alarm.gettttttttt", NULL, NULL); - __privinfo("http://tizen.org/privilege/bluetoothsdfwfvwfdwgwgwgeegw", NULL, NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED -- with public signatured certificate!!!"); - __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); - __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); - __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); - __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED -- with partner signatured certificate!!!"); - __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); - __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); - __tcinfo(cert_level, "partner"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - /* 2.3 Web - mobile */ - __tcinfo(version_type, "2.3", "wrt"); - - __tcinfo(goal, "!!! NAME NOT EXIST !!! -- Under 2.3.1, Undefined privileges on web apps are ignored"); - __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); - __privinfo("http://tizen.org/privilege/account.writeeeeee", NULL, NULL); - __privinfo("http://tizen.org/privilege/alarm.gettttttttt", NULL, NULL); - __privinfo("http://tizen.org/privilege/bluetoothsdfwfvwfdwgwgwgeegw", NULL, NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED -- with public signatured certificate!!!"); - __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); - __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); - __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); - __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED -- with partner signatured certificate!!!"); - __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); - __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); - __tcinfo(cert_level, "partner"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - /* 2.3.1 Web - mobile */ - __tcinfo(version_type, "2.3.1", "wrt"); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public "); - __privinfo("http://tizen.org/privilege/bluetooth.gap", "Public", NULL); - __privinfo("http://tizen.org/privilege/bluetooth.health", "Public", NULL); - __privinfo("http://tizen.org/privilege/alarm", "Public", NULL); - __privinfo("http://tizen.org/privilege/application.info", "Public", NULL); - __privinfo("http://tizen.org/privilege/calendar.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/call", "Public", NULL); - __privinfo("http://tizen.org/privilege/callhistory.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/contact.write", "Public", NULL); - __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/datacontrol.consumer", "Public", NULL); - __privinfo("http://tizen.org/privilege/datasync", "Public", NULL); - __privinfo("http://tizen.org/privilege/download", "Public", NULL); - __privinfo("http://tizen.org/privilege/filesystem.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/fullscreen", "Public", NULL); - __privinfo("http://tizen.org/privilege/healthinfo", "Public", NULL); - __privinfo("http://tizen.org/privilege/internet", "Public", NULL); - __privinfo("http://tizen.org/privilege/location", "Public", NULL); - __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); - __privinfo("http://tizen.org/privilege/messaging.write", "Public", NULL); - __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL); - __privinfo("http://tizen.org/privilege/notification", "Public", NULL); - __privinfo("http://tizen.org/privilege/package.info", "Public", NULL); - __privinfo("http://tizen.org/privilege/power", "Public", NULL); - __privinfo("http://tizen.org/privilege/telephony", "Public", NULL); - __privinfo("http://tizen.org/privilege/websetting", "Public", NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Partner "); - __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); - __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); - __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); - __privinfo("http://tizen.org/privilege/call", "Public", NULL); - __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/datacontrol.consumer", "Public", NULL); - __privinfo("http://tizen.org/privilege/internet", "Public", NULL); - __privinfo("http://tizen.org/privilege/location", "Public", NULL); - __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); - __privinfo("http://tizen.org/privilege/messaging.write", "Public", NULL); - __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL); - __privinfo("http://tizen.org/privilege/notification", "Public", NULL); - __tcinfo(cert_level, "partner"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform "); - __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); - __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); - __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); - __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); - __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); - __privinfo("http://tizen.org/privilege/call", "Public", NULL); - __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/datacontrol.consumer", "Public", NULL); - __privinfo("http://tizen.org/privilege/internet", "Public", NULL); - __privinfo("http://tizen.org/privilege/location", "Public", NULL); - __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); - __privinfo("http://tizen.org/privilege/messaging.write", "Public", NULL); - __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL); - __privinfo("http://tizen.org/privilege/notification", "Public", NULL); - __tcinfo(cert_level, "platform"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! NAME NOT EXIST !!!"); - __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); - __privinfo("http://tizen.org/privilege/account.writeeeeee", NULL, NULL); - __privinfo("http://tizen.org/privilege/alarm.gettttttttt", NULL, NULL); - __privinfo("http://tizen.org/privilege/bluetoothsdfwfvwfdwgwgwgeegw", NULL, NULL); - __privinfo("http://tizen.org/privilege/ime", NULL, "Valid from 2.4"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! DEPRECATED !!!"); - __privinfo("http://tizen.org/privilege/calendar", NULL, "Deprecated from 2.0"); - __privinfo("http://tizen.org/privilege/mediacontent", NULL, "Deprecated from 2.0"); - __privinfo("http://tizen.org/privilege/systemmanager", NULL, "Deprecated from 2.3.1"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with public signatured certificate"); - __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); - __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); - __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); - __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with partner signatured certificate"); - __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); - __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); - __tcinfo(cert_level, "partner"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - /* 2.4 Web - mobile */ - __tcinfo(version_type, "2.4", "wrt"); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public "); - __privinfo("http://tizen.org/privilege/alarm", "Public", NULL); - __privinfo("http://tizen.org/privilege/application.info", "Public", NULL); - __privinfo("http://tizen.org/privilege/calendar.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/call", "Public", NULL); - __privinfo("http://tizen.org/privilege/callhistory.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/contact.write", "Public", NULL); - __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/datacontrol.consumer", "Public", NULL); - __privinfo("http://tizen.org/privilege/datasync", "Public", NULL); - __privinfo("http://tizen.org/privilege/download", "Public", NULL); - __privinfo("http://tizen.org/privilege/filesystem.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/fullscreen", "Public", NULL); - __privinfo("http://tizen.org/privilege/healthinfo", "Public", NULL); - __privinfo("http://tizen.org/privilege/internet", "Public", NULL); - __privinfo("http://tizen.org/privilege/location", "Public", NULL); - __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); - __privinfo("http://tizen.org/privilege/messaging.write", "Public", NULL); - __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL); - __privinfo("http://tizen.org/privilege/notification", "Public", NULL); - __privinfo("http://tizen.org/privilege/package.info", "Public", NULL); - __privinfo("http://tizen.org/privilege/power", "Public", NULL); - __privinfo("http://tizen.org/privilege/telephony", "Public", NULL); - __privinfo("http://tizen.org/privilege/bluetooth", "Public", "Valid from 2.4"); - __privinfo("http://tizen.org/privilege/ime", "Public", "Valid from 2.4"); - __privinfo("http://tizen.org/privilege/led", "Public", "Valid from 2.4"); - __privinfo("http://tizen.org/privilege/mediacontroller.client", "Public", "Valid from 2.4"); - __privinfo("http://tizen.org/privilege/mediacontroller.server", "Public", "Valid from 2.4"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Partner "); - __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); - __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); - __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); - __privinfo("http://tizen.org/privilege/call", "Public", NULL); - __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/datacontrol.consumer", "Public", NULL); - __privinfo("http://tizen.org/privilege/internet", "Public", NULL); - __privinfo("http://tizen.org/privilege/location", "Public", NULL); - __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); - __privinfo("http://tizen.org/privilege/messaging.write", "Public", NULL); - __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL); - __privinfo("http://tizen.org/privilege/notification", "Public", NULL); - __tcinfo(cert_level, "partner"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform "); - __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); - __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); - __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); - __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); - __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); - __privinfo("http://tizen.org/privilege/call", "Public", NULL); - __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/datacontrol.consumer", "Public", NULL); - __privinfo("http://tizen.org/privilege/internet", "Public", NULL); - __privinfo("http://tizen.org/privilege/location", "Public", NULL); - __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); - __privinfo("http://tizen.org/privilege/messaging.write", "Public", NULL); - __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL); - __privinfo("http://tizen.org/privilege/notification", "Public", NULL); - __tcinfo(cert_level, "platform"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! NAME NOT EXIST !!!"); - __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); - __privinfo("http://tizen.org/privilege/account.writeeeeee", NULL, NULL); - __privinfo("http://tizen.org/privilege/alarm.gettttttttt", NULL, NULL); - __privinfo("http://tizen.org/privilege/bluetoothsdfwfvwfdwgwgwgeegw", NULL, NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! DEPRECATED !!!"); - __privinfo("http://tizen.org/privilege/systemmanager", NULL, "Deprecated from 2.3.1"); - __privinfo("http://tizen.org/privilege/bluetooth.admin", NULL, "Deprecated from 2.4"); - __privinfo("http://tizen.org/privilege/bluetooth.gap", NULL, "Deprecated from 2.4"); - __privinfo("http://tizen.org/privilege/bluetooth.spp", NULL, "Deprecated from 2.4"); - __privinfo("http://tizen.org/privilege/bluetooth.health", NULL, "Deprecated from 2.4"); - __privinfo("http://tizen.org/privilege/websetting", NULL, "Deprecated from 2.4"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with public signatured certificate"); - __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); - __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); - __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); - __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with partner signatured certificate"); - __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); - __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); - __tcinfo(cert_level, "partner"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - /* 3.0 Web - mobile */ - __tcinfo(version_type, "3.0", "wrt"); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public "); - __privinfo("http://tizen.org/privilege/alarm", "Public", NULL); - __privinfo("http://tizen.org/privilege/application.info", "Public", NULL); - __privinfo("http://tizen.org/privilege/calendar.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/call", "Public", NULL); - __privinfo("http://tizen.org/privilege/callhistory.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/contact.write", "Public", NULL); - __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/datacontrol.consumer", "Public", NULL); - __privinfo("http://tizen.org/privilege/datasync", "Public", NULL); - __privinfo("http://tizen.org/privilege/download", "Public", NULL); - __privinfo("http://tizen.org/privilege/filesystem.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/fullscreen", "Public", NULL); - __privinfo("http://tizen.org/privilege/healthinfo", "Public", NULL); - __privinfo("http://tizen.org/privilege/internet", "Public", NULL); - __privinfo("http://tizen.org/privilege/location", "Public", NULL); - __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); - __privinfo("http://tizen.org/privilege/messaging.write", "Public", NULL); - __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL); - __privinfo("http://tizen.org/privilege/notification", "Public", NULL); - __privinfo("http://tizen.org/privilege/package.info", "Public", NULL); - __privinfo("http://tizen.org/privilege/power", "Public", NULL); - __privinfo("http://tizen.org/privilege/telephony", "Public", NULL); - __privinfo("http://tizen.org/privilege/bluetooth", "Public", NULL); - __privinfo("http://tizen.org/privilege/ime", "Public", NULL); - __privinfo("http://tizen.org/privilege/led", "Public", NULL); - __privinfo("http://tizen.org/privilege/mediacontroller.client", "Public", NULL); - __privinfo("http://tizen.org/privilege/mediacontroller.server", "Public", NULL); - __privinfo("http://tizen.org/privilege/d2d.datasharing", "Public", "Valid from 3.0"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform "); - __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); - __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); - __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); - __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); - __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); - __privinfo("http://tizen.org/privilege/call", "Public", NULL); - __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/datacontrol.consumer", "Public", NULL); - __privinfo("http://tizen.org/privilege/internet", "Public", NULL); - __privinfo("http://tizen.org/privilege/location", "Public", NULL); - __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); - __privinfo("http://tizen.org/privilege/messaging.write", "Public", NULL); - __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL); - __privinfo("http://tizen.org/privilege/notification", "Public", NULL); - __tcinfo(cert_level, "platform"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! NAME NOT EXIST !!!"); - __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); - __privinfo("http://tizen.org/privilege/account.writeeeeee", NULL, NULL); - __privinfo("http://tizen.org/privilege/alarm.gettttttttt", NULL, NULL); - __privinfo("http://tizen.org/privilege/bluetoothsdfwfvwfdwgwgwgeegw", NULL, NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! DEPRECATED !!!"); - __privinfo("http://tizen.org/privilege/systemmanager", NULL, "Deprecated from 2.3.1"); - __privinfo("http://tizen.org/privilege/bluetooth.admin", NULL, "Deprecated from 2.4"); - __privinfo("http://tizen.org/privilege/bluetooth.gap", NULL, "Deprecated from 2.4"); - __privinfo("http://tizen.org/privilege/bluetooth.spp", NULL, "Deprecated from 2.4"); - __privinfo("http://tizen.org/privilege/bluetooth.health", NULL, "Deprecated from 2.4"); - __privinfo("http://tizen.org/privilege/websetting", NULL, "Deprecated from 2.4"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with public signatured certificate"); - __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); - __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); - __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); - __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with partner signatured certificate"); - __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); - __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); - __tcinfo(cert_level, "partner"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - /* Web - mobile => Test for duplicated privilege history */ - - __tcinfo(goal, "bluetooth exist at 1.0 and 2.4"); - - __tcinfo(version_type, "1.0", "wrt"); - __privinfo("http://tizen.org/privilege/bluetooth", NULL, NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(version_type, "2.3.1", "wrt"); - __privinfo("http://tizen.org/privilege/bluetooth", NULL, NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(version_type, "2.4", "wrt"); - __privinfo("http://tizen.org/privilege/bluetooth", NULL, NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - -#endif -#ifdef PROFILE_TYPE_WEARABLE - - /* 2.3.1 core - wearable */ - __tcinfo(version_type, "2.3.1", "core"); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public"); - __privinfo("http://tizen.org/privilege/alarm.get", "Public", NULL); - __privinfo("http://tizen.org/privilege/bluetooth", "Public", NULL); - __privinfo("http://tizen.org/privilege/call", "Public", NULL); - __privinfo("http://tizen.org/privilege/callhistory.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/callhistory.write", "Public", NULL); - __privinfo("http://tizen.org/privilege/datasharing", "Public", NULL); - __privinfo("http://tizen.org/privilege/display", "Public", NULL); - __privinfo("http://tizen.org/privilege/download", "Public", NULL); - __privinfo("http://tizen.org/privilege/display", "Public", NULL); - __privinfo("http://tizen.org/privilege/haptic", "Public", NULL); - __privinfo("http://tizen.org/privilege/internet", "Public", NULL); - __privinfo("http://tizen.org/privilege/keymanager", "Public", NULL); - __privinfo("http://tizen.org/privilege/nfc", "Public", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.info", "Public", NULL); - __privinfo("http://tizen.org/privilege/telephony", "Public", NULL); - __privinfo("http://tizen.org/privilege/widget.viewer", "Public", NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform"); - __privinfo("http://tizen.org/privilege/bluetooth.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/appmanager.kill", "Platform", NULL); - __privinfo("http://tizen.org/privilege/keymanager.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/systemsettings.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/nfc.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/telephony.admin", "Platform", NULL); - __tcinfo(cert_level, "platform"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! NAME NOT EXIST !!!"); - __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); - __privinfo("http://tizen.org/privilege/account.writeeeeee", NULL, NULL); - __privinfo("http://tizen.org/privilege/alarm.gettttttttt", NULL, NULL); - __privinfo("http://tizen.org/privilege/bluetoothsdfwfvwfdwgwgwgeegw", NULL, NULL); - __privinfo("http://tizen.org/privilege/contact.read", NULL, "Mobile profile only until 3.0"); - __privinfo("http://tizen.org/privilege/calendar.read", "Public", "Mobile profile only"); - __privinfo("http://tizen.org/privilege/calendar.write", "Public", "Mobile profile only"); - __privinfo("http://tizen.org/privilege/ime", NULL, "Valid from 3.0"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - gfree(privilege_list); - __tcinfo(goal, "!!! LEVEL MISMATCHED !!!"); - __privinfo("http://tizen.org/privilege/appmanager.kill", "Platform", NULL); - __privinfo("http://tizen.org/privilege/keymanager.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/systemsettings.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/nfc.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/telephony.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/reboot", "Platform", "Valid from 2.3.1"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - /* 3.0 core - wearable */ - __tcinfo(version_type, "3.0", "core"); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public"); - __privinfo("http://tizen.org/privilege/account.read", "Public", "Valid from 3.0"); - __privinfo("http://tizen.org/privilege/account.write", "Public", "Valid from 3.0"); - __privinfo("http://tizen.org/privilege/alarm.get", "Public", NULL); - __privinfo("http://tizen.org/privilege/bluetooth", "Public", NULL); - __privinfo("http://tizen.org/privilege/call", "Public", NULL); - __privinfo("http://tizen.org/privilege/callhistory.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/callhistory.write", "Public", NULL); - __privinfo("http://tizen.org/privilege/contact.read", "Public", "Valid from 3.0"); - __privinfo("http://tizen.org/privilege/display", "Public", NULL); - __privinfo("http://tizen.org/privilege/download", "Public", NULL); - __privinfo("http://tizen.org/privilege/display", "Public", NULL); - __privinfo("http://tizen.org/privilege/internet", "Public", NULL); - __privinfo("http://tizen.org/privilege/mapservice", "Public", "Valid from 2.4"); - __privinfo("http://tizen.org/privilege/mediacontroller.client", "Public", "Valid from 3.0"); - __privinfo("http://tizen.org/privilege/nfc", "Public", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.clearcache", "Public", "Valid from 3.0"); - __privinfo("http://tizen.org/privilege/telephony", "Public", NULL); - __privinfo("http://tizen.org/privilege/widget.viewer", "Public", NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform"); - __privinfo("http://tizen.org/privilege/bluetooth.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/appmanager.kill", "Platform", NULL); - __privinfo("http://tizen.org/privilege/keygrab", "Platform", "Valid from 3.0"); - __privinfo("http://tizen.org/privilege/systemsettings.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/nfc.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/telephony.admin", "Platform", NULL); - __tcinfo(cert_level, "platform"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! NAME NOT EXIST !!!"); - __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); - __privinfo("http://tizen.org/privilege/account.writeeeeee", NULL, NULL); - __privinfo("http://tizen.org/privilege/alarm.gettttttttt", NULL, NULL); - __privinfo("http://tizen.org/privilege/bluetoothsdfwfvwfdwgwgwgeegw", NULL, NULL); - __privinfo("http://tizen.org/privilege/calendar.read", "Public", "Mobile profile only"); - __privinfo("http://tizen.org/privilege/calendar.write", "Public", "Mobile profile only"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED !!!"); - __privinfo("http://tizen.org/privilege/appmanager.kill", "Platform", NULL); - __privinfo("http://tizen.org/privilege/systemsettings.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/nfc.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.admin", "Platform", NULL); - __privinfo("http://tizen.org/privilege/telephony.admin", "Platform", NULL); - __privinfo("http://tizen.org/privielge/keygrab", "Platform", "Valid from 3.0"); - __privinfo("http://tizen.org/privilege/reboot", "Platform", "Valid from 2.3.1"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! DEPRECATED !!!"); - __privinfo("http://tizen.org/privilege/keymanager.admin", "Platform", "Deprecated from 3.0"); - __privinfo("http://tizen.org/privilege/keymanager", "Public", "Deprecated from 3.0"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - /* 2.3 Web - wearable */ - __tcinfo(version_type, "2.3", "wrt"); - - __tcinfo(goal, "!!! NAME NOT EXIST !!! -- Under 2.3.1, Undefined privileges on web apps are ignored"); - __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); - __privinfo("http://tizen.org/privilege/account.writeeeeee", NULL, NULL); - __privinfo("http://tizen.org/privilege/alarm.gettttttttt", NULL, NULL); - __privinfo("http://tizen.org/privilege/bluetoothsdfwfvwfdwgwgwgeegw", NULL, NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED -- with public signatured certificate!!!"); - __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); - __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); - __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); - __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED -- with partner signatured certificate!!!"); - __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); - __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); - __tcinfo(cert_level, "partner"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - /* 2.3.1 Web - wearable */ - __tcinfo(version_type, "2.3.1", "wrt"); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public "); - __privinfo("http://tizen.org/privilege/audiorecorder", "Public", "Wearable profile only"); - __privinfo("http://tizen.org/privilege/camera", "Public", "Wearable profile only"); - __privinfo("http://tizen.org/privilege/alarm", "Public", NULL); - __privinfo("http://tizen.org/privilege/application.info", "Public", NULL); - __privinfo("http://tizen.org/privilege/bluetooth.admin", "Public", NULL); - __privinfo("http://tizen.org/privilege/bluetooth.spp", "Public", NULL); - __privinfo("http://tizen.org/privilege/bluetooth.health", "Public", NULL); - __privinfo("http://tizen.org/privilege/bluetooth.gap", "Public", NULL); - __privinfo("http://tizen.org/privilege/call", "Public", NULL); - __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/download", "Public", NULL); - __privinfo("http://tizen.org/privilege/filesystem.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/healthinfo", "Public", NULL); - __privinfo("http://tizen.org/privilege/internet", "Public", NULL); - __privinfo("http://tizen.org/privilege/location", "Public", NULL); - __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); - __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL); - __privinfo("http://tizen.org/privilege/notification", "Public", NULL); - __privinfo("http://tizen.org/privilege/package.info", "Public", NULL); - __privinfo("http://tizen.org/privilege/power", "Public", NULL); - __privinfo("http://tizen.org/privilege/telephony", "Public", NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Partner "); - __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); - __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); - __privinfo("http://tizen.org/privilege/call", "Public", NULL); - __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/internet", "Public", NULL); - __tcinfo(cert_level, "partner"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform "); - __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); - __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); - __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); - __privinfo("http://tizen.org/privilege/call", "Public", NULL); - __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/internet", "Public", NULL); - __privinfo("http://tizen.org/privilege/location", "Public", NULL); - __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); - __tcinfo(cert_level, "platform"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! NAME NOT EXIST !!!"); - __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); - __privinfo("http://tizen.org/privilege/account.writeeeeee", NULL, NULL); - __privinfo("http://tizen.org/privilege/alarm.gettttttttt", NULL, NULL); - __privinfo("http://tizen.org/privilege/bluetoothsdfwfvwfdwgwgwgeegw", NULL, NULL); - __privinfo("http://tizen.org/privilege/contact.read", NULL, "Mobile profile only"); - __privinfo("http://tizen.org/privilege/ime", NULL, "Valid from 3.0"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! DEPRECATED !!!"); - __privinfo("http://tizen.org/privilege/systemmanager", NULL, "Deprecated from 2.3.1"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with public signatured certificate"); - __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); - __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); - __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with partner signatured certificate"); - __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); - __tcinfo(cert_level, "partner"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - /* 3.0 Web - wearable */ - __tcinfo(version_type, "3.0", "wrt"); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public "); - __privinfo("http://tizen.org/privilege/audiorecorder", "Public", "Wearable profile only"); - __privinfo("http://tizen.org/privilege/camera", "Public", "Wearable profile only"); - __privinfo("http://tizen.org/privilege/alarm", "Public", NULL); - __privinfo("http://tizen.org/privilege/application.info", "Public", NULL); - __privinfo("http://tizen.org/privilege/call", "Public", NULL); - __privinfo("http://tizen.org/privilege/internet", "Public", NULL); - __privinfo("http://tizen.org/privilege/location", "Public", NULL); - __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); - __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL); - __privinfo("http://tizen.org/privilege/notification", "Public", NULL); - __privinfo("http://tizen.org/privilege/package.info", "Public", NULL); - __privinfo("http://tizen.org/privilege/power", "Public", NULL); - __privinfo("http://tizen.org/privilege/telephony", "Public", NULL); - __privinfo("http://tizen.org/privilege/bluetooth", "Public", "Valid from 3.0"); - __privinfo("http://tizen.org/privilege/ime", "Public", "Valid from 3.0"); - __privinfo("http://tizen.org/privilege/led", "Public", "Valid from 3.0"); - __privinfo("http://tizen.org/privilege/mediacontroller.client", "Public", "Valid from 3.0"); - __privinfo("http://tizen.org/privilege/mediacontroller.server", "Public", "Valid from 3.0"); - __privinfo("http://tizen.org/privilege/d2d.datasharing", "Public", "Valid from 3.0"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Partner "); - __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); - __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); - __privinfo("http://tizen.org/privilege/call", "Public", NULL); - __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/internet", "Public", NULL); - __tcinfo(cert_level, "partner"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform "); - __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); - __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); - __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); - __privinfo("http://tizen.org/privilege/call", "Public", NULL); - __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); - __privinfo("http://tizen.org/privilege/internet", "Public", NULL); - __privinfo("http://tizen.org/privilege/location", "Public", NULL); - __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); - __tcinfo(cert_level, "platform"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! NAME NOT EXIST !!!"); - __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); - __privinfo("http://tizen.org/privilege/account.writeeeeee", NULL, NULL); - __privinfo("http://tizen.org/privilege/alarm.gettttttttt", NULL, NULL); - __privinfo("http://tizen.org/privilege/bluetoothsdfwfvwfdwgwgwgeegw", NULL, NULL); - __privinfo("http://tizen.org/privilege/contact.read", NULL, "Mobile profile only"); - __privinfo("http://tizen.org/privilege/vpnservice", NULL, "Mobile profile only"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - gfree(privilege_list); - __tcinfo(goal, "!!! DEPRECATED !!!"); - __privinfo("http://tizen.org/privilege/systemmanager", NULL, "Deprecated from 2.3.1"); - __privinfo("http://tizen.org/privilege/bluetooth.gap", NULL, "Deprecated from 3.0"); - __privinfo("http://tizen.org/privilege/bluetooth.spp", NULL, "Deprecated from 3.0"); - __privinfo("http://tizen.org/privilege/bluetooth.health", NULL, "Deprecated from 3.0"); - __privinfo("http://tizen.org/privilege/bluetooth.admin", NULL, "Deprecated from 3.0"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with public signatured certificate"); - __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); - __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); - __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with partner signatured certificate"); - __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); - __tcinfo(cert_level, "partner"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); -#endif -#ifdef PROFILE_TYPE_TV - /* 2.3 Web - TV */ - - __tcinfo(version_type, "2.3", "wrt"); - - __tcinfo(goal, "!!! NAME NOT EXIST !!! -- Under 2.3.1, Undefined privileges on web apps are ignored"); - __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); - __privinfo("http://tizen.org/privilege/account.writeeeeee", NULL, NULL); - __privinfo("http://tizen.org/privilege/alarm.gettttttttt", NULL, NULL); - __privinfo("http://tizen.org/privilege/bluetoothsdfwfvwfdwgwgwgeegw", NULL, NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED -- with public signatured certificate!!!"); - __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); - __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); - __privinfo("http://tizen.org/privilege/systemmanager", "Partner", NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED -- with partner signatured certificate!!!"); - __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); - __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); - __tcinfo(cert_level, "partner"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - /* 2.4 Web - TV */ - - __tcinfo(version_type, "2.4", "wrt"); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public "); - __privinfo("http://tizen.org/privilege/alarm", "Public", NULL); - __privinfo("http://tizen.org/privilege/application.info", "Public", NULL); - __privinfo("http://tizen.org/privilege/internet", "Public", NULL); - __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); - __privinfo("http://tizen.org/privilege/package.info", "Public", NULL); - __privinfo("http://tizen.org/privilege/system", "Public", NULL); - __privinfo("http://tizen.org/privilege/telephony", "Public", NULL); - __privinfo("http://tizen.org/privilege/tv.audio", "Public", "TV profile only"); - __privinfo("http://tizen.org/privilege/tv.channel", "Public", "TV profile only"); - __privinfo("http://tizen.org/privilege/tv.display", "Public", "TV profile only"); - __privinfo("http://tizen.org/privilege/tv.window", "Public", "TV profile only"); - __privinfo("http://tizen.org/privilege/tv.inputdevice", "Public", "TV profile only"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Partner "); - __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); - __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); - __tcinfo(cert_level, "partner"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform "); - __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); - __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); - __tcinfo(cert_level, "platform"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! DEPRECATED !!!"); - __privinfo("http://tizen.org/privilege/systemmanager", NULL, "Deprecated from 2.3.1"); - __privinfo("http://tizen.org/privilege/websetting", NULL, "Deprecated from 2.4"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with public signatured certificate"); - __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); - __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); + if (_get_tizen_profile() == TIZEN_PROFILE_MOBILE) { + + /* 2.3 core - mobile */ + __tcinfo(version_type, "2.3", "core"); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public"); + __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/calendar.write", "Public", NULL); + __privinfo("http://tizen.org/privilege/call", "Public", NULL); + __privinfo("http://tizen.org/privilege/callhistory.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/callhistory.write", "Public", NULL); + __privinfo("http://tizen.org/privilege/datasharing", "Public", NULL); + __privinfo("http://tizen.org/privilege/display", "Public", NULL); + __privinfo("http://tizen.org/privilege/download", "Public", NULL); + __privinfo("http://tizen.org/privilege/display", "Public", NULL); + __privinfo("http://tizen.org/privilege/haptic", "Public", NULL); + __privinfo("http://tizen.org/privilege/internet", "Public", NULL); + __privinfo("http://tizen.org/privilege/keymanager", "Public", NULL); + __privinfo("http://tizen.org/privilege/systemsettings", "Public", NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform"); + __privinfo("http://tizen.org/privilege/bookmark.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/bluetooth.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/email.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/appmanager.kill", "Platform", NULL); + __privinfo("http://tizen.org/privilege/keymanager.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/systemsettings.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/nfc.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/telephony.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/web-history.admin", "Platform", NULL); + __tcinfo(cert_level, "platform"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! NAME NOT EXIST !!!"); + __privinfo("http://tizen.org/privilege/account.readd", NULL, NULL); + __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); + __privinfo("http://tizen.org/tizen/privilege/internet", NULL, NULL); + __privinfo("http://tizen.org/privilege/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", NULL, NULL); + __privinfo("http://tizen.org/privilege/healthinfo", NULL, "Valid from 2.3.1"); + __privinfo("http://tizen.org/privilege/keygrab", NULL, "Valid from 2.4"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "Name=OK, Version=OK, !!! Level=Mismatched !!!"); + __privinfo("http://tizen.org/privilege/bookmark.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/bluetooth.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/email.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/appmanager.kill", "Platform", NULL); + __privinfo("http://tizen.org/privilege/keymanager.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/systemsettings.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/nfc.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.admin", "Platform", NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + /* 2.3.1 core - mobile */ + __tcinfo(version_type, "2.3.1", "core"); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public"); + __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/calendar.write", "Public", NULL); + __privinfo("http://tizen.org/privilege/call", "Public", NULL); + __privinfo("http://tizen.org/privilege/callhistory.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/callhistory.write", "Public", NULL); + __privinfo("http://tizen.org/privilege/datasharing", "Public", NULL); + __privinfo("http://tizen.org/privilege/display", "Public", NULL); + __privinfo("http://tizen.org/privilege/download", "Public", NULL); + __privinfo("http://tizen.org/privilege/display", "Public", NULL); + __privinfo("http://tizen.org/privilege/haptic", "Public", NULL); + __privinfo("http://tizen.org/privilege/internet", "Public", NULL); + __privinfo("http://tizen.org/privilege/keymanager", "Public", NULL); + __privinfo("http://tizen.org/privilege/healthinfo", "Public", "Valid from 2.3.1"); + __privinfo("http://tizen.org/privilege/widget.viewer", "Public", "Valid from 2.3.1"); + __privinfo("http://tizen.org/privilege/secureelement", "Public", "Valid from 2.3.1"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform"); + __privinfo("http://tizen.org/privilege/bookmark.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/bluetooth.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/email.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/appmanager.kill", "Platform", NULL); + __privinfo("http://tizen.org/privilege/keymanager.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/systemsettings.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/nfc.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/telephony.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/web-history.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/reboot", "Platform", "Valid from 2.3.1"); + __tcinfo(cert_level, "platform"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! NAME NOT EXIST !!!"); + __privinfo("http://tizen.org/privilege/account.readd", NULL, NULL); + __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); + __privinfo("http://tizen.org/tizen/privilege/internet", NULL, NULL); + __privinfo("http://tizen.org/privilege/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", NULL, NULL); + __privinfo("http://tizen.org/privilege/ime", NULL, "Valid from 2.4"); + __privinfo("http://tizen.org/privilege/keygrab", NULL, "Valid from 2.4"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED !!!"); + __privinfo("http://tizen.org/privilege/email.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/appmanager.kill", "Platform", NULL); + __privinfo("http://tizen.org/privilege/keymanager.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/systemsettings.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/nfc.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/telephony.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/web-history.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/reboot", "Platform", "Valid from 2.3.1"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! DEPRECATED !!!"); + __privinfo("http://tizen.org/privilege/systemsettings", NULL, "Deprecated from 2.3.1"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + /* 2.4 core - mobile */ + __tcinfo(version_type, "2.4", "core"); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public"); + __privinfo("http://tizen.org/privilege/internet", "Public", NULL); + __privinfo("http://tizen.org/privilege/keymanager", "Public", NULL); + __privinfo("http://tizen.org/privilege/healthinfo", "Public", NULL); + __privinfo("http://tizen.org/privilege/widget.viewer", "Public", NULL); + __privinfo("http://tizen.org/privilege/secureelement", "Public", NULL); + __privinfo("http://tizen.org/privilege/apphistory.read", "Public", "Valid from 2.4"); + __privinfo("http://tizen.org/privilege/appmanager.kill.bgapp", "Public", "Valid from 2.4"); + __privinfo("http://tizen.org/privilege/ime", "Public", "Valid from 2.4"); + __privinfo("http://tizen.org/privilege/imemanager", "Public", "Valid from 2.4"); + __privinfo("http://tizen.org/privilege/mapservice", "Public", "Valid from 2.4"); + __privinfo("http://tizen.org/privilege/mediacontroller.client", "Public", "Valid from 2.4"); + __privinfo("http://tizen.org/privilege/mediacontroller.server", "Public", "Valid from 2.4"); + __privinfo("http://tizen.org/privilege/minicontrol.provider", "Public", "Valid from 2.4 and deprecated from 3.0"); + __privinfo("http://tizen.org/privilege/mediahistory.read", "Public", "Valid from 2.4"); + __privinfo("http://tizen.org/privilege/packagemanager.clearcache", "Public", "Valid from 2.4"); + __privinfo("http://tizen.org/privilege/systemmonitor", "Public", "Valid from 2.4"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform"); + __privinfo("http://tizen.org/privilege/web-history.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/reboot", "Platform", NULL); + __privinfo("http://tizen.org/privilege/inputgenerator", "Platform", "Valid from 2.4"); + __privinfo("http://tizen.org/privilege/keygrab", "Platform", "Valid from 2.4"); + __tcinfo(cert_level, "platform"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! NAME NOT EXIST !!!"); + __privinfo("http://tizen.org/privilege/account.readd", NULL, NULL); + __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); + __privinfo("http://tizen.org/tizen/privilege/internet", NULL, NULL); + __privinfo("http://tizen.org/privilege/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", NULL, NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED !!!"); + __privinfo("http://tizen.org/privilege/telephony.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/web-history.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/reboot", "Platform", NULL); + __privinfo("http://tizen.org/privilege/inputgenerator", "Platform", "Valid from 2.4"); + __privinfo("http://tizen.org/privilege/keygrab", "Platform", "Valid from 2.4"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! DEPRECATED !!!"); + __privinfo("http://tizen.org/privilege/systemsettings", NULL, "Deprecated from 2.3.1"); + __privinfo("http://tizen.org/privilege/keymanager.admin", NULL, "Deprecated from 2.4"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + /* 3.0 core - mobile */ + __tcinfo(version_type, "3.0", "core"); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public"); + __privinfo("http://tizen.org/privilege/internet", "Public", NULL); + __privinfo("http://tizen.org/privilege/healthinfo", "Public", NULL); + __privinfo("http://tizen.org/privilege/widget.viewer", "Public", NULL); + __privinfo("http://tizen.org/privilege/secureelement", "Public", NULL); + __privinfo("http://tizen.org/privilege/apphistory.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/appmanager.kill.bgapp", "Public", NULL); + __privinfo("http://tizen.org/privilege/ime", "Public", NULL); + __privinfo("http://tizen.org/privilege/imemanager", "Public", NULL); + __privinfo("http://tizen.org/privilege/mapservice", "Public", NULL); + __privinfo("http://tizen.org/privilege/mediacontroller.client", "Public", NULL); + __privinfo("http://tizen.org/privilege/mediacontroller.server", "Public", NULL); + __privinfo("http://tizen.org/privilege/mediahistory.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.clearcache", "Public", NULL); + __privinfo("http://tizen.org/privilege/systemmonitor", "Public", NULL); + __privinfo("http://tizen.org/privilege/vpnservice", "Public", "Valid from 3.0, Mobile profile only"); + __privinfo("http://tizen.org/privilege/d2d.datasharing", "Public", "Valid from 3.0"); + __privinfo("http://tizen.org/privilege/location.coarse", "Public", "Valid from 3.0"); + __privinfo("http://tizen.org/privilege/use_ir", "Public", "Valid from 3.0"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform"); + __privinfo("http://tizen.org/privilege/web-history.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/reboot", "Platform", NULL); + __privinfo("http://tizen.org/privilege/inputgenerator", "Platform", NULL); + __privinfo("http://tizen.org/privilege/keygrab", "Platform", NULL); + __tcinfo(cert_level, "platform"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! NAME NOT EXIST !!!"); + __privinfo("http://tizen.org/privilege/account.readd", NULL, NULL); + __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); + __privinfo("http://tizen.org/tizen/privilege/internet", NULL, NULL); + __privinfo("http://tizen.org/privilege/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", NULL, NULL); + __privinfo("http://tizen.org/privilege/internal/default/public", NULL, "Internal Privilege"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED !!!"); + __privinfo("http://tizen.org/privilege/telephony.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/web-history.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/reboot", "Platform", NULL); + __privinfo("http://tizen.org/privilege/inputgenerator", "Platform", NULL); + __privinfo("http://tizen.org/privilege/keygrab", "Platform", NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! DEPRECATED !!!"); + __privinfo("http://tizen.org/privilege/systemsettings", NULL, "Deprecated from 2.3.1"); + __privinfo("http://tizen.org/privilege/keymanager.admin", NULL, "Deprecated from 2.4"); + __privinfo("http://tizen.org/privilege/keymanager", NULL, "Deprecated from 3.0"); + __privinfo("http://tizen.org/privilege/minicontrol.provider", NULL, "Deprecated from 3.0"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + /* 2.2.1 Web - mobile */ + __tcinfo(version_type, "2.2.1", "wrt"); + + __tcinfo(goal, "!!! NAME NOT EXIST !!! -- Under 2.3.1, Undefined privileges on web apps are ignored"); + __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); + __privinfo("http://tizen.org/privilege/account.writeeeeee", NULL, NULL); + __privinfo("http://tizen.org/privilege/alarm.gettttttttt", NULL, NULL); + __privinfo("http://tizen.org/privilege/bluetoothsdfwfvwfdwgwgwgeegw", NULL, NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED -- with public signatured certificate!!!"); + __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); + __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); + __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); + __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED -- with partner signatured certificate!!!"); + __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); + __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); + __tcinfo(cert_level, "partner"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + /* 2.3 Web - mobile */ + __tcinfo(version_type, "2.3", "wrt"); + + __tcinfo(goal, "!!! NAME NOT EXIST !!! -- Under 2.3.1, Undefined privileges on web apps are ignored"); + __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); + __privinfo("http://tizen.org/privilege/account.writeeeeee", NULL, NULL); + __privinfo("http://tizen.org/privilege/alarm.gettttttttt", NULL, NULL); + __privinfo("http://tizen.org/privilege/bluetoothsdfwfvwfdwgwgwgeegw", NULL, NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED -- with public signatured certificate!!!"); + __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); + __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); + __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); + __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED -- with partner signatured certificate!!!"); + __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); + __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); + __tcinfo(cert_level, "partner"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + /* 2.3.1 Web - mobile */ + __tcinfo(version_type, "2.3.1", "wrt"); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public "); + __privinfo("http://tizen.org/privilege/bluetooth.gap", "Public", NULL); + __privinfo("http://tizen.org/privilege/bluetooth.health", "Public", NULL); + __privinfo("http://tizen.org/privilege/alarm", "Public", NULL); + __privinfo("http://tizen.org/privilege/application.info", "Public", NULL); + __privinfo("http://tizen.org/privilege/calendar.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/call", "Public", NULL); + __privinfo("http://tizen.org/privilege/callhistory.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/contact.write", "Public", NULL); + __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/datacontrol.consumer", "Public", NULL); + __privinfo("http://tizen.org/privilege/datasync", "Public", NULL); + __privinfo("http://tizen.org/privilege/download", "Public", NULL); + __privinfo("http://tizen.org/privilege/filesystem.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/fullscreen", "Public", NULL); + __privinfo("http://tizen.org/privilege/healthinfo", "Public", NULL); + __privinfo("http://tizen.org/privilege/internet", "Public", NULL); + __privinfo("http://tizen.org/privilege/location", "Public", NULL); + __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); + __privinfo("http://tizen.org/privilege/messaging.write", "Public", NULL); + __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL); + __privinfo("http://tizen.org/privilege/notification", "Public", NULL); + __privinfo("http://tizen.org/privilege/package.info", "Public", NULL); + __privinfo("http://tizen.org/privilege/power", "Public", NULL); + __privinfo("http://tizen.org/privilege/telephony", "Public", NULL); + __privinfo("http://tizen.org/privilege/websetting", "Public", NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Partner "); + __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); + __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); + __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); + __privinfo("http://tizen.org/privilege/call", "Public", NULL); + __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/datacontrol.consumer", "Public", NULL); + __privinfo("http://tizen.org/privilege/internet", "Public", NULL); + __privinfo("http://tizen.org/privilege/location", "Public", NULL); + __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); + __privinfo("http://tizen.org/privilege/messaging.write", "Public", NULL); + __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL); + __privinfo("http://tizen.org/privilege/notification", "Public", NULL); + __tcinfo(cert_level, "partner"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform "); + __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); + __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); + __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); + __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); + __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); + __privinfo("http://tizen.org/privilege/call", "Public", NULL); + __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/datacontrol.consumer", "Public", NULL); + __privinfo("http://tizen.org/privilege/internet", "Public", NULL); + __privinfo("http://tizen.org/privilege/location", "Public", NULL); + __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); + __privinfo("http://tizen.org/privilege/messaging.write", "Public", NULL); + __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL); + __privinfo("http://tizen.org/privilege/notification", "Public", NULL); + __tcinfo(cert_level, "platform"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! NAME NOT EXIST !!!"); + __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); + __privinfo("http://tizen.org/privilege/account.writeeeeee", NULL, NULL); + __privinfo("http://tizen.org/privilege/alarm.gettttttttt", NULL, NULL); + __privinfo("http://tizen.org/privilege/bluetoothsdfwfvwfdwgwgwgeegw", NULL, NULL); + __privinfo("http://tizen.org/privilege/ime", NULL, "Valid from 2.4"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! DEPRECATED !!!"); + __privinfo("http://tizen.org/privilege/calendar", NULL, "Deprecated from 2.0"); + __privinfo("http://tizen.org/privilege/mediacontent", NULL, "Deprecated from 2.0"); + __privinfo("http://tizen.org/privilege/systemmanager", NULL, "Deprecated from 2.3.1"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with public signatured certificate"); + __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); + __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); + __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); + __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with partner signatured certificate"); + __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); + __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); + __tcinfo(cert_level, "partner"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + /* 2.4 Web - mobile */ + __tcinfo(version_type, "2.4", "wrt"); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public "); + __privinfo("http://tizen.org/privilege/alarm", "Public", NULL); + __privinfo("http://tizen.org/privilege/application.info", "Public", NULL); + __privinfo("http://tizen.org/privilege/calendar.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/call", "Public", NULL); + __privinfo("http://tizen.org/privilege/callhistory.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/contact.write", "Public", NULL); + __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/datacontrol.consumer", "Public", NULL); + __privinfo("http://tizen.org/privilege/datasync", "Public", NULL); + __privinfo("http://tizen.org/privilege/download", "Public", NULL); + __privinfo("http://tizen.org/privilege/filesystem.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/fullscreen", "Public", NULL); + __privinfo("http://tizen.org/privilege/healthinfo", "Public", NULL); + __privinfo("http://tizen.org/privilege/internet", "Public", NULL); + __privinfo("http://tizen.org/privilege/location", "Public", NULL); + __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); + __privinfo("http://tizen.org/privilege/messaging.write", "Public", NULL); + __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL); + __privinfo("http://tizen.org/privilege/notification", "Public", NULL); + __privinfo("http://tizen.org/privilege/package.info", "Public", NULL); + __privinfo("http://tizen.org/privilege/power", "Public", NULL); + __privinfo("http://tizen.org/privilege/telephony", "Public", NULL); + __privinfo("http://tizen.org/privilege/bluetooth", "Public", "Valid from 2.4"); + __privinfo("http://tizen.org/privilege/ime", "Public", "Valid from 2.4"); + __privinfo("http://tizen.org/privilege/led", "Public", "Valid from 2.4"); + __privinfo("http://tizen.org/privilege/mediacontroller.client", "Public", "Valid from 2.4"); + __privinfo("http://tizen.org/privilege/mediacontroller.server", "Public", "Valid from 2.4"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Partner "); + __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); + __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); + __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); + __privinfo("http://tizen.org/privilege/call", "Public", NULL); + __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/datacontrol.consumer", "Public", NULL); + __privinfo("http://tizen.org/privilege/internet", "Public", NULL); + __privinfo("http://tizen.org/privilege/location", "Public", NULL); + __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); + __privinfo("http://tizen.org/privilege/messaging.write", "Public", NULL); + __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL); + __privinfo("http://tizen.org/privilege/notification", "Public", NULL); + __tcinfo(cert_level, "partner"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform "); + __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); + __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); + __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); + __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); + __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); + __privinfo("http://tizen.org/privilege/call", "Public", NULL); + __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/datacontrol.consumer", "Public", NULL); + __privinfo("http://tizen.org/privilege/internet", "Public", NULL); + __privinfo("http://tizen.org/privilege/location", "Public", NULL); + __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); + __privinfo("http://tizen.org/privilege/messaging.write", "Public", NULL); + __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL); + __privinfo("http://tizen.org/privilege/notification", "Public", NULL); + __tcinfo(cert_level, "platform"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! NAME NOT EXIST !!!"); + __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); + __privinfo("http://tizen.org/privilege/account.writeeeeee", NULL, NULL); + __privinfo("http://tizen.org/privilege/alarm.gettttttttt", NULL, NULL); + __privinfo("http://tizen.org/privilege/bluetoothsdfwfvwfdwgwgwgeegw", NULL, NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! DEPRECATED !!!"); + __privinfo("http://tizen.org/privilege/systemmanager", NULL, "Deprecated from 2.3.1"); + __privinfo("http://tizen.org/privilege/bluetooth.admin", NULL, "Deprecated from 2.4"); + __privinfo("http://tizen.org/privilege/bluetooth.gap", NULL, "Deprecated from 2.4"); + __privinfo("http://tizen.org/privilege/bluetooth.spp", NULL, "Deprecated from 2.4"); + __privinfo("http://tizen.org/privilege/bluetooth.health", NULL, "Deprecated from 2.4"); + __privinfo("http://tizen.org/privilege/websetting", NULL, "Deprecated from 2.4"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with public signatured certificate"); + __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); + __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); + __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); + __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with partner signatured certificate"); + __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); + __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); + __tcinfo(cert_level, "partner"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + /* 3.0 Web - mobile */ + __tcinfo(version_type, "3.0", "wrt"); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public "); + __privinfo("http://tizen.org/privilege/alarm", "Public", NULL); + __privinfo("http://tizen.org/privilege/application.info", "Public", NULL); + __privinfo("http://tizen.org/privilege/calendar.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/call", "Public", NULL); + __privinfo("http://tizen.org/privilege/callhistory.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/contact.write", "Public", NULL); + __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/datacontrol.consumer", "Public", NULL); + __privinfo("http://tizen.org/privilege/datasync", "Public", NULL); + __privinfo("http://tizen.org/privilege/download", "Public", NULL); + __privinfo("http://tizen.org/privilege/filesystem.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/fullscreen", "Public", NULL); + __privinfo("http://tizen.org/privilege/healthinfo", "Public", NULL); + __privinfo("http://tizen.org/privilege/internet", "Public", NULL); + __privinfo("http://tizen.org/privilege/location", "Public", NULL); + __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); + __privinfo("http://tizen.org/privilege/messaging.write", "Public", NULL); + __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL); + __privinfo("http://tizen.org/privilege/notification", "Public", NULL); + __privinfo("http://tizen.org/privilege/package.info", "Public", NULL); + __privinfo("http://tizen.org/privilege/power", "Public", NULL); + __privinfo("http://tizen.org/privilege/telephony", "Public", NULL); + __privinfo("http://tizen.org/privilege/bluetooth", "Public", NULL); + __privinfo("http://tizen.org/privilege/ime", "Public", NULL); + __privinfo("http://tizen.org/privilege/led", "Public", NULL); + __privinfo("http://tizen.org/privilege/mediacontroller.client", "Public", NULL); + __privinfo("http://tizen.org/privilege/mediacontroller.server", "Public", NULL); + __privinfo("http://tizen.org/privilege/d2d.datasharing", "Public", "Valid from 3.0"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform "); + __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); + __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); + __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); + __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); + __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); + __privinfo("http://tizen.org/privilege/call", "Public", NULL); + __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/datacontrol.consumer", "Public", NULL); + __privinfo("http://tizen.org/privilege/internet", "Public", NULL); + __privinfo("http://tizen.org/privilege/location", "Public", NULL); + __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); + __privinfo("http://tizen.org/privilege/messaging.write", "Public", NULL); + __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL); + __privinfo("http://tizen.org/privilege/notification", "Public", NULL); + __tcinfo(cert_level, "platform"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! NAME NOT EXIST !!!"); + __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); + __privinfo("http://tizen.org/privilege/account.writeeeeee", NULL, NULL); + __privinfo("http://tizen.org/privilege/alarm.gettttttttt", NULL, NULL); + __privinfo("http://tizen.org/privilege/bluetoothsdfwfvwfdwgwgwgeegw", NULL, NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! DEPRECATED !!!"); + __privinfo("http://tizen.org/privilege/systemmanager", NULL, "Deprecated from 2.3.1"); + __privinfo("http://tizen.org/privilege/bluetooth.admin", NULL, "Deprecated from 2.4"); + __privinfo("http://tizen.org/privilege/bluetooth.gap", NULL, "Deprecated from 2.4"); + __privinfo("http://tizen.org/privilege/bluetooth.spp", NULL, "Deprecated from 2.4"); + __privinfo("http://tizen.org/privilege/bluetooth.health", NULL, "Deprecated from 2.4"); + __privinfo("http://tizen.org/privilege/websetting", NULL, "Deprecated from 2.4"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with public signatured certificate"); + __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); + __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); + __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); + __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with partner signatured certificate"); + __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); + __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); + __tcinfo(cert_level, "partner"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + /* Web - mobile => Test for duplicated privilege history */ + + __tcinfo(goal, "bluetooth exist at 1.0 and 2.4"); + + __tcinfo(version_type, "1.0", "wrt"); + __privinfo("http://tizen.org/privilege/bluetooth", NULL, NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(version_type, "2.3.1", "wrt"); + __privinfo("http://tizen.org/privilege/bluetooth", NULL, NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(version_type, "2.4", "wrt"); + __privinfo("http://tizen.org/privilege/bluetooth", NULL, NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); - __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with partner signatured certificate"); - __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); - __tcinfo(cert_level, "partner"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - /* 3.0 Web - TV */ - - __tcinfo(version_type, "3.0", "wrt"); - - __privinfo("http://tizen.org/privilege/alarm", "Public", NULL); - __privinfo("http://tizen.org/privilege/application.info", "Public", NULL); - __privinfo("http://tizen.org/privilege/internet", "Public", NULL); - __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); - __privinfo("http://tizen.org/privilege/package.info", "Public", NULL); - __privinfo("http://tizen.org/privilege/system", "Public", NULL); - __privinfo("http://tizen.org/privilege/telephony", "Public", NULL); - __privinfo("http://tizen.org/privilege/tv.audio", "Public", "TV profile only"); - __privinfo("http://tizen.org/privilege/tv.channel", "Public", "TV profile only"); - __privinfo("http://tizen.org/privilege/tv.display", "Public", "TV profile only"); - __privinfo("http://tizen.org/privilege/tv.window", "Public", "TV profile only"); - __privinfo("http://tizen.org/privilege/tv.inputdevice", "Public", "TV profile only"); - __privinfo("http://tizen.org/privilege/d2d.datasharing", "Public", "Valid from 3.0"); - __privinfo("http://tizen.org/privilege/volume.set", "Public", "Valid from 3.0"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Partner "); - __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); - __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); - __tcinfo(cert_level, "partner"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform "); - __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); - __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); - __tcinfo(cert_level, "platform"); - __tcinfo(expect, PRVMGR_ERR_NONE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! DEPRECATED !!!"); - __privinfo("http://tizen.org/privilege/systemmanager", NULL, "Deprecated from 2.3.1"); - __privinfo("http://tizen.org/privilege/websetting", NULL, "Deprecated from 2.4"); - __privinfo("http://tizen.org/privilege/keymanager", NULL, "Deprecated from 3.0"); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with public signatured certificate"); - __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); - __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); - __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); - __tcinfo(cert_level, "public"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); - - __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with partner signatured certificate"); - __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); - __tcinfo(cert_level, "partner"); - __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); - __privilege_manager_verify_privilege(); + } + if (_get_tizen_profile() == TIZEN_PROFILE_WEARABLE) { + + /* 2.3.1 core - wearable */ + __tcinfo(version_type, "2.3.1", "core"); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public"); + __privinfo("http://tizen.org/privilege/alarm.get", "Public", NULL); + __privinfo("http://tizen.org/privilege/bluetooth", "Public", NULL); + __privinfo("http://tizen.org/privilege/call", "Public", NULL); + __privinfo("http://tizen.org/privilege/callhistory.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/callhistory.write", "Public", NULL); + __privinfo("http://tizen.org/privilege/datasharing", "Public", NULL); + __privinfo("http://tizen.org/privilege/display", "Public", NULL); + __privinfo("http://tizen.org/privilege/download", "Public", NULL); + __privinfo("http://tizen.org/privilege/display", "Public", NULL); + __privinfo("http://tizen.org/privilege/haptic", "Public", NULL); + __privinfo("http://tizen.org/privilege/internet", "Public", NULL); + __privinfo("http://tizen.org/privilege/keymanager", "Public", NULL); + __privinfo("http://tizen.org/privilege/nfc", "Public", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.info", "Public", NULL); + __privinfo("http://tizen.org/privilege/telephony", "Public", NULL); + __privinfo("http://tizen.org/privilege/widget.viewer", "Public", NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform"); + __privinfo("http://tizen.org/privilege/bluetooth.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/appmanager.kill", "Platform", NULL); + __privinfo("http://tizen.org/privilege/keymanager.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/systemsettings.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/nfc.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/telephony.admin", "Platform", NULL); + __tcinfo(cert_level, "platform"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! NAME NOT EXIST !!!"); + __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); + __privinfo("http://tizen.org/privilege/account.writeeeeee", NULL, NULL); + __privinfo("http://tizen.org/privilege/alarm.gettttttttt", NULL, NULL); + __privinfo("http://tizen.org/privilege/bluetoothsdfwfvwfdwgwgwgeegw", NULL, NULL); + __privinfo("http://tizen.org/privilege/contact.read", NULL, "Mobile profile only until 3.0"); + __privinfo("http://tizen.org/privilege/calendar.read", "Public", "Mobile profile only"); + __privinfo("http://tizen.org/privilege/calendar.write", "Public", "Mobile profile only"); + __privinfo("http://tizen.org/privilege/ime", NULL, "Valid from 3.0"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + gfree(privilege_list); + __tcinfo(goal, "!!! LEVEL MISMATCHED !!!"); + __privinfo("http://tizen.org/privilege/appmanager.kill", "Platform", NULL); + __privinfo("http://tizen.org/privilege/keymanager.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/systemsettings.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/nfc.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/telephony.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/reboot", "Platform", "Valid from 2.3.1"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + /* 3.0 core - wearable */ + __tcinfo(version_type, "3.0", "core"); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public"); + __privinfo("http://tizen.org/privilege/account.read", "Public", "Valid from 3.0"); + __privinfo("http://tizen.org/privilege/account.write", "Public", "Valid from 3.0"); + __privinfo("http://tizen.org/privilege/alarm.get", "Public", NULL); + __privinfo("http://tizen.org/privilege/bluetooth", "Public", NULL); + __privinfo("http://tizen.org/privilege/call", "Public", NULL); + __privinfo("http://tizen.org/privilege/callhistory.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/callhistory.write", "Public", NULL); + __privinfo("http://tizen.org/privilege/contact.read", "Public", "Valid from 3.0"); + __privinfo("http://tizen.org/privilege/display", "Public", NULL); + __privinfo("http://tizen.org/privilege/download", "Public", NULL); + __privinfo("http://tizen.org/privilege/display", "Public", NULL); + __privinfo("http://tizen.org/privilege/internet", "Public", NULL); + __privinfo("http://tizen.org/privilege/mapservice", "Public", "Valid from 2.4"); + __privinfo("http://tizen.org/privilege/mediacontroller.client", "Public", "Valid from 3.0"); + __privinfo("http://tizen.org/privilege/nfc", "Public", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.clearcache", "Public", "Valid from 3.0"); + __privinfo("http://tizen.org/privilege/telephony", "Public", NULL); + __privinfo("http://tizen.org/privilege/widget.viewer", "Public", NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform"); + __privinfo("http://tizen.org/privilege/bluetooth.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/appmanager.kill", "Platform", NULL); + __privinfo("http://tizen.org/privilege/keygrab", "Platform", "Valid from 3.0"); + __privinfo("http://tizen.org/privilege/systemsettings.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/nfc.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/telephony.admin", "Platform", NULL); + __tcinfo(cert_level, "platform"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! NAME NOT EXIST !!!"); + __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); + __privinfo("http://tizen.org/privilege/account.writeeeeee", NULL, NULL); + __privinfo("http://tizen.org/privilege/alarm.gettttttttt", NULL, NULL); + __privinfo("http://tizen.org/privilege/bluetoothsdfwfvwfdwgwgwgeegw", NULL, NULL); + __privinfo("http://tizen.org/privilege/calendar.read", "Public", "Mobile profile only"); + __privinfo("http://tizen.org/privilege/calendar.write", "Public", "Mobile profile only"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED !!!"); + __privinfo("http://tizen.org/privilege/appmanager.kill", "Platform", NULL); + __privinfo("http://tizen.org/privilege/systemsettings.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/nfc.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.admin", "Platform", NULL); + __privinfo("http://tizen.org/privilege/telephony.admin", "Platform", NULL); + __privinfo("http://tizen.org/privielge/keygrab", "Platform", "Valid from 3.0"); + __privinfo("http://tizen.org/privilege/reboot", "Platform", "Valid from 2.3.1"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! DEPRECATED !!!"); + __privinfo("http://tizen.org/privilege/keymanager.admin", "Platform", "Deprecated from 3.0"); + __privinfo("http://tizen.org/privilege/keymanager", "Public", "Deprecated from 3.0"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + /* 2.3 Web - wearable */ + __tcinfo(version_type, "2.3", "wrt"); + + __tcinfo(goal, "!!! NAME NOT EXIST !!! -- Under 2.3.1, Undefined privileges on web apps are ignored"); + __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); + __privinfo("http://tizen.org/privilege/account.writeeeeee", NULL, NULL); + __privinfo("http://tizen.org/privilege/alarm.gettttttttt", NULL, NULL); + __privinfo("http://tizen.org/privilege/bluetoothsdfwfvwfdwgwgwgeegw", NULL, NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED -- with public signatured certificate!!!"); + __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); + __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); + __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); + __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED -- with partner signatured certificate!!!"); + __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); + __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); + __tcinfo(cert_level, "partner"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + /* 2.3.1 Web - wearable */ + __tcinfo(version_type, "2.3.1", "wrt"); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public "); + __privinfo("http://tizen.org/privilege/audiorecorder", "Public", "Wearable profile only"); + __privinfo("http://tizen.org/privilege/camera", "Public", "Wearable profile only"); + __privinfo("http://tizen.org/privilege/alarm", "Public", NULL); + __privinfo("http://tizen.org/privilege/application.info", "Public", NULL); + __privinfo("http://tizen.org/privilege/bluetooth.admin", "Public", NULL); + __privinfo("http://tizen.org/privilege/bluetooth.spp", "Public", NULL); + __privinfo("http://tizen.org/privilege/bluetooth.health", "Public", NULL); + __privinfo("http://tizen.org/privilege/bluetooth.gap", "Public", NULL); + __privinfo("http://tizen.org/privilege/call", "Public", NULL); + __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/download", "Public", NULL); + __privinfo("http://tizen.org/privilege/filesystem.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/healthinfo", "Public", NULL); + __privinfo("http://tizen.org/privilege/internet", "Public", NULL); + __privinfo("http://tizen.org/privilege/location", "Public", NULL); + __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); + __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL); + __privinfo("http://tizen.org/privilege/notification", "Public", NULL); + __privinfo("http://tizen.org/privilege/package.info", "Public", NULL); + __privinfo("http://tizen.org/privilege/power", "Public", NULL); + __privinfo("http://tizen.org/privilege/telephony", "Public", NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Partner "); + __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); + __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); + __privinfo("http://tizen.org/privilege/call", "Public", NULL); + __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/internet", "Public", NULL); + __tcinfo(cert_level, "partner"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform "); + __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); + __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); + __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); + __privinfo("http://tizen.org/privilege/call", "Public", NULL); + __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/internet", "Public", NULL); + __privinfo("http://tizen.org/privilege/location", "Public", NULL); + __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); + __tcinfo(cert_level, "platform"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! NAME NOT EXIST !!!"); + __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); + __privinfo("http://tizen.org/privilege/account.writeeeeee", NULL, NULL); + __privinfo("http://tizen.org/privilege/alarm.gettttttttt", NULL, NULL); + __privinfo("http://tizen.org/privilege/bluetoothsdfwfvwfdwgwgwgeegw", NULL, NULL); + __privinfo("http://tizen.org/privilege/contact.read", NULL, "Mobile profile only"); + __privinfo("http://tizen.org/privilege/ime", NULL, "Valid from 3.0"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! DEPRECATED !!!"); + __privinfo("http://tizen.org/privilege/systemmanager", NULL, "Deprecated from 2.3.1"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with public signatured certificate"); + __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); + __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); + __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with partner signatured certificate"); + __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); + __tcinfo(cert_level, "partner"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + /* 3.0 Web - wearable */ + __tcinfo(version_type, "3.0", "wrt"); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public "); + __privinfo("http://tizen.org/privilege/audiorecorder", "Public", "Wearable profile only"); + __privinfo("http://tizen.org/privilege/camera", "Public", "Wearable profile only"); + __privinfo("http://tizen.org/privilege/alarm", "Public", NULL); + __privinfo("http://tizen.org/privilege/application.info", "Public", NULL); + __privinfo("http://tizen.org/privilege/call", "Public", NULL); + __privinfo("http://tizen.org/privilege/internet", "Public", NULL); + __privinfo("http://tizen.org/privilege/location", "Public", NULL); + __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); + __privinfo("http://tizen.org/privilege/nfc.admin", "Public", NULL); + __privinfo("http://tizen.org/privilege/notification", "Public", NULL); + __privinfo("http://tizen.org/privilege/package.info", "Public", NULL); + __privinfo("http://tizen.org/privilege/power", "Public", NULL); + __privinfo("http://tizen.org/privilege/telephony", "Public", NULL); + __privinfo("http://tizen.org/privilege/bluetooth", "Public", "Valid from 3.0"); + __privinfo("http://tizen.org/privilege/ime", "Public", "Valid from 3.0"); + __privinfo("http://tizen.org/privilege/led", "Public", "Valid from 3.0"); + __privinfo("http://tizen.org/privilege/mediacontroller.client", "Public", "Valid from 3.0"); + __privinfo("http://tizen.org/privilege/mediacontroller.server", "Public", "Valid from 3.0"); + __privinfo("http://tizen.org/privilege/d2d.datasharing", "Public", "Valid from 3.0"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Partner "); + __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); + __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); + __privinfo("http://tizen.org/privilege/call", "Public", NULL); + __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/internet", "Public", NULL); + __tcinfo(cert_level, "partner"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform "); + __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); + __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); + __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); + __privinfo("http://tizen.org/privilege/call", "Public", NULL); + __privinfo("http://tizen.org/privilege/content.read", "Public", NULL); + __privinfo("http://tizen.org/privilege/internet", "Public", NULL); + __privinfo("http://tizen.org/privilege/location", "Public", NULL); + __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); + __tcinfo(cert_level, "platform"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! NAME NOT EXIST !!!"); + __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); + __privinfo("http://tizen.org/privilege/account.writeeeeee", NULL, NULL); + __privinfo("http://tizen.org/privilege/alarm.gettttttttt", NULL, NULL); + __privinfo("http://tizen.org/privilege/bluetoothsdfwfvwfdwgwgwgeegw", NULL, NULL); + __privinfo("http://tizen.org/privilege/contact.read", NULL, "Mobile profile only"); + __privinfo("http://tizen.org/privilege/vpnservice", NULL, "Mobile profile only"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + gfree(privilege_list); + __tcinfo(goal, "!!! DEPRECATED !!!"); + __privinfo("http://tizen.org/privilege/systemmanager", NULL, "Deprecated from 2.3.1"); + __privinfo("http://tizen.org/privilege/bluetooth.gap", NULL, "Deprecated from 3.0"); + __privinfo("http://tizen.org/privilege/bluetooth.spp", NULL, "Deprecated from 3.0"); + __privinfo("http://tizen.org/privilege/bluetooth.health", NULL, "Deprecated from 3.0"); + __privinfo("http://tizen.org/privilege/bluetooth.admin", NULL, "Deprecated from 3.0"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with public signatured certificate"); + __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); + __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); + __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with partner signatured certificate"); + __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); + __tcinfo(cert_level, "partner"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + } + if (_get_tizen_profile() == TIZEN_PROFILE_TV) { + + /* 2.3 Web - TV */ + + __tcinfo(version_type, "2.3", "wrt"); + + __tcinfo(goal, "!!! NAME NOT EXIST !!! -- Under 2.3.1, Undefined privileges on web apps are ignored"); + __privinfo("http://tizen.org/privilege/XXXXXXXX", NULL, NULL); + __privinfo("http://tizen.org/privilege/account.writeeeeee", NULL, NULL); + __privinfo("http://tizen.org/privilege/alarm.gettttttttt", NULL, NULL); + __privinfo("http://tizen.org/privilege/bluetoothsdfwfvwfdwgwgwgeegw", NULL, NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED -- with public signatured certificate!!!"); + __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); + __privinfo("http://tizen.org/privilege/networkbearerselection", "Partner", NULL); + __privinfo("http://tizen.org/privilege/systemmanager", "Partner", NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED -- with partner signatured certificate!!!"); + __privinfo("http://tizen.org/privilege/bluetoothmanager", "Platform", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); + __privinfo("http://tizen.org/privilege/bookmark.read", "Platform", NULL); + __tcinfo(cert_level, "partner"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + /* 2.4 Web - TV */ + + __tcinfo(version_type, "2.4", "wrt"); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Public "); + __privinfo("http://tizen.org/privilege/alarm", "Public", NULL); + __privinfo("http://tizen.org/privilege/application.info", "Public", NULL); + __privinfo("http://tizen.org/privilege/internet", "Public", NULL); + __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); + __privinfo("http://tizen.org/privilege/package.info", "Public", NULL); + __privinfo("http://tizen.org/privilege/system", "Public", NULL); + __privinfo("http://tizen.org/privilege/telephony", "Public", NULL); + __privinfo("http://tizen.org/privilege/tv.audio", "Public", "TV profile only"); + __privinfo("http://tizen.org/privilege/tv.channel", "Public", "TV profile only"); + __privinfo("http://tizen.org/privilege/tv.display", "Public", "TV profile only"); + __privinfo("http://tizen.org/privilege/tv.window", "Public", "TV profile only"); + __privinfo("http://tizen.org/privilege/tv.inputdevice", "Public", "TV profile only"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Partner "); + __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); + __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); + __tcinfo(cert_level, "partner"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform "); + __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); + __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); + __tcinfo(cert_level, "platform"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! DEPRECATED !!!"); + __privinfo("http://tizen.org/privilege/systemmanager", NULL, "Deprecated from 2.3.1"); + __privinfo("http://tizen.org/privilege/websetting", NULL, "Deprecated from 2.4"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with public signatured certificate"); + __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); + __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with partner signatured certificate"); + __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); + __tcinfo(cert_level, "partner"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + /* 3.0 Web - TV */ + + __tcinfo(version_type, "3.0", "wrt"); + + __privinfo("http://tizen.org/privilege/alarm", "Public", NULL); + __privinfo("http://tizen.org/privilege/application.info", "Public", NULL); + __privinfo("http://tizen.org/privilege/internet", "Public", NULL); + __privinfo("http://tizen.org/privilege/mediacapture", "Public", NULL); + __privinfo("http://tizen.org/privilege/package.info", "Public", NULL); + __privinfo("http://tizen.org/privilege/system", "Public", NULL); + __privinfo("http://tizen.org/privilege/telephony", "Public", NULL); + __privinfo("http://tizen.org/privilege/tv.audio", "Public", "TV profile only"); + __privinfo("http://tizen.org/privilege/tv.channel", "Public", "TV profile only"); + __privinfo("http://tizen.org/privilege/tv.display", "Public", "TV profile only"); + __privinfo("http://tizen.org/privilege/tv.window", "Public", "TV profile only"); + __privinfo("http://tizen.org/privilege/tv.inputdevice", "Public", "TV profile only"); + __privinfo("http://tizen.org/privilege/d2d.datasharing", "Public", "Valid from 3.0"); + __privinfo("http://tizen.org/privilege/volume.set", "Public", "Valid from 3.0"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Partner "); + __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); + __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); + __tcinfo(cert_level, "partner"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "Name=OK, Version=OK, Level=OK -- Platform "); + __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); + __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); + __tcinfo(cert_level, "platform"); + __tcinfo(expect, PRVMGR_ERR_NONE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! DEPRECATED !!!"); + __privinfo("http://tizen.org/privilege/systemmanager", NULL, "Deprecated from 2.3.1"); + __privinfo("http://tizen.org/privilege/websetting", NULL, "Deprecated from 2.4"); + __privinfo("http://tizen.org/privilege/keymanager", NULL, "Deprecated from 3.0"); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with public signatured certificate"); + __privinfo("http://tizen.org/privilege/appmanager.certificate", "Partner", NULL); + __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); + __privinfo("http://tizen.org/privilege/appmanager.kill", "Partner", NULL); + __tcinfo(cert_level, "public"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); + + __tcinfo(goal, "!!! LEVEL MISMATCHED !!! -- with partner signatured certificate"); + __privinfo("http://tizen.org/privilege/packagemanager.install", "Platform", NULL); + __tcinfo(cert_level, "partner"); + __tcinfo(expect, PRVMGR_ERR_INVALID_PRIVILEGE); + __privilege_manager_verify_privilege(); -#endif + } } int main() diff --git a/tool/CMakeLists.txt b/tool/CMakeLists.txt index d9dc8ad..54ed43b 100755 --- a/tool/CMakeLists.txt +++ b/tool/CMakeLists.txt @@ -9,16 +9,8 @@ SET(PRIVILEGE_VERIFIER_SRCS ) INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/capi/include) -IF("${PROFILE_TYPE}" STREQUAL "WEARABLE") - ADD_DEFINITIONS("-DPROFILE_TYPE_WEARABLE") -ELSEIF("${PROFILE_TYPE}" STREQUAL "MOBILE") - ADD_DEFINITIONS("-DPROFILE_TYPE_MOBILE") -ELSEIF("${PROFILE_TYPE}" STREQUAL "TV") - ADD_DEFINITIONS("-DPROFILE_TYPE_TV") -ENDIF() - INCLUDE(FindPkgConfig) -pkg_check_modules(${PACKAGE_NAME} REQUIRED glib-2.0 sqlite3) +pkg_check_modules(${PACKAGE_NAME} REQUIRED glib-2.0 sqlite3 iniparser) FOREACH(flag ${${PACKAGE_NAME}_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") ENDFOREACH(flag) -- 2.7.4 From d4347c7eb21a6e4251977489f5b616a325700e91 Mon Sep 17 00:00:00 2001 From: Yunjin Lee Date: Wed, 22 Mar 2017 16:53:47 +0900 Subject: [PATCH 12/16] Add API to see if the applciation is on the privacy white list Change-Id: Ic274c314ee3cf94e554fafcc8d315c16f6681fc4 Signed-off-by: Yunjin Lee --- capi/include/privilege_db_manager.h | 2 ++ capi/include/privilege_info.h | 7 ++++ capi/src/privilege_db_manager.c | 32 ++++++++++++++++++ capi/src/privilege_info.c | 16 +++++++++ test/tc-privilege-info.c | 67 ++++++++++++++++++++++++++++++++++--- 5 files changed, 120 insertions(+), 4 deletions(-) diff --git a/capi/include/privilege_db_manager.h b/capi/include/privilege_db_manager.h index 53c514b..66dd40c 100755 --- a/capi/include/privilege_db_manager.h +++ b/capi/include/privilege_db_manager.h @@ -90,6 +90,8 @@ int privilege_db_manager_is_preloaded(const char* pkgid); /* privilege should be privacy privilege */ int privilege_db_manager_is_privacy_white_list(const char* pkgid, const char* privilege); +int privilege_db_manager_is_privacy_white_list_application(const char* pkgid); + int privilege_db_manager_is_user_settable(const char* pkgid, const char* privacy); int __privilege_db_manager_get_privacy_list(GList** privacy_list); diff --git a/capi/include/privilege_info.h b/capi/include/privilege_info.h index 9197cb9..a8dc7ec 100644 --- a/capi/include/privilege_info.h +++ b/capi/include/privilege_info.h @@ -161,6 +161,13 @@ EXPORT_API int privilege_info_is_user_settable(const char *pkgid, const char *pr EXPORT_API int privilege_info_get_privilege_type(uid_t uid, const char* pkgid, const char* privilege, privilege_manager_privilege_type_e *type); /** + * @brief Determines whether the given package id is on the privacy white list + * @param [in] pkgid The pkgid of application + * @return 1 if true(=given pkgid is listed on the privacy white list), 0 if false, and -1 on error + */ +EXPORT_API int privilege_info_is_privacy_white_list_application(const char* pkgid); + +/** * @brief Gets all privacy list. * @remarks @a privacy_list must be released with g_list_free() by you. * @param [out] privacy_list The privacy list diff --git a/capi/src/privilege_db_manager.c b/capi/src/privilege_db_manager.c index fad3e02..e1ef570 100755 --- a/capi/src/privilege_db_manager.c +++ b/capi/src/privilege_db_manager.c @@ -608,6 +608,38 @@ int privilege_db_manager_is_privacy_white_list(const char* pkgid, const char* pr return res; } +int privilege_db_manager_is_privacy_white_list_application(const char* pkgid) +{ + if (DISABLE_ASKUSER) + return 1; + + if (access(ASKUSER_RUNTIME_DISABLE_PATH, F_OK) == 0) { + _LOGD("aksuser is disabled in rum-time."); + return 1; + } + + sqlite3 *db = NULL; + sqlite3_stmt *stmt = NULL; + int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE); + TryReturn(ret == PRIVILEGE_DB_MANAGER_ERR_NONE, , ret, "[PRIVILEGE_DB_MANAGER] DB INITIALIZE FAIL"); + + char *sql = sqlite3_mprintf("select distinct pkg_id from privacy_whitelist where pkg_id=%Q", pkgid); + TryReturn(sql != NULL, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); + + ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL); + TryReturn(ret == SQLITE_OK, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] fail to prepare database : %s", sqlite3_errmsg(db)); + + ret = sqlite3_step(stmt); + TryReturn(ret == SQLITE_DONE || ret == SQLITE_ROW, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_step failed : %s", sqlite3_errmsg(db)); + + __finalize_db(db, stmt, sql); + + if (ret == SQLITE_ROW) + return 1; + + return 0; +} + int privilege_db_manager_is_user_settable(const char* pkgid, const char* privacy) { if (DISABLE_ASKUSER) diff --git a/capi/src/privilege_info.c b/capi/src/privilege_info.c index c513f65..33081ee 100755 --- a/capi/src/privilege_info.c +++ b/capi/src/privilege_info.c @@ -566,6 +566,22 @@ int privilege_info_is_privacy2(const char* label, const char* privilege) } } +int privilege_info_is_privacy_white_list_application(const char* pkgid) +{ + if (DISABLE_ASKUSER) + return 1; + + if (access(ASKUSER_RUNTIME_DISABLE_PATH, F_OK) == 0) { + LOGD("askuser is disabled in run-time."); + return 1; + } + TryReturn(pkgid != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER pkgid is NULL"); + int ret = privilege_db_manager_is_privacy_white_list_application(pkgid); + if(ret == 1 || ret == 0) + return ret; + return -1; +} + int privilege_info_get_privilege_type(uid_t uid, const char* pkgid, const char* privilege, privilege_manager_privilege_type_e *type) { TryReturn(pkgid != NULL && privilege != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] pkgid or privilege is NULL"); diff --git a/test/tc-privilege-info.c b/test/tc-privilege-info.c index a5361c9..ee94f5a 100755 --- a/test/tc-privilege-info.c +++ b/test/tc-privilege-info.c @@ -742,7 +742,7 @@ void __test_privilege_info_is_user_settable() } else { fail_cnt++; __color_to_red(); - printf("fail. ret = %d", ret); + printf("fail. ret = %d\n", ret); __color_to_origin(); } @@ -759,7 +759,7 @@ void __test_privilege_info_is_user_settable() } else { fail_cnt++; __color_to_red(); - printf("fail. ret = %d", ret); + printf("fail. ret = %d\n", ret); __color_to_origin(); } @@ -776,7 +776,7 @@ void __test_privilege_info_is_user_settable() } else { fail_cnt++; __color_to_red(); - printf("fail. ret = %d", ret); + printf("fail. ret = %d\n", ret); __color_to_origin(); } @@ -793,10 +793,66 @@ void __test_privilege_info_is_user_settable() } else { fail_cnt++; __color_to_red(); - printf("fail. ret = %d", ret); + printf("fail. ret = %d\n", ret); + __color_to_origin(); + } + __print_line(); +} + +void __test_privilege_info_is_privacy_white_list_application() +{ + int ret = 0; + __print_line(); + printf("pkgid = org.tizen.test\n"); + ret = privilege_info_is_privacy_white_list_application("org.tizen.test"); + printf("expect return value = 0, returned value = %d\n", ret); + if (ret == 0) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail. ret = %d\n", ret); + __color_to_origin(); + } + __print_line(); + + printf("pkgid = ise-default\n"); + ret = privilege_info_is_privacy_white_list_application("ise-default"); + printf("expect return value = 1, returned value = %d\n", ret); + + if (ret == 1) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail. ret = %d\n", ret); __color_to_origin(); } + __print_line(); + + printf("pkgid = ise-defaulttt\n"); + ret = privilege_info_is_privacy_white_list_application("ise-defaulttt"); + printf("expect return value = 0, returned value = %d\n", ret); + + if (ret == 0) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail. ret = %d", ret); + __color_to_origin(); + } + } @@ -843,6 +899,9 @@ int main() __tcinfo(function, "privilege_info_is_user_settable"); __test_privilege_info_is_user_settable(); + __tcinfo(function, "privilege_info_is_privacy_white_list_application"); + __test_privilege_info_is_privacy_white_list_application(); + __color_to_green(); printf("Test Complete\n"); printf("success : %d, ", success_cnt); -- 2.7.4 From 375e4f8d23c2692283a0148d2a9510827e6f31a8 Mon Sep 17 00:00:00 2001 From: "jin-gyu.kim" Date: Thu, 30 Mar 2017 09:48:35 +0900 Subject: [PATCH 13/16] Use %license macro to copy license file. Change-Id: I51eb930e523fd55929c0ec7f2f5e70034d506972 --- packaging/privilege-checker.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packaging/privilege-checker.spec b/packaging/privilege-checker.spec index d613c57..cf7af90 100644 --- a/packaging/privilege-checker.spec +++ b/packaging/privilege-checker.spec @@ -134,8 +134,6 @@ make %{?jobs:-j%jobs} %install rm -rf %{buildroot} -mkdir -p %{buildroot}%{_datadir}/license -cp LICENSE.APLv2 %{buildroot}%{_datadir}/license/privilege-checker %if "%{?build_type}" != "NO_DB" mkdir -p %{buildroot}%{_datadir}/privilege-manager mkdir -p %{buildroot}/%{TZ_SYS_DB} @@ -172,8 +170,8 @@ chsmack -a System %{TZ_SYS_DB}/.policy.db-journal %postun -n security-privilege-manager -p /sbin/ldconfig %files -n privilege-checker -%{_datadir}/license/privilege-checker %manifest packaging/privilege-checker.manifest +%license LICENSE.APLv2 %files -n security-privilege-manager -f privilege.lang %{_libdir}/libsecurity-privilege-manager.so* @@ -187,11 +185,13 @@ chsmack -a System %{TZ_SYS_DB}/.policy.db-journal %config(noreplace) %attr(0660, root, security_fw) /%{TZ_SYS_DB}/.policy.db-journal %endif %manifest packaging/security-privilege-manager.manifest +%license LICENSE.APLv2 %{_sysconfdir}/privilege-checker.ini %post -n security-privilege-manager-extension-mobile mv %{_sysconfdir}/privilege-checker.ini.mobile %{_sysconfdir}/privilege-checker.ini %files -n security-privilege-manager-extension-mobile +%license LICENSE.APLv2 %{_sysconfdir}/privilege-checker.ini.mobile %post -n security-privilege-manager-extension-tv @@ -218,6 +218,7 @@ mv %{_sysconfdir}/privilege-checker.ini.tv %{_sysconfdir}/privilege-checker.ini %config(noreplace) %attr(0660, root, security_fw) /%{TZ_SYS_DB}/.policy.tv.db-journal %endif %manifest packaging/security-privilege-manager.manifest +%license LICENSE.APLv2 %{_sysconfdir}/privilege-checker.ini.tv %post -n security-privilege-manager-extension-wearable @@ -244,6 +245,7 @@ mv %{_sysconfdir}/privilege-checker.ini.wearable %{_sysconfdir}/privilege-checke %config(noreplace) %attr(0660, root, security_fw) /%{TZ_SYS_DB}/.policy.wearable.db-journal %endif %manifest packaging/security-privilege-manager.manifest +%license LICENSE.APLv2 %{_sysconfdir}/privilege-checker.ini.wearable %files -n security-privilege-manager-devel @@ -257,6 +259,7 @@ mv %{_sysconfdir}/privilege-checker.ini.wearable %{_sysconfdir}/privilege-checke %{_bindir}/tc-privilege-black-list %files -n privilege-verifier +%license LICENSE.APLv2 %{_bindir}/privilege-verifier %clean -- 2.7.4 From d36b0374cdb7f44041e1489db3a0d00eacfe044d Mon Sep 17 00:00:00 2001 From: Yunjin Lee Date: Wed, 12 Apr 2017 11:08:40 +0900 Subject: [PATCH 14/16] Add web privilege for mobile profile: apphistory.read Change-Id: I67701cf6708c0a44920259c3874269bc33dc4971 Signed-off-by: Yunjin Lee --- capi/res/dbspace/wrt_privilege_info.csv | 1 + capi/res/dbspace/wrt_privilege_mapping.csv | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/capi/res/dbspace/wrt_privilege_info.csv b/capi/res/dbspace/wrt_privilege_info.csv index 711b9f5..4735a88 100644 --- a/capi/res/dbspace/wrt_privilege_info.csv +++ b/capi/res/dbspace/wrt_privilege_info.csv @@ -4,6 +4,7 @@ mobile,wrt,public,2.3,9.9,yes,http://tizen.org/privilege/account.write,,IDS_TPLA common,wrt,public,1,9.9,yes,http://tizen.org/privilege/alarm,,IDS_TPLATFORM_HEADER_MANAGING_ALARMS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_MANAGE_ALARMS_BY_RETRIEVING_SAVED_ALARMS_AND_WAKING_THE_DEVICE_UP_AT_SCHEDULED_TIMES,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,, common,wrt,public,1,2,yes,http://tizen.org/privilege/alarm.read,,,,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,http://tizen.org/privilege/alarm,http://tizen.org/privilege/alarm common,wrt,public,1,2,yes,http://tizen.org/privilege/alarm.write,,,,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,http://tizen.org/privilege/alarm,http://tizen.org/privilege/alarm +mobile,wrt,public,4.0,9.9,yes,http://tizen.org/privilege/apphistory.read,,IDS_TPLATFORM_HEADER_READING_APPLICATION_USAGE_STATISTICS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_THE_STATISTICS_OF_APPLICATION_USAGE_SUCH_AS_WHICH_APPLICATIONS_HAVE_BEEN_USED_FREQUENTLY_OR_RECENTLY,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB,, common,wrt,public,1,2,yes,http://tizen.org/privilege/application,,,,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,, common,wrt,public,2.2,9.9,yes,http://tizen.org/privilege/application.info,,IDS_TPLATFORM_BODY_RETRIEVING_APPLICATION_INFORMATION_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_RETRIEVE_INFORMATION_RELATED_TO_OTHER_APPLICATIONS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,, mobile,wrt,partner,1,2,yes,http://tizen.org/privilege/application.kill,,IDS_TPLATFORM_BODY_CLOSING_APPLICATIONS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CLOSE_OTHER_APPLICATIONS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,http://tizen.org/privilege/appmanager.kill,http://tizen.org/privilege/appmanager.kill diff --git a/capi/res/dbspace/wrt_privilege_mapping.csv b/capi/res/dbspace/wrt_privilege_mapping.csv index 210b76b..c7a959b 100644 --- a/capi/res/dbspace/wrt_privilege_mapping.csv +++ b/capi/res/dbspace/wrt_privilege_mapping.csv @@ -1,12 +1,13 @@ -#There's no platform version 2.2.1 indeed but requirement of backward compatibility exist by product released with version 2.2.x hence change platform 2.3 issued privilege's from version to 2.2.1 -#The list of modified privileges are as follows: account.read, account.write, audiorecorder, call, camera, healthinfo, internet, nfc.cardemulation, volume.set +#,,,,,"There's no platform version 2.2.1 indeed but requirement of backward compatibility exist by product released with version 2.2.x hence change platform 2.3 issued privilege's from version to 2.2.1" +#,,,,,"The list of modified privileges are as follows: account.read, account.write, audiorecorder, call, camera, healthinfo, internet, nfc.cardemulation, volume.set" #PROFILE,#PRIVILEGE_NAME,#FROM,#TO,#MAPPED_PRIVILEGE_NAME, -mobile,http://tizen.org/privilege/account.read,2.2.1,9.9,http://tizen.org/privilege/account.read,"There's no platform version 2.2 indeed but requirement of backward compatibility exist hence change" +mobile,http://tizen.org/privilege/account.read,2.2.1,9.9,http://tizen.org/privilege/account.read, mobile,http://tizen.org/privilege/account.read,2.2.1,9.9,http://tizen.org/privilege/internal/buxton/account.read, mobile,http://tizen.org/privilege/account.write,2.2.1,9.9,http://tizen.org/privilege/account.write, mobile,http://tizen.org/privilege/account.write,2.2.1,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, +mobile,http://tizen.org/privilege/apphistory.read,4,9.9,http://tizen.org/privilege/apphistory.read, 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/appmanager.certificate, -- 2.7.4 From 52c4ecd19420bc706629b811860929b675598884 Mon Sep 17 00:00:00 2001 From: Yunjin Lee Date: Thu, 11 May 2017 11:27:19 +0900 Subject: [PATCH 15/16] Add web privilege for wearable/tv profile: apphistory.read Change-Id: I3c7b18b418b704bf4fd0ed53492b18adb15ac938 Signed-off-by: Yunjin Lee --- capi/res/dbspace/tv_wrt_privilege_info.csv | 1 + capi/res/dbspace/tv_wrt_privilege_mapping.csv | 1 + capi/res/dbspace/wrt_privilege_info.csv | 2 +- capi/res/dbspace/wrt_privilege_mapping.csv | 4 ++-- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/capi/res/dbspace/tv_wrt_privilege_info.csv b/capi/res/dbspace/tv_wrt_privilege_info.csv index f8f7657..3c6d98c 100644 --- a/capi/res/dbspace/tv_wrt_privilege_info.csv +++ b/capi/res/dbspace/tv_wrt_privilege_info.csv @@ -1,5 +1,6 @@ #PROFILE,#PACKAGE_TYPE,#PRIVILEGE_LEVEL,#API_VERSION_ISSUED,#API_VERSION_EXPIRED,#DOCUMENTED,#PRIVILEGE_NAME,#NOTE,#PRIVILEGE_DISPLAY,#PRIVILEGE_DESCRIPTION,#PRIVILEGE_GROUP,#CHANGED_TO_2_4_0 tv,wrt,public,2.3,9.9,yes,http://tizen.org/privilege/alarm,,IDS_TPLATFORM_HEADER_MANAGING_ALARMS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_MANAGE_ALARMS_BY_RETRIEVING_SAVED_ALARMS_AND_WAKING_THE_DEVICE_UP_AT_SCHEDULED_TIMES,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB, +tv,wrt,public,4,9.9,yes,http://tizen.org/privilege/apphistory.read,,IDS_TPLATFORM_HEADER_READING_APPLICATION_USAGE_STATISTICS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_THE_STATISTICS_OF_APPLICATION_USAGE_SUCH_AS_WHICH_APPLICATIONS_HAVE_BEEN_USED_FREQUENTLY_OR_RECENTLY,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB, tv,wrt,public,2.3,9.9,yes,http://tizen.org/privilege/application.info,,IDS_TPLATFORM_BODY_RETRIEVING_APPLICATION_INFORMATION_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_RETRIEVE_INFORMATION_RELATED_TO_OTHER_APPLICATIONS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB, tv,wrt,public,2.3,9.9,yes,http://tizen.org/privilege/application.launch,,IDS_TPLATFORM_BODY_OPENING_APPLICATIONS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_OPEN_OTHER_APPLICATIONS_USING_THE_APPLICATION_ID_OR_APPLICATION_CONTROL,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB, tv,wrt,partner,2.3,9.9,yes,http://tizen.org/privilege/appmanager.certificate,,IDS_TPLATFORM_BODY_GETTING_APPLICATION_CERTIFICATES,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_RETRIEVE_SPECIFIED_APPLICATION_CERTIFICATES,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB, diff --git a/capi/res/dbspace/tv_wrt_privilege_mapping.csv b/capi/res/dbspace/tv_wrt_privilege_mapping.csv index 0773fc1..654e26e 100644 --- a/capi/res/dbspace/tv_wrt_privilege_mapping.csv +++ b/capi/res/dbspace/tv_wrt_privilege_mapping.csv @@ -1,6 +1,7 @@ #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/apphistory.read,4,9.9,http://tizen.org/privilege/apphistory.read 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/appmanager.certificate diff --git a/capi/res/dbspace/wrt_privilege_info.csv b/capi/res/dbspace/wrt_privilege_info.csv index 4735a88..9ee987b 100644 --- a/capi/res/dbspace/wrt_privilege_info.csv +++ b/capi/res/dbspace/wrt_privilege_info.csv @@ -4,7 +4,7 @@ mobile,wrt,public,2.3,9.9,yes,http://tizen.org/privilege/account.write,,IDS_TPLA common,wrt,public,1,9.9,yes,http://tizen.org/privilege/alarm,,IDS_TPLATFORM_HEADER_MANAGING_ALARMS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_MANAGE_ALARMS_BY_RETRIEVING_SAVED_ALARMS_AND_WAKING_THE_DEVICE_UP_AT_SCHEDULED_TIMES,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,, common,wrt,public,1,2,yes,http://tizen.org/privilege/alarm.read,,,,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,http://tizen.org/privilege/alarm,http://tizen.org/privilege/alarm common,wrt,public,1,2,yes,http://tizen.org/privilege/alarm.write,,,,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,http://tizen.org/privilege/alarm,http://tizen.org/privilege/alarm -mobile,wrt,public,4.0,9.9,yes,http://tizen.org/privilege/apphistory.read,,IDS_TPLATFORM_HEADER_READING_APPLICATION_USAGE_STATISTICS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_THE_STATISTICS_OF_APPLICATION_USAGE_SUCH_AS_WHICH_APPLICATIONS_HAVE_BEEN_USED_FREQUENTLY_OR_RECENTLY,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB,, +common,wrt,public,4,9.9,yes,http://tizen.org/privilege/apphistory.read,,IDS_TPLATFORM_HEADER_READING_APPLICATION_USAGE_STATISTICS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_READ_THE_STATISTICS_OF_APPLICATION_USAGE_SUCH_AS_WHICH_APPLICATIONS_HAVE_BEEN_USED_FREQUENTLY_OR_RECENTLY,IDS_TPLATFORM_BODY_PERSONAL_INFORMATION_ABB,, common,wrt,public,1,2,yes,http://tizen.org/privilege/application,,,,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,, common,wrt,public,2.2,9.9,yes,http://tizen.org/privilege/application.info,,IDS_TPLATFORM_BODY_RETRIEVING_APPLICATION_INFORMATION_M_NOUN,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_RETRIEVE_INFORMATION_RELATED_TO_OTHER_APPLICATIONS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,, mobile,wrt,partner,1,2,yes,http://tizen.org/privilege/application.kill,,IDS_TPLATFORM_BODY_CLOSING_APPLICATIONS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_CLOSE_OTHER_APPLICATIONS,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,http://tizen.org/privilege/appmanager.kill,http://tizen.org/privilege/appmanager.kill diff --git a/capi/res/dbspace/wrt_privilege_mapping.csv b/capi/res/dbspace/wrt_privilege_mapping.csv index c7a959b..ec4dd00 100644 --- a/capi/res/dbspace/wrt_privilege_mapping.csv +++ b/capi/res/dbspace/wrt_privilege_mapping.csv @@ -1,4 +1,4 @@ -#,,,,,"There's no platform version 2.2.1 indeed but requirement of backward compatibility exist by product released with version 2.2.x hence change platform 2.3 issued privilege's from version to 2.2.1" +#,,,,,There's no platform version 2.2.1 indeed but requirement of backward compatibility exist by product released with version 2.2.x hence change platform 2.3 issued privilege's from version to 2.2.1 #,,,,,"The list of modified privileges are as follows: account.read, account.write, audiorecorder, call, camera, healthinfo, internet, nfc.cardemulation, volume.set" #PROFILE,#PRIVILEGE_NAME,#FROM,#TO,#MAPPED_PRIVILEGE_NAME, mobile,http://tizen.org/privilege/account.read,2.2.1,9.9,http://tizen.org/privilege/account.read, @@ -7,7 +7,7 @@ mobile,http://tizen.org/privilege/account.write,2.2.1,9.9,http://tizen.org/privi mobile,http://tizen.org/privilege/account.write,2.2.1,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, -mobile,http://tizen.org/privilege/apphistory.read,4,9.9,http://tizen.org/privilege/apphistory.read, +common,http://tizen.org/privilege/apphistory.read,4,9.9,http://tizen.org/privilege/apphistory.read, 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/appmanager.certificate, -- 2.7.4 From 1e77c771efd90dd1616e72420a6dc651431851d4 Mon Sep 17 00:00:00 2001 From: Yunjin Lee Date: Wed, 22 Feb 2017 16:49:26 +0900 Subject: [PATCH 16/16] Remove unused definitions and API - remove definition related to api_version length check - remove privilege_info_is_privacy2 (it was temporary support) Change-Id: I4677507b726eb9cf502086fee52307f4e708297a Signed-off-by: Yunjin Lee --- capi/include/privilege_info.h | 8 --- capi/src/privilege_info.c | 45 +--------------- capi/src/privilege_manager.c | 4 -- test/tc-privilege-info.c | 116 ------------------------------------------ 4 files changed, 1 insertion(+), 172 deletions(-) diff --git a/capi/include/privilege_info.h b/capi/include/privilege_info.h index a8dc7ec..3ba9881 100644 --- a/capi/include/privilege_info.h +++ b/capi/include/privilege_info.h @@ -132,14 +132,6 @@ EXPORT_API int privilege_info_is_internal(const char *privilege); EXPORT_API int privilege_info_is_privacy(const char *privilege); /** - * @brief Determines whether the given privilege is privacy related or not.on the basis of whitelist - * @param [in] label The label - * @param [in] privilege The privilege - * @return 1 if true(=is privacy related privilege), 0 if false, and -1 on error - */ -EXPORT_API int privilege_info_is_privacy2(const char *label, const char *privilege); - -/** * @brief Determines whether the privacy of given pkgid is user-settable * @param [in] pkgid The package id * @param [in] privacy The privacy name diff --git a/capi/src/privilege_info.c b/capi/src/privilege_info.c index 33081ee..4ece884 100755 --- a/capi/src/privilege_info.c +++ b/capi/src/privilege_info.c @@ -523,49 +523,6 @@ int privilege_info_is_privacy(const char* privilege) return ret; } -/* TBD: remove it */ -int privilege_info_is_privacy2(const char* label, const char* privilege) -{ - int ret; - - TryReturn(privilege != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege is NULL"); - if (label == NULL) - return privilege_info_is_privacy(privilege); - if (DISABLE_ASKUSER) - return 0; - if (access(ASKUSER_RUNTIME_DISABLE_PATH, F_OK) == 0) { - LOGD("askuser is disabled in run-time."); - return 0; - } - ret = privilege_db_manager_is('p', privilege); - TryReturn(ret >= 0, , -1, "privilege_db_manager_get_privacy_by_privilege failed. ret = %d", ret); - if (ret == 0) { - LOGD("not privacy"); - return 0; - } else { - char *privacy = NULL; - ret = privilege_db_manager_get_privacy_by_privilege(privilege, &privacy); - TryReturn(ret == PRIVILEGE_DB_MANAGER_ERR_NONE && privacy != NULL, , ret, "[DB_FAIL] privilege_db_manager_get_privacy_by_privilege failed. ret = %d", ret); - LOGD("privacy : %s", privacy); - if (!strcmp(privacy, LOCATION_PRIVACY)) { - ret = 1; - } else { - ret = privilege_db_manager_is_preloaded(label); - if (ret == 1) { /* Is preloaded */ - ret = 0; - } else if (ret == 0) { - ret = 1; - } else { - LOGD("privilege_db_manager_is_preloaded failed. ret = %d", ret); - ret = -1; - } - } - free(privacy); - LOGD("final ret = %d", ret); - return ret; - } -} - int privilege_info_is_privacy_white_list_application(const char* pkgid) { if (DISABLE_ASKUSER) @@ -577,7 +534,7 @@ int privilege_info_is_privacy_white_list_application(const char* pkgid) } TryReturn(pkgid != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER pkgid is NULL"); int ret = privilege_db_manager_is_privacy_white_list_application(pkgid); - if(ret == 1 || ret == 0) + if (ret == 1 || ret == 0) return ret; return -1; } diff --git a/capi/src/privilege_manager.c b/capi/src/privilege_manager.c index fc7ce6b..4c84b4a 100755 --- a/capi/src/privilege_manager.c +++ b/capi/src/privilege_manager.c @@ -26,10 +26,6 @@ #define MESSAGE_SIZE 512 -#define API_VERSION_PADDING ".0.0" -#define API_VERSION_PADDING_LEN strlen(API_VERSION_PADDING) -#define MAX_API_VERSION_LEN 5 - #define TryReturn(condition, expr, returnValue, ...)\ if (!(condition)) { \ _LOGE(__VA_ARGS__); \ diff --git a/test/tc-privilege-info.c b/test/tc-privilege-info.c index ee94f5a..5b661cb 100755 --- a/test/tc-privilege-info.c +++ b/test/tc-privilege-info.c @@ -495,117 +495,6 @@ static void __test_privilege_info_get_privilege_group_display_name() } -static void __test_privilege_info_is_privacy2() -{ - int ret = 0; - - printf("PRELOADED + NOT LOCATION PRIVACY -> ALLOW (not privacy)\n"); - printf("pkgid: User::Pkg::org.tizen.privacy-setting\n"); - printf("privilege : http://tizen.org/privilege/account.read\n"); - ret = privilege_info_is_privacy2("User::Pkg::org.tizen.privacy-setting", "http://tizen.org/privilege/account.read"); - if (ret == 0) { - success_cnt++; - printf("SUCCESS: http://tizen.org/privilege/account.read is PRIVACY but NOT LOCATION and pkg is PRELOADED\n"); - } else { - fail_cnt++; - printf("Test FAILED. ret = %d\n", ret); - } - __print_line(); - - printf("PRELOADED + LOCATION PRIVACY -> ASK (privacy)\n"); - printf("pkgid: User::Pkg::org.tizen.privacy-setting\n"); - printf("privilege : http://tizen.org/privilege/location.coarse\n"); - ret = privilege_info_is_privacy2("User::Pkg::org.tizen.privacy-setting", "http://tizen.org/privilege/location.coarse"); - if (ret == 1) { - success_cnt++; - printf("SUCCESS: http://tizen.org/privilege/internal/buxton/location is LOCATION PRIVACY and pkg is PRELOADED\n"); - } else { - fail_cnt++; - printf("Test FAILED. ret = %d\n", ret); - } - __print_line(); - - printf("PRELOADED + NOT PRIVACY -> ALLOW (not privacy)\n"); - printf("pkgid: User::Pkg::org.tizen.privacy-setting\n"); - printf("privilege : http://tizen.org/privilege/internet\n"); - ret = privilege_info_is_privacy2("User::Pkg::org.tizen.privacy-setting", "http://tizen.org/privilege/internet"); - if (ret == 0) { - success_cnt++; - printf("SUCCESS: http://tizen.org/privilege/internet is NOT PRIVACY\n"); - } else { - fail_cnt++; - printf("Test FAILED. ret = %d\n", ret); - } - __print_line(); - - printf("NOT PRELOADED + NOT LOCATION PRIVACY -> ASK (privacy)\n"); - printf("pkgid: User::Pkg::org.test.privacy\n"); - printf("privilege : http://tizen.org/privilege/account.read\n"); - ret = privilege_info_is_privacy2("User::Pkg::org.test.privacy", "http://tizen.org/privilege/account.read"); - if (ret == 1) { - success_cnt++; - printf("SUCCESS: http://tizen.org/privilege/account.read is PRIVACY but NOT LOCATION and pkg is NOT PRELOADED\n"); - } else { - fail_cnt++; - printf("Test FAILED. ret = %d\n", ret); - } - __print_line(); - - printf("NOT PRELOADED + LOCATION PRIVACY -> ASK (privacy)\n"); - printf("pkgid: User::Pkg::org.test.privacy\n"); - printf("privilege : http://tizen.org/privilege/location.coarse\n"); - ret = privilege_info_is_privacy2("User::Pkg::org.test.privacy", "http://tizen.org/privilege/location.coarse"); - if (ret == 1) { - success_cnt++; - printf("SUCCESS: http://tizen.org/privilege/location.coarse is LOCATION PRIVACY and pkg is NOT PRELOADED\n"); - } else { - fail_cnt++; - printf("Test FAILED. ret = %d\n", ret); - } - __print_line(); - - printf("NOT PRELOADED + NOT PRIVACY -> ALLOW (not privacy)\n"); - printf("pkgid: User::Pkg::org.test.privacy\n"); - printf("privilege : http://tizen.org/privilege/internet\n"); - ret = privilege_info_is_privacy2("User::Pkg::org.test.privacy", "http://tizen.org/privilege/internet"); - if (ret == 0) { - success_cnt++; - printf("SUCCESS: http://tizen.org/privilege/internet is NOT PRIVACY and pkg is NOT PRELOADED\n"); - } else { - fail_cnt++; - printf("Test FAILED. ret = %d\n", ret); - } - __print_line(); - - - printf("NULL + NOT LOCATION PRIVACY -> ASK (privacy)\n"); - printf("pkgid: NULL\n"); - printf("privilege : http://tizen.org/privilege/account.read\n"); - ret = privilege_info_is_privacy2(NULL, "http://tizen.org/privilege/account.read"); - if (ret == 1) { - success_cnt++; - printf("SUCCESS: http://tizen.org/privilege/account.read is PRIVACY but NOT LOCATION and pkg is NOT PRELOADED\n"); - } else { - fail_cnt++; - printf("Test FAILED. ret = %d\n", ret); - } - __print_line(); - - - printf("NULL + NOT PRIVACY -> ALLOW (not privacy)\n"); - printf("pkgid: NULL\n"); - printf("privilege : http://tizen.org/privilege/internet\n"); - ret = privilege_info_is_privacy2(NULL, "http://tizen.org/privilege/internet"); - if (ret == 0) { - success_cnt++; - printf("SUCCESS: http://tizen.org/privilege/internet is NOT PRIVACY and pkg is NOT PRELOADED\n"); - } else { - fail_cnt++; - printf("Test FAILED. ret = %d\n", ret); - } - __print_line(); -} - static void __test_privilege_info_get_privilege_type() { int ret = 0; @@ -888,11 +777,6 @@ int main() __tcinfo(function, "privilege_info_get_privacy_display"); __test_privilege_info_get_privacy_display(); - if (ENABLE_ASKUSER) { - __tcinfo(function, "privilege_info_is_privacy2"); - __test_privilege_info_is_privacy2(); - } - __tcinfo(function, "privilege_info_get_privilege_type"); __test_privilege_info_get_privilege_type(); -- 2.7.4