Import device-policy-manager from tizen
authorSangwan Kwon <sangwan.kwon@samsung.com>
Tue, 17 Sep 2019 05:41:20 +0000 (14:41 +0900)
committer권상완/Security 2Lab(SR)/Engineer/삼성전자 <sangwan.kwon@samsung.com>
Thu, 10 Oct 2019 06:26:21 +0000 (15:26 +0900)
Signed-off-by: Sangwan Kwon <sangwan.kwon@samsung.com>
194 files changed:
CMakeLists.txt
packaging/device-policy-manager.manifest.in [new file with mode: 0644]
packaging/osquery.spec
plugins/CMakeLists.txt
plugins/bluetooth/CMakeLists.txt
plugins/bluetooth/bluetooth.cpp
plugins/usb/CMakeLists.txt
plugins/usb/usb.cpp
plugins/wifi/CMakeLists.txt
plugins/wifi/wifi.cpp
specs/CMakeLists.txt
src/CMakeLists.txt
src/apix/notification/CMakeLists.txt
src/osquery/CMakeLists.txt
src/osquery/tables/CMakeLists.txt
src/policyd/CMakeLists.txt [new file with mode: 0644]
src/policyd/client/CMakeLists.txt [new file with mode: 0644]
src/policyd/client/administration.h [new file with mode: 0644]
src/policyd/client/device-policy-manager.h [new file with mode: 0644]
src/policyd/conf/CMakeLists.txt [new file with mode: 0644]
src/policyd/conf/dbus/org.tizen.dpm.syspopup.conf [new file with mode: 0755]
src/policyd/conf/dbus/org.tizen.dpm.syspopup.service [new file with mode: 0755]
src/policyd/conf/pkgconfig/dpm-pil.pc.in [new file with mode: 0644]
src/policyd/conf/systemd/device-policy-manager.service.in [new file with mode: 0644]
src/policyd/conf/systemd/device-policy-manager.socket [new file with mode: 0644]
src/policyd/conf/systemd/device-policy-syspopup.service.in [new file with mode: 0644]
src/policyd/pil/CMakeLists.txt [new file with mode: 0644]
src/policyd/pil/app-bundle.cpp [new file with mode: 0644]
src/policyd/pil/app-bundle.h [new file with mode: 0644]
src/policyd/pil/launchpad.cpp [new file with mode: 0644]
src/policyd/pil/launchpad.h [new file with mode: 0644]
src/policyd/pil/logger.cpp [new file with mode: 0644]
src/policyd/pil/logger.h [new file with mode: 0644]
src/policyd/pil/observer.h [new file with mode: 0644]
src/policyd/pil/packman.cpp [new file with mode: 0644]
src/policyd/pil/packman.h [new file with mode: 0644]
src/policyd/pil/policy-admin.cpp [new file with mode: 0644]
src/policyd/pil/policy-admin.h [new file with mode: 0644]
src/policyd/pil/policy-client.cpp [new file with mode: 0644]
src/policyd/pil/policy-client.h [new file with mode: 0644]
src/policyd/pil/policy-context.h [new file with mode: 0644]
src/policyd/pil/policy-event-env.h [new file with mode: 0644]
src/policyd/pil/policy-event.cpp [new file with mode: 0644]
src/policyd/pil/policy-event.h [new file with mode: 0644]
src/policyd/pil/policy-model.h [new file with mode: 0644]
src/policyd/pil/policy-storage.cpp [new file with mode: 0644]
src/policyd/pil/policy-storage.h [new file with mode: 0644]
src/policyd/pil/preference.cpp [new file with mode: 0644]
src/policyd/pil/preference.h [new file with mode: 0644]
src/policyd/pil/status.h [new file with mode: 0644]
src/policyd/server/CMakeLists.txt [new file with mode: 0644]
src/policyd/server/db-schema.h [new file with mode: 0644]
src/policyd/server/main.cpp [new file with mode: 0644]
src/policyd/server/plugin.cpp [new file with mode: 0644]
src/policyd/server/plugin.h [new file with mode: 0644]
src/policyd/server/server.cpp [new file with mode: 0644]
src/policyd/server/server.h [new file with mode: 0644]
src/policyd/server/sql-backend.cpp [new file with mode: 0644]
src/policyd/server/sql-backend.h [new file with mode: 0644]
src/policyd/tests/CMakeLists.txt [new file with mode: 0644]
src/policyd/tests/main.cpp [new file with mode: 0644]
src/policyd/tests/test-pil.cpp [new file with mode: 0644]
src/policyd/tests/test-query.cpp [new file with mode: 0644]
src/policyd/tests/test-server.cpp [new file with mode: 0644]
src/policyd/tools/CMakeLists.txt [new file with mode: 0644]
src/policyd/tools/cli/CMakeLists.txt [new file with mode: 0644]
src/policyd/tools/cli/dpm-admin-cli.cpp [new file with mode: 0644]
src/policyd/tools/cli/dpm-storage-builder [new file with mode: 0755]
src/policyd/tools/cli/dpm-syspopup [new file with mode: 0755]
src/policyd/tools/syspopup/CMakeLists.txt [new file with mode: 0644]
src/policyd/tools/syspopup/org.tizen.dpm-syspopup.manifest [new file with mode: 0644]
src/policyd/tools/syspopup/org.tizen.dpm-syspopup.xml [new file with mode: 0644]
src/policyd/tools/syspopup/po/CMakeLists.txt [new file with mode: 0644]
src/policyd/tools/syspopup/po/ar.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/az.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/bg.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/ca.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/cs.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/da.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/de.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/el_GR.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/en.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/en_PH.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/en_US.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/es_ES.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/es_US.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/et.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/eu.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/fi.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/fr.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/fr_CA.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/ga.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/gl.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/hi.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/hr.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/hu.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/hy.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/is.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/it_IT.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/ja_JP.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/ka.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/kk.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/ko_KR.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/lt.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/lv.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/mk.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/nb.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/nl.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/pl.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/pt_BR.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/pt_PT.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/ro.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/ru_RU.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/sk.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/sl.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/sr.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/sv.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/tr_TR.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/uk.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/uz.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/zh_CN.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/zh_HK.po [new file with mode: 0755]
src/policyd/tools/syspopup/po/zh_TW.po [new file with mode: 0755]
src/policyd/tools/syspopup/res/images/tw_ic_popup_btn_check.png [new file with mode: 0644]
src/policyd/tools/syspopup/res/images/tw_ic_popup_btn_delete.png [new file with mode: 0644]
src/policyd/tools/syspopup/res/org.tizen.dpm-syspopup.png [new file with mode: 0644]
src/policyd/tools/syspopup/src/application.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/application.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/interface.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/interface.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/main.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/bluetooth.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/bluetooth.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/browser.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/browser.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/camera.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/camera.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/clipboard.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/clipboard.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/external-storage.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/external-storage.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/krate-create.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/krate-create.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/krate-remove.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/krate-remove.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/location.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/location.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/message-retrieving.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/message-retrieving.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/message-sending.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/message-sending.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/microphone.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/microphone.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/nfc.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/nfc.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/package-installation.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/package-installation.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/package-uninstallation.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/package-uninstallation.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/password.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/password.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/popimap-email.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/popimap-email.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/screen-capture.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/screen-capture.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/settings-changes.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/settings-changes.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/usb-client.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/usb-client.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/wifi-hotspot.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/wifi-hotspot.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/wifi.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/popup/wifi.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/syspopup.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/ui/appcontrol.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/ui/appcontrol.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/ui/button.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/ui/button.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/ui/image.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/ui/image.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/ui/layout.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/ui/layout.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/ui/notification.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/ui/notification.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/ui/popup.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/ui/popup.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/ui/widget.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/ui/widget.h [new file with mode: 0644]
src/policyd/tools/syspopup/src/ui/window.cpp [new file with mode: 0644]
src/policyd/tools/syspopup/src/ui/window.h [new file with mode: 0644]
src/policyd/ui/CMakeLists.txt [new file with mode: 0644]
src/policyd/ui/syspopup-service.cpp [new file with mode: 0644]
src/policyd/ui/syspopup.cpp [new file with mode: 0644]
src/policyd/ui/syspopup.h [new file with mode: 0644]

index 20eddcc..229e5a4 100644 (file)
@@ -16,6 +16,11 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
 PROJECT(OSQUERY)
 
 INCLUDE(GNUInstallDirs)
+INCLUDE(CMake/Macro.cmake)
+
+IF(DEFINED GBS_BUILD)
+       INCLUDE(FindPkgConfig)
+ENDIF(DEFINED GBS_BUILD)
 
 IF(NOT CMAKE_BUILD_TYPE)
        SET(CMAKE_BUILD_TYPE "RELEASE")
@@ -60,11 +65,12 @@ INCLUDE_DIRECTORIES("/usr/local/include")
 
 ENABLE_TESTING()
 
-INCLUDE(CMake/Macro.cmake)
-
 # Make sure the generated paths exist
 EXECUTE_PROCESS(COMMAND mkdir -p "${CMAKE_BINARY_DIR}/generated")
 
+CONFIGURE_FILE(packaging/device-policy-manager.manifest.in
+                          device-policy-manager.manifest @ONLY)
+
 ADD_SUBDIRECTORY(specs)
 ADD_SUBDIRECTORY(src)
 ADD_SUBDIRECTORY(tools/sqlite3)
diff --git a/packaging/device-policy-manager.manifest.in b/packaging/device-policy-manager.manifest.in
new file mode 100644 (file)
index 0000000..140c9a0
--- /dev/null
@@ -0,0 +1,8 @@
+<manifest>
+       <request>
+               <domain name="_" />
+       </request>
+       <assign>
+               <filesystem path="@EVENT_CONFIGURE_DIR@" label="@SMACK_LABEL@" type="transmutable" />
+       </assign>
+</manifest>
index 6a06d6c..226d355 100644 (file)
@@ -20,7 +20,6 @@ BuildRequires: bzip2-devel
 BuildRequires: lz4-devel
 BuildRequires: zstd-devel
 BuildRequires: boost-devel
-BuildRequires: thrift
 BuildRequires: readline-devel
 BuildRequires: pkgconfig(libprocps)
 BuildRequires: pkgconfig(libsystemd)
@@ -37,12 +36,20 @@ Requires: bzip2
 Requires: lz4
 Requires: zstd
 Requires: boost-regex boost-system boost-thread boost-filesystem
-Requires: thrift
 Requires: libreadline
 Requires: procps-ng
 Requires: libsystemd
 Requires: iptables
 
+%global user_name        security_fw
+%global group_name       security_fw
+%global smack_label      System
+
+%global dpm_base         %{TZ_SYS_DATA}/dpm
+%global dpm_event        %{dpm_base}/event
+%global dpm_plugins      %{_libdir}/dpm/plugins
+
+
 %description
 Osquery exposes an operating system as a high-performance relational database.
 This allows you to write SQL-based queries to explore operating system data.
@@ -57,16 +64,48 @@ cp %SOURCE1 .
 
 %build
 %{!?build_type:%define build_type "RELEASE"}
+
+%if %{build_type} == "DEBUG" || %{build_type} == "PROFILING" || %{build_type} == "CCOV"
+       CFLAGS="$CFLAGS -Wp,-U_FORTIFY_SOURCE"
+       CXXFLAGS="$CXXFLAGS -Wp,-U_FORTIFY_SOURCE"
+%endif
+
 %cmake . -DCMAKE_BUILD_TYPE=%{build_type} \
                 -DOSQUERY_BUILD_VERSION=%{version} \
                 -DGBS_BUILD="TRUE" \
-                -DPLUGIN_INSTALL_DIR=%{_libdir}/dpm/plugins
+                -DVERSION=%{version} \
+                -DUSER_NAME=%{user_name} \
+                -DGROUP_NAME=%{group_name} \
+                -DSMACK_LABEL=%{smack_label} \
+                -DSCRIPT_INSTALL_DIR=%{_scriptdir} \
+                -DSYSTEMD_UNIT_INSTALL_DIR=%{_unitdir} \
+                -DDATA_INSTALL_DIR=%{dpm_base} \
+                -DEVENT_CONFIGURE_DIR=%{dpm_event} \
+                -DPLUGIN_INSTALL_DIR=%{dpm_plugins} \
+                -DDB_INSTALL_DIR=%{TZ_SYS_DB} \
+                -DRUN_INSTALL_DIR=%{TZ_SYS_RUN} \
+                -DAPP_INSTALL_PREFIX="%{TZ_SYS_RO_APP}" \
+                -DAPP_SHARE_PACKAGES_DIR="%{TZ_SYS_RO_PACKAGES}" \
+                -DPAMD_INSTALL_DIR=/etc/pam.d \
+                -DDBUS_CONFIGURE_DIR=/etc/dbus-1/system.d \
+                -DDBUS_SERVICE_DIR=/usr/share/dbus-1/system-services
 
 
 make %{?jobs:-j%jobs}
 
 %install
 %make_install
+mkdir -p %{buildroot}%{dpm_event}
+mkdir -p %{buildroot}%{dpm_plugins}
+mkdir -p %{buildroot}/%{_unitdir}/multi-user.target.wants
+mkdir -p %{buildroot}/%{_unitdir}/sockets.target.wants
+ln -s ../src/policyd/device-policy-manager.service %{buildroot}/%{_unitdir}/multi-user.target.wants/device-policy-manager.service
+ln -s ../src/policyd/device-policy-manager.socket %{buildroot}/%{_unitdir}/sockets.target.wants/device-policy-manager.socket
+
+%find_lang dpm-syspopup
+
+%clean
+rm -rf %{buildroot}
 
 ## Test Package ##############################################################
 %package test 
@@ -83,15 +122,124 @@ Testcases for osquery
 %{_bindir}/osquery-test
 %{_bindir}/apix-test
 
+
+## DPM Policyd ###############################################################
+%package policyd
+Summary: Tizen Device Policy Manager
+Group:   Security/Other
+BuildRequires: gcc
+BuildRequires: cmake
+BuildRequires: gettext-tools
+BuildRequires: pkgconfig(klay)
+BuildRequires: pkgconfig(glib-2.0)
+BuildRequires: pkgconfig(sqlite3)
+BuildRequires: pkgconfig(bundle)
+BuildRequires: pkgconfig(pkgmgr)
+BuildRequires: pkgconfig(pkgmgr-info)
+BuildRequires: pkgconfig(aul)
+BuildRequires: pkgconfig(appsvc)
+BuildRequires: pkgconfig(syspopup-caller)
+BuildRequires: pkgconfig(deviced)
+BuildRequires: pkgconfig(vconf)
+BuildRequires: pkgconfig(vconf-internal-keys)
+BuildRequires: pkgconfig(notification)
+BuildRequires: pkgconfig(cynara-client)
+BuildRequires: pkgconfig(cynara-session)
+BuildRequires: pkgconfig(libtzplatform-config)
+BuildRequires: pkgconfig(security-privilege-manager)
+BuildRequires: pkgconfig(capi-system-system-settings)
+BuildRequires: pkgconfig(capi-base-common)
+
+%description policyd
+The device-policy-manager package provides a daemon which is responsible for
+managing device policies.
+
+%files policyd
+%manifest device-policy-manager.manifest
+%defattr(644,root,root,755)
+%attr(700,root,root) %{_bindir}/dpm-admin-cli
+%attr(755,root,root) %{_bindir}/dpm-syspopup
+%attr(755,root,root) %{_bindir}/dpm-storage-builder
+%attr(755,root,root) %{_bindir}/device-policy-manager
+%attr(755,root,root) %{_bindir}/device-policy-syspopup
+%attr(755,root,root) %{_libdir}/libdpm-pil.so.%{version}
+%attr(-,%{user_name},%{group_name}) %{dpm_base}
+%attr(-,%{user_name},%{group_name}) %{dpm_event}
+%attr(-,%{user_name},%{group_name}) %{dpm_plugins}
+%{_libdir}/libdpm-pil.so.0
+%{_unitdir}/device-policy-manager.service
+%{_unitdir}/device-policy-manager.socket
+%{_unitdir}/sockets.target.wants/device-policy-manager.socket
+%{_unitdir}/multi-user.target.wants/device-policy-manager.service
+%{_unitdir}/device-policy-syspopup.service
+/etc/dbus-1/system.d/org.tizen.dpm.syspopup.conf
+/usr/share/dbus-1/system-services/org.tizen.dpm.syspopup.service
+
+## Devel Package ##############################################################
+%package policyd-devel
+Summary: Libraries and header files for device policy client development
+Group: Development/Libraries
+Requires: policyd = %{version}-%{release}
+BuildRequires: pkgconfig(bundle)
+BuildRequires: pkgconfig(pkgmgr)
+BuildRequires: pkgconfig(pkgmgr-info)
+BuildRequires: pkgconfig(aul)
+BuildRequires: pkgconfig(appsvc)
+BuildRequires: pkgconfig(syspopup-caller)
+
+%description policyd-devel
+The libdpm-pil-devel package includes the libraries and header files necessary for
+developing the device policy module.
+
+%files policyd-devel
+#%manifest device-policy-client.manifest
+%defattr(644,root,root,755)
+%{_libdir}/libdpm-pil.so
+%{_includedir}/dpm
+%{_includedir}/dpm/pil
+%{_libdir}/pkgconfig/dpm-pil.pc
+
+## DPM Syspopup Package ######################################################
+%package -n org.tizen.dpm-syspopup
+Summary: Tizen DPM system popup Interface
+Group: Security/Other
+BuildRequires: pkgconfig(elementary)
+BuildRequires: pkgconfig(capi-appfw-application)
+BuildRequires: pkgconfig(capi-system-system-settings)
+BuildRequires: pkgconfig(capi-ui-efl-util)
+BuildRequires: pkgconfig(capi-system-info)
+%description -n org.tizen.dpm-syspopup
+Tizen DPM system popup interface package
+
+%files -n org.tizen.dpm-syspopup -f dpm-syspopup.lang
+%defattr(-,root,root,-)
+%manifest src/policyd/tools/syspopup/org.tizen.dpm-syspopup.manifest
+%{TZ_SYS_RO_APP}/org.tizen.dpm-syspopup/bin/*
+%{TZ_SYS_RO_PACKAGES}/org.tizen.dpm-syspopup.xml
+/usr/share/icons/default/small/org.tizen.dpm-syspopup.png
+%{TZ_SYS_RO_APP}/org.tizen.dpm-syspopup/res/images/*
+
+## Test Package ###############################################################
+%package policyd-test
+Summary: Tizen DPM internal test
+Group: Security/Development
+Requires: policyd = %{version}-%{release}
+BuildRequires: pkgconfig(klay)
+
+%description policyd-test
+Testcases for device policy manager
+
+%files policyd-test
+%{_bindir}/dpm-test
+
 ## DPM Plugins - ############################################################
-%package plugins
+%package policyd-plugins
 Summary: DPM plugins
 Group: Security/Other
 ## Common
 BuildRequires: pkgconfig(buxton2)
 BuildRequires: pkgconfig(dlog)
-BuildRequires: pkgconfig(klay)
-BuildRequires: pkgconfig(dpm-pil)
+#BuildRequires: pkgconfig(dpm-pil)
 BuildRequires: pkgconfig(capi-system-info)
 BuildRequires: pkgconfig(capi-base-common)
 
@@ -103,11 +251,11 @@ BuildRequires: pkgconfig(capi-network-bluetooth)
 BuildRequires: pkgconfig(capi-network-wifi-manager)
 BuildRequires: pkgconfig(capi-network-connection)
 
-%description plugins
+%description policyd-plugins
 Provides plugins for device policy manager
 
-%files plugins
+%files policyd-plugins
 %manifest packaging/%{name}-plugins.manifest
 %{_libdir}/dpm/plugins/bluetooth
-%{_libdir}/dpm/plugins/usb
-%{_libdir}/dpm/plugins/wifi
+#%{_libdir}/dpm/plugins/usb
+#%{_libdir}/dpm/plugins/wifi
index c85d32f..8ec2619 100644 (file)
@@ -18,5 +18,5 @@ INCLUDE(FindPkgConfig)
 SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,noexecstack")
 
 ADD_SUBDIRECTORY(bluetooth)
-ADD_SUBDIRECTORY(usb)
-ADD_SUBDIRECTORY(wifi)
+#ADD_SUBDIRECTORY(usb)
+#ADD_SUBDIRECTORY(wifi)
index 639fd80..2f21f4c 100644 (file)
@@ -17,7 +17,7 @@ SET(TARGET "dpm-plugin-bluetooth")
 SET(PLUGIN_SOURCES "bluetooth.cpp")
 
 SET(DEPENDENCY klay
-                          dpm-pil
+                          aul
                           bluetooth-api
                           capi-network-bluetooth)
 
index ba362a5..553ae3b 100644 (file)
 #include <bluetooth-api.h>
 #include <bluetooth_internal.h>
 
-#include <dpm/pil/policy-context.h>
-#include <dpm/pil/policy-model.h>
-#include <dpm/pil/policy-storage.h>
-#include <dpm/pil/policy-event.h>
+#include <policyd/pil/policy-context.h>
+#include <policyd/pil/policy-model.h>
+#include <policyd/pil/policy-storage.h>
+#include <policyd/pil/policy-event.h>
 
 #include "../dlog.h"
 
index 52602b9..cfc1c3f 100644 (file)
@@ -16,8 +16,7 @@ SET(TARGET "dpm-plugin-usb")
 
 SET(PLUGIN_SOURCES "usb.cpp")
 
-SET(DEPENDENCY klay
-                          dpm-pil)
+SET(DEPENDENCY klay)
 
 PKG_CHECK_MODULES(PLUGIN_DEPS REQUIRED ${DEPENDENCY})
 
index 5c2c171..82dac70 100644 (file)
  *  limitations under the License
  */
 
-#include <dpm/pil/policy-context.h>
-#include <dpm/pil/policy-model.h>
-#include <dpm/pil/policy-storage.h>
-#include <dpm/pil/policy-event.h>
-#include <dpm/pil/app-bundle.h>
-#include <dpm/pil/launchpad.h>
+#include <policyd/pil/policy-context.h>
+#include <policyd/pil/policy-model.h>
+#include <policyd/pil/policy-storage.h>
+#include <policyd/pil/policy-event.h>
+#include <policyd/pil/app-bundle.h>
+#include <policyd/pil/launchpad.h>
 
 #include <klay/auth/user.h>
 #include <klay/dbus/variant.h>
index 9137d48..e97bb67 100644 (file)
@@ -17,17 +17,9 @@ SET(TARGET "dpm-plugin-wifi")
 SET(PLUGIN_SOURCES "wifi.cpp")
 
 SET(DEPENDENCY klay
-                          dpm-pil
                           capi-network-wifi-manager
                           capi-network-connection)
 
-
-       SET(GBS_ONLY_PACKAGES klay
-                                                 dpm-pil
-                                                 capi-base-common
-                                                 capi-system-info
-                                                 capi-network-wifi-manager)
-
 PKG_CHECK_MODULES(PLUGIN_DEPS REQUIRED ${DEPENDENCY})
 
 INCLUDE_DIRECTORIES(SYSTEM ${PLUGIN_DEPS_INCLUDE_DIRS})
index 97df098..4317498 100644 (file)
 
 #include <klay/dbus/connection.h>
 
-#include <dpm/pil/policy-context.h>
-#include <dpm/pil/policy-model.h>
-#include <dpm/pil/policy-storage.h>
-#include <dpm/pil/policy-event.h>
+#include <policyd/pil/policy-context.h>
+#include <policyd/pil/policy-model.h>
+#include <policyd/pil/policy-storage.h>
+#include <policyd/pil/policy-event.h>
 
 #include "../dlog.h"
 
index a7b5310..70c662b 100644 (file)
@@ -25,8 +25,8 @@ LIST(APPEND TABLE_FILES ${TABLE_FILES_LINUX})
 LIST(APPEND TABLE_FILES ${TABLE_FILES_UTILITY})
 
 IF(DEFINED GBS_BUILD)
-       FILE(GLOB TABLE_FILES_TIZEN "${CMAKE_SOURCE_DIR}/specs/tizen/*.table")
-       LIST(APPEND TABLE_FILES ${TABLE_FILES_TIZEN})
+#      FILE(GLOB TABLE_FILES_TIZEN "${CMAKE_SOURCE_DIR}/specs/tizen/*.table")
+#      LIST(APPEND TABLE_FILES ${TABLE_FILES_TIZEN})
 ENDIF(DEFINED GBS_BUILD)
 
 FILE(GLOB TABLE_FILES_TEMPLATES "${CMAKE_SOURCE_DIR}/tools/codegen/templates/*.in")
index 154e908..8700563 100644 (file)
@@ -18,4 +18,6 @@ SET(TARGET_APIX_LIB apix)
 ADD_SUBDIRECTORY(osquery)
 ADD_SUBDIRECTORY(apix)
 
-# Rapidjson v1.0.0
+IF(DEFINED GBS_BUILD)
+       ADD_SUBDIRECTORY(policyd)
+ENDIF(DEFINED GBS_BUILD)
index 3c6d86f..e466faa 100644 (file)
@@ -12,7 +12,7 @@
 #  See the License for the specific language governing permissions and
 #  limitations under the License
 
-ADD_APIX_LIBRARY(notification notification.cpp)
+ADD_APIX_LIBRARY(apix_notification notification.cpp)
 
 FILE(GLOB NOTIFICATION_TESTS "tests/*.cpp")
 ADD_APIX_TEST(${NOTIFICATION_TESTS})
index a9ac141..de65d8e 100644 (file)
@@ -42,10 +42,8 @@ ADD_OSQUERY_LINK(glog
 
 IF(DEFINED GBS_BUILD)
        SET(GBS_ONLY_PACKAGES klay
-                                                 dpm-pil
                                                  vconf)
 
-       INCLUDE(FindPkgConfig)
        PKG_CHECK_MODULES(GBS_DEPS REQUIRED ${GBS_ONLY_PACKAGES})
        INCLUDE_DIRECTORIES(SYSTEM ${GBS_DEPS_INCLUDE_DIRS})
 
index f55e3df..73eab8e 100644 (file)
@@ -22,9 +22,9 @@ FILE(GLOB OSQUERY_CROSS_TABLES_TESTS "[!uot]*/tests/*.cpp")
 ADD_OSQUERY_TEST(${OSQUERY_CROSS_TABLES_TESTS})
 
 IF(DEFINED GBS_BUILD)
-       FILE(GLOB OSQUERY_TIZEN_TABLES "tizen/*.cpp")
-       ADD_OSQUERY_LIBRARY(osquery_tizen_tables ${OSQUERY_TIZEN_TABLES})
+#      FILE(GLOB OSQUERY_TIZEN_TABLES "tizen/*.cpp")
+#      ADD_OSQUERY_LIBRARY(osquery_tizen_tables ${OSQUERY_TIZEN_TABLES})
 
-       FILE(GLOB OSQUERY_TIZEN_TESTS "tizen/tests/*.cpp")
-       ADD_OSQUERY_TEST(${OSQUERY_TIZEN_TESTS})
+#      FILE(GLOB OSQUERY_TIZEN_TESTS "tizen/tests/*.cpp")
+#      ADD_OSQUERY_TEST(${OSQUERY_TIZEN_TESTS})
 ENDIF(DEFINED GBS_BUILD)
diff --git a/src/policyd/CMakeLists.txt b/src/policyd/CMakeLists.txt
new file mode 100644 (file)
index 0000000..d2e093a
--- /dev/null
@@ -0,0 +1,28 @@
+# Copyright (c) 2019 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.
+#
+
+ADD_DEFINITIONS(-DUG_WAYLAND)
+
+INCLUDE_DIRECTORIES(SYSTEM .)
+
+ADD_SUBDIRECTORY(conf)
+
+ADD_SUBDIRECTORY(client)
+ADD_SUBDIRECTORY(pil)
+ADD_SUBDIRECTORY(server)
+ADD_SUBDIRECTORY(ui)
+
+ADD_SUBDIRECTORY(tests)
+ADD_SUBDIRECTORY(tools)
diff --git a/src/policyd/client/CMakeLists.txt b/src/policyd/client/CMakeLists.txt
new file mode 100644 (file)
index 0000000..b110393
--- /dev/null
@@ -0,0 +1,19 @@
+# Copyright (c) 2019 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.
+#
+
+SET(CAPIS device-policy-manager.h
+                 administration.h)
+
+INSTALL(FILES ${CAPIS} DESTINATION ${INCLUDE_INSTALL_DIR}/dpm)
diff --git a/src/policyd/client/administration.h b/src/policyd/client/administration.h
new file mode 100644 (file)
index 0000000..2bcaddd
--- /dev/null
@@ -0,0 +1,85 @@
+/*
+ *  Copyright (c) 2015 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 __CAPI_ADMINISTRATION_POLICY_H__
+#define __CAPI_ADMINISTRATION_POLICY_H__
+
+#include <sys/types.h>
+
+#include <dpm/device-policy-manager.h>
+
+/**
+ * @file administration.h
+ * @brief This file provides APIs to register/deregister the device admin client
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @addtogroup  CAPI_DPM_ADMINISTRATION_POLICY_MODULE
+ * @{
+ */
+
+/**
+ * @brief       Registers device policy admin client.
+ * @details     This API is used to register the device policy admin client to
+ *              the device policy manager. The device policy admin client must be
+ *              registered to use the device administration APIs.
+ * @since_tizen 3.0
+ * @param[in]   handle The device policy manager handle
+ * @param[in]   name The name of the device policy admin package
+ * @param[in]   uid The uid of the device policy admin package
+ * @return      #DPM_ERROR_NONE on success, otherwise a negative value
+ * @retval      #DPM_ERROR_NONE Successful
+ * @retval      #DPM_ERROR_TIMEOUT Time out
+ * @retval      #DPM_ERROR_INVALID_PARAMETER Invalid package name
+ * @retval      #DPM_ERROR_PERMISSION_DENIED The application does not have
+ *              the privilege to call this API
+ * @pre         handle must be created by dpm_context_create()
+ * @see         dpm_context_acquire_admin_policy()
+ * @see         dpm_context_release_admin_policy()
+ * @see         dpm_admin_deregister_client()
+ */
+int dpm_admin_register_client(device_policy_manager_h handle, const char* name, uid_t uid);
+
+/**
+ * @brief       Deregisters the device policy admin client.
+ * @details     This API is used to deregister the Device Policy Client from
+ *              the device policy manager.
+ * @since_tizen 3.0
+ * @param[in]   handle The device policy manager handle
+ * @param[in]   name The name of the device policy admin package
+ * @param[in]   uid The uid of the device policy admin package
+ * @return      #DPM_ERROR_NONE on success, otherwise a negative value
+ * @retval      #DPM_ERROR_NONE Successful
+ * @retval      #DPM_ERROR_TIMEOUT Time out
+ * @retval      #DPM_ERROR_INVALID_PARAMETER Invalid package name
+ * @retval      #DPM_ERROR_PERMISSION_DENIED The application does not have
+ *              the privilege to call this API
+ * @pre         handle must be created by dpm_context_create()
+ * @see         dpm_context_acquire_admin_policy()
+ * @see         dpm_context_release_admin_policy()
+ * @see         dpm_admin_register_client()
+ */
+int dpm_admin_deregister_client(device_policy_manager_h handle, const char* name, uid_t uid);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif //__CAPI_ADMINISTRATION_POLICY_H__
diff --git a/src/policyd/client/device-policy-manager.h b/src/policyd/client/device-policy-manager.h
new file mode 100644 (file)
index 0000000..7bb9e7f
--- /dev/null
@@ -0,0 +1,269 @@
+/*
+ *  Copyright (c) 2015 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 __DEVICE_POLICY_MANAGER_H__
+#define __DEVICE_POLICY_MANAGER_H__
+
+#include <tizen.h>
+#include <tizen_type.h>
+
+/**
+ * @file device-policy-manager.h
+ * @brief This file defines common data types required to device policy APIs.
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @addtogroup  CAPI_DPM_MANAGER_MODULE
+ * @{
+ */
+
+/**
+ * @brief       Called when a policy is changed.
+ * @since_tizen 3.0
+ * @param[in]   name The name of the policy
+ * @param[in]   state The current state of the policy
+ * @param[in]   user_data The user data passed from dpm_manager_add_policy_changed_cb
+ * @see         dpm_manager_add_policy_changed_cb()
+ * @see         dpm_manager_remove_policy_changed_cb()
+ */
+typedef void (*dpm_policy_changed_cb)(const char* name, const char* state, void *user_data);
+
+/**
+ * @brief       The device policy manager handle
+ * @details     The device policy manager handle is an abstraction of the
+ *              logical connection between the device policy manager and
+ *              it's client. The device policy manager handle must be
+ *              created by using dpm_manager_create() before attempting to
+ *              use almost any of the device policy APIs, and it should
+ *              be freed when interaction with the device policy manager
+ *              is no longer required.
+ *              To release the handle, use dpm_manager_destroy().
+ * @since_tizen 3.0
+ * @see         dpm_manager_create()
+ * @see         dpm_manager_destroy()
+ */
+typedef void* device_policy_manager_h;
+
+/**
+ * @brief       Enumeration of device policy API errors
+ * @since_tizen 3.0
+ */
+typedef enum {
+       DPM_ERROR_NONE                 = TIZEN_ERROR_NONE,                 /**< The operation was successful */
+       DPM_ERROR_INVALID_PARAMETER    = TIZEN_ERROR_INVALID_PARAMETER,    /**< Invalid parameter */
+       DPM_ERROR_CONNECTION_REFUSED   = TIZEN_ERROR_CONNECTION_REFUSED,   /**< Connection refused */
+       DPM_ERROR_TIMED_OUT            = TIZEN_ERROR_TIMED_OUT,            /**< Time out */
+       DPM_ERROR_PERMISSION_DENIED    = TIZEN_ERROR_PERMISSION_DENIED,    /**< Access privilege is not sufficient */
+       DPM_ERROR_NOT_PERMITTED        = TIZEN_ERROR_NOT_PERMITTED,        /**< Operation not permitted */
+       DPM_ERROR_FILE_EXISTS          = TIZEN_ERROR_FILE_EXISTS,          /**< File exists */
+       DPM_ERROR_OUT_OF_MEMORY        = TIZEN_ERROR_OUT_OF_MEMORY,        /**< Out of memory */
+       DPM_ERROR_NO_DATA              = TIZEN_ERROR_NO_DATA               /**< No Data */
+} dpm_error_type_e;
+
+/**
+ * @brief       Creates the device policy manager handle.
+ * @details     This API creates device policy manager handle required to
+ *              the device policy APIs.
+ *              This API is also used to verify whether caller is authorized
+ *              or not.
+ * @since_tizen 3.0
+ * @return      Device policy manager handle on success, otherwise NULL
+ * @remarks      The specific error code can be obtained by using the
+ *              get_last_result() method. Error codes are described in
+ *              exception section.
+ *              The returned handle should be released using dpm_manager_destroy().
+ * @exception   #DPM_ERROR_NONE No error
+ * @exception   #DPM_ERROR_CONNECTION_REFUSED Connection refused
+ * @exception   #DPM_ERROR_OUT_OF_MEMORY Out of memory
+ * @see         dpm_manager_destroy()
+ * @see         get_last_result()
+ */
+device_policy_manager_h dpm_manager_create(void);
+
+/**
+ * @brief       Releases the device policy manager handle.
+ * @details     This API must be called if interaction with the device
+ *              policy manager is no longer required.
+ * @since_tizen 3.0
+ * @param[in]   handle Device policy manager handle
+ * @return      #DPM_ERROR_NONE on success, otherwise a negative value
+ * @retval      #DPM_ERROR_NONE Successful
+ * @retval      #DPM_ERROR_INVALID_PARAMETER Invalid parameter
+ * @pre         The handle must be created by dpm_manager_create().
+ * @see         dpm_manager_create()
+ */
+int dpm_manager_destroy(device_policy_manager_h handle);
+
+/**
+ * @brief       Adds policy change callback to the device policy
+ *              manager.
+ * @details     This API can be used to subscribe policy change callback.
+ *              The callback specified to this API is asynchronously called when
+ *              policy is changed on runtime.
+ * @since_tizen 3.0
+ * @param[in]   handle Device policy manager handle
+ * @param[in]   name Policy name to subscribe(see @ref CAPI_SECURITY_DPM_MODULE_POLICY)
+ * @param[in]   callback The callback when policy is changed
+ * @param[in]   user_data User specified data passed to the callback
+ * @param[out]  id Policy change callback identifier
+ * @return      #DPM_ERROR_NONE on success, otherwise a negative value
+ * @retval      #DPM_ERROR_NONE Successful
+ * @retval      #DPM_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval      #DPM_ERROR_TIMED_OUT Time out
+ * @remark      See @ref CAPI_SECURITY_DPM_MODULE_POLICY section for available policy name
+ * @pre         The handle must be created by dpm_manager_create().
+ * @see         dpm_manager_create()
+ * @see         dpm_remove_policy_changed_cb()
+ */
+int dpm_add_policy_changed_cb(device_policy_manager_h handle,
+                                                         const char* name,
+                                                         dpm_policy_changed_cb callback,
+                                                         void* user_data,
+                                                         int* id);
+/**
+ * @brief       Removes policy change callback from the device policy
+ *              manager.
+ * @details     This API should be called if policy change subscription is no longer
+ *              required.
+ * @since_tizen 3.0
+ * @param[in]   handle Device policy manager handle
+ * @param[in]   id Policy change callback identifier
+ * @return      #DPM_ERROR_NONE on success, otherwise a negative value
+ * @retval      #DPM_ERROR_NONE Successful
+ * @retval      #DPM_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval      #DPM_ERROR_TIMED_OUT Time out
+ * @pre         The handle must be created by dpm_manager_create().
+ * @pre         The callback identifier must be created by dpm_manager_add_policy_changed_cb().
+ * @see         dpm_manager_create()
+ * @see         dpm_add_policy_changed_cb()
+ */
+int dpm_remove_policy_changed_cb(device_policy_manager_h handle, int id);
+/**
+ * @brief       Called when a zone raises a signal.
+ * @since_tizen 3.0
+ * @param[in]   name The zone name
+ * @param[in]   object The object name triggered the signal
+ * @param[in]   user_data The user data passed from dpm_zone_add_signal_cb
+ * @see         dpm_zone_add_signal_cb()
+ * @see         dpm_zone_remove_signal_cb()
+ */
+typedef void(*dpm_signal_cb)(const char* name, const char* object, void *user_data);
+
+/**
+ * @brief       Adds signal callback.
+ * @details     This API can be used to receive signals raised by the device policy manager.
+ *              The callback specified to this function is automatically called when
+ *              the device policy manager raises signal.
+ * @since_tizen 3.0
+ * @param[in]   handle Device policy manager handle
+ * @param[in]   signal The signal name to receive(see @ref CAPI_DPM_SECURITY_MODULE_SIGNAL)
+ * @param[in]   callback The signal callback
+ * @param[in]   user_data The user data passed to the callback function
+ * @param[out]  id Signal identifier
+ * @return      #DPM_ERROR_NONE on success, otherwise a negative value
+ * @retval      #DPM_ERROR_NONE Successful
+ * @retval      #DPM_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval      #DPM_ERROR_TIMED_OUT Time out
+ * @remark      See @ref CAPI_DPM_SECURITY_MODULE_SIGNAL section for signals
+ * @pre         The handle must be created by dpm_manager_create().
+ * @see         dpm_manager_create()
+ * @see         dpm_manager_destroy()
+ * @see         dpm_remove_signal_cb()
+ */
+int dpm_add_signal_cb(device_policy_manager_h handle, const char* signal,
+                                         dpm_signal_cb callback, void* user_data, int* id);
+
+/**
+ * @brief       Removes signal callback.
+ * @details     This API removes signal callback.
+ * @since_tizen 3.0
+ * @param[in]   handle Device policy manager handle
+ * @param[in]   id Signal identifier
+ * @return      #DPM_ERROR_NONE on success, otherwise a negative value
+ * @retval      #DPM_ERROR_NONE Successful
+ * @retval      #DPM_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval      #DPM_ERROR_TIMED_OUT Time out
+ * @pre         The context must be created by dpm_manager_create().
+ * @see         dpm_manager_create()
+ * @see         dpm_manager_destroy()
+ * @see         dpm_add_signal_cb()
+ */
+int dpm_remove_signal_cb(device_policy_manager_h handle, int id);
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup  CAPI_DPM_ADMINISTRATION_POLICY_MODULE
+ * @{
+ */
+
+/**
+ * @brief       Registers device policy admin client.
+ * @details     This API is used to register the device policy admin client to
+ *              the device policy manager. The device policy admin client must be
+ *              registered to use the device administration APIs.
+ * @since_tizen 3.0
+ * @param[in]   handle The device policy manager handle
+ * @param[in]   name The name of the device policy admin package
+ * @param[in]   uid The uid of the device policy admin package
+ * @return      #DPM_ERROR_NONE on success, otherwise a negative value
+ * @retval      #DPM_ERROR_NONE Successful
+ * @retval      #DPM_ERROR_TIMEOUT Time out
+ * @retval      #DPM_ERROR_INVALID_PARAMETER Invalid package name
+ * @retval      #DPM_ERROR_PERMISSION_DENIED The application does not have
+ *              the privilege to call this API
+ * @pre         handle must be created by dpm_context_create()
+ * @see         dpm_manager_create()
+ * @see         dpm_manager_destroy()
+ * @see         dpm_admin_deregister_client()
+ */
+int dpm_admin_register_client(device_policy_manager_h handle, const char* name, uid_t uid);
+
+/**
+ * @brief       Deregisters the device policy admin client.
+ * @details     This API is used to deregister the Device Policy Client from
+ *              the device policy manager.
+ * @since_tizen 3.0
+ * @param[in]   handle The device policy manager handle
+ * @param[in]   name The name of the device policy admin package
+ * @param[in]   uid The uid of the device policy admin package
+ * @return      #DPM_ERROR_NONE on success, otherwise a negative value
+ * @retval      #DPM_ERROR_NONE Successful
+ * @retval      #DPM_ERROR_TIMEOUT Time out
+ * @retval      #DPM_ERROR_INVALID_PARAMETER Invalid package name
+ * @retval      #DPM_ERROR_PERMISSION_DENIED The application does not have
+ *              the privilege to call this API
+ * @pre         handle must be created by dpm_context_create()
+ * @see         dpm_manager_create()
+ * @see         dpm_manager_destroy()
+ * @see         dpm_admin_register_client()
+ */
+int dpm_admin_deregister_client(device_policy_manager_h handle, const char* name, uid_t uid);
+/**
+ * @}
+ */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __DEVICE_POLICY_MANAGER_H__ */
diff --git a/src/policyd/conf/CMakeLists.txt b/src/policyd/conf/CMakeLists.txt
new file mode 100644 (file)
index 0000000..8857920
--- /dev/null
@@ -0,0 +1,26 @@
+# Copyright (c) 2019 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.
+#
+
+CONFIGURE_FILE(systemd/device-policy-manager.service.in device-policy-manager.service)
+CONFIGURE_FILE(systemd/device-policy-syspopup.service.in device-policy-syspopup.service)
+INSTALL(FILES device-policy-manager.service DESTINATION ${SYSTEMD_UNIT_INSTALL_DIR})
+INSTALL(FILES device-policy-syspopup.service DESTINATION ${SYSTEMD_UNIT_INSTALL_DIR})
+INSTALL(FILES systemd/device-policy-manager.socket DESTINATION ${SYSTEMD_UNIT_INSTALL_DIR})
+
+INSTALL(FILES dbus/org.tizen.dpm.syspopup.conf DESTINATION ${DBUS_CONFIGURE_DIR})
+INSTALL(FILES dbus/org.tizen.dpm.syspopup.service DESTINATION ${DBUS_SERVICE_DIR})
+
+CONFIGURE_FILE(pkgconfig/dpm-pil.pc.in dpm-pil.pc @ONLY)
+INSTALL(FILES dpm-pil.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
diff --git a/src/policyd/conf/dbus/org.tizen.dpm.syspopup.conf b/src/policyd/conf/dbus/org.tizen.dpm.syspopup.conf
new file mode 100755 (executable)
index 0000000..d9ff7e0
--- /dev/null
@@ -0,0 +1,18 @@
+<busconfig>
+       <policy group="users">
+               <allow own="org.tizen.DevicePolicyManager"/>
+               <allow send_destination="org.tizen.DevicePolicyManager"/>
+       </policy>
+       <policy user="security_fw">
+               <allow own="org.tizen.DevicePolicyManager"/>
+               <allow send_destination="org.tizen.DevicePolicyManager"/>
+       </policy>
+       <policy user="root">
+               <allow send_destination="org.tizen.DevicePolicyManager"/>
+       </policy>
+       <policy context="default">
+               <deny own="org.tizen.DevicePolicyManager"/>
+               <deny send_destination="org.tizen.DevicePolicyManager"/>
+               <check send_destination="org.tizen.DevicePolicyManager" send_interface="org.tizen.DevicePolicyManager.Syspopup" privilege="http://tizen.org/privilege/internal/default/platform"/>
+       </policy>
+</busconfig>
diff --git a/src/policyd/conf/dbus/org.tizen.dpm.syspopup.service b/src/policyd/conf/dbus/org.tizen.dpm.syspopup.service
new file mode 100755 (executable)
index 0000000..04c8e90
--- /dev/null
@@ -0,0 +1,4 @@
+[D-BUS Service]
+Name=org.tizen.DevicePolicyManager
+Exec=/bin/false
+SystemdService=device-policy-syspopup.service
diff --git a/src/policyd/conf/pkgconfig/dpm-pil.pc.in b/src/policyd/conf/pkgconfig/dpm-pil.pc.in
new file mode 100644 (file)
index 0000000..05957f5
--- /dev/null
@@ -0,0 +1,14 @@
+# Package Information for pkg-config
+
+prefix=@CMAKE_INSTALL_PREFIX@
+exec_prefix=@CMAKE_INSTALL_PREFIX@
+libdir=@LIB_INSTALL_DIR@
+includedir=@INCLUDE_INSTALL_DIR@
+
+Name: dpm platform interface
+Description: Platform Interface Library for Device Policy Plugin
+Requires : dlog glib-2.0 sqlite3 libtzplatform-config aul pkgmgr pkgmgr-info
+Version: @VERSION@
+Libs: -L${libdir} -ldpm-pil
+Cflags: -I${includedir}/dpm/pil
+
diff --git a/src/policyd/conf/systemd/device-policy-manager.service.in b/src/policyd/conf/systemd/device-policy-manager.service.in
new file mode 100644 (file)
index 0000000..ca28c44
--- /dev/null
@@ -0,0 +1,18 @@
+[Unit]
+Description=Device Policy Manager
+Wants=pulseaudio.service
+After=pulseaudio.service
+
+[Service]
+User=${USER_NAME}
+Group=${GROUP_NAME}
+SmackProcessLabel=${SMACK_LABEL}
+ExecStartPre=${CMAKE_INSTALL_PREFIX}/bin/dpm-storage-builder
+ExecStart=${CMAKE_INSTALL_PREFIX}/bin/device-policy-manager -o 5000
+Restart=on-failure
+ExecReload=/bin/kill -HUP $MAINPID
+CapabilityBoundingSet=~CAP_MAC_ADMIN
+CapabilityBoundingSet=~CAP_MAC_OVERRIDE
+
+[Install]
+WantedBy=multi-user.target
diff --git a/src/policyd/conf/systemd/device-policy-manager.socket b/src/policyd/conf/systemd/device-policy-manager.socket
new file mode 100644 (file)
index 0000000..911d17c
--- /dev/null
@@ -0,0 +1,11 @@
+[Socket]
+ListenStream=/tmp/.device-policy-manager.sock
+SocketUser=security_fw
+SocketGroup=security_fw
+SocketMode=0777
+SmackLabelIPIn=*
+SmackLabelIPOut=@
+
+[Install]
+WantedBy=sockets.target
+
diff --git a/src/policyd/conf/systemd/device-policy-syspopup.service.in b/src/policyd/conf/systemd/device-policy-syspopup.service.in
new file mode 100644 (file)
index 0000000..0c4f617
--- /dev/null
@@ -0,0 +1,14 @@
+[Unit]
+Description=Device Policy Manager Syspopup
+
+[Service]
+Type=dbus
+BusName=org.tizen.DevicePolicyManager
+User=${USER_NAME}
+Group=${GROUP_NAME}
+SmackProcessLabel=${SMACK_LABEL}
+ExecStart=${CMAKE_INSTALL_PREFIX}/bin/device-policy-syspopup
+Restart=on-failure
+ExecReload=/bin/kill -HUP $MAINPID
+CapabilityBoundingSet=~CAP_MAC_ADMIN
+CapabilityBoundingSet=~CAP_MAC_OVERRIDE
diff --git a/src/policyd/pil/CMakeLists.txt b/src/policyd/pil/CMakeLists.txt
new file mode 100644 (file)
index 0000000..6756bb4
--- /dev/null
@@ -0,0 +1,81 @@
+# Copyright (c) 2019 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.
+#
+
+SET(PIL_TARGET "dpm-pil")
+
+SET(LIB_VERSION "${VERSION}")
+SET(LIB_SOVERSION "0")
+
+SET(PIL app-bundle.cpp
+               launchpad.cpp
+               logger.cpp
+               packman.cpp
+               policy-event.cpp
+               policy-client.cpp
+               policy-admin.cpp
+               policy-storage.cpp)
+
+SET(PAPIS app-bundle.h
+                 launchpad.h
+                 logger.h
+                 packman.h
+                 policy-event.h
+                 policy-context.h
+                 policy-admin.h
+                 policy-client.h
+                 policy-model.h
+                 policy-storage.h
+                 status.h
+                 observer.h)
+
+SET(PIL_DEPENDENCY klay
+                                  glib-2.0
+                                  gio-2.0
+                                  sqlite3
+                                  bundle
+                                  aul
+                                  appsvc
+                                  pkgmgr
+                                  pkgmgr-info
+                                  syspopup-caller
+                                  deviced
+                                  libtzplatform-config
+                                  security-privilege-manager
+                                  capi-system-info
+                                  capi-base-common
+                                  capi-system-system-settings
+                                  cynara-client
+                                  notification
+                                  cynara-session)
+
+PKG_CHECK_MODULES(PIL_DEPS REQUIRED ${PIL_DEPENDENCY})
+
+INCLUDE_DIRECTORIES(SYSTEM "${PIL_DEPS_INCLUDE_DIRS}")
+
+SET (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,noexecstack")
+
+ADD_LIBRARY(${PIL_TARGET} SHARED ${PIL})
+
+SET_TARGET_PROPERTIES(${PIL_TARGET} PROPERTIES COMPILE_FLAGS "-fvisibility=default")
+SET_TARGET_PROPERTIES(${PIL_TARGET} PROPERTIES SOVERSION ${LIB_SOVERSION})
+SET_TARGET_PROPERTIES(${PIL_TARGET} PROPERTIES VERSION   ${LIB_VERSION})
+
+TARGET_COMPILE_DEFINITIONS(${PIL_TARGET} PRIVATE
+       EVENT_CONFIGURE_DIR="${EVENT_CONFIGURE_DIR}"
+)
+
+TARGET_LINK_LIBRARIES(${PIL_TARGET} ${PIL_DEPS_LIBRARIES} pthread sqlite3)
+INSTALL(FILES ${PAPIS} DESTINATION ${INCLUDE_INSTALL_DIR}/dpm/pil)
+INSTALL(TARGETS ${PIL_TARGET} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
diff --git a/src/policyd/pil/app-bundle.cpp b/src/policyd/pil/app-bundle.cpp
new file mode 100644 (file)
index 0000000..518e36f
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ *  Copyright (c) 2015 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
+ */
+#include <memory>
+
+#include <klay/exception.h>
+
+#include "app-bundle.h"
+
+Bundle::Bundle() :
+       handle(nullptr)
+{
+       handle = ::bundle_create();
+       if (handle == nullptr) {
+               throw runtime::Exception("Failed to create bundle");
+       }
+}
+
+Bundle::~Bundle()
+{
+       ::bundle_free(handle);
+}
+
+void Bundle::addInternal(const std::string& key, const std::string& value)
+{
+       ::bundle_add_str(handle, key.c_str(), value.c_str());
+}
+
+void Bundle::addArrayInternal(const std::string& key, const std::vector<std::string>& array)
+{
+       std::unique_ptr<const char*[]> arrayptr(new const char*[array.size()]);
+
+       int index = 0;
+       for (const std::string& data : array) {
+               arrayptr.get()[index++] = data.c_str();
+       }
+
+       ::bundle_add_str_array(handle, key.c_str(), arrayptr.get(), array.size());
+}
diff --git a/src/policyd/pil/app-bundle.h b/src/policyd/pil/app-bundle.h
new file mode 100644 (file)
index 0000000..df01979
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ *  Copyright (c) 2015 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 __DPM_BUNDLE_H__
+#define __DPM_BUNDLE_H__
+
+#include <string>
+#include <vector>
+
+#include <bundle.h>
+
+class Bundle {
+public:
+       Bundle();
+       ~Bundle();
+
+       template<typename T>
+       void add(const std::string& key, const std::vector<T>& value)
+       {
+               addArrayInternal(key, value);
+       }
+
+       template<typename T>
+       void add(const std::string& key, const T& value)
+       {
+               addInternal(key, value);
+       }
+
+       bundle* get() const
+       {
+               return handle;
+       }
+
+private:
+       void addInternal(const std::string& key, const std::string& value);
+       void addArrayInternal(const std::string& key, const std::vector<std::string>& array);
+
+private:
+       bundle* handle;
+};
+
+#endif //__DPM_BUNDLE_H__
diff --git a/src/policyd/pil/launchpad.cpp b/src/policyd/pil/launchpad.cpp
new file mode 100644 (file)
index 0000000..04fd787
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ *  Copyright (c) 2015 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
+ */
+#include <unistd.h>
+#include <signal.h>
+#include <sys/types.h>
+
+#include <aul.h>
+#include <klay/exception.h>
+
+#include "launchpad.h"
+
+Launchpad::Launchpad(const uid_t uid) :
+       user(uid)
+{
+       if (user == 0) {
+               throw runtime::Exception("No logined user for launching app");
+       }
+}
+
+bool Launchpad::isRunning(const std::string& appid)
+{
+       return ::aul_app_is_running_for_uid(appid.c_str(), user);
+}
+
+void Launchpad::launch(const std::string& appid)
+{
+       launch(appid, Bundle());
+}
+
+void Launchpad::launch(const std::string& appid, const Bundle& bundle)
+{
+       if (::aul_launch_app_for_uid(appid.c_str(), bundle.get(), user) < 0) {
+               throw runtime::Exception("Failed to launch app " + appid);
+       }
+}
+
+void Launchpad::resume(const std::string& appid)
+{
+       if (::aul_resume_app_for_uid(appid.c_str(), user) < 0) {
+               throw runtime::Exception("Failed to resume app " + appid);
+       }
+}
+
+void Launchpad::terminate(const std::string& appid)
+{
+       int pid = ::aul_app_get_pid_for_uid(appid.c_str(), user);
+       if (pid > 0) {
+               if (::aul_terminate_pid_for_uid(pid, user) < 0) {
+                       ::kill(pid, SIGKILL);
+               }
+       }
+}
diff --git a/src/policyd/pil/launchpad.h b/src/policyd/pil/launchpad.h
new file mode 100644 (file)
index 0000000..e5d3ceb
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ *  Copyright (c) 2015 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 __DPM_LAUNCHPAD_H__
+#define __DPM_LAUNCHPAD_H__
+
+#include <string>
+
+#include "app-bundle.h"
+
+class Launchpad {
+public:
+       Launchpad(const uid_t uid = 0);
+       Launchpad(const Launchpad&) = delete;
+       Launchpad(Launchpad&&) = delete;
+
+       void launch(const std::string& appid);
+       void launch(const std::string& appid, const Bundle& bundle);
+       void resume(const std::string& appid);
+       bool isRunning(const std::string& appid);
+       void terminate(const std::string& appid);
+
+private:
+       uid_t user;
+};
+
+#endif //__DPM_LAUNCHPAD_H__
diff --git a/src/policyd/pil/logger.cpp b/src/policyd/pil/logger.cpp
new file mode 100644 (file)
index 0000000..90a5ae7
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ *  Copyright (c) 2017 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
+ */
+
+#include <klay/audit/dlog-sink.h>
+
+#include "logger.h"
+
+std::unique_ptr<audit::LogSink> Logger::logSink = nullptr;
+std::once_flag Logger::flag;
+
+audit::LogSink* Logger::GetLogSink(const std::string& tag)
+{
+       std::call_once(flag, [&]() {
+                       auto dlogSink = new audit::DlogLogSink(tag);
+                       logSink.reset(dynamic_cast<audit::LogSink*>(dlogSink));
+               });
+
+       return logSink.get();
+}
diff --git a/src/policyd/pil/logger.h b/src/policyd/pil/logger.h
new file mode 100644 (file)
index 0000000..5987fe7
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ *  Copyright (c) 2017 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 __DPM_LOGGER_H__
+#define __DPM_LOGGER_H__
+
+#include <klay/audit/logger.h>
+
+#include <memory>
+#include <mutex>
+
+#define DPM Logger::GetLogSink("DPM")
+
+class Logger {
+public:
+       static audit::LogSink* GetLogSink(const std::string& tag);
+
+private:
+       static std::unique_ptr<audit::LogSink> logSink;
+       static std::once_flag flag;
+};
+
+#endif //__DPM_LOGGER_H__
diff --git a/src/policyd/pil/observer.h b/src/policyd/pil/observer.h
new file mode 100644 (file)
index 0000000..e5b997e
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ *  Copyright (c) 2015 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 __DPM_OBSERVER_H__
+#define __DPM_OBSERVER_H__
+#include <sys/types.h>
+
+#include <iostream>
+#include <vector>
+#include <functional>
+
+class Observer {
+public:
+       virtual ~Observer() {}
+       virtual void onEvent(uid_t domain) = 0;
+};
+
+class Observerable {
+public:
+       void attach(Observer* observer)
+       {
+               observers.push_back(observer);
+       }
+
+       void notify(uid_t domain)
+       {
+               for (auto observer: observers) {
+                       observer->onEvent(domain);
+               }
+       }
+
+private:
+       std::vector<Observer *> observers;
+};
+
+#endif //__DPM_OBSERVER_H__
diff --git a/src/policyd/pil/packman.cpp b/src/policyd/pil/packman.cpp
new file mode 100644 (file)
index 0000000..767c2cb
--- /dev/null
@@ -0,0 +1,293 @@
+/*
+ *  Copyright (c) 2015 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
+ */
+#include <klay/exception.h>
+
+#include "packman.h"
+
+namespace {
+
+int PackageEventCallback(uid_t uid, int id, const char* type, const char* name,
+                                                const char* key, const char* val, const void* msg, void* data)
+{
+       return 0;
+}
+
+int PackageListCallback(pkgmgrinfo_pkginfo_h handle, void *data)
+{
+       char* pkgid;
+       if (::pkgmgrinfo_pkginfo_get_pkgid(handle, &pkgid) == PMINFO_R_OK) {
+               std::vector<std::string>* packageList = static_cast<std::vector<std::string>*>(data);
+               packageList->push_back(pkgid);
+       }
+
+       return 0;
+}
+
+} // namespace
+
+PackageInfo::PackageInfo(const std::string& pkgid, uid_t uid) :
+       user(uid), handle(nullptr)
+{
+       if (uid == 0) {
+               uid = getuid();
+       }
+
+       if (::pkgmgrinfo_pkginfo_get_usr_pkginfo(pkgid.c_str(), user, &handle) != PMINFO_R_OK) {
+               throw runtime::Exception("Invalid Package Id");
+       }
+}
+
+PackageInfo::~PackageInfo()
+{
+       ::pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+}
+
+std::string PackageInfo::getType() const
+{
+       char *pkgtype;
+       if (::pkgmgrinfo_pkginfo_get_type(handle, &pkgtype) != PMINFO_R_OK) {
+               throw runtime::Exception("Invalid operation");
+       }
+
+       return pkgtype;
+}
+
+std::string PackageInfo::getLabel() const
+{
+       char *label;
+       if (::pkgmgrinfo_pkginfo_get_label(handle, &label) != PMINFO_R_OK) {
+               throw runtime::Exception("Invalid operation");
+       }
+
+       return label;
+}
+
+std::string PackageInfo::getIcon() const
+{
+       char *icon;
+       if (::pkgmgrinfo_pkginfo_get_icon(handle, &icon) != PMINFO_R_OK) {
+               throw runtime::Exception("Invalid operation");
+       }
+
+       return icon;
+}
+
+std::string PackageInfo::getDescription() const
+{
+       char *desc;
+       if (::pkgmgrinfo_pkginfo_get_description(handle, &desc) != PMINFO_R_OK) {
+               throw runtime::Exception("Invalid operation");
+       }
+
+       return desc;
+}
+
+std::string PackageInfo::getAuthorName() const
+{
+       char *name;
+       if (::pkgmgrinfo_pkginfo_get_author_name(handle, &name) != PMINFO_R_OK) {
+               throw runtime::Exception("Invalid operation");
+       }
+
+       return name;
+}
+
+std::string PackageInfo::getAuthorEmail() const
+{
+       char *email;
+       if (::pkgmgrinfo_pkginfo_get_author_email(handle, &email) != PMINFO_R_OK) {
+               throw runtime::Exception("Invalid operation");
+       }
+
+       return email;
+}
+
+std::string PackageInfo::getAuthorHref() const
+{
+       char *href;
+       if (::pkgmgrinfo_pkginfo_get_author_name(handle, &href) != PMINFO_R_OK) {
+               throw runtime::Exception("Invalid operation");
+       }
+
+       return href;
+}
+
+std::string PackageInfo::getVersion() const
+{
+       char *version;
+       if (::pkgmgrinfo_pkginfo_get_version(handle, &version) != PMINFO_R_OK) {
+               throw runtime::Exception("Invalid operation");
+       }
+
+       return version;
+}
+
+std::string PackageInfo::getApiVersion() const
+{
+       char *api;
+       if (::pkgmgrinfo_pkginfo_get_api_version(handle, &api) != PMINFO_R_OK) {
+               throw runtime::Exception("Invalid operation");
+       }
+
+       return api;
+}
+
+std::string PackageInfo::getMainAppId() const
+{
+       char *mainappid;
+       if (::pkgmgrinfo_pkginfo_get_mainappid(handle, &mainappid) != PMINFO_R_OK) {
+               throw runtime::Exception("Invalid operation");
+       }
+
+       return mainappid;
+}
+
+bool PackageInfo::isSystem() const
+{
+       bool ret;
+       if (::pkgmgrinfo_pkginfo_is_system(handle, &ret) != PMINFO_R_OK) {
+               throw runtime::Exception("Invalid operation");
+       }
+
+       return ret;
+}
+
+bool PackageInfo::isRemovable() const
+{
+       bool ret;
+       if (::pkgmgrinfo_pkginfo_is_removable(handle, &ret) != PMINFO_R_OK) {
+               throw runtime::Exception("Invalid operation");
+       }
+
+       return ret;
+}
+
+bool PackageInfo::isPreload() const
+{
+       bool ret;
+       if (::pkgmgrinfo_pkginfo_is_preload(handle, &ret) != PMINFO_R_OK) {
+               throw runtime::Exception("Invalid operation");
+       }
+
+       return ret;
+}
+
+PackageManager::PackageManager() :
+       nativeRequestHandle(nullptr), nativeListenHandle(nullptr)
+{
+       nativeRequestHandle = ::pkgmgr_client_new(PC_REQUEST);
+       if (nativeRequestHandle == nullptr) {
+               throw runtime::Exception("No package manager request instance");
+       }
+
+       nativeListenHandle = ::pkgmgr_client_new(PC_LISTENING);
+       if (nativeListenHandle == nullptr) {
+               ::pkgmgr_client_free(nativeRequestHandle);
+               throw runtime::Exception("No package manager listening instance");
+       }
+}
+
+PackageManager::~PackageManager()
+{
+       ::pkgmgr_client_free(nativeRequestHandle);
+       ::pkgmgr_client_free(nativeListenHandle);
+}
+
+PackageManager& PackageManager::instance()
+{
+       static PackageManager __instance__;
+       return __instance__;
+}
+
+void PackageManager::setEventCallback(pkgmgr_handler callback, void* user_data)
+{
+       int ret;
+       ret = ::pkgmgr_client_listen_status(nativeListenHandle, callback, user_data);
+       if (ret < 0) {
+               throw runtime::Exception("Failed to set package event callback");
+       }
+}
+
+void PackageManager::unsetEventCallback()
+{
+       int ret;
+       ret = ::pkgmgr_client_remove_listen_status(nativeListenHandle);
+       if (ret < 0) {
+               throw runtime::Exception("Failed to unset package event callback");
+       }
+}
+
+void PackageManager::installPackage(const std::string& pkgpath, const uid_t user)
+{
+       int ret = ::pkgmgr_client_usr_install(nativeRequestHandle, NULL, NULL, pkgpath.c_str(), NULL, PM_QUIET, PackageEventCallback, nullptr, user);
+       if (ret < PKGMGR_R_OK) {
+               throw runtime::Exception("Package installation failed");
+       }
+}
+
+void PackageManager::uninstallPackage(const std::string& pkgid, const uid_t user)
+{
+       std::string pkgtype;
+
+       PackageInfo pkgInfo(pkgid, user);
+       pkgtype = pkgInfo.getType();
+
+       int ret = ::pkgmgr_client_usr_uninstall(nativeRequestHandle, pkgtype.c_str(), pkgid.c_str(), PM_QUIET, PackageEventCallback, nullptr, user);
+       if (ret < PKGMGR_R_OK) {
+               throw runtime::Exception("Package manager exception");
+       }
+}
+
+std::vector<std::string> PackageManager::getPackageList(const uid_t user)
+{
+       std::vector<std::string> packageList;
+
+       if (::pkgmgrinfo_pkginfo_get_usr_list(PackageListCallback, &packageList, user) != PMINFO_R_OK) {
+               throw runtime::Exception("Error in pkgmgrinfo_pkginfo_get_list");
+       }
+
+       return packageList;
+}
+
+void PackageManager::setModeRestriction(int mode, uid_t user)
+{
+       if (::pkgmgr_client_usr_set_restriction_mode(nativeRequestHandle,
+                                                                                                mode,
+                                                                                                user) != PKGMGR_R_OK) {
+               throw runtime::Exception("Failed to set package restriction mode");
+       }
+}
+
+void PackageManager::unsetModeRestriction(int mode, uid_t user)
+{
+       if (::pkgmgr_client_usr_unset_restriction_mode(nativeRequestHandle,
+                                                                                                  mode,
+                                                                                                  user) != PKGMGR_R_OK) {
+               throw runtime::Exception("Failed to unset package mode restriction");
+       }
+}
+
+int PackageManager::getModeRestriction(uid_t user)
+{
+       int mode;
+       if (::pkgmgr_client_usr_get_restriction_mode(nativeRequestHandle,
+                                                                                                &mode,
+                                                                                                user) != PKGMGR_R_OK) {
+               throw runtime::Exception("Failed to get package restriction mode");
+       }
+
+       return mode;
+}
diff --git a/src/policyd/pil/packman.h b/src/policyd/pil/packman.h
new file mode 100644 (file)
index 0000000..3702e5e
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ *  Copyright (c) 2015 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 __DPM_PACKMAN_H__
+#define __DPM_PACKMAN_H__
+
+#include <unistd.h>
+#include <sys/types.h>
+
+#include <string>
+#include <vector>
+
+#include <package-manager.h>
+#include <pkgmgr-info.h>
+
+class PackageInfo {
+public:
+       PackageInfo(const std::string& pkgid, uid_t uid = 0);
+       ~PackageInfo();
+
+       std::string getType() const;
+       std::string getIcon() const;
+       std::string getLabel() const;
+       std::string getDescription() const;
+
+       std::string getAuthorName() const;
+       std::string getAuthorEmail() const;
+       std::string getAuthorHref() const;
+
+       std::string getVersion() const;
+       std::string getApiVersion() const;
+       std::string getMainAppId() const;
+
+       bool isSystem() const;
+       bool isRemovable() const;
+       bool isPreload() const;
+
+private:
+       uid_t user;
+       pkgmgrinfo_pkginfo_h handle;
+};
+
+class PackageManager {
+public:
+       void installPackage(const std::string& pkgpath, const uid_t user);
+       void uninstallPackage(const std::string& pkgid, const uid_t user);
+
+       std::vector<std::string> getPackageList(const uid_t user);
+
+       void setEventCallback(pkgmgr_handler callback, void* user_data);
+       void unsetEventCallback();
+
+       void setModeRestriction(int mode, uid_t user);
+       void unsetModeRestriction(int mode, uid_t user);
+       int getModeRestriction(uid_t user);
+
+       void setPackageRestriction(const std::string& pkgid, int mode, uid_t user);
+       void unsetPackageRestriction(const std::string& pkgid, int mode, uid_t user);
+       int getPackageRestriction(const std::string& pkgid, uid_t user);
+
+       static PackageManager& instance();
+
+private:
+       PackageManager();
+       ~PackageManager();
+
+private:
+       pkgmgr_client *nativeRequestHandle, *nativeListenHandle;
+};
+
+#endif // __DPM_PACKMAN_H__
diff --git a/src/policyd/pil/policy-admin.cpp b/src/policyd/pil/policy-admin.cpp
new file mode 100644 (file)
index 0000000..bc52481
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ *  Copyright (c) 2015 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
+ */
+
+#include <klay/exception.h>
+
+#include "policy-admin.h"
+
+PolicyAdmin::PolicyAdmin(pid_t pid, uid_t user)
+{
+       char pkgid[PATH_MAX];
+
+       if (aul_app_get_pkgid_bypid_for_uid(pid, pkgid, PATH_MAX, user) != 0) {
+               int fd = ::open(std::string("/proc/" + std::to_string(pid) + "/cmdline").c_str(), O_RDONLY);
+               if (fd == -1) {
+                       throw runtime::Exception("Unknown PID");
+               }
+
+               ssize_t ret, bytes = 0;
+               do {
+                       ret = ::read(fd, &pkgid[bytes], PATH_MAX);
+                       if (ret != -1) {
+                               bytes += ret;
+                       }
+               } while ((ret == -1) && (errno == EINTR));
+
+               while (::close(fd) == -1 && errno == EINTR);
+
+               if (ret == -1) {
+                       throw runtime::Exception("Failed to get admin info");
+               }
+
+               pkgid[bytes-1] = '\0';
+       }
+
+       name = pkgid;
+       uid = user;
+}
+
+PolicyAdmin::~PolicyAdmin()
+{
+}
diff --git a/src/policyd/pil/policy-admin.h b/src/policyd/pil/policy-admin.h
new file mode 100644 (file)
index 0000000..e349d8b
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ *  Copyright (c) 2015 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 __DPM_POLICY_ADMIN_H__
+#define __DPM_POLICY_ADMIN_H__
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <limits.h>
+
+#include <aul.h>
+
+#include <string>
+#include <vector>
+
+#include <klay/exception.h>
+
+class PolicyAdmin {
+public:
+       PolicyAdmin(pid_t pid, uid_t user);
+
+       PolicyAdmin(const PolicyAdmin&) = delete;
+       PolicyAdmin(PolicyAdmin&&) = default;
+
+       ~PolicyAdmin();
+
+       PolicyAdmin& operator=(PolicyAdmin&&) = default;
+       PolicyAdmin& operator=(const PolicyAdmin&) = delete;
+
+       inline std::string getName() const
+       {
+               return name;
+       }
+
+       inline uid_t getUid() const
+       {
+               return uid;
+       }
+
+       inline std::string getKey() const
+       {
+               return key;
+       }
+
+private:
+       std::string name;
+       uid_t uid;
+       std::string key;
+};
+
+#endif //__DPM_POLICY_ADMIN_H__
diff --git a/src/policyd/pil/policy-client.cpp b/src/policyd/pil/policy-client.cpp
new file mode 100644 (file)
index 0000000..322091e
--- /dev/null
@@ -0,0 +1,219 @@
+/*
+ *  Copyright (c) 2015 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
+ */
+
+#include <system_info.h>
+#include <klay/filesystem.h>
+
+#include <klay/dbus/signal.h>
+#include <klay/audit/logger.h>
+
+#include "policy-client.h"
+#include "policy-event-env.h"
+
+#include "logger.h"
+
+#include "client/device-policy-manager.h"
+
+#define RET_ON_FAILURE(cond, ret) \
+{                                 \
+       if (!(cond))                  \
+               return (ret);             \
+}
+
+#define VCONFKEY_DPM_MODE_STATE "db/dpm/mode_state"
+
+namespace {
+
+const std::string SIGNAL_OBJECT_PATH = "/org/tizen/DevicePolicyManger/PIL";
+const std::string SIGNAL_EVENT_INTERFACE = "org.tizen.DevicePolicyManager.PIL.Event";
+
+const std::string POLICY_MANAGER_ADDRESS = "/tmp/.device-policy-manager.sock";
+
+} // namespace
+
+void DevicePolicyClient::maintenanceModeDispatcher(keynode_t *node, void *data)
+{
+       int *mode = reinterpret_cast<int *>(data);
+       ::vconf_get_bool(VCONFKEY_DPM_MODE_STATE, mode);
+}
+
+DevicePolicyClient::DevicePolicyClient() noexcept :
+       maintenanceMode(0), clientAddress(POLICY_MANAGER_ADDRESS)
+{
+       mainloop.reset(new ScopedGMainLoop);
+       ::vconf_notify_key_changed(VCONFKEY_DPM_MODE_STATE, maintenanceModeDispatcher, reinterpret_cast<void *>(&this->maintenanceMode));
+       ::vconf_get_bool(VCONFKEY_DPM_MODE_STATE, &maintenanceMode);
+}
+
+DevicePolicyClient::~DevicePolicyClient() noexcept
+{
+       mainloop.reset();
+       ::vconf_ignore_key_changed(VCONFKEY_DPM_MODE_STATE, maintenanceModeDispatcher);
+}
+
+int DevicePolicyClient::subscribeSignal(const std::string& name,
+                                                                               const SignalHandler& handler,
+                                                                               void* data) noexcept
+{
+       int ret = -1;
+       try {
+               mainloop->dispatch([&]() {
+                       auto task = [name, handler, data](dbus::Variant variant) {
+                               char *state = NULL;
+                               variant.get("(s)", &state);
+
+                               handler(name.c_str(), state, data);
+                       };
+
+                       dbus::signal::Receiver receiver(SIGNAL_OBJECT_PATH, SIGNAL_EVENT_INTERFACE);
+                       ret = receiver.subscribe(name, std::move(task));
+               });
+               return ret;
+       } catch (runtime::Exception& e) {
+               ERROR(DPM, e.what());
+               return -1;
+       }
+}
+
+int DevicePolicyClient::unsubscribeSignal(int id) noexcept
+{
+       try {
+               mainloop->dispatch([&]() {
+                       dbus::signal::Receiver receiver(SIGNAL_OBJECT_PATH, SIGNAL_EVENT_INTERFACE);
+                       receiver.unsubscribe(id);
+               });
+
+               return 0;
+       } catch (runtime::Exception& e) {
+               ERROR(DPM, e.what());
+               return -1;
+       }
+}
+
+DevicePolicyClient& GetDevicePolicyClient(void* handle)
+{
+       return *reinterpret_cast<DevicePolicyClient*>(handle);
+}
+
+EXPORT_API device_policy_manager_h dpm_manager_create(void)
+{
+       DevicePolicyClient* client = new(std::nothrow) DevicePolicyClient();
+       if (client == nullptr) {
+               return NULL;
+       }
+
+       return reinterpret_cast<device_policy_manager_h>(client);
+}
+
+EXPORT_API int dpm_manager_destroy(device_policy_manager_h handle)
+{
+       RET_ON_FAILURE(handle, DPM_ERROR_INVALID_PARAMETER);
+
+       delete &GetDevicePolicyClient(handle);
+
+       return 0;
+}
+
+EXPORT_API int dpm_add_policy_changed_cb(device_policy_manager_h handle,
+                                                                                const char* name,
+                                                                                dpm_policy_changed_cb callback,
+                                                                                void* user_data,
+                                                                                int* id)
+{
+       RET_ON_FAILURE(handle, DPM_ERROR_INVALID_PARAMETER);
+       RET_ON_FAILURE(name, DPM_ERROR_INVALID_PARAMETER);
+       RET_ON_FAILURE(callback, DPM_ERROR_INVALID_PARAMETER);
+       RET_ON_FAILURE(id, DPM_ERROR_INVALID_PARAMETER);
+
+       DevicePolicyClient& client = GetDevicePolicyClient(handle);
+       int ret = client.subscribeSignal(name, callback, user_data);
+       if (ret < 0) {
+               return -1;
+       }
+
+       *id = ret;
+       return 0;
+}
+
+EXPORT_API int dpm_remove_policy_changed_cb(device_policy_manager_h handle, int id)
+{
+       RET_ON_FAILURE(handle, DPM_ERROR_INVALID_PARAMETER);
+       RET_ON_FAILURE(id >= 0, DPM_ERROR_INVALID_PARAMETER);
+
+       DevicePolicyClient& client = GetDevicePolicyClient(handle);
+       return client.unsubscribeSignal(id);
+}
+
+EXPORT_API int dpm_add_signal_cb(device_policy_manager_h handle, const char* signal,
+                                                                dpm_signal_cb callback, void* user_data, int* id)
+{
+       RET_ON_FAILURE(handle, DPM_ERROR_INVALID_PARAMETER);
+       RET_ON_FAILURE(signal, DPM_ERROR_INVALID_PARAMETER);
+       RET_ON_FAILURE(callback, DPM_ERROR_INVALID_PARAMETER);
+       RET_ON_FAILURE(id, DPM_ERROR_INVALID_PARAMETER);
+
+       DevicePolicyClient& context = GetDevicePolicyClient(handle);
+       int ret = context.subscribeSignal(signal, callback, user_data);
+       if (ret < 0) {
+               return -1;
+       }
+
+       *id = ret;
+       return 0;
+}
+
+EXPORT_API int dpm_remove_signal_cb(device_policy_manager_h handle, int id)
+{
+       RET_ON_FAILURE(handle, DPM_ERROR_INVALID_PARAMETER);
+       RET_ON_FAILURE(id >= 0, DPM_ERROR_INVALID_PARAMETER);
+
+       DevicePolicyClient& context = GetDevicePolicyClient(handle);
+       return context.unsubscribeSignal(id);
+}
+
+EXPORT_API int dpm_admin_register_client(device_policy_manager_h handle, const char* name, uid_t uid)
+{
+       RET_ON_FAILURE(handle, DPM_ERROR_INVALID_PARAMETER);
+       RET_ON_FAILURE(name, DPM_ERROR_INVALID_PARAMETER);
+       RET_ON_FAILURE(uid, DPM_ERROR_INVALID_PARAMETER);
+
+       DevicePolicyClient &client = GetDevicePolicyClient(handle);
+
+       try {
+               Status<int> status { -1 };
+               status = client.methodCallForce<int>("DevicePolicyManager::enroll", name, uid);
+               return status.get();
+       } catch (...) {
+               return -1;
+       }
+}
+
+EXPORT_API int dpm_admin_deregister_client(device_policy_manager_h handle, const char* name, uid_t uid)
+{
+       RET_ON_FAILURE(handle, DPM_ERROR_INVALID_PARAMETER);
+       RET_ON_FAILURE(name, DPM_ERROR_INVALID_PARAMETER);
+       RET_ON_FAILURE(uid, DPM_ERROR_INVALID_PARAMETER);
+
+       DevicePolicyClient &client = GetDevicePolicyClient(handle);
+
+       try {
+               Status<int> status { -1 };
+               status = client.methodCallForce<int>("DevicePolicyManager::disenroll", name, uid);
+               return status.get();
+       } catch (...) {
+               return -1;
+       }
+}
diff --git a/src/policyd/pil/policy-client.h b/src/policyd/pil/policy-client.h
new file mode 100644 (file)
index 0000000..f2d1b11
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ *  Copyright (c) 2015 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 __POLICY_CLIENT_H__
+#define __POLICY_CLIENT_H__
+
+#include <string>
+#include <memory>
+#include <functional>
+#include <cerrno>
+#include <vconf.h>
+
+#include <klay/rmi/method.h>
+#include <klay/gmainloop.h>
+
+#include "status.h"
+
+typedef std::function<void(const char*, const char*, void*)> SignalHandler;
+
+class DevicePolicyClient {
+public:
+       DevicePolicyClient() noexcept;
+       ~DevicePolicyClient() noexcept;
+
+       int subscribeSignal(const std::string& name,
+                                               const SignalHandler& handler,
+                                               void* data) noexcept;
+       int unsubscribeSignal(int subscriberId) noexcept;
+
+       template<typename Type, typename... Args>
+       Type methodCall(const std::string& method, Args&&... args)
+       {
+               if (!maintenanceMode) {
+                       errno = EPROTONOSUPPORT;
+                       return Type();
+               }
+
+               rmi::Connection conn(clientAddress);
+               Type ret = rmi::RemoteMethod<>::invoke<Type, Args...>(conn, method, std::forward<Args>(args)...);
+               return ret;
+       }
+
+       template<typename Type, typename... Args>
+       Type methodCallForce(const std::string& method, Args&&... args)
+       {
+               rmi::Connection conn(clientAddress);
+               Type ret = rmi::RemoteMethod<>::invoke<Type, Args...>(conn, method, std::forward<Args>(args)...);
+               return ret;
+       }
+
+private:
+       static void maintenanceModeDispatcher(keynode_t *node, void *data);
+private:
+       int maintenanceMode;
+       std::string clientAddress;
+       std::unique_ptr<ScopedGMainLoop> mainloop;
+};
+
+DevicePolicyClient& GetDevicePolicyClient(void* handle);
+
+#endif //__POLICY_CLIENT_H__
diff --git a/src/policyd/pil/policy-context.h b/src/policyd/pil/policy-context.h
new file mode 100644 (file)
index 0000000..1fabafc
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ *  Copyright (c) 2015 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 __DEVICE_POLICY_CONTEXT__
+#define __DEVICE_POLICY_CONTEXT__
+
+#include <klay/rmi/service.h>
+
+using PolicyControlContext = rmi::Service;
+
+#endif //!__DEVICE_POLICY_CONTEXT__
diff --git a/src/policyd/pil/policy-event-env.h b/src/policyd/pil/policy-event-env.h
new file mode 100644 (file)
index 0000000..dff41e6
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ *  Copyright (c) 2017 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 __DPM_POLICY_EVENT_ENV_H__
+#define __DPM_POLICY_EVENT_ENV_H__
+
+#include <string>
+
+const std::string PIL_MANIFEST_PATH = EVENT_CONFIGURE_DIR "/manifest";
+const std::string PIL_OBJECT_PATH = "/org/tizen/DevicePolicyManger/PIL";
+const std::string PIL_EVENT_INTERFACE = "org.tizen.DevicePolicyManager.PIL.Event";
+
+#endif //__DPM_POLICY_EVENT_ENV_H__
diff --git a/src/policyd/pil/policy-event.cpp b/src/policyd/pil/policy-event.cpp
new file mode 100644 (file)
index 0000000..8ab3d85
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ *  Copyright (c) 2015 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
+ */
+
+#include "policy-event.h"
+#include "policy-event-env.h"
+#include "logger.h"
+
+#include <klay/dbus/signal.h>
+#include <klay/dbus/introspection.h>
+#include <klay/exception.h>
+
+
+void PolicyEventNotifier::init(void) noexcept
+{
+       try {
+               auto manifest = dbus::Introspection::createXmlDataFromFile(PIL_MANIFEST_PATH);
+               dbus::Introspection is(manifest);
+               is.addInterface(PIL_EVENT_INTERFACE);
+
+               manifest = is.getXmlData();
+               dbus::Introspection::writeXmlDataToFile(PIL_MANIFEST_PATH, manifest);
+
+               dbus::Connection& conn = dbus::Connection::getSystem();
+               conn.registerObject(PIL_OBJECT_PATH, manifest, nullptr, nullptr);
+               DEBUG(DPM, "Success to init event-notifier.");
+       } catch(runtime::Exception& e) {
+               ERROR(DPM, e.what());
+       }
+}
+
+void PolicyEventNotifier::create(const std::string& name) noexcept
+{
+       try {
+               dbus::signal::Sender sender(PIL_OBJECT_PATH, PIL_EVENT_INTERFACE);
+               sender.addSignal(PIL_MANIFEST_PATH, name, "(s)");
+               DEBUG(DPM, "Success to create new event: " << name);
+       } catch(runtime::Exception& e) {
+               ERROR(DPM, e.what() << ", name: " << name);
+       }
+}
+
+void PolicyEventNotifier::emit(const std::string& name, const std::string& state) noexcept
+{
+       try {
+               dbus::signal::Sender sender(PIL_OBJECT_PATH, PIL_EVENT_INTERFACE);
+               sender.emit(name, "(s)", state.c_str());
+               DEBUG(DPM, "Event occured name: " << name << ", state: " << state);
+       } catch(runtime::Exception& e) {
+               ERROR(DPM, e.what() << ", name: " << name << ", state: " << state);
+       }
+}
diff --git a/src/policyd/pil/policy-event.h b/src/policyd/pil/policy-event.h
new file mode 100644 (file)
index 0000000..4f92cba
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ *  Copyright (c) 2015 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 __DPM_POLICY_EVENT_H__
+#define __DPM_POLICY_EVENT_H__
+
+#include <string>
+
+class PolicyEventNotifier {
+public:
+       static void init(void) noexcept;
+       static void create(const std::string& name) noexcept;
+       static void emit(const std::string& name, const std::string& state) noexcept;
+};
+
+#endif //__DPM_POLICY_EVENT_H__
diff --git a/src/policyd/pil/policy-model.h b/src/policyd/pil/policy-model.h
new file mode 100644 (file)
index 0000000..c9df02c
--- /dev/null
@@ -0,0 +1,214 @@
+/*
+ *  Copyright (c) 2015 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 __DPM_POLICY_MODEL_H__
+#define __DPM_POLICY_MODEL_H__
+#include <string>
+#include <vector>
+#include <unordered_map>
+#include <iostream>
+#include <mutex>
+
+#include <klay/exception.h>
+
+#include "policy-storage.h"
+#include "policy-admin.h"
+#include "observer.h"
+
+class AbstractPolicyProvider {
+public:
+       AbstractPolicyProvider() {}
+       virtual ~AbstractPolicyProvider() {}
+};
+
+template<typename Type>
+class DomainPolicy : public Observer {
+public:
+       typedef Type DataType;
+
+       DomainPolicy(const std::string& name);
+       virtual ~DomainPolicy();
+
+       void set(const Type& value);
+       DataType get();
+
+       void onEvent(uid_t domain);
+
+       virtual bool apply(const Type& value, uid_t domain)
+       {
+               return true;
+       }
+
+private:
+       void enforce(uid_t domid);
+
+private:
+       int id;
+       Type initial;
+       std::unordered_map<uid_t, Type> current;
+       std::unordered_map<uid_t, bool> ready;
+       std::mutex mtx;
+};
+
+template<typename Type>
+DomainPolicy<Type>::DomainPolicy(const std::string& name) :
+       id(-1), current()
+{
+       id = PolicyStorage::define(name, initial);
+       if (id < 0) {
+               throw runtime::Exception("Failed to define policy");
+       }
+
+       PolicyStorage::subscribeEvent(this);
+}
+
+template<typename Type>
+DomainPolicy<Type>::~DomainPolicy()
+{
+}
+
+template<typename Type>
+void DomainPolicy<Type>::enforce(uid_t domid)
+{
+       Type value = initial;
+       if (!ready[domid])
+               current[domid] = initial;
+
+       PolicyStorage::strictize(id, value, domid);
+       if (current[domid] != value) {
+               apply(value, domid);
+               current[domid] = value;
+       }
+
+       ready[domid] = true;
+}
+
+template<typename Type>
+void DomainPolicy<Type>::set(const DataType& val)
+{
+       PolicyAdmin admin(rmi::Service::getPeerPid(), rmi::Service::getPeerUid());
+       PolicyStorage::update(id, admin.getName(), admin.getUid(), val);
+
+       std::lock_guard<std::mutex> mtxGuard(mtx);
+       enforce(admin.getUid());
+}
+
+template<typename Type>
+Type DomainPolicy<Type>::get()
+{
+       uid_t domain = rmi::Service::getPeerUid();
+
+       std::lock_guard<std::mutex> mtxGuard(mtx);
+       if (!current.count(domain)) {
+               enforce(domain);
+       }
+
+       return current[domain].value;
+}
+
+template<typename Type>
+void DomainPolicy<Type>::onEvent(uid_t domain)
+{
+       std::lock_guard<std::mutex> mtxGuard(mtx);
+       enforce(domain);
+}
+
+template<typename Type>
+class GlobalPolicy : public Observer {
+public:
+       typedef Type DataType;
+
+       GlobalPolicy(const std::string& name);
+       virtual ~GlobalPolicy();
+
+       void set(const Type& value);
+       Type get();
+
+       void onEvent(uid_t domain);
+
+       virtual bool apply(const Type& value)
+       {
+               return true;
+       }
+
+private:
+       void enforce();
+
+private:
+       int id;
+       Type initial;
+       Type current;
+       bool ready;
+       std::mutex mtx;
+};
+
+template<typename Type>
+GlobalPolicy<Type>::GlobalPolicy(const std::string& name) :
+       id(-1), current(), ready(false)
+{
+       id = PolicyStorage::define(name, initial);
+       if (id < 0) {
+               throw runtime::Exception("Failed to define policy");
+       }
+
+       current = initial;
+       PolicyStorage::subscribeEvent(this);
+}
+
+template<typename Type>
+GlobalPolicy<Type>::~GlobalPolicy()
+{
+}
+
+template<typename Type>
+void GlobalPolicy<Type>::enforce()
+{
+       Type value = initial;
+       PolicyStorage::strictize(id, value);
+       if (current != value) {
+               apply(value);
+               current = value;
+       }
+}
+
+template<typename Type>
+void GlobalPolicy<Type>::set(const Type& val)
+{
+       PolicyAdmin admin(rmi::Service::getPeerPid(), rmi::Service::getPeerUid());
+       PolicyStorage::update(id, admin.getName(), admin.getUid(), val);
+
+       std::lock_guard<std::mutex> mtxGuard(mtx);
+       enforce();
+}
+
+template<typename Type>
+Type GlobalPolicy<Type>::get()
+{
+       std::lock_guard<std::mutex> mtxGuard(mtx);
+       if (!ready) {
+               enforce();
+               ready = true;
+       }
+       return current.value;
+}
+
+template<typename Type>
+void GlobalPolicy<Type>::onEvent(uid_t domain)
+{
+       std::lock_guard<std::mutex> mtxGuard(mtx);
+       enforce();
+}
+#endif //__DPM_POLICY_MODEL_H__
diff --git a/src/policyd/pil/policy-storage.cpp b/src/policyd/pil/policy-storage.cpp
new file mode 100644 (file)
index 0000000..c06827e
--- /dev/null
@@ -0,0 +1,20 @@
+/*
+ *  Copyright (c) 2015 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
+ */
+
+#include "policy-storage.h"
+
+Observerable PolicyStorage::observers;
+PolicyStorageBackend *PolicyStorage::backend = nullptr;
diff --git a/src/policyd/pil/policy-storage.h b/src/policyd/pil/policy-storage.h
new file mode 100644 (file)
index 0000000..e3aa4d6
--- /dev/null
@@ -0,0 +1,129 @@
+/*
+ *  Copyright (c) 2015 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 __DPM_POLICY_STORAGE_H__
+#define __DPM_POLICY_STORAGE_H__
+#include <sys/types.h>
+#include <unistd.h>
+
+#include <string>
+#include <vector>
+
+#include "observer.h"
+
+class DataSetInt {
+public:
+       DataSetInt() : value(0) {}
+       DataSetInt(int v) : value(v) {}
+       virtual ~DataSetInt() {}
+
+       DataSetInt& operator=(int val) {
+               value = val;
+               return *this;
+       }
+
+       operator int() const {
+               return value;
+       }
+
+       bool operator==(const DataSetInt& rhs) const {
+               return value == rhs.value;
+       }
+
+       bool operator!=(const DataSetInt& rhs) const {
+               return value != rhs.value;
+       }
+
+       virtual bool strictize(const DataSetInt& rhs) {
+               if (rhs.value < value) {
+                       value = rhs.value;
+                       return true;
+               }
+
+               return false;
+       }
+
+       int value;
+};
+
+class PolicyStorageBackend {
+public:
+       PolicyStorageBackend() {}
+       virtual ~PolicyStorageBackend() {}
+
+       virtual int define(const std::string& name, DataSetInt& value) = 0;
+       virtual bool strictize(int id, DataSetInt& value, uid_t domain = 0) = 0;
+       virtual void update(int id, const std::string& admin, uid_t domain, const DataSetInt& value) = 0;
+       virtual int enroll(const std::string& name, uid_t domain) = 0;
+       virtual int unenroll(const std::string& name, uid_t domain) = 0;
+       virtual std::vector<uid_t> fetchDomains() = 0;
+};
+
+class PolicyStorage {
+public:
+       template<typename T>
+       static int define(const std::string& name, T& value) {
+               return backend->define(name, value);
+       }
+
+       template<typename T>
+       static bool strictize(int id, T& value, uid_t domain = 0) {
+               return backend->strictize(id, value, domain);
+       }
+
+       template<typename T>
+       static void update(int id, const std::string& admin, uid_t domain, const T& value) {
+               backend->update(id, admin, domain, value);
+       }
+
+       static void setBackend(PolicyStorageBackend *pimpl) {
+               backend = pimpl;
+       }
+
+       static void subscribeEvent(Observer *observer) {
+               observers.attach(observer);
+       }
+
+       static int enroll(const std::string& name, uid_t domain) {
+               return backend->enroll(name, domain);
+       }
+
+       static int unenroll(const std::string& name, uid_t domain) {
+               int rc = backend->unenroll(name, domain);
+               if (rc == 0) {
+                       observers.notify({domain});
+               }
+
+               return rc;
+       }
+
+       static void notify() {
+               std::vector<uid_t> domains = backend->fetchDomains();
+               for (auto domid : domains) {
+                       observers.notify({domid});
+               }
+       }
+
+       static std::vector<uid_t> fetchDomains() {
+               return backend->fetchDomains();
+       }
+
+private:
+       static Observerable observers;
+       static PolicyStorageBackend *backend;
+};
+
+#endif //__DPM_POLICY_STORAGE_H__
diff --git a/src/policyd/pil/preference.cpp b/src/policyd/pil/preference.cpp
new file mode 100644 (file)
index 0000000..f9b4ac8
--- /dev/null
@@ -0,0 +1,108 @@
+/*
+ *  Copyright (c) 2015 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
+ */
+
+#include <fstream>
+#include <algorithm>
+
+#include <klay/exception.h>
+#include <klay/audit/logger.h>
+
+#include "preference.h"
+
+namespace {
+
+std::string& trimLeadingWhiteSpaces(std::string& s)
+{
+       size_t startpos = s.find_first_not_of(" \t\r\n\v\f");
+       if (std::string::npos != startpos) {
+               s = s.substr(startpos);
+       }
+
+       return s;
+}
+
+std::string& trimTrailingWhiteSpaces(std::string& s)
+{
+       size_t endpos = s.find_last_not_of(" \t\r\n\v\f");
+       if (std::string::npos != endpos) {
+               s = s.substr(0, endpos + 1);
+       }
+
+       return s;
+}
+
+std::unordered_map<std::string, std::string> defaultPreferences = {
+       {"locktype", "org.tizen.setting-password"},
+       {"syspopup", "org.tizen.dpm-syspopup"}
+};
+
+} // namespace
+
+PreferencesStore::PreferencesStore()
+{
+}
+
+PreferencesStore& PreferencesStore::getInstance()
+{
+       static PreferencesStore __instance__;
+       return __instance__;
+}
+
+std::string PreferencesStore::get(const std::string& key)
+{
+       type::const_iterator it = keyValueMap.find(key);
+       if (it != keyValueMap.end())
+               return it->second;
+
+       return "";
+}
+
+void PreferencesStore::load(const std::string& filename)
+{
+       std::ifstream source;
+       source.open(filename);
+
+       if (!source) {
+               keyValueMap = defaultPreferences;
+               return;
+       }
+
+       for (std::string line; std::getline(source, line);) {
+               size_t startpos = line.find_first_not_of(" \t\r\n\v\f");
+               if (startpos == std::string::npos) {
+                       continue;
+               } else {
+                       line = line.substr(startpos);
+               }
+
+               switch (line[0]) {
+               case ';':
+               case '#':
+                               break;
+               default:
+                       size_t end = line.find_first_of("=:");
+                       if (end == std::string::npos) {
+                               throw runtime::Exception("Invalid syntax");
+                       }
+                       std::string name = line.substr(0, end);
+                       std::string value = line.substr(end + 1);
+
+                       trimLeadingWhiteSpaces(trimTrailingWhiteSpaces(name));
+                       trimLeadingWhiteSpaces(trimTrailingWhiteSpaces(value));
+                       keyValueMap[name] = value;
+               }
+       }
+}
diff --git a/src/policyd/pil/preference.h b/src/policyd/pil/preference.h
new file mode 100644 (file)
index 0000000..df78d9b
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ *  Copyright (c) 2015 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 __DPM_PREFERENCES_H__
+#define __DPM_PREFERENCES_H__
+
+#include <string>
+#include <unordered_map>
+
+#include <klay/reflection.h>
+
+class PreferencesStore {
+public:
+       typedef std::unordered_map<std::string, std::string> type;
+
+       PreferencesStore(const std::string& pathname);
+       std::string get(const std::string& key);
+       void load(const std::string& filename);
+
+       static PreferencesStore& getInstance();
+
+private:
+       PreferencesStore();
+
+private:
+       std::unordered_map<std::string, std::string> keyValueMap;
+};
+
+#endif //__DPM_PREFERENCES_H__
diff --git a/src/policyd/pil/status.h b/src/policyd/pil/status.h
new file mode 100644 (file)
index 0000000..2336af6
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ *  Copyright (c) 2015 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 __STATUS_H__
+#define __STATUS_H__
+
+#include <cerrno>
+#include <utility>
+
+template<typename Type>
+class Status {
+public:
+       Status() = delete;
+       Status(Type&& defaultValue) : value(std::forward<Type>(defaultValue))
+       {
+               errno = 0;
+       }
+
+       void operator=(Type&& newValue)
+       {
+               if (errno == 0)
+                       value = newValue;
+       }
+
+       Type get() const
+       {
+               return value;
+       }
+
+private:
+       Type value;
+};
+
+#endif //!__STATUS_H__
diff --git a/src/policyd/server/CMakeLists.txt b/src/policyd/server/CMakeLists.txt
new file mode 100644 (file)
index 0000000..e0872ca
--- /dev/null
@@ -0,0 +1,58 @@
+# Copyright (c) 2019 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.
+#
+
+SET(TARGET device-policy-manager)
+SET(TARGET_SERVER_LIB dpm-server)
+
+SET(SERVER_SRC server.cpp
+                          sql-backend.cpp
+                          plugin.cpp)
+
+SET(SERVER_DEP klay
+                          glib-2.0
+                          gio-2.0
+                          sqlite3
+                          bundle
+                          aul
+                          appsvc
+                          pkgmgr
+                          pkgmgr-info
+                          vconf
+                          syspopup-caller
+                          deviced
+                          libtzplatform-config
+                          cynara-client
+                          cynara-session)
+
+PKG_CHECK_MODULES(SERVER_DEPS REQUIRED ${SERVER_DEP})
+
+INCLUDE_DIRECTORIES(${SERVER_DEPS_INCLUDE_DIRS})
+
+ADD_LIBRARY(${TARGET_SERVER_LIB} STATIC ${SERVER_SRC})
+TARGET_LINK_LIBRARIES(${TARGET_SERVER_LIB} ${SERVER_DEPS_LIBRARIES} -ldl)
+
+TARGET_COMPILE_DEFINITIONS(${TARGET_SERVER_LIB} PRIVATE
+       DATA_PATH="${DATA_INSTALL_DIR}"
+       RUN_PATH="${RUN_INSTALL_DIR}"
+       DB_PATH="${DB_INSTALL_DIR}"
+       PLUGIN_INSTALL_DIR="${PLUGIN_INSTALL_DIR}")
+
+ADD_EXECUTABLE(${TARGET} main.cpp)
+TARGET_LINK_LIBRARIES(${TARGET} dl pthread sqlite3 dpm-pil ${TARGET_SERVER_LIB})
+
+SET_TARGET_PROPERTIES(${TARGET} PROPERTIES COMPILE_FLAGS "-fPIE")
+SET_TARGET_PROPERTIES(${TARGET} PROPERTIES LINK_FLAGS "-pie")
+
+INSTALL(TARGETS ${TARGET} DESTINATION ${CMAKE_INSTALL_BINDIR})
diff --git a/src/policyd/server/db-schema.h b/src/policyd/server/db-schema.h
new file mode 100644 (file)
index 0000000..5287418
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ *  Copyright (c) 2018 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
+ */
+#pragma once
+
+#include <string>
+
+namespace schema {
+
+struct Admin {
+       int id;
+       std::string pkg;
+       int uid;
+       std::string key;
+       int removable;
+};
+
+struct ManagedPolicy {
+       int id;
+       int aid;
+       int pid;
+       int value;
+};
+
+struct PolicyDefinition {
+       int id;
+       int scope;
+       std::string name;
+       int ivalue;
+};
+
+} // namespace schema
diff --git a/src/policyd/server/main.cpp b/src/policyd/server/main.cpp
new file mode 100644 (file)
index 0000000..90be3c5
--- /dev/null
@@ -0,0 +1,97 @@
+/*
+ *  Copyright (c) 2015 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
+ */
+#include <fcntl.h>
+#include <unistd.h>
+#include <getopt.h>
+#include <signal.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include <cstdlib>
+#include <iostream>
+#include <stdexcept>
+#include <memory>
+
+#include <klay/gmainloop.h>
+
+#include "pil/logger.h"
+
+#include "server.h"
+
+namespace {
+
+void usage(const std::string& prog)
+{
+       std::cout << "Usage: " << prog << "\n"
+                         << "Options: \n"
+                         << "  -o --on-demand timeout : Start as on-demand service\n"
+                         << "                           Service will be unloaded after timeout\n"
+                         << std::endl;
+}
+
+void signalHandler(int signum)
+{
+       ERROR(DPM, "Interrupted");
+       exit(0);
+}
+
+} // namespace
+int main(int argc, char *argv[])
+{
+       struct option options[] = {
+               {"on-demand", required_argument, 0, 'o'},
+               {"help",      no_argument,       0, 'h'},
+               {0,           0,                 0,  0 }
+       };
+
+       ::signal(SIGINT, signalHandler);
+
+       bool ondemand = false;
+       int index, opt, timeout = -1;
+       while ((opt = getopt_long(argc, argv, "o:h", options, &index)) != -1) {
+               switch (opt) {
+               case 'o':
+                       ondemand = true;
+                       timeout = ::atoi(optarg);
+                       break;
+               case 'h':
+                       usage(argv[0]);
+                       return EXIT_SUCCESS;
+               default:
+                       usage(argv[0]);
+                       return EXIT_FAILURE;
+               }
+       }
+
+       ::umask(0);
+
+       try {
+               ScopedGMainLoop gmainloop;
+               DevicePolicyManager manager;
+
+               auto result = manager.loadPolicyPlugins();
+               if (result.first == 0)
+                       throw runtime::Exception("There are no available policy plugins.");
+               manager.applyPolicies();
+
+               manager.run(ondemand, timeout);
+       } catch (std::exception &e) {
+               ERROR(DPM, e.what());
+               return EXIT_FAILURE;
+       }
+
+       return EXIT_SUCCESS;
+}
diff --git a/src/policyd/server/plugin.cpp b/src/policyd/server/plugin.cpp
new file mode 100644 (file)
index 0000000..6fae176
--- /dev/null
@@ -0,0 +1,79 @@
+#include <dlfcn.h>
+
+#include <string>
+#include <iostream>
+#include <mutex>
+#include <thread>
+#include <exception>
+#include <memory>
+#include <unordered_map>
+
+#include "pil/logger.h"
+
+#include "plugin.h"
+
+Plugin::Plugin() :
+       handle(nullptr)
+{
+}
+
+Plugin::~Plugin()
+{
+}
+
+int Plugin::load(const std::string& path, int flags)
+{
+       handle = ::dlopen(path.c_str(), flags);
+       if (!handle) {
+               return -1;
+       }
+
+       return 0;
+}
+
+void Plugin::unload()
+{
+       if (handle) {
+               dlclose(handle);
+               handle = nullptr;
+       }
+}
+
+void* Plugin::lookupSymbol(const std::string& name)
+{
+       void *result = nullptr;
+       if (handle) {
+               result = ::dlsym(handle, name.c_str());
+       }
+       return result;
+}
+
+PolicyLoader::PolicyLoader(const std::string& base) :
+       basename(base + "/")
+{
+}
+
+AbstractPolicyProvider* PolicyLoader::instantiate(const std::string& name, PolicyControlContext& context)
+{
+       PluginMap::iterator iter = pluginMap.find(name);
+       if (iter == pluginMap.end()) {
+               Plugin plguin;
+               if (plguin.load(basename + name, RTLD_LAZY | RTLD_LOCAL) != 0) {
+                       ERROR(DPM, "Failed to load \"" << name << "\"");
+                       return nullptr;
+               }
+
+               DEBUG(DPM, "Loading plugin: " << name << " ... ");
+               PolicyFactory factory = (PolicyFactory)(plguin.lookupSymbol("PolicyFactory"));
+               if (factory == nullptr) {
+                       ERROR(DPM, dlerror());
+                       return NULL;
+               }
+
+               pluginMap[name] = std::move(plguin);
+
+               return (*factory)(context);
+       }
+
+       return nullptr;
+}
diff --git a/src/policyd/server/plugin.h b/src/policyd/server/plugin.h
new file mode 100644 (file)
index 0000000..a709fc7
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ *  Copyright (c) 2017 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 __DPM_PLUGIN_H__
+#define __DPM_PLUGIN_H__
+#include <string>
+#include <exception>
+#include <unordered_map>
+
+#include "pil/policy-context.h"
+#include "pil/policy-model.h"
+
+class Plugin {
+public:
+       Plugin();
+       virtual ~Plugin();
+
+       int load(const std::string& path, int flags);
+       void unload();
+       void* lookupSymbol(const std::string& name);
+
+       bool isLoaded() const
+       {
+               return handle != 0;
+       }
+
+       bool hasSymbol(const std::string& name)
+       {
+               return lookupSymbol(name) != 0;
+       }
+
+private:
+       void* handle;
+};
+
+class PolicyLoader {
+public:
+       typedef AbstractPolicyProvider* (*PolicyFactory)(PolicyControlContext& context);
+
+       PolicyLoader(const std::string& base);
+       AbstractPolicyProvider* instantiate(const std::string& name, rmi::Service& context);
+
+private:
+       typedef std::unordered_map<std::string, Plugin> PluginMap;
+
+       std::string basename;
+       PluginMap pluginMap;
+};
+
+#endif /*!__DPM_PLUGIN_H__*/
diff --git a/src/policyd/server/server.cpp b/src/policyd/server/server.cpp
new file mode 100644 (file)
index 0000000..ff932e1
--- /dev/null
@@ -0,0 +1,247 @@
+/*
+ *  Copyright (c) 2015 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
+ */
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#include <functional>
+
+#include <cynara-client.h>
+#include <cynara-session.h>
+
+#include <klay/exception.h>
+#include <klay/filesystem.h>
+
+#include "pil/policy-event.h"
+#include "pil/logger.h"
+
+#include "server.h"
+#include "sql-backend.h"
+
+#include <vconf.h>
+
+#define VCONFKEY_DPM_MODE_STATE "db/dpm/mode_state"
+
+using namespace std::placeholders;
+
+namespace {
+const std::string PolicyStoragePath = "/opt/dbspace/.dpm.db";
+const std::string PolicyManagerSocket = "/tmp/.device-policy-manager.sock";
+const std::string PolicyPluginBase = PLUGIN_INSTALL_DIR;
+const std::string BootCompleted = "/tmp/.dpm-bootCompleted";
+const std::string BootString = "bootCompleted";
+
+} // namespace
+
+DevicePolicyManager::DevicePolicyManager() :
+       rmi::Service(PolicyManagerSocket)
+{
+       initPolicyStorage();
+
+       PolicyEventNotifier::init();
+
+       setPrivilegeChecker(std::bind(&DevicePolicyManager::checkPeerPrivilege, this, _1, _2));
+       setNewConnectionCallback(std::bind(&DevicePolicyManager::checkNewConnection, this, _1));
+       setCloseConnectionCallback(std::bind(&DevicePolicyManager::checkCloseConnection, this, _1));
+
+       expose(this, "", (int)(DevicePolicyManager::enroll)(std::string, uid_t));
+       expose(this, "", (int)(DevicePolicyManager::disenroll)(std::string, uid_t));
+
+       bootCompletedFile = runtime::File(BootCompleted);
+       bootCompletedFile.create(0644);
+       bootCompletedFile.close();
+}
+
+DevicePolicyManager::~DevicePolicyManager()
+{
+       if (policyApplyThread.joinable())
+               policyApplyThread.join();
+
+       try {
+               if (bootCompletedFile.exists()) {
+                       bootCompletedFile.remove();
+               }
+       } catch (std::exception &e) {
+               ERROR(DPM, e.what());
+       }
+}
+
+std::pair<int, int> DevicePolicyManager::loadPolicyPlugins()
+{
+    runtime::File folder(PolicyPluginBase);
+       if (!folder.exists() || !folder.isDirectory())
+               throw runtime::Exception("No exist plugin directories.");
+
+       policyLoader.reset(new PolicyLoader(PolicyPluginBase));
+
+       int passed = 0, failed = 0;
+       runtime::DirectoryIterator iter(PolicyPluginBase), end;
+       while (iter != end) {
+               if (!iter->isFile()) {
+                       ++iter;
+                       continue;
+               }
+
+               auto instance = policyLoader->instantiate(iter->getName(), *this);
+               if (instance == nullptr) {
+                       ERROR(DPM, "Failed to instantiate.: " << iter->getName());
+                       ++failed;
+                       ++iter;
+                       continue;
+               }
+
+               policyList.push_back(instance);
+               ++passed;
+               ++iter;
+       }
+       DEBUG(DPM, "Finished load policy-plugins: " <<
+                          "passed: " << passed << ", " <<
+                          "failed: " << failed);
+
+       return std::make_pair(passed, failed);
+}
+
+void DevicePolicyManager::initPolicyStorage()
+{
+       SQLBackend *backend = new SQLBackend();
+
+       if (backend->open(PolicyStoragePath)) {
+               throw runtime::Exception("Policy storage I/O error");
+       }
+
+       PolicyStorage::setBackend(backend);
+       DEBUG(DPM, "Success to init policy-storage.");
+
+       int mode = 0;
+       if(loadManagedClients() > 0) {
+               mode = 1;
+       }
+
+       if(::vconf_set_bool(VCONFKEY_DPM_MODE_STATE, mode) != 0) {
+               DEBUG(DPM, "VCONFKEY_DPM_MODE_STATE set  failed.");
+       }
+}
+
+void DevicePolicyManager::applyPolicies()
+{
+       policyApplyThread = std::thread(
+               [this]() {
+                       PolicyStorage::notify();
+
+                       if (bootCompletedFile.exists()) {
+                               bootCompletedFile.open(O_WRONLY);
+                               bootCompletedFile.lock();
+                               bootCompletedFile.write(BootString.c_str(), BootString.length());
+                               bootCompletedFile.unlock();
+                               bootCompletedFile.close();
+                       }
+               });
+}
+
+bool DevicePolicyManager::getMaintenanceMode()
+{
+       return loadManagedClients() > 0 ? true : false;
+}
+
+void DevicePolicyManager::run(int activation, int timeout)
+{
+       do {
+               start(activation, timeout);
+               timeout = -1;
+       } while (getMaintenanceMode());
+}
+
+int DevicePolicyManager::enroll(const std::string& name, uid_t uid)
+{
+       int ret = PolicyStorage::enroll(name, uid);
+       if(ret == 0) {
+               if(::vconf_set_bool(VCONFKEY_DPM_MODE_STATE, 1) != 0) {
+                       DEBUG(DPM, "VCONFKEY_DPM_MODE_STATE set  failed.");
+               }
+       }
+       return ret;
+}
+
+int DevicePolicyManager::disenroll(const std::string& name, uid_t uid)
+{
+       int ret = PolicyStorage::unenroll(name, uid);
+       if(ret == 0) {
+               if(loadManagedClients() == 0) {
+                       if(::vconf_set_bool(VCONFKEY_DPM_MODE_STATE, 0) != 0) {
+                               DEBUG(DPM, "VCONFKEY_DPM_MODE_STATE set  failed.");
+                       }
+                       stop();
+               }
+       }
+       return ret;
+}
+
+int DevicePolicyManager::loadManagedClients()
+{
+       return PolicyStorage::fetchDomains().size();
+}
+
+bool DevicePolicyManager::checkPeerPrivilege(const rmi::Credentials& cred, const std::string& privilege)
+{
+       if (!privilege.empty()) {
+               cynara *p_cynara;
+
+               if (::cynara_initialize(&p_cynara, NULL) != CYNARA_API_SUCCESS) {
+                       ERROR(DPM, "Failure in cynara API");
+                       return false;
+               }
+
+               if (::cynara_check(p_cynara, cred.security.c_str(), "",
+                                                  std::to_string(cred.uid).c_str(),
+                                                  privilege.c_str()) != CYNARA_API_ACCESS_ALLOWED) {
+                       ::cynara_finish(p_cynara);
+                       ERROR(DPM, "Access denied: " + cred.security + " : " + privilege);
+                       return false;
+               }
+
+               ::cynara_finish(p_cynara);
+       }
+
+       return true;
+}
+
+bool DevicePolicyManager::checkNewConnection(const rmi::Connection& connection)
+{
+       auto pid = (connection.getPeerCredentials()).pid;
+       if(clientRegistry.count(pid)) {
+               if(clientRegistry[pid] >= MAX_CLIENT_CONNECTIONS) {
+                       return false;
+               } else {
+                       clientRegistry[pid]++;
+               }
+       } else {
+               clientRegistry.emplace(pid, 1);
+       }
+
+       return true;
+}
+
+bool DevicePolicyManager::checkCloseConnection(const rmi::Connection& connection)
+{
+       auto pid = (connection.getPeerCredentials()).pid;
+       if(clientRegistry.count(pid)) {
+               clientRegistry[pid]--;
+               if(clientRegistry[pid] == 0) {
+                       clientRegistry.erase(pid);
+               }
+       }
+
+       return true;
+}
diff --git a/src/policyd/server/server.h b/src/policyd/server/server.h
new file mode 100644 (file)
index 0000000..38931e2
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ *  Copyright (c) 2015 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 __DEVICE_POLICY_MANAGER_H__
+#define __DEVICE_POLICY_MANAGER_H__
+
+#include <string>
+#include <memory>
+#include <vector>
+#include <utility>
+
+#include <vconf.h>
+
+#include <klay/filesystem.h>
+#include <klay/file-descriptor.h>
+#include <klay/rmi/service.h>
+
+#include "plugin.h"
+#include "sql-backend.h"
+
+#define MAX_CLIENT_CONNECTIONS 10
+
+class DevicePolicyManager : public rmi::Service {
+public:
+       DevicePolicyManager();
+       ~DevicePolicyManager();
+
+       int loadManagedClients();
+       std::pair<int, int> loadPolicyPlugins();
+       void applyPolicies();
+
+       void run(int activation, int timeout);
+
+private:
+       void initPolicyStorage();
+
+       int enroll(const std::string& name, uid_t uid);
+       int disenroll(const std::string& name, uid_t uid);
+
+       bool checkPeerPrivilege(const rmi::Credentials& cred, const std::string& privilege);
+       bool checkNewConnection(const rmi::Connection& connection);
+       bool checkCloseConnection(const rmi::Connection& connection);
+
+       bool getMaintenanceMode();
+
+private:
+       typedef std::unordered_map<int, int> ClientRegistry;
+       ClientRegistry clientRegistry;
+
+       std::vector<AbstractPolicyProvider *> policyList;
+       std::unique_ptr<PolicyLoader> policyLoader;
+       std::thread policyApplyThread;
+
+       runtime::File bootCompletedFile;
+};
+
+#endif //__DEVICE_POLICY_MANAGER_H__
diff --git a/src/policyd/server/sql-backend.cpp b/src/policyd/server/sql-backend.cpp
new file mode 100644 (file)
index 0000000..e7dca62
--- /dev/null
@@ -0,0 +1,191 @@
+/*
+ *  Copyright (c) 2015 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
+ */
+
+#include <klay/exception.h>
+#include <klay/db/query-builder.h>
+
+#include "pil/logger.h"
+
+#include "sql-backend.h"
+#include "db-schema.h"
+
+using namespace query_builder;
+using namespace schema;
+
+namespace {
+
+auto admin = make_table("admin",
+                                               make_column("id", &Admin::id),
+                                               make_column("pkg", &Admin::pkg),
+                                               make_column("uid", &Admin::uid),
+                                               make_column("key", &Admin::key),
+                                               make_column("removable", &Admin::removable));
+
+auto managedPolicy = make_table("managed_policy",
+                                                                make_column("id", &ManagedPolicy::id),
+                                                                make_column("aid", &ManagedPolicy::aid),
+                                                                make_column("pid", &ManagedPolicy::pid),
+                                                                make_column("value", &ManagedPolicy::value));
+
+auto policyDefinition = make_table("policy_definition",
+                                                                  make_column("id", &PolicyDefinition::id),
+                                                                  make_column("scope", &PolicyDefinition::scope),
+                                                                  make_column("name", &PolicyDefinition::name),
+                                                                  make_column("ivalue", &PolicyDefinition::ivalue));
+
+auto dpm = make_database("dpm", admin, managedPolicy, policyDefinition);
+
+} // anonymous namespace
+
+int SQLBackend::open(const std::string& path)
+{
+       try {
+               database.reset(new database::Connection(path, database::Connection::ReadWrite |
+                                                                                                         database::Connection::Create));
+               return 0;
+       } catch (runtime::Exception& e) {
+               ERROR(DPM, e.what());
+       }
+
+       return -1;
+}
+
+void SQLBackend::close()
+{
+       database.reset();
+}
+
+int SQLBackend::define(const std::string& name, DataSetInt& value)
+{
+       int id = -1;
+       std::string query = policyDefinition.select(&PolicyDefinition::id,
+                                                                                               &PolicyDefinition::ivalue)
+                                                                               .where(expr(&PolicyDefinition::name) == name);
+       database::Statement stmt(*database, query);
+
+       stmt.bind(1, name);
+       if (stmt.step()) {
+               id = stmt.getColumn(0);
+               value = stmt.getColumn(1);
+       }
+
+       return id;
+}
+
+bool SQLBackend::strictize(int id, DataSetInt& value, uid_t domain)
+{
+       bool updated = false;
+       std::string query = dpm.select(&ManagedPolicy::value)
+                                                  .join<PolicyDefinition>()
+                                                  .on(expr(&ManagedPolicy::pid) == expr(&PolicyDefinition::id))
+                                                  .join<Admin>()
+                                                  .on(expr(&ManagedPolicy::aid) == expr(&Admin::id))
+                                                  .where(expr(&ManagedPolicy::pid) == id);
+
+       if (domain) {
+               query += "AND admin.uid = ? ";
+       }
+
+       database::Statement stmt(*database, query);
+       stmt.bind(1, id);
+       if (domain) {
+               stmt.bind(2, static_cast<int>(domain));
+       }
+
+       while (stmt.step()) {
+               updated = value.strictize(DataSetInt(stmt.getColumn(0)));
+       }
+
+       return updated;
+}
+
+void SQLBackend::update(int id, const std::string& name, uid_t domain, const DataSetInt& value)
+{
+       int uid = static_cast<int>(domain);
+       std::string selectQuery = admin.select(&Admin::id).where(expr(&Admin::pkg) == name &&
+                                                                                                                        expr(&Admin::uid) == uid);
+       database::Statement stmt0(*database, selectQuery);
+       stmt0.bind(1, name);
+       stmt0.bind(2, uid);
+       if (!stmt0.step()) {
+               throw runtime::Exception("Unknown device admin client: " + name);
+       }
+
+       int aid = stmt0.getColumn(0);
+
+       std::string updateQuery = managedPolicy.update(&ManagedPolicy::value)
+                                                                                  .where(expr(&ManagedPolicy::pid) == id &&
+                                                                                                 expr(&ManagedPolicy::aid) == aid);
+       database::Statement stmt(*database, updateQuery);
+       stmt.bind(1, value);
+       stmt.bind(2, id);
+       stmt.bind(3, aid);
+       if (!stmt.exec()) {
+               throw runtime::Exception("Failed to update policy");
+       }
+}
+
+int SQLBackend::enroll(const std::string& name, uid_t domain)
+{
+       int uid = static_cast<int>(domain);
+       std::string selectQuery = admin.selectAll().where(expr(&Admin::pkg) == name &&
+                                                                                                         expr(&Admin::uid) == uid);
+       database::Statement stmt0(*database, selectQuery);
+       stmt0.bind(1, name);
+       stmt0.bind(2, uid);
+       if (stmt0.step())
+               return 0;
+
+       std::string key = "Not supported";
+
+       std::string insertQuery = admin.insert(&Admin::pkg, &Admin::uid,
+                                                                                  &Admin::key, &Admin::removable);
+       database::Statement stmt(*database, insertQuery);
+       stmt.bind(1, name);
+       stmt.bind(2, uid);
+       stmt.bind(3, key);
+       stmt.bind(4, true);
+       if (!stmt.exec())
+               return -1;
+
+       return 0;
+}
+
+int SQLBackend::unenroll(const std::string& name, uid_t domain)
+{
+       int uid = static_cast<int>(domain);
+       std::string query = admin.remove().where(expr(&Admin::pkg) == name &&
+                                                                                        expr(&Admin::uid) == uid);
+       database::Statement stmt(*database, query);
+       stmt.bind(1, name);
+       stmt.bind(2, uid);
+       if (!stmt.exec())
+               return -1;
+
+       return 0;
+}
+
+std::vector<uid_t> SQLBackend::fetchDomains()
+{
+       std::vector<uid_t> managedDomains;
+       std::string query = admin.select(distinct(&Admin::uid));
+       database::Statement stmt(*database, query);
+       while (stmt.step()) {
+               managedDomains.push_back(stmt.getColumn(0).getInt());
+       }
+
+       return managedDomains;
+}
diff --git a/src/policyd/server/sql-backend.h b/src/policyd/server/sql-backend.h
new file mode 100644 (file)
index 0000000..9b322c2
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ *  Copyright (c) 2015 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 __DPM_SQL_BACKEND_H__
+#define __DPM_SQL_BACKEND_H__
+#include <memory>
+#include <vector>
+
+#include <klay/exception.h>
+#include <klay/db/connection.h>
+#include <klay/db/statement.h>
+#include <klay/db/column.h>
+
+#include "pil/policy-storage.h"
+
+class SQLBackend : public PolicyStorageBackend {
+public:
+       int open(const std::string& location);
+       void close();
+
+       int define(const std::string& name, DataSetInt& value);
+
+       bool strictize(int id, DataSetInt& value, uid_t domain);
+
+       void update(int id, const std::string& name, uid_t domain, const DataSetInt& value);
+
+       int enroll(const std::string& name, uid_t domain);
+       int unenroll(const std::string& name, uid_t domain);
+
+       std::vector<uid_t> fetchDomains();
+
+private:
+       std::shared_ptr<database::Connection> database;
+};
+
+#endif //__DPM_SQL_BACKEND_H__
diff --git a/src/policyd/tests/CMakeLists.txt b/src/policyd/tests/CMakeLists.txt
new file mode 100644 (file)
index 0000000..e60c3e8
--- /dev/null
@@ -0,0 +1,44 @@
+#  Copyright (c) 2017 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
+#
+
+SET(DPM_TEST_TARGET "dpm-test")
+SET(DPM_TEST_SRCS main.cpp
+                                 test-pil.cpp
+                                 test-server.cpp
+                                 test-query.cpp)
+
+PKG_CHECK_MODULES(${DPM_TEST_TARGET}_DEP REQUIRED klay glib-2.0 gio-2.0 vconf aul)
+
+INCLUDE_DIRECTORIES(SYSTEM ${${DPM_TEST_TARGET}_DEP_INCLUDE_DIRS}
+                                                  ${CMAKE_SOURCE_DIR}/src)
+
+ADD_EXECUTABLE(${DPM_TEST_TARGET} ${DPM_TEST_SRCS})
+
+TARGET_LINK_LIBRARIES(${DPM_TEST_TARGET} ${${DPM_TEST_TARGET}_DEP_LIBRARIES}
+                                                                                dpm-server
+                                                                                dpm-pil)
+
+SET_TARGET_PROPERTIES(${DPM_TEST_TARGET} PROPERTIES COMPILE_FLAGS "-fPIE")
+SET_TARGET_PROPERTIES(${DPM_TEST_TARGET} PROPERTIES LINK_FLAGS "-pie")
+
+INSTALL(TARGETS ${DPM_TEST_TARGET}
+               DESTINATION bin
+               PERMISSIONS OWNER_READ
+                                       OWNER_WRITE
+                                       OWNER_EXECUTE
+                                       GROUP_READ
+                                       GROUP_EXECUTE
+                                       WORLD_READ
+                                       WORLD_EXECUTE)
diff --git a/src/policyd/tests/main.cpp b/src/policyd/tests/main.cpp
new file mode 100644 (file)
index 0000000..c3b8a96
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ *  Copyright (c) 2017 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
+ */
+
+#include <klay/testbench.h>
+
+int main(int /*argc*/, char** /*argv*/)
+{
+       testbench::Testbench::runAllTestSuites();
+
+       return 0;
+}
diff --git a/src/policyd/tests/test-pil.cpp b/src/policyd/tests/test-pil.cpp
new file mode 100644 (file)
index 0000000..b703956
--- /dev/null
@@ -0,0 +1,71 @@
+/*
+ *  Copyright (c) 2017 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
+ */
+
+#include "pil/policy-event.h"
+#include "pil/policy-client.h"
+
+#include <klay/testbench.h>
+
+#include <klay/gmainloop.h>
+
+#include <string>
+#include <memory>
+#include <thread>
+#include <chrono>
+
+namespace {
+
+const std::string TEST_PIL_EVENT_NAME = "EVENT_NAME";
+const std::string TEST_PIL_EVENT_STATE = "EVENT_STATE";
+std::string TEST_PIL_EVENT_DATA = "EVENT_DATA";
+
+} // anonymous namespace
+
+TESTCASE(PIL_EVENT)
+{
+       ScopedGMainLoop mainloop;
+
+       //TODO: handle should be created by dpm_manager_create()
+       std::unique_ptr<DevicePolicyClient> handle(
+               []() -> DevicePolicyClient* {
+                       DevicePolicyClient* client = new DevicePolicyClient();
+
+                       if (client == nullptr)
+                               return nullptr;
+
+                       return client;
+               }());
+       TEST_EXPECT(true, handle != nullptr);
+
+       DevicePolicyClient &client = GetDevicePolicyClient(static_cast<void*>(handle.get()));
+
+       bool isCalled = false;
+       auto onEvent = [&isCalled](const char* name, const char* state, void* data) {
+               isCalled = true;
+               auto receivedData = static_cast<std::string*>(data);
+               std::cout << "Signal caught. name = " << name << ", state : " << state
+                                 << ", data : " << *receivedData << std::endl;
+       };
+
+       client.subscribeSignal(TEST_PIL_EVENT_NAME, onEvent,
+                                                  static_cast<void*>(&TEST_PIL_EVENT_DATA));
+
+       PolicyEventNotifier::create(TEST_PIL_EVENT_NAME);
+       PolicyEventNotifier::emit(TEST_PIL_EVENT_NAME, TEST_PIL_EVENT_STATE);
+
+       std::this_thread::sleep_for(std::chrono::seconds(1));
+       TEST_EXPECT(true, isCalled);
+}
diff --git a/src/policyd/tests/test-query.cpp b/src/policyd/tests/test-query.cpp
new file mode 100644 (file)
index 0000000..1cd4137
--- /dev/null
@@ -0,0 +1,140 @@
+/*
+ *  Copyright (c) 2018 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
+ */
+
+#include "server/db-schema.h"
+
+#include <klay/testbench.h>
+
+#include <klay/db/query-builder.h>
+
+using namespace query_builder;
+using namespace schema;
+
+namespace {
+
+auto admin = make_table("admin",
+                                               make_column("id", &Admin::id),
+                                               make_column("pkg", &Admin::pkg),
+                                               make_column("uid", &Admin::uid),
+                                               make_column("key", &Admin::key),
+                                               make_column("removable", &Admin::removable));
+
+auto managedPolicy = make_table("managed_policy",
+                                                                make_column("id", &ManagedPolicy::id),
+                                                                make_column("aid", &ManagedPolicy::aid),
+                                                                make_column("pid", &ManagedPolicy::pid),
+                                                                make_column("value", &ManagedPolicy::value));
+
+auto policyDefinition = make_table("policy_definition",
+                                                                  make_column("id", &PolicyDefinition::id),
+                                                                  make_column("scope", &PolicyDefinition::scope),
+                                                                  make_column("name", &PolicyDefinition::name),
+                                                                  make_column("ivalue", &PolicyDefinition::ivalue));
+
+auto dpm = make_database("dpm", admin, managedPolicy, policyDefinition);
+
+} // anonymous namespace
+
+TESTCASE(DEFINE)
+{
+       std::string name;
+       std::string query = policyDefinition.select(&PolicyDefinition::id,
+                                                                                               &PolicyDefinition::ivalue)
+                                                                               .where(expr(&PolicyDefinition::name) == name);
+
+       std::string expect = "SELECT id, ivalue FROM policy_definition WHERE name = ?";
+
+       TEST_EXPECT(expect, query);
+}
+
+TESTCASE(STRICTIZE)
+{
+       int id = 0;
+       std::string query = dpm.select(&ManagedPolicy::value)
+                                                  .join<PolicyDefinition>()
+                                                  .on(expr(&ManagedPolicy::pid) == expr(&PolicyDefinition::id))
+                                                  .join<Admin>()
+                                                  .on(expr(&ManagedPolicy::aid) == expr(&Admin::id))
+                                                  .where(expr(&ManagedPolicy::pid) == id);
+
+       std::string expect = "SELECT managed_policy.value FROM managed_policy " \
+                                                "INNER JOIN policy_definition ON managed_policy.pid = policy_definition.id " \
+                                                "INNER JOIN admin ON managed_policy.aid = admin.id " \
+                                                "WHERE managed_policy.pid = ?";
+
+       TEST_EXPECT(expect, query);
+}
+
+TESTCASE(UPDATE)
+{
+       std::string name;
+       int uid = 0;
+       std::string selectQuery = admin.select(&Admin::id).where(expr(&Admin::pkg) == name &&
+                                                                                                                        expr(&Admin::uid) == uid);
+
+       std::string selectExpect = "SELECT id FROM admin WHERE pkg = ? AND uid = ?";
+
+       TEST_EXPECT(selectExpect, selectQuery);
+
+       int id = 0, aid = 0;
+       std::string updateQuery = managedPolicy.update(&ManagedPolicy::value)
+                                                                                  .where(expr(&ManagedPolicy::pid) == id &&
+                                                                                                 expr(&ManagedPolicy::aid) == aid);
+
+       std::string updateExpect = "UPDATE managed_policy SET value = ? WHERE pid = ? AND aid = ?";
+
+       TEST_EXPECT(updateExpect, updateQuery);
+}
+
+TESTCASE(ENROLL)
+{
+       std::string name;
+       int uid = 0;
+       std::string selectQuery = admin.selectAll().where(expr(&Admin::pkg) == name &&
+                                                                                                         expr(&Admin::uid) == uid);
+
+       std::string selectExpect = "SELECT * FROM admin WHERE pkg = ? AND uid = ?";
+
+       TEST_EXPECT(selectExpect, selectQuery);
+
+       std::string insertQuery = admin.insert(&Admin::pkg, &Admin::uid,
+                                                                                  &Admin::key, &Admin::removable);
+
+       std::string insertExpect = "INSERT INTO admin (pkg, uid, key, removable) VALUES (?, ?, ?, ?)";
+
+       TEST_EXPECT(insertExpect, insertQuery);
+}
+
+TESTCASE(UNENROLL)
+{
+       std::string name;
+       int uid = 0;
+       std::string query = admin.remove().where(expr(&Admin::pkg) == name &&
+                                                                                        expr(&Admin::uid) == uid);
+
+       std::string expect = "DELETE FROM admin WHERE pkg = ? AND uid = ?";
+
+       TEST_EXPECT(expect, query);
+}
+
+TESTCASE(FETCH_DOMAIN)
+{
+       std::string query = admin.select(distinct(&Admin::uid));
+
+       std::string expect = "SELECT DISTINCT uid FROM admin";
+
+       TEST_EXPECT(expect, query);
+}
diff --git a/src/policyd/tests/test-server.cpp b/src/policyd/tests/test-server.cpp
new file mode 100644 (file)
index 0000000..a1b30bb
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ *  Copyright (c) 2019 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
+ */
+
+#include "server/server.h"
+
+#include <klay/testbench.h>
+
+TESTCASE(LOAD_PLUGINS)
+{
+       DevicePolicyManager manager;
+       auto result = manager.loadPolicyPlugins();
+       TEST_EXPECT(true, result.first > 0);
+       TEST_EXPECT(true, result.second == 0);
+}
diff --git a/src/policyd/tools/CMakeLists.txt b/src/policyd/tools/CMakeLists.txt
new file mode 100644 (file)
index 0000000..c66b95a
--- /dev/null
@@ -0,0 +1,17 @@
+# Copyright (c) 2019 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.
+#
+
+ADD_SUBDIRECTORY(cli)
+ADD_SUBDIRECTORY(syspopup)
diff --git a/src/policyd/tools/cli/CMakeLists.txt b/src/policyd/tools/cli/CMakeLists.txt
new file mode 100644 (file)
index 0000000..09df8ee
--- /dev/null
@@ -0,0 +1,36 @@
+# Copyright (c) 2019 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.
+#
+
+SET(DPM_ADMIN_CLI_TARGET       "dpm-admin-cli")
+SET(DPM_SYSPOPUP_TARGET                "dpm-syspopup")
+SET(DPM_PREFERENCE_TARGET      "dpm-storage-builder")
+
+SET(DPM_ADMIN_CLI_SOURCES dpm-admin-cli.cpp)
+
+PKG_CHECK_MODULES(DPM_ADMIN_CLI_TARGET_DEP REQUIRED vconf)
+
+ADD_EXECUTABLE(${DPM_ADMIN_CLI_TARGET} ${DPM_ADMIN_CLI_SOURCES})
+
+INCLUDE_DIRECTORIES(SYSTEM ${CMAKE_SOURCE_DIR}/src
+                           ${DPM_ADMIN_CLI_TARGET_DEP_INCLUDE_DIRS})
+
+TARGET_LINK_LIBRARIES(${DPM_ADMIN_CLI_TARGET} dpm-pil)
+
+SET_TARGET_PROPERTIES(${DPM_ADMIN_CLI_TARGET} PROPERTIES COMPILE_FLAGS "-fPIE")
+SET_TARGET_PROPERTIES(${DPM_ADMIN_CLI_TARGET} PROPERTIES LINK_FLAGS "-pie")
+
+INSTALL(FILES ${DPM_PREFERENCE_TARGET} DESTINATION bin)
+INSTALL(FILES ${DPM_SYSPOPUP_TARGET} DESTINATION bin)
+INSTALL(TARGETS ${DPM_ADMIN_CLI_TARGET} DESTINATION bin)
diff --git a/src/policyd/tools/cli/dpm-admin-cli.cpp b/src/policyd/tools/cli/dpm-admin-cli.cpp
new file mode 100644 (file)
index 0000000..d3c2c7a
--- /dev/null
@@ -0,0 +1,155 @@
+/*
+ *  Copyright (c) 2015 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
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <pwd.h>
+#include <getopt.h>
+
+#include <memory>
+#include <string>
+
+#include "pil/status.h"
+#include "pil/policy-client.h"
+
+static void usage()
+{
+       std::cout << "Usage: dpm-admin-cli [option] [app id] -u [user name]\n"
+                         << "Options:\n"
+                         << "  -d --deregister pkgid : Deregister device administrator\n"
+                         << "  -u --user username    : Specify user name that the device administrator is associted\n"
+                         << "  -h --help             : print usage\n"
+                         << "\n"
+                         << "Note:\n"
+                         << "  To register/deregister device administrator, "
+                         << "you should specify user name that the device admin client is associated.\n"
+                         << "  Ex.: dpm-admin-cli -r org.tizen.dpm -u owner\n"
+                         << std::endl;
+}
+
+static int registerAdministrator(const std::string& pkgname, uid_t uid)
+{
+       try {
+               DevicePolicyClient client;
+
+               Status<int> status { -1 };
+               status = client.methodCallForce<int>("DevicePolicyManager::enroll", pkgname, uid);
+               return status.get();
+       } catch (...) {
+               std::cerr << "Failed to enroll device" << std::endl;
+               return -1;
+       }
+}
+
+static int deregisterAdministrator(const std::string& pkgname, uid_t uid)
+{
+       try {
+               DevicePolicyClient client;
+
+               Status<int> status { -1 };
+               status = client.methodCallForce<int>("DevicePolicyManager::disenroll", pkgname, uid);
+               return status.get();
+       } catch (...) {
+               std::cerr << "Failed to disenroll device" << std::endl;
+               return -1;
+       }
+}
+
+static int getUID(const std::string& username)
+{
+       struct passwd pwd, *result;
+
+       int bufsize = sysconf(_SC_GETPW_R_SIZE_MAX);
+       if (bufsize == -1)
+               bufsize = 16384;
+
+       std::unique_ptr<char[]> buf(new char[bufsize]);
+       int ret = ::getpwnam_r(username.c_str(), &pwd, buf.get(), bufsize, &result);
+       if (ret != 0 || result == NULL) {
+               std::cout << "User " << username << " isn't exist" << std::endl;
+               return -1;
+       }
+
+       return (int)result->pw_uid;
+}
+
+enum Command {
+       NotSpecified,
+       RegisterAdministrator,
+       DeregisterAdministrator
+};
+
+int main(int argc, char *argv[])
+{
+       Command command = NotSpecified;
+
+       struct option options[] = {
+               {"register",   required_argument, 0, 'r'},
+               {"deregister", required_argument, 0, 'd'},
+               {"user",       required_argument, 0, 'u'},
+               {"help",       no_argument,       0, 'h'},
+               {0,            0,                 0,  0 }
+       };
+
+       char* username = NULL;
+       char* pkgname = NULL;
+
+       int index, opt;
+       while ((opt = getopt_long(argc, argv, "r:d:u:h", options, &index)) != -1) {
+               switch(opt) {
+               case 'r':
+                       command = RegisterAdministrator;
+                       pkgname = optarg;
+                       break;
+               case 'd':
+                       command = DeregisterAdministrator;
+                       pkgname = optarg;
+                       break;
+               case 'u':
+                       username = optarg;
+                       break;
+               case 'h':
+                       usage();
+                       return 0;
+               default:
+                       usage();
+                       exit(EXIT_FAILURE);
+               }
+       }
+
+       if (username == NULL) {
+               usage();
+               return EXIT_FAILURE;
+       }
+
+       int uid = getUID(username);
+       if (uid == -1) {
+               usage();
+               return EXIT_FAILURE;
+       }
+
+       switch (command) {
+       case RegisterAdministrator:
+               return registerAdministrator(pkgname, static_cast<uid_t>(uid));
+       case DeregisterAdministrator:
+               return deregisterAdministrator(pkgname, static_cast<uid_t>(uid));
+       default:
+               usage();
+       }
+
+       return EXIT_FAILURE;
+}
diff --git a/src/policyd/tools/cli/dpm-storage-builder b/src/policyd/tools/cli/dpm-storage-builder
new file mode 100755 (executable)
index 0000000..fdc871a
--- /dev/null
@@ -0,0 +1,78 @@
+#! /bin/bash
+
+PATH=/usr/bin:/bin/usr/sbin:/sbin
+
+DB_PATH="/opt/dbspace/.dpm.db"
+JOURNAL_PATH="/opt/dbspace/.dpm.db-journal"
+
+if [[ -f ${DB_PATH} && -f ${JOURNAL_PATH} ]]; then
+       exit 0
+fi
+
+rm -f ${DB_PATH} ${JOURNAL_PATH}
+
+sqlite3 ${DB_PATH} \
+"CREATE TABLE IF NOT EXISTS admin ( \
+    id        INTEGER PRIMARY KEY AUTOINCREMENT, \
+    pkg       TEXT NOT NULL, \
+    uid       INTEGER, \
+    key       TEXT, \
+    removable INTEGER \
+); \
+CREATE TABLE IF NOT EXISTS managed_policy ( \
+    id        INTEGER PRIMARY KEY AUTOINCREMENT, \
+    aid       INTEGER, \
+    pid       INTEGER, \
+    value     INTEGER  \
+); \
+CREATE TABLE IF NOT EXISTS policy_definition ( \
+    id        INTEGER PRIMARY KEY AUTOINCREMENT, \
+    scope     INTEGER, \
+    name      TEXT NOT NULL, \
+    ivalue    INTEGER \
+); \
+CREATE TRIGGER IF NOT EXISTS prepare_storage AFTER INSERT ON admin \
+FOR EACH ROW \
+BEGIN \
+INSERT INTO managed_policy(aid, pid, value) \
+SELECT NEW.ID, policy_definition.id, policy_definition.ivalue \
+FROM policy_definition; \
+END; \
+CREATE TRIGGER IF NOT EXISTS remove_storage AFTER DELETE ON admin \
+FOR EACH ROW \
+BEGIN \
+DELETE FROM managed_policy WHERE managed_policy.aid = OLD.ID; \
+END; \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (1, 'password-history', 0); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (1, 'password-minimum-length', 0); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (1, 'password-minimum-complexity', 0); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (1, 'password-inactivity-timeout', 32767); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (1, 'password-expired', 32767); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (1, 'password-maximum-failure-count', 32767); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (1, 'password-numeric-sequences-length', 32767); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (1, 'password-maximum-character-occurrences', 32767); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (1, 'password-quality', 0); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (1, 'password-recovery', 0); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (1, 'password-pattern', ''); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (1, 'browser', 1); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (1, 'clipboard', 1); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (0, 'bluetooth', 1); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (0, 'bluetooth-tethering', 1); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (0, 'bluetooth-desktop-connectivity', 1); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (0, 'bluetooth-pairing', 1); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (0, 'bluetooth-uuid-restriction', 0); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (0, 'bluetooth-device-restriction', 0); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (0, 'camera', 1); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (0, 'external-storage', 1); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (0, 'location', 1); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (0, 'messaging', 1); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (0, 'microphone', 1); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (0, 'popimap-email', 1); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (0, 'usb-debugging', 1); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (0, 'usb-tethering', 1); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (0, 'usb-client', 1); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (0, 'wifi', 1); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (0, 'wifi-hotspot', 1); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (0, 'wifi-profile-change', 1); \
+INSERT INTO policy_definition(scope, name, ivalue) VALUES (0, 'wifi-ssid-restriction', 0);"
+
diff --git a/src/policyd/tools/cli/dpm-syspopup b/src/policyd/tools/cli/dpm-syspopup
new file mode 100755 (executable)
index 0000000..d3ebe5b
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/bash
+PATH="/usr/bin:/bin:/usr/sbin:/sbin"
+
+dbus-send --system --type=method_call --print-reply --dest=org.tizen.DevicePolicyManager \
+                                /org/tizen/DevicePolicyManager/Syspopup \
+                                org.tizen.DevicePolicyManager.Syspopup.show \
+                                string:${1}
+
diff --git a/src/policyd/tools/syspopup/CMakeLists.txt b/src/policyd/tools/syspopup/CMakeLists.txt
new file mode 100644 (file)
index 0000000..f3e9f68
--- /dev/null
@@ -0,0 +1,74 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(org.tizen.dpm-syspopup C)
+
+FIND_PACKAGE(PkgConfig REQUIRED)
+PKG_CHECK_MODULES(dpm_syspopup_pkgs REQUIRED
+       klay
+       dlog
+       glib-2.0
+       bundle
+       elementary
+       capi-appfw-application
+       capi-system-system-settings
+       capi-ui-efl-util
+       notification
+       vconf
+       capi-system-info
+)
+
+INCLUDE_DIRECTORIES(${dpm_syspopup_pkgs_INCLUDE_DIRS} ${DPM_LIBS})
+LINK_DIRECTORIES(${dpm_syspopup_pkgs_LIBRARY_DIRS})
+
+SET(PKG_NAME "${PROJECT_NAME}")
+SET(PKG_SRC    src/main.cpp
+               src/application.cpp
+               src/interface.cpp)
+
+SET(PKG_POPUP_SRC
+               src/popup/bluetooth.cpp
+               src/popup/browser.cpp
+               src/popup/camera.cpp
+               src/popup/clipboard.cpp
+               src/popup/krate-create.cpp
+               src/popup/krate-remove.cpp
+               src/popup/location.cpp
+               src/popup/message-retrieving.cpp
+               src/popup/message-sending.cpp
+               src/popup/microphone.cpp
+               src/popup/nfc.cpp
+               src/popup/package-installation.cpp
+               src/popup/package-uninstallation.cpp
+               src/popup/password.cpp
+               src/popup/popimap-email.cpp
+               src/popup/screen-capture.cpp
+               src/popup/settings-changes.cpp
+               src/popup/wifi.cpp
+               src/popup/wifi-hotspot.cpp
+               src/popup/usb-client.cpp
+               src/popup/external-storage.cpp
+               )
+
+SET(PKG_UI_SRC
+               src/ui/widget.cpp
+               src/ui/popup.cpp
+               src/ui/window.cpp
+               src/ui/button.cpp
+               src/ui/layout.cpp
+               src/ui/image.cpp
+               src/ui/notification.cpp
+               src/ui/appcontrol.cpp)
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE")
+SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie")
+
+ADD_EXECUTABLE(${PKG_NAME} ${PKG_SRC} ${PKG_POPUP_SRC} ${PKG_UI_SRC})
+INSTALL(TARGETS ${PKG_NAME} DESTINATION ${APP_INSTALL_PREFIX}/${PKG_NAME}/bin)
+
+TARGET_LINK_LIBRARIES(${PKG_NAME} ${dpm_syspopup_pkgs_LIBRARIES})
+
+#Install app data
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${PKG_NAME}.xml DESTINATION ${APP_SHARE_PACKAGES_DIR})
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/${PKG_NAME}.png DESTINATION /usr/share/icons/default/small)
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/res/images/ DESTINATION ${APP_INSTALL_PREFIX}/${PKG_NAME}/res/images FILES_MATCHING PATTERN "*.png")
+
+# i18n
+ADD_SUBDIRECTORY(po)
diff --git a/src/policyd/tools/syspopup/org.tizen.dpm-syspopup.manifest b/src/policyd/tools/syspopup/org.tizen.dpm-syspopup.manifest
new file mode 100644 (file)
index 0000000..a76fdba
--- /dev/null
@@ -0,0 +1,5 @@
+<manifest>
+       <request>
+               <domain name="_" />
+       </request>
+</manifest>
diff --git a/src/policyd/tools/syspopup/org.tizen.dpm-syspopup.xml b/src/policyd/tools/syspopup/org.tizen.dpm-syspopup.xml
new file mode 100644 (file)
index 0000000..1c21884
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="3.0" package="org.tizen.dpm-syspopup" version="1.0.0">
+    <profile name="mobile"/>
+    <privileges>
+       <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
+       <privilege>http://tizen.org/privilege/notification</privilege>
+       <privilege>http://tizen.org/privilege/window.priority.set</privilege>
+    </privileges>
+    <ui-application appid="org.tizen.dpm-syspopup" exec="/usr/apps/org.tizen.dpm-syspopup/bin/org.tizen.dpm-syspopup" multiple="false" nodisplay="true" taskmanage="false" type="capp">
+        <label>dpm-syspopup</label>
+    </ui-application>
+</manifest>
diff --git a/src/policyd/tools/syspopup/po/CMakeLists.txt b/src/policyd/tools/syspopup/po/CMakeLists.txt
new file mode 100644 (file)
index 0000000..d5aaee0
--- /dev/null
@@ -0,0 +1,23 @@
+# for i18n
+
+SET(POFILES ar.po az.po bg.po ca.po cs.po da.po de.po el_GR.po en.po en_PH.po en_US.po es_ES.po es_US.po et.po eu.po fi.po fr.po fr_CA.po ga.po gl.po hi.po hr.po hu.po hy.po is.po it_IT.po ja_JP.po ka.po kk.po ko_KR.po lt.po lv.po mk.po nb.po nl.po pl.po pt_BR.po pt_PT.po ro.po ru_RU.po sk.po sl.po sr.po sv.po tr_TR.po uk.po uz.po zh_CN.po zh_HK.po zh_TW.po)
+SET(MSGFMT "/usr/bin/msgfmt")
+
+FOREACH(pofile ${POFILES})
+       SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile})
+       MESSAGE("PO: ${pofile}")
+       GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
+       GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
+       SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
+       ADD_CUSTOM_COMMAND(
+               OUTPUT ${moFile}
+               COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
+               DEPENDS ${absPofile}
+       )
+
+       INSTALL(FILES ${moFile} DESTINATION ${APP_INSTALL_PREFIX}/org.tizen.dpm-syspopup/res/locale/${lang}/LC_MESSAGES RENAME dpm-syspopup.mo)
+       SET(moFiles ${moFiles} ${moFile})
+ENDFOREACH(pofile)
+
+MESSAGE(".mo files: ${moFiles}")
+ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles})
diff --git a/src/policyd/tools/syspopup/po/ar.po b/src/policyd/tools/syspopup/po/ar.po
new file mode 100755 (executable)
index 0000000..46cd7b6
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "الحافظة"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "موافق"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "إلغاء"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "التقاط الشاشة"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "كلمة المرور"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "نقطة اتصال"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "تمنع سياسة الأمان استخدام مزامنة سطح المكتب."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "الكاميرا"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "تمنع سياسة الحماية استخدام %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "سياسة الأمان تقيد استخدام %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "تم تطبيق سياسة الحماية."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "سياسة الحماية سارية المفعول"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "تمنع سياسة الحماية تثبيت التطبيقات."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "تمنع سياسة الحماية تثبيت هذا التطبيق."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "تمنع سياسة الحماية إلغاء تثبيت التطبيقات."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "تمنع سياسة الحماية إلغاء تثبيت هذا التطبيق."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "يطلب نهج الأمان‬ منك تغيير كلمة المرور"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "تُقيد سياسة الحماية استخدام الميكروفون."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "تُقيد سياسة الحماية استخدام معلومات الموقع."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "تمنع سياسة الحماية استخدام البلوتوث."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "تمنع سياسة الحماية إرسال الرسائل."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "تُقيد سياسة الحماية استرداد الرسائل."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "تمنع سياسة الأمان استخدام تطبيقات التصفح."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "تُقيد سياسة الحماية استخدام بطاقة SD."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "تمنع سياسة الحماية فك تشفير الهاتف."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "تمنع سياسة الحماية استخدام شبكة Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "تمنع سياسة الحماية تغيير الضبط."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "سياسة الأمان تقيد استخدام البريد الإلكتروني POP/IMAP."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "تمنع سياسة الأمان استخدام البريد الإلكتروني POP/IMAP."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "يقوم نهج الأمان بتقييد استخدام اتصال الكمبيوتر."
+
diff --git a/src/policyd/tools/syspopup/po/az.po b/src/policyd/tools/syspopup/po/az.po
new file mode 100755 (executable)
index 0000000..6f95c8e
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Mübadilə buferi"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Ləğv et"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Ekranın şəkli"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Şifrə"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Giriş Nöqtəsi"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Təhlükəsizlik siyasəti iş masasının sinxronlaşdırılmasından istifadənin qarşısını alır."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Kamera"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Təhlükəsizlik siyasəti %s-dan istifadənin qarşısını alır."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Təhlükəsizlik siyasəti %s istifadəsini məhdudlaşdırır."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Təhlükəsizlik siyasəti tətbiq edildi."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Təhlükəs siyas qüvvədədir"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Təhlükəsizlik siyasəti proqramların quraşdırılmasının qarşısını alır."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Təhlükəsizlik siyasəti bu proqramın quraşdırılmasının qarşısını alır."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Təhlükəsizlik siyasəti proqramların pozulmasının qarşısını alır."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Təhlükəsizlik siyasəti bu proqramın pozulmasının qarşısını alır."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Təhlükəsizlik siyasəti parolu dəyişməyi tələb edir."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Təhlükəsizlik siyasəti mikrofondan istifadəsini məhdudlaşdırır."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Təhlükəsizlik siyasəti məkan məlumatının istifadəsini məhdudlaşdırır."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Təhlükəsizlik siyasəti Bluetooth-dan istifadənin qarşısını alır."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Təhlükəsizlik siyasəti mesaj göndərilməsinin qarşısını alır."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Təhlükəsizlik siyasəti mesajların əldə edilməsini məhdudlaşdırır."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Təhlükəsizlik siyasəti brauzer proqramlarından istifadənin qarşısını alır."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Təhlükəsizlik siyasəti SD kartdan istifadəni məhdudlaşdırır."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Təhlükəsizlik siyasəti telefonun şifrlənməsinin qarşısını alır."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Təhlükəsizlik siyasəti Wi-Fi-dan istifadənin qarşısını alır."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Təhlükəsizlik siyasəti parametrlərin dəyişdirilməsinin qarşısını alır."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Təhlükəsizlik siyasəti POP/IMAP e-poçtundan istifadəni məhdudlaşdırır."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Təhlükəsizlik siyasəti POP/IMAP e-mailindən istifadənin qarşısını alır."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Təhlükəsizlik siyasəti kompüter bağlantısından istifadəni məhdudlaşdırır."
+
diff --git a/src/policyd/tools/syspopup/po/bg.po b/src/policyd/tools/syspopup/po/bg.po
new file mode 100755 (executable)
index 0000000..b8ff99b
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Системен буфер"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Отказ"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Прихващане на екрана"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Парола"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Точка за достъп"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Политиката за защита пречи на използването на настолна синхронизация."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Камера"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Политиката за защита пречи на използването на %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Политиката за защита ограничава използването на %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Политиката за защита е приложена."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Полит. за защита е в сила"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Политиката за защита пречи на инсталирането на приложения."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Политиката за защита пречи на инсталирането на това приложение."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Политиката за защита пречи на деинсталирането на приложения."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Политиката за защита пречи на деинсталирането на това приложение."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Правилата на защита изискват да промените паролата си."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Политиката за защита ограничава използването на микрофон."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Политиката за защита ограничава използването на информация за местоположението."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Политиката за защита пречи на използването на Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Политиката за защита предотвратява изпращането на съобщения."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Политиката за защита ограничава извличането на съобщения."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Политиката за защита пречи на използването на приложения за браузър."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Политиката за защита ограничава използването на SD карта."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Политиката за защита пречи на дешифрирането на телефона."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Политиката за защита пречи на използването на Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Политиката за защита пречи на промяната на настройки."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Правилата за защита ограничават използването на POP/IMAP имейл."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Политиката за защита пречи на използването на POP/IMAP имейл."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Правилата за защита ограничават използването на връзка PC връзката."
+
diff --git a/src/policyd/tools/syspopup/po/ca.po b/src/policyd/tools/syspopup/po/ca.po
new file mode 100755 (executable)
index 0000000..b5aaeb9
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Porta-retalls"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "Acceptar"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Canc"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Captura de pantalla"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Contrasenya"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Connexió compartida"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "La política de seguretat evita l'ús de la sincronització d'escriptori"
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Càmera"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "La política de seguretat impedeix l'ús de %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "La política de seguretat restringeix l'ús de %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Política de seguretat aplicada."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Política seguretat vigent"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "La política de seguretat impedeix la instal·lació d'aplicacions."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "La política de seguretat impedeix la instal·lació d'aquesta aplicació."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "La política de seguretat impedeix la desinstal·lació d'aplicacions."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "La política de seguretat impedeix la desinstal·lació d'aquesta aplicació."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "La política de seguretat requereix que canviï la contrasenya"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "La política de seguretat restringeix l'ús del micròfon."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "La política de seguretat restringeix l'ús de la informació d'ubicació."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "La política de seguretat evita l'ús de Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "La política de seguretat impedeix l'enviament de missatges."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "La política de seguretat restringeix la recuperació de missatges."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "La política de seguretat impedeix l'ús d'aplicacions del navegador."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "La política de seguretat restringeix l'ús de la targeta SD."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "La política de seguretat impedeix el desxifratge del telèfon."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "La política de seguretat evita l'ús de Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "La política de seguretat evita els canvis d'ajustaments."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "La política de seguretat restringeix l'ús de correu electrònic POP/IMAP"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "La política de seguretat evita l'ús de correu electrònic POP/IMAP"
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "La política de seguretat restringeix l'ús de connexió del PC"
+
diff --git a/src/policyd/tools/syspopup/po/cs.po b/src/policyd/tools/syspopup/po/cs.po
new file mode 100755 (executable)
index 0000000..7f63efe
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Schránka"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Zrušit"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Kopie obrazovky"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Heslo"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Hotspot"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Zásady zabezpečení neumožňují použití synchronizace se stolním počítačem."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Fotoap"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Zásady zabezpečení neumožňují použití %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Zásady zabezpečení omezují použití %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Zásady zabezpečení byly použity."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Zás. zabezp. v platnosti"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Zásady zabezpečení zakazují instalaci aplikací."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Zásady zabezpečení zakazují instalaci této aplikace."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Zásady zabezpečení zakazují odinstalování aplikací."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Zásady zabezpečení zakazují odinstalování této aplikace."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Zásady zabezpečení požadují, abyste změnili heslo."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Zásady zabezpečení zakazují použití mikrofonu."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Zásady zabezpečení omezují použití informací o poloze."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Zásady zabezpečení zakazují použití Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Zásady zabezpečení zakazují odesílání zpráv."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Zásady zabezpečení zakazují načítání zpráv."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Zásady zabezpečení zakazují použití prohlížečů."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Zásady zabezpečení zakazují použití SD karty."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Zásady zabezpečení zakazují dešifrování telefonu."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Zásady zabezpečení zakazují použití Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Zásady zabezpečení zakazují měnit nastavení."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Zásady zabezpečení omezují použití e-mailu POP/IMAP."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Zásady zabezpečení neumožňují použití e-mailu POP/IMAP."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Zásady zabezpečení omezují použití připojení k počítači."
+
diff --git a/src/policyd/tools/syspopup/po/da.po b/src/policyd/tools/syspopup/po/da.po
new file mode 100755 (executable)
index 0000000..b687b5f
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Udklipsholder"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Annuller"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Skærmbillede"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Adgangskode"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Hotspot"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Sikkerhedspolitik forhindrer brug af skrivebordssynkronisering."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Kamera"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "En sikkerhedspolitik forhindrer brug af %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Sikkerhedspolitik begrænser brug af %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Sikkerhedspolitikken er blevet anvendt."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Sik.politikken anvendes"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Sikkerhedspolitik forhindrer installation af apps."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Sikkerhedspolitik forhindrer installation af denne app."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Sikkerhedspolitik forhindrer afinstallation af apps."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Sikkerhedspolitik forhindrer afinstallation af denne app."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Sikkerhedspolitikken kræver, at du ændrer din adgangskode."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Sikkerhedspolitik begrænser brugen af mikrofon."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Sikkerhedspolitik begrænser brugen af placeringsoplysninger."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Sikkerhedspolitik forhindrer brug af Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Sikkerhedspolitik forhindrer afsendelse af beskeder."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Sikkerhedspolitik begrænser hentning af beskeder."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Sikkerhedspolitik forhindrer brug af browserapps."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Sikkerhedspolitik begrænser brugen af SD-kort."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Sikkerhedspolitik forhindrer dekryptering af telefonen."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Sikkerhedspolitik forhindrer brug af Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Sikkerhedspolitik forhindrer ændring af indstillinger."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Sikkerhedspolitik begrænser brug af POP/IMAP e-mail."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Sikkerhedspolitik forhindrer brug af POP-/IMAP-e-mail."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Sikkerhedspolitik begrænser brug af pc-forbindelsen."
+
diff --git a/src/policyd/tools/syspopup/po/de.po b/src/policyd/tools/syspopup/po/de.po
new file mode 100755 (executable)
index 0000000..afed306
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Zwischenablage"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Abbrechen"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Screenshot"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Passwort"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Hotspot"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Sicherheitsrichtlinie verhindert die Verwendung der Desktop-Synchronisierung."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Kamera"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Sicherheitsrichtlinie verhindert die Verwendung von %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Eine Sicherheitsrichtlinie schränkt die Verwendung von %s ein."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Sicherheitsrichtlinien angewendet."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Sicherheitsrichtlinie aktiv"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Eine Sicherheitsrichtlinie verhindert die Installation von Apps."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Eine Sicherheitsrichtlinie verhindert die Installation dieser App."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Eine Sicherheitsrichtlinie verhindert die Deinstallation von Apps."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Eine Sicherheitsrichtlinie verhindert die Deinstallation dieser App."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Die Sicherheitsrichtlinie erfordert ein Ändern Ihres Passworts."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Eine Sicherheitsrichtlinie schränkt die Verwendung des Mikrofons ein."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Eine Sicherheitsrichtlinie schränkt die Verwendung von Standortinformationen ein."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Die Sicherheitsrichtlinie verhindert die Verwendung von Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Eine Sicherheitsrichtlinie verhindert das Senden von Nachrichten."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Eine Sicherheitsrichtlinie schränkt den Empfang von Nachrichten ein."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Eine Sicherheitsrichtlinie verhindert die Verwendung von Browser-Apps."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Eine Sicherheitsrichtlinie schränkt die Verwendung von SD-Karten ein."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Eine Sicherheitsrichtlinie verhindert die Entschlüsselung des Telefons."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Die Sicherheitsrichtlinie verhindert die Verwendung von WLAN."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Die Sicherheitsrichtlinie verhindert das Ändern der Einstellungen."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Sicherheitsrichtlinie schränkt die Verwendung von POP-/IMAP-E-Mail ein."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Sicherheitsrichtlinie verhindert die Verwendung von POP/IMAP-E-Mail."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Eine Sicherheitsrichtlinie schränkt die Verwendung der PC-Verbindung ein."
+
diff --git a/src/policyd/tools/syspopup/po/el_GR.po b/src/policyd/tools/syspopup/po/el_GR.po
new file mode 100755 (executable)
index 0000000..c5475e6
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Πρόχειρο"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Ακύρωση"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Καταγραφή οθόνης"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Κωδικός πρόσβασης"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Hotspot"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Η πολιτική ασφαλείας δεν επιτρέπει τη χρήση συγχρονισμού επιφάνειας εργασίας."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Κάμερα"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Η πολιτική ασφαλείας δεν επιτρέπει τη χρήση της εφαρμογής %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Η πολιτική ασφαλείας περιορίζει τη χρήση %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Η πολιτική ασφάλειας εφαρμόστηκε."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Η πολιτική ασφάλ. ισχύει"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Η πολιτική ασφάλειας δεν επιτρέπει την εγκατάσταση εφαρμογών."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Η πολιτική ασφάλειας δεν επιτρέπει την εγκατάσταση αυτής της εφαρμογής."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Η πολιτική ασφάλειας δεν επιτρέπει την κατάργηση εγκατάστασης εφαρμογών."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Η πολιτική ασφάλειας δεν επιτρέπει την κατάργηση εγκατάστασης αυτής της εφαρμογής."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Απαιτείται να αλλάξετε τον κωδικό πρόσβασης από την πολιτική ασφάλειας."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Η πολιτική ασφαλείας δεν επιτρέπει τη χρήση του μικροφώνου."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Η πολιτική ασφάλειας δεν επιτρέπει τη χρήση πληροφοριών τοποθεσίας."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Η πολιτική ασφαλείας δεν επιτρέπει τη χρήση Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Η πολιτική ασφάλειας δεν επιτρέπει την αποστολή μηνυμάτων."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Η πολιτική ασφάλειας δεν επιτρέπει την ανάκτηση μηνυμάτων."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Η πολιτική ασφάλειας δεν επιτρέπει τη χρήση προγραμμάτων περιήγησης."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Η πολιτική ασφαλείας δεν επιτρέπει τη χρήση της κάρτας SD."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Η πολιτική ασφάλειας αποτρέπει την αποκρυπτογράφηση του τηλεφώνου."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Η πολιτική ασφαλείας δεν επιτρέπει τη χρήση του Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Η πολιτική ασφάλειας δεν επιτρέπει την αλλαγή των ρυθμίσεων."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Η πολιτική ασφαλείας περιορίζει τη χρήση email POP/IMAP."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Η πολιτική ασφαλείας δεν επιτρέπει τη χρήση email POP/IMAP."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Η πολιτική ασφαλείας περιορίζει τη χρήση της σύνδεσης υπολογιστή."
+
diff --git a/src/policyd/tools/syspopup/po/en.po b/src/policyd/tools/syspopup/po/en.po
new file mode 100755 (executable)
index 0000000..cd00224
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Clipboard"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Screen capture"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Password"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Hotspot"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Security policy prevents use of desktop sync."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Camera"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Security policy prevents use of %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Security policy restricts use of %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Security policy applied."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Security policy in effect"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Security policy prevents installation of apps."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Security policy prevents installation of this app."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Security policy prevents uninstalling apps."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Security policy prevents uninstalling of this app."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "The security policy requires you to change your password."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Security policy restricts use of mic."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Security policy restricts use of location info."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Security policy prevents use of Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Security policy prevents sending messages."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Security policy restricts retrieving messages."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Security policy prevents use of browser apps."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Security policy restricts use of SD card."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Security policy prevents decryption of phone."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Security policy prevents use of Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Security policy prevents changing settings."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Security policy restricts use of POP/IMAP email."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Security policy prevents use of POP/IMAP email."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Security policy restricts use of the PC connection."
+
diff --git a/src/policyd/tools/syspopup/po/en_PH.po b/src/policyd/tools/syspopup/po/en_PH.po
new file mode 100755 (executable)
index 0000000..ec5a1d8
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Clipboard"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Screen capture"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Password"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Hotspot"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Security policy prevents use of desktop sync."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Camera"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Security policy prevents use of %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Security policy restricts use of %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Security policy applied."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Security policy in effect"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Security policy prevents installation of apps."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Security policy prevents installation of this app."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Security policy prevents uninstalling apps."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Security policy prevents uninstalling of this app."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "The security policy requires you to change your password."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Security policy restricts use of mic."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Security policy restricts use of location info."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Security policy prevents use of Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Security policy prevents sending messages."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Security policy restricts retrieving messages."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Security policy prevents use of browser apps."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Security policy restricts use of SD card."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Security policy prevents decryption of phone."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Security policy prevents use of Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Security policy prevents changing settings."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Security policy restricts the use of POP/IMAP Email."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Security policy prevents use of POP/IMAP Email."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Security policy restricts use of the PC connection."
+
diff --git a/src/policyd/tools/syspopup/po/en_US.po b/src/policyd/tools/syspopup/po/en_US.po
new file mode 100755 (executable)
index 0000000..f83e45d
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Clipboard"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Screen capture"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Password"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Hotspot"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Security policy prevents use of computer sync."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Camera"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Security policy prevents use of %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Security policy restricts use of %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Security policy applied."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Security policy in effect"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Security policy prevents installation of apps."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Security policy prevents installation of this app."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Security policy prevents uninstalling apps."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Security policy prevents uninstalling of this app."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "The security policy requires you to change your password."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Security policy restricts use of mic."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Security policy restricts use of location info."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Security policy prevents use of Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Security policy prevents sending messages."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Security policy restricts retrieving messages."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Security policy prevents use of browser apps."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Security policy restricts use of SD card."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Security policy prevents decryption of phone."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Security policy prevents use of Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Security policy prevents changing settings."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Security policy restricts use of POP/IMAP email."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Security policy prevents use of POP/IMAP email."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Security policy restricts use of the computer connection."
+
diff --git a/src/policyd/tools/syspopup/po/es_ES.po b/src/policyd/tools/syspopup/po/es_ES.po
new file mode 100755 (executable)
index 0000000..2b32f27
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Portapapeles"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "Aceptar"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Captura de pantalla"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Contraseña"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Conexión compartida"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "La política de seguridad impide el uso de la sincronización de escritorio."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Cámara"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "La política de seguridad impide el uso de %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "La política de seguridad restringe el uso de %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Se ha aplicado la política de seguridad."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Política seguridad en vigor"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "La política de seguridad impide la instalación de aplicaciones."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "La política de seguridad impide la instalación de esta aplicación."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "La política de seguridad impide la desinstalación de aplicaciones."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "La política de seguridad impide la desinstalación de esta aplicación."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "La política de seguridad requiere que cambies la contraseña."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "La política de seguridad restringe el uso del micrófono."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "La política de seguridad restringe el uso de información de ubicación."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "La política de seguridad impide el uso de Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "La política de seguridad impide el envío de mensajes."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "La política de seguridad restringe la recuperación de mensajes."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "La política de seguridad impide el uso de aplicaciones de navegador."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "La política de seguridad restringe el uso de tarjeta SD."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "La política de seguridad impide el descifrado del teléfono."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "La política de seguridad impide el uso de Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "La política de seguridad impide que se cambien los ajustes."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "La política de seguridad restringe el uso de correo electrónico POP/IMAP."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "La política de seguridad impide el uso del correo electrónico POP/IMAP."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "La política de seguridad restringe el uso de conexión del PC."
+
diff --git a/src/policyd/tools/syspopup/po/es_US.po b/src/policyd/tools/syspopup/po/es_US.po
new file mode 100755 (executable)
index 0000000..7a5cd4b
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Portapapeles"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "Aceptar"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Captura de pantalla"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Contraseña"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Zona portátil"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "La política de seguridad impide el uso de sincronización de escritorio."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Cámara"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "La política de seguridad impide el uso de %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "La política de seguridad restringe el uso de %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Se aplicó la política de seguridad."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Política seguridad en vigor"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "La política de seguridad impide la instalación de aplicaciones."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "La política de seguridad impide la instalación de esta aplicación."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "La política de seguridad impide la desinstalación de aplicaciones."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "La política de seguridad impide la desinstalación de esta aplicación."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "La política de seguridad requiere que cambie su contraseña."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "La política de seguridad restringe el uso del micrófono."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "La política de seguridad restringe el uso de información de ubicación."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "La política de seguridad impide el uso de Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "La política de seguridad impide el envío de mensajes."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "La política de seguridad restringe la recuperación de mensajes."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "La política de seguridad impide el uso de aplicaciones de navegación."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "La política de seguridad restringe el uso de la tarjeta de memoria."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "La política de seguridad impide desencriptar el teléfono."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "La política de seguridad impide el uso de Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "La política de seguridad impide que se cambie la configuración."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "La política de seguridad restringe el uso de correo POP/IMAP."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "La política de seguridad impide el uso de correo POP/IMAP."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "La política de seguridad restringe el uso de la conexión a la PC."
+
diff --git a/src/policyd/tools/syspopup/po/et.po b/src/policyd/tools/syspopup/po/et.po
new file mode 100755 (executable)
index 0000000..6678dcf
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Lõikelaud"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Tühista"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Ekraani jäädvustamine"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Parool"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Kuumkoht"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Turvalisuse poliis takistab toolaua sunkroonimise kasutamist."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Kaam."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Turvalisuse poliis takistab rakenduse %s kasutamist."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Turvalisuse poliis piirab üksuse %s kasutamist."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Turvalisuse poliis on rakendatud."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Turvalisuse poliis kehtib"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Turvalisuse poliis ei lase rakendusi installida."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Turvalisuse poliis ei lase seda rakendust installida."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Turvalisuse poliis ei lase rakendusi desinstallida."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Turvalisuse poliis ei lase seda rakendust desinstallida."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Turvalisuse poliis nouab, et muudaksite oma parooli."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Turvalisuse poliis piirab mikrofoni kasutamist."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Turvalisuse poliis piirab asukohateabe kasutamist."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Turvalisuse poliis takistab Bluetooth-ühenduse kasutamist."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Turvalisuse poliis ei lase sõnumeid saata."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Turvalisuse poliis piirab sõnumite vastuvõtmist."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Turvalisuse poliis ei lase brauserirakendusi kasutada."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Turvalisuse poliis piirab SD-kaardi kasutamist."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Turvalisuse poliis ei luba telefoni dekrüptida."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Turvalisuse poliis takistab Wi-Fi kasutamist."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Turvalisuse poliis takistab seadete muutmist."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Turvalisuse poliis piirab POP/IMAP e-posti kasutuse."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Turvalisuse poliis takistab POP/IMAP e-posti kasutamist."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Turvalisuse poliis piirab arvutiuhenduse kasutuse."
+
diff --git a/src/policyd/tools/syspopup/po/eu.po b/src/policyd/tools/syspopup/po/eu.po
new file mode 100755 (executable)
index 0000000..eb1c01e
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Arbela"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "Ados"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Utzi"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Pantaila kaptura"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Pasahitza"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Hotspot"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Segurtasun politikak idazmahai sinkronizazioaren erabilera galarazten du"
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Kamera"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Segurtasun politikak %s erabilera galarazten du."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Segurtasun politikak %s erabiltzea mugatzen du."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Aplikatu da segurtasun politika."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Segurt. politika indarrean"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Segurtasun politikak aplikazio hauek instalatzea galarazten du."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Segurtasun politikak aplikazio hau instalatzea galarazten du."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Segurtasun politikak aplikazioak desinstalatzea galarazten du."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Segurtasun politikak aplikazio hau desinstalatzea galarazten du."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Segurtasun politikak pasahitza alda dezazula behar du"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Segurtasun politikak mikrofonoa erabiltzeko aukera mugatzen du."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Segurtasun politikak kokapen informazioa erabiltzeko aukera mugatzen du."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Segurtasun jarraibideak Bluetootha erabiltzea galarazten du."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Segurtasun politikak mezuak bidaltzea galarazten du."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Segurtasun politikak mezuak eskuratzeko aukera mugatzen du."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Segurtasun politikak nabigatzeko aplikazioak erabiltzea galarazten du."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Segurtasun politikak SD txartela erabiltzeko aukera mugatzen du."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Segurtasun politikak telefonoa desenkriptatzea saihesten du."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Segurtasun jarraibideak Wi-Fi erabiltzea galarazten du."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Segurtasun jarraibideak ezarpenak aldatzea galarazten du."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Segurtasun politikak POP/IMAP postaren erabilera mugatzen du"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Segurtasun politikak POP/IMAP mezularitza elektronikoaren erabilera galarazten du"
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Segurtasun politikak ordenagailu konexioaren erabilera mugatzen du"
+
diff --git a/src/policyd/tools/syspopup/po/fi.po b/src/policyd/tools/syspopup/po/fi.po
new file mode 100755 (executable)
index 0000000..463dc20
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Leikepöytä"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Peruuta"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Ruudunkaappaus"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Salasana"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Tukiasema"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Suojauskäytäntö estää työpöydän synkronoinnin käytön."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Kamera"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Suojauskäytäntö estää sovelluksen %s käytön."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Suojauskäytäntö estää toiminnon %s käytön."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Suojauskäytäntö otettu käyttöön."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Suojauskäytäntö voimassa"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Suojauskäytäntö estää sovellusten asennuksen."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Suojauskäytäntö estää tämän sovelluksen asennuksen."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Suojauskäytäntö estää sovellusten asennuksen poistamisen."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Suojauskäytäntö estää tämän sovelluksen asennuksen poistamisen."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Suojauskäytäntö vaatii, että vaihdat salasanan."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Suojauskäytäntö estää mikrofonin."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Suojauskäytäntö estää sijaintitietojen käytön."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Suojauskäytäntö estää Bluetoothin käytön."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Suojauskäytäntö estää viestien lähettämisen."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Suojauskäytäntö estää viestien haun."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Suojauskäytäntö estää selainsovellusten käytön."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Suojauskäytäntö estää SD-kortin käytön."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Suojauskäytäntö estää puhelimen salauksen purkamisen."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Suojauskäytäntö estää Wi-Fi-yhteyden käytön."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Suojauskäytäntö estää asetusten muuttamisen."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Suojauskäytäntö estää POP/IMAP-sähköpostin käytön."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Suojauskäytäntö estää POP/IMAP-sähköpostin käytön."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Suojauskäytäntö estää tietokoneyhteyden käytön."
+
diff --git a/src/policyd/tools/syspopup/po/fr.po b/src/policyd/tools/syspopup/po/fr.po
new file mode 100755 (executable)
index 0000000..793da71
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Presse-papier"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Annuler"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Capture d'écran"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Mot de passe"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Point d'accès"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "La politique de sécurité empêche l'utilisation de la synchronisation avec le bureau."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Photo"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "La politique de sécurité empêche l'utilisation de l'application %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "La politique de sécurité limite l'utilisation de %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "La politique de sécurité a été appliquée."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Politique sécu. en vigueur"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "La politique de sécurité empêche l'installation des applications."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "La politique de sécurité empêche l'installation de cette application."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "La politique de sécurité empêche la désinstallation des applications."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "La politique de sécurité empêche la désinstallation de cette application."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "En raison de la politique de sécurité, vous devez modifier votre mot de passe."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "La politique de sécurité limite l'utilisation du micro."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "La politique de sécurité limite l'utilisation des informations de position."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "La politique de sécurité empêche l'utilisation du Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "La politique de sécurité empêche l'envoi de messages."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "La politique de sécurité empêche la récupération des messages."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "La politique de sécurité empêche l'utilisation des applications du navigateur."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "La politique de sécurité limite l'utilisation de la carte SD."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "La politique de sécurité empêche le décryptage du téléphone."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "La politique de sécurité empêche l'utilisation du Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "La politique de sécurité empêche la modification des paramètres."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "La politique de sécurité limite l'utilisation de la messagerie POP/IMAP."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "La politique de sécurité empêche l'utilisation de la messagerie POP/IMAP."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "La politique de sécurité limite l'utilisation de la connexion PC."
+
diff --git a/src/policyd/tools/syspopup/po/fr_CA.po b/src/policyd/tools/syspopup/po/fr_CA.po
new file mode 100755 (executable)
index 0000000..9b63602
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Presse-papier"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Annuler"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Capture d'écran"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Mot de passe"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Point d'accès"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "La politique de sécurité empêche l'utilisation de la synchronisation avec le bureau."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Photo"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "La politique de sécurité empêche l'utilisation de l'application %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "La politique de sécurité limite l'utilisation de %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "La politique de sécurité a été appliquée."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Politique sécu. en vigueur"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "La politique de sécurité empêche l'installation des applications."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "La politique de sécurité empêche l'installation de cette application."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "La politique de sécurité empêche la désinstallation des applications."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "La politique de sécurité empêche la désinstallation de cette application."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "En raison de la politique de sécurité, vous devez modifier votre mot de passe."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "La politique de sécurité limite l'utilisation du micro."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "La politique de sécurité limite l'utilisation des informations de position."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "La politique de sécurité empêche l'utilisation du Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "La politique de sécurité empêche l'envoi de messages."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "La politique de sécurité empêche la récupération des messages."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "La politique de sécurité empêche l'utilisation des applications du navigateur."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "La politique de sécurité limite l'utilisation de la carte SD."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "La politique de sécurité empêche le décryptage du téléphone."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "La politique de sécurité empêche l'utilisation du Wifi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "La politique de sécurité empêche la modification des paramètres."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "La politique de sécurité limite l'utilisation de la messagerie POP/IMAP."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "La politique de sécurité empêche l'utilisation de la messagerie POP/IMAP."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "La politique de sécurité limite l'utilisation de la connexion PC."
+
diff --git a/src/policyd/tools/syspopup/po/ga.po b/src/policyd/tools/syspopup/po/ga.po
new file mode 100755 (executable)
index 0000000..03db85e
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Gearrthaisce"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Cuir ar ceal"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Gabháil scáileáin"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Pasfhocal"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Ball te"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Cuireann an beartas slándála bac ar úsáid shioncronú deisce"
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Ceam."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Cuireann an beartas slándála cosc ar úsáid %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Cuireann an polasaí slándála srian ar úsáid %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Beartas slándála curtha i bhfeidhm."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Bear. slándála i bhfeidhm"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Cuireann an beartas slándála cosc ar shuiteáil feidhmchlár."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Cuireann an beartas slándála cosc ar shuiteáil an fheidhmchláir seo."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Cuireann an beartas slándála cosc ar dhíshuiteáil feidhmchlár."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Cuireann an beartas slándála cosc ar dhíshuiteáil an fheidhmchláir seo."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Éilíonn an beartas slándála ort do phasfhocal a athrú"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Cuireann an beartas slándála srian ar úsáid an mhicreafóin."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Cuireann an beartas slándála srian ar úsáid faisnéis suímh."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Cuireann an beartas slándála cosc ar Bluetooth a úsáid."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Cuireann an beartas slándála cosc ar sheoladh teachtaireachtaí."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Cuireann an beartas slándála srian ar aisghabháil teachtaireachtaí."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Cuireann an beartas slándála bac ar úsáid feidhmchláir bhrabhsálaí."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Cuireann an polasaí slándála srian ar úsáid an chárta SD."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Cuireann an beartas slándála cosc ar dhíchriptiú an fhóin."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Cuireann an beartas slándála cosc ar Wi-Fi a úsáid."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Cuireann an beartas slándála cosc ar shocruithe a athrú."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Cuireann an beartas slándála srian ar úsáid r-phost POP/IMAP"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Cuireann an beartas slándála bac ar úsáid r-phost POP/IMAP"
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Cuireann an beartas slándála srian ar nasc PC a úsáid"
+
diff --git a/src/policyd/tools/syspopup/po/gl.po b/src/policyd/tools/syspopup/po/gl.po
new file mode 100755 (executable)
index 0000000..a055351
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Portapapeis"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "Aceptar"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Captura de pantalla"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Contrasinal"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Zona interactiva"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "A política de seguridade impide o uso da sincronización do escritorio"
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Cámara"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "A política de seguridade impide o uso de %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "A política de seguridade limita o uso de %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Política de seguridade aplicada."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Política seguridade"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "A política de seguridade impide a instalación de aplicacións."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "A política de seguridade impide a instalación desta aplicación."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "A política de seguridade impide a desinstalación de aplicacións."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "A política de seguridade impide a desinstalación desta aplicación."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "A política de seguridade esíxete que cambies o contrasinal"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "A política de seguridade limita o uso do micrófono."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "A política de seguridade limita o uso da información de localización."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "A política de seguridade impide o uso do Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "A política de seguridade impide o envío de mensaxes."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "A política de seguridade limita a recuperación de mensaxes."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "A política de seguridade impide o uso de aplicacións de navegador."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "A política de seguridade limita o uso da tarxeta SD."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "A política de seguridade evita o descifrado do teléfono."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "A política de seguridade impide o uso da Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "A política de seguridade impide o cambio dos axustes."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "A política de seguridade limita o uso do correo electrónico POP/IMAP"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "A política de seguridade impide o uso do correo electrónico POP/IMAP"
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "A política de seguridade limita o uso da conexión co ordenador"
+
diff --git a/src/policyd/tools/syspopup/po/hi.po b/src/policyd/tools/syspopup/po/hi.po
new file mode 100755 (executable)
index 0000000..3a15d0c
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "क्लिपबोर्ड"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "ओके"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "रद्द करें"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "स्‍क्रीन कैप्‍चर"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "पासवर्ड"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "हॉटस्पॉट"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "सुरक्षा नीति डेस्कटॉप सिंक के उपयोग को रोकती है"
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "कैमरा"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "सुरक्षा नीति %s के उपयोग को रोकती है।"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "सुरक्षा नीति %s के उपयोग को प्रतिबंधित करती है।"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "सुरक्षा नीति लागू की गई।"
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "सुरक्षा नीति प्रभाव में है"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "सुरक्षा नीति एप्स की स्थापना को रोकती है।"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "सुरक्षा नीति इस एप की स्थापना को रोकती है।"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "सुरक्षा नीति एप्स की स्थापना रद्द करने से रोकती है।"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "सुरक्षा नीति इस एप की स्थापना रद्द करने से रोकती है।"
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "सुरक्षा नीति के तहत आपका पासवर्ड बदलना आवश्यक हैं।"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "सुरक्षा नीति माइक के उपयोग को प्रतिबंधित करती है।"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "सुरक्षा नीति स्थान जानकारी के उपयोग को प्रतिबंधित करती है।"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "सुरक्षा नीति ब्लूटूथ का उपयोग करने से रोकती है।"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "सुरक्षा नीति सन्देश भेजने से रोकती है।"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "सुरक्षा नीति सन्देश पुनर्प्राप्त करने को प्रतिबंधित करती है।"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "सुरक्षा नीति ब्राउजर एप्स के उपयोग को रोकती है।"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "सुरक्षा नीति SD कार्ड के उपयोग को प्रतिबंधित करती है।"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "सुरक्षा नीति फोन के डिक्रिप्शन को रोकती है।"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "सुरक्षा नीति Wi-Fi का उपयोग करने से रोकती है।"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "सुरक्षा नीति सेटिंग्स बदलने से रोकती है।"
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "सुरक्षा नीति POP/IMAP ईमेल के उपयोग को प्रतिबंधित करती है।"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "सुरक्षा नीति POP/IMAP ईमेल के उपयोग को रोकती है"
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "सुरक्षा नीति PC कनेक्शन का उपयोग प्रतिबंधित करती है।"
+
diff --git a/src/policyd/tools/syspopup/po/hr.po b/src/policyd/tools/syspopup/po/hr.po
new file mode 100755 (executable)
index 0000000..cb3b15f
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Međuspremnik"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "U redu"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Prekid"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Snimka zaslona"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Lozinka"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Pristupna točka"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Sigurnosne odredbe sprečavaju upotrebu sinkronizacije radne površine."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Kamera"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Sigurnosne odredbe sprečavaju upotrebu aplikacije %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Sigurnosna pravila ograničavaju upotrebu značajke %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Sigurnosna pravila primijenjena."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Sigurn. pravila na snazi"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Sigurnosna pravila sprečavaju instalaciju aplikacija."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Sigurnosna pravila sprečavaju instalaciju ove aplikacije."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Sigurnosna pravila sprečavaju deinstaliranje aplikacija."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Sigurnosna pravila sprečavaju deinstaliranje ove aplikacije."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Zbog sigurnosnih pravila morate promijeniti lozinku."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Sigurnosna pravila ograničavaju upotrebu mikrofona."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Sigurnosna pravila ograničavaju uporabu podataka o lokaciji."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Sigurnosna pravila sprečavaju upotrebu Bluetootha."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Sigurnosna pravila sprečavaju slanje poruka."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Sigurnosna pravila ograničavaju preuzimanje poruka."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Sigurnosna pravila sprečavaju upotrebu aplikacija preglednika."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Sigurnosna pravila ograničavaju upotrebu SD kartice."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Sigurnosna pravila sprečavaju dešifriranje telefona."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Sigurnosna pravila sprečavaju upotrebu Wi-Fi-a."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Sigurnosna pravila sprečavaju promjenu postavki."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Sigurnosne odredbe ograničavaju korištenje usluge POP/IMAP email."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Sigurnosne odredbe sprečavaju upotrebu POP/IMAP emaila."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Sigurnosna pravila ograničavaju upotrebu računalne veze."
+
diff --git a/src/policyd/tools/syspopup/po/hu.po b/src/policyd/tools/syspopup/po/hu.po
new file mode 100755 (executable)
index 0000000..d15b251
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Vágólap"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Mégse"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Képernyőfelvétel"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Jelszó"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Hotspot"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "A biztonsági irányelv tiltja a számítógéppel történő szinkronizálás használatát."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Kamera"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "A biztonsági házirend tiltja a(z) %s használatát."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "A biztonsági házirend korlátozza a(z) %s használatát."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "A rendszer beállította a biztonsági házirendet."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "A bizt. h.rend érvényben"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "A biztonsági házirend tiltja az alkalmazások telepítését."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "A biztonsági házirend tiltja ennek az alkalmazásnak a telepítését."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "A biztonsági házirend tiltja az alkalmazások eltávolítását."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "A biztonsági házirend tiltja ennek az alkalmazásnak az eltávolítását."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "A biztonsági irányelv a jelszó módosítását igényli."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "A biztonsági házirend korlátozza a mikrofon használatát."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "A biztonsági házirend korlátozza a helyadatok használatát."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "A biztonsági irányelv tiltja a Bluetooth használatát."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "A biztonsági házirend tiltja az üzenetek küldését."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "A biztonsági házirend korlátozza az üzenetek letöltését."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "A biztonsági házirend tiltja a böngészőalkalmazások használatát."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "A biztonsági házirend korlátozza az SD-kártya használatát."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "A biztonsági házirend tiltja a telefon dekódolását."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "A biztonsági irányelv tiltja a Wi-Fi használatát."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "A biztonsági irányelv tiltja a beállítások módosítását."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "A biztonsági irányelv korlátozza a POP/IMAP e-mail használatát."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "A biztonsági irányelv tiltja a POP/IMAP e-mail használatát."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "A biztonsági irányelv korlátozza a számítógépes kapcsolat használatát."
+
diff --git a/src/policyd/tools/syspopup/po/hy.po b/src/policyd/tools/syspopup/po/hy.po
new file mode 100755 (executable)
index 0000000..bc67696
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Գզրոց"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "Ընդունել"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Դադարեցնել"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Էկրանի սևեռում"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Գաղտնաբառ"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Թեժ կետ"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Անվտանգության քաղաքականությունը կանխում է աշխատասեղանի համաժամացման օգտագործումը:"
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Խցիկ"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Անվտանգության քաղաքականությունը թույլ չի տալիս %s-ի օգտագործում:"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Անվտանգության քաղաքականությունը սահմանափակում է %s-ի օգտագործումը:"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Անվտանգության քաղաքականությունը կիրառվեց:"
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Անվտ. քղքկնթյնը գործում է"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Անվտանգության քաղաքականությունը թույլ չի տալիս ծրագրերի տեղադրում:"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Անվտանգության քաղաքականությունը թույլ չի տալիս այս ծրագրի տեղադրումը:"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Անվտանգության քաղաքականությունը թույլ չի տալիս ապատեղադրել ծրագրերը:"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Անվտանգության քաղաքականությունը թույլ չի տալիս ապատեղադրել այս ծրագիրը:"
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Անվտանգության քաղաքականությունը պահանջում է, որ փոխեք Ձեր գաղտնաբառը:"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Անվտանգության քաղաքականությունը սահմանափակում է միկրոֆոնի օգտագործումը:"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Անվտանգության քաղաքականությունը սահմանափակում է տեղի մասին տեղեկատվության օգտագործումը:"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Անվտանգության քաղաքականությունը թույլ չի տալիս Bluetooth-ի օգտագործում:"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Անվտանգության քաղաքականությունը թույլ չի տալիս հաղորդագրություններ ուղարկել:"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Անվտանգության քաղաքականությունը սահմանափակում է հաղորդագրությունների առբերումը:"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Անվտանգության քաղաքականությունը թույլ չի տալիս զննարկիչ ծրագրերի օգտագործում:"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Անվտանգության քաղաքականությունը սահմանափակում է SD քարտի օգտագործումը:"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Անվտանգության քաղաքականությունը թույլ չի տալիս հեռախոսի վերծանում:"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Անվտանգության քաղաքականությունը թույլ չի տալիս Wi-Fi-ի օգտագործում:"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Անվտանգության քաղաքականությունը թույլ չի տալիս փոխել դրվածքները:"
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Անվտանգության քաղաքականությունը սահմանափակում է POP/IMAP էլփոստի օգտագործումը:"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Անվտանգության քաղաքականությունը կանխում է POP/IMAP էլփոստի օգտագործումը:"
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Անվտանգության քաղաքականությունը սահմանափակում է ԱՀ կապի օգտագործումը:"
+
diff --git a/src/policyd/tools/syspopup/po/is.po b/src/policyd/tools/syspopup/po/is.po
new file mode 100755 (executable)
index 0000000..7dadf45
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Klippiborð"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "Í lagi"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Hætta við"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Myndupptaka"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Aðgangsorð"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Aðgangsstaður"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Öryggisstefna kemur í veg fyrir notkun skjáborðssamstillingar."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Taka"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Öryggisstefna kemur í veg fyrir notkun á %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Öryggisstefna takmarkar notkun á %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Öryggisstefna notuð."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Öryggisstefna er í gildi"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Öryggisstefna kemur í veg fyrir uppsetningu forrita."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Öryggisstefna kemur í veg fyrir uppsetningu forritsins."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Öryggisstefna kemur í veg fyrir að forrit séu fjarlægð."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Öryggisstefna kemur í veg fyrir að forritið sé fjarlægt."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Öryggisstefnan krefst þess að þú breytir lykilorðinu þínu."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Öryggisstefna takmarkar notkun á hljóðnema."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Öryggisstefna takmarkar notkun staðsetningarupplýsinga."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Öryggisstefnan kemur í veg fyrir notkun Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Öryggisstefna kemur í veg fyrir skilaboðasendingar."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Öryggisstefna takmarkar endurheimt skilaboða."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Öryggisstefna kemur í veg fyrir notkun vafraforrita."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Öryggisstefna takmarkar notkun SD-korts."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Öryggisstefna kemur í veg fyrir afkóðun símans."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Öryggisstefnan kemur í veg fyrir notkun Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Öryggisstefnan kemur í veg fyrir breytingar á stillingum."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Öryggisreglur takmarka notkun POP/IMAP tölvupósts."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Öryggisstefna kemur í veg fyrir notkun POP-/IMAP-tölvupósts."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Öryggisstefna takmarkar notkun tölvutengingarinnar."
+
diff --git a/src/policyd/tools/syspopup/po/it_IT.po b/src/policyd/tools/syspopup/po/it_IT.po
new file mode 100755 (executable)
index 0000000..cbc4af5
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Appunti"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Annulla"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Schermate acquisite"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Password"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Router"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "I criteri di protezione non consentono la sincronizzazione desktop."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Camera"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "I criteri di protezione non consentono l'uso di %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "I criteri di protezione limitano l'uso di %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Criteri di protezione applicati."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Criteri protezione attivi"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "I criteri di protezione impediscono l'installazione delle applicazioni."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "I criteri di protezione impediscono l'installazione di questa applicazione."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "I criteri di protezione impediscono la disinstallazione delle applicazioni."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "I criteri di protezione impediscono la disinstallazione di questa applicazione."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "I criteri di protezione richiedono di modificare la password."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "I criteri di protezione limitano l'uso del microfono."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "I criteri di protezione limitano l'uso delle informazioni sulla posizione."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "I criteri di protezione impediscono l'uso del Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "I criteri di protezione impediscono l'invio di messaggi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "I criteri di protezione limitano il recupero dei messaggi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "I criteri di protezione impediscono l'uso delle applicazioni browser."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "I criteri di protezione limitano l'uso della scheda SD."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "I criteri di protezione impediscono la decrittografia del dispositivo."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "I criteri di protezione impediscono l'uso del Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "I criteri di protezione impediscono la modifica delle impostazioni."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "I criteri di sicurezza limitano l'uso delle e-mail POP/IMAP."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "I criteri di protezione non consentono l'utilizzo di e-mail POP/IMAP."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "I criteri di protezione limitano l'utilizzo della connessione del PC."
+
diff --git a/src/policyd/tools/syspopup/po/ja_JP.po b/src/policyd/tools/syspopup/po/ja_JP.po
new file mode 100755 (executable)
index 0000000..8d2e919
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "クリップボード"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "キャンセル"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "画面キャプチャ"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "パスワード"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "ホットスポット"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "デスクトップ同期の使用は、セキュリティポリシーによって制限されています。"
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "カメラ"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "%sの使用は、セキュリティポリシーによって制限されています。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "%sの使用は、セキュリティポリシーによって制限されています。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "セキュリティポリシーを適用しました。"
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "セキュリティポリシーを適用中"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "アプリのインストールは、セキュリティポリシーによって制限されています。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "このアプリのインストールは、セキュリティポリシーによって制限されています。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "アプリのアンインストールは、セキュリティポリシーによって制限されています。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "このアプリのアンインストールは、セキュリティポリシーによって制限されています。"
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "セキュリティポリシーにより、パスワードを変更する必要があります。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "マイクの使用は、セキュリティポリシーによって制限されています。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "位置情報の使用は、セキュリティポリシーによって制限されています。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Bluetoothの使用は、セキュリティポリシーによって制限されています。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "メッセージの送信は、セキュリティポリシーによって制限されています。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "メッセージの受信は、セキュリティポリシーによって制限されています。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "ブラウザアプリの使用は、セキュリティポリシーによって制限されています。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "外部SDカードの使用は、セキュリティポリシーによって制限されています。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "端末の復号は、セキュリティポリシーによって制限されています。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Wi-Fiの使用は、セキュリティポリシーによって制限されています。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "設定の変更は、セキュリティポリシーによって制限されています。"
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Eメール(POP/IMAP)の使用は、セキュリティポリシーによって制限されています。"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Eメール(POP/IMAP)の使用は、セキュリティポリシーによって制限されています。"
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "セキュリティポリシーにより、PC接続の利用を制限します。"
+
diff --git a/src/policyd/tools/syspopup/po/ka.po b/src/policyd/tools/syspopup/po/ka.po
new file mode 100755 (executable)
index 0000000..a0fd03a
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "ბუფერული მეხს."
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "კი"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "გაუქმება"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "ეკრანის სურათი"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "პაროლი"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "ცხელი წერტილი"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "უსაფრთხოების პოლიტიკა კრძალავს სამუშაო დაფის სინქრონიზაციის გამოყენებას."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "კამერა"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "უსაფრთხოების პოლიტიკა კრძალავს %s-ის გამოყენებას."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "უსაფრთხოების პოლიტიკა ზღუდავს %s-ის გამოყენებას."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "გამოიყენება უსაფრთხოების პოლიტიკა."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "უსაფრთხოება ძალაშია"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "უსაფრთხოების პოლიტიკა კრძალავს აპლიკაციების დაინსტალირებას."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "უსაფრთხოების პოლიტიკა კრძალავს ამ აპლიკაციის დაინსტალირებას."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "უსაფრთხოების პოლიტიკა კრძალავს აპლიკაციების ინსტალაციის გაუქმებას."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "უსაფრთხოების პოლიტიკა კრძალავს ამ აპლიკაციის ინსტალაციის გაუქმებას."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "უსაფრთხოების პოლიტიკით მოგეთხოვებათ შეცვალოთ პაროლი."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "უსაფრთხოების პოლიტიკა ზღუდავს, მიკროფონის გამოყენებას."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "უსაფრთხოების პოლიტიკა ზღუდავს ლოკაციის ინფორმაციის გამოყენებას."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "უსაფრთხოების პოლიტიკა კრძალავს Bluetooth-ის გამოყენებას."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "უსაფრთხოების პოლიტიკა კრძალავს შეტყობინებების გაგზავნას."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "უსაფრთხოების პოლიტიკა ზღუდავს შეტყობინებების მიღებას."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "უსაფრთხოების პოლიტიკა კრძალავს ბრაუზერი აპლიკაციების გამოყენებას."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "უსაფრთხოების პოლიტიკა ზღუდავს SD ბარათის გამოყენებას."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "უსაფრთხოების პოლიტიკა კრძალავს ტელეფონის გაშიფვრას."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "უსაფრთხოების პოლიტიკა კრძალავს Wi-Fi-ის გამოყენებას."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "უსაფრთხოების პოლიტიკა კრძალავს პარამეტრების შეცვლას."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "უსაფრთხოების პოლიტიკა ზღუდავს POP/IMAP ელ.ფოსტის გამოყენებას."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "უსაფრთხოების პოლიტიკა კრძალავს POP/IMAP ელფოსტის გამოყენებას."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "უსაფრთხოების პოლიტიკა ზღუდავს კომპიუტერთან კავშირის გამოყენებას."
+
diff --git a/src/policyd/tools/syspopup/po/kk.po b/src/policyd/tools/syspopup/po/kk.po
new file mode 100755 (executable)
index 0000000..d603ec2
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Буфер"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Бас тарту"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Экранды түсіру"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Кілтсөз"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Жедел нүкте"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Қауіпсіздік саясаты жұмыс үстелін синхрондауға жол бермейді."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Камера"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Қауіпсіздік саясаты %s қолданбасын пайдалануға жол бермеді."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Қауіпсіздің саясаты %s мүмкіндігін пайдалануды шектейді."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Қауіпсіздік саясаты қолданылды."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Қауіпсіз. саясаты күшінде"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Қауіпсіздік саясаты қолданбаларды орнатуға жол бермейді."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Қауіпсіздік саясаты осы қолданбаны орнатуға жол бермейді."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Қауіпсіздік саясаты қолданбаларды жоюға жол бермейді."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Қауіпсіздік саясаты осы қолданбаны жоюға жол бермейді."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Қауіпсіздік саясаты құпиясөздің өзгеруін қажет етеді."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Қауіпсіздік саясаты микрофонды пайдалануды шектейді."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Қауіпсіздік саясаты орын ақпаратын пайдалануды шектейді."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Қауіпсіздік саясаты Bluetooth пайдалануды шектейді."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Қауіпсіздік саясаты хабарларды жіберуге жол бермейді."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Қауіпсіздік саясаты хабарларды қалпына келтіруді шектейді."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Қауіпсіздік саясаты браузер қолданбаларын пайдалануға жол бермейді."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Қауіпсіздік саясаты SD картаны пайдалануды шектейді."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Қауіпсіздік саясаты телефонды шифрсыздандыруға жол бермейді."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Қауіпсіздік саясаты Wi-Fi пайдалануға жол бермейді."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Қауіпсіздік саясаты параметрлерді өзгертуді болдырмайды."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Қауіпсіздік саясаты POP/IMAP электрондық поштасының пайдаланылуын шектейді."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Қауіпсіздік саясаты POP/IMAP электрондық поштасын пайдалануға жол бермейді."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Қауіпсіздік саясаты компьютерге қосылымды пайдалануды шектейді."
+
diff --git a/src/policyd/tools/syspopup/po/ko_KR.po b/src/policyd/tools/syspopup/po/ko_KR.po
new file mode 100755 (executable)
index 0000000..ccf96d1
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "클립보드"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "확인"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "취소"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "화면 캡처"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "비밀번호"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "핫스팟"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "보안정책에 따라 PC를 동기화할 수 없습니다."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "카메라"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "보안정책에 따라 %s 앱을 사용할 수 없습니다."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "보안정책에 따라 %s 기능을 사용할 수 없습니다."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "보안정책을 적용했습니다."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "보안정책 적용 중"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "보안정책에 따라 앱을 설치할 수 없습니다."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "보안정책에 따라 이 앱을 설치할 수 없습니다."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "보안정책에 따라 앱을 삭제할 수 없습니다."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "보안정책에 따라 이 앱을 삭제할 수 없습니다."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "보안정책에 따라 비밀번호를 변경하세요."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "보안정책에 따라 마이크를 사용할 수 없습니다."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "보안정책에 따라 위치정보를 사용할 수 없습니다."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "보안정책에 따라 [블루투스]를 사용할 수 없습니다."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "보안정책에 따라 메시지를 보낼 수 없습니다."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "보안정책에 따라 메시지를 가져올 수 없습니다."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "보안정책에 따라 브라우저 앱을 사용할 수 없습니다."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "보안정책에 따라 SD 카드를 사용할 수 없습니다."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "보안정책에 따라 휴대전화의 암호화를 해제할 수 없습니다."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "보안정책에 따라 Wi-Fi를 사용할 수 없습니다."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "보안정책에 따라 설정을 변경할 수 없습니다."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "보안정책에 따라 [POP/IMAP 이메일]을 사용할 수 없습니다."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "보안정책에 따라 [POP/IMAP 이메일]을 사용할 수 없습니다."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "보안정책에 따라 PC에 연결할 수 없습니다."
+
diff --git a/src/policyd/tools/syspopup/po/lt.po b/src/policyd/tools/syspopup/po/lt.po
new file mode 100755 (executable)
index 0000000..a43df11
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Iškarpinė"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "Gerai"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Atšaukti"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Ekrano nuotrauka"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Slaptažodis"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Saitvietė"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Saugos politika neleidžia naudoti darbalaukio sinchronizavimo."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Fot."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Saugos politika neleidžia naudoti %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Saugos politika draudžia naudoti „%s“."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Saugos politika pritaikyta."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Saugos politika galioja"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Saugos politika neleidžia diegti programų."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Saugos politika neleidžia diegti šios programos."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Saugos politika neleidžia išdiegti programų."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Saugos politika neleidžia išdiegti šios programos."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Pagal naują saugumo politiką reikalaujama, kad pakeistumėte slaptažodį dabar."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Saugos politika riboja mikrofono naudojimą."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Saugos politika riboja vietos informacijos naudojimą."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Saugos politika neleidžia naudoti „Bluetooth“."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Saugos politika neleidžia siųsti žinučių."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Saugos politika riboja žinučių gavimą."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Saugos politika neleidžia naudoti naršyklės programos."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Saugos politika riboja SD kortelės naudojimą."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Saugos politika neleidžia iššifruoti telefono."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Saugos politika neleidžia naudoti „Wi-Fi“."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Saugos politika neleidžia keisti nustatymų."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Saugos strategija riboja naudojimąsi POP/IMAP el. paštu."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Saugos politika neleidžia naudoti POP/IMAP el. pašto."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Saugos strategija riboja ryšio su kompiuteriu naudojimą."
+
diff --git a/src/policyd/tools/syspopup/po/lv.po b/src/policyd/tools/syspopup/po/lv.po
new file mode 100755 (executable)
index 0000000..01e4c43
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Starpliktuve"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "Labi"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Atcelt"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Ekrāna tvērums"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Parole"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Tīklājs"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Drošības politika liedz datora sinhronizācijas lietošanu."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Kamera"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Drošības politika neļauj lietot %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Drošības politika ierobežo %s lietošanu."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Tiek lietota drošības politika."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Drošības politika spēkā"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Drošības politika neļauj instalēt programmas."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Drošības politika neļauj instalēt šo programmu."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Drošības politika neļauj atinstalēt programmas."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Drošības politika neļauj atinstalēt šo programmu."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Drošības politika pieprasa nomainīt paroli."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Drošības politika neļauj izmantot mikrofonu."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Drošības politika neļauj izmantot atrašanās vietas informāciju."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Drošības politika neļauj lietot Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Drošības politika neļauj sūtīt ziņas."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Drošības politika neļauj izgūt ziņas."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Drošības politika neļauj izmantot pārlūkprogrammas."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Drošības politika neļauj izmantot SD karti."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Drošības politika neļauj atšifrēt tālruni."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Drošības politika neļauj lietot Wi-Fi tīklu."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Drošības politika neļauj mainīt iestatījumus."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Drošības politika ierobežo POP/IMAP e-pasta lietošanu."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Drošības politika liedz POP/IMAP e-pasta lietošanu."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Drošības politika neļauj lietot savienojumu ar datoru."
+
diff --git a/src/policyd/tools/syspopup/po/mk.po b/src/policyd/tools/syspopup/po/mk.po
new file mode 100755 (executable)
index 0000000..60f6a8a
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Посредна меморија"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Откажи"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Сними од екран"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Лозинка"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Хотспот"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Политиката за безбедност спречува користење синхронизирање со компјутер."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Камера"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Политиката за безбедност спречува користење %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Политиката за безбедност го ограничува користењето %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Применета е полисата за безбедност."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Важ. Полиса за безбедност"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Полисата за безбедност спречува инсталирање на апликации."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Полисата за безбедност спречува инсталирање на оваа апликација."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Полисата за безбедност спречува одинсталирање апликации."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Полисата за безбедност спречува одинсталирање на оваа апликација."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Политиката на безбедност бара да ја смените лозинката."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Полисата за безбедност го ограничува користењето на микрофонот."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Полисата за безбедност ограничува користење на информации за локација."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Полисата за безбедност го спречува користењето Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Полисата за безбедност спречува испраќање пораки."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Полисата за безбедност ограничува враќање пораки."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Полисата за безбедност спречува користење на апликации за прегледник."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Полисата за безбедност го ограничува користењето на SD-картичката."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Политиката за безбедност го спречува дешифрирањето на телефонот."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Полисата за безбедност спречува користење Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Полисата за безбедност спречува менување поставувања."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Политиката на безбедност го ограничува користењето email POP/IMAP."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Политиката на безбедност спречува користење е-пошта POP/IMAP."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Политиката на безбедност го ограничува користењето врска со компјутер."
+
diff --git a/src/policyd/tools/syspopup/po/nb.po b/src/policyd/tools/syspopup/po/nb.po
new file mode 100755 (executable)
index 0000000..d583d47
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Utklippstavle"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Avbryt"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Ta et skjermbilde"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Passord"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Trådløssone"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Sikkerhetspolicyen hindrer bruk av skrivebordssynkronisering."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Kamera"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Sikkerhetspolicyen hindrer bruk av %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Sikkerhetspolicy begrenser bruk av %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Sikkerhetspolicy er tatt i bruk."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Sikkerhetspolicy i bruk"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Sikkerhetspolicy hindrer installasjon av apper."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Sikkerhetspolicy hindrer installasjon av denne appen."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Sikkerhetspolicy hindrer avinstallering av apper."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Sikkerhetspolicy hindrer avinstallering av denne appen."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Sikkerhetspolicyen krever at du endrer passordet."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Sikkerhetspolicy begrenser bruk av mikrofon."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Sikkerhetspolicy begrenser bruk av posisjonsinformasjon."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Sikkerhetspolicy hindrer bruk av Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Sikkerhetspolicy hindrer sending av meldinger."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Sikkerhetspolicy begrenser henting av meldinger."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Sikkerhetspolicy hindrer bruk av nettleserapper."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Sikkerhetspolicy begrenser bruk av SD-kort."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Sikkerhetspolicy hindrer dekryptering av telefonen."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Sikkerhetspolicy hindrer bruk av Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Sikkerhetspolicy hindrer endring av innstillinger."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Sikkerhetspolicy begrenser bruk av POP/IMAP-e-post."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Sikkerhetspolicyen hindrer bruk av e-post via POP/IMAP."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Sikkerhetspolicy begrenser bruk av datamaskin-tilkoblingen."
+
diff --git a/src/policyd/tools/syspopup/po/nl.po b/src/policyd/tools/syspopup/po/nl.po
new file mode 100755 (executable)
index 0000000..904b510
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Klembord"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Annul."
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Schermafbeelding"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Wachtwoord"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Hotspot"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Beveiligingsbeleid verhindert gebruik van desktop synchroniseren."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Camera"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Beveiligingsbeleid verhindert gebruik van %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Gebruik van %s beperkt door beveiligingsbeleid."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Beveiligingsbeleid toegepast."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Geldende beveilig.beleid"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Beveiligingsbeleid verhindert de installatie van deze apps."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Beveiligingsbeleid verhindert de installatie van deze app."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Beveiligingsbeleid verhindert het verwijderen van deze apps."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Beveiligingsbeleid verhindert het verwijderen van deze app."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Het beveiligingsbeleid vereist dat u uw wachtwoord wijzigt."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Beveiligingsbeleid beperkt gebruik van microfoon."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Beveiligingsbeleid beperkt het gebruik van locatiegegevens."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Gebruik van Bluetooth wordt voorkomen door beveiligingsbeleid."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Beveiligingsbeleid verhindert het verzenden van berichten."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Beveiligingsbeleid beperkt het ophalen van berichten."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Beveiligingsbeleid verhindert gebruik van browser-apps."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Beveiligingsbeleid beperkt gebruik van SD-kaart."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Beveiligingsbeleid verhindert decodering van telefoon."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Gebruik van Wi-Fi wordt voorkomen door beveiligingsbeleid."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Wijzigen van instellingen wordt voorkomen door beveiligingsbeleid."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Gebruik van POP/IMAP-e-mail beperkt door beveiligingsbeleid."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Beveiligingsbeleid verhindert gebruik van POP/IMAP-e-mail."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Gebruik van pc-verbinding wordt beperkt door beveiligingsbeleid."
+
diff --git a/src/policyd/tools/syspopup/po/pl.po b/src/policyd/tools/syspopup/po/pl.po
new file mode 100755 (executable)
index 0000000..794caa8
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Schowek"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Anuluj"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Przechwytywanie ekranu"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Hasło"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Router"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Zasady zabezpieczeń uniemożliwiają korzystanie z synchronizacji z komputerem."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Aparat"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Zasady zabezpieczeń uniemożliwiają korzystanie z aplikacji %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Zasady zabezpieczeń ograniczają użycie funkcji %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Zastosowano zasady zabezpieczeń."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Obowiązują zasady zabezp."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Zasady zabezpieczeń zapobiegają instalacji aplikacji."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Zasady zabezpieczeń zapobiegają instalacji tej aplikacji."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Zasady zabezpieczeń zapobiegają odinstalowaniu aplikacji."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Zasady zabezpieczeń zapobiegają odinstalowaniu tej aplikacji."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Zasady zabezpieczeń wymagają zmiany hasła."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Zasady zabezpieczeń ograniczają użycie mikrofonu."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Zasady zabezpieczeń ograniczają użycie informacji o lokalizacji."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Zasady zabezpieczeń zapobiegają korzystaniu z połączenia Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Zasady zabezpieczeń zapobiegają wysyłaniu wiadomości."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Zasady zabezpieczeń ograniczają odbieranie wiadomości."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Zasady zabezpieczeń zapobiegają korzystaniu z aplikacji przeglądarki."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Zasady zabezpieczeń ograniczają użycie karty SD."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Zasady zabezpieczeń zapobiegają deszyfrowaniu telefonu."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Zasady zabezpieczeń zapobiegają korzystaniu z sieci Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Zasady zabezpieczeń zapobiegają zmianie ustawień."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Zasady zabezpieczeń ograniczają użycie poczty POP/IMAP."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Zasady zabezpieczeń uniemożliwiają korzystanie z poczty POP/IMAP."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Zasady zabezpieczeń ograniczają użycie połączenia z komputerem."
+
diff --git a/src/policyd/tools/syspopup/po/pt_BR.po b/src/policyd/tools/syspopup/po/pt_BR.po
new file mode 100755 (executable)
index 0000000..7ef2504
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Área de transferência"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Captura de tela"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Senha"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Roteador"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "A política de segurança evita o uso da sincronização da área de trabalho."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Câmera"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "A política de segurança evita o uso de %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "A política de segurança restringe o uso de %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Política de segurança aplicada."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Polít. de segur. em vigor"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "A política de segurança impede a instalação de aplicativos."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "A política de segurança impede a instalação deste aplicativo."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "A política de segurança impede a desinstalação de aplicativos."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "A política de segurança impede a desinstalação deste aplicativo."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "A política de segurança exige a alteração da senha."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "A política de segurança restringe o uso de microfone."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "A política de segurança restringe o uso de informações de localização."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "A política de segurança impede o uso do Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "A política de segurança impede o envio de mensagens."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "A política de segurança restringe a recuperação de mensagens."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "A política de segurança impede o uso de aplicativos de navegador."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "A política de segurança restringe o uso de cartão de memória."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "A política de segurança impede a decodificação do telefone."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "A política de segurança impede o uso do Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "A política de segurança impede a alteração das configurações."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "A política de segurança restringe a utilização de e-mail POP/IMAP."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "A política de segurança evita o uso de e-mail POP/IMAP."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "A política de segurança restringe o uso da conexão do PC."
+
diff --git a/src/policyd/tools/syspopup/po/pt_PT.po b/src/policyd/tools/syspopup/po/pt_PT.po
new file mode 100755 (executable)
index 0000000..3959f1c
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Área transferência"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Captura de ecrã"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Palavra-passe"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Hotspot"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "A política de segurança impede a utilização de sincronização do ambiente de trabalho."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Câmara"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "A política de segurança impede a utilização de %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "A política de segurança restringe a utilização de %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Política de segurança aplicada."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Política segurança em vigor"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "A política de segurança impede a instalação de aplicações."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "A política de segurança impede a instalação desta aplicação."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "A política de segurança impede a desinstalação de aplicações."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "A política de segurança impede a desinstalação desta aplicação."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "A política de segurança exige que altere a sua palavra-passe."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "A política de segurança restringe a utilização do microfone."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "A política de segurança restringe a utilização de informações de localização."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "A política de segurança impede a utilização de Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "A política de segurança impede o envio de mensagens."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "A política de segurança restringe a obtenção de mensagens."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "A política de segurança impede a utilização de aplicações de browser."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "A política de segurança restringe a utilização do cartão SD."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "A política de segurança impede a desencriptação do telefone."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "A política de segurança impede a utilização de Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "A política de segurança impede a alteração das definições."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "A política de segurança restringe a utilização de e-mail POP/IMAP."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "A política de segurança impede a utilização de e-mail POP/IMAP."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "A política de segurança restringe a utilização da ligação do PC."
+
diff --git a/src/policyd/tools/syspopup/po/ro.po b/src/policyd/tools/syspopup/po/ro.po
new file mode 100755 (executable)
index 0000000..f3cc6e3
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Clipboard"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Anulare"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Captură ecran"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Parolă"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Hotspot"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Politica de securitate nu permite utilizarea sincronizării desktopului."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Cameră"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Politica de securitate nu permite utilizarea aplicației %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Politica de securitate restricționează utilizarea %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Politică de securitate aplicată."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Pol. securitate în vigoare"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Politica de securitate nu permite instalarea aplicațiilor."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Politica de securitate nu permite instalarea acestei aplicații."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Politica de securitate nu permite dezinstalarea aplicațiilor."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Politica de securitate nu permite dezinstalarea acestei aplicații."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Politica de securitate impune schimbarea parolei."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Politica de securitate restricționează utilizarea microfonului."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Politica de securitate restricționează utilizarea informațiilor privind locația."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Politica de securitate nu permite utilizarea Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Politica de securitate nu permite trimiterea mesajelor."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Politica de securitate restricționează preluarea mesajelor."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Politica de securitate nu permite utilizarea aplicațiilor de browser."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Politica de securitate restricționează utilizarea cardului SD."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Politica de securitate nu permite decriptarea telefonului."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Politica de securitate nu permite utilizarea Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Politica de securitate nu permite schimbarea setărilor."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Politica de securitate restricționează utilizarea e-mailului POP/IMAP."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Politica de securitate nu permite utilizarea e-mailului POP/IMAP."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Politica de securitate restricționează utilizarea conexiunii la PC."
+
diff --git a/src/policyd/tools/syspopup/po/ru_RU.po b/src/policyd/tools/syspopup/po/ru_RU.po
new file mode 100755 (executable)
index 0000000..992bd02
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Буфер обмена"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "ОК"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Отмена"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Снимок экрана"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Пароль"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Точка доступа"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Политика безопасности ограничивает синхронизацию с компьютером."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Камера"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Политика безопасности ограничивает использование %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Использование функции %s ограничивается политикой безопасности."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Политика безопасности применена."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Политика безоп. действует"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Политика безопасности запрещает установку приложений."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Политика безопасности запрещает установку этого приложения."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Политика безопасности запрещает удаление приложений."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Политика безопасности запрещает удаление этого приложения."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Политика безопасности требует смены пароля."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Политика безопасности запрещает использование микрофона."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Политика безопасности запрещает использование информации о местоположении."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Политика безопасности запрещает использование Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Политика безопасности запрещает отправку сообщений."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Политика безопасности запрещает получение сообщений."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Политика безопасности запрещает использование приложений на основе веб-браузера."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Политика безопасности запрещает использование SD-карты."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Политикой безопасности исключается расшифровка данных телефона."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Политика безопасности запрещает использование Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Политика безопасности запрещает изменять параметры."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Политика безопасности ограничивает использование эл. почты по протоколам POP/IMAP."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Политика безопасности ограничивает использование POP/IMAP."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Политика безопасности ограничивает подключение к компьютеру."
+
diff --git a/src/policyd/tools/syspopup/po/sk.po b/src/policyd/tools/syspopup/po/sk.po
new file mode 100755 (executable)
index 0000000..6c4b9d8
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Schránka"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Zrušiť"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Snímka obrazovky"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Heslo"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Prístupový bod"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Politika zabezpečenie zabraňuje používaniu synchronizácie s počítačom."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Fotoap."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Politika zabezpečenia zabraňuje používaniu aplikácie %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Politika zabezpečenia obmedzuje používanie funkcie %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Politika zabezpečenia sa aplikovala."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Politika zabezp. aplikov."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Politika zabezpečenia zabraňuje inštalácii aplikácií."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Politika zabezpečenia zabraňuje inštalácii tejto aplikácie."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Politika zabezpečenia zabraňuje odinštalovaniu aplikácií."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Politika zabezpečenia zabraňuje odinštalovaniu tejto aplikácie."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Politika zabezpečenie vyžaduje, aby ste zmenili vaše heslo."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Politika zabezpečenia obmedzuje používanie mikrofónu."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Politika zabezpečenia obmedzuje používanie informácií o polohe."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Politika zabezpečenia zabraňuje používaniu pripojenia Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Politika zabezpečenia zabraňuje odosielaniu správ."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Politika zabezpečenia obmedzuje načítavanie správ."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Politika zabezpečenia zabraňuje používaniu aplikácií prehliadačov."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Politika zabezpečenia obmedzuje používanie karty SD."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Politika zabezpečenia zabraňuje dešifrovaniu telefónu."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Politika zabezpečenia zabraňuje používaniu pripojenia Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Politika zabezpečenia zabraňuje zmene nastavení."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Politika zabezpečenia obmedzuje použitie e-mailov POP/IMAP."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Politika zabezpečenia zabraňuje používaniu e-mailov POP/IMAP."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Politika zabezpečenia obmedzuje použitie počítačového pripojenia."
+
diff --git a/src/policyd/tools/syspopup/po/sl.po b/src/policyd/tools/syspopup/po/sl.po
new file mode 100755 (executable)
index 0000000..2ddecee
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Odložišče"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "V redu"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Prekliči"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Zajem zaslona"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Geslo"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Dostopna točka"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Varnostni pravilnik preprečuje uporabo sinhronizacije namizja."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Fot."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Varnostni pravilnik preprečuje uporabo aplikacije %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Varnostni pravilnik omejuje uporabo programa %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Uporabljen je varnostni pravilnik."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Veljaven varn. pravilnik"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Varnostni pravilnik preprečuje namestitev aplikacij."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Varnostni pravilnik preprečuje namestitev te aplikacije."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Varnostni pravilnik preprečuje odstranitev aplikacij."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Varnostni pravilnik preprečuje odstranitev te aplikacije."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Varnostni pravilnik zahteva, da spremenite geslo."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Varnostni pravilnik omejuje uporabo mikrofona."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Varnostni pravilnik omejuje uporabo informacij o lokaciji."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Varnostni pravilnik preprečuje uporabo vmesnika Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Varnostni pravilnik preprečuje pošiljanje sporočil."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Varnostni pravilnik omejuje prejemanje sporočil."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Varnostni pravilnik preprečuje uporabo aplikacij brskalnika."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Varnostni pravilnik omejuje uporabo kartice SD."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Varnostni pravilnik preprečuje dešifriranje telefona."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Varnostni pravilnik preprečuje uporabo vmesnika Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Varnostni pravilnik preprečuje spreminjanje nastavitev."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Varnostni pravilnik omejuje uporabo e-pošte POP/IMAP."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Varnostni pravilnik preprečuje uporabo e-pošte POP/IMAP."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Varnostni pravilnik omejuje uporabo računalniške povezave."
+
diff --git a/src/policyd/tools/syspopup/po/sr.po b/src/policyd/tools/syspopup/po/sr.po
new file mode 100755 (executable)
index 0000000..d272218
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Privremena memorija"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Otkaži"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Snimanje prikaza ekrana"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Lozinka"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Pristupna tačka"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Politika bezbednosti sprečava korišćenje sinhronizacije sa računarom."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Kamera"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Politika bezbednosti sprečava korišćenje aplikacije %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Politika bezbednosti ograničava upotrebu funkcije %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Politika bezbednosti je primenjena."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Politika bezbed. na snazi"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Politika bezbednosti sprečava instalaciju aplikacija."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Politika bezbednosti sprečava instalaciju ove aplikacije."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Politika bezbednosti sprečava deinstaliranje aplikacija."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Politika bezbednosti sprečava deinstalaciju ove aplikacije."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Politika bezbednosti zahteva da promeniš lozinku."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Politika bezbednosti ograničava upotrebu mikrofona."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Politika bezbednosti ograničava upotrebu informacija o lokaciji."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Politika bezbednosti sprečava korišćenje Bluetooth-a."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Politika bezbednosti sprečava slanje poruka."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Politika bezbednosti ograničava prijem poruka."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Politika bezbednosti sprečava korišćenje aplikacija pretraživača."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Politika bezbednosti ograničava upotrebu SD kartice."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Politika bezbednosti sprečava dešifrovanje telefona."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Politika bezbednosti sprečava korišćenje Wi-Fi veze."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Politika bezbednosti sprečava promenu podešavanja."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Politika bezbednosti ograničava upotrebu POP/IMAP e-pošte."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Politika bezbednosti sprečava korišćenje POP/IMAP e-pošte."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Politika bezbednosti ograničava upotrebu veze sa računarom."
+
diff --git a/src/policyd/tools/syspopup/po/sv.po b/src/policyd/tools/syspopup/po/sv.po
new file mode 100755 (executable)
index 0000000..8db0882
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Urklipp"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Avbryt"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Skärmbild"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Lösenord"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Hotspot"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Säkerhetspolicyn förhindrar att skrivbordssynkronisering används."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Kamera"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Säkerhetspolicyn förhindrar att %s används."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Säkerhetspolicyn begränsar användningen av %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Säkerhetspolicy används."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Säkerhetspolicy gäller"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Säkerhetspolicyn förhindrar att appar installeras."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Säkerhetspolicyn förhindrar att appen installeras."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Säkerhetspolicyn förhindrar att appar avinstalleras."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Säkerhetspolicyn förhindrar att appen avinstalleras."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Säkerhetspolicyn kräver att du ändrar lösenordet."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Säkerhetspolicyn begränsar användningen av mikrofon."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Säkerhetspolicyn begränsar användningen av platsinformation."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Säkerhetspolicyn förhindrar att Bluetooth används."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Säkerhetspolicyn förhindrar att meddelanden skickas."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Säkerhetspolicyn begränsar hämtning av meddelanden."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Säkerhetspolicyn förhindrar att webbläsare används."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Säkerhetspolicy begränsar användningen av SD-kort."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Säkerhetspolicyn hindrar att telefonen avkrypteras."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Säkerhetspolicyn förhindrar att Wi-Fi används."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Säkerhetspolicyn förhindrar ändring av inställningarna."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Säkerhetspolicy begränsar användningen av POP/IMAP-e-post."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Säkerhetspolicyn förhindrar att POP-/IMAP-e-post används."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Säkerhetspolicyn begränsar användningen av datoranslutningen."
+
diff --git a/src/policyd/tools/syspopup/po/tr_TR.po b/src/policyd/tools/syspopup/po/tr_TR.po
new file mode 100755 (executable)
index 0000000..772488e
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Pano"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "Tamam"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "İptal"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Ekran yakalama"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Şifre"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Erişim Noktası"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Güvenlik ilkesi masaüstü eşitleme kullanımını engelliyor."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Kamera"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Güvenlik ilkesi, %s kullanımını engelliyor."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Güvenlik ilkesi, %s kullanımını kısıtlıyor."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Güvenlik ilkesi uygulandı."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Güvenlik ilkesi geçerli"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Güvenlik ilkesi, uygulamaların yüklenmesini engelliyor."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Güvenlik ilkesi, bu uygulamanın yüklenmesini engelliyor."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Güvenlik ilkesi, uygulamaların kaldırılmasını engelliyor."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Güvenlik ilkesi, bu uygulamanın kaldırılmasını engelliyor."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Güvenlik ilkesi, şifrenizi değiştirmenizi istiyor"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Güvenlik ilkesi, mikrofon kullanımını kısıtlıyor."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Güvenlik ilkesi, konum bilgisi kullanımını kısıtlıyor."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Güvenlik ilkesi Bluetooth kullanımını engelliyor."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Güvenlik ilkesi, mesaj göndermeyi engelliyor."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Güvenlik ilkesi, mesaj almayı kısıtlıyor."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Güvenlik ilkesi, tarayıcı uygulamalarının kullanımını engelliyor."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Güvenlik ilkesi, SD kart kullanımını kısıtlıyor."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Güvenlik ilkesi, telefonun şifresini çözmeyi engelliyor."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Güvenlik ilkesi Wi-Fi kullanımını engelliyor."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Güvenlik ilkesi ayarların değiştirilmesini engelliyor."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Güvenlik ilkesi POP/IMAP eposta kullanımını kısıtlıyor."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Güvenlik ilkesi POP/IMAP e-posta kullanımını engelliyor."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Güvenlik ilkesi PC bağlantısı kullanımını kısıtlıyor."
+
diff --git a/src/policyd/tools/syspopup/po/uk.po b/src/policyd/tools/syspopup/po/uk.po
new file mode 100755 (executable)
index 0000000..d859aa5
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Буфер обміну"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Скасувати"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Знімок екрана"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Пароль"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Точка доступу"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Політика безпеки попереджає використання синхронізації з комп’ютером."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Камера"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Політика безпеки забороняє використання %s."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Використання функції %s обмежено політикою безпеки."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Застосовано політику безпеки."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Діє політика безпеки"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Політикою безпеки заборонено встановлення програм."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Політикою безпеки заборонено встановлення цієї програми."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Політикою безпеки заборонено видалення програм."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Політикою безпеки заборонено видалення цієї програми."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Політика безпеки вимагає змінення паролю."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Політикою безпеки заборонено використання мікрофона."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Політикою безпеки заборонено використання інформації про розташування."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Політика безпеки попереджає використання функції Bluetooth."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Політикою безпеки заборонено надсилання повідомлень."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Політикою безпеки заборонено отримання повідомлень."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Політикою безпеки заборонено використання програм на базі браузера."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Політикою безпеки заборонено використання SD-карти."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Політикою безпеки виключається можливість дешифрування даних телефону."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Політика безпеки попереджає використання мережі Wi-Fi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Політика безпеки попереджає змінення установок."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Використання протоколів POP/IMAP електронної пошти обмежено політикою безпеки."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Політика безпеки попереджає використання протоколів POP/IMAP електронної пошти."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Використання підключення до ПК заборонено політикою безпеки."
+
diff --git a/src/policyd/tools/syspopup/po/uz.po b/src/policyd/tools/syspopup/po/uz.po
new file mode 100755 (executable)
index 0000000..70289de
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "Bufer"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "OK"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "Bekor qilish"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "Ekran rasmi"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "Parol"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "Faol nuqta"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "Xavfsizlik siyosati ishchi stolni sinxronlash ishlatilishidan saqlaydi."
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "Kamera"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "Xavfsizlik siyosati %s ishlatilishiga yo‘l qo‘ymayapti."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "Xavfsizlik siyosati %s’dan foydalanishni cheklaydi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "Xavfsizlik siyosati qo‘llanildi."
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "Xavf-lik siyosati kuchda"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "Xavfsizlik siyosati ilovalar o‘rnatilishiga yo‘l qo‘ymaydi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "Xavfsizlik siyosati ushbu ilova o‘rnatilishiga yo‘l qo‘ymaydi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "Xavfsizlik siyosati ilovalar olib tashlanishiga yo‘l qo‘ymaydi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "Xavfsizlik siyosati ushbu ilova olib tashlanishiga yo‘l qo‘ymaydi."
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "Xavfsizlik siyosati parolingizni o‘zgartirishni talab qiladi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "Xavfsizlik siyosati mikrofon ishlatilishiga yo‘l qo‘ymaydi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "Xavfsizlik siyosati joylashuv ma’lumotlari ishlatilishiga yo‘q qo‘ymaydi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "Xavfsizlik siyosati Bluetooth ishlatilishiga yo‘l qo‘ymaydi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "Xavfsizlik siyosati xabarlar yuborilishiga yo‘l qo‘ymaydi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "Xavfsizlik siyosati xabarlar olinishiga yo‘l qo‘ymaydi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "Xavfsizlik siyosati brauzer ilovalari ishlatilishiga yo‘l qo‘ymaydi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "Xavfsizlik siyosati SD-karta ishlatilishiga yo‘l qo‘ymaydi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "Xavfsizlik siyosati telefon shifrdan chiqarilishiga yo‘l qo‘ymaydi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "Xavfsizlik siyosati Wi-Fi ishlatilishiga yo‘l qo‘ymaydi."
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "Xavfsizlik siyosati parametrlar o‘zgartirilishiga yo‘l qo‘ymaydi."
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Xavfsizlik siyosati POP/IMAP e-pochtasidan foydalanishni cheklaydi."
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "Xavfsizlik siyosati POP/IMAP e-pochta ishlatilishidan saqlaydi."
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "Xavfsizlik siyosati ShK ulanishidan foydalanishni cheklaydi."
+
diff --git a/src/policyd/tools/syspopup/po/zh_CN.po b/src/policyd/tools/syspopup/po/zh_CN.po
new file mode 100755 (executable)
index 0000000..123c129
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "剪贴板"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "确定"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "取消"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "屏幕截取"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "密码"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "热点"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "安全政策可防止桌面同步的使用。"
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "相机"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "安全策略阻止使用%s"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "安全政策限制 %s 的使用"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "已应用安全政策"
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "安全政策已生效"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "安全政策会阻止安装应用程序"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "安全政策会阻止安装此应用程序"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "安全政策会阻止卸载应用程序"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "安全政策会阻止卸载此应用程序"
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "安全政策需要您更改密码。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "安全政策会限制使用麦克风"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "安全政策会限制使用位置信息"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "安全政策阻止使用蓝牙。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "安全政策会阻止发送信息"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "安全政策会限制获取信息"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "安全政策会阻止使用浏览器应用程序"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "安全政策会限制使用 SD 卡"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "安全政策阻止对手机进行解密"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "安全政策阻止使用 Wi-Fi。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "安全政策阻止更改设置。"
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "安全政策限制使用POP/IMAP电子邮件。"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "安全政策可防止 POP/IMAP 电子邮件的使用。"
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "安全政策限制 PC 连接的使用。"
+
diff --git a/src/policyd/tools/syspopup/po/zh_HK.po b/src/policyd/tools/syspopup/po/zh_HK.po
new file mode 100755 (executable)
index 0000000..5fb717e
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "剪貼板"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "確定"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "取消"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "螢幕擷取"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "密碼"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "熱點"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "安全性政策可防止桌上電腦同步的使用。"
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "相機"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "安全性政策防止%s的使用。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "安全政策限制使用 %s。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "已應用安全性政策。"
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "安全性政策已生效"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "安全性政策會阻止安裝應用程式。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "安全性政策會阻止安裝此應用程式。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "安全性政策會阻止解除安裝應用程式。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "安全性政策會阻止解除安裝此應用程式。"
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "安全性政策將要求您變更密碼。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "安全政策會限制使用話筒。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "安全政策會限制使用位置資訊。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "安全性政策可防止藍牙的使用。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "安全性政策會阻止發送訊息。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "安全性政策會限制取回訊息。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "安全性政策會阻止瀏覽器應用程式的使用。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "安全政策會限制使用 SD 卡。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "安全性政策阻止手機的解密。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "安全性政策防止 Wi-Fi 的使用。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "安全性政策防止變更設定。"
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "安全政策限制使用 POP/IMAP 電子郵件。"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "安全性政策可防止 POP/IMAP 電子郵件的使用。"
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "安全性政策限制使用電腦連線。"
+
diff --git a/src/policyd/tools/syspopup/po/zh_TW.po b/src/policyd/tools/syspopup/po/zh_TW.po
new file mode 100755 (executable)
index 0000000..3c2a5ba
--- /dev/null
@@ -0,0 +1,93 @@
+msgid "IDS_TPLATFORM_OPT_CLIPBOARD"
+msgstr "剪貼簿"
+
+msgid "IDS_TPLATFORM_BUTTON_OK"
+msgstr "確認"
+
+msgid "IDS_TPLATFORM_BUTTON2_CANCEL"
+msgstr "取消"
+
+msgid "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN"
+msgstr "螢幕擷取"
+
+msgid "IDS_ST_BODY_PASSWORD"
+msgstr "密碼"
+
+msgid "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT"
+msgstr "無線基地台"
+
+msgid "IDS_ST_BODY_NFC"
+msgstr "NFC"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_DESKTOP_SYNC"
+msgstr "安全性原則可防止桌機同步的使用。"
+
+msgid "IDS_IDLE_TAB4_CAMERA"
+msgstr "相機"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_PS"
+msgstr "安全性原則禁止%s的使用。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS"
+msgstr "安全性原則限制 %s 的使用。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_APPLIED"
+msgstr "已套用安全性原則。"
+
+msgid "IDS_IDLE_MBODY_SECURITY_POLICY_IN_EFFECT"
+msgstr "安全性原則已生效"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS"
+msgstr "安全性原則會防止應用程式的安裝。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_THIS_APP"
+msgstr "安全性原則會防止此應用程式的安裝。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS"
+msgstr "安全性原則會防止解除安裝應用程式。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_OF_THIS_APP"
+msgstr "安全性原則會防止解除安裝此應用程式。"
+
+msgid "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"
+msgstr "安全性政策將要求您變更密碼。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC"
+msgstr "安全性原則會限制麥克風的使用。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO"
+msgstr "安全性原則會限制位置資訊的使用。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH"
+msgstr "安全性原則會防止藍牙的使用。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES"
+msgstr "安全性原則會防止訊息的傳送。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES"
+msgstr "安全性原則會限制訊息的擷取。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS"
+msgstr "安全性原則會防止瀏覽器應用程式的使用。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD"
+msgstr "安全性原則會限制 SD 卡的使用。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_DECRYPTION_OF_PHONE"
+msgstr "安全性原則阻擋手機的解密。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI"
+msgstr "安全性原則會防止 Wi-Fi 的使用。"
+
+msgid "IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_CHANGING_SETTINGS"
+msgstr "安全性原則會防止變更設定。"
+
+msgid "IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "由於安全政策,使用POP/IMAP電子郵件被限制。"
+
+msgid "IDS_ST_POP_SECURITY_POLICY_PREVENTS_USE_OF_POP_IMAP_EMAIL"
+msgstr "安全性原則可防止 POP/IMAP 電子郵件的使用。"
+
+msgid "IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION"
+msgstr "安全性政策限制使用電腦連線。"
+
diff --git a/src/policyd/tools/syspopup/res/images/tw_ic_popup_btn_check.png b/src/policyd/tools/syspopup/res/images/tw_ic_popup_btn_check.png
new file mode 100644 (file)
index 0000000..f20f62e
Binary files /dev/null and b/src/policyd/tools/syspopup/res/images/tw_ic_popup_btn_check.png differ
diff --git a/src/policyd/tools/syspopup/res/images/tw_ic_popup_btn_delete.png b/src/policyd/tools/syspopup/res/images/tw_ic_popup_btn_delete.png
new file mode 100644 (file)
index 0000000..5f346cb
Binary files /dev/null and b/src/policyd/tools/syspopup/res/images/tw_ic_popup_btn_delete.png differ
diff --git a/src/policyd/tools/syspopup/res/org.tizen.dpm-syspopup.png b/src/policyd/tools/syspopup/res/org.tizen.dpm-syspopup.png
new file mode 100644 (file)
index 0000000..9765b1b
Binary files /dev/null and b/src/policyd/tools/syspopup/res/org.tizen.dpm-syspopup.png differ
diff --git a/src/policyd/tools/syspopup/src/application.cpp b/src/policyd/tools/syspopup/src/application.cpp
new file mode 100644 (file)
index 0000000..49d220a
--- /dev/null
@@ -0,0 +1,123 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "application.h"
+
+Application::Application(const std::string &name)
+       : packageName(name), appControl(nullptr)
+{
+}
+
+Application::~Application()
+{
+}
+
+bool Application::createDispatcher(void *data)
+{
+       Application *application = reinterpret_cast<Application *>(data);
+       return application->onCreate();
+}
+
+void Application::terminateDispatcher(void *data)
+{
+       Application *application = reinterpret_cast<Application *>(data);
+       return application->onTerminate();
+}
+
+void Application::pauseDispatcher(void *data)
+{
+       Application *application = reinterpret_cast<Application *>(data);
+       return application->onPause();
+}
+
+void Application::resumeDispatcher(void *data)
+{
+       Application *application = reinterpret_cast<Application *>(data);
+       return application->onResume();
+}
+
+void Application::appControlDispatcher(app_control_h app_control, void *data)
+{
+       Application *application = reinterpret_cast<Application *>(data);
+       application->appControl.reset(new AppControl{app_control});
+
+       return application->onAppControl();
+}
+
+void Application::languageChangedDispatcher(app_event_info_h event_info, void *user_data)
+{
+       int ret = 0;
+       char *locale = NULL;
+
+       ret = ::system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
+       if (ret != SYSTEM_SETTINGS_ERROR_NONE) {
+               throw runtime::Exception("failed to get language");
+       }
+
+       ::elm_language_set(locale);
+       ::free(locale);
+}
+
+int Application::run(int argc, char *argv[])
+{
+       int ret = 0;
+       ui_app_lifecycle_callback_s event_callback = { 0, };
+       app_event_handler_h handlers[5] = { NULL, };
+
+       event_callback.create = createDispatcher;
+       event_callback.terminate = terminateDispatcher;
+       event_callback.pause = pauseDispatcher;
+       event_callback.resume = resumeDispatcher;
+       event_callback.app_control = appControlDispatcher;
+
+       try {
+               ::ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED],
+                                               APP_EVENT_LANGUAGE_CHANGED,
+                                               languageChangedDispatcher, NULL);
+
+               ret = ::ui_app_main(argc, argv, &event_callback, this);
+               if (ret != APP_ERROR_NONE)
+                       throw runtime::Exception("app_main() is failed");
+       } catch(runtime::Exception &e) {
+               dlog_print(DLOG_ERROR, packageName.c_str(), "%s", e.what());
+               ::ui_app_exit();
+       }
+
+       return ret;
+}
+
+bool Application::onCreate()
+{
+       return true;
+}
+
+void Application::onTerminate()
+{
+}
+
+void Application::onPause()
+{
+}
+
+void Application::onResume()
+{
+}
+
+void Application::onAppControl()
+{
+}
diff --git a/src/policyd/tools/syspopup/src/application.h b/src/policyd/tools/syspopup/src/application.h
new file mode 100644 (file)
index 0000000..c23ada8
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ *
+ * Copyright (c) 2017 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 __APPLICATION_H__
+#define __APPLICATION_H__
+
+#include <memory>
+
+#include <app.h>
+#include <app_common.h>
+#include <Elementary.h>
+#include <efl_util.h>
+
+#include <dlog.h>
+#include <system_info.h>
+#include <system_settings.h>
+#include <klay/exception.h>
+
+#include "ui/appcontrol.h"
+
+class Application {
+public:
+       Application(const std::string &name);
+       virtual ~Application();
+
+       virtual int run(int argc, char *argv[]);
+
+protected:
+       virtual bool onCreate();
+       virtual void onResume();
+       virtual void onPause();
+       virtual void onTerminate();
+       virtual void onAppControl();
+
+       std::string packageName;
+       std::unique_ptr<AppControl> appControl;
+private:
+       static bool createDispatcher(void *data);
+       static void resumeDispatcher(void *data);
+       static void pauseDispatcher(void *data);
+       static void terminateDispatcher(void *data);
+       static void appControlDispatcher(app_control_h app_control, void *data);
+       static void languageChangedDispatcher(app_event_info_h event_info, void* user_data);
+};
+
+#endif /*__APPLICATION_H__*/
diff --git a/src/policyd/tools/syspopup/src/interface.cpp b/src/policyd/tools/syspopup/src/interface.cpp
new file mode 100644 (file)
index 0000000..b04d4a6
--- /dev/null
@@ -0,0 +1,145 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "interface.h"
+
+SyspopupInterface::SyspopupInterface()
+       : prefix(0), title(""), content(""), popup(nullptr), window(nullptr)
+{
+}
+
+SyspopupInterface::SyspopupInterface(const std::string &contentText)
+       : prefix(0), title(""), content(contentText), popup(nullptr), window(nullptr)
+{
+}
+
+SyspopupInterface::SyspopupInterface(int prefixEnabled, const std::string &contentText)
+       : prefix(prefixEnabled), title(""), content(contentText), popup(nullptr), window(nullptr)
+{
+}
+
+SyspopupInterface::SyspopupInterface(const std::string &titleText, const std::string &contentText)
+       : prefix(0), title(titleText), content(contentText), popup(nullptr), window(nullptr)
+{
+}
+
+SyspopupInterface::~SyspopupInterface()
+{
+       if (popup != nullptr) {
+               popup->dispose();
+       }
+
+       if (window)
+               delete window;
+}
+
+int SyspopupInterface::getProfile()
+{
+       char *profileName = nullptr;
+       int ret = ::system_info_get_platform_string("http://tizen.org/feature/profile", &profileName);
+       if (ret != SYSTEM_INFO_ERROR_NONE) {
+               return Profile::Invalid;
+       }
+
+       switch (*profileName) {
+       case 'm':
+       case 'M':
+               ret = Profile::Mobile;
+               break;
+       case 'w':
+       case 'W':
+               ret = Profile::Wearable;
+               break;
+       default:
+               ret = Profile::Invalid;
+               break;
+       }
+
+       ::free(profileName);
+       return ret;
+}
+
+bool SyspopupInterface::isManufacturer(const std::string &name)
+{
+       bool ret = false;
+       char *manufacturer = nullptr;
+
+       ::system_info_get_platform_string("tizen.org/system/manufacturer", &manufacturer);
+       ret = !name.compare(manufacturer);
+       ::free(manufacturer);
+       return ret;
+}
+
+void SyspopupInterface::createWindow()
+{
+       if (window == nullptr)
+               window = new Window{"dpm-syspopup"};
+}
+
+void SyspopupInterface::createToastPopup()
+{
+       createWindow();
+       switch (getProfile()) {
+       case Profile::Mobile :
+               popup.reset(new MobileToastPopup(window));
+               break;
+       case Profile::Wearable:
+               popup.reset(new WearableToastPopup(window));
+               break;
+       default:
+               throw runtime::Exception("Invalid profile");
+               break;
+       }
+}
+
+void SyspopupInterface::createDefaultPopup()
+{
+       createWindow();
+       switch (getProfile()) {
+       case Profile::Mobile:
+               popup.reset(new MobileDefaultPopup(window));
+               break;
+       case Profile::Wearable:
+               popup.reset(new WearableDefaultPopup(window));
+               break;
+       default:
+               throw runtime::Exception("Invalid profile");
+               break;
+       }
+}
+
+void SyspopupInterface::show()
+{
+       if (!title.empty()) {
+               popup->setTitleText(title);
+       }
+
+       if (!content.empty() && !prefix) {
+               popup->setContentText(content);
+       }
+
+       if (!content.empty() && prefix) {
+               popup->setPrefixContentText(content);
+       }
+
+       if (popup != nullptr) {
+               popup->show();
+       }
+}
+
+std::unordered_map<std::string, SyspopupInterface *> ManagedPopup::list;
diff --git a/src/policyd/tools/syspopup/src/interface.h b/src/policyd/tools/syspopup/src/interface.h
new file mode 100644 (file)
index 0000000..8173bf1
--- /dev/null
@@ -0,0 +1,101 @@
+/*
+ *
+ * Copyright (c) 2017 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 __SYSPOPUP_INTERFACE_H__
+#define __SYSPOPUP_INTERFACE_H__
+
+#include <iostream>
+#include <memory>
+#include <vector>
+#include <functional>
+#include <unordered_map>
+
+#include <dlog.h>
+#include <system_info.h>
+#include <klay/exception.h>
+
+#include "ui/window.h"
+#include "ui/popup.h"
+#include "ui/appcontrol.h"
+#include "ui/notification.h"
+
+class SyspopupInterface {
+public:
+       enum Profile {
+               Mobile = 0,
+               Wearable,
+               Invalid,
+       };
+
+       SyspopupInterface();
+       SyspopupInterface(const std::string &contentText);
+       SyspopupInterface(int prefixEnabled, const std::string &contentText);
+       SyspopupInterface(const std::string &titleText, const std::string &contentText);
+
+       virtual ~SyspopupInterface();
+
+       virtual void initialize() = 0;
+       virtual void contribute(const std::string &userData) = 0;
+       virtual void dispose() = 0;
+
+       void show();
+
+protected:
+       int getProfile();
+       bool isManufacturer(const std::string &name);
+
+       void createToastPopup();
+       void createDefaultPopup();
+
+       int prefix;
+       std::string title;
+       std::string content;
+       std::unique_ptr<Popup> popup;
+private:
+       void createWindow();
+       Window *window;
+};
+
+class ManagedPopup {
+public:
+       static std::unordered_map<std::string, SyspopupInterface *> list;
+};
+
+template <typename Syspopup>
+class SyspopupManager {
+public:
+       SyspopupManager(const std::string &id);
+       ~SyspopupManager();
+
+private:
+       std::unique_ptr<Syspopup> popup;
+};
+
+template <typename Syspopup>
+SyspopupManager<Syspopup>::SyspopupManager(const std::string &id)
+{
+       popup.reset(new Syspopup{});
+       ManagedPopup::list[id] = popup.get();
+}
+
+template<typename Syspopup>
+SyspopupManager<Syspopup>::~SyspopupManager()
+{
+}
+
+#endif /* __SYSPOPUP_INTERFACE_H__ */
diff --git a/src/policyd/tools/syspopup/src/main.cpp b/src/policyd/tools/syspopup/src/main.cpp
new file mode 100644 (file)
index 0000000..c30260e
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include <klay/exception.h>
+#include "syspopup.h"
+
+DPMSyspopup::DPMSyspopup()
+       : Application("dpm-syspopup"), id(""), userData("")
+{
+}
+
+DPMSyspopup::~DPMSyspopup()
+{
+}
+
+void DPMSyspopup::onAppControl()
+{
+       SyspopupInterface *popup = nullptr;
+
+       id = appControl->getData("id");
+       if (ManagedPopup::list.find(id) == ManagedPopup::list.end()) {
+               throw runtime::Exception("popup is not supported.");
+       }
+
+       popup = ManagedPopup::list[id];
+       if (popup == nullptr) {
+               throw runtime::Exception("failed to get popup instance");
+       }
+
+       popup->initialize();
+       userData = appControl->getData("user-data");
+       popup->contribute(userData);
+       popup->show();
+}
+
+void DPMSyspopup::onTerminate()
+{
+       SyspopupInterface *popup = nullptr;
+       popup = ManagedPopup::list[id];
+       if (popup == nullptr) {
+               throw runtime::Exception("failed to get popup instance");
+       }
+       popup->dispose();
+}
+
+int main(int argc, char *argv[])
+{
+       int ret = 0;
+       DPMSyspopup syspopup;
+       ret = syspopup.run(argc, argv);
+       return ret;
+}
diff --git a/src/policyd/tools/syspopup/src/popup/bluetooth.cpp b/src/policyd/tools/syspopup/src/popup/bluetooth.cpp
new file mode 100644 (file)
index 0000000..e9a652a
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "bluetooth.h"
+
+BluetoothPopup::BluetoothPopup()
+       : SyspopupInterface("IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BLUETOOTH")
+{
+}
+
+BluetoothPopup::~BluetoothPopup()
+{
+}
+
+void BluetoothPopup::initialize()
+{
+}
+
+void BluetoothPopup::contribute(const std::string &userData)
+{
+       createToastPopup();
+}
+
+void BluetoothPopup::dispose()
+{
+}
+
+SyspopupManager<BluetoothPopup> bluetoothPopup("bluetooth");
diff --git a/src/policyd/tools/syspopup/src/popup/bluetooth.h b/src/policyd/tools/syspopup/src/popup/bluetooth.h
new file mode 100644 (file)
index 0000000..48ee238
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_BLUETOOTH_SYSPOPUP_H__
+#define __DPM_BLUETOOTH_SYSPOPUP_H__
+
+#include "../interface.h"
+
+class BluetoothPopup : public SyspopupInterface {
+public:
+       BluetoothPopup();
+       virtual ~BluetoothPopup();
+
+       void initialize();
+       void contribute(const std::string &userData);
+       void dispose();
+};
+
+#endif /* __DPM_BLUETOOTH_SYSPOPUP_H__ */
diff --git a/src/policyd/tools/syspopup/src/popup/browser.cpp b/src/policyd/tools/syspopup/src/popup/browser.cpp
new file mode 100644 (file)
index 0000000..16719d5
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "browser.h"
+
+BrowserPopup::BrowserPopup()
+       : SyspopupInterface("IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_BROWSER_APPS")
+{
+}
+
+BrowserPopup::~BrowserPopup()
+{
+}
+
+void BrowserPopup::initialize()
+{
+}
+
+void BrowserPopup::contribute(const std::string &userData)
+{
+       createToastPopup();
+}
+
+void BrowserPopup::dispose()
+{
+}
+
+SyspopupManager<BrowserPopup> browserPopup("browser");
diff --git a/src/policyd/tools/syspopup/src/popup/browser.h b/src/policyd/tools/syspopup/src/popup/browser.h
new file mode 100644 (file)
index 0000000..e8348ef
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_BROWSER_SYSPOPUP_H__
+#define __DPM_BROWSER_SYSPOPUP_H__
+
+#include "../interface.h"
+
+class BrowserPopup : public SyspopupInterface {
+public:
+       BrowserPopup();
+       virtual ~BrowserPopup();
+
+       void initialize();
+       void contribute(const std::string &userData);
+       void dispose();
+};
+
+#endif /* __DPM_BROWSER_SYSPOPUP_H__ */
diff --git a/src/policyd/tools/syspopup/src/popup/camera.cpp b/src/policyd/tools/syspopup/src/popup/camera.cpp
new file mode 100644 (file)
index 0000000..88b6e50
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "camera.h"
+
+CameraPopup::CameraPopup()
+       : SyspopupInterface(true, "IDS_IDLE_TAB4_CAMERA")
+{
+}
+
+CameraPopup::~CameraPopup()
+{
+}
+
+void CameraPopup::initialize()
+{
+}
+
+void CameraPopup::contribute(const std::string &userData)
+{
+       createToastPopup();
+}
+
+void CameraPopup::dispose()
+{
+}
+
+SyspopupManager<CameraPopup> cameraPopup("camera");
diff --git a/src/policyd/tools/syspopup/src/popup/camera.h b/src/policyd/tools/syspopup/src/popup/camera.h
new file mode 100644 (file)
index 0000000..443098c
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_CAMERA_SYSPOPUP_H__
+#define __DPM_CAMERA_SYSPOPUP_H__
+
+#include "../interface.h"
+
+class CameraPopup : public SyspopupInterface {
+public:
+       CameraPopup();
+       virtual ~CameraPopup();
+
+       void initialize();
+       void contribute(const std::string &userData);
+       void dispose();
+};
+
+#endif /* __DPM_CAMERA_SYSPOPUP_H__ */
diff --git a/src/policyd/tools/syspopup/src/popup/clipboard.cpp b/src/policyd/tools/syspopup/src/popup/clipboard.cpp
new file mode 100644 (file)
index 0000000..f02930d
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "clipboard.h"
+
+ClipboardPopup::ClipboardPopup()
+       : SyspopupInterface(true, "IDS_TPLATFORM_OPT_CLIPBOARD")
+{
+}
+
+ClipboardPopup::~ClipboardPopup()
+{
+}
+
+void ClipboardPopup::initialize()
+{
+}
+
+void ClipboardPopup::contribute(const std::string &userData)
+{
+       createToastPopup();
+}
+
+void ClipboardPopup::dispose()
+{
+}
+
+SyspopupManager<ClipboardPopup> clipboardPopup("clipboard");
diff --git a/src/policyd/tools/syspopup/src/popup/clipboard.h b/src/policyd/tools/syspopup/src/popup/clipboard.h
new file mode 100644 (file)
index 0000000..387a6db
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_CLIPBOARD_SYSPOPUP_H__
+#define __DPM_CLIPBOARD_SYSPOPUP_H__
+
+#include "../interface.h"
+
+class ClipboardPopup : public SyspopupInterface {
+public:
+       ClipboardPopup();
+       virtual ~ClipboardPopup();
+
+       void initialize();
+       void contribute(const std::string &userData);
+       void dispose();
+};
+
+#endif /* __DPM_CLIPBOARD_SYSPOPUP_H__ */
diff --git a/src/policyd/tools/syspopup/src/popup/external-storage.cpp b/src/policyd/tools/syspopup/src/popup/external-storage.cpp
new file mode 100644 (file)
index 0000000..3ca7cce
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "external-storage.h"
+
+ExternalStoragePopup::ExternalStoragePopup()
+       : SyspopupInterface("IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_SD_CARD")
+{
+}
+
+ExternalStoragePopup::~ExternalStoragePopup()
+{
+}
+
+void ExternalStoragePopup::initialize()
+{
+}
+
+void ExternalStoragePopup::contribute(const std::string &userData)
+{
+       createToastPopup();
+}
+
+void ExternalStoragePopup::dispose()
+{
+}
+
+SyspopupManager<ExternalStoragePopup> sdCardPopup("external-storage");
diff --git a/src/policyd/tools/syspopup/src/popup/external-storage.h b/src/policyd/tools/syspopup/src/popup/external-storage.h
new file mode 100644 (file)
index 0000000..4ef8ef8
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_EXTERNAL_STORAGE_SYSPOPUP_H__
+#define __DPM_EXTERNAL_STORAGE_SYSPOPUP_H__
+
+#include "../interface.h"
+
+class ExternalStoragePopup : public SyspopupInterface {
+public:
+       ExternalStoragePopup();
+       virtual ~ExternalStoragePopup();
+
+       void initialize();
+       void contribute(const std::string &userData);
+       void dispose();
+};
+
+#endif /* __DPM_EXTERNAL_STORAGE_SYSPOPUP_H__ */
diff --git a/src/policyd/tools/syspopup/src/popup/krate-create.cpp b/src/policyd/tools/syspopup/src/popup/krate-create.cpp
new file mode 100644 (file)
index 0000000..d55b67e
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "krate-create.h"
+
+KrateCreatePopup::KrateCreatePopup()
+       : SyspopupInterface("IDS_DPM_KRATE_CREATE", "IDS_DPM_BODY_KRATE_CREATE"),
+         setupWizard("org.tizen.krate-setup-wizard")
+{
+}
+
+KrateCreatePopup::~KrateCreatePopup()
+{
+}
+
+void KrateCreatePopup::initialize()
+{
+       notification.setTitle("IDS_DPM_NOTI_KRATE_CREATE");
+       notification.setContent("IDS_DPM_NOTI_BODY_KRATE_CREATE");
+       notification.setImage("/usr/share/icons/default/small/org.tizen.dpm-syspopup.png");
+       setupWizard.setData("mode", "create");
+}
+
+void KrateCreatePopup::contribute(const std::string &userData)
+{
+       setupWizard.setData("krate", userData);
+       if (!isManufacturer("Tizen")) {
+               setupWizard.setAppID("com.samsung.krate-setup-wizard");
+       }
+       notification.setAppControl(setupWizard);
+
+       createDefaultPopup();
+       if (popup == nullptr) {
+               throw runtime::Exception("failed to create popup interface");
+       }
+
+       popup->onDispose = [this]() {
+                               notification.post();
+                               ::ui_app_exit();
+                       };
+
+       popup->setButton("IDS_TPLATFORM_BUTTON2_CANCEL",
+                       [this](void *event_info) {
+                               popup->dispose();
+                       },
+                       "IDS_TPLATFORM_BUTTON_OK",
+                       [this](void *event_info) {
+                               popup->onDispose = [this]() {
+                                       setupWizard.launch();
+                                       ::ui_app_exit();
+                               };
+                               popup->dispose();
+                       });
+}
+
+void KrateCreatePopup::dispose()
+{
+}
+
+SyspopupManager<KrateCreatePopup> krateCreatePopup("krate-create");
diff --git a/src/policyd/tools/syspopup/src/popup/krate-create.h b/src/policyd/tools/syspopup/src/popup/krate-create.h
new file mode 100644 (file)
index 0000000..39cfb32
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_KRATE_CREATE_SYSPOPUP_H__
+#define __DPM_KRATE_CREATE_SYSPOPUP_H__
+
+#include "../interface.h"
+
+class KrateCreatePopup : public SyspopupInterface {
+public:
+       KrateCreatePopup();
+       virtual ~KrateCreatePopup();
+
+       void initialize();
+       void contribute(const std::string &userData);
+       void dispose();
+
+private:
+       AppControl setupWizard;
+       Notification notification;
+};
+
+#endif /* __DPM_KRATE_CREATE_SYSPOPUP_H__ */
diff --git a/src/policyd/tools/syspopup/src/popup/krate-remove.cpp b/src/policyd/tools/syspopup/src/popup/krate-remove.cpp
new file mode 100644 (file)
index 0000000..7e18ff5
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "krate-remove.h"
+
+KrateRemovePopup::KrateRemovePopup()
+       : SyspopupInterface("IDS_DPM_KRATE_REMOVE", "IDS_DPM_BODY_KRATE_REMOVE"),
+         setupWizard("org.tizen.krate-setup-wizard")
+{
+}
+
+KrateRemovePopup::~KrateRemovePopup()
+{
+}
+
+void KrateRemovePopup::initialize()
+{
+       notification.setTitle("IDS_DPM_NOTI_KRATE_REMOVE");
+       notification.setContent("IDS_DPM_NOTI_BODY_KRATE_REMOVE");
+       notification.setImage("/usr/share/icons/default/small/org.tizen.dpm-syspopup.png");
+       setupWizard.setData("mode", "remove");
+}
+
+void KrateRemovePopup::contribute(const std::string &userData)
+{
+       setupWizard.setData("krate", userData);
+       if (!isManufacturer("Tizen")) {
+               setupWizard.setAppID("com.samsung.krate-setup-wizard");
+       }
+       notification.setAppControl(setupWizard);
+
+       createDefaultPopup();
+       if (popup == nullptr) {
+               throw runtime::Exception("failed to create popup interface");
+       }
+       popup->onDispose = [this]() {
+                               notification.post();
+                               ::ui_app_exit();
+                       };
+       popup->setButton("IDS_TPLATFORM_BUTTON2_CANCEL",
+                       [this](void *event_info) {
+                               popup->dispose();
+                       },
+                       "IDS_TPLATFORM_BUTTON_OK",
+                       [this](void *event_info) {
+                               popup->onDispose = [this]() {
+                                       setupWizard.launch();
+                                       ::ui_app_exit();
+                               };
+                               popup->dispose();
+                       });
+}
+
+void KrateRemovePopup::dispose()
+{
+}
+
+SyspopupManager<KrateRemovePopup> krateRemovePopup("krate-remove");
diff --git a/src/policyd/tools/syspopup/src/popup/krate-remove.h b/src/policyd/tools/syspopup/src/popup/krate-remove.h
new file mode 100644 (file)
index 0000000..a1b487b
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_KRATE_REMOVE_SYSPOPUP_H__
+#define __DPM_KRATE_REMOVE_SYSPOPUP_H__
+
+#include "../interface.h"
+
+class KrateRemovePopup : public SyspopupInterface {
+public:
+       KrateRemovePopup();
+       virtual ~KrateRemovePopup();
+
+       void initialize();
+       void contribute(const std::string &userData);
+       void dispose();
+
+private:
+       AppControl setupWizard;
+       Notification notification;
+};
+
+#endif /* __DPM_KRATE_REMOVE_SYSPOPUP_H__ */
diff --git a/src/policyd/tools/syspopup/src/popup/location.cpp b/src/policyd/tools/syspopup/src/popup/location.cpp
new file mode 100644 (file)
index 0000000..e6554d7
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "location.h"
+
+LocationPopup::LocationPopup()
+       : SyspopupInterface("IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO")
+{
+}
+
+LocationPopup::~LocationPopup()
+{
+}
+
+void LocationPopup::initialize()
+{
+}
+
+void LocationPopup::contribute(const std::string &userData)
+{
+       createToastPopup();
+}
+
+void LocationPopup::dispose()
+{
+}
+
+SyspopupManager<LocationPopup> locationPopup("location");
diff --git a/src/policyd/tools/syspopup/src/popup/location.h b/src/policyd/tools/syspopup/src/popup/location.h
new file mode 100644 (file)
index 0000000..9e962d2
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_LOCATION_SYSPOPUP_H__
+#define __DPM_LOCATION_SYSPOPUP_H__
+
+#include "../interface.h"
+
+class LocationPopup : public SyspopupInterface {
+public:
+       LocationPopup();
+       virtual ~LocationPopup();
+
+       void initialize();
+       void contribute(const std::string &userData);
+       void dispose();
+};
+
+#endif /* __DPM_LOCATION_SYSPOPUP_H__ */
diff --git a/src/policyd/tools/syspopup/src/popup/message-retrieving.cpp b/src/policyd/tools/syspopup/src/popup/message-retrieving.cpp
new file mode 100644 (file)
index 0000000..122d9ac
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "message-retrieving.h"
+
+MessageRetrievingPopup::MessageRetrievingPopup()
+       : SyspopupInterface("IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_RETRIEVING_MESSAGES")
+{
+}
+
+MessageRetrievingPopup::~MessageRetrievingPopup()
+{
+}
+
+void MessageRetrievingPopup::initialize()
+{
+}
+
+void MessageRetrievingPopup::contribute(const std::string &userData)
+{
+       createToastPopup();
+}
+
+void MessageRetrievingPopup::dispose()
+{
+}
+
+SyspopupManager<MessageRetrievingPopup> messageRetrievingPopup("message-retrieving");
diff --git a/src/policyd/tools/syspopup/src/popup/message-retrieving.h b/src/policyd/tools/syspopup/src/popup/message-retrieving.h
new file mode 100644 (file)
index 0000000..503d553
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_MESSAGE_RETRIEVING_SYSPOPUP_H__
+#define __DPM_MESSAGE_RETRIEVING_SYSPOPUP_H__
+
+#include "../interface.h"
+
+class MessageRetrievingPopup : public SyspopupInterface {
+public:
+       MessageRetrievingPopup();
+       virtual ~MessageRetrievingPopup();
+
+       void initialize();
+       void contribute(const std::string &userData);
+       void dispose();
+};
+
+#endif /* __DPM_MESSAGE_RETRIEVING_SYSPOPUP_H__ */
diff --git a/src/policyd/tools/syspopup/src/popup/message-sending.cpp b/src/policyd/tools/syspopup/src/popup/message-sending.cpp
new file mode 100644 (file)
index 0000000..871cd3d
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "message-sending.h"
+
+MessageSendingPopup::MessageSendingPopup()
+       : SyspopupInterface("IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_SENDING_MESSAGES")
+{
+}
+
+MessageSendingPopup::~MessageSendingPopup()
+{
+}
+
+void MessageSendingPopup::initialize()
+{
+}
+
+void MessageSendingPopup::contribute(const std::string &userData)
+{
+       createToastPopup();
+}
+
+void MessageSendingPopup::dispose()
+{
+}
+
+SyspopupManager<MessageSendingPopup> messageSendingPopup("message-sending");
diff --git a/src/policyd/tools/syspopup/src/popup/message-sending.h b/src/policyd/tools/syspopup/src/popup/message-sending.h
new file mode 100644 (file)
index 0000000..5bc7378
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_MESSAGE_SENDING_SYSPOPUP_H__
+#define __DPM_MESSAGE_SENDING_SYSPOPUP_H__
+
+#include "../interface.h"
+
+class MessageSendingPopup : public SyspopupInterface {
+public:
+       MessageSendingPopup();
+       virtual ~MessageSendingPopup();
+
+       void initialize();
+       void contribute(const std::string &userData);
+       void dispose();
+};
+
+#endif /* __DPM_MESSAGE_SENDING_SYSPOPUP_H__ */
diff --git a/src/policyd/tools/syspopup/src/popup/microphone.cpp b/src/policyd/tools/syspopup/src/popup/microphone.cpp
new file mode 100644 (file)
index 0000000..66dedb7
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "microphone.h"
+
+MicrophonePopup::MicrophonePopup()
+       : SyspopupInterface("IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_MIC")
+{
+}
+
+MicrophonePopup::~MicrophonePopup()
+{
+}
+
+void MicrophonePopup::initialize()
+{
+}
+
+void MicrophonePopup::contribute(const std::string &userData)
+{
+       createToastPopup();
+}
+
+void MicrophonePopup::dispose()
+{
+}
+
+SyspopupManager<MicrophonePopup> microphonePopup("microphone");
diff --git a/src/policyd/tools/syspopup/src/popup/microphone.h b/src/policyd/tools/syspopup/src/popup/microphone.h
new file mode 100644 (file)
index 0000000..ddfd776
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_MICROPHONE_SYSPOPUP_H__
+#define __DPM_MICROPHONE_SYSPOPUP_H__
+
+#include "../interface.h"
+
+class MicrophonePopup : public SyspopupInterface {
+public:
+       MicrophonePopup();
+       virtual ~MicrophonePopup();
+
+       void initialize();
+       void contribute(const std::string &userData);
+       void dispose();
+};
+
+#endif /* __DPM_MICROPHONE_SYSPOPUP_H__ */
diff --git a/src/policyd/tools/syspopup/src/popup/nfc.cpp b/src/policyd/tools/syspopup/src/popup/nfc.cpp
new file mode 100644 (file)
index 0000000..3b4d93a
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "nfc.h"
+
+NFCPopup::NFCPopup()
+       : SyspopupInterface(true, "IDS_ST_BODY_NFC")
+{
+}
+
+NFCPopup::~NFCPopup()
+{
+}
+
+void NFCPopup::initialize()
+{
+}
+
+void NFCPopup::contribute(const std::string &userData)
+{
+       createToastPopup();
+}
+
+void NFCPopup::dispose()
+{
+}
+
+SyspopupManager<NFCPopup> nfcPopup("nfc");
diff --git a/src/policyd/tools/syspopup/src/popup/nfc.h b/src/policyd/tools/syspopup/src/popup/nfc.h
new file mode 100644 (file)
index 0000000..cc90490
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_NFC_SYSPOPUP_H__
+#define __DPM_NFC_SYSPOPUP_H__
+
+#include "../interface.h"
+
+class NFCPopup : public SyspopupInterface {
+public:
+       NFCPopup();
+       virtual ~NFCPopup();
+
+       void initialize();
+       void contribute(const std::string &userData);
+       void dispose();
+};
+
+#endif /* __DPM_NFC_SYSPOPUP_H__ */
diff --git a/src/policyd/tools/syspopup/src/popup/package-installation.cpp b/src/policyd/tools/syspopup/src/popup/package-installation.cpp
new file mode 100644 (file)
index 0000000..3525d38
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "package-installation.h"
+
+PackageInstallationPopup::PackageInstallationPopup()
+       : SyspopupInterface("IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_INSTALLATION_OF_APPS")
+{
+}
+
+PackageInstallationPopup::~PackageInstallationPopup()
+{
+}
+
+void PackageInstallationPopup::initialize()
+{
+}
+
+void PackageInstallationPopup::contribute(const std::string &userData)
+{
+       createToastPopup();
+}
+
+void PackageInstallationPopup::dispose()
+{
+}
+
+SyspopupManager<PackageInstallationPopup> packageInstallationPopup("package-installation");
diff --git a/src/policyd/tools/syspopup/src/popup/package-installation.h b/src/policyd/tools/syspopup/src/popup/package-installation.h
new file mode 100644 (file)
index 0000000..c898744
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_PACKAGE_INSTALLATION_SYSPOPUP_H__
+#define __DPM_PACKAGE_INSTALLATION_SYSPOPUP_H__
+
+#include "../interface.h"
+
+class PackageInstallationPopup : public SyspopupInterface {
+public:
+       PackageInstallationPopup();
+       virtual ~PackageInstallationPopup();
+
+       void initialize();
+       void contribute(const std::string &userData);
+       void dispose();
+};
+
+#endif /* __DPM_PACKAGE_INSTALLATION_SYSPOPUP_H__ */
diff --git a/src/policyd/tools/syspopup/src/popup/package-uninstallation.cpp b/src/policyd/tools/syspopup/src/popup/package-uninstallation.cpp
new file mode 100644 (file)
index 0000000..e74bf39
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "package-uninstallation.h"
+
+PackageUninstallationPopup::PackageUninstallationPopup()
+       : SyspopupInterface("IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_UNINSTALLING_APPS")
+{
+}
+
+PackageUninstallationPopup::~PackageUninstallationPopup()
+{
+}
+
+void PackageUninstallationPopup::initialize()
+{
+}
+
+void PackageUninstallationPopup::contribute(const std::string &userData)
+{
+       createToastPopup();
+}
+
+void PackageUninstallationPopup::dispose()
+{
+}
+
+SyspopupManager<PackageUninstallationPopup> packageUninstallationPopup("package-uninstallation");
diff --git a/src/policyd/tools/syspopup/src/popup/package-uninstallation.h b/src/policyd/tools/syspopup/src/popup/package-uninstallation.h
new file mode 100644 (file)
index 0000000..3e0d66d
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_PACKAGE_UNINSTALLATION_SYSPOPUP_H__
+#define __DPM_PACKAGE_UNINSTALLATION_SYSPOPUP_H__
+
+#include "../interface.h"
+
+class PackageUninstallationPopup : public SyspopupInterface {
+public:
+       PackageUninstallationPopup();
+       virtual ~PackageUninstallationPopup();
+
+       void initialize();
+       void contribute(const std::string &userData);
+       void dispose();
+};
+
+#endif /* __DPM_PACKAGE_UNINSTALLATION_SYSPOPUP_H__ */
diff --git a/src/policyd/tools/syspopup/src/popup/password.cpp b/src/policyd/tools/syspopup/src/popup/password.cpp
new file mode 100644 (file)
index 0000000..60eb453
--- /dev/null
@@ -0,0 +1,98 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include <vconf.h>
+#include "password.h"
+
+PasswordPopup::PasswordPopup()
+       : SyspopupInterface("IDS_ST_BODY_PASSWORD", "IDS_IDLE_POP_THE_SECURITY_POLICY_REQUIRES_YOU_TO_CHANGE_YOUR_PASSWORD"),
+         setAppControl("org.tizen.setting-locktype"), verifyAppControl("org.tizen.setting-password")
+{
+}
+
+PasswordPopup::~PasswordPopup()
+{
+}
+
+void PasswordPopup::initialize()
+{
+       setAppControl.setData("caller", "DPM");
+       setAppControl.setData(APP_CONTROL_DATA_SHIFT_WINDOW, "true");
+}
+
+void PasswordPopup::contribute(const std::string &userData)
+{
+       createDefaultPopup();
+       if (popup == nullptr) {
+               throw runtime::Exception("Failed to create popup interface");
+       }
+
+       popup->deleteEcoreHandler(ECORE_EVENT_KEY_DOWN);
+
+       auto replyHandler = [this](AppControl *ug, AppControl *reply, int result) {
+               if (result != APP_CONTROL_RESULT_SUCCEEDED) {
+                       popup->dispose();
+                       return;
+               }
+               std::string resultData = reply->getData("result");
+
+               if (resultData.compare("SETTING_PW_TYPE_ENTER_LOCK_TYPE") == 0
+                                               || resultData.compare("SETTING_PW_TYPE_VERIFY_FP_ALT_PASSWORD") == 0) {
+                       std::string current(reply->getData("current"));
+                       if (!current.empty()) {
+                               setAppControl.setData("current", current);
+                               setAppControl.launch();
+                       }
+               }
+               popup->dispose();
+       };
+
+       auto z3ConfirmEvent = [this, replyHandler](void *event_info) {
+               int lockType = 0;
+               ::vconf_get_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, &lockType);
+
+               if (lockType == SETTING_SCREEN_LOCK_TYPE_PASSWORD
+                               || lockType == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD) {
+                       verifyAppControl.setData("caller", "DPM");
+                       verifyAppControl.setData(APP_CONTROL_DATA_SHIFT_WINDOW, "true");
+                       verifyAppControl.setData("viewtype", "SETTING_PW_TYPE_ENTER_LOCK_TYPE");
+                       verifyAppControl.launch(std::forward<AppControl::ReplyHandler>(replyHandler));
+               } else {
+                       setAppControl.launch();
+                       popup->dispose();
+               }
+       };
+
+       auto z2ConfirmEvent = [this](void *event_info) {
+               AppControl setPassword("com.samsung.setting.locktype");
+               setPassword.setData("caller", "dpm");
+               setPassword.launch();
+       };
+
+       if (isManufacturer("Tizen")) {
+               popup->setButton("IDS_TPLATFORM_BUTTON_OK", std::forward<Widget::SmartHandler>(z3ConfirmEvent));
+       } else {
+               popup->setButton("IDS_TPLATFORM_BUTTON_OK", std::forward<Widget::SmartHandler>(z2ConfirmEvent));
+       }
+}
+
+void PasswordPopup::dispose()
+{
+}
+
+SyspopupManager<PasswordPopup> passwordPopup("password-enforce-change");
diff --git a/src/policyd/tools/syspopup/src/popup/password.h b/src/policyd/tools/syspopup/src/popup/password.h
new file mode 100644 (file)
index 0000000..e9d77b8
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_PASSWORD_SYSPOPUP_H__
+#define __DPM_PASSWORD_SYSPOPUP_H__
+
+#include "../interface.h"
+
+class PasswordPopup : public SyspopupInterface {
+public:
+       PasswordPopup();
+       virtual ~PasswordPopup();
+
+       void initialize();
+       void contribute(const std::string &userData);
+       void dispose();
+
+private:
+       AppControl setAppControl;
+       AppControl verifyAppControl;
+};
+
+#endif /* __DPM_PASSWORD_SYSPOPUP_H__ */
diff --git a/src/policyd/tools/syspopup/src/popup/popimap-email.cpp b/src/policyd/tools/syspopup/src/popup/popimap-email.cpp
new file mode 100644 (file)
index 0000000..fcfb972
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "popimap-email.h"
+
+PopimapEmailPopup::PopimapEmailPopup()
+       : SyspopupInterface("IDS_EMAIL_POP_SECURITY_POLICY_RESTRICTS_USE_OF_POP_IMAP_EMAIL")
+{
+}
+
+PopimapEmailPopup::~PopimapEmailPopup()
+{
+}
+
+void PopimapEmailPopup::initialize()
+{
+}
+
+void PopimapEmailPopup::contribute(const std::string &userData)
+{
+       createToastPopup();
+}
+
+void PopimapEmailPopup::dispose()
+{
+}
+
+SyspopupManager<PopimapEmailPopup> popimapEmailPopup("popimap-email");
diff --git a/src/policyd/tools/syspopup/src/popup/popimap-email.h b/src/policyd/tools/syspopup/src/popup/popimap-email.h
new file mode 100644 (file)
index 0000000..2d135de
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_POPIMAP_EMAIL_SYSPOPUP_H__
+#define __DPM_POPIMAP_EMAIL_SYSPOPUP_H__
+
+#include "../interface.h"
+
+class PopimapEmailPopup : public SyspopupInterface {
+public:
+       PopimapEmailPopup();
+       virtual ~PopimapEmailPopup();
+
+       void initialize();
+       void contribute(const std::string &userData);
+       void dispose();
+};
+
+#endif /* __DPM_POPIMAP_EMAIL_SYSPOPUP_H__ */
diff --git a/src/policyd/tools/syspopup/src/popup/screen-capture.cpp b/src/policyd/tools/syspopup/src/popup/screen-capture.cpp
new file mode 100644 (file)
index 0000000..7ec3d7d
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "screen-capture.h"
+
+ScreenCapturePopup::ScreenCapturePopup()
+       : SyspopupInterface(true, "IDS_MF_BODY_SCREEN_CAPTURE_M_NOUN")
+{
+}
+
+ScreenCapturePopup::~ScreenCapturePopup()
+{
+}
+
+void ScreenCapturePopup::initialize()
+{
+}
+
+void ScreenCapturePopup::contribute(const std::string &userData)
+{
+       createToastPopup();
+}
+
+void ScreenCapturePopup::dispose()
+{
+}
+
+SyspopupManager<ScreenCapturePopup> screenCapturePopup("screen-capture");
diff --git a/src/policyd/tools/syspopup/src/popup/screen-capture.h b/src/policyd/tools/syspopup/src/popup/screen-capture.h
new file mode 100644 (file)
index 0000000..027ba2c
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_SCREEN_CAPTURE_SYSPOPUP_H__
+#define __DPM_SCREEN_CAPTURE_SYSPOPUP_H__
+
+#include "../interface.h"
+
+class ScreenCapturePopup : public SyspopupInterface {
+public:
+       ScreenCapturePopup();
+       virtual ~ScreenCapturePopup();
+
+       void initialize();
+       void contribute(const std::string &userData);
+       void dispose();
+};
+
+#endif /* __DPM_SCREEN_CAPTURE_SYSPOPUP_H__ */
diff --git a/src/policyd/tools/syspopup/src/popup/settings-changes.cpp b/src/policyd/tools/syspopup/src/popup/settings-changes.cpp
new file mode 100644 (file)
index 0000000..fa77c63
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "settings-changes.h"
+
+SettingsChangesPopup::SettingsChangesPopup()
+       : SyspopupInterface("IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_LOCATION_INFO")
+{
+}
+
+SettingsChangesPopup::~SettingsChangesPopup()
+{
+}
+
+void SettingsChangesPopup::initialize()
+{
+}
+
+void SettingsChangesPopup::contribute(const std::string &userData)
+{
+       createToastPopup();
+}
+
+void SettingsChangesPopup::dispose()
+{
+}
+
+SyspopupManager<SettingsChangesPopup> settingsChangesPopup("settings-changes");
diff --git a/src/policyd/tools/syspopup/src/popup/settings-changes.h b/src/policyd/tools/syspopup/src/popup/settings-changes.h
new file mode 100644 (file)
index 0000000..d1fe383
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_SETTINGS_CHANGES_SYSPOPUP_H__
+#define __DPM_SETTINGS_CHANGES_SYSPOPUP_H__
+
+#include "../interface.h"
+
+class SettingsChangesPopup : public SyspopupInterface {
+public:
+       SettingsChangesPopup();
+       virtual ~SettingsChangesPopup();
+
+       void initialize();
+       void contribute(const std::string &userData);
+       void dispose();
+};
+
+#endif /* __DPM_SETTINGS_CHANGES_SYSPOPUP_H__ */
diff --git a/src/policyd/tools/syspopup/src/popup/usb-client.cpp b/src/policyd/tools/syspopup/src/popup/usb-client.cpp
new file mode 100644 (file)
index 0000000..839022d
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "usb-client.h"
+
+USBClientPopup::USBClientPopup()
+       : SyspopupInterface("IDS_USB_POP_SECURITY_POLICY_RESTRICTS_USE_OF_THE_PC_CONNECTION")
+{
+}
+
+USBClientPopup::~USBClientPopup()
+{
+}
+
+void USBClientPopup::initialize()
+{
+}
+
+void USBClientPopup::contribute(const std::string &userData)
+{
+       createToastPopup();
+}
+
+void USBClientPopup::dispose()
+{
+}
+
+SyspopupManager<USBClientPopup> usbClientPopup("usb-client");
diff --git a/src/policyd/tools/syspopup/src/popup/usb-client.h b/src/policyd/tools/syspopup/src/popup/usb-client.h
new file mode 100644 (file)
index 0000000..23c895b
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_USB_CLIENT_SYSPOPUP_H__
+#define __DPM_USB_CLIENT_SYSPOPUP_H__
+
+#include "../interface.h"
+
+class USBClientPopup : public SyspopupInterface {
+public:
+       USBClientPopup();
+       virtual ~USBClientPopup();
+
+       void initialize();
+       void contribute(const std::string &userData);
+       void dispose();
+};
+
+#endif /* __DPM_USB_CLIENT_SYSPOPUP_H__ */
diff --git a/src/policyd/tools/syspopup/src/popup/wifi-hotspot.cpp b/src/policyd/tools/syspopup/src/popup/wifi-hotspot.cpp
new file mode 100644 (file)
index 0000000..2458706
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "wifi-hotspot.h"
+
+WiFiHotSpotPopup::WiFiHotSpotPopup()
+       : SyspopupInterface(true, "IDS_MOBILEAP_MBODY_HOTSPOT_SPRINT")
+{
+}
+
+WiFiHotSpotPopup::~WiFiHotSpotPopup()
+{
+}
+
+void WiFiHotSpotPopup::initialize()
+{
+}
+
+void WiFiHotSpotPopup::contribute(const std::string &userData)
+{
+       createToastPopup();
+}
+
+void WiFiHotSpotPopup::dispose()
+{
+}
+
+SyspopupManager<WiFiHotSpotPopup> wifiHotspotPopup("wifi-hotspot");
diff --git a/src/policyd/tools/syspopup/src/popup/wifi-hotspot.h b/src/policyd/tools/syspopup/src/popup/wifi-hotspot.h
new file mode 100644 (file)
index 0000000..3ac3a2d
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_WIFI_HOTSPOT_SYSPOPUP_H__
+#define __DPM_WIFI_HOTSPOT_SYSPOPUP_H__
+
+#include "../interface.h"
+
+class WiFiHotSpotPopup : public SyspopupInterface {
+public:
+       WiFiHotSpotPopup();
+       virtual ~WiFiHotSpotPopup();
+
+       void initialize();
+       void contribute(const std::string &userData);
+       void dispose();
+};
+
+#endif /* __DPM_WIFI_HOTSPOT_SYSPOPUP_H__ */
diff --git a/src/policyd/tools/syspopup/src/popup/wifi.cpp b/src/policyd/tools/syspopup/src/popup/wifi.cpp
new file mode 100644 (file)
index 0000000..65fd4e9
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "wifi.h"
+
+WiFiPopup::WiFiPopup()
+       : SyspopupInterface("IDS_IDLE_TPOP_SECURITY_POLICY_PREVENTS_USE_OF_WI_FI")
+{
+}
+
+WiFiPopup::~WiFiPopup()
+{
+}
+
+void WiFiPopup::initialize()
+{
+}
+
+void WiFiPopup::contribute(const std::string &userData)
+{
+       createToastPopup();
+}
+
+void WiFiPopup::dispose()
+{
+}
+
+SyspopupManager<WiFiPopup> wifiPopup("wifi");
diff --git a/src/policyd/tools/syspopup/src/popup/wifi.h b/src/policyd/tools/syspopup/src/popup/wifi.h
new file mode 100644 (file)
index 0000000..97ff99a
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_WIFI_SYSPOPUP_H__
+#define __DPM_WIFI_SYSPOPUP_H__
+
+#include "../interface.h"
+
+class WiFiPopup : public SyspopupInterface {
+public:
+       WiFiPopup();
+       virtual ~WiFiPopup();
+
+       void initialize();
+       void contribute(const std::string &userData);
+       void dispose();
+};
+
+#endif /* __DPM_WIFI_SYSPOPUP_H__ */
diff --git a/src/policyd/tools/syspopup/src/syspopup.h b/src/policyd/tools/syspopup/src/syspopup.h
new file mode 100644 (file)
index 0000000..7a85cbe
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_SYSPOPUP_H__
+#define __DPM_SYSPOPUP_H__
+
+#include "application.h"
+#include "interface.h"
+
+#ifdef  LOG_TAG
+#undef  LOG_TAG
+#endif
+#define LOG_TAG "org.tizen.dpm-syspopup"
+
+class DPMSyspopup : public Application {
+public:
+       DPMSyspopup();
+       ~DPMSyspopup();
+
+       void onAppControl();
+       void onTerminate();
+
+private:
+       std::string id;
+       std::string userData;
+};
+
+#endif
diff --git a/src/policyd/tools/syspopup/src/ui/appcontrol.cpp b/src/policyd/tools/syspopup/src/ui/appcontrol.cpp
new file mode 100644 (file)
index 0000000..91eb4e1
--- /dev/null
@@ -0,0 +1,90 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "appcontrol.h"
+
+AppControl::AppControl(app_control_h handle)
+       : appControl(nullptr)
+{
+       if (handle != nullptr) {
+               ::app_control_clone(&appControl, handle);
+       }
+       replyEventHandler = [](AppControl *, AppControl *, int) {
+       };
+}
+
+AppControl::AppControl(const std::string &id)
+       : appControl(nullptr)
+{
+       ::app_control_create(&appControl);
+       setAppID(id);
+}
+
+AppControl::~AppControl()
+{
+       if (appControl != nullptr)
+               ::app_control_destroy(appControl);
+}
+
+AppControl::operator app_control_h()
+{
+       return appControl;
+}
+
+void AppControl::setAppID(const std::string &id)
+{
+       ::app_control_set_app_id(appControl, id.c_str());
+}
+
+void AppControl::setData(const std::string &key, const std::string &data)
+{
+       ::app_control_add_extra_data(appControl, key.c_str(), data.c_str());
+}
+
+std::string AppControl::getData(const std::string &key)
+{
+       std::string data("");
+       char *appData = nullptr;
+
+       ::app_control_get_extra_data(appControl, key.c_str(), &appData);
+       if (appData) {
+               data = appData;
+               ::free(appData);
+       }
+       return data;
+}
+
+void AppControl::launch(void)
+{
+       ::app_control_send_launch_request(appControl, nullptr, nullptr);
+}
+
+void AppControl::launch(ReplyHandler &&handler)
+{
+       replyEventHandler = std::move(handler);
+       ::app_control_send_launch_request(appControl, replyEventHandlerDispatcher, reinterpret_cast<void *>(this));
+}
+
+void AppControl::replyEventHandlerDispatcher(app_control_h ug, app_control_h reply, app_control_result_e result, void *data)
+{
+       AppControl *appControl = reinterpret_cast<AppControl *>(data);
+       AppControl ugControl(ug);
+       AppControl replyControl(reply);
+
+       appControl->replyEventHandler(&ugControl, &replyControl, result);
+}
diff --git a/src/policyd/tools/syspopup/src/ui/appcontrol.h b/src/policyd/tools/syspopup/src/ui/appcontrol.h
new file mode 100644 (file)
index 0000000..c67b8e0
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_SYSPOPUP_APPCONTROL_H__
+#define __DPM_SYSPOPUP_APPCONTROL_H__
+
+#include <functional>
+#include <app_control_internal.h>
+
+class AppControl {
+public:
+       typedef std::function<void(AppControl *, AppControl *, int)> ReplyHandler;
+       AppControl(app_control_h handle);
+       AppControl(const std::string &id);
+       ~AppControl();
+
+       operator app_control_h();
+
+       void setAppID(const std::string &id);
+       void setData(const std::string &key, const std::string &data);
+       std::string getData(const std::string &key);
+
+       void launch();
+       void launch(ReplyHandler &&handler);
+       static void replyEventHandlerDispatcher(app_control_h ug, app_control_h reply, app_control_result_e result, void *data);
+public:
+       ReplyHandler replyEventHandler;
+private:
+       app_control_h appControl;
+};
+
+#endif
diff --git a/src/policyd/tools/syspopup/src/ui/button.cpp b/src/policyd/tools/syspopup/src/ui/button.cpp
new file mode 100644 (file)
index 0000000..46ece82
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "button.h"
+
+Button::Button(Widget *parent)
+       : Widget("Button", ::elm_button_add(evasObject(parent)))
+{
+       onClick = [](void *event_info) {
+       };
+
+       addSmartHandler("clicked", [this](void *event_info) {
+               this->onClick(event_info);
+       });
+}
+
+Button::~Button()
+{
+}
diff --git a/src/policyd/tools/syspopup/src/ui/button.h b/src/policyd/tools/syspopup/src/ui/button.h
new file mode 100644 (file)
index 0000000..9275d80
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_SYSPOPUP_BUTTON_H__
+#define __DPM_SYSPOPUP_BUTTON_H__
+
+#include <functional>
+#include "widget.h"
+
+class Button : public Widget {
+public:
+       Button(Widget *parent);
+       ~Button();
+
+       std::function<void(void*)> onClick;
+};
+
+#endif
diff --git a/src/policyd/tools/syspopup/src/ui/image.cpp b/src/policyd/tools/syspopup/src/ui/image.cpp
new file mode 100644 (file)
index 0000000..0878595
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "image.h"
+
+Image::Image(Widget *parent)
+       : Widget("Image", ::elm_image_add(evasObject(parent)))
+{
+       evas_object_size_hint_weight_set(evasObject(this), EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+}
+
+Image::~Image()
+{
+}
+
+void Image::setFile(const std::string &path)
+{
+       ::elm_image_file_set(evasObject(this), path.c_str(), NULL);
+}
diff --git a/src/policyd/tools/syspopup/src/ui/image.h b/src/policyd/tools/syspopup/src/ui/image.h
new file mode 100644 (file)
index 0000000..0423e0c
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_SYSPOPUP_IMAGE_H__
+#define __DPM_SYSPOPUP_IMAGE_H__
+
+#include "widget.h"
+
+class Image : public Widget {
+public:
+       Image(Widget *parent);
+       ~Image();
+
+       void setFile(const std::string &path);
+};
+
+#endif
diff --git a/src/policyd/tools/syspopup/src/ui/layout.cpp b/src/policyd/tools/syspopup/src/ui/layout.cpp
new file mode 100644 (file)
index 0000000..f51db66
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "layout.h"
+
+Layout::Layout(Widget *parent)
+       : Widget("Layout", ::elm_layout_add(evasObject(parent)))
+{
+}
+
+Layout::~Layout()
+{
+}
+
+void Layout::setTheme(const std::string &clas, const std::string &group, const std::string &style)
+{
+       ::elm_layout_theme_set(evasObject(this), clas.c_str(), group.c_str(), style.c_str());
+}
diff --git a/src/policyd/tools/syspopup/src/ui/layout.h b/src/policyd/tools/syspopup/src/ui/layout.h
new file mode 100644 (file)
index 0000000..048acd8
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_SYSPOPUP_LAYOUT_H__
+#define __DPM_SYSPOPUP_LAYOUT_H__
+
+#include "widget.h"
+
+class Layout : public Widget {
+public:
+       Layout(Widget *parent);
+       ~Layout();
+
+       void setTheme(const std::string &clas, const std::string &group, const std::string &style);
+};
+
+#endif
diff --git a/src/policyd/tools/syspopup/src/ui/notification.cpp b/src/policyd/tools/syspopup/src/ui/notification.cpp
new file mode 100644 (file)
index 0000000..db0a2e1
--- /dev/null
@@ -0,0 +1,92 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "notification.h"
+
+Notification::Notification()
+{
+       notification = ::notification_create(NOTIFICATION_TYPE_NOTI);
+}
+
+Notification::~Notification()
+{
+       if (notification)
+               ::notification_free(notification);
+}
+
+void Notification::setTitle(const std::string &title)
+{
+       int ret;
+
+       ret = ::notification_set_text(notification, NOTIFICATION_TEXT_TYPE_TITLE,
+                               dgettext("dpm-syspopup", title.c_str()), NULL,
+                               NOTIFICATION_VARIABLE_TYPE_NONE);
+
+       if (ret != NOTIFICATION_ERROR_NONE)
+               throw runtime::Exception("Failed to set title to noti");
+}
+
+void Notification::setContent(const std::string &content)
+{
+       int ret;
+
+       ret = ::notification_set_text(notification, NOTIFICATION_TEXT_TYPE_CONTENT,
+                               dgettext("dpm-syspopup", content.c_str()), NULL,
+                               NOTIFICATION_VARIABLE_TYPE_NONE);
+
+       if (ret != NOTIFICATION_ERROR_NONE)
+               throw runtime::Exception("Failed to set content to noti");
+}
+
+void Notification::setImage(const std::string &path)
+{
+       int ret;
+
+       ret = ::notification_set_image(notification, NOTIFICATION_IMAGE_TYPE_THUMBNAIL,
+                                                                       path.c_str());
+
+       if (ret != NOTIFICATION_ERROR_NONE)
+               throw runtime::Exception("Failed to set image to noti");
+}
+
+
+void Notification::setAppControl(AppControl &appControl)
+{
+       int ret;
+
+       ret = ::notification_set_launch_option(notification,
+                                               NOTIFICATION_LAUNCH_OPTION_APP_CONTROL, appControl);
+
+       if (ret != NOTIFICATION_ERROR_NONE)
+               throw runtime::Exception("Failed to set launch option to noti");
+}
+
+void Notification::post()
+{
+       int ret;
+
+       ret = ::notification_post(notification);
+
+       if (ret != NOTIFICATION_ERROR_NONE)
+               throw runtime::Exception("Failed to post the noti");
+}
+
+void Notification::dispose()
+{
+       ::notification_delete(notification);
+}
diff --git a/src/policyd/tools/syspopup/src/ui/notification.h b/src/policyd/tools/syspopup/src/ui/notification.h
new file mode 100644 (file)
index 0000000..c63d689
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_SYSPOPUP_NOTIFICATION_H__
+#define __DPM_SYSPOPUP_NOTIFICATION_H__
+
+#include <notification.h>
+#include "widget.h"
+#include "appcontrol.h"
+
+class Notification {
+public:
+       Notification();
+       ~Notification();
+
+       void setTitle(const std::string &title);
+       void setContent(const std::string &content);
+       void setImage(const std::string &path);
+       void setAppControl(AppControl &appcontrol);
+       void post();
+       void dispose();
+private:
+       notification_h notification;
+};
+
+#endif
diff --git a/src/policyd/tools/syspopup/src/ui/popup.cpp b/src/policyd/tools/syspopup/src/ui/popup.cpp
new file mode 100644 (file)
index 0000000..47ee925
--- /dev/null
@@ -0,0 +1,198 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "popup.h"
+
+Popup::Popup(Widget *parent)
+       : Widget("Popup", ::elm_popup_add(evasObject(parent))), leftButton(this), rightButton(this)
+{
+       onDispose = [this]() {
+               ::ui_app_exit();
+       };
+
+       addEcoreHandler(ECORE_EVENT_KEY_DOWN,
+                       [this](void *event) {
+                               Evas_Event_Key_Down *ev = (Evas_Event_Key_Down *)event;
+                               if (!strcmp(ev->keyname, "XF86Home")
+                                               || !strcmp(ev->keyname, "XF86Back")) {
+                                       this->dispose();
+                               }
+                               return EINA_TRUE;
+                       });
+}
+
+Popup::~Popup()
+{
+}
+
+void Popup::setTimeOut(double time)
+{
+       ::elm_popup_timeout_set(evasObject(this), time);
+       addSmartHandler("timeout", [this](void *event_info) {
+               this->dispose();
+       });
+}
+
+void Popup::setAlign(double align)
+{
+       ::elm_popup_align_set(evasObject(this), ELM_NOTIFY_ALIGN_FILL, align);
+}
+
+void Popup::setTitleText(const std::string &text)
+{
+       setText("title,text", text.c_str());
+       ::elm_object_item_part_text_translatable_set(evasObject(this), "title,text", EINA_TRUE);
+}
+
+void Popup::setContentText(const std::string &text)
+{
+       setText(text);
+}
+
+void Popup::setPrefixContentText(const std::string &text)
+{
+       char *prefix = NULL;
+       char *contentText = NULL;
+       char prefixText[PATH_MAX] = "";
+
+       prefix = dgettext("dpm-syspopup", "IDS_IDLE_TPOP_SECURITY_POLICY_RESTRICTS_USE_OF_PS");
+       contentText = dgettext("dpm-syspopup", text.c_str());
+
+       ::snprintf(prefixText, PATH_MAX, prefix, contentText);
+
+       setText(prefixText);
+}
+
+void Popup::setButton(const std::string &text, SmartHandler &&handler)
+{
+       leftButton.setText(text);
+       leftButton.onClick = std::move(handler);
+       setContent("button1", &leftButton);
+}
+
+void Popup::setButton(const std::string &leftText, SmartHandler &&leftHandler, const std::string &rightText, SmartHandler &&rightHandler)
+{
+       leftButton.setText(leftText);
+       leftButton.onClick = std::move(leftHandler);
+       setContent("button1", &leftButton);
+
+       rightButton.setText(rightText);
+       rightButton.onClick = std::move(rightHandler);
+       setContent("button2", &rightButton);
+}
+
+MobileToastPopup::MobileToastPopup(Widget *parent)
+       : Popup(parent)
+{
+       setStyle("toast");
+       setTimeOut(3.0);
+}
+
+MobileToastPopup::~MobileToastPopup()
+{
+}
+
+WearableToastPopup::WearableToastPopup(Widget *parent)
+       : Popup(parent)
+{
+       setStyle("toast/circle");
+       setTimeOut(3.0);
+}
+
+WearableToastPopup::~WearableToastPopup()
+{
+}
+
+void WearableToastPopup::setContentText(const std::string &text)
+{
+       setText("elm.text", text);
+}
+
+MobileDefaultPopup::MobileDefaultPopup(Widget *parent)
+       : Popup(parent)
+{
+       setStyle("default");
+       setAlign(1.0);
+}
+
+MobileDefaultPopup::~MobileDefaultPopup()
+{
+}
+
+void MobileDefaultPopup::setButton(const std::string &text, SmartHandler &&handler)
+{
+       Popup::setButton(text, std::forward<SmartHandler>(handler));
+       leftButton.setStyle("popup");
+}
+
+void MobileDefaultPopup::setButton(const std::string &leftText, SmartHandler &&leftHandler, const std::string &rightText, SmartHandler &&rightHandler)
+{
+       Popup::setButton(leftText, std::forward<SmartHandler>(leftHandler), rightText, std::forward<SmartHandler>(rightHandler));
+       leftButton.setStyle("popup");
+       rightButton.setStyle("popup");
+}
+
+WearableDefaultPopup::WearableDefaultPopup(Widget *parent)
+       : Popup(parent), layout(this), leftButtonImage(&leftButton), rightButtonImage(&rightButton)
+{
+       setStyle("circle");
+       setAlign(1.0);
+       setContent(&layout);
+}
+
+WearableDefaultPopup::~WearableDefaultPopup()
+{
+}
+
+void WearableDefaultPopup::setTitleText(const std::string &text)
+{
+       layout.setText("elm.text.title", text.c_str());
+}
+
+void WearableDefaultPopup::setContentText(const std::string &text)
+{
+       layout.setText("elm.text", text.c_str());
+}
+
+void WearableDefaultPopup::setButton(const std::string &text, SmartHandler &&handler)
+{
+       layout.setTheme("layout", "popup", "content/circle/buttons1");
+
+       leftButton.setStyle("bottom");
+       leftButton.onClick = std::move(handler);
+
+       leftButtonImage.setFile("/usr/apps/org.tizen.dpm-syspopup/res/images/tw_ic_popup_btn_delete.png");
+       leftButton.setContent(&leftButtonImage);
+}
+
+void WearableDefaultPopup::setButton(const std::string &leftText, SmartHandler &&leftHandler, const std::string &rightText, SmartHandler &&rightHandler)
+{
+       layout.setTheme("layout", "popup", "content/circle/buttons2");
+
+       leftButton.setStyle("popup/circle/left");
+       leftButton.onClick = std::move(leftHandler);
+
+       leftButtonImage.setFile("/usr/apps/org.tizen.dpm-syspopup/res/images/tw_ic_popup_btn_delete.png");
+       leftButton.setContent(&leftButtonImage);
+
+       rightButton.setStyle("popup/circle/right");
+       rightButton.onClick = std::move(rightHandler);
+
+       rightButtonImage.setFile("/usr/apps/org.tizen.dpm-syspopup/res/images/tw_ic_popup_btn_check.png");
+       rightButton.setContent(&rightButtonImage);
+}
diff --git a/src/policyd/tools/syspopup/src/ui/popup.h b/src/policyd/tools/syspopup/src/ui/popup.h
new file mode 100644 (file)
index 0000000..c7582fe
--- /dev/null
@@ -0,0 +1,94 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_SYSPOPUP_POPUP_H__
+#define __DPM_SYSPOPUP_POPUP_H__
+
+#include <memory>
+
+#include "widget.h"
+#include "button.h"
+#include "layout.h"
+#include "image.h"
+
+struct PopupInfo {
+       int type;
+       std::string title;
+       std::string content;
+};
+
+class Popup : public Widget {
+public:
+       Popup(Widget *parent);
+       virtual ~Popup();
+
+       void setTimeOut(double time);
+       void setAlign(double align);
+
+       virtual void setTitleText(const std::string &text);
+       virtual void setContentText(const std::string &text);
+       virtual void setPrefixContentText(const std::string &text);
+       virtual void setButton(const std::string &text, SmartHandler &&handler);
+       virtual void setButton(const std::string &leftText, SmartHandler &&leftHandler, const std::string &rightText, SmartHandler &&rightHandler);
+
+       std::function<void()> onDelete;
+protected:
+       Button leftButton;
+       Button rightButton;
+};
+
+class MobileToastPopup : public Popup {
+public:
+       MobileToastPopup(Widget *parent);
+       ~MobileToastPopup();
+};
+
+class WearableToastPopup : public Popup {
+public:
+       WearableToastPopup(Widget *parent);
+       ~WearableToastPopup();
+
+       void setContentText(const std::string &text);
+};
+
+class MobileDefaultPopup : public Popup {
+public:
+       MobileDefaultPopup(Widget *parent);
+       ~MobileDefaultPopup();
+
+       void setButton(const std::string &text, SmartHandler &&handler);
+       void setButton(const std::string &leftText, SmartHandler &&leftHandler, const std::string &rightText, SmartHandler &&rightHandler);
+};
+
+class WearableDefaultPopup : public Popup {
+public:
+       WearableDefaultPopup(Widget *parent);
+       ~WearableDefaultPopup();
+
+       void setTitleText(const std::string &text);
+       void setContentText(const std::string &text);
+       void setButton(const std::string &text, SmartHandler &&handler);
+       void setButton(const std::string &leftText, SmartHandler &&leftHandler, const std::string &rightText, SmartHandler &&rightHandler);
+
+       Layout layout;
+
+       Image leftButtonImage;
+       Image rightButtonImage;
+};
+
+#endif /* __DPM_SYSPOPUP_POPUP_H__ */
diff --git a/src/policyd/tools/syspopup/src/ui/widget.cpp b/src/policyd/tools/syspopup/src/ui/widget.cpp
new file mode 100644 (file)
index 0000000..b9948b7
--- /dev/null
@@ -0,0 +1,148 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+#include "widget.h"
+
+Widget::Widget(const std::string &t, Evas_Object *obj)
+       : object(obj), tag(t), disposed(false)
+{
+       onShow = [this]() {
+       };
+       onHide = [this]() {
+       };
+       onDispose = [this]() {
+       };
+
+       addEventHandler(EVAS_CALLBACK_SHOW, [this](void *event_info) {
+               this->onShow();
+       });
+       addEventHandler(EVAS_CALLBACK_HIDE, [this](void *event_info) {
+               this->onHide();
+       });
+       addEventHandler(EVAS_CALLBACK_DEL, [this](void *event_info) {
+               this->onDispose();
+       });
+
+       ::evas_object_size_hint_weight_set(object, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+}
+
+Widget::~Widget()
+{
+       if (!disposed)
+               dispose();
+
+       eventList.clear();
+       smartList.clear();
+       ecoreList.clear();
+}
+
+void Widget::setText(const std::string &text)
+{
+       ::elm_object_text_set(object, dgettext("dpm-syspopup", text.c_str()));
+}
+
+void Widget::setText(const std::string &part, const std::string &text)
+{
+       ::elm_object_part_text_set(object, part.c_str(), dgettext("dpm-syspopup", text.c_str()));
+}
+
+void Widget::setStyle(const std::string &style)
+{
+       ::elm_object_style_set(object, style.c_str());
+}
+
+void Widget::setContent(Widget *content)
+{
+       ::elm_object_content_set(object, evasObject(content));
+}
+
+void Widget::setContent(const std::string &part, Widget *content)
+{
+       ::elm_object_part_content_set(object, part.c_str(), evasObject(content));
+}
+
+void Widget::show(void)
+{
+       ::evas_object_show(object);
+}
+
+void Widget::hide(void)
+{
+       ::evas_object_hide(object);
+}
+
+void Widget::dispose(void)
+{
+       if (disposed)
+               return;
+
+       disposed = true;
+       ::evas_object_del(object);
+}
+
+Evas_Object *Widget::evasObject(Widget *widget)
+{
+       return widget ? widget->object : nullptr;
+}
+
+void Widget::smartHandlerDispatcher(void *data, Evas_Object *obj, void *event_info)
+{
+       SmartHandler *handler = reinterpret_cast<SmartHandler *>(data);
+       (*handler)(event_info);
+}
+
+void Widget::eventHandlerDispatcher(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+       EventHandler *handler = reinterpret_cast<EventHandler *>(data);
+       (*handler)(event_info);
+}
+
+Eina_Bool Widget::ecoreHandlerDispatcher(void *data, int type, void *event)
+{
+       bool ret = EINA_FALSE;
+       EcoreHandler *handler = reinterpret_cast<EcoreHandler *>(data);
+       ret = (*handler)(event);
+       return ret;
+}
+
+void Widget::addEventHandler(Evas_Callback_Type type, EventHandler &&handler)
+{
+       eventList[type] = std::move(handler);
+       ::evas_object_event_callback_add(object, type, eventHandlerDispatcher, reinterpret_cast<void *>(&eventList[type]));
+}
+
+void Widget::addSmartHandler(const std::string &event, SmartHandler &&handler)
+{
+       smartList[event] = std::move(handler);
+       ::evas_object_smart_callback_add(object, event.c_str(), smartHandlerDispatcher, reinterpret_cast<void *>(&smartList[event]));
+}
+
+void Widget::addEcoreHandler(int type, EcoreHandler &&handler)
+{
+       ecoreList[type].handler = std::move(handler);
+       ecoreList[type].ecoreHandler = ::ecore_event_handler_add(type, ecoreHandlerDispatcher, reinterpret_cast<void *>(&ecoreList[type].handler));
+}
+
+void Widget::deleteEcoreHandler(int type)
+{
+       if (ecoreList.find(type) != ecoreList.end() && ecoreList[type].ecoreHandler != nullptr) {
+               ::ecore_event_handler_del(ecoreList[type].ecoreHandler);
+       }
+       ecoreList[type].ecoreHandler = nullptr;
+       ecoreList.erase(type);
+}
+
diff --git a/src/policyd/tools/syspopup/src/ui/widget.h b/src/policyd/tools/syspopup/src/ui/widget.h
new file mode 100644 (file)
index 0000000..2960ee9
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_SYSPOPUP_WIDGET_H__
+#define __DPM_SYSPOPUP_WIDGET_H__
+
+#include <functional>
+#include <unordered_map>
+
+#include <app.h>
+#include <app_common.h>
+#include <bundle.h>
+#include <system_settings.h>
+#include <Elementary.h>
+#include <efl_util.h>
+#include <klay/exception.h>
+
+class Widget {
+public:
+       typedef std::function<void(void *event)> EventHandler;
+       typedef std::function<void(void *event)> SmartHandler;
+       typedef std::function<Eina_Bool(void *event)> EcoreHandler;
+
+       virtual ~Widget();
+
+       void setText(const std::string &text);
+       void setText(const std::string &part, const std::string &text);
+       void setStyle(const std::string &style);
+       void setContent(Widget *content);
+       void setContent(const std::string &part, Widget *content);
+       void show();
+       void hide();
+       void dispose();
+
+       void addEventHandler(Evas_Callback_Type type, EventHandler &&handler);
+       void addSmartHandler(const std::string &event, SmartHandler &&handler);
+       void addEcoreHandler(int type, EcoreHandler &&handler);
+       void deleteEcoreHandler(int type);
+
+       static void smartHandlerDispatcher(void *data, Evas_Object *obj, void *event_info);
+       static void eventHandlerDispatcher(void *data, Evas *evas, Evas_Object *obj, void *event_info);
+       static Eina_Bool ecoreHandlerDispatcher(void *data, int type, void *event);
+
+       std::function<void()> onShow;
+       std::function<void()> onHide;
+       std::function<void()> onDispose;
+
+protected:
+       Widget(const std::string &t, Evas_Object *obj);
+       virtual Evas_Object *evasObject(Widget *widget);
+
+protected:
+       std::unordered_map<int, EventHandler> eventList;
+       std::unordered_map<std::string, SmartHandler> smartList;
+
+       struct EcoreInfo {
+               EcoreInfo() : ecoreHandler(nullptr) {
+               }
+               EcoreHandler handler;
+               Ecore_Event_Handler *ecoreHandler;
+       };
+       std::unordered_map<int, EcoreInfo> ecoreList;
+private:
+       Evas_Object *object;
+       std::string tag;
+       bool disposed;
+};
+
+#endif /* __WIDGET_H__ */
diff --git a/src/policyd/tools/syspopup/src/ui/window.cpp b/src/policyd/tools/syspopup/src/ui/window.cpp
new file mode 100644 (file)
index 0000000..608a2ac
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ *
+ * Copyright (c) 2017 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.
+ *
+ */
+
+#include "window.h"
+
+Window::Window(const std::string &packageName)
+       : Widget("Window", ::elm_win_add(NULL, packageName.c_str(), ELM_WIN_NOTIFICATION))
+{
+       ::elm_win_title_set(evasObject(this), packageName.c_str());
+       setRotate();
+       setConfig();
+       show();
+}
+
+Window::~Window()
+{
+}
+
+void Window::setRotate()
+{
+       int rots[] = {0, 90, 180, 270};
+
+       if (::elm_win_wm_rotation_supported_get(evasObject(this)))
+               ::elm_win_wm_rotation_available_rotations_set(evasObject(this), rots, 4);
+}
+
+void Window::setConfig()
+{
+       ::efl_util_set_notification_window_level(evasObject(this), EFL_UTIL_NOTIFICATION_LEVEL_DEFAULT);
+       ::elm_win_borderless_set(evasObject(this), EINA_TRUE);
+       ::elm_win_alpha_set(evasObject(this), EINA_TRUE);
+       ::elm_win_autodel_set(evasObject(this), EINA_TRUE);
+}
diff --git a/src/policyd/tools/syspopup/src/ui/window.h b/src/policyd/tools/syspopup/src/ui/window.h
new file mode 100644 (file)
index 0000000..85bb7e7
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ *
+ * Copyright (c) 2017 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 __DPM_SYSPOPUP_WINDOW_H__
+#define __DPM_SYSPOPUP_WINDOW_H__
+
+#include "widget.h"
+
+class Window : public Widget {
+public:
+       Window(const std::string &packageName);
+       ~Window();
+
+private:
+       void setRotate();
+       void setConfig();
+};
+
+#endif /*__DPM_WINDOW_SYSPOPUP_H__*/
diff --git a/src/policyd/ui/CMakeLists.txt b/src/policyd/ui/CMakeLists.txt
new file mode 100644 (file)
index 0000000..53643a3
--- /dev/null
@@ -0,0 +1,49 @@
+# Copyright (c) 2019 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.
+#
+
+SET(TARGET_SYSPOPUP device-policy-syspopup)
+
+# TODO: minimize dependencies
+SET(SERVER_DEP klay
+                          glib-2.0
+                          gio-2.0
+                          sqlite3
+                          bundle
+                          aul
+                          appsvc
+                          pkgmgr
+                          pkgmgr-info
+                          vconf
+                          syspopup-caller
+                          deviced
+                          libtzplatform-config
+                          cynara-client
+                          cynara-session)
+
+SET(SYSPOPUP syspopup.cpp
+                        syspopup-service.cpp)
+
+
+PKG_CHECK_MODULES(SERVER_DEPS REQUIRED ${SERVER_DEP})
+
+INCLUDE_DIRECTORIES(${SERVER_DEPS_INCLUDE_DIRS})
+
+ADD_EXECUTABLE(${TARGET_SYSPOPUP} ${SYSPOPUP})
+TARGET_LINK_LIBRARIES(${TARGET_SYSPOPUP} ${SERVER_DEPS_LIBRARIES} dpm-pil)
+
+SET_TARGET_PROPERTIES(${TARGET_SYSPOPUP} PROPERTIES COMPILE_FLAGS "-fPIE")
+SET_TARGET_PROPERTIES(${TARGET_SYSPOPUP} PROPERTIES LINK_FLAGS "-pie")
+
+INSTALL(TARGETS ${TARGET_SYSPOPUP} DESTINATION bin)
diff --git a/src/policyd/ui/syspopup-service.cpp b/src/policyd/ui/syspopup-service.cpp
new file mode 100644 (file)
index 0000000..eb6b2cb
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ *  Copyright (c) 2015 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
+ */
+
+#include "syspopup.h"
+#include <klay/gmainloop.h>
+#include <klay/audit/logger.h>
+#include <klay/audit/dlog-sink.h>
+#include <glib.h>
+#include <unistd.h>
+#include <thread>
+
+namespace {
+
+std::unique_ptr<audit::DlogLogSink> _sink = nullptr;
+
+} // namespace
+
+audit::LogSink *SINK = nullptr;
+
+class SyspopupMainLoop {
+public:
+       SyspopupMainLoop() :
+               mainloop(g_main_loop_new(NULL, FALSE), g_main_loop_unref)
+       {
+               handle = std::thread(g_main_loop_run, mainloop.get());
+       }
+       ~SyspopupMainLoop()
+       {
+               while (!g_main_loop_is_running(mainloop.get())) {
+                       std::this_thread::yield();
+               }
+               g_main_loop_quit(mainloop.get());
+               handle.join();
+       }
+private:
+       std::unique_ptr<GMainLoop, void(*)(GMainLoop*)> mainloop;
+       std::thread handle;
+};
+
+int main()
+{
+       _sink.reset(new audit::DlogLogSink("DPM"));
+       SINK = dynamic_cast<audit::LogSink*>((_sink).get());
+
+       try {
+               SyspopupMainLoop mainloop;
+               SyspopupService syspopup;
+               syspopup.run();
+
+               ::sleep(3);
+       } catch (std::exception &e) {
+               ERROR(SINK, e.what());
+               return EXIT_FAILURE;
+       }
+
+       return EXIT_SUCCESS;
+}
diff --git a/src/policyd/ui/syspopup.cpp b/src/policyd/ui/syspopup.cpp
new file mode 100644 (file)
index 0000000..c9939e6
--- /dev/null
@@ -0,0 +1,109 @@
+/*
+ *  Copyright (c) 2015 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
+ */
+#include <unistd.h>
+#include <signal.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include <string>
+#include <stdexcept>
+
+#include <bundle.h>
+#include <tzplatform_config.h>
+
+#include <klay/exception.h>
+#include <klay/auth/user.h>
+#include <klay/dbus/connection.h>
+#include <klay/audit/logger.h>
+
+#include "pil/launchpad.h"
+
+#include "syspopup.h"
+
+using namespace std::placeholders;
+
+namespace {
+
+const std::string SYSPOPUP_BUS_NAME       = "org.tizen.DevicePolicyManager";
+const std::string SYSPOPUP_OBJECT_PATH    = "/org/tizen/DevicePolicyManager/Syspopup";
+const std::string SYSPOPUP_INTERFACE      = "org.tizen.DevicePolicyManager.Syspopup";
+const std::string SYSPOPUP_METHOD_SHOW    = "show";
+
+const std::string manifest =
+       "<node>"
+       "   <interface name='" + SYSPOPUP_INTERFACE + "'>"
+       "       <method name='" + SYSPOPUP_METHOD_SHOW + "'>"
+       "           <arg type='s' name='id' direction='in'/>"
+       "           <arg type='b' name='result' direction='out'/>"
+       "       </method>"
+       "   </interface>"
+       "</node>";
+
+} // namespace
+
+dbus::Variant SyspopupService::onMethodCall(const std::string& objectPath,
+                                                                                       const std::string& interface,
+                                                                                       const std::string& methodName,
+                                                                                       dbus::Variant parameters)
+{
+       if (objectPath != SYSPOPUP_OBJECT_PATH || interface != SYSPOPUP_INTERFACE) {
+               throw runtime::Exception("Invalid Interface");
+       }
+       if (methodName != SYSPOPUP_METHOD_SHOW) {
+               throw runtime::Exception("Unknown Method");
+       }
+
+       const gchar *id = NULL;
+       parameters.get("(&s)", &id);
+
+       Bundle bundle;
+       bundle.add("id", id);
+
+       Launchpad launchpad(activeUser);
+       launchpad.launch("org.tizen.dpm-syspopup", bundle);
+
+       return dbus::Variant("(b)", true);
+}
+
+void SyspopupService::onNameAcquired()
+{
+}
+
+void SyspopupService::onNameLost()
+{
+}
+
+SyspopupService::~SyspopupService()
+{
+}
+
+SyspopupService::SyspopupService()
+{
+       runtime::User defaultUser(::tzplatform_getenv(TZ_SYS_DEFAULT_USER));
+       activeUser = defaultUser.getUid();
+}
+
+void SyspopupService::run()
+{
+       dbus::Connection& connection = dbus::Connection::getSystem();
+       connection.setName(SYSPOPUP_BUS_NAME,
+                                          std::bind(&SyspopupService::onNameAcquired, this),
+                                          std::bind(&SyspopupService::onNameLost, this));
+
+       connection.registerObject(SYSPOPUP_OBJECT_PATH, manifest,
+                                                         std::bind(&SyspopupService::onMethodCall, this, _1, _2, _3, _4),
+                                                         nullptr);
+}
diff --git a/src/policyd/ui/syspopup.h b/src/policyd/ui/syspopup.h
new file mode 100644 (file)
index 0000000..572ff83
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ *  Copyright (c) 2015 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 __DPM_SYSPOPUP_SERVICE_H__
+#define __DPM_SYSPOPUP_SERVICE_H__
+
+#include <string>
+
+#include <klay/dbus/connection.h>
+
+class SyspopupService {
+public:
+       SyspopupService();
+       ~SyspopupService();
+
+       void run();
+
+private:
+       dbus::Variant onMethodCall(const std::string& objectPath,
+                                                          const std::string& interface,
+                                                          const std::string& methodName,
+                                                          dbus::Variant parameters);
+
+       void onNameAcquired();
+       void onNameLost();
+
+private:
+       uid_t activeUser;
+};
+
+#endif //__DPM_SYSPOPUP_SERVICE_H__