ADD_SUBDIRECTORY(server)\r
ADD_SUBDIRECTORY(client)\r
#ADD_SUBDIRECTORY(test)\r
-#ADD_SUBDIRECTORY(capi)\r
+ADD_SUBDIRECTORY(capi)\r
Version: @VERSION@
Requires: @PC_REQUIRED@
Libs: -L${libdir} @PC_LDFLAGS@
-Cflags: -I${includedir}
+Cflags: -I${includedir} @PC_CFLAGS@
SET(PREFIX ${CMAKE_INSTALL_PREFIX})
SET(INC_DIR include)
-INCLUDE_DIRECTORIES(${INC_DIR} /usr/include/privacy_manager)
+
+INCLUDE_DIRECTORIES(${INC_DIR}
+ "${CMAKE_SOURCE_DIR}/client/inc/"
+ "${CMAKE_SOURCE_DIR}/common/inc/")
#SET(requires capi-base-common dlog privacy-manager-client glib-2.0)
SET(pc_requires "capi-base-common")
SET(PRIVACY_MANAGER_CLIENT_SOURCES
${common_src_dir}/SocketConnection.cpp
${common_src_dir}/SocketStream.cpp
+ ${common_src_dir}/PrivacyIdInfo.cpp
${client_src_dir}/SocketClient.cpp
${client_src_dir}/PrivacyManager.cpp
${client_src_dir}/PrivacyChecker.cpp
+ ${client_src_dir}/privacy_checker_client.cpp
${client_src_dir}/privacy_info_client.cpp
${client_src_dir}/privacy_manager_client.cpp
)
${client_include_dir}/PrivacyChecker.h
${client_include_dir}/privacy_info_client.h
${client_include_dir}/privacy_manager_client.h
+ ${client_include_dir}/privacy_checker_client.h
${common_include_dir}/privacy_manager_client_types.h
)
SET(PRIVACY_MANAGER_CLIENT_LDFLAGS " -module -avoid-version ")
SET(PRIVACY_MANAGER_CLIENT_CFLAGS " ${CFLAGS} -fPIC ")
#SET(PRIVACY_MANAGER_CLIENT_LIBADD " ")
-SET(PC_CFLAGS -I\${includedir}/privacy_manager)
-
ADD_DEFINITIONS("-DLOG_TAG=\"PRIVACY-MANAGER-CLIENT\"")
ADD_LIBRARY(privacy-manager-client SHARED ${PRIVACY_MANAGER_CLIENT_SOURCES})
TARGET_LINK_LIBRARIES(privacy-manager-client ${pkgs_LDFLAGS} ${pkgs_LIBRARIES})
SET_TARGET_PROPERTIES(privacy-manager-client PROPERTIES VERSION ${VERSION})
###################################################################################################
+SET(PC_NAME privacy-manager-client)
+SET(PC_DESCRIPTION "Privacy Manager Client API")
+SET(PC_LDFLAGS -lprivacy-manager-client)
+SET(PC_CFLAGS -I\${includedir}/privacy_manager)
+
CONFIGURE_FILE(../privacy-manager-client.pc.in privacy-manager-client.pc @ONLY)
INSTALL(TARGETS privacy-manager-client DESTINATION ../lib COMPONENT RuntimeLibraries)
--- /dev/null
+/*\r
+ * Copyright (c) 2013 Samsung Electronics Co., Ltd All Rights Reserved\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the License);\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an AS IS BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License. \r
+ */\r
+\r
+#ifndef _PRIVACY_INFO_CLIENT_H\r
+#define _PRIVACY_INFO_CLIENT_H\r
+\r
+#include <privacy_manager_client_types.h>\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+EXTERN_API int privacy_checker_initialize(const char *package_id);\r
+EXTERN_API int privacy_checker_check_privacy(const char *privacy_id);\r
+EXTERN_API int privacy_checker_check_privacy_by_privilege(const char *privilege_id);\r
+EXTERN_API int privacy_checker_check_privacy_by_device_cap(const char *device_cap);\r
+EXTERN_API int privacy_checker_finalize(void);\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+\r
+#endif //_PRIVACY_INFO_CLIENT_H\r
* limitations under the License. \r
*/\r
\r
-#ifndef __TIZEN_PRIVACYMGR_PRIVACY_MANAGER_CLIENT_H\r
-#define __TIZEN_PRIVACYMGR_PRIVACY_MANAGER_CLIENT_H\r
+#ifndef _PRIVACY_MANAGER_CLIENT_H\r
+#define _PRIVACY_MANAGER_CLIENT_H\r
\r
#include <privacy_info_client.h>\r
#include <privacy_manager_client_types.h>\r
\r
#include <PrivacyManager.h>\r
#include <SocketClient.h>\r
+#include <PrivacyIdInfo.h>\r
#include <algorithm> \r
#include <memory>\r
#include <Utils.h>\r
PrivacyManager::addAppPackagePrivacyInfo(const std::string pkgId, const std::list < std::string >& pList)\r
{\r
int result;\r
+\r
+ std::list < std::string > privacyList;\r
+\r
+ result = PrivacyIdInfo::getPrivacyIdListFromPrivilegeList(pList, privacyList);\r
+ if (result != PRIV_MGR_ERROR_SUCCESS )\r
+ return result;\r
+\r
+ if (privacyList.size() == 0)\r
+ return PRIV_MGR_ERROR_SUCCESS;\r
+\r
m_pSocketClient->connect();\r
- m_pSocketClient->call("addPrivacyInfo", pkgId, pList, &result);\r
+ m_pSocketClient->call("addPrivacyInfo", pkgId, privacyList, &result);\r
m_pSocketClient->disconnect();\r
\r
return result;\r
--- /dev/null
+/*\r
+ * Copyright (c) 2013 Samsung Electronics Co., Ltd All Rights Reserved\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the License);\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an AS IS BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License. \r
+ */\r
+\r
+#include <string.h>\r
+#include <string>\r
+#include <memory>\r
+#include <PrivacyManager.h>\r
+#include <privacy_manager_client.h>\r
+#include <privacy_manager_client_types.h>\r
+#include "privacy_manager_client_internal_types.h"\r
+#include <PrivacyChecker.h>\r
+#include <privacy_checker_client.h>\r
+#include <privacy_info_client.h>\r
+#include <PrivacyIdInfo.h>\r
+\r
+int privacy_checker_initialize(const char *package_id)\r
+{\r
+ return PrivacyChecker::initialize(std::string(package_id));\r
+}\r
+\r
+int privacy_checker_check_privacy(const char *privacy_id)\r
+{\r
+ return PrivacyChecker::check(std::string(privacy_id));\r
+}\r
+int privacy_checker_check_privacy_by_privilege(const char *privilege_id)\r
+{\r
+ int res;\r
+ std::string privacyId;\r
+\r
+ res = PrivacyIdInfo::getPrivacyIdFromPrivilege(std::string(privilege_id), privacyId);\r
+ if (res != PRIV_MGR_ERROR_SUCCESS)\r
+ return res;\r
+\r
+ return PrivacyChecker::check(privacyId);\r
+\r
+}\r
+\r
+int privacy_checker_check_privacy_by_device_cap(const char *device_cap)\r
+{\r
+ int res;\r
+ std::string privacyId;\r
+\r
+ res = PrivacyIdInfo::getPrivacyIdFromDeviceCap(std::string(device_cap), privacyId);\r
+ if (res != PRIV_MGR_ERROR_SUCCESS)\r
+ return res;\r
+\r
+ return PrivacyChecker::check(privacyId);\r
+\r
+}\r
+\r
+int privacy_checker_finalize(void)\r
+{\r
+ return PrivacyChecker::finalize();\r
+}\r
std::list < std::string > privacyList;\r
\r
while (*privacy_list != NULL)\r
- {\r
privacyList.push_back(std::string(*privacy_list ++));\r
- }\r
+\r
retval = pInst->addAppPackagePrivacyInfo(std::string(package_id), privacyList);\r
\r
return retval;\r
--- /dev/null
+/*\r
+ * Copyright (c) 2013 Samsung Electronics Co., Ltd All Rights Reserved\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+#ifndef _PRIVACY_ID_INFO_H_\r
+#define _PRIVACY_ID_INFO_H_\r
+\r
+#include <string>\r
+#include <map>\r
+#include <list>\r
+\r
+class PrivacyIdInfo\r
+{\r
+private:\r
+ static std::map <std::string, std::string> m_privilegeToPrivacyMap;\r
+ static std::map <std::string, std::string> m_deviceCapToPrivacyMap;\r
+ static bool m_isInitialized;\r
+\r
+public:\r
+ static void initialize(void);\r
+ static int getPrivacyIdFromPrivilege(const std::string privilege, std::string& privacyId);\r
+ static int getPrivacyIdFromDeviceCap(const std::string deviceCap, std::string& privacyId);\r
+\r
+ static int getPrivacyIdListFromPrivilegeList(const std::list < std::string> privilegeList, std::list < std::string> & privacyIdList);\r
+};\r
+\r
+#endif //_PRIVACY_ID_INFO_H_
\ No newline at end of file
+++ /dev/null
-/*\r
- * Copyright (c) 2013 Samsung Electronics Co., Ltd All Rights Reserved\r
- *\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- */\r
-\r
-#ifndef _PRIVACY_INFO_H_\r
-#define _PRIVACY_INFO_H_\r
-\r
-#include <string>\r
-\r
-struct PrivacyPrivilegePair\r
-{\r
- char privilege[128];\r
- char privacy[128];\r
-\r
-};\r
-\r
-struct PrivacyPrivilegePair PrivilegeToPrivacyTable[] =\r
-{\r
- {"http://tizendev.org/privilege/contact.read", "http://tizendev.org/privilege/contact"},\r
- {"http://tizendev.org/privilege/contact.write", "http://tizendev.org/privilege/contact"},\r
- {NULL, NULL}\r
-};\r
-\r
-class PrivacyInfo\r
-{\r
-public:\r
- static std::string GetPrivacyId(const std::string& privilegeId)\r
- {\r
- int i = 0;\r
- while (PrivilegeToPrivacyTable[i].privilege != NULL) \r
- {\r
- if ( strncmp(privilegeId.c_str(), PrivilegeToPrivacyTable[i].privilege, privilegeId.size()) == 0)\r
- return std::string(PrivilegeToPrivacyTable[i].privacy);\r
- }\r
- return std::string("");\r
- }\r
-}\r
-#endif //_PRIVACY_INFO_H_
\ No newline at end of file
--- /dev/null
+/*\r
+ * Copyright (c) 2013 Samsung Electronics Co., Ltd All Rights Reserved\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+#include <PrivacyIdInfo.h>\r
+#include <privacy_manager_client_types.h>\r
+#include <dlog.h>\r
+#include <set>\r
+\r
+\r
+std::map <std::string, std::string> PrivacyIdInfo::m_privilegeToPrivacyMap;\r
+std::map <std::string, std::string> PrivacyIdInfo::m_deviceCapToPrivacyMap;\r
+bool PrivacyIdInfo:: m_isInitialized;\r
+\r
+\r
+struct PrivacyPrivilegePair\r
+{\r
+ char privilege[128];\r
+ char privacy[128];\r
+};\r
+\r
+struct PrivacyDeviceCapPair\r
+{\r
+ char DeviceCap[128];\r
+ char privacy[128];\r
+};\r
+\r
+static struct PrivacyPrivilegePair DeviceCapToPrivacyTable[] =\r
+{\r
+ {"bluetooth.admin", "bluetooth"},\r
+ {"bluetooth.gap", "bluetooth"},\r
+ {"bluetooth.spp", "bluetooth"},\r
+ {"bluetoothmanager", "bluetooth"},\r
+\r
+ {"calendar.read", "calender"},\r
+ {"calendar.write", "calender"},\r
+\r
+ {"contact.read", "contact"},\r
+ {"contact.write", "contact"},\r
+\r
+ {"messaging.read", "messaging"},\r
+ {"messaging.write", "messaging"},\r
+ {"messaging.send", "messaging"},\r
+\r
+ {"nfc.admin", "nfc"},\r
+ {"nfcmanager.cardemulation", "nfc"},\r
+ {"nfc.common", "nfc"},\r
+ {"nfc.p2p", "nfc"},\r
+ {"nfc.tag", "nfc"},\r
+\r
+ {"XMLHttpRequest", "internet"},\r
+ {"externalNetworkAccess", "internet"},\r
+\r
+ {"\0", "\0"}\r
+};\r
+\r
+static struct PrivacyPrivilegePair PrivilegeToPrivacyTable[] =\r
+{\r
+ {"http://tizen.org/privilege/bluetooth.admin", "bluetooth"},\r
+ {"http://tizen.org/privilege/bluetooth.gap", "bluetooth"},\r
+ {"http://tizen.org/privilege/bluetooth.health", "bluetooth"},\r
+ {"http://tizen.org/privilege/bluetooth.opp", "bluetooth"},\r
+ {"http://tizen.org/privilege/bluetooth.spp", "bluetooth"},\r
+ {"http://tizen.org/privilege/bluetoothmanager", "bluetooth"},\r
+\r
+ {"http://tizen.org/privilege/calendar.read", "calender"},\r
+ {"http://tizen.org/privilege/calendar.write", "calender"},\r
+\r
+ {"http://tizen.org/privilege/contact.read", "contact"},\r
+ {"http://tizen.org/privilege/contact.write", "contact"},\r
+\r
+ {"http://tizen.org/privilege/contextmanager.privacy", "context"},\r
+ {"http://tizen.org/privilege/contextmanager.upload", "context"},\r
+\r
+ {"http://tizen.org/privilege/location", "location"},\r
+\r
+ {"http://tizen.org/privilege/messaging.read", "messaging"},\r
+ {"http://tizen.org/privilege/messaging.write", "messaging"},\r
+\r
+ {"http://tizen.org/privilege/nfc.admin", "nfc"},\r
+ {"http://tizen.org/privilege/nfcmanager.cardemulation", "nfc"},\r
+ {"http://tizen.org/privilege/nfc.common", "nfc"},\r
+ {"http://tizen.org/privilege/nfc.p2p", "nfc"},\r
+ {"http://tizen.org/privilege/nfc.tag", "nfc"},\r
+\r
+ {"http://tizen.org/privilege/http", "internet"},\r
+ {"http://tizen.org/privilege/socket", "internet"},\r
+ {"http://tizen.org/privilege/web.service", "internet"},\r
+\r
+ {"\0", "\0"}\r
+};\r
+\r
+\r
+void\r
+PrivacyIdInfo::initialize(void)\r
+{\r
+ int i = 0;\r
+ while (PrivilegeToPrivacyTable[i].privilege[0] != '\0') \r
+ {\r
+ m_privilegeToPrivacyMap.insert(std::map < std::string, std::string >::value_type(std::string(PrivilegeToPrivacyTable[i].privilege), std::string(PrivilegeToPrivacyTable[i].privacy)));\r
+ ++i;\r
+ }\r
+\r
+ i = 0;\r
+ while (DeviceCapToPrivacyTable[i].privilege[0] != '\0') \r
+ {\r
+ m_deviceCapToPrivacyMap.insert(std::map < std::string, std::string >::value_type(std::string(DeviceCapToPrivacyTable[i].privilege), std::string(DeviceCapToPrivacyTable[i].privacy)));\r
+ ++i;\r
+ }\r
+ m_isInitialized = true;\r
+}\r
+\r
+int\r
+PrivacyIdInfo::getPrivacyIdFromPrivilege(const std::string privilege, std::string& privacyId)\r
+{\r
+ if (!m_isInitialized)\r
+ initialize();\r
+ std::map < std::string, std::string >::iterator iter = m_privilegeToPrivacyMap.find(privilege);\r
+ if (iter == m_privilegeToPrivacyMap.end())\r
+ return PRIV_MGR_ERROR_NO_DATA;\r
+ privacyId = iter->second;\r
+\r
+ return PRIV_MGR_ERROR_SUCCESS;\r
+}\r
+\r
+int\r
+PrivacyIdInfo::getPrivacyIdFromDeviceCap(const std::string deviceCap, std::string& privacyId)\r
+{\r
+ if (!m_isInitialized)\r
+ initialize();\r
+ std::map < std::string, std::string >::iterator iter = m_deviceCapToPrivacyMap.find(deviceCap);\r
+ if (iter == m_deviceCapToPrivacyMap.end())\r
+ return PRIV_MGR_ERROR_NO_DATA;\r
+ privacyId = iter->second;\r
+ return PRIV_MGR_ERROR_SUCCESS;\r
+}\r
+\r
+int\r
+PrivacyIdInfo::getPrivacyIdListFromPrivilegeList(const std::list < std::string> privilegeList, std::list < std::string> & privacyIdList)\r
+{\r
+ privacyIdList.clear();\r
+\r
+ std::set <std::string> privacyIdSet;\r
+\r
+ for (std::list < std::string > ::const_iterator iter = privilegeList.begin(); iter != privilegeList.end(); ++iter)\r
+ {\r
+ std::string privacyId;\r
+ int res = getPrivacyIdFromPrivilege(*iter, privacyId);\r
+ if (res == PRIV_MGR_ERROR_SUCCESS)\r
+ privacyIdSet.insert(privacyId);\r
+ }\r
+ \r
+ for (std::set < std::string >::iterator iter = privacyIdSet.begin(); iter != privacyIdSet.end(); ++iter)\r
+ {\r
+ privacyIdList.push_back(*iter);\r
+ }\r
+\r
+ return PRIV_MGR_ERROR_SUCCESS;\r
+}
\ No newline at end of file
%description -n privacy-manager-client-devel
Privacy Management(development files)
-#%package -n capi-security-privacy-manager
-#Summary: Privacy Manager API
-#Version: 0.0.1
-#Release: 0
-#Group: TO_BE/FILLED_IN
-#License: TO BE FILLED IN
-#BuildRequires: cmake
-#BuildRequires: pkgconfig(dlog)
-#BuildRequires: pkgconfig(capi-base-common)
-#BuildRequires: pkgconfig(glib-2.0)
-#Requires(post): /sbin/ldconfig
-#Requires(postun): /sbin/ldconfig
-
-#%description -n capi-security-privacy-manager
-#The Privacy Manager API provides functions to get/set information about privacy information of installed packages.
-
-#%package -n capi-security-privacy-manager-devel
-#Summary: Privacy Manager API (Development)
-#Group: TO_BE/FILLED_IN
-#Requires: %{name} = %{version}-%{release}
-
-#%description -n capi-security-privacy-manager-devel
-#The Privacy Manager API provides functions to get/set information about privacy information of installed packages.(DEV)
+%package -n capi-security-privacy-manager
+Summary: Privacy Manager API
+Version: 0.0.1
+Release: 0
+Group: TO_BE/FILLED_IN
+License: TO BE FILLED IN
+BuildRequires: cmake
+BuildRequires: pkgconfig(dlog)
+BuildRequires: pkgconfig(capi-base-common)
+BuildRequires: pkgconfig(glib-2.0)
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%description -n capi-security-privacy-manager
+The Privacy Manager API provides functions to get/set information about privacy information of installed packages.
+
+%package -n capi-security-privacy-manager-devel
+Summary: Privacy Manager API (Development)
+Group: TO_BE/FILLED_IN
+Requires: %{name} = %{version}-%{release}
+
+%description -n capi-security-privacy-manager-devel
+The Privacy Manager API provides functions to get/set information about privacy information of installed packages.(DEV)
%prep
%setup -q
%make_install -n privacy-manager-server
install -D %{SOURCE1} %{buildroot}%{_datadir}/privacy-manager-server.manifest
-#%make_install -n capi-security-privacy-manager
-#install -D %{SOURCE4} %{buildroot}%{_datadir}/capi-security-privacy-manager.manifest
+%make_install -n capi-security-privacy-manager
+install -D %{SOURCE4} %{buildroot}%{_datadir}/capi-security-privacy-manager.manifest
#mkdir -p %{buildroot}/etc/rc.d/rc3.d
#mkdir -p %{buildroot}/etc/rc.d/rc5.d
%post
/sbin/ldconfig
-if [ ! -f /opt/dbspace/.ace.db ]
+if [ ! -f /opt/dbspace/.privacy.db ]
then
/usr/bin/privacy_manager_create_clean_db.sh
fi
#/etc/rc.d/rc5.d/S10privacy-manager-server.sh
/usr/share/license/privacy-manager-server
+%files -n privacy-manager-server-devel
+%{_libdir}/pkgconfig/privacy-manager-server.pc
+
%files -n privacy-manager-client
%defattr(-,root,root,-)
%manifest %{_datadir}/privacy-manager-client.manifest
%files -n privacy-manager-client-devel
%defattr(-,root,root,-)
%{_includedir}/*
-%{_libdir}/pkgconfig/*
+%{_libdir}/pkgconfig/privacy-manager-client.pc
-#%files -n capi-security-privacy-manager
-#%{_libdir}/libcapi-security-privacy-manager.so.*
-#%manifest %{_datadir}/capi-security-privacy-manager.manifest
+%files -n capi-security-privacy-manager
+%{_libdir}/libcapi-security-privacy-manager.so.*
+%manifest %{_datadir}/capi-security-privacy-manager.manifest
-#%files -n capi-security-privacy-manager-devel
-#%{_includedir}/privacymgr/*.h
-#%{_libdir}/libcapi-security-privacy-manager.so
-#%{_libdir}/pkgconfig/*.pc
+%files -n capi-security-privacy-manager-devel
+%{_includedir}/privacymgr/*.h
+%{_libdir}/libcapi-security-privacy-manager.so
+%{_libdir}/pkgconfig/capi-security-privacy-manager.pc
prefix=@PREFIX@
exec_prefix=@EXEC_PREFIX@
libdir=@LIBDIR@
-includedir=/usr/lib/privacy_manager
+includedir=/usr/include
-Name: privacy-manager-client
-Description: Privacy Manager Client
+Name: @PC_NAME@
+Description: @PC_DESCRIPTION@
Version: @VERSION@
+Libs: -L${libdir} @PC_LDFLAGS@
+Cflags: @PC_CFLAGS@
Requires:
res = sqlite3_bind_text(pPrivacyStmt.get(), 2, iter->c_str(), -1, SQLITE_TRANSIENT);\r
TryReturn( res == SQLITE_OK, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_bind_text : %d", res);\r
\r
- res = sqlite3_bind_int(pPrivacyStmt.get(), 3, 0);\r
+ // Before setting app and popup is ready, default value is true\r
+ res = sqlite3_bind_int(pPrivacyStmt.get(), 3, 1);\r
TryReturn( res == SQLITE_OK, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_bind_int : %d", res);\r
\r
res = sqlite3_step(pPrivacyStmt.get());\r