From 974e720079473e1cacde2508a976749d4a3b8ffd Mon Sep 17 00:00:00 2001 From: Sangwan Kwon Date: Tue, 17 Sep 2019 14:41:20 +0900 Subject: [PATCH] Import device-policy-manager from tizen Signed-off-by: Sangwan Kwon --- CMakeLists.txt | 10 +- packaging/device-policy-manager.manifest.in | 8 + packaging/osquery.spec | 168 +++++++++++- plugins/CMakeLists.txt | 4 +- plugins/bluetooth/CMakeLists.txt | 2 +- plugins/bluetooth/bluetooth.cpp | 8 +- plugins/usb/CMakeLists.txt | 3 +- plugins/usb/usb.cpp | 12 +- plugins/wifi/CMakeLists.txt | 8 - plugins/wifi/wifi.cpp | 8 +- specs/CMakeLists.txt | 4 +- src/CMakeLists.txt | 4 +- src/apix/notification/CMakeLists.txt | 2 +- src/osquery/CMakeLists.txt | 2 - src/osquery/tables/CMakeLists.txt | 8 +- src/policyd/CMakeLists.txt | 28 ++ src/policyd/client/CMakeLists.txt | 19 ++ src/policyd/client/administration.h | 85 ++++++ src/policyd/client/device-policy-manager.h | 269 +++++++++++++++++++ src/policyd/conf/CMakeLists.txt | 26 ++ src/policyd/conf/dbus/org.tizen.dpm.syspopup.conf | 18 ++ .../conf/dbus/org.tizen.dpm.syspopup.service | 4 + src/policyd/conf/pkgconfig/dpm-pil.pc.in | 14 + .../conf/systemd/device-policy-manager.service.in | 18 ++ .../conf/systemd/device-policy-manager.socket | 11 + .../conf/systemd/device-policy-syspopup.service.in | 14 + src/policyd/pil/CMakeLists.txt | 81 ++++++ src/policyd/pil/app-bundle.cpp | 51 ++++ src/policyd/pil/app-bundle.h | 55 ++++ src/policyd/pil/launchpad.cpp | 65 +++++ src/policyd/pil/launchpad.h | 40 +++ src/policyd/pil/logger.cpp | 32 +++ src/policyd/pil/logger.h | 36 +++ src/policyd/pil/observer.h | 49 ++++ src/policyd/pil/packman.cpp | 293 +++++++++++++++++++++ src/policyd/pil/packman.h | 84 ++++++ src/policyd/pil/policy-admin.cpp | 54 ++++ src/policyd/pil/policy-admin.h | 65 +++++ src/policyd/pil/policy-client.cpp | 219 +++++++++++++++ src/policyd/pil/policy-client.h | 74 ++++++ src/policyd/pil/policy-context.h | 24 ++ src/policyd/pil/policy-event-env.h | 26 ++ src/policyd/pil/policy-event.cpp | 64 +++++ src/policyd/pil/policy-event.h | 29 ++ src/policyd/pil/policy-model.h | 214 +++++++++++++++ src/policyd/pil/policy-storage.cpp | 20 ++ src/policyd/pil/policy-storage.h | 129 +++++++++ src/policyd/pil/preference.cpp | 108 ++++++++ src/policyd/pil/preference.h | 42 +++ src/policyd/pil/status.h | 47 ++++ src/policyd/server/CMakeLists.txt | 58 ++++ src/policyd/server/db-schema.h | 44 ++++ src/policyd/server/main.cpp | 97 +++++++ src/policyd/server/plugin.cpp | 79 ++++++ src/policyd/server/plugin.h | 63 +++++ src/policyd/server/server.cpp | 247 +++++++++++++++++ src/policyd/server/server.h | 70 +++++ src/policyd/server/sql-backend.cpp | 191 ++++++++++++++ src/policyd/server/sql-backend.h | 49 ++++ src/policyd/tests/CMakeLists.txt | 44 ++++ src/policyd/tests/main.cpp | 24 ++ src/policyd/tests/test-pil.cpp | 71 +++++ src/policyd/tests/test-query.cpp | 140 ++++++++++ src/policyd/tests/test-server.cpp | 27 ++ src/policyd/tools/CMakeLists.txt | 17 ++ src/policyd/tools/cli/CMakeLists.txt | 36 +++ src/policyd/tools/cli/dpm-admin-cli.cpp | 155 +++++++++++ src/policyd/tools/cli/dpm-storage-builder | 78 ++++++ src/policyd/tools/cli/dpm-syspopup | 8 + src/policyd/tools/syspopup/CMakeLists.txt | 74 ++++++ .../tools/syspopup/org.tizen.dpm-syspopup.manifest | 5 + .../tools/syspopup/org.tizen.dpm-syspopup.xml | 12 + src/policyd/tools/syspopup/po/CMakeLists.txt | 23 ++ src/policyd/tools/syspopup/po/ar.po | 93 +++++++ src/policyd/tools/syspopup/po/az.po | 93 +++++++ src/policyd/tools/syspopup/po/bg.po | 93 +++++++ src/policyd/tools/syspopup/po/ca.po | 93 +++++++ src/policyd/tools/syspopup/po/cs.po | 93 +++++++ src/policyd/tools/syspopup/po/da.po | 93 +++++++ src/policyd/tools/syspopup/po/de.po | 93 +++++++ src/policyd/tools/syspopup/po/el_GR.po | 93 +++++++ src/policyd/tools/syspopup/po/en.po | 93 +++++++ src/policyd/tools/syspopup/po/en_PH.po | 93 +++++++ src/policyd/tools/syspopup/po/en_US.po | 93 +++++++ src/policyd/tools/syspopup/po/es_ES.po | 93 +++++++ src/policyd/tools/syspopup/po/es_US.po | 93 +++++++ src/policyd/tools/syspopup/po/et.po | 93 +++++++ src/policyd/tools/syspopup/po/eu.po | 93 +++++++ src/policyd/tools/syspopup/po/fi.po | 93 +++++++ src/policyd/tools/syspopup/po/fr.po | 93 +++++++ src/policyd/tools/syspopup/po/fr_CA.po | 93 +++++++ src/policyd/tools/syspopup/po/ga.po | 93 +++++++ src/policyd/tools/syspopup/po/gl.po | 93 +++++++ src/policyd/tools/syspopup/po/hi.po | 93 +++++++ src/policyd/tools/syspopup/po/hr.po | 93 +++++++ src/policyd/tools/syspopup/po/hu.po | 93 +++++++ src/policyd/tools/syspopup/po/hy.po | 93 +++++++ src/policyd/tools/syspopup/po/is.po | 93 +++++++ src/policyd/tools/syspopup/po/it_IT.po | 93 +++++++ src/policyd/tools/syspopup/po/ja_JP.po | 93 +++++++ src/policyd/tools/syspopup/po/ka.po | 93 +++++++ src/policyd/tools/syspopup/po/kk.po | 93 +++++++ src/policyd/tools/syspopup/po/ko_KR.po | 93 +++++++ src/policyd/tools/syspopup/po/lt.po | 93 +++++++ src/policyd/tools/syspopup/po/lv.po | 93 +++++++ src/policyd/tools/syspopup/po/mk.po | 93 +++++++ src/policyd/tools/syspopup/po/nb.po | 93 +++++++ src/policyd/tools/syspopup/po/nl.po | 93 +++++++ src/policyd/tools/syspopup/po/pl.po | 93 +++++++ src/policyd/tools/syspopup/po/pt_BR.po | 93 +++++++ src/policyd/tools/syspopup/po/pt_PT.po | 93 +++++++ src/policyd/tools/syspopup/po/ro.po | 93 +++++++ src/policyd/tools/syspopup/po/ru_RU.po | 93 +++++++ src/policyd/tools/syspopup/po/sk.po | 93 +++++++ src/policyd/tools/syspopup/po/sl.po | 93 +++++++ src/policyd/tools/syspopup/po/sr.po | 93 +++++++ src/policyd/tools/syspopup/po/sv.po | 93 +++++++ src/policyd/tools/syspopup/po/tr_TR.po | 93 +++++++ src/policyd/tools/syspopup/po/uk.po | 93 +++++++ src/policyd/tools/syspopup/po/uz.po | 93 +++++++ src/policyd/tools/syspopup/po/zh_CN.po | 93 +++++++ src/policyd/tools/syspopup/po/zh_HK.po | 93 +++++++ src/policyd/tools/syspopup/po/zh_TW.po | 93 +++++++ .../syspopup/res/images/tw_ic_popup_btn_check.png | Bin 0 -> 1392 bytes .../syspopup/res/images/tw_ic_popup_btn_delete.png | Bin 0 -> 1184 bytes .../tools/syspopup/res/org.tizen.dpm-syspopup.png | Bin 0 -> 57662 bytes src/policyd/tools/syspopup/src/application.cpp | 123 +++++++++ src/policyd/tools/syspopup/src/application.h | 61 +++++ src/policyd/tools/syspopup/src/interface.cpp | 145 ++++++++++ src/policyd/tools/syspopup/src/interface.h | 101 +++++++ src/policyd/tools/syspopup/src/main.cpp | 67 +++++ src/policyd/tools/syspopup/src/popup/bluetooth.cpp | 43 +++ src/policyd/tools/syspopup/src/popup/bluetooth.h | 34 +++ src/policyd/tools/syspopup/src/popup/browser.cpp | 43 +++ src/policyd/tools/syspopup/src/popup/browser.h | 34 +++ src/policyd/tools/syspopup/src/popup/camera.cpp | 43 +++ src/policyd/tools/syspopup/src/popup/camera.h | 34 +++ src/policyd/tools/syspopup/src/popup/clipboard.cpp | 43 +++ src/policyd/tools/syspopup/src/popup/clipboard.h | 34 +++ .../tools/syspopup/src/popup/external-storage.cpp | 43 +++ .../tools/syspopup/src/popup/external-storage.h | 34 +++ .../tools/syspopup/src/popup/krate-create.cpp | 75 ++++++ .../tools/syspopup/src/popup/krate-create.h | 38 +++ .../tools/syspopup/src/popup/krate-remove.cpp | 73 +++++ .../tools/syspopup/src/popup/krate-remove.h | 38 +++ src/policyd/tools/syspopup/src/popup/location.cpp | 43 +++ src/policyd/tools/syspopup/src/popup/location.h | 34 +++ .../syspopup/src/popup/message-retrieving.cpp | 43 +++ .../tools/syspopup/src/popup/message-retrieving.h | 34 +++ .../tools/syspopup/src/popup/message-sending.cpp | 43 +++ .../tools/syspopup/src/popup/message-sending.h | 34 +++ .../tools/syspopup/src/popup/microphone.cpp | 43 +++ src/policyd/tools/syspopup/src/popup/microphone.h | 34 +++ src/policyd/tools/syspopup/src/popup/nfc.cpp | 43 +++ src/policyd/tools/syspopup/src/popup/nfc.h | 34 +++ .../syspopup/src/popup/package-installation.cpp | 43 +++ .../syspopup/src/popup/package-installation.h | 34 +++ .../syspopup/src/popup/package-uninstallation.cpp | 43 +++ .../syspopup/src/popup/package-uninstallation.h | 34 +++ src/policyd/tools/syspopup/src/popup/password.cpp | 98 +++++++ src/policyd/tools/syspopup/src/popup/password.h | 38 +++ .../tools/syspopup/src/popup/popimap-email.cpp | 43 +++ .../tools/syspopup/src/popup/popimap-email.h | 34 +++ .../tools/syspopup/src/popup/screen-capture.cpp | 43 +++ .../tools/syspopup/src/popup/screen-capture.h | 34 +++ .../tools/syspopup/src/popup/settings-changes.cpp | 43 +++ .../tools/syspopup/src/popup/settings-changes.h | 34 +++ .../tools/syspopup/src/popup/usb-client.cpp | 43 +++ src/policyd/tools/syspopup/src/popup/usb-client.h | 34 +++ .../tools/syspopup/src/popup/wifi-hotspot.cpp | 43 +++ .../tools/syspopup/src/popup/wifi-hotspot.h | 34 +++ src/policyd/tools/syspopup/src/popup/wifi.cpp | 43 +++ src/policyd/tools/syspopup/src/popup/wifi.h | 34 +++ src/policyd/tools/syspopup/src/syspopup.h | 43 +++ src/policyd/tools/syspopup/src/ui/appcontrol.cpp | 90 +++++++ src/policyd/tools/syspopup/src/ui/appcontrol.h | 47 ++++ src/policyd/tools/syspopup/src/ui/button.cpp | 34 +++ src/policyd/tools/syspopup/src/ui/button.h | 33 +++ src/policyd/tools/syspopup/src/ui/image.cpp | 34 +++ src/policyd/tools/syspopup/src/ui/image.h | 32 +++ src/policyd/tools/syspopup/src/ui/layout.cpp | 33 +++ src/policyd/tools/syspopup/src/ui/layout.h | 32 +++ src/policyd/tools/syspopup/src/ui/notification.cpp | 92 +++++++ src/policyd/tools/syspopup/src/ui/notification.h | 41 +++ src/policyd/tools/syspopup/src/ui/popup.cpp | 198 ++++++++++++++ src/policyd/tools/syspopup/src/ui/popup.h | 94 +++++++ src/policyd/tools/syspopup/src/ui/widget.cpp | 148 +++++++++++ src/policyd/tools/syspopup/src/ui/widget.h | 84 ++++++ src/policyd/tools/syspopup/src/ui/window.cpp | 48 ++++ src/policyd/tools/syspopup/src/ui/window.h | 34 +++ src/policyd/ui/CMakeLists.txt | 49 ++++ src/policyd/ui/syspopup-service.cpp | 70 +++++ src/policyd/ui/syspopup.cpp | 109 ++++++++ src/policyd/ui/syspopup.h | 44 ++++ 194 files changed, 12503 insertions(+), 49 deletions(-) create mode 100644 packaging/device-policy-manager.manifest.in create mode 100644 src/policyd/CMakeLists.txt create mode 100644 src/policyd/client/CMakeLists.txt create mode 100644 src/policyd/client/administration.h create mode 100644 src/policyd/client/device-policy-manager.h create mode 100644 src/policyd/conf/CMakeLists.txt create mode 100755 src/policyd/conf/dbus/org.tizen.dpm.syspopup.conf create mode 100755 src/policyd/conf/dbus/org.tizen.dpm.syspopup.service create mode 100644 src/policyd/conf/pkgconfig/dpm-pil.pc.in create mode 100644 src/policyd/conf/systemd/device-policy-manager.service.in create mode 100644 src/policyd/conf/systemd/device-policy-manager.socket create mode 100644 src/policyd/conf/systemd/device-policy-syspopup.service.in create mode 100644 src/policyd/pil/CMakeLists.txt create mode 100644 src/policyd/pil/app-bundle.cpp create mode 100644 src/policyd/pil/app-bundle.h create mode 100644 src/policyd/pil/launchpad.cpp create mode 100644 src/policyd/pil/launchpad.h create mode 100644 src/policyd/pil/logger.cpp create mode 100644 src/policyd/pil/logger.h create mode 100644 src/policyd/pil/observer.h create mode 100644 src/policyd/pil/packman.cpp create mode 100644 src/policyd/pil/packman.h create mode 100644 src/policyd/pil/policy-admin.cpp create mode 100644 src/policyd/pil/policy-admin.h create mode 100644 src/policyd/pil/policy-client.cpp create mode 100644 src/policyd/pil/policy-client.h create mode 100644 src/policyd/pil/policy-context.h create mode 100644 src/policyd/pil/policy-event-env.h create mode 100644 src/policyd/pil/policy-event.cpp create mode 100644 src/policyd/pil/policy-event.h create mode 100644 src/policyd/pil/policy-model.h create mode 100644 src/policyd/pil/policy-storage.cpp create mode 100644 src/policyd/pil/policy-storage.h create mode 100644 src/policyd/pil/preference.cpp create mode 100644 src/policyd/pil/preference.h create mode 100644 src/policyd/pil/status.h create mode 100644 src/policyd/server/CMakeLists.txt create mode 100644 src/policyd/server/db-schema.h create mode 100644 src/policyd/server/main.cpp create mode 100644 src/policyd/server/plugin.cpp create mode 100644 src/policyd/server/plugin.h create mode 100644 src/policyd/server/server.cpp create mode 100644 src/policyd/server/server.h create mode 100644 src/policyd/server/sql-backend.cpp create mode 100644 src/policyd/server/sql-backend.h create mode 100644 src/policyd/tests/CMakeLists.txt create mode 100644 src/policyd/tests/main.cpp create mode 100644 src/policyd/tests/test-pil.cpp create mode 100644 src/policyd/tests/test-query.cpp create mode 100644 src/policyd/tests/test-server.cpp create mode 100644 src/policyd/tools/CMakeLists.txt create mode 100644 src/policyd/tools/cli/CMakeLists.txt create mode 100644 src/policyd/tools/cli/dpm-admin-cli.cpp create mode 100755 src/policyd/tools/cli/dpm-storage-builder create mode 100755 src/policyd/tools/cli/dpm-syspopup create mode 100644 src/policyd/tools/syspopup/CMakeLists.txt create mode 100644 src/policyd/tools/syspopup/org.tizen.dpm-syspopup.manifest create mode 100644 src/policyd/tools/syspopup/org.tizen.dpm-syspopup.xml create mode 100644 src/policyd/tools/syspopup/po/CMakeLists.txt create mode 100755 src/policyd/tools/syspopup/po/ar.po create mode 100755 src/policyd/tools/syspopup/po/az.po create mode 100755 src/policyd/tools/syspopup/po/bg.po create mode 100755 src/policyd/tools/syspopup/po/ca.po create mode 100755 src/policyd/tools/syspopup/po/cs.po create mode 100755 src/policyd/tools/syspopup/po/da.po create mode 100755 src/policyd/tools/syspopup/po/de.po create mode 100755 src/policyd/tools/syspopup/po/el_GR.po create mode 100755 src/policyd/tools/syspopup/po/en.po create mode 100755 src/policyd/tools/syspopup/po/en_PH.po create mode 100755 src/policyd/tools/syspopup/po/en_US.po create mode 100755 src/policyd/tools/syspopup/po/es_ES.po create mode 100755 src/policyd/tools/syspopup/po/es_US.po create mode 100755 src/policyd/tools/syspopup/po/et.po create mode 100755 src/policyd/tools/syspopup/po/eu.po create mode 100755 src/policyd/tools/syspopup/po/fi.po create mode 100755 src/policyd/tools/syspopup/po/fr.po create mode 100755 src/policyd/tools/syspopup/po/fr_CA.po create mode 100755 src/policyd/tools/syspopup/po/ga.po create mode 100755 src/policyd/tools/syspopup/po/gl.po create mode 100755 src/policyd/tools/syspopup/po/hi.po create mode 100755 src/policyd/tools/syspopup/po/hr.po create mode 100755 src/policyd/tools/syspopup/po/hu.po create mode 100755 src/policyd/tools/syspopup/po/hy.po create mode 100755 src/policyd/tools/syspopup/po/is.po create mode 100755 src/policyd/tools/syspopup/po/it_IT.po create mode 100755 src/policyd/tools/syspopup/po/ja_JP.po create mode 100755 src/policyd/tools/syspopup/po/ka.po create mode 100755 src/policyd/tools/syspopup/po/kk.po create mode 100755 src/policyd/tools/syspopup/po/ko_KR.po create mode 100755 src/policyd/tools/syspopup/po/lt.po create mode 100755 src/policyd/tools/syspopup/po/lv.po create mode 100755 src/policyd/tools/syspopup/po/mk.po create mode 100755 src/policyd/tools/syspopup/po/nb.po create mode 100755 src/policyd/tools/syspopup/po/nl.po create mode 100755 src/policyd/tools/syspopup/po/pl.po create mode 100755 src/policyd/tools/syspopup/po/pt_BR.po create mode 100755 src/policyd/tools/syspopup/po/pt_PT.po create mode 100755 src/policyd/tools/syspopup/po/ro.po create mode 100755 src/policyd/tools/syspopup/po/ru_RU.po create mode 100755 src/policyd/tools/syspopup/po/sk.po create mode 100755 src/policyd/tools/syspopup/po/sl.po create mode 100755 src/policyd/tools/syspopup/po/sr.po create mode 100755 src/policyd/tools/syspopup/po/sv.po create mode 100755 src/policyd/tools/syspopup/po/tr_TR.po create mode 100755 src/policyd/tools/syspopup/po/uk.po create mode 100755 src/policyd/tools/syspopup/po/uz.po create mode 100755 src/policyd/tools/syspopup/po/zh_CN.po create mode 100755 src/policyd/tools/syspopup/po/zh_HK.po create mode 100755 src/policyd/tools/syspopup/po/zh_TW.po create mode 100644 src/policyd/tools/syspopup/res/images/tw_ic_popup_btn_check.png create mode 100644 src/policyd/tools/syspopup/res/images/tw_ic_popup_btn_delete.png create mode 100644 src/policyd/tools/syspopup/res/org.tizen.dpm-syspopup.png create mode 100644 src/policyd/tools/syspopup/src/application.cpp create mode 100644 src/policyd/tools/syspopup/src/application.h create mode 100644 src/policyd/tools/syspopup/src/interface.cpp create mode 100644 src/policyd/tools/syspopup/src/interface.h create mode 100644 src/policyd/tools/syspopup/src/main.cpp create mode 100644 src/policyd/tools/syspopup/src/popup/bluetooth.cpp create mode 100644 src/policyd/tools/syspopup/src/popup/bluetooth.h create mode 100644 src/policyd/tools/syspopup/src/popup/browser.cpp create mode 100644 src/policyd/tools/syspopup/src/popup/browser.h create mode 100644 src/policyd/tools/syspopup/src/popup/camera.cpp create mode 100644 src/policyd/tools/syspopup/src/popup/camera.h create mode 100644 src/policyd/tools/syspopup/src/popup/clipboard.cpp create mode 100644 src/policyd/tools/syspopup/src/popup/clipboard.h create mode 100644 src/policyd/tools/syspopup/src/popup/external-storage.cpp create mode 100644 src/policyd/tools/syspopup/src/popup/external-storage.h create mode 100644 src/policyd/tools/syspopup/src/popup/krate-create.cpp create mode 100644 src/policyd/tools/syspopup/src/popup/krate-create.h create mode 100644 src/policyd/tools/syspopup/src/popup/krate-remove.cpp create mode 100644 src/policyd/tools/syspopup/src/popup/krate-remove.h create mode 100644 src/policyd/tools/syspopup/src/popup/location.cpp create mode 100644 src/policyd/tools/syspopup/src/popup/location.h create mode 100644 src/policyd/tools/syspopup/src/popup/message-retrieving.cpp create mode 100644 src/policyd/tools/syspopup/src/popup/message-retrieving.h create mode 100644 src/policyd/tools/syspopup/src/popup/message-sending.cpp create mode 100644 src/policyd/tools/syspopup/src/popup/message-sending.h create mode 100644 src/policyd/tools/syspopup/src/popup/microphone.cpp create mode 100644 src/policyd/tools/syspopup/src/popup/microphone.h create mode 100644 src/policyd/tools/syspopup/src/popup/nfc.cpp create mode 100644 src/policyd/tools/syspopup/src/popup/nfc.h create mode 100644 src/policyd/tools/syspopup/src/popup/package-installation.cpp create mode 100644 src/policyd/tools/syspopup/src/popup/package-installation.h create mode 100644 src/policyd/tools/syspopup/src/popup/package-uninstallation.cpp create mode 100644 src/policyd/tools/syspopup/src/popup/package-uninstallation.h create mode 100644 src/policyd/tools/syspopup/src/popup/password.cpp create mode 100644 src/policyd/tools/syspopup/src/popup/password.h create mode 100644 src/policyd/tools/syspopup/src/popup/popimap-email.cpp create mode 100644 src/policyd/tools/syspopup/src/popup/popimap-email.h create mode 100644 src/policyd/tools/syspopup/src/popup/screen-capture.cpp create mode 100644 src/policyd/tools/syspopup/src/popup/screen-capture.h create mode 100644 src/policyd/tools/syspopup/src/popup/settings-changes.cpp create mode 100644 src/policyd/tools/syspopup/src/popup/settings-changes.h create mode 100644 src/policyd/tools/syspopup/src/popup/usb-client.cpp create mode 100644 src/policyd/tools/syspopup/src/popup/usb-client.h create mode 100644 src/policyd/tools/syspopup/src/popup/wifi-hotspot.cpp create mode 100644 src/policyd/tools/syspopup/src/popup/wifi-hotspot.h create mode 100644 src/policyd/tools/syspopup/src/popup/wifi.cpp create mode 100644 src/policyd/tools/syspopup/src/popup/wifi.h create mode 100644 src/policyd/tools/syspopup/src/syspopup.h create mode 100644 src/policyd/tools/syspopup/src/ui/appcontrol.cpp create mode 100644 src/policyd/tools/syspopup/src/ui/appcontrol.h create mode 100644 src/policyd/tools/syspopup/src/ui/button.cpp create mode 100644 src/policyd/tools/syspopup/src/ui/button.h create mode 100644 src/policyd/tools/syspopup/src/ui/image.cpp create mode 100644 src/policyd/tools/syspopup/src/ui/image.h create mode 100644 src/policyd/tools/syspopup/src/ui/layout.cpp create mode 100644 src/policyd/tools/syspopup/src/ui/layout.h create mode 100644 src/policyd/tools/syspopup/src/ui/notification.cpp create mode 100644 src/policyd/tools/syspopup/src/ui/notification.h create mode 100644 src/policyd/tools/syspopup/src/ui/popup.cpp create mode 100644 src/policyd/tools/syspopup/src/ui/popup.h create mode 100644 src/policyd/tools/syspopup/src/ui/widget.cpp create mode 100644 src/policyd/tools/syspopup/src/ui/widget.h create mode 100644 src/policyd/tools/syspopup/src/ui/window.cpp create mode 100644 src/policyd/tools/syspopup/src/ui/window.h create mode 100644 src/policyd/ui/CMakeLists.txt create mode 100644 src/policyd/ui/syspopup-service.cpp create mode 100644 src/policyd/ui/syspopup.cpp create mode 100644 src/policyd/ui/syspopup.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 20eddcc..229e5a4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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 index 0000000..140c9a0 --- /dev/null +++ b/packaging/device-policy-manager.manifest.in @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/packaging/osquery.spec b/packaging/osquery.spec index 6a06d6c..226d355 100644 --- a/packaging/osquery.spec +++ b/packaging/osquery.spec @@ -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 diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index c85d32f..8ec2619 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -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) diff --git a/plugins/bluetooth/CMakeLists.txt b/plugins/bluetooth/CMakeLists.txt index 639fd80..2f21f4c 100644 --- a/plugins/bluetooth/CMakeLists.txt +++ b/plugins/bluetooth/CMakeLists.txt @@ -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) diff --git a/plugins/bluetooth/bluetooth.cpp b/plugins/bluetooth/bluetooth.cpp index ba362a5..553ae3b 100644 --- a/plugins/bluetooth/bluetooth.cpp +++ b/plugins/bluetooth/bluetooth.cpp @@ -18,10 +18,10 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include "../dlog.h" diff --git a/plugins/usb/CMakeLists.txt b/plugins/usb/CMakeLists.txt index 52602b9..cfc1c3f 100644 --- a/plugins/usb/CMakeLists.txt +++ b/plugins/usb/CMakeLists.txt @@ -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}) diff --git a/plugins/usb/usb.cpp b/plugins/usb/usb.cpp index 5c2c171..82dac70 100644 --- a/plugins/usb/usb.cpp +++ b/plugins/usb/usb.cpp @@ -14,12 +14,12 @@ * limitations under the License */ -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include #include diff --git a/plugins/wifi/CMakeLists.txt b/plugins/wifi/CMakeLists.txt index 9137d48..e97bb67 100644 --- a/plugins/wifi/CMakeLists.txt +++ b/plugins/wifi/CMakeLists.txt @@ -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}) diff --git a/plugins/wifi/wifi.cpp b/plugins/wifi/wifi.cpp index 97df098..4317498 100644 --- a/plugins/wifi/wifi.cpp +++ b/plugins/wifi/wifi.cpp @@ -24,10 +24,10 @@ #include -#include -#include -#include -#include +#include +#include +#include +#include #include "../dlog.h" diff --git a/specs/CMakeLists.txt b/specs/CMakeLists.txt index a7b5310..70c662b 100644 --- a/specs/CMakeLists.txt +++ b/specs/CMakeLists.txt @@ -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") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 154e908..8700563 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -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) diff --git a/src/apix/notification/CMakeLists.txt b/src/apix/notification/CMakeLists.txt index 3c6d86f..e466faa 100644 --- a/src/apix/notification/CMakeLists.txt +++ b/src/apix/notification/CMakeLists.txt @@ -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}) diff --git a/src/osquery/CMakeLists.txt b/src/osquery/CMakeLists.txt index a9ac141..de65d8e 100644 --- a/src/osquery/CMakeLists.txt +++ b/src/osquery/CMakeLists.txt @@ -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}) diff --git a/src/osquery/tables/CMakeLists.txt b/src/osquery/tables/CMakeLists.txt index f55e3df..73eab8e 100644 --- a/src/osquery/tables/CMakeLists.txt +++ b/src/osquery/tables/CMakeLists.txt @@ -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 index 0000000..d2e093a --- /dev/null +++ b/src/policyd/CMakeLists.txt @@ -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 index 0000000..b110393 --- /dev/null +++ b/src/policyd/client/CMakeLists.txt @@ -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 index 0000000..2bcaddd --- /dev/null +++ b/src/policyd/client/administration.h @@ -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 + +#include + +/** + * @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 index 0000000..7bb9e7f --- /dev/null +++ b/src/policyd/client/device-policy-manager.h @@ -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 +#include + +/** + * @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 index 0000000..8857920 --- /dev/null +++ b/src/policyd/conf/CMakeLists.txt @@ -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 index 0000000..d9ff7e0 --- /dev/null +++ b/src/policyd/conf/dbus/org.tizen.dpm.syspopup.conf @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + 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 index 0000000..04c8e90 --- /dev/null +++ b/src/policyd/conf/dbus/org.tizen.dpm.syspopup.service @@ -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 index 0000000..05957f5 --- /dev/null +++ b/src/policyd/conf/pkgconfig/dpm-pil.pc.in @@ -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 index 0000000..ca28c44 --- /dev/null +++ b/src/policyd/conf/systemd/device-policy-manager.service.in @@ -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 index 0000000..911d17c --- /dev/null +++ b/src/policyd/conf/systemd/device-policy-manager.socket @@ -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 index 0000000..0c4f617 --- /dev/null +++ b/src/policyd/conf/systemd/device-policy-syspopup.service.in @@ -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 index 0000000..6756bb4 --- /dev/null +++ b/src/policyd/pil/CMakeLists.txt @@ -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 index 0000000..518e36f --- /dev/null +++ b/src/policyd/pil/app-bundle.cpp @@ -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 + +#include + +#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& array) +{ + std::unique_ptr 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 index 0000000..df01979 --- /dev/null +++ b/src/policyd/pil/app-bundle.h @@ -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 +#include + +#include + +class Bundle { +public: + Bundle(); + ~Bundle(); + + template + void add(const std::string& key, const std::vector& value) + { + addArrayInternal(key, value); + } + + template + 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& 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 index 0000000..04fd787 --- /dev/null +++ b/src/policyd/pil/launchpad.cpp @@ -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 +#include +#include + +#include +#include + +#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 index 0000000..e5d3ceb --- /dev/null +++ b/src/policyd/pil/launchpad.h @@ -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 + +#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 index 0000000..90a5ae7 --- /dev/null +++ b/src/policyd/pil/logger.cpp @@ -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 + +#include "logger.h" + +std::unique_ptr 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(dlogSink)); + }); + + return logSink.get(); +} diff --git a/src/policyd/pil/logger.h b/src/policyd/pil/logger.h new file mode 100644 index 0000000..5987fe7 --- /dev/null +++ b/src/policyd/pil/logger.h @@ -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 + +#include +#include + +#define DPM Logger::GetLogSink("DPM") + +class Logger { +public: + static audit::LogSink* GetLogSink(const std::string& tag); + +private: + static std::unique_ptr 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 index 0000000..e5b997e --- /dev/null +++ b/src/policyd/pil/observer.h @@ -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 + +#include +#include +#include + +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 observers; +}; + +#endif //__DPM_OBSERVER_H__ diff --git a/src/policyd/pil/packman.cpp b/src/policyd/pil/packman.cpp new file mode 100644 index 0000000..767c2cb --- /dev/null +++ b/src/policyd/pil/packman.cpp @@ -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 + +#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* packageList = static_cast*>(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 PackageManager::getPackageList(const uid_t user) +{ + std::vector 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 index 0000000..3702e5e --- /dev/null +++ b/src/policyd/pil/packman.h @@ -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 +#include + +#include +#include + +#include +#include + +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 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 index 0000000..bc52481 --- /dev/null +++ b/src/policyd/pil/policy-admin.cpp @@ -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 + +#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 index 0000000..e349d8b --- /dev/null +++ b/src/policyd/pil/policy-admin.h @@ -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 +#include +#include +#include +#include + +#include + +#include +#include + +#include + +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 index 0000000..322091e --- /dev/null +++ b/src/policyd/pil/policy-client.cpp @@ -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 +#include + +#include +#include + +#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(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(&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(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(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 status { -1 }; + status = client.methodCallForce("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 status { -1 }; + status = client.methodCallForce("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 index 0000000..f2d1b11 --- /dev/null +++ b/src/policyd/pil/policy-client.h @@ -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 +#include +#include +#include +#include + +#include +#include + +#include "status.h" + +typedef std::function 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 + Type methodCall(const std::string& method, Args&&... args) + { + if (!maintenanceMode) { + errno = EPROTONOSUPPORT; + return Type(); + } + + rmi::Connection conn(clientAddress); + Type ret = rmi::RemoteMethod<>::invoke(conn, method, std::forward(args)...); + return ret; + } + + template + Type methodCallForce(const std::string& method, Args&&... args) + { + rmi::Connection conn(clientAddress); + Type ret = rmi::RemoteMethod<>::invoke(conn, method, std::forward(args)...); + return ret; + } + +private: + static void maintenanceModeDispatcher(keynode_t *node, void *data); +private: + int maintenanceMode; + std::string clientAddress; + std::unique_ptr 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 index 0000000..1fabafc --- /dev/null +++ b/src/policyd/pil/policy-context.h @@ -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 + +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 index 0000000..dff41e6 --- /dev/null +++ b/src/policyd/pil/policy-event-env.h @@ -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 + +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 index 0000000..8ab3d85 --- /dev/null +++ b/src/policyd/pil/policy-event.cpp @@ -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 +#include +#include + + +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 index 0000000..4f92cba --- /dev/null +++ b/src/policyd/pil/policy-event.h @@ -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 + +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 index 0000000..c9df02c --- /dev/null +++ b/src/policyd/pil/policy-model.h @@ -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 +#include +#include +#include +#include + +#include + +#include "policy-storage.h" +#include "policy-admin.h" +#include "observer.h" + +class AbstractPolicyProvider { +public: + AbstractPolicyProvider() {} + virtual ~AbstractPolicyProvider() {} +}; + +template +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 current; + std::unordered_map ready; + std::mutex mtx; +}; + +template +DomainPolicy::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 +DomainPolicy::~DomainPolicy() +{ +} + +template +void DomainPolicy::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 +void DomainPolicy::set(const DataType& val) +{ + PolicyAdmin admin(rmi::Service::getPeerPid(), rmi::Service::getPeerUid()); + PolicyStorage::update(id, admin.getName(), admin.getUid(), val); + + std::lock_guard mtxGuard(mtx); + enforce(admin.getUid()); +} + +template +Type DomainPolicy::get() +{ + uid_t domain = rmi::Service::getPeerUid(); + + std::lock_guard mtxGuard(mtx); + if (!current.count(domain)) { + enforce(domain); + } + + return current[domain].value; +} + +template +void DomainPolicy::onEvent(uid_t domain) +{ + std::lock_guard mtxGuard(mtx); + enforce(domain); +} + +template +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 +GlobalPolicy::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 +GlobalPolicy::~GlobalPolicy() +{ +} + +template +void GlobalPolicy::enforce() +{ + Type value = initial; + PolicyStorage::strictize(id, value); + if (current != value) { + apply(value); + current = value; + } +} + +template +void GlobalPolicy::set(const Type& val) +{ + PolicyAdmin admin(rmi::Service::getPeerPid(), rmi::Service::getPeerUid()); + PolicyStorage::update(id, admin.getName(), admin.getUid(), val); + + std::lock_guard mtxGuard(mtx); + enforce(); +} + +template +Type GlobalPolicy::get() +{ + std::lock_guard mtxGuard(mtx); + if (!ready) { + enforce(); + ready = true; + } + return current.value; +} + +template +void GlobalPolicy::onEvent(uid_t domain) +{ + std::lock_guard 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 index 0000000..c06827e --- /dev/null +++ b/src/policyd/pil/policy-storage.cpp @@ -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 index 0000000..e3aa4d6 --- /dev/null +++ b/src/policyd/pil/policy-storage.h @@ -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 +#include + +#include +#include + +#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 fetchDomains() = 0; +}; + +class PolicyStorage { +public: + template + static int define(const std::string& name, T& value) { + return backend->define(name, value); + } + + template + static bool strictize(int id, T& value, uid_t domain = 0) { + return backend->strictize(id, value, domain); + } + + template + 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 domains = backend->fetchDomains(); + for (auto domid : domains) { + observers.notify({domid}); + } + } + + static std::vector 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 index 0000000..f9b4ac8 --- /dev/null +++ b/src/policyd/pil/preference.cpp @@ -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 +#include + +#include +#include + +#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 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 index 0000000..df78d9b --- /dev/null +++ b/src/policyd/pil/preference.h @@ -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 +#include + +#include + +class PreferencesStore { +public: + typedef std::unordered_map 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 keyValueMap; +}; + +#endif //__DPM_PREFERENCES_H__ diff --git a/src/policyd/pil/status.h b/src/policyd/pil/status.h new file mode 100644 index 0000000..2336af6 --- /dev/null +++ b/src/policyd/pil/status.h @@ -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 +#include + +template +class Status { +public: + Status() = delete; + Status(Type&& defaultValue) : value(std::forward(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 index 0000000..e0872ca --- /dev/null +++ b/src/policyd/server/CMakeLists.txt @@ -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 index 0000000..5287418 --- /dev/null +++ b/src/policyd/server/db-schema.h @@ -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 + +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 index 0000000..90be3c5 --- /dev/null +++ b/src/policyd/server/main.cpp @@ -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 +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include + +#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 index 0000000..6fae176 --- /dev/null +++ b/src/policyd/server/plugin.cpp @@ -0,0 +1,79 @@ +#include + +#include +#include +#include +#include +#include +#include +#include + +#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 index 0000000..a709fc7 --- /dev/null +++ b/src/policyd/server/plugin.h @@ -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 +#include +#include + +#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 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 index 0000000..ff932e1 --- /dev/null +++ b/src/policyd/server/server.cpp @@ -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 +#include + +#include + +#include +#include + +#include +#include + +#include "pil/policy-event.h" +#include "pil/logger.h" + +#include "server.h" +#include "sql-backend.h" + +#include + +#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 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 index 0000000..38931e2 --- /dev/null +++ b/src/policyd/server/server.h @@ -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 +#include +#include +#include + +#include + +#include +#include +#include + +#include "plugin.h" +#include "sql-backend.h" + +#define MAX_CLIENT_CONNECTIONS 10 + +class DevicePolicyManager : public rmi::Service { +public: + DevicePolicyManager(); + ~DevicePolicyManager(); + + int loadManagedClients(); + std::pair 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 ClientRegistry; + ClientRegistry clientRegistry; + + std::vector policyList; + std::unique_ptr 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 index 0000000..e7dca62 --- /dev/null +++ b/src/policyd/server/sql-backend.cpp @@ -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 +#include + +#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() + .on(expr(&ManagedPolicy::pid) == expr(&PolicyDefinition::id)) + .join() + .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(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(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(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(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 SQLBackend::fetchDomains() +{ + std::vector 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 index 0000000..9b322c2 --- /dev/null +++ b/src/policyd/server/sql-backend.h @@ -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 +#include + +#include +#include +#include +#include + +#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 fetchDomains(); + +private: + std::shared_ptr database; +}; + +#endif //__DPM_SQL_BACKEND_H__ diff --git a/src/policyd/tests/CMakeLists.txt b/src/policyd/tests/CMakeLists.txt new file mode 100644 index 0000000..e60c3e8 --- /dev/null +++ b/src/policyd/tests/CMakeLists.txt @@ -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 index 0000000..c3b8a96 --- /dev/null +++ b/src/policyd/tests/main.cpp @@ -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 + +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 index 0000000..b703956 --- /dev/null +++ b/src/policyd/tests/test-pil.cpp @@ -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 + +#include + +#include +#include +#include +#include + +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 handle( + []() -> DevicePolicyClient* { + DevicePolicyClient* client = new DevicePolicyClient(); + + if (client == nullptr) + return nullptr; + + return client; + }()); + TEST_EXPECT(true, handle != nullptr); + + DevicePolicyClient &client = GetDevicePolicyClient(static_cast(handle.get())); + + bool isCalled = false; + auto onEvent = [&isCalled](const char* name, const char* state, void* data) { + isCalled = true; + auto receivedData = static_cast(data); + std::cout << "Signal caught. name = " << name << ", state : " << state + << ", data : " << *receivedData << std::endl; + }; + + client.subscribeSignal(TEST_PIL_EVENT_NAME, onEvent, + static_cast(&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 index 0000000..1cd4137 --- /dev/null +++ b/src/policyd/tests/test-query.cpp @@ -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 + +#include + +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() + .on(expr(&ManagedPolicy::pid) == expr(&PolicyDefinition::id)) + .join() + .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 index 0000000..a1b30bb --- /dev/null +++ b/src/policyd/tests/test-server.cpp @@ -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 + +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 index 0000000..c66b95a --- /dev/null +++ b/src/policyd/tools/CMakeLists.txt @@ -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 index 0000000..09df8ee --- /dev/null +++ b/src/policyd/tools/cli/CMakeLists.txt @@ -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 index 0000000..d3c2c7a --- /dev/null +++ b/src/policyd/tools/cli/dpm-admin-cli.cpp @@ -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 +#include +#include +#include +#include + +#include +#include + +#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 status { -1 }; + status = client.methodCallForce("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 status { -1 }; + status = client.methodCallForce("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 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)); + case DeregisterAdministrator: + return deregisterAdministrator(pkgname, static_cast(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 index 0000000..fdc871a --- /dev/null +++ b/src/policyd/tools/cli/dpm-storage-builder @@ -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 index 0000000..d3ebe5b --- /dev/null +++ b/src/policyd/tools/cli/dpm-syspopup @@ -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 index 0000000..f3e9f68 --- /dev/null +++ b/src/policyd/tools/syspopup/CMakeLists.txt @@ -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 index 0000000..a76fdba --- /dev/null +++ b/src/policyd/tools/syspopup/org.tizen.dpm-syspopup.manifest @@ -0,0 +1,5 @@ + + + + + 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 index 0000000..1c21884 --- /dev/null +++ b/src/policyd/tools/syspopup/org.tizen.dpm-syspopup.xml @@ -0,0 +1,12 @@ + + + + + http://tizen.org/privilege/appmanager.launch + http://tizen.org/privilege/notification + http://tizen.org/privilege/window.priority.set + + + + + diff --git a/src/policyd/tools/syspopup/po/CMakeLists.txt b/src/policyd/tools/syspopup/po/CMakeLists.txt new file mode 100644 index 0000000..d5aaee0 --- /dev/null +++ b/src/policyd/tools/syspopup/po/CMakeLists.txt @@ -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 index 0000000..46cd7b6 --- /dev/null +++ b/src/policyd/tools/syspopup/po/ar.po @@ -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 index 0000000..6f95c8e --- /dev/null +++ b/src/policyd/tools/syspopup/po/az.po @@ -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 index 0000000..b8ff99b --- /dev/null +++ b/src/policyd/tools/syspopup/po/bg.po @@ -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 index 0000000..b5aaeb9 --- /dev/null +++ b/src/policyd/tools/syspopup/po/ca.po @@ -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 index 0000000..7f63efe --- /dev/null +++ b/src/policyd/tools/syspopup/po/cs.po @@ -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 index 0000000..b687b5f --- /dev/null +++ b/src/policyd/tools/syspopup/po/da.po @@ -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 index 0000000..afed306 --- /dev/null +++ b/src/policyd/tools/syspopup/po/de.po @@ -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 index 0000000..c5475e6 --- /dev/null +++ b/src/policyd/tools/syspopup/po/el_GR.po @@ -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 index 0000000..cd00224 --- /dev/null +++ b/src/policyd/tools/syspopup/po/en.po @@ -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 index 0000000..ec5a1d8 --- /dev/null +++ b/src/policyd/tools/syspopup/po/en_PH.po @@ -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 index 0000000..f83e45d --- /dev/null +++ b/src/policyd/tools/syspopup/po/en_US.po @@ -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 index 0000000..2b32f27 --- /dev/null +++ b/src/policyd/tools/syspopup/po/es_ES.po @@ -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 index 0000000..7a5cd4b --- /dev/null +++ b/src/policyd/tools/syspopup/po/es_US.po @@ -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 index 0000000..6678dcf --- /dev/null +++ b/src/policyd/tools/syspopup/po/et.po @@ -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 index 0000000..eb1c01e --- /dev/null +++ b/src/policyd/tools/syspopup/po/eu.po @@ -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 index 0000000..463dc20 --- /dev/null +++ b/src/policyd/tools/syspopup/po/fi.po @@ -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 index 0000000..793da71 --- /dev/null +++ b/src/policyd/tools/syspopup/po/fr.po @@ -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 index 0000000..9b63602 --- /dev/null +++ b/src/policyd/tools/syspopup/po/fr_CA.po @@ -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 index 0000000..03db85e --- /dev/null +++ b/src/policyd/tools/syspopup/po/ga.po @@ -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 index 0000000..a055351 --- /dev/null +++ b/src/policyd/tools/syspopup/po/gl.po @@ -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 index 0000000..3a15d0c --- /dev/null +++ b/src/policyd/tools/syspopup/po/hi.po @@ -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 index 0000000..cb3b15f --- /dev/null +++ b/src/policyd/tools/syspopup/po/hr.po @@ -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 index 0000000..d15b251 --- /dev/null +++ b/src/policyd/tools/syspopup/po/hu.po @@ -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 index 0000000..bc67696 --- /dev/null +++ b/src/policyd/tools/syspopup/po/hy.po @@ -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 index 0000000..7dadf45 --- /dev/null +++ b/src/policyd/tools/syspopup/po/is.po @@ -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 index 0000000..cbc4af5 --- /dev/null +++ b/src/policyd/tools/syspopup/po/it_IT.po @@ -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 index 0000000..8d2e919 --- /dev/null +++ b/src/policyd/tools/syspopup/po/ja_JP.po @@ -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 index 0000000..a0fd03a --- /dev/null +++ b/src/policyd/tools/syspopup/po/ka.po @@ -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 index 0000000..d603ec2 --- /dev/null +++ b/src/policyd/tools/syspopup/po/kk.po @@ -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 index 0000000..ccf96d1 --- /dev/null +++ b/src/policyd/tools/syspopup/po/ko_KR.po @@ -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 index 0000000..a43df11 --- /dev/null +++ b/src/policyd/tools/syspopup/po/lt.po @@ -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 index 0000000..01e4c43 --- /dev/null +++ b/src/policyd/tools/syspopup/po/lv.po @@ -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 index 0000000..60f6a8a --- /dev/null +++ b/src/policyd/tools/syspopup/po/mk.po @@ -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 index 0000000..d583d47 --- /dev/null +++ b/src/policyd/tools/syspopup/po/nb.po @@ -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 index 0000000..904b510 --- /dev/null +++ b/src/policyd/tools/syspopup/po/nl.po @@ -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 index 0000000..794caa8 --- /dev/null +++ b/src/policyd/tools/syspopup/po/pl.po @@ -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 index 0000000..7ef2504 --- /dev/null +++ b/src/policyd/tools/syspopup/po/pt_BR.po @@ -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 index 0000000..3959f1c --- /dev/null +++ b/src/policyd/tools/syspopup/po/pt_PT.po @@ -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 index 0000000..f3cc6e3 --- /dev/null +++ b/src/policyd/tools/syspopup/po/ro.po @@ -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 index 0000000..992bd02 --- /dev/null +++ b/src/policyd/tools/syspopup/po/ru_RU.po @@ -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 index 0000000..6c4b9d8 --- /dev/null +++ b/src/policyd/tools/syspopup/po/sk.po @@ -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 index 0000000..2ddecee --- /dev/null +++ b/src/policyd/tools/syspopup/po/sl.po @@ -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 index 0000000..d272218 --- /dev/null +++ b/src/policyd/tools/syspopup/po/sr.po @@ -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 index 0000000..8db0882 --- /dev/null +++ b/src/policyd/tools/syspopup/po/sv.po @@ -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 index 0000000..772488e --- /dev/null +++ b/src/policyd/tools/syspopup/po/tr_TR.po @@ -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 index 0000000..d859aa5 --- /dev/null +++ b/src/policyd/tools/syspopup/po/uk.po @@ -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 index 0000000..70289de --- /dev/null +++ b/src/policyd/tools/syspopup/po/uz.po @@ -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 index 0000000..123c129 --- /dev/null +++ b/src/policyd/tools/syspopup/po/zh_CN.po @@ -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 index 0000000..5fb717e --- /dev/null +++ b/src/policyd/tools/syspopup/po/zh_HK.po @@ -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 index 0000000..3c2a5ba --- /dev/null +++ b/src/policyd/tools/syspopup/po/zh_TW.po @@ -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 index 0000000000000000000000000000000000000000..f20f62e7f8872c282aa2bb8135b3393de9dff42f GIT binary patch literal 1392 zcmbVMZA=?=7(aoHm&u?Sw6bZ=gJp@*-b=49cT(WEYgr@ZrEMH8e&BjN=%rk*-W|47 zRE8#2Hg)oWWeI}Gf*NCR(?pCirpdBpya;A7OSX)ez@~F!#QK6{!+3?3`GM?%m%ID_ z|IauP*+$`S^xk*p=%%G(N-k&>K;vw^M`&-0Z4kR23!EozIqp5!Fa$fk6RF)^Z{0id!v7Gb#%uY!KQT?pHu z9@WLdNXSx?NJ+ zr^GM>uB)gaJG2p0i@OP=C7B1!M#R7&78JDLMifT~oTvaX1VvyJgAuC%MM$%iL{Kn& zL7F!?&_;R~XWEx`vO_^tjgT-LjYf@8lTnh}VU!>U7{Oo+GiVwHr7NtmF+*4>%UED| zg_DJdDo9~4Ws&tuovIzuBHc(qjJVyKhQmslD2*~W#ztV&h`^$l%4=O)Q9b;Wt1L)sT(KnRcyim^Bd z6vs_w+<~KLt%ETW6y~&=EDVKPv5bwau!zZILl84X*lZMvI&h-4*6F}4gsIj{5EjIi z!MehV%7!^U<5$r9rm@6*u_P_?tSZSqN$SXSKvPgsB_$|DK-z0IqM)1Qgm6ldD$qv0 z3@-~W@d2kSiQqcJq_9N_qpW*XZ5V1@X1lADu`AD0dAh}}M|uZ~aw9?&_$2XCLa>wFa}!}))X_kMCsSu3^`RQAZz zr}l1NJ@8Q1W#Ij9UpbtZXj|UZ;(kinb)xJK6UOWg{Wbpj*N3|My}^scXwJy7g?ArJ zhDMXFtc0CDGc%l^XHf5n+jNxxoRkt@0rr_oxxv5tqxs;@H?AD%zVOj_sOJXWe15EZ z>P{YVs`>b84qKX>$f_Uyz5Hs!v-9mezaDyL@fl(A&Q7pl-1~?6_N0c#kZNwP|r;n;w|WU0S;JTJg=)KhWi9U`A_Od;bN2{Oh;? literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..5f346cb1623ffc78d757ca3d0e4528043ca5e42a GIT binary patch literal 1184 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%qp275hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVin%-qt%z{teX!qLRg(AC7!$;r*t#LUvz z$<)%)%)kPs*Cju>G&eP`1g19ysMpZa)X?0>&;qE}6sulPV#qB3+U$~Alv$RV;#QQO zs{r=2RVHq?7~yscL~jZfw?O@2j8m^Z&@uX;s6~oum=G}ifSB-v3*^9)erg^ty%zx! zHjl2}Yz78KAx{^_kcwMxW?tkyWWeJRe9CIg5t%fmO&)4Vaw1J4oi!p!le@LT(@)w@ zO}g(byJMU8Im?Q^-~u@o1qMbA2L`5yB;A=_r&x4@vez#Q&DUOdW^2l+`2vS;#d!sr zUyWO}b(-4R3YC_eE55hBP7|!kiP_EHH~EUxthmFBVXkcJbIMDY|D1o7y=j{QPUmrh$$_!6eKbLh* G2~7Z}D~yo< literal 0 HcmV?d00001 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 index 0000000000000000000000000000000000000000..9765b1bda7e5bddf0925555ab204b887a873bf24 GIT binary patch literal 57662 zcmdU&2Y{Bv)wXAQhoyJerGpfaq9DE5J1S~atXN|Avn3kQ*!`l$D2ie%v3Ct9iU9$! zARxVWkS4wCvh_dLJny{>uV6_upZ~zTGjrz5nKS2}_RLfEz7vl>A}6zMrgJXms3ZHI zY~lal(^KvD>g2b^T99$|k!M`zTvj!Ff*bL4ZRavixU^rt6HmP4s_U=1?vksn&O54K zzr3rjz3Spie}9p4H!U1_%FscltgqRlVCl}j$J~4S-;TNJ8N(x+7h3`nl`#k2P&{pByWKUm|WHre-Q&QDvN|NLL>eBs{vzbanwhZioN zJGS84sb!<)^<4YLj*;(APaB_}{rHg`PwISo_N#pxR#|@M=aVL{SlzDou*{}cyWI5m zFU-HLv`K<1ysdlpgBp)d`cVb&Nq{W}Uo#k#HS@`5165LsT%de5} z>?1C(+C}&Fcb6RQ-k5&c{R7 zy7#VDF8L2`$QMnT+~ofJq^mw~`{~`c9rRZ2+SX>NC*SKnrfJs!!_G=?drjKur?+d^ za@tX~4yxYeyu|ZH^lmrd<|peMGOSbO`OD}^=eFH2 zF15Vz`RA`HTQmLjt9v`Q;`-ZWl(lL9e%;#-Prdz$vgey^PQK)vtY`nH;DL+ZtK55( zdv^W8(|25rZ3aB|@R$V))~sGV|L945&pPj`({C*sI^o>$rQvN1Z=raO>);PO5s%U;2-D zaK|ApHomX#Ut4|FY-ag|E0?t?PU^X=vwP>Vo(X?=r0pwbUy!u>m=?K%uOGj%z`5-o zU-jwimgz~iUvlS)={J^d=~a5fv(4P?7a#T4Yn(f$f75n@zIwmc=jqP%e|A{wcly-Z z`DyJo<5TN@nzH!Qtdb#J{@l0eqzQd<`(|Evd;M#Nw0h%?zAf*b`c8w^L)y>o-JsL> zlP9wA`t1$o5 zBa^E>&@}JMd#j(+_?SmJAKBsL`v>KndSrv`J+4jcde83$e)P!UU${f=D7ky=5gqMx?DE{&Z(hHo^1_FD_WS(c z@#|`*b)5A3gWFA>*!SJT+GIR>!IXC!zmfg=7-QI$QDYM*~dhkFJe z*`~?dst;9bpZkY<`%OBuY1RAs9nxaV!-+?|`;S30tIixa^U9N(tZ(z`Q=N{i+vL$N z7hZVzdud(&)+Xtyw@>iD~U1v@1noes{ zFM8sTKBvAg;^ZZ-JU6IH=ZDVh`{r|_Pk#HPdtRy5>3>FaoqA`@qmFs;&F3GRRriuw zmlRz3_PXmosH)iMDUE|Kr?;YB*&QrD1Y7eb*W9_$} zIQFGFvmU7P`JjUj?XdBQwNF-l@~Tq@w;tX4k2N0oD)X_UA8Y(m{mP8syjtLL0@>std)?Rd(nS2Jcm{`#q}jXZJVDfLbn`s(4Y-1FMdSFRe=>mRqB zQF>qM85574ctXE_ob>Fw=dKz%IWOyiI`7}qCjauB*YEzHVVx&6e|PGFKi<&#<0ncR zeEdL<*Is?DYrl?1cRc<5lXv{>;$CU1p17v)>FbZrSljaD;X7`-e`)nCtyZ?G_fn^0 z$8@;pcbC8R`0&REzkcNFC%t~e#!tGuwdv)NFMTrL<1>nfRqFHk(Jg-0;)tOSO-mWM z_LK#uEO|Ne<(kL!=(g*vcCTIjV!h`+?tkOBD_`FH#54ao=k{lgz3SzqH-ECWsQ#_( zO9z!+QS|bzBeDmlzMtJRby4=T+TB0ve9cwe8?^s?(YBNNojtL4zZcJY?7ZPC{`|<8 z8Qou)Gw^>0R(|l($-i6Gbk!A;ubBKo^VH_~&5t>5!*QEOoP6Avms-7a__2o{`}x$b zr#?S*?vtIL>d|4|A#0yn`_#OrmVGef%$v?^Gy0X$A6|6Sd#lfU>5R>z$6k5YnO)C# zaqy{Up8fv7H%GqNZ0^Tze*AKkm&Y9c=<%;VGk563ceaiGa`dYo)Olyk{M1EnjlN>^ zt>+Crzt+$XK6`88=0`ty^wy7V{om3aX*u^SsPuY+GaKA?-9N9b-tDw*OGiw5dULN^ zKim2E`u0NyPtTn`zvHUW)uyzXbm_=bo|<*U&{{*sTzBV=dmp&(m^-Gl8{V_sQ}re< z`Qnq+M_<3|nzL8jGIQ6+r`~^R!lqXiy}h~1=1Vu_SwSx1u)atpr=e2)d)pJ$% zLzf=1^o(=AK6LyCUwkm-go#%@bM9Ts`u(X%`Gw`Tl+SQ4-`*@?XwrSd`V2cOvAFP- zKjx47ORsK=F53Oxf=zuMe0EHq8hswR*juwcHXz=JuvaM>=t+3bJyv2_xj7#_YST*qr>pdH_lkx@499Ei~2v_f9X?0JDkw< z?Y2jEZr$^>c9(Tuc<4u+KI%2O-Nk2oJ!kO9!AJf6nEGAYwSKG1mB0VjvXV_Z?pZl< zW!9=c)Ow=*7iV96^K;WC?7Zvcny3_{09TwNGyAS86`kY(vBH+}v7SBoA#^yw{s zFW*#kLe&+29sT0n$DH1_!QgK{dE>IK?{&ZC=0%ySYNQ-=_i3qbbpP=F(XFqTbHeMJ zP9Of(ZJ#v1<+#g-o%88ecYHc3;qr}Hr)I9X>(-5n=WROsgu(64ST^dsqPs`d>sjNz z``@a*sMhcrf12NN@l9*$-E-AfnL*e;B*F(|2*KGPcX=YMsT9Znn=Z%>?r@_n~gHC>E?m-)msPuWGf0d2ga%0<^E;*=WtUaHYRgBt*RPm4p!|WghmSpc+V8f1c>VVG7Okmv`iG~Fc)Q!VS8TX`L-(>r zXPxl*$4`Ge;;k{iyL`;%TRs`}hl>l=*L&vBX-jr~a`U#D<#Xpe)3wKvPj=jLRl#Qk zyOz~la@(~nN~cZvc)^V=HorOcgt6!D?7gYaf__WxnbYg6vc>baEdJAF<8OR+$Be~C z6r|pD=k&5ic0E+NU&=#IJ~ZX-oVzzZb6C%=U03$Hwsd{T%l)QbIKBBZwaT6^oAOqz zn(c2ZoU?J>v>8v#cy9Ri;g62H;*T$uZWzC@&fAM7Png{BUtiwTvBNn#Pb=Q^>5YqT zY_R2pWtC4@{l~mNwJg76&%3)$`R3)~N9#QLXnAtd6FW*S=-76V?Kkr-IP&D4Mz_yQf&Wh47dMTpt?0I)agY+wM0#Qez+jqzAB7t5&&n>(x6tB{`*gQc}_( ziHV8LQd3hiGcqzOS@QdeADY`(-57430* z_7u6o!a`S2P+;kz-Nv`bc&3$`b6HuL9-!U3cY8qg>;arT9xMaH;jz7d3;|9~ zPIh=YKw4T_h0n~)^c`UPjva3IuHBAs`}Xa{CTn(SNy)fv+qORc#TQ>Nl1t1p;{Q*l z>fbb|rktkMl&J`)CsmG_KrnRVAB{!jJ)v7K#JKK+>UAuNU{0=iXz~LB` zfXAqm3)93y2VY1F1KC8UvH*HKj+-p1rfOvaYdF*}F=WDk;^fRdY7CnlZOBTHMZ^JN>j74-RR8 z5`ro|(ZnNq7>b8!Su-mJBM!(pIXSL!<;pHMH`nyo<-Xgr$!*!P*|04dZyoHRi4!J_ zH+jY88NL6tsrferY6xcEe*Mn0Dey|$@U*K{tEOXA0^%k!+_r7oDhw+SFmk*TV1(o| zas|}>8g5{C5n&$u;1SA#DdZuK5nR1`br1BW&70l&^&6Zm0W%8=3jX@ZCu3i-BL6jT zL*0CX(D%RCseGNLgr?b)zWw?SPEAX_!PdxD_3G7iSvJjW*s#HEHbY@NbPJUhND4#U z#YY~Vv}kH9p~^}=BQu`v3HBqNP>$-9{2DcCcz~Inzg@eIX?p&iJ%#s;{rKZoOa$Qm zs?&0)oAmy#f@%t|;HC8H-Mg!e$_KKtvpY3xP~Wk8UAuOz2NRuhb>QUL}A zf*pW}<8hi&mFJ1}gW&}xG?iBks8y?$v!=S$tJk>o8#b)B9o4O4$A0|0@&2NtHr^)a@~eSrmHE-xq)C%X&0Dm1 zDl;?dr2PE61iRLAD_5@ch6_g+29cAopot#R5G}gO5W>USrfHKf_t+sWvuPW*@ui1d z*`~GrdenBo?cCDl7S<|A2v4T4ToK=jG?KLtHR_z6VrgX$xMXiZ}{}MuwM>fX6_}qm0TyXR2jgCJt|T z%R^nI8%DUq{5Gz{4tI-7t)Ai{FJH3*b>XE4Ax=6F;^61hNp(Zl`VLKWbu{u-R(V{O z*$8#mA-{2cquksoAKG$srHM~9-d`RAHO9B#Km0*K+XSWe?%n5awzD15v}u!sEp~ar zW(XJGa2l`r$sT8mOFVX{OF8Tqmt>~0gMF7`qckbWoUoC}Tr-`X7`Gv57pYvM~BAZ@~v>esKI)23~^S1VPnG_Y}Ao?EeEg+B$N2%yLi zq)|o+g@%v;#KR~F4Wu$`hB#p&O_|c#Os(T;28NU!Ae7sPGGMLS_n5Z%z7_Tk8+oiu^LqE`TYt{%S*IEA4&#k3nkDex z41W<&O`#;)5LId3qUGos)vI^5%N4hH@ghGJY822w8b>3E%Mr&g&~X?;Wk?f;CSyUv zDBMxOF@lOZ9_7l8xzvx&a+_+sDC`*YeLDg0MulHSrcOMvaneh=D1?p|KcN7mocM@K zSK{y}FO5Yugv9n&hc(F6P z8DC;&Q**5G547^%8Sj4t?0*ERDUj5xS+lAQ8|96uQKM!%c9nMDu>u$jL?hK80R)Xa z8Z90g99}|Te9|&9an?^9#w@Pi$}K(eI+tw+7)ds@h9fh?2O!WxP)W!4VrZIr$&)cC&y*`elplJ$Tik7k zOEtT*yNwM+2BtatF%?jwyo^!GShY@6V)~dI*5ds+>8(70DV<4&U=qix+>h~v?V()) zoAS$-FL!x)c~srblA~;CVZ?4XzF+~7W6Zedgolb z4nr{<3dc7X#nosUg9kj($cM)Ch$F2KV{*w-0r2rxxi31N8-Zzn`b!qVQoEe7uvj!( zTS-HQ=JAfnmOg}`mtKT&)Gt6)PI-jrOgqG6*jCX90h`Xsh^=I&UDc{q?cDmH zgWkZtR^Pvc&(AIttB6DS$8vKk_v6}Y*|KF`Pa3U}20=zpgUEx14;zmWLqm!m8M^gG ze9y@@xk)v;yQ~BoHP(p*pdHQFRXn4%%(2S_%!)8ZXS`CsyZ}_1kb0pLk|r*F6_OXm z(MxGU%HVP0rL8#faiLt*3oiqMJ&9fN^y}TH&*R3LVr70dMn7x%wF=NGxnIBjSJ~45 z=Wr(6CTH9-8!qE?&h6aqvpVh!XvV{Nke>(8Hxh_8KwE4T)RK}u<>zTOe=qq`&pox#H60RdiTi4%ovuRmzQ97A1Xi$d!Op3 z@i+lXTn&&RNsEts8VU`gvHlU(ZFi`9u}WX-PR1JpG*Ud8R<$u=e6W66H$s$miX}2V zbNLgyIZh_VmO}^9p)SfJBrnuGzHG=N0K@VJiqk$hfz0KO0h_RR$&z6`di0z&apHvW z#zTmJCN4UeV*r?cLBM zxNkaNVDqp&R+3ugifn`$wg%l^#{}iK6wyHS8ziIn{{(EHY)1C_pp)v{E8&M@@T(na z7h&j>Ry)ExXaY~2L43%?QC_wo&BFpVaMG77UHWw6#*I5!K0D&Qy%44YxSs^738V!n z&6+oV%5I%C;xWqb)>f3gx95|_qqvkO#5mAVp0o^wZjvE>MihK4I(2j7wwanKHqxw9 z+gP&s&k7JXpoCp=%*GrtMANX<51;WE$#KO@{oxvBqzWfvLy!&?nHEu-pdm*9s14Ge z{7{zC)Qep4iAS>FLl$&+ctVng-)h#V*~kixusb_v7`@13(CQy_H2bHxq&|K7o|BVP z>BK5_Zn<$I570$UKq*8ayc&R#`}6R_BM*=CB~*HAO?xS`pv2B`t+CK;SIY*e*gCD> zAX&ULw$o*EWV39v>-F*2VSX$woe8CrXy}8-`0QwPP{H*wUTL1v;Ov;R07Zt{p*SN` zqZ51JNULqCpAZ+ORTewvn$mpJgxkB(GRDADHks>w;och;+0 zCxIPWIPD^u#;E~eRZpy)KGLEqR9=`St~6zk ziA_{Ld9o2Sbiq!cEm`IoG-!~pd*`lU7QSWmY_)PfI1T?Gs3rj0q%_LQd$eY)nzi&m zn3N)0U`ctU389Hjqi~d^TqJt0aiZMl7eL|5$f<1Lm{IM2q8Zz7h)iQz#58PMLd!E1 z{jN7E3j`iW1Df|OBIp4%mLKR8ubcFWr$;3tUCC4DAjAt8_>jTKW;EkMS&GwXv>J(vKXc%}H(e>&#aNA4m;C{D(oXQ$$9tdLWIloUJm> zXGiOq^rLR-#CRAPAL`?aSsUUV?NT0b%7o>R4-neu3E;3^$)rQ5yz*rS)dMd#02(!F zWH~l*=JuEdGEGa0%PF;K{cUhpOT)D{y^P2brM&vUR_aC3ZRf0MkZ+# z1vGf1pg>e!sIY_rB91bW*{or0w=>6p*|f(c7THC;X~eo}OQ`jXXtb7FJ;heWH1Xw= zEYI(DEuTpWR&sWiC%arL8yegfupjhR2c&*E(nr&i|?A$#qyRsQO z)0Jdbv-)g$-?7#0+Op9V?u^cvEJZUPGQIro&N~#g$Nm=61aVQ=->ca5IXjn7X zmDR{}Im_&Nb$0}6GzUi|Y@9?>u?LnBV{%z84NTtwVzN2yEi+J&iF_Qo$YX4b&Zr`e zBThS^bIOCOTsha5shv^c(lc`0)E&9*>+%L}?5<3=-Q<;}*}Y%uoQ*QeU7L+lotycI z+q!tRZ!2|k#lVAabRgP|eCV=)Yyu4jT{LWB4~x63?5xA=H1G6J$B%!}SoVAEx?fOD z7?w`4(Q{Mv>ecLtxYb@bMj(qyiOUgJuU1H&=xPK&OG%ZD54lf@{Hj%|xbl=NcX;z^ zuEV_DZo-;ES1r{>r4=Z3cHC$PmKsndkonv;P!nq9q#&Q(X5=^WC9s zTDp39OXce{t?rn<4)D@AqXSWjZ6 zNyMCqZi#ikCE16&w0_-P=Z-U7+QgS!!HW4_4v*b%sY0iT%)GaQQ@`vZT|)b?w%TZA zI=f2T3U)d(_1~mJ^!z7-G!qHT(Nbq zjG9(khTS4eNp_{?%V@hjN0V&RL<-Ztb*M?X2fN%;4t5=A#?Z?t|7R1+4B(v*}dc|nOM;N)Zg(y)bIG!)v5SiO3~( z>(;Hez1Px)Ib01DD1-olCoZ}`QW{0Yhgk6=4<16rm8Y_VfLf(Wt}84xgJx#Cdrxj= z#@JmHYEPX;F0+L%;iexIGk=-@7!fi&U6`d>}BU%1JraZ161?T2#o->mU|#0Kt0Cb>;X>3KCoGP3Xi|q6&`n` z9eYOCxGZtlnq9JH2#rkiL=O!DLf!@hAH&H$_hlQ5IJXbM8j@(Q;MYt}N$yi(2GUeO zna~haNJXM6uIWm2LMap)6N8CIa-qdu&G*-2j1s1%RGZ?g?beB$8-8AUH*U^Gw{Gn= zSF27XS7fURl9+ZAjVaL;xn>LBa;?hOyDU4-_1~ zU$e*$64p!Fjm^+iI--trmumJJhqLco^tR{2YR;WImo+k)pDhw0BTlnj&04iCvzL5Q z=sEivRiZH}soX1XA#w5u$rGPw3ROnsM3)NCc{Y~DF$E$k+14~%)tof<=GC2D$<_i_ zu)WYF+qA`qO)1>tDs5ZtI)3q>Ym@k$FU#?o0F`Vy9mc^cP8i0OPZ>JgMI)xUZ`T#L zI`wQVH{I9_mHIW*OlR1XgO<_hT!0mgOp6=A$32(=H_A75pO;jpkxRd3xJ&JQYK0E0 zv)Y_WZ^95@(yXmEqovfSS@SYW?t^1R!U~~Ra#CXAi5L=tsKE%KfuUE=0VJG2L=1d{ zc;&;RIHC9zl8+;gZ9CI%xUNLG&UJ5D!`*UfGq-ug77u2!=~-{n7p~{(H(g6Rte|cV z!qr(+Cv*X}KM+G2N2~BZ_Tggp^1oKP+D)tZvt|xD%9(OKsMbzPmw}x9-wR?4z&bovvG&UPOBybGt_g!b** zH&04RZn4{X3x(tq$3PMGk@2Yz8eTjqLkJyX32104BRLAWE~F7mxjZ+_D}lNbLOD73 z|9n~-H*WSuH*4xL*EV~qYmrspa_xYC>uKtf!w~2tK&6Z7Bn;zGIWEJ}+~;%GyDMIp z<0{z*O|;9EBBoith8kKnI?JuBzr}|P`^S{4sWuv|q|FAFzc)`b=&?NV&8Kzj6dy{9v&K0S{j|ej6A=k z>ss=v2NXWL-?-20B15QN((3gZm86NwlTNjB#+`P=chhs@Y`bcY(d4Asp#~$8O%dxU zQ?N#9)HVRB7^yxU0p%}mJa`d^6>F}67>!neYvoNyN~J2U&gJ*Gs>hsDp;M@L7)Mv0 zfzGX5DIqf}>l`yrg<->yYW7aH&)V!IVNg86WE_mksDg$g1Q3k^z+l>>9AyYmAar3` z@(BT)sh4+6xU>j$p*-cv?4Y5zxX`s|RKpD!GQ>Ui+;d(BMm2TEJIWvzU5FFn4iuIe zPWRq>udBOqnQNBS!R>O<5ur6CHaZC-a2c&8$OGitYH>y#WPrx+LpOrxCN7HmFh;jb zz^#4CP`7#1^M0nnuAvLVp{;hz+t16_6k}a#>s5i z!Bs!<43}K9eg&vh$Rf{rz_yz>yp)$iN%-U$!8`WEB(?xf6~* z&b4aU(w`M;=PaJE9^$kM8S>B+55rL(e&klITH{|B?v^muHD39e-&HfSX$`HojPW2E zIMzHr3M~Y*eMe*rJOS-_qG>;xt|LIBj$j>c!)mwn&EfuIA)2k!DY3siwxO-enr5rE z_Q*@FnZ;_^dySK5>)25_m2#5x78#ioqVXY^&=J(?hDZHlm{m`?-0fOA$L*T^h1)fK zqAOgz7#2S|kfo>UxrhfSWZ@KIPyhi?p73Xb#Me*4Q7WJa;oqCKFIC@svpe(5Gd*Zb zN0h|~ICwR!tE|tk9~p(TbYaK;!V51{?4H?$w@xc|IrB!iMNLn1>(g7o9f2F$^?CqV zQ$4`3(2xb(c-r0#(!RjEb<14Q+|S+a#WP%z#kqk{Xfr1IOE-nI4LXiEOQ78(NVa3u zqihL!-pHkzYpwo-p7wb-x4meaFQ6X@lOT-4)VOW-6lY7cf21VIuD7xqv~(Fqp6iO% zEO&+TzH)^#Cc2_!v;AHh1G4r~7I`|s(MZ(vZFlzl)Tv1O})LZ4%LCGVIBQD;1?zzXe4H-BNEm+^1)~V*Iu6oza-MYxlJLpt!rC@AS zS{NIl-vbh0_sIiH|1e(xYEoiSaz}0D#jGBWAPfTt2*i*(CXI4Q%?|OS)juj?orh;*f=0>f%h3(QrORAC!)30T?NXObca@8GdLXMbZs2udx!`sh`k^QFX&^~o z(rPm_Iq8PJ#I3DOEzi1=t*J&#Xn*j*O|5VSJvH7*Acb*+_+&eeEnGCiB{b_01JW)J z3{Xa`)e!+~VEZThpjD~s%DSB3$~vFm%C~KFiA$!rw3+{MDJ$ogylDMC%&rNu?PHR1 zD69I_Xwmi;UVr`d?y}1+^ZGHu7zvbrvu2*L6&Wy<4tjy6IMozm0+ zADx9WWoCh@1?yeI*>Ah5*>)+l#n#{1<6ON7e|HU+PI7rE#jZikYTjlH7RoRxnckU6 z@W@oCHYm-k2~D21h)3~|m$nxb6;HJX)4pN)1+mu2w%FRD;@d+*C;*tm5k?$gqy>EO z%t@~N*vtG$vIoxd9$=*U={Xw7jA%{Od$MY{g!X;imragv&wX&MTe|97*Ry9&$2v(5 zSEJM*=@X`*;h^>C(ZemUk7kS?Ki=z%@!6QMvyOKke)ypueHaiv^?dk{i46pT%F>~s zV*?u*&OZ3%Hroh(XVmMiR`sf`RQ$Q+ zS2;p^OvTD3&}*aTFHBIrJ=a?yM8XtOk>Uywlv-@3NvjsR(t6GO)a!x57_n)%V(K-U zn_e*>8M%093Z1KxQRHUS?c-|9ALHiCnd3JthaY~pJLHfg`aoU{Mz0GmywJ^< zF~i@^f}a_NkrFx%{6F~M1HUN?4^se)k%c^5SRcFcu3fu&-=|NXip|*e4d1#ZxoK|L zW6${STxfSsd2A>?2*MSoX1e0M_8z2Y>WzUG12Lijs7;5l&6Ee#@|lh`H3M*AZY`Jg z$us`e8`p^6e*3MPJbAKv@4fe&eFo02L!35YG#V=dD2z0Uewl8^jvec-IpOCpd)b}0Vv(U8yo~Pof{{l$%u^c()i#C7ql}#LNRyv#=K$80t+rl2$Mll|STuSHi{L%X1Mqf7|Zs7 z~>zPG#0BHaG9(YOR~&HzgQ_HH~@zgiR0+HACaNl2OLm zi{YC$Z|*w)`a)+UGFoH^?mt530$-g3K-F%(BWQQ2DyDmF3PU?c7IlOUo6rI6sLspR zwJmkwB!jxbj&UG)DnrMhOlWg2(0)`_p`T$4N2&u<7_xP(6iZk1UeXA~hf@=ZQlYPO z#&}m;tGUIa>2$xqDvw^ZPkb-HiT0Sv)>>`d9t-)X6>A;9pc@SY1nT9;5hHSG!L-Ws z4A20ZmzU?JO`GOY^3!PfYF`N*riLCik&g?@iJCeUh()mY=fTY)TvV^_wmOc z`|{{4JE<&n;*g;@JUG<q?l#FfE$OQ$KYXlmF}gT7^p-5l9mv~NlPGM z;=IXjPrr-(+u9|XPHi*-F6$=k(8x4WG*t&9*_82*qa>MP3HD^*wpuM+)%ElI8pr-8)*fnX-cZA#9r>qKC$8%H_?rL|cS+Rc}+#aC*CT zyVNU3BbY+T7r@+Qfi69{AlEKb`?q53bM>naq`MA-Di7?8Cz=|eeq?M0Rp_hNR z+HL7@oZD$ryX_Gx)=fWZ%|5&+Ox*ta2d@D$iAOyRNbh5553GFxAbrDJms}8mL~o}K zdMCY~=@(;R5Yf@eo`iJ$`t|c8mFXFN>8UmlQU*F}E@>`Xn8I<;Lyy7Y)1oQ#1?@+& z*_17}vtr2?sNzE&&f5)xm{T1-5lc(YkfyTKjhBNLv)i|n@AV_q8ee3iEd!b94({hbRI(G>f1&UHqN<_Jl$5CJg93kXtT;sF^t9f3_2?c|H$6AQ- zC*Z<3d2+}FD0E~NvBUL>vdB_7Lb*_;Xp|REd>kINA(Thwu!qA7tql)G8>NKAokq-t zSx!PpV;JSB5n;Y)8TRr>-ziVHH(FlgN(|UUdygb~*M-qZJO-*YI05hsOr~2O0=DJj z6KoW(v`+-*WY|M!yVrV_ z=?KgOY?xSE(T`arv>7@AylAp7bmHO66!M4ykWG&dkW&GqQk)um@epGX&o(uq*|kSE987e)s44iW80;Ino;uUJL<^2iii% zLB$CtoZ#Ml_gybnmmjo)wzIRw0We33fCN}?zx}owHoc+i&~&BiZF=@^TitbSUflqT z-Y?2ZXJ&}5Sy=+ufYDjdgE*mViC)x4h!dR1Q3QoNz3tk4^!XnZ^pUK+26Rs+8yPVl~;3{%5vOyyAs?s12M_|v}JCR zUHsdtVD)NeyDp9Dxo*v>xZbU++f(OzHxy+h_C$aQw(sFueNhdeK4D`O=LP^%D*6Kg zvkxOS+$2fYbIv)(KQGJ_iSgiPG|3k5(NQ_IV!fsAwYlwGc8w}-(&_>?asFa=_oyYV zeZxwwXUl5t*!HztzjpjZsa#i7xZ7pe?7}9FQLfIS8IUv{nF3IH5z-zU`S{Q&Egte> zc-f*Afok2wEr%F-F`@)?fgLXhKIOrO<2DzYkA(6fw{h&#u2ai4u4CIauGF5@Ey=8I zH0gX;FgKs7EU{L=2r>c=<6ZuQbO;?zq$gkd`5=Q4&fVT}lMrw0R;bc0`U z!W(bA(VchRd49U11F#m#@S$wt)L-7HgG)$HbG0+mT|%vF8`WiQ#->6y?Vros!(&#s zfi`llAK1VRI4Ik7Xk5#!S=+$h>*QKpQ?TR;%+RLFQz+Y#Mqkp>A3G>+WbCrc*vkA7 zlKolBde)ndR{ExTZTA4NzRxaLL2Qg*x!aKwm~Nnpp0`T1KdfLQ+P^t&uViH8*c4qY%cWD%c6tfkc-Emi@Yb;4|U^255q7I9@6#(9N&Z(X%DYW_n_L}jVZCu z%U-It%U}!}9vXtUfE0)dRfh8L&=VOw>@F+kWVyKu7Q5wZzq7|so!hw89_z4UiX?k1 z)in3Ys~*bZXb3L85uO#Hl3ni2C8e%+UWTiZR_4B* z_DzLe*h^0OE3LNv)U-MVwzjt4YG>Z-?Te}9<@Pk);*!#m0vaDyLYzt{sKQjHv_g1f zAo68Q;y4V(LtBj69lHzsMfvR6v;7ke-24W3Mgzt}htQz|@+3b@i^h`@T;t~D2>#pcg9zP+KnMrk9h#K0>xUt(WliPEX|%?FF8rMg1fSh?&B zSFNdi?$0K|(tV> z`Gox_Pi@4;<`$Xv^SO2?hH1$(6W9*rB@9j+4UVTl$0!&~`BIWJj!^mJAsa(+UzAZx zdd!$H{-U01MW#WfNG>68OoKQ9hz^QFN9KbMKInTZGXZ%x_{2*GQJc^Q9`Q*}(fGS; z7him_8$Nuv*PY86^rxO}b=tb3tmvktuOV`)>afEO^N00ZQ$iQel{vONs2j-CO-zP{of0*CG7MJwE1ET z=iUjqW$x1*iEc>$6WyFo-tl0?Mwg`dy68aYfSx#b(4G3_$b%NPi8`#T;kWNdE!(_l z(+BoNmJ$>owY}Q*Y(ixSUmGW36yH|ka@eoEW z2LL!Vma| zwc(7Ghs^{o`8W@Zg~Nso^I&U~`pj59apY4c9S4V6v;%!`((6FsJ$K#Zet+eao{w)1 zCuUai@8GL_e129fB~-KZwKaQ*)#t;{h-GKIDJ##%(T#Ogve1Wip|5E0NLTVjCoTs+ z1IaqwEPIM@i_yJGnttIcwH@%d%%qGCtV5wd3JV12q;aYUg+jo{g9lz26&em&$O|8G z*l_|VhvE1yzx>iqgFK$e2C8x6CieZJs{Tcz`)njJnpsEVN9DhaT#9KZnDNEseX|hpt#o;1-y4VA3&5TAZXO1#yk+QX8#BnU!57TT)76 zyL8!+`eiTVNe}EoTzRrLG&yD<+t`h_bj2vy2UP3z&)aKpe4EFf3*NgqB90)0$|F?9 zpi(IaT~7H*6RNxvi!aB92@tiBV$`l!zRVrb{V>;~O*8km4<`C!H?Bw3SjmmAhcxxz zciE0MHN}j_*V1CN9||dZ?X}ms$usA<`SztW|K^%aG#)q)8itL~gNE~AkO%0>D@e1? z*cySUTr-Adz<97^6Z9jG(8~|(Pg(41e-)#A=gwWvTmF7QEuTMc-a>mCZh@^)EfFl? z3gbb74oyn=nu8xdLTq}#g*@?!k}t)HGgGi;ax0AE#sv!(xtTL(xrb^ua*J#V+t}#> zn@epY5xZyWKViqIlz+rG}V zKBS8qYtM7ptAh4NVysg`kAbC87y%dMS(P!TksSeBU?$Jl^_`sw7x+B@)9-Q`>sC!<}n%Cp_FlZW{!+?1=Z zo^QGRL>7qY9upQbO9gL&P2Z{O*Vt)$bdQ&{5Jy`DB5g(|<&h5!Cp(ibXEjUA*{-C~LDqh1His=@g)Qn`G;)oOVzGSXu_kBk zSnEn{wqVmo{j`lR)J672pyHv;iQ_3#Y@emGPXCy(R!qH=+Xqx*wlA_JY_N^Wcr(ZV z3di>%3W-J>9vsHPQCWPxKq6l~PyF#T%6o;)xEL7zlBS(pV(&BkO?LPr9t#DmZGZre zO;Gf)ji_Vs5lFtffU5{&dU|5)M_|%<_?v6oisKp>hYq*~Z{6Mt%)^4jE zR0S<&h%8|`M3E>oHfEKYc2!np5540glep}G9c2^I6p}}qLr2;$9dG(>Kunmo52&$> z65CBZWTSNeT2YaJix&((`BH{-$U`|s9Lf=AgopVm7f#P=2&XRaCZ?vl;&bou7NcF> zQ%|fe)6PDWGqb>CG;7bD6~e?8PN%5b4J)EwIbXfyFK?JmBcEtfv~8lyr&?Wm>5AJEhIToVFmKX6oj=khvSk>@ zR-q>^w3*W2V+Z)-EWOVtCI5RP)r@JjNGP_E@@QgG(v$YAi|?sw9EEVCF^u8@&=X?$ ziW5rFkQN_@hY^ZgI!D4`$Jv)CI{InXV`l{-Y#4X+|0qo!0P-a=WJF&ki$cGq+P%h9 zzRPM(qk+-MG{}3Z8ll`|;4M22Lo`K(?V=M@n)s3{Yu3q?)ylJu=S4=-t{}PCQpb(Bz7KH72ahm_+5S-@u{OlCfFpAI8>!@!+Dp4H6z$o=b0JJf;(P2=U~{)51LEV`$bjWS7;>cS)ySk9c3d2he^1uwtaf(&Uj5eTfV( zZG%S|fH|kLQB*lCYO3nsT9~zS=FFM?wjIE73B{cxc%&b?$TLNAB$@K}oA?`;u@P!v zI6{eAy^P$7QCqm(KC#2MEuw=2wO6*0{Rr{YCmV-0r=yW)ooj*J-Fm@Vz0U>-GvM|M zstE>tJL508M{5!5o<^HODWOpGut)h?><1n-LbNa>pDB-!hGbp-a5NGD&KTL~AeXoW zQCw*WGK2E%T@R=km8rMLu3xil{%cf)NvXuIot#E-50(eHM~@!uM<$m|j9Ti)`MQuF z=K;2gO{d8(-{E)09=zmes%58~VsRf@+)v8}aMGL!el0~7P94T4Vn5U?51--+VUsS_ z>1>n1Sw>9Rm<$E`1vQpgYQ6Z?l9J-D!%G+`rV2u^C6rM401c1Ip@;HBgP&;^M}u?D z`GZT$@$b(XFS2}A4A2;`MuJSru=5E&Au~FS;DNP*yY`g12368rp8b`IBKw;$Tz_)8 z!U$!DtBsHVML!vxc)Ujw%2ZxsBX8EH(J1vJ)2=VAUS7fUe;6SaXSBN66Dd~V;yX8; zSWfoAZa9V5inxu|FKo~As%7mh~Ld~Z!vmI*hz__g&019hwk^tGS>6;L@ODWP(N zAy~wfR!F0CuM~c!733l-?ckm+z1wmAc_1t5K})cc9J7%J*W>49Ml`fauy=2umviES zZZVJSQu`8Uqk8tYZIX-Kf+gSDBQ=Zs8p?fKZXmD$!iNt1)HdRwgO0w0g)iLUD&@C! z2~}!ED}2Q|N@s{ll@-}d|M^o~5|6!@EZQg+pN5W&LXhE+4XtdEbtu-P1CCN;{Ln}x zpPlgJJw-)tQW5jHCt5{R22FJG!i}+Ck-F@tZ&52>`q9v%O3D`01`lY zFoD+M&?-W>AP|t}<3s>AMxd}gQgTSWG`DNxN;hrBEH`D!6#pFw9ya5&iYZ@4Q>dAR zH1TjY5)b;48omN-H8tT{6Xieo)b?F9ZC{r@f9gyV(vhoRW3e83@*gk;o z3GLg{JlEcz9|YAZqgxekSik=FCXkEViV9RwsDNlPgz~}$scJPu>nQ0u*VsC0?FiRT zK%!}k#Yi4HM0(hTlJAv19TV)QU?Tu*L9sn~P%YcFOW)`|`{HYVo;B zr*@F1HZU^rO4BBEubya!B>x;yv5qqRde8c5@siKp^VjF_Q(mEDk!E>Qs5(`j^6WjC zwe}9~4VM3dqm=SL2r3L_>@r(#Hd`6Sda;uuwY zHBY_VrRN_M1JKIHWO(3Wz%uYi`#hg7a0wxp$5}|as4&$HsA)Uat&811?CuWhCP#Ga za2XZxo}#ozBS!Hs4NY`r9e_>za+E7yHq(z(ZIT$ZNqg*-%LP*r>&y5^>__b;#3?N> zL%L;`+v(At>{4sH)%}B`6j?tCDoo}|Z43Rpf$$CqRV*M0L!|&R-V0FmJPdLN`9_Gq^y7Fhrp9j%ExMena@Rd&nH&Dee_ge1-P((d^rO?RFK9nM2~?P^5)S*f+In=M#osqW_y>nj z2BRFv(EtpJ3wcqR#X$in&Lq?r=oI>L0g)VYo92)7ctkTLO9s#Sm4|-lD<0CJgO9wB zpL{^U(|Hp}0_9#H6X1f!Rm-haa0R>e=6cBQL5C=m5r z5q>PRN*R_Z_RYYjY}0YJjDQ@xlqJMNLvh~N=BYq7Dk=6^*~M$t+Fxa==IUK_mmL;l z`Fo+fdCsTqz^KGdf{6322v0XT#r9cJfaE>bVzU@w(7ROuGl%9ED{mkNer6`a%Y*DV=UF)xKw&j(%#q6ebKSBhII2XoQTwI;%%N zHIh_b@?v!n>|+elG#t4R2}`umSIJ(X z_{fy$Oc`Xw%Oj1lfJ*Phljb@Rh4S+9_L=ga$%lFfX!4LL9y$cm9+wuJ3=xti7q5@# zKNS8@`LKRuOTI$n#?zIjk*T&w2k4^N#%Rjw)vE^DF8wE6zJ$6;-oG_cD+(thB-v40 zReKnFtc}=q&{0s05FeqG7L9b+7&VxDKu6h7VWp9+xMYQ)@EoIP%3$s0NDpLu6t^bsE(n5a2yf`FMJKTJ;Dd z(yB{&Y9DmP4==aP%^}$Q2B%*2&Bam)&c!MP5_}dWkY$&lO6&Ry7yP2&&gegBgi2S{t2E&+0;(5ez}gy{W8l7K$_@w{K|T$VF+)X&hiQ0m zG+J~TuQ+*OoHP#E(8F@#BUIfHcl3)+;wO{~`NbnZkOQyyp{pLzkRyK4lva6o$g@q+ z$98OanysNbEd8?pMTY7oF87Opia@Kt{*Z4cW6%zuM9F0}O zp@quI5SpS@=7&O+C!~Dn!g}KMA{~~cTsU=ya)?V7q3RKhe90G0`dFIl(C6%~%jI?n z^rO36WbMyM*D&uF1r@1|@bOT=FfL=M0O?Sc=#<$X zUHJ;(k$lDXSC%}1p|WA9x)dreJ`Ek3IBF8VC((5ItTEMwxg+k|%noWK3p7S<*64C@;Rufzm3YeCmvM@BpYl zjqh0ES3YUU32D$NtM*&oO1sg0p^eZ_EsHlIe(*Y!@;~HMXUOxbfJy~c8J0@27o95G zCC^hfb)IOA^Yzi_P?-b8WqcWww0Ma_S6YoyI^98#-M+l(g*@40a+YsG0bLNa^jr<=? zx5y2h+OQ7|<$i5v75h)FT5s3%*4E!ev`3XLRvC?=&9O5ZR~{Dc@Xo)ab&y4LC9i7xGCmoe0{MD!5urgm^q=g69ZU~%imq0h0 zFZ2!4Ot9BIRaYKmR{oN3@*X{2^C5O$DP8HE&8W8hI-bfv}r zLm?dqClFOubrXh8^{FoLS^1eJ>rn&qMdJs|Uwo2!1ic#Vf?b-djrddQ~P z@y7aJ0~5V)`)m9EIjE6pUO5nCT29W(%d2Uh+WEa1@I+I(nS~L$K_g`J5D3ZoPeU1s z5cx_Y*XlJ=`63J7wzuLQTfTfbkIwQS&96GmQuqE`sGIVCGoVT#LQ@oQnVOTEHf`F% zHdQ=f(Z}d*jOItM8iUb8Z}}A?4*G$d%7-CwdC7^%U_{O~AjjFw?|;~{!}Bd4Aemyn zzb!scrN07Q`iG)_lb}jLQd`!VcPK4UMIq`6?FY>(F@k_}g5RW$5yke+hYkW}9Kd?XEQzUukRQ0^7NMWv|@x zwG+T&6#DSD0;1`&kBdyQ56LC)MX~>1olS!p$pSkJiQ^PTspwbpG9e!D!m!-zBA%$k kZ}gYfNaCF}xV$|1>H6z0+kD(data); + return application->onCreate(); +} + +void Application::terminateDispatcher(void *data) +{ + Application *application = reinterpret_cast(data); + return application->onTerminate(); +} + +void Application::pauseDispatcher(void *data) +{ + Application *application = reinterpret_cast(data); + return application->onPause(); +} + +void Application::resumeDispatcher(void *data) +{ + Application *application = reinterpret_cast(data); + return application->onResume(); +} + +void Application::appControlDispatcher(app_control_h app_control, void *data) +{ + Application *application = reinterpret_cast(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 index 0000000..c23ada8 --- /dev/null +++ b/src/policyd/tools/syspopup/src/application.h @@ -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 + +#include +#include +#include +#include + +#include +#include +#include +#include + +#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; +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 index 0000000..b04d4a6 --- /dev/null +++ b/src/policyd/tools/syspopup/src/interface.cpp @@ -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 ManagedPopup::list; diff --git a/src/policyd/tools/syspopup/src/interface.h b/src/policyd/tools/syspopup/src/interface.h new file mode 100644 index 0000000..8173bf1 --- /dev/null +++ b/src/policyd/tools/syspopup/src/interface.h @@ -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 +#include +#include +#include +#include + +#include +#include +#include + +#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; +private: + void createWindow(); + Window *window; +}; + +class ManagedPopup { +public: + static std::unordered_map list; +}; + +template +class SyspopupManager { +public: + SyspopupManager(const std::string &id); + ~SyspopupManager(); + +private: + std::unique_ptr popup; +}; + +template +SyspopupManager::SyspopupManager(const std::string &id) +{ + popup.reset(new Syspopup{}); + ManagedPopup::list[id] = popup.get(); +} + +template +SyspopupManager::~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 index 0000000..c30260e --- /dev/null +++ b/src/policyd/tools/syspopup/src/main.cpp @@ -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 +#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 index 0000000..e9a652a --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/bluetooth.cpp @@ -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("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 index 0000000..48ee238 --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/bluetooth.h @@ -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 index 0000000..16719d5 --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/browser.cpp @@ -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("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 index 0000000..e8348ef --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/browser.h @@ -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 index 0000000..88b6e50 --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/camera.cpp @@ -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("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 index 0000000..443098c --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/camera.h @@ -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 index 0000000..f02930d --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/clipboard.cpp @@ -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("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 index 0000000..387a6db --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/clipboard.h @@ -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 index 0000000..3ca7cce --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/external-storage.cpp @@ -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 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 index 0000000..4ef8ef8 --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/external-storage.h @@ -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 index 0000000..d55b67e --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/krate-create.cpp @@ -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("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 index 0000000..39cfb32 --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/krate-create.h @@ -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 index 0000000..7e18ff5 --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/krate-remove.cpp @@ -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("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 index 0000000..a1b487b --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/krate-remove.h @@ -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 index 0000000..e6554d7 --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/location.cpp @@ -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("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 index 0000000..9e962d2 --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/location.h @@ -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 index 0000000..122d9ac --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/message-retrieving.cpp @@ -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("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 index 0000000..503d553 --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/message-retrieving.h @@ -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 index 0000000..871cd3d --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/message-sending.cpp @@ -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("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 index 0000000..5bc7378 --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/message-sending.h @@ -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 index 0000000..66dedb7 --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/microphone.cpp @@ -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("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 index 0000000..ddfd776 --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/microphone.h @@ -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 index 0000000..3b4d93a --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/nfc.cpp @@ -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("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 index 0000000..cc90490 --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/nfc.h @@ -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 index 0000000..3525d38 --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/package-installation.cpp @@ -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("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 index 0000000..c898744 --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/package-installation.h @@ -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 index 0000000..e74bf39 --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/package-uninstallation.cpp @@ -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("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 index 0000000..3e0d66d --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/package-uninstallation.h @@ -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 index 0000000..60eb453 --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/password.cpp @@ -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 +#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(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(z3ConfirmEvent)); + } else { + popup->setButton("IDS_TPLATFORM_BUTTON_OK", std::forward(z2ConfirmEvent)); + } +} + +void PasswordPopup::dispose() +{ +} + +SyspopupManager 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 index 0000000..e9d77b8 --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/password.h @@ -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 index 0000000..fcfb972 --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/popimap-email.cpp @@ -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("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 index 0000000..2d135de --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/popimap-email.h @@ -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 index 0000000..7ec3d7d --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/screen-capture.cpp @@ -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("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 index 0000000..027ba2c --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/screen-capture.h @@ -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 index 0000000..fa77c63 --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/settings-changes.cpp @@ -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("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 index 0000000..d1fe383 --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/settings-changes.h @@ -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 index 0000000..839022d --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/usb-client.cpp @@ -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("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 index 0000000..23c895b --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/usb-client.h @@ -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 index 0000000..2458706 --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/wifi-hotspot.cpp @@ -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("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 index 0000000..3ac3a2d --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/wifi-hotspot.h @@ -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 index 0000000..65fd4e9 --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/wifi.cpp @@ -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("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 index 0000000..97ff99a --- /dev/null +++ b/src/policyd/tools/syspopup/src/popup/wifi.h @@ -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 index 0000000..7a85cbe --- /dev/null +++ b/src/policyd/tools/syspopup/src/syspopup.h @@ -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 index 0000000..91eb4e1 --- /dev/null +++ b/src/policyd/tools/syspopup/src/ui/appcontrol.cpp @@ -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(this)); +} + +void AppControl::replyEventHandlerDispatcher(app_control_h ug, app_control_h reply, app_control_result_e result, void *data) +{ + AppControl *appControl = reinterpret_cast(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 index 0000000..c67b8e0 --- /dev/null +++ b/src/policyd/tools/syspopup/src/ui/appcontrol.h @@ -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 +#include + +class AppControl { +public: + typedef std::function 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 index 0000000..46ece82 --- /dev/null +++ b/src/policyd/tools/syspopup/src/ui/button.cpp @@ -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 index 0000000..9275d80 --- /dev/null +++ b/src/policyd/tools/syspopup/src/ui/button.h @@ -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 +#include "widget.h" + +class Button : public Widget { +public: + Button(Widget *parent); + ~Button(); + + std::function 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 index 0000000..0878595 --- /dev/null +++ b/src/policyd/tools/syspopup/src/ui/image.cpp @@ -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 index 0000000..0423e0c --- /dev/null +++ b/src/policyd/tools/syspopup/src/ui/image.h @@ -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 index 0000000..f51db66 --- /dev/null +++ b/src/policyd/tools/syspopup/src/ui/layout.cpp @@ -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 index 0000000..048acd8 --- /dev/null +++ b/src/policyd/tools/syspopup/src/ui/layout.h @@ -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 index 0000000..db0a2e1 --- /dev/null +++ b/src/policyd/tools/syspopup/src/ui/notification.cpp @@ -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 index 0000000..c63d689 --- /dev/null +++ b/src/policyd/tools/syspopup/src/ui/notification.h @@ -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 +#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 index 0000000..47ee925 --- /dev/null +++ b/src/policyd/tools/syspopup/src/ui/popup.cpp @@ -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(handler)); + leftButton.setStyle("popup"); +} + +void MobileDefaultPopup::setButton(const std::string &leftText, SmartHandler &&leftHandler, const std::string &rightText, SmartHandler &&rightHandler) +{ + Popup::setButton(leftText, std::forward(leftHandler), rightText, std::forward(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 index 0000000..c7582fe --- /dev/null +++ b/src/policyd/tools/syspopup/src/ui/popup.h @@ -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 + +#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 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 index 0000000..b9948b7 --- /dev/null +++ b/src/policyd/tools/syspopup/src/ui/widget.cpp @@ -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(data); + (*handler)(event_info); +} + +void Widget::eventHandlerDispatcher(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + EventHandler *handler = reinterpret_cast(data); + (*handler)(event_info); +} + +Eina_Bool Widget::ecoreHandlerDispatcher(void *data, int type, void *event) +{ + bool ret = EINA_FALSE; + EcoreHandler *handler = reinterpret_cast(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(&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(&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(&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 index 0000000..2960ee9 --- /dev/null +++ b/src/policyd/tools/syspopup/src/ui/widget.h @@ -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 +#include + +#include +#include +#include +#include +#include +#include +#include + +class Widget { +public: + typedef std::function EventHandler; + typedef std::function SmartHandler; + typedef std::function 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 onShow; + std::function onHide; + std::function onDispose; + +protected: + Widget(const std::string &t, Evas_Object *obj); + virtual Evas_Object *evasObject(Widget *widget); + +protected: + std::unordered_map eventList; + std::unordered_map smartList; + + struct EcoreInfo { + EcoreInfo() : ecoreHandler(nullptr) { + } + EcoreHandler handler; + Ecore_Event_Handler *ecoreHandler; + }; + std::unordered_map 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 index 0000000..608a2ac --- /dev/null +++ b/src/policyd/tools/syspopup/src/ui/window.cpp @@ -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 index 0000000..85bb7e7 --- /dev/null +++ b/src/policyd/tools/syspopup/src/ui/window.h @@ -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 index 0000000..53643a3 --- /dev/null +++ b/src/policyd/ui/CMakeLists.txt @@ -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 index 0000000..eb6b2cb --- /dev/null +++ b/src/policyd/ui/syspopup-service.cpp @@ -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 +#include +#include +#include +#include +#include + +namespace { + +std::unique_ptr _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 mainloop; + std::thread handle; +}; + +int main() +{ + _sink.reset(new audit::DlogLogSink("DPM")); + SINK = dynamic_cast((_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 index 0000000..c9939e6 --- /dev/null +++ b/src/policyd/ui/syspopup.cpp @@ -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 +#include +#include +#include + +#include +#include + +#include +#include + +#include +#include +#include +#include + +#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 = + "" + " " + " " + " " + " " + " " + " " + ""; + +} // 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 index 0000000..572ff83 --- /dev/null +++ b/src/policyd/ui/syspopup.h @@ -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 + +#include + +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__ -- 2.7.4