From a9bb4647436cec21dad34a91192ba82a6de7a7ff Mon Sep 17 00:00:00 2001 From: seungku kim Date: Mon, 8 Jun 2015 14:28:49 +0900 Subject: [PATCH] 3.0 specific patch: change security service security-server API -> cynara API Change-Id: Idf262c49ab1e264e13a37cd0ef17ab5c4d70c1e6 --- bluetooth-frwk.manifest | 1 - bt-api/CMakeLists.txt | 1 - bt-api/bt-common.c | 34 --- bt-service/CMakeLists.txt | 3 +- bt-service/bt-request-handler.c | 474 ++++++++++++++++++-------------- bt-service/bt-service-main.c | 9 + bt-service/include/bt-request-handler.h | 4 + bt-service/include/bt-service-common.h | 4 +- packaging/bluetooth-frwk.spec | 6 +- 9 files changed, 290 insertions(+), 246 deletions(-) diff --git a/bluetooth-frwk.manifest b/bluetooth-frwk.manifest index fa6c8a6..1eedb7f 100644 --- a/bluetooth-frwk.manifest +++ b/bluetooth-frwk.manifest @@ -21,7 +21,6 @@ - diff --git a/bt-api/CMakeLists.txt b/bt-api/CMakeLists.txt index 8d9fe54..5ce5a27 100644 --- a/bt-api/CMakeLists.txt +++ b/bt-api/CMakeLists.txt @@ -57,7 +57,6 @@ SET(PKG_MODULES gmodule-2.0 vconf libxml-2.0 - security-server glib-2.0 gio-2.0 gio-unix-2.0 diff --git a/bt-api/bt-common.c b/bt-api/bt-common.c index e1699e5..59341f6 100644 --- a/bt-api/bt-common.c +++ b/bt-api/bt-common.c @@ -26,7 +26,6 @@ #include #include #include -#include #include @@ -1514,39 +1513,6 @@ DBusConnection *_bt_get_system_conn(void) return dbus_g_connection_get_connection(g_conn); } -void _bt_generate_cookie(void) -{ - int retval; - - ret_if(cookie != NULL); - - cookie_size = security_server_get_cookie_size(); - - cookie = g_malloc0((cookie_size*sizeof(char))+1); - - retval = security_server_request_cookie(cookie, cookie_size); - if(retval < 0) { - BT_ERR("Fail to get cookie: %d", retval); - } -} - -void _bt_destroy_cookie(void) -{ - g_free(cookie); - cookie = NULL; - cookie_size = 0; -} - -char *_bt_get_cookie(void) -{ - return cookie; -} - -int _bt_get_cookie_size(void) -{ - return cookie_size; -} - int _bt_register_osp_server_in_agent(int type, char *uuid, char *path, int fd) { int ret; diff --git a/bt-service/CMakeLists.txt b/bt-service/CMakeLists.txt index b03e5b7..751ff12 100644 --- a/bt-service/CMakeLists.txt +++ b/bt-service/CMakeLists.txt @@ -57,10 +57,11 @@ SET(PKG_MODULES dbus-glib-1 gio-2.0 alarm-service - security-server capi-content-mime-type capi-network-connection pkgmgr + cynara-client + cynara-creds-dbus ) IF("$ENV{CFLAGS}" MATCHES "-DTIZEN_NETWORK_TETHERING_ENABLE") diff --git a/bt-service/bt-request-handler.c b/bt-service/bt-request-handler.c index a9b1460..b734b6f 100644 --- a/bt-service/bt-request-handler.c +++ b/bt-service/bt-request-handler.c @@ -24,8 +24,9 @@ #include #include #include -#include #include +#include +#include #include "bluetooth-api.h" #include "bt-service-common.h" @@ -49,6 +50,8 @@ static GDBusConnection *bt_service_conn; static guint owner_id = 0; +cynara *p_cynara; +cynara_configuration *conf; static const gchar bt_service_introspection_xml[] = "" @@ -116,7 +119,7 @@ int __bt_core_request(int function_name, gboolean __bt_service_check_privilege(int function_name, int service_type, - GVariant *param); + const char *unique_name); /* Function definitions*/ static void __bt_fill_garray_from_variant(GVariant *var, GArray *param) @@ -167,6 +170,7 @@ static void __bt_service_method(GDBusConnection *connection, GVariant *out_var = NULL; int result = 0; int request_id = -1; + char *sender = NULL; g_variant_get(parameters, "(iii@ay@ay@ay@ay@ay)", &service_type, &service_function, &request_type, @@ -174,12 +178,14 @@ static void __bt_service_method(GDBusConnection *connection, out_param1 = g_array_new(FALSE, FALSE, sizeof(gchar)); + sender = dbus_g_method_get_sender(invocation); + if (service_type == BT_CORE_SERVICE) { BT_DBG("No need to check privilege from bt-core"); } else if (__bt_service_check_privilege(service_function, - service_type, param5) == FALSE) { + service_type, (const char *)sender) == FALSE) { result = BLUETOOTH_ERROR_PERMISSION_DEINED; - BT_ERR("Priviledge Check Failed"); + BT_ERR("Client don't have the privilege to excute this function"); goto fail; } @@ -266,6 +272,7 @@ static void __bt_service_method(GDBusConnection *connection, g_variant_unref(param3); g_variant_unref(param4); g_variant_unref(param5); + g_free(sender); FN_END; return; fail: @@ -290,6 +297,7 @@ fail: g_variant_unref(param3); g_variant_unref(param4); g_variant_unref(param5); + g_free(sender); } FN_END; @@ -1878,207 +1886,228 @@ int __bt_core_request(int function_name, gboolean __bt_service_check_privilege(int function_name, int service_type, - GVariant *param) + const char *unique_name) { - char *cookie = NULL; - int ret_val; - int len; - gboolean result = TRUE; - - len = g_variant_get_size(param); - if (len > 0) - cookie = (char *)g_variant_get_data(param); - - retv_if(cookie == NULL, FALSE); - - switch (function_name) { - case BT_SET_LOCAL_NAME: - case BT_START_DISCOVERY: - case BT_START_CUSTOM_DISCOVERY: - case BT_CANCEL_DISCOVERY: - case BT_OOB_ADD_REMOTE_DATA: - case BT_OOB_REMOVE_REMOTE_DATA: - case BT_SET_ADVERTISING: - case BT_SET_CUSTOM_ADVERTISING: - case BT_SET_ADVERTISING_PARAMETERS: - case BT_START_LE_DISCOVERY: - case BT_STOP_LE_DISCOVERY: - - case BT_BOND_DEVICE: - case BT_CANCEL_BONDING: - case BT_UNBOND_DEVICE: - case BT_SET_ALIAS: - case BT_SET_AUTHORIZATION: - case BT_UNSET_AUTHORIZATION: - case BT_SEARCH_SERVICE: - - case BT_RFCOMM_CLIENT_CONNECT: - case BT_RFCOMM_CLIENT_CANCEL_CONNECT: - case BT_RFCOMM_SOCKET_DISCONNECT: - case BT_RFCOMM_SOCKET_WRITE: - case BT_RFCOMM_CREATE_SOCKET: - case BT_RFCOMM_REMOVE_SOCKET: - - case BT_OPP_PUSH_FILES: - case BT_OPP_CANCEL_PUSH: - - case BT_OBEX_SERVER_ACCEPT_CONNECTION: - case BT_OBEX_SERVER_REJECT_CONNECTION: - case BT_OBEX_SERVER_ACCEPT_FILE: - case BT_OBEX_SERVER_REJECT_FILE: - case BT_OBEX_SERVER_SET_PATH: - case BT_OBEX_SERVER_SET_ROOT: - case BT_OBEX_SERVER_CANCEL_TRANSFER: - case BT_OBEX_SERVER_CANCEL_ALL_TRANSFERS: - - case BT_AUDIO_CONNECT: - case BT_AUDIO_DISCONNECT: - case BT_AG_CONNECT: - case BT_AG_DISCONNECT: - case BT_AV_CONNECT: - case BT_AV_DISCONNECT: - case BT_AVRCP_CONTROL_CONNECT: - case BT_AVRCP_CONTROL_DISCONNECT: - case BT_AV_SOURCE_CONNECT: - case BT_AV_SOURCE_DISCONNECT: - case BT_HF_CONNECT: - case BT_HF_DISCONNECT: - - case BT_HID_CONNECT: - case BT_HID_DISCONNECT: - - case BT_CONNECT_LE: - case BT_DISCONNECT_LE: - - case BT_SET_ADVERTISING_DATA: - case BT_SET_SCAN_RESPONSE_DATA: - - case BT_HDP_CONNECT: - case BT_HDP_DISCONNECT: - case BT_HDP_SEND_DATA: - - case BT_NETWORK_ACTIVATE: - case BT_NETWORK_DEACTIVATE: - case BT_NETWORK_CONNECT: - case BT_NETWORK_DISCONNECT: - case BT_NETWORK_SERVER_DISCONNECT: - - case BT_GATT_GET_PRIMARY_SERVICES: - case BT_GATT_DISCOVER_CHARACTERISTICS: - case BT_GATT_SET_PROPERTY_REQUEST: - case BT_GATT_READ_CHARACTERISTIC: - case BT_GATT_DISCOVER_CHARACTERISTICS_DESCRIPTOR: - - ret_val = security_server_check_privilege_by_cookie(cookie, - BT_PRIVILEGE_PUBLIC, "w"); - if (ret_val == SECURITY_SERVER_API_ERROR_ACCESS_DENIED) { - BT_ERR("[SMACK] Fail to access: %s", BT_PRIVILEGE_PUBLIC); - result = FALSE; - } - break; - - case BT_ENABLE_ADAPTER: - case BT_DISABLE_ADAPTER: - case BT_RESET_ADAPTER: - case BT_RECOVER_ADAPTER: - case BT_ENABLE_ADAPTER_LE: - case BT_DISABLE_ADAPTER_LE: - case BT_SET_CONNECTABLE: - case BT_SET_DISCOVERABLE_MODE: - case BT_ADD_WHITE_LIST: - case BT_REMOVE_WHITE_LIST: - case BT_CLEAR_WHITE_LIST: - case BT_SET_MANUFACTURER_DATA: - case BT_SET_SCAN_PARAMETERS: - - case BT_CANCEL_SEARCH_SERVICE: - case BT_ENABLE_RSSI: - - case BT_HID_DEVICE_ACTIVATE: - case BT_HID_DEVICE_DEACTIVATE: - case BT_HID_DEVICE_CONNECT: - case BT_HID_DEVICE_DISCONNECT: - case BT_HID_DEVICE_SEND_MOUSE_EVENT: - case BT_HID_DEVICE_SEND_KEY_EVENT: - case BT_HID_DEVICE_SEND_REPLY_TO_REPORT: - - case BT_RFCOMM_ACCEPT_CONNECTION: - case BT_RFCOMM_REJECT_CONNECTION: - case BT_RFCOMM_LISTEN: - case BT_RFCOMM_CREATE_SOCKET_EX: - case BT_RFCOMM_REMOVE_SOCKET_EX: - - case BT_PBAP_CONNECT: - case BT_PBAP_DISCONNECT: - case BT_PBAP_GET_PHONEBOOK_SIZE: - case BT_PBAP_GET_PHONEBOOK: - case BT_PBAP_GET_LIST: - case BT_PBAP_PULL_VCARD: - case BT_PBAP_PHONEBOOK_SEARCH: - - case BT_AVRCP_SET_TRACK_INFO: - case BT_AVRCP_SET_PROPERTY: - case BT_AVRCP_SET_PROPERTIES: - case BT_AVRCP_HANDLE_CONTROL: - case BT_AVRCP_CONTROL_SET_PROPERTY: - case BT_AVRCP_CONTROL_GET_PROPERTY: - case BT_AVRCP_GET_TRACK_INFO: - - case BT_SET_CONTENT_PROTECT: - case BT_BOND_DEVICE_BY_TYPE: - case BT_SET_LE_PRIVACY: - case BT_LE_CONN_UPDATE: - - ret_val = security_server_check_privilege_by_cookie(cookie, - BT_PRIVILEGE_PLATFORM, "w"); - - if (ret_val == SECURITY_SERVER_API_ERROR_ACCESS_DENIED) { - BT_ERR("[SMACK] Fail to access: %s", BT_PRIVILEGE_PLATFORM); - result = FALSE; - } - break; - - case BT_CHECK_ADAPTER: - case BT_GET_RSSI: - - case BT_GET_LOCAL_NAME: - case BT_GET_LOCAL_ADDRESS: - case BT_GET_LOCAL_VERSION: - case BT_IS_SERVICE_USED: - case BT_GET_DISCOVERABLE_MODE: - case BT_GET_DISCOVERABLE_TIME: - case BT_IS_DISCOVERYING: - case BT_IS_LE_DISCOVERYING: - case BT_IS_CONNECTABLE: - case BT_GET_BONDED_DEVICES: - case BT_GET_BONDED_DEVICE: - case BT_IS_DEVICE_CONNECTED: - case BT_GET_CONNECTED_LINK_TYPE: - case BT_GET_SPEAKER_GAIN: - case BT_SET_SPEAKER_GAIN: - case BT_OOB_READ_LOCAL_DATA: - case BT_RFCOMM_CLIENT_IS_CONNECTED: - case BT_RFCOMM_IS_UUID_AVAILABLE: - case BT_GET_ADVERTISING_DATA: - case BT_GET_SCAN_RESPONSE_DATA: - case BT_IS_ADVERTISING: - case BT_REGISTER_SCAN_FILTER: - case BT_UNREGISTER_SCAN_FILTER: - case BT_UNREGISTER_ALL_SCAN_FILTERS: - - case BT_OBEX_SERVER_ALLOCATE: - case BT_OBEX_SERVER_DEALLOCATE: - case BT_OBEX_SERVER_IS_ACTIVATED: - - /* Non-privilege control */ - break; - default: - BT_ERR("Unknown function!"); - result = FALSE; - break; - } - - return result; + int ret_val; + gboolean result = TRUE; + char *client_creds = NULL; + char *user_creds = NULL; + char *client_session = ""; + DBusConnection *conn = NULL; + int client_creds_method = CLIENT_METHOD_SMACK; + int user_creds_method = USER_METHOD_UID; + char err_msg[256] = {0, }; + + retv_if(unique_name == NULL, FALSE); + + BT_DBG("unique_name: %s", unique_name); + + if (bt_service_conn) + conn = dbus_g_connection_get_connection(bt_service_conn); + + retv_if(conn == NULL, FALSE); + + ret_val = cynara_creds_get_default_client_method(&client_creds_method); + if (ret_val != CYNARA_API_SUCCESS) { + cynara_strerror(ret_val, err_msg, sizeof(err_msg)); + BT_ERR("Fail to get default client method: %s", err_msg); + return FALSE; + } + + ret_val = cynara_creds_get_default_user_method(&user_creds_method); + if (ret_val != CYNARA_API_SUCCESS) { + cynara_strerror(ret_val, err_msg, sizeof(err_msg)); + BT_ERR("Fail to get default user method: %s", err_msg); + return FALSE; + } + + ret_val = cynara_creds_dbus_get_client(conn, unique_name, client_creds_method, &client_creds); + if (ret_val != CYNARA_API_SUCCESS) { + cynara_strerror(ret_val, err_msg, sizeof(err_msg)); + BT_ERR("Fail to get client credential: %s", err_msg); + return FALSE; + } + + BT_DBG("client_creds: %s", client_creds); + + ret_val = cynara_creds_dbus_get_user(conn, unique_name, user_creds_method, &user_creds); + if (ret_val != CYNARA_API_SUCCESS) { + cynara_strerror(ret_val, err_msg, sizeof(err_msg)); + BT_ERR("Fail to get user credential: %s", err_msg); + if (client_creds) + free(client_creds); + return FALSE; + } + + BT_DBG("user_creds: %s", user_creds); + + switch (function_name) { + case BT_SET_LOCAL_NAME: + case BT_START_DISCOVERY: + case BT_START_CUSTOM_DISCOVERY: + case BT_CANCEL_DISCOVERY: + case BT_OOB_ADD_REMOTE_DATA: + case BT_OOB_REMOVE_REMOTE_DATA: + case BT_SET_ADVERTISING: + case BT_SET_CUSTOM_ADVERTISING: + case BT_START_LE_DISCOVERY: + case BT_STOP_LE_DISCOVERY: + + case BT_BOND_DEVICE: + case BT_CANCEL_BONDING: + case BT_UNBOND_DEVICE: + case BT_SET_ALIAS: + case BT_SET_AUTHORIZATION: + case BT_UNSET_AUTHORIZATION: + case BT_SEARCH_SERVICE: + + case BT_RFCOMM_CLIENT_CONNECT: + case BT_RFCOMM_CLIENT_CANCEL_CONNECT: + case BT_RFCOMM_SOCKET_DISCONNECT: + case BT_RFCOMM_SOCKET_WRITE: + case BT_RFCOMM_CREATE_SOCKET: + case BT_RFCOMM_REMOVE_SOCKET: + + case BT_OPP_PUSH_FILES: + case BT_OPP_CANCEL_PUSH: + + case BT_OBEX_SERVER_ACCEPT_CONNECTION: + case BT_OBEX_SERVER_REJECT_CONNECTION: + case BT_OBEX_SERVER_ACCEPT_FILE: + case BT_OBEX_SERVER_REJECT_FILE: + case BT_OBEX_SERVER_SET_PATH: + case BT_OBEX_SERVER_SET_ROOT: + case BT_OBEX_SERVER_CANCEL_TRANSFER: + case BT_OBEX_SERVER_CANCEL_ALL_TRANSFERS: + + case BT_AUDIO_CONNECT: + case BT_AUDIO_DISCONNECT: + case BT_AG_CONNECT: + case BT_AG_DISCONNECT: + case BT_AV_CONNECT: + case BT_AV_DISCONNECT: + case BT_AVRCP_CONTROL_CONNECT: + case BT_AVRCP_CONTROL_DISCONNECT: + case BT_HF_CONNECT: + case BT_HF_DISCONNECT: + + case BT_HID_CONNECT: + case BT_HID_DISCONNECT: + + case BT_CONNECT_LE: + case BT_DISCONNECT_LE: + + case BT_SET_ADVERTISING_DATA: + case BT_SET_SCAN_RESPONSE_DATA: + + case BT_HDP_CONNECT: + case BT_HDP_DISCONNECT: + case BT_HDP_SEND_DATA: + + case BT_NETWORK_ACTIVATE: + case BT_NETWORK_DEACTIVATE: + case BT_NETWORK_CONNECT: + case BT_NETWORK_DISCONNECT: + case BT_NETWORK_SERVER_DISCONNECT: + + case BT_GATT_GET_PRIMARY_SERVICES: + case BT_GATT_DISCOVER_CHARACTERISTICS: + case BT_GATT_SET_PROPERTY_REQUEST: + case BT_GATT_READ_CHARACTERISTIC: + case BT_GATT_DISCOVER_CHARACTERISTICS_DESCRIPTOR: + ret_val = cynara_check(p_cynara, client_creds, client_session, user_creds, + BT_PRIVILEGE_PUBLIC); + + if (ret_val != CYNARA_API_ACCESS_ALLOWED) { + BT_ERR("Fail to access: %s", BT_PRIVILEGE_PUBLIC); + result = FALSE; + } + break; + + case BT_ENABLE_ADAPTER: + case BT_DISABLE_ADAPTER: + case BT_RESET_ADAPTER: + case BT_RECOVER_ADAPTER: + case BT_ENABLE_ADAPTER_LE: + case BT_DISABLE_ADAPTER_LE: + case BT_SET_CONNECTABLE: + case BT_SET_DISCOVERABLE_MODE: + case BT_ADD_WHITE_LIST: + case BT_REMOVE_WHITE_LIST: + case BT_CLEAR_WHITE_LIST: + case BT_SET_MANUFACTURER_DATA: + case BT_SET_SCAN_PARAMETERS: + + case BT_CANCEL_SEARCH_SERVICE: + case BT_ENABLE_RSSI: + + case BT_RFCOMM_ACCEPT_CONNECTION: + case BT_RFCOMM_REJECT_CONNECTION: + case BT_RFCOMM_LISTEN: + + case BT_AVRCP_SET_TRACK_INFO: + case BT_AVRCP_SET_PROPERTY: + case BT_AVRCP_SET_PROPERTIES: + case BT_AVRCP_HANDLE_CONTROL: + case BT_AVRCP_CONTROL_SET_PROPERTY: + case BT_AVRCP_CONTROL_GET_PROPERTY: + case BT_AVRCP_GET_TRACK_INFO: + + case BT_SET_CONTENT_PROTECT: + case BT_BOND_DEVICE_BY_TYPE: + case BT_SET_LE_PRIVACY: + case BT_LE_CONN_UPDATE: + ret_val = cynara_check(p_cynara, client_creds, client_session, user_creds, + BT_PRIVILEGE_PLATFORM); + + if (ret_val != CYNARA_API_ACCESS_ALLOWED) { + BT_ERR("Fail to access: %s", BT_PRIVILEGE_PLATFORM); + result = FALSE; + } + break; + + case BT_CHECK_ADAPTER: + case BT_GET_RSSI: + + case BT_GET_LOCAL_NAME: + case BT_GET_LOCAL_ADDRESS: + case BT_GET_LOCAL_VERSION: + case BT_IS_SERVICE_USED: + case BT_GET_DISCOVERABLE_MODE: + case BT_GET_DISCOVERABLE_TIME: + case BT_IS_DISCOVERYING: + case BT_IS_LE_DISCOVERYING: + case BT_IS_CONNECTABLE: + case BT_GET_BONDED_DEVICES: + case BT_GET_BONDED_DEVICE: + case BT_IS_DEVICE_CONNECTED: + case BT_GET_SPEAKER_GAIN: + case BT_SET_SPEAKER_GAIN: + case BT_OOB_READ_LOCAL_DATA: + case BT_RFCOMM_CLIENT_IS_CONNECTED: + case BT_RFCOMM_IS_UUID_AVAILABLE: + case BT_GET_ADVERTISING_DATA: + case BT_GET_SCAN_RESPONSE_DATA: + case BT_IS_ADVERTISING: + + case BT_OBEX_SERVER_ALLOCATE: + case BT_OBEX_SERVER_DEALLOCATE: + + /* Non-privilege control */ + break; + default: + BT_ERR("Unknown function!"); + result = FALSE; + break; + } + + if (client_creds) + free(client_creds); + + if (user_creds) + free(user_creds); + + return result; } GDBusNodeInfo *__bt_service_create_method_node_info @@ -2192,3 +2221,40 @@ void _bt_service_unregister(void) } } +int _bt_service_cynara_init(void) +{ + int result; + char err_msg[256] = {0, }; + + retv_if(p_cynara != NULL, BLUETOOTH_ERROR_ALREADY_INITIALIZED); + + result = cynara_initialize(&p_cynara, conf); + + if (result != CYNARA_API_SUCCESS) { + cynara_strerror(result, err_msg, sizeof(err_msg)); + BT_ERR("Fail to initialize cynara: [%s]", err_msg); + return BLUETOOTH_ERROR_INTERNAL; + } + + return BLUETOOTH_ERROR_NONE; +} + +void _bt_service_cynara_deinit(void) +{ + int result; + char err_msg[256] = {0, }; + + ret_if(p_cynara == NULL); + + result = cynara_finish(p_cynara); + + if (result != CYNARA_API_SUCCESS) { + cynara_strerror(result, err_msg, sizeof(err_msg)); + BT_ERR("Fail to finish cynara: [%s]", err_msg); + return; + } + + p_cynara = NULL; + conf = NULL; +} + diff --git a/bt-service/bt-service-main.c b/bt-service/bt-service-main.c index 4013e3a..6e88007 100644 --- a/bt-service/bt-service-main.c +++ b/bt-service/bt-service-main.c @@ -62,6 +62,8 @@ static void __bt_release_service(void) _bt_clear_request_list(); + _bt_service_cynara_deinit(); + BT_DBG("Terminating the bt-service daemon"); } @@ -233,6 +235,13 @@ int main(void) sigaction(SIGTERM, &sa, NULL); g_type_init(); + + /* Security Initialization */ + if (_bt_service_cynara_init() != BLUETOOTH_ERROR_NONE) { + BT_ERR("Fail to init cynara"); + return EXIT_FAILURE; + } + #ifndef TIZEN_WEARABLE if (perm_app_set_privilege("bluetooth-frwk-service", NULL, NULL) != PC_OPERATION_SUCCESS) diff --git a/bt-service/include/bt-request-handler.h b/bt-service/include/bt-request-handler.h index ab5fae2..1026c34 100644 --- a/bt-service/include/bt-request-handler.h +++ b/bt-service/include/bt-request-handler.h @@ -42,6 +42,10 @@ int _bt_service_register(void); void _bt_service_unregister(void); +int _bt_service_cynara_init(void); + +void _bt_service_cynara_deinit(void); + #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/bt-service/include/bt-service-common.h b/bt-service/include/bt-service-common.h index a3de69d..0073b09 100644 --- a/bt-service/include/bt-service-common.h +++ b/bt-service/include/bt-service-common.h @@ -226,8 +226,8 @@ extern "C" { #define GATT_UUID "00001801-0000-1000-8000-00805f9b34fb" /* Privilege */ -#define BT_PRIVILEGE_PUBLIC "bt-service::public" -#define BT_PRIVILEGE_PLATFORM "bt-service::platform" +#define BT_PRIVILEGE_PUBLIC "http://tizen.org/privilege/bluetooth" +#define BT_PRIVILEGE_PLATFORM "http://tizen.org/privilege/bluetooth.admin" /* BD Address type */ #define BDADDR_BREDR 0x00 diff --git a/packaging/bluetooth-frwk.spec b/packaging/bluetooth-frwk.spec index 82299d4..5de0445 100644 --- a/packaging/bluetooth-frwk.spec +++ b/packaging/bluetooth-frwk.spec @@ -44,7 +44,6 @@ BuildRequires: pkgconfig(utilX) %endif BuildRequires: pkgconfig(capi-network-connection) BuildRequires: pkgconfig(alarm-service) -BuildRequires: pkgconfig(security-server) BuildRequires: pkgconfig(capi-content-mime-type) BuildRequires: pkgconfig(appcore-efl) BuildRequires: pkgconfig(pkgmgr) @@ -53,8 +52,9 @@ BuildRequires: pkgconfig(pkgmgr) %if "%{?tizen_profile_name}" == "mobile" BuildRequires: pkgconfig(capi-network-tethering) %endif -#BuildRequires: pkgconfig(cynara-client) -#BuildRequires: pkgconfig(cynara-creds-dbus) +BuildRequires: pkgconfig(libprivilege-control) +BuildRequires: pkgconfig(cynara-client) +BuildRequires: pkgconfig(cynara-creds-dbus) BuildRequires: cmake -- 2.7.4